diff -Nru mariadb-10.3-10.3.17/BUILD/compile-pentium64-asan-max mariadb-10.3-10.3.20/BUILD/compile-pentium64-asan-max --- mariadb-10.3-10.3.17/BUILD/compile-pentium64-asan-max 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/BUILD/compile-pentium64-asan-max 2019-11-06 16:01:56.000000000 +0000 @@ -17,7 +17,7 @@ path=`dirname $0` . "$path/SETUP.sh" -extra_flags="$pentium64_cflags $debug_cflags -lasan -O -g -fsanitize=address" +extra_flags="$pentium64_cflags $debug_cflags -lasan -O -g -fsanitize=address -USAFEMALLOC -UFORCE_INIT_OF_VARS -Wno-uninitialized -Wno-maybe-uninitialized" extra_configs="$pentium_configs $debug_configs $valgrind_configs $max_configs $disable_asan_plugins" export LDFLAGS="-ldl" diff -Nru mariadb-10.3-10.3.17/BUILD/SETUP.sh mariadb-10.3-10.3.20/BUILD/SETUP.sh --- mariadb-10.3-10.3.17/BUILD/SETUP.sh 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/BUILD/SETUP.sh 2019-11-06 16:01:56.000000000 +0000 @@ -160,7 +160,10 @@ # Override -DFORCE_INIT_OF_VARS from debug_cflags. It enables the macro # UNINIT_VAR(), which is only useful for silencing spurious warnings # of static analysis tools. We want UNINIT_VAR() to be a no-op in Valgrind. -valgrind_flags="-DHAVE_valgrind -USAFEMALLOC" +# TRASH_FREE_MEMORY is enabled so that we can find wrong memory accesses +# even when running a test without valgrind +# +valgrind_flags="-DHAVE_valgrind -USAFEMALLOC -DTRASH_FREE_MEMORY" valgrind_flags="$valgrind_flags -UFORCE_INIT_OF_VARS -Wno-uninitialized" valgrind_flags="$valgrind_flags -DMYSQL_SERVER_SUFFIX=-valgrind-max" valgrind_configs="--with-valgrind" @@ -208,7 +211,7 @@ max_no_embedded_configs="$SSL_LIBRARY --with-plugins=max" max_no_qc_configs="$SSL_LIBRARY --with-plugins=max --without-query-cache" -max_configs="$SSL_LIBRARY --with-plugins=max --with-embedded-server --with-libevent --without-plugin=plugin_file_key_management --with-plugin-rocksdb=dynamic" +max_configs="$SSL_LIBRARY --with-plugins=max --with-embedded-server --with-libevent --without-plugin=plugin_file_key_management --with-plugin-rocksdb=dynamic --with-plugin-test_sql_discovery=DYNAMIC" all_configs="$SSL_LIBRARY --with-plugins=max --with-embedded-server --with-innodb_plugin --with-libevent" # @@ -252,6 +255,11 @@ then debug_cflags="$debug_cflags -DFORCE_INIT_OF_VARS -Wuninitialized" fi + if (test '(' "$GCCV1" -gt '6' ')') + then + c_warnings="$c_warnings -Wimplicit-fallthrough=2" + cxx_warnings="$cxx_warnings -Wimplicit-fallthrough=2" + fi fi diff -Nru mariadb-10.3-10.3.17/client/mysql.cc mariadb-10.3-10.3.20/client/mysql.cc --- mariadb-10.3-10.3.17/client/mysql.cc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/client/mysql.cc 2019-11-06 16:01:56.000000000 +0000 @@ -1060,7 +1060,7 @@ extern "C" HIST_ENTRY *history_get(int num); extern "C" int history_length; static int not_in_history(const char *line); -static void initialize_readline (char *name); +static void initialize_readline (); static void fix_history(String *final_command); #endif @@ -1241,7 +1241,7 @@ } #ifdef HAVE_READLINE - initialize_readline((char*) my_progname); + initialize_readline(); if (!status.batch && !quick && !opt_html && !opt_xml) { /* read-history from file, default ~/.mysql_history*/ @@ -2668,10 +2668,11 @@ } -static void initialize_readline (char *name) +static void initialize_readline () { /* Allow conditional parsing of the ~/.inputrc file. */ - rl_readline_name = name; + rl_readline_name= (char *) "mysql"; + rl_terminal_name= getenv("TERM"); /* Tell the completer that we want a crack first. */ #if defined(USE_NEW_READLINE_INTERFACE) diff -Nru mariadb-10.3-10.3.17/client/mysqldump.c mariadb-10.3-10.3.20/client/mysqldump.c --- mariadb-10.3-10.3.17/client/mysqldump.c 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/client/mysqldump.c 2019-11-06 16:01:56.000000000 +0000 @@ -1,6 +1,6 @@ /* Copyright (c) 2000, 2013, Oracle and/or its affiliates. - Copyright (c) 2010, 2017, MariaDB Corporation. + Copyright (c) 2010, 2019, MariaDB Corporation. 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 @@ -1081,7 +1081,7 @@ my_progname_short); return(EX_USAGE); } - if (strcmp(default_charset, charset_info->csname) && + if (strcmp(default_charset, MYSQL_AUTODETECT_CHARSET_NAME) && !(charset_info= get_charset_by_csname(default_charset, MY_CS_PRIMARY, MYF(MY_WME)))) exit(1); @@ -1546,6 +1546,9 @@ char query_buffer[QUERY_LENGTH]; size_t query_length; + if (!strcmp(cs_name, MYSQL_AUTODETECT_CHARSET_NAME)) + cs_name= (char *)my_default_csname(); + /* Server lacks facility. This is not an error, by arbitrary decision . */ if (!server_supports_switching_charsets) return FALSE; diff -Nru mariadb-10.3-10.3.17/client/mysqltest.cc mariadb-10.3-10.3.20/client/mysqltest.cc --- mariadb-10.3-10.3.17/client/mysqltest.cc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/client/mysqltest.cc 2019-11-06 16:01:56.000000000 +0000 @@ -1,5 +1,5 @@ /* Copyright (c) 2000, 2013, Oracle and/or its affiliates. - Copyright (c) 2009, 2017, MariaDB + Copyright (c) 2009, 2019, MariaDB 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 @@ -1694,6 +1694,7 @@ cur_file->file_name, cur_file->lineno); char buff[DIE_BUFF_SIZE]; + buff[0] = '\0'; print_file_stack(buff, buff + sizeof(buff)); fprintf(stderr, "%s", buff); diff -Nru mariadb-10.3-10.3.17/cmake/build_configurations/mysql_release.cmake mariadb-10.3-10.3.20/cmake/build_configurations/mysql_release.cmake --- mariadb-10.3-10.3.17/cmake/build_configurations/mysql_release.cmake 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/cmake/build_configurations/mysql_release.cmake 2019-11-06 16:01:56.000000000 +0000 @@ -121,6 +121,7 @@ IF(UNIX) SET(WITH_EXTRA_CHARSETS all CACHE STRING "") + SET(PLUGIN_AUTH_PAM YES) IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") IF(NOT IGNORE_AIO_CHECK) diff -Nru mariadb-10.3-10.3.17/cmake/build_depends.cmake mariadb-10.3-10.3.20/cmake/build_depends.cmake --- mariadb-10.3-10.3.17/cmake/build_depends.cmake 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/cmake/build_depends.cmake 2019-11-06 16:01:56.000000000 +0000 @@ -39,6 +39,8 @@ SET(BUILD_DEPS ${BUILD_DEPS} ${${V}_DEP}) ENDIF() ENDFOREACH() - LIST(REMOVE_DUPLICATES BUILD_DEPS) - STRING(REPLACE ";" " " CPACK_RPM_BUILDREQUIRES "${BUILD_DEPS}") + IF (BUILD_DEPS) + LIST(REMOVE_DUPLICATES BUILD_DEPS) + STRING(REPLACE ";" " " CPACK_RPM_BUILDREQUIRES "${BUILD_DEPS}") + ENDIF() ENDIF(RPM) diff -Nru mariadb-10.3-10.3.17/cmake/cpack_rpm.cmake mariadb-10.3-10.3.20/cmake/cpack_rpm.cmake --- mariadb-10.3-10.3.17/cmake/cpack_rpm.cmake 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/cmake/cpack_rpm.cmake 2019-11-06 16:01:56.000000000 +0000 @@ -37,7 +37,9 @@ SET(CPACK_PACKAGE_FILE_NAME "${CPACK_RPM_PACKAGE_NAME}-${VERSION}-${RPM}-${CMAKE_SYSTEM_PROCESSOR}") ELSE() SET(CPACK_RPM_FILE_NAME "RPM-DEFAULT") - SET(CPACK_RPM_DEBUGINFO_PACKAGE ON CACHE INTERNAL "") + OPTION(CPACK_RPM_DEBUGINFO_PACKAGE "" ON) + MARK_AS_ADVANCED(CPACK_RPM_DEBUGINFO_PACKAGE) + SET(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/usr/src/debug/${CPACK_RPM_PACKAGE_NAME}-${VERSION}") ENDIF() SET(CPACK_RPM_PACKAGE_RELEASE "1%{?dist}") @@ -269,7 +271,6 @@ SET(CPACK_SOURCE_GENERATOR "RPM") SETA(CPACK_RPM_SOURCE_PKG_BUILD_PARAMS "-DRPM=${RPM}" - "-DCPACK_RPM_BUILD_SOURCE_DIRS_PREFIX=/usr/src/debug/${CPACK_RPM_PACKAGE_NAME}-${VERSION}" ) MACRO(ADDIF var) diff -Nru mariadb-10.3-10.3.17/cmake/os/Linux.cmake mariadb-10.3-10.3.20/cmake/os/Linux.cmake --- mariadb-10.3-10.3.17/cmake/os/Linux.cmake 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/cmake/os/Linux.cmake 2019-11-06 16:01:56.000000000 +0000 @@ -26,9 +26,9 @@ # Fix CMake (< 2.8) flags. -rdynamic exports too many symbols. FOREACH(LANG C CXX) - STRING(REPLACE "-rdynamic" "" + STRING(REPLACE "-rdynamic" "" CMAKE_SHARED_LIBRARY_LINK_${LANG}_FLAGS - ${CMAKE_SHARED_LIBRARY_LINK_${LANG}_FLAGS} + "${CMAKE_SHARED_LIBRARY_LINK_${LANG}_FLAGS}" ) ENDFOREACH() diff -Nru mariadb-10.3-10.3.17/cmake/os/Windows.cmake mariadb-10.3-10.3.20/cmake/os/Windows.cmake --- mariadb-10.3-10.3.17/cmake/os/Windows.cmake 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/cmake/os/Windows.cmake 2019-11-06 16:01:56.000000000 +0000 @@ -196,11 +196,18 @@ IF(MYSQL_MAINTAINER_MODE MATCHES "ERR") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX") + FOREACH(type EXE SHARED MODULE) + FOREACH(cfg RELEASE DEBUG RELWITHDEBINFO) + SET(CMAKE_${type}_LINKER_FLAGS_${cfg} "${CMAKE_${type}_LINKER_FLAGS_${cfg}} /WX") + ENDFOREACH() + ENDFOREACH() ENDIF() IF(MSVC_VERSION LESS 1910) # Noisy warning C4800: 'type': forcing value to bool 'true' or 'false' (performance warning), # removed in VS2017 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4800") + ELSEIF (NOT (CMAKE_CXX_COMPILER_ID MATCHES Clang)) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /d2OptimizeHugeFunctions") ENDIF() ENDIF() diff -Nru mariadb-10.3-10.3.17/cmake/plugin.cmake mariadb-10.3-10.3.20/cmake/plugin.cmake --- mariadb-10.3-10.3.17/cmake/plugin.cmake 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/cmake/plugin.cmake 2019-11-06 16:01:56.000000000 +0000 @@ -1,6 +1,6 @@ # Copyright (c) 2009, 2018, Oracle and/or its affiliates. -# Copyright (c) 2011, 2019, MariaDB Corporation -# +# Copyright (c) 2011, 2019, MariaDB Corporation. +# # 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. @@ -12,7 +12,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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA INCLUDE(CMakeParseArguments) @@ -209,7 +209,7 @@ ELSEIF(NOT CMAKE_SYSTEM_NAME STREQUAL "Linux") TARGET_LINK_LIBRARIES (${target} mysqld) ENDIF() - ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT WITH_ASAN AND NOT WITH_TSAN AND NOT WITH_UBSAN) + ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT WITH_ASAN AND NOT WITH_TSAN AND NOT WITH_UBSAN AND NOT WITH_MSAN) TARGET_LINK_LIBRARIES (${target} "-Wl,--no-undefined") ENDIF() diff -Nru mariadb-10.3-10.3.17/cmake/sign.cmake.in mariadb-10.3-10.3.20/cmake/sign.cmake.in --- mariadb-10.3-10.3.17/cmake/sign.cmake.in 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/cmake/sign.cmake.in 2019-11-06 16:01:56.000000000 +0000 @@ -1,13 +1,31 @@ +# If timestamping is used, it can (rarely) fail, when public timestamping service has issues. +# +# To handle the error gracefully and tranparently, we'll retry the signtool command, +# second time without "/t URL" parameter +SET(SIGNTOOL_PARAMETERS_NO_TIMESTAMP "@SIGNTOOL_PARAMETERS@") +LIST(FIND SIGNTOOL_PARAMETERS_NO_TIMESTAMP /t idx) +IF(NOT(idx EQUAL -1)) + LIST(REMOVE_AT SIGNTOOL_PARAMETERS_NO_TIMESTAMP ${idx}) + #remove the URL following /t , as well + LIST(REMOVE_AT SIGNTOOL_PARAMETERS_NO_TIMESTAMP ${idx}) +ENDIF() + +GET_FILENAME_COMPONENT(SIGNTOOL_DIR "@SIGNTOOL_EXECUTABLE@" DIRECTORY) +GET_FILENAME_COMPONENT(SIGNTOOL_NAME "@SIGNTOOL_EXECUTABLE@" NAME) + FILE(GLOB_RECURSE files "@CMAKE_BINARY_DIR@/*.signme") MESSAGE(STATUS "signing files") + + FOREACH(f ${files}) STRING(REPLACE ".signme" "" exe_location "${f}") string (REPLACE ";" " " params "@SIGNTOOL_PARAMETERS@") - #MESSAGE("@SIGNTOOL_EXECUTABLE@" sign ${params} "${exe_location}") EXECUTE_PROCESS(COMMAND - "@SIGNTOOL_EXECUTABLE@" sign @SIGNTOOL_PARAMETERS@ "${exe_location}" + cmd /c "${SIGNTOOL_NAME}" sign @SIGNTOOL_PARAMETERS@ "${exe_location}" 2>NUL + || "${SIGNTOOL_NAME}" sign ${SIGNTOOL_PARAMETERS_NO_TIMESTAMP} "${exe_location}" + WORKING_DIRECTORY ${SIGNTOOL_DIR} RESULT_VARIABLE ERR) IF(NOT ${ERR} EQUAL 0) MESSAGE( "Error ${ERR} signing ${exe_location}") diff -Nru mariadb-10.3-10.3.17/CMakeLists.txt mariadb-10.3-10.3.20/CMakeLists.txt --- mariadb-10.3-10.3.17/CMakeLists.txt 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/CMakeLists.txt 2019-11-06 16:01:56.000000000 +0000 @@ -1,5 +1,5 @@ # Copyright (c) 2006, 2017, Oracle and/or its affiliates. -# Copyright (c) 2008, 2018, MariaDB Corporation +# Copyright (c) 2008, 2019, MariaDB Corporation. # # 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 @@ -224,6 +224,11 @@ MY_CHECK_AND_SET_COMPILER_FLAG("-fsanitize=undefined -fno-sanitize=alignment -U_FORTIFY_SOURCE" DEBUG RELWITHDEBINFO) ENDIF() +OPTION(WITH_MSAN "Enable memory sanitizer" OFF) +IF (WITH_MSAN) + MY_CHECK_AND_SET_COMPILER_FLAG("-fsanitize=memory -fsanitize-memory-track-origins -U_FORTIFY_SOURCE" DEBUG RELWITHDEBINFO) +ENDIF() + IF(NOT WITH_TSAN) # enable security hardening features, like most distributions do # in our benchmarks that costs about ~1% of performance, depending on the load diff -Nru mariadb-10.3-10.3.17/dbug/dbug.c mariadb-10.3-10.3.20/dbug/dbug.c --- mariadb-10.3-10.3.17/dbug/dbug.c 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/dbug/dbug.c 2019-11-06 16:01:56.000000000 +0000 @@ -225,11 +225,8 @@ const char *file; /* Name of current user file */ struct _db_stack_frame_ *framep; /* Pointer to current frame */ struct settings *stack; /* debugging settings */ - const char *jmpfunc; /* Remember current function for setjmp */ - const char *jmpfile; /* Remember current file for setjmp */ int lineno; /* Current debugger output line number */ uint level; /* Current function nesting level */ - int jmplevel; /* Remember nesting level at setjmp() */ /* * The following variables are used to hold the state information @@ -2258,6 +2255,16 @@ return 0; } +extern my_bool my_assert; +ATTRIBUTE_COLD +my_bool _db_my_assert(const char *file, int line, const char *msg) +{ + my_bool a = my_assert; + _db_flush_(); + if (!a) + fprintf(stderr, "%s:%d: assert: %s\n", file, line, msg); + return a; +} #else /* diff -Nru mariadb-10.3-10.3.17/debian/changelog mariadb-10.3-10.3.20/debian/changelog --- mariadb-10.3-10.3.17/debian/changelog 2019-08-03 18:58:47.000000000 +0000 +++ mariadb-10.3-10.3.20/debian/changelog 2019-11-12 12:44:39.000000000 +0000 @@ -1,3 +1,18 @@ +mariadb-10.3 (1:10.3.20-0ubuntu0.19.04.1) disco-security; urgency=high + + * SECURITY UPDATE: New upstream version 10.3.20 includes a fix for a + regression introduced in the previous release: + - MDEV-20987: InnoDB fails to start when FTS table has FK relation + Previous release 10.3.19 includes fix for the following security + vulnerability (LP: #1852109): + - CVE-2019-2938 + - CVE-2019-2974 + * Drop systemd service patch applied upstream + * Update symbols to match latest libmariadb_3 + * Remove Salsa-CI integration as not applicable in this Ubuntu branch + + -- Otto Kekäläinen Tue, 12 Nov 2019 14:44:39 +0200 + mariadb-10.3 (1:10.3.17-0ubuntu0.19.04.1) disco-security; urgency=medium * New upstream version 10.3.17. Includes security fixes for: diff -Nru mariadb-10.3-10.3.17/debian/gitlab-ci.yml mariadb-10.3-10.3.20/debian/gitlab-ci.yml --- mariadb-10.3-10.3.17/debian/gitlab-ci.yml 2019-08-03 18:58:47.000000000 +0000 +++ mariadb-10.3-10.3.20/debian/gitlab-ci.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,402 +0,0 @@ -variables: - DEBFULLNAME: "Salsa Pipeline" - DEBEMAIL: "" - DEBIAN_FRONTEND: noninteractive - WORKING_DIR: $CI_PROJECT_DIR/debian/output - DEB_BUILD_OPTIONS: "nocheck noautodbgsym" - RELEASE: unstable - -stages: - - build - - test quality - - test minor upgrade - - test major upgrade - - test mysql upgrade - -build package: - stage: build - image: registry.salsa.debian.org/salsa-ci-team/images/gbp - cache: - paths: - - ${CCACHE_WORK_DIR} - variables: - CCACHE_TMP_DIR: ${CI_PROJECT_DIR}/../.ccache - CCACHE_WORK_DIR: ${WORKING_DIR}/.ccache - services: - - docker:dind - artifacts: - expire_in: 90 day - name: "$CI_JOB_NAME:$CI_COMMIT_REF_NAME" - paths: - - ${WORKING_DIR}/ - script: - - | - curl https://prittiau.debian.net/post -X POST --data "{\"project_id\":$CI_PROJECT_ID, \"pipeline_id\":$CI_PIPELINE_ID}" --header "Content-Type: application/json" - - mkdir -p ${CCACHE_WORK_DIR} - - mv ${CCACHE_WORK_DIR} ${CCACHE_TMP_DIR} - - gbp pull --ignore-branch --pristine-tar --track-missing - - while true; do sleep 600; echo "10 minutes passed" >&2; done & # Progress keeper since build is long and silent - - gbp buildpackage --git-ignore-branch --git-export-dir=${WORKING_DIR} --git-builder="docker-build.sh registry.salsa.debian.org/salsa-ci-team/images/dockerbuilder:${RELEASE}" | tail -n 10000 # Keep log under 4 MB - - du -shc ${WORKING_DIR}/* # Show total file size of artifacts. Must stay are under 100 MB. - - mv ${CCACHE_TMP_DIR} ${CCACHE_WORK_DIR} - -# Autopkgtest must be disabled, because the test 'upstream' will be skipped and -# thus the command returns exit code 2 and is considered failed by Gitlab CI. -# Removing 'breaks-testbed' stanza from tests/control will result in that the -# test is run on Gitlab CI, but then it will fail in multiple tests as it cannot -# bind to network interfaces and other needes stuff inside Gitlab CI containers. -# -#run autopkgtest: -# stage: test -# script: -# - apt-get update && apt-get install autopkgtest eatmydata -y --no-install-recommends -# - eatmydata autopkgtest ${WORKING_DIR}/*.deb -- null - -run lintian: - stage: test quality - image: registry.salsa.debian.org/salsa-ci-team/images/lintian:${RELEASE} - script: - - lintian ${WORKING_DIR}/*.changes | tee lintian.output - - cat lintian.output | /root/go/bin/lintian2junit > ${WORKING_DIR}/lintian.xml - variables: - GIT_STRATEGY: none - artifacts: - reports: - junit: ${WORKING_DIR}/lintian.xml - -# Reprotest exceeds the 2 hour timeout limit on Github CI, so results in failure -# and must be disabled until a quicker (times two) build is possible. -run reprotest: - stage: test quality - image: registry.salsa.debian.org/salsa-ci-team/images/reprotest - artifacts: - name: "$CI_JOB_NAME:$CI_COMMIT_REF_NAME" - paths: - - $CI_PROJECT_DIR/reprotest.log - when: always - script: - - apt-get update - - eatmydata apt-get build-dep -y . - - export DEB_BUILD_OPTIONS=nocheck - - eatmydata reprotest --min-cpus $(nproc --all) ${REPROTEST_EXTRA_ARGS} . -- null &> "${CI_PROJECT_DIR}/reprotest.log" - after_script: - - tail -n 5000 "${CI_PROJECT_DIR}/reprotest.log" >&2; - allow_failure: true - -# Piuparts is passing on official piuparts.debian.org, but fail on Gitlab CI -# with 'FAIL: Package purging left files on system'. Disabling for now. -run piuparts: - stage: test quality - image: registry.salsa.debian.org/salsa-ci-team/images/piuparts - services: - - docker:dind - script: - - CHROOT_PATH=/tmp/debian-unstable - - CONTAINER_ID=$(docker run --rm -d debian:unstable sleep infinity) - - docker exec ${CONTAINER_ID} bash -c "apt-get update && apt-get install eatmydata -y" - - mkdir -p ${CHROOT_PATH} - - docker export ${CONTAINER_ID} | tar -C ${CHROOT_PATH} -xf - - - mknod -m 666 ${CHROOT_PATH}/dev/urandom c 1 9 - - mkdir -p ${CHROOT_PATH}/etc-target/apt/sources.list.d ${CHROOT_PATH}/etc-target/apt/preferences.d - - cp -aTv /etc/apt/sources.list.d ${CHROOT_PATH}/etc-target/apt/sources.list.d - - cp -aTv /etc/apt/preferences.d ${CHROOT_PATH}/etc-target/apt/preferences.d - - | - for PACKAGE in $(ls ${WORKING_DIR}/*.deb); do - piuparts --scriptsdir /etc/piuparts/scripts --allow-database --warn-on-leftovers-after-purge --hard-link -e ${CHROOT_PATH} ${PACKAGE} - done - variables: - GIT_STRATEGY: none - allow_failure: true - -test install: - stage: test quality - image: debian:sid - artifacts: - when: always - name: "$CI_BUILD_NAME" - paths: - - ${WORKING_DIR}/debug - script: - - cd ${WORKING_DIR} # Don't repeat this step, it's just cd ./debian/output - - mkdir debug - - dpkg -l | grep -iE '"'"'maria|mysql|galera'"'"' || true - - apt-get update - - apt-get install -y ./*.deb - - mariadb --version - - find /var/lib/mysql -ls > debug/var-lib-mysql.list - - cp -ra /etc/mysql debug/etc-mysql - - service mysql restart || true # Always proceed even if init failed - - service mysql status || true - - cp -ra /var/log/mysql debug/var-log-mysql - - mariadb --skip-column-names -e "select @@version, @@version_comment" - - mariadb -e "create database test; use test; create table t(a int primary key) engine=innodb; insert into t values (1); select * from t; drop table t; drop database test;" - -test upgrade sid: - stage: test minor upgrade - image: debian:sid - artifacts: - when: always - name: "$CI_BUILD_NAME" - paths: - - ${WORKING_DIR}/debug - script: - - cd ${WORKING_DIR} # Don't repeat this step, it's just cd ./debian/output - - dpkg -l | grep -iE '"'"'maria|mysql|galera'"'"' || true - - apt-get update - - apt-get install -y 'default-mysql*' 'mariadb-*' 'libmariadb*' # Install almost everything curently in Debian Sid - - service mysql status || true # Always proceed even if init failed - - service mysql restart || true - - mariadb --skip-column-names -e "select @@version, @@version_comment" - - apt-get install -y ./*.deb - - mariadb --version - - find /var/lib/mysql -ls > debug/var-lib-mysql.list - - cp -ra /etc/mysql debug/etc-mysql - - service mysql restart || true # Always proceed even if init failed - - service mysql status || true - - cp -ra /var/log/mysql debug/var-log-mysql - - mariadb --skip-column-names -e "select @@version, @@version_comment" - - mariadb -e "create database test; use test; create table t(a int primary key) engine=innodb; insert into t values (1); select * from t; drop table t; drop database test;" - -test upgrade stretch: - stage: test major upgrade - image: debian:stretch - artifacts: - when: always - name: "$CI_BUILD_NAME" - paths: - - ${WORKING_DIR}/debug - script: - - cd ${WORKING_DIR} # Don't repeat this step, it's just cd ./debian/output - - apt-get update - - apt-get install -y 'default-mysql*' 'mariadb-*' 'libmariadbd*' 'libmariadbclient*' # Install almost everything curently in Debian Stretch - - dpkg -l | grep -iE '"'"'maria|mysql|galera'"'"' || true - - service mysql status || true # Always proceed even if init failed - - service mysql restart || true - - mariadb --skip-column-names -e "select @@version, @@version_comment" - - echo 'deb http://deb.debian.org/debian sid main' > /etc/apt/sources.list - - apt-get update; apt-get install -y apt # Uprade minimal stack first - - apt-get install -y ./*.deb - - dpkg -l | grep -iE '"'"'maria|mysql|galera'"'"' || true - - mariadb --version - - find /var/lib/mysql -ls > debug/var-lib-mysql.list - - cp -ra /etc/mysql debug/etc-mysql - - service mysql restart || true # Always proceed even if init failed - - service mysql status || true - - cp -ra /var/log/mysql debug/var-log-mysql - - mariadb --skip-column-names -e "select @@version, @@version_comment" - - mariadb -e "create database test; use test; create table t(a int primary key) engine=innodb; insert into t values (1); select * from t; drop table t; drop database test;" - -test features: - stage: test quality - image: debian:sid - artifacts: - when: always - name: "$CI_BUILD_NAME" - paths: - - ${WORKING_DIR}/debug - script: - - cd ${WORKING_DIR} # Don't repeat this step, it's just cd ./debian/output - - mkdir debug - - dpkg -l | grep -iE '"'"'maria|mysql|galera'"'"' || true - - apt-get update - - apt-get install -y ./*.deb - - mariadb --version - - find /var/lib/mysql -ls > debug/var-lib-mysql.list - - cp -ra /etc/mysql debug/etc-mysql - - service mysql restart || true # Always proceed even if init failed - - service mysql status || true - - cp -ra /var/log/mysql debug/var-log-mysql - # Print info about server - - mariadb --skip-column-names -e "select @@version, @@version_comment" - - mariadb --skip-column-names -e "select engine, support, transactions, savepoints from information_schema.engines order by engine" | sort - - mariadb --skip-column-names -e "select plugin_name, plugin_status, plugin_type, plugin_library, plugin_license from information_schema.all_plugins order by plugin_name, plugin_library" - # Test various features - - mariadb -e "CREATE DATABASE db" - - mariadb -e "CREATE TABLE db.t_innodb(a1 SERIAL, c1 CHAR(8)) ENGINE=InnoDB; INSERT INTO db.t_innodb VALUES (1,'"'"'foo'"'"'),(2,'"'"'bar'"'"')" - - mariadb -e "CREATE TABLE db.t_myisam(a2 SERIAL, c2 CHAR(8)) ENGINE=MyISAM; INSERT INTO db.t_myisam VALUES (1,'"'"'foo'"'"'),(2,'"'"'bar'"'"')" - - mariadb -e "CREATE TABLE db.t_aria(a3 SERIAL, c3 CHAR(8)) ENGINE=Aria; INSERT INTO db.t_aria VALUES (1,'"'"'foo'"'"'),(2,'"'"'bar'"'"')" - - mariadb -e "CREATE TABLE db.t_memory(a4 SERIAL, c4 CHAR(8)) ENGINE=MEMORY; INSERT INTO db.t_memory VALUES (1,'"'"'foo'"'"'),(2,'"'"'bar'"'"')" - - mariadb -e "CREATE ALGORITHM=MERGE VIEW db.v_merge AS SELECT * FROM db.t_innodb, db.t_myisam, db.t_aria" - - mariadb -e "CREATE ALGORITHM=TEMPTABLE VIEW db.v_temptable AS SELECT * FROM db.t_innodb, db.t_myisam, db.t_aria" - - mariadb -e "CREATE PROCEDURE db.p() SELECT * FROM db.v_merge" - - mariadb -e "CREATE FUNCTION db.f() RETURNS INT DETERMINISTIC RETURN 1" - # Test that the features still work (this step can be done e.g. after an upgrade) - - mariadb -e "SHOW TABLES IN db" - - mariadb -e "SELECT * FROM db.t_innodb; INSERT INTO db.t_innodb VALUES (3,'"'"'foo'"'"'),(4,'"'"'bar'"'"')" - - mariadb -e "SELECT * FROM db.t_myisam; INSERT INTO db.t_myisam VALUES (3,'"'"'foo'"'"'),(4,'"'"'bar'"'"')" - - mariadb -e "SELECT * FROM db.t_aria; INSERT INTO db.t_aria VALUES (3,'"'"'foo'"'"'),(4,'"'"'bar'"'"')" - - mariadb -e "SELECT * FROM db.t_memory; INSERT INTO db.t_memory VALUES (3,'"'"'foo'"'"'),(4,'"'"'bar'"'"')" - - mariadb -e "SELECT COUNT(*) FROM db.v_merge" - - mariadb -e "SELECT COUNT(*) FROM db.v_temptable" - - mariadb -e "CALL db.p()" - - mariadb -e "SELECT db.f()" - -# Build a piece of software that was designed bot libmysqlclient-dev using the -# libmariadb-dev-compat layer. Should always end up using libmariadb.so.3 run-time -test build Python-MySQLdb with mariadbclient: - stage: test quality - image: debian:sid - script: - - cd ${WORKING_DIR} # Don't repeat this step, it's just cd ./debian/output - - mkdir debug - - apt-get update - - apt-get install -y pkg-config ./libmariadb-dev*.deb ./libmariadb3_*.deb ./mariadb-common*.deb - - pkg-config --cflags --libs mysqlclient # See what MySQLdb builds with - - apt-get install -y python3-pip - - pip3 install mysqlclient # Compiles module against libmysqlclient - - apt-get purge -y libmariadb-dev # Not needed for run-time - - python3 -c "import MySQLdb; print(MySQLdb.get_client_info())" - -test upgrade libmysql* to libmariadb*: - stage: test minor upgrade - image: debian:sid - artifacts: - when: always - name: "$CI_BUILD_NAME" - paths: - - ${WORKING_DIR}/debug - script: - - cd ${WORKING_DIR} # Don't repeat this step, it's just cd ./debian/output - - dpkg -l | grep -iE "maria|mysql|galera" || true - - apt-get update - - apt-get install -y pkg-config libmysqld-dev libmysqlclient-dev - - pkg-config --list-all - - pkg-config --cflags mysqlclient # mysqlclient.pc from original package - - apt-get install -y ./libmariadb3_*.deb ./mariadb-common_*.deb - - pkg-config --list-all - - apt-get install -y ./libmariadb-dev_*.deb - - pkg-config --list-all - - apt-get install -y ./libmariadb-dev-compat_*.deb - - pkg-config --cflags mysqlclient # mysqlclient.pc from compat package - - pkg-config --list-all - - apt-get install -y ./libmariadbd19_*.deb - - pkg-config --list-all - - apt-get install -y ./libmariadbd-dev_*.deb - - pkg-config --list-all - - apt-get install -y default-libmysqlclient-dev default-libmysqld-dev - - ldconfig -p # | grep -e mariadb -e mysql - - pkg-config --list-all - - pkg-config --cflags --libs mysqlclient - - pkg-config --cflags --libs libmariadb - - pkg-config --cflags --libs mariadb - -test upgrade default-libmysqlclient-dev: - stage: test minor upgrade - image: debian:testing - artifacts: - when: always - name: "$CI_BUILD_NAME" - paths: - - ${WORKING_DIR}/debug - script: - - cd ${WORKING_DIR} # Don't repeat this step, it's just cd ./debian/output - - dpkg -l | grep -iE "maria|mysql|galera" || true - - apt-get update - - apt-get install -y pkg-config default-libmysqlclient-dev default-libmysqld-dev - - pkg-config --list-all - - apt-get install -y ./libmariadb3_*.deb ./libmariadb-dev_*.deb ./libmariadb-dev-compat_*.deb ./libmariadbd19_*.deb ./libmariadbd-dev_*.deb ./mariadb-common_*.deb - - ldconfig -p # | grep -e mariadb -e mysql - - pkg-config --list-all - - pkg-config --cflags --libs mysqlclient - - pkg-config --cflags --libs libmariadb - - pkg-config --cflags --libs mariadb - -test upgrade stretch default-libmysqlclient-dev: - stage: test major upgrade - image: debian:stretch - artifacts: - when: always - name: "$CI_BUILD_NAME" - paths: - - ${WORKING_DIR}/debug - script: - - cd ${WORKING_DIR} # Don't repeat this step, it's just cd ./debian/output - - dpkg -l | grep -iE "maria|mysql|galera" || true - - apt-get update - - apt-get install -y pkg-config default-libmysqlclient-dev - - pkg-config --list-all - - echo 'deb http://deb.debian.org/debian sid main' > /etc/apt/sources.list - - apt-get update; apt-get install -y apt # Uprade minimal stack first - - apt-get install -y ./libmariadb3_*.deb ./libmariadbclient-dev_*.deb ./libmariadb-dev_*.deb ./libmariadb-dev-compat_*.deb ./libmariadbd19_*.deb ./libmariadbd-dev_*.deb ./mariadb-common_*.deb - - ldconfig -p # | grep -e mariadb -e mysql - - pkg-config --list-all - - pkg-config --cflags --libs mysqlclient - - pkg-config --cflags --libs libmariadb - - pkg-config --cflags --libs mariadb - -test upgrade stretch mariadb-connector-c: - stage: test major upgrade - image: debian:stretch - artifacts: - when: always - name: "$CI_BUILD_NAME" - paths: - - ${WORKING_DIR}/debug - script: - - cd ${WORKING_DIR} # Don't repeat this step, it's just cd ./debian/output - - dpkg -l | grep -iE "maria|mysql|galera" || true - - apt-get update - - apt-get install -y pkg-config libmariadb2 libmariadb-dev libmariadb-dev-compat - - pkg-config --list-all - - echo 'deb http://deb.debian.org/debian sid main' > /etc/apt/sources.list - - apt-get update; apt-get install -y apt # Uprade minimal stack first - - apt-get install -y ./libmariadb3_*.deb ./libmariadbclient-dev_*.deb ./libmariadb-dev_*.deb ./libmariadb-dev-compat_*.deb ./libmariadbd19_*.deb ./libmariadbd-dev_*.deb ./mariadb-common_*.deb - - ldconfig -p # | grep -e mariadb -e mysql - - pkg-config --list-all - - pkg-config --cflags --libs mysqlclient - - pkg-config --cflags --libs libmariadb - - pkg-config --cflags --libs mariadb - -test mysql-5.5 upgrade: - stage: test mysql upgrade - image: debian:jessie - artifacts: - when: always - name: "$CI_BUILD_NAME" - paths: - - ${WORKING_DIR}/debug - script: - - apt-get update - - apt-get install -y mysql-server - - /etc/init.d/mysql restart - - mysql --version - - echo 'SHOW DATABASES;' | mysql - - echo 'deb http://deb.debian.org/debian sid main' > /etc/apt/sources.list - - apt-get update; apt-get install -y apt # Uprade minimal stack first - - cd ${WORKING_DIR}; apt-get install -y ./*.deb || true # Allow to proceed so debug artifacts get collected - - service mysql restart || true # Always proceed even if init failed - - find /var/lib/mysql -ls > debug/var-lib-mysql.list - - cp -ra /etc/mysql debug/etc-mysql - - cp -ra /var/log/mysql debug/var-log-mysql - - service mysql status - - mariadb --version - - echo 'SHOW DATABASES;' | mariadb - -# Upgrading from MySQL 5.7 involves automatic renaming of auth_socket plugin -# to unix_socket and automaticly re-adding Password column in user table. -test mysql-5.7 upgrade: - stage: test mysql upgrade - image: debian:sid - artifacts: - when: always - name: "$CI_BUILD_NAME" - paths: - - ${WORKING_DIR}/debug - script: - - apt-get update - - apt-get install -y mysql-server - - /etc/init.d/mysql restart - - mysql --version - - echo 'SHOW DATABASES;' | mysql - - /etc/init.d/mysql stop - - killall mysqld || true # Ensure server is not running during update to avoid read lock issues specific to Docker - - cd ${WORKING_DIR}; apt-get install -y ./*.deb || true # Allow to proceed so debug artifacts get collected - - service mysql restart || true # Do a manual restart since the postinst scripts don't trigger systemd in Docker - - apt-get install -y ./*.deb || true # Complete the installation now when the restart fixed database formats - - service mysql restart || true # Always proceed even if init failed - - find /var/lib/mysql -ls > debug/var-lib-mysql.list - - cp -ra /etc/mysql debug/etc-mysql - - cp -ra /var/log/mysql debug/var-log-mysql - - service mysql status - - mariadb --version - - echo 'SHOW DATABASES;' | mariadb diff -Nru mariadb-10.3-10.3.17/debian/libmariadb3.symbols mariadb-10.3-10.3.20/debian/libmariadb3.symbols --- mariadb-10.3-10.3.17/debian/libmariadb3.symbols 2019-08-03 18:58:47.000000000 +0000 +++ mariadb-10.3-10.3.20/debian/libmariadb3.symbols 2019-11-12 12:44:39.000000000 +0000 @@ -115,10 +115,8 @@ mysql_get_socket@libmysqlclient_18 3.0.0 mysql_get_ssl_cipher@libmariadbclient_18 3.0.0 mysql_get_ssl_cipher@libmysqlclient_18 3.0.0 - mysql_get_timeout_value@libmariadbclient_18 3.0.0 - mysql_get_timeout_value@libmysqlclient_18 3.0.0 - mysql_get_timeout_value_ms@libmariadbclient_18 3.0.0 - mysql_get_timeout_value_ms@libmysqlclient_18 3.0.0 + mysql_get_timeout_value@libmariadb_3 3.0.19 + mysql_get_timeout_value_ms@libmariadb_3 3.0.19 mysql_hex_string@libmariadbclient_18 3.0.0 mysql_hex_string@libmysqlclient_18 3.0.0 mysql_info@libmariadbclient_18 3.0.0 diff -Nru mariadb-10.3-10.3.17/debian/patches/0025-Change-the-default-optimization-from-O3-to-O2-in-mys.patch mariadb-10.3-10.3.20/debian/patches/0025-Change-the-default-optimization-from-O3-to-O2-in-mys.patch --- mariadb-10.3-10.3.17/debian/patches/0025-Change-the-default-optimization-from-O3-to-O2-in-mys.patch 2019-08-03 18:58:47.000000000 +0000 +++ mariadb-10.3-10.3.20/debian/patches/0025-Change-the-default-optimization-from-O3-to-O2-in-mys.patch 2019-11-12 12:44:39.000000000 +0000 @@ -10,7 +10,7 @@ --- a/cmake/build_configurations/mysql_release.cmake +++ b/cmake/build_configurations/mysql_release.cmake -@@ -157,12 +157,12 @@ IF(UNIX) +@@ -158,12 +158,12 @@ IF(UNIX) IF(CMAKE_COMPILER_IS_GNUCC) SET(COMMON_C_FLAGS "-g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing -Wno-uninitialized") SET(CMAKE_C_FLAGS_DEBUG "-O ${COMMON_C_FLAGS}") @@ -25,7 +25,7 @@ ENDIF() # IBM Z flags -@@ -211,8 +211,8 @@ IF(UNIX) +@@ -212,8 +212,8 @@ IF(UNIX) ENDIF() SET(CMAKE_C_FLAGS_DEBUG "${COMMON_C_FLAGS}") SET(CMAKE_CXX_FLAGS_DEBUG "${COMMON_CXX_FLAGS}") @@ -36,7 +36,7 @@ SET(WITH_SSL no) ENDIF() ENDIF() -@@ -221,12 +221,12 @@ IF(UNIX) +@@ -222,12 +222,12 @@ IF(UNIX) IF(CMAKE_C_COMPILER_ID MATCHES "Clang") SET(COMMON_C_FLAGS "-g -fno-omit-frame-pointer -fno-strict-aliasing") SET(CMAKE_C_FLAGS_DEBUG "${COMMON_C_FLAGS}") diff -Nru mariadb-10.3-10.3.17/debian/patches/Add_default_ExecStartPre_to_mariadb@.service.patch mariadb-10.3-10.3.20/debian/patches/Add_default_ExecStartPre_to_mariadb@.service.patch --- mariadb-10.3-10.3.17/debian/patches/Add_default_ExecStartPre_to_mariadb@.service.patch 2019-08-03 18:58:47.000000000 +0000 +++ mariadb-10.3-10.3.20/debian/patches/Add_default_ExecStartPre_to_mariadb@.service.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -From: Debian MySQL Maintainers -Date: Thu, 10 Aug 2017 20:40:30 +0200 -Subject: Add_default_ExecStartPre_to_mariadb@.service - ---- - support-files/mariadb@.service.in | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/support-files/mariadb@.service.in -+++ b/support-files/mariadb@.service.in -@@ -67,6 +67,8 @@ ProtectHome=true - # Execute pre and post scripts as root, otherwise it does it as User= - PermissionsStartOnly=true - -+@SYSTEMD_EXECSTARTPRE@ -+ - # Perform automatic wsrep recovery. When server is started without wsrep, - # galera_recovery simply returns an empty string. In any case, however, - # the script is not expected to return with a non-zero status. diff -Nru mariadb-10.3-10.3.17/debian/patches/mips-compilation-failure-__bss_start-symbol-miss.patch mariadb-10.3-10.3.20/debian/patches/mips-compilation-failure-__bss_start-symbol-miss.patch --- mariadb-10.3-10.3.17/debian/patches/mips-compilation-failure-__bss_start-symbol-miss.patch 2019-08-03 18:58:47.000000000 +0000 +++ mariadb-10.3-10.3.20/debian/patches/mips-compilation-failure-__bss_start-symbol-miss.patch 2019-11-12 12:44:39.000000000 +0000 @@ -20,7 +20,7 @@ --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -336,6 +336,8 @@ ELSE() +@@ -341,6 +341,8 @@ ELSE() SET(DEFAULT_TMPDIR "\"${TMPDIR}\"") ENDIF() @@ -29,7 +29,7 @@ # Run platform tests INCLUDE(configure.cmake) -@@ -369,8 +371,6 @@ MARK_AS_ADVANCED(PYTHON_SHEBANG) +@@ -374,8 +376,6 @@ MARK_AS_ADVANCED(PYTHON_SHEBANG) CHECK_PCRE() diff -Nru mariadb-10.3-10.3.17/debian/patches/mips-connect-unaligned.patch mariadb-10.3-10.3.20/debian/patches/mips-connect-unaligned.patch --- mariadb-10.3-10.3.17/debian/patches/mips-connect-unaligned.patch 2019-08-03 18:58:47.000000000 +0000 +++ mariadb-10.3-10.3.20/debian/patches/mips-connect-unaligned.patch 2019-11-12 12:44:39.000000000 +0000 @@ -9,7 +9,7 @@ --- a/storage/connect/valblk.cpp +++ b/storage/connect/valblk.cpp -@@ -266,14 +266,14 @@ bool TYPBLK::Init(PGLOBAL g, bool +@@ -268,14 +268,14 @@ bool TYPBLK::Init(PGLOBAL g, bool template char *TYPBLK::GetCharString(char *p, int n) { @@ -26,7 +26,7 @@ return p; } // end of GetCharString -@@ -289,7 +289,7 @@ void TYPBLK::SetValue(PVAL valp, i +@@ -291,7 +291,7 @@ void TYPBLK::SetValue(PVAL valp, i ChkTyp(valp); if (!(b = valp->IsNull())) @@ -35,7 +35,7 @@ else Reset(n); -@@ -351,9 +351,9 @@ void TYPBLK::SetValue(PCSZ p, int +@@ -353,9 +353,9 @@ void TYPBLK::SetValue(PCSZ p, int ulonglong val = CharToNumber(p, strlen(p), maxval, Unsigned, &minus); if (minus && val < maxval) @@ -47,7 +47,7 @@ SetNull(n, false); } // end of SetValue -@@ -396,7 +396,7 @@ void TYPBLK::SetValue(PCSZ p, in +@@ -398,7 +398,7 @@ void TYPBLK::SetValue(PCSZ p, in throw Type; } // endif Check @@ -56,7 +56,7 @@ SetNull(n, false); } // end of SetValue -@@ -428,7 +428,7 @@ void TYPBLK::SetValue(PVBLK pv, in +@@ -430,7 +430,7 @@ void TYPBLK::SetValue(PVBLK pv, in ChkTyp(pv); if (!(b = pv->IsNull(n2) && Nullable)) @@ -65,7 +65,7 @@ else Reset(n1); -@@ -479,10 +479,10 @@ void TYPBLK::SetMin(PVAL valp, int +@@ -481,10 +481,10 @@ void TYPBLK::SetMin(PVAL valp, int { CheckParms(valp, n) TYPE tval = GetTypedValue(valp); @@ -78,7 +78,7 @@ } // end of SetMin -@@ -494,10 +494,10 @@ void TYPBLK::SetMax(PVAL valp, int +@@ -496,10 +496,10 @@ void TYPBLK::SetMax(PVAL valp, int { CheckParms(valp, n) TYPE tval = GetTypedValue(valp); @@ -91,7 +91,7 @@ } // end of SetMax -@@ -511,8 +511,7 @@ void TYPBLK::SetValues(PVBLK pv, i +@@ -513,8 +513,7 @@ void TYPBLK::SetValues(PVBLK pv, i CheckType(pv) TYPE *lp = ((TYPBLK*)pv)->Typp; @@ -101,7 +101,7 @@ } // end of SetValues #endif // 0 -@@ -523,7 +522,7 @@ void TYPBLK::SetValues(PVBLK pv, i +@@ -525,7 +524,7 @@ void TYPBLK::SetValues(PVBLK pv, i template void TYPBLK::Move(int i, int j) { @@ -110,7 +110,7 @@ MoveNull(i, j); } // end of Move -@@ -537,7 +536,7 @@ int TYPBLK::CompVal(PVAL vp, int n +@@ -539,7 +538,7 @@ int TYPBLK::CompVal(PVAL vp, int n ChkIndx(n); ChkTyp(vp); #endif // _DEBUG @@ -119,7 +119,7 @@ TYPE vlv = GetTypedValue(vp); return (vlv > mlv) ? 1 : (vlv < mlv) ? (-1) : 0; -@@ -549,8 +548,8 @@ int TYPBLK::CompVal(PVAL vp, int n +@@ -551,8 +550,8 @@ int TYPBLK::CompVal(PVAL vp, int n template int TYPBLK::CompVal(int i1, int i2) { @@ -130,7 +130,7 @@ return (lv1 > lv2) ? 1 : (lv1 < lv2) ? (-1) : 0; } // end of CompVal -@@ -587,7 +586,7 @@ int TYPBLK::Find(PVAL vp) +@@ -589,7 +588,7 @@ int TYPBLK::Find(PVAL vp) TYPE n = GetTypedValue(vp); for (i = 0; i < Nval; i++) @@ -139,7 +139,7 @@ break; return (i < Nval) ? i : (-1); -@@ -603,7 +602,7 @@ int TYPBLK::GetMaxLength(void) +@@ -605,7 +604,7 @@ int TYPBLK::GetMaxLength(void) int i, n, m; for (i = n = 0; i < Nval; i++) { @@ -148,7 +148,7 @@ n = MY_MAX(n, m); } // endfor i -@@ -1333,7 +1332,7 @@ char *DATBLK::GetCharString(char *p, int +@@ -1335,7 +1334,7 @@ char *DATBLK::GetCharString(char *p, int char *vp; if (Dvalp) { @@ -157,7 +157,7 @@ vp = Dvalp->GetCharString(p); } else vp = TYPBLK::GetCharString(p, n); -@@ -1349,7 +1348,7 @@ void DATBLK::SetValue(PCSZ p, int n) +@@ -1351,7 +1350,7 @@ void DATBLK::SetValue(PCSZ p, int n) if (Dvalp) { // Decode the string according to format Dvalp->SetValue_psz(p); diff -Nru mariadb-10.3-10.3.17/debian/patches/series mariadb-10.3-10.3.20/debian/patches/series --- mariadb-10.3-10.3.17/debian/patches/series 2019-08-03 18:58:47.000000000 +0000 +++ mariadb-10.3-10.3.20/debian/patches/series 2019-11-12 12:44:39.000000000 +0000 @@ -7,7 +7,6 @@ c11_atomics.patch kFreeBSD-gettid.patch mytop-merge_src:mytop_improvements.patch -Add_default_ExecStartPre_to_mariadb@.service.patch 0024-Revert-to-using-system-pcre-library.patch 0025-Change-the-default-optimization-from-O3-to-O2-in-mys.patch hurd.patch diff -Nru mariadb-10.3-10.3.17/Docs/INFO_SRC mariadb-10.3-10.3.20/Docs/INFO_SRC --- mariadb-10.3-10.3.17/Docs/INFO_SRC 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/Docs/INFO_SRC 2019-11-06 16:01:59.000000000 +0000 @@ -1,8 +1,8 @@ -commit: 4b5a14d0fe3d6945a0a9516261f563dcfd1f2c9c -date: 2019-07-28 03:14:33 +0300 -build-date: 2019-07-28 00:18:33 +0000 -short: 4b5a14d +commit: 352e7667877ec6603aff5234c003ef8c11885cd8 +date: 2019-11-06 17:56:56 +0200 +build-date: 2019-11-06 16:01:59 +0000 +short: 352e766 branch: HEAD -MariaDB source 10.3.17 +MariaDB source 10.3.20 diff -Nru mariadb-10.3-10.3.17/extra/crc32-vpmsum/CMakeLists.txt mariadb-10.3-10.3.20/extra/crc32-vpmsum/CMakeLists.txt --- mariadb-10.3-10.3.17/extra/crc32-vpmsum/CMakeLists.txt 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/extra/crc32-vpmsum/CMakeLists.txt 2019-11-06 16:01:56.000000000 +0000 @@ -2,7 +2,7 @@ ADD_LIBRARY(crc32c OBJECT vec_crc32.c) ADD_LIBRARY(crc32ieee OBJECT vec_crc32.c) -GET_TARGET_PROPERTY(CFLAGS_CRC32_VPMSUM ${CRC32_LIBRARY} COMPILE_FLAGS) +GET_PROPERTY(CFLAGS_CRC32_VPMSUM TARGET ${CRC32_LIBRARY} PROPERTY COMPILE_FLAGS) SET_TARGET_PROPERTIES(crc32c crc32ieee PROPERTIES COMPILE_FLAGS "${CFLAGS_CRC32_VPMSUM} -maltivec -mvsx -mpower8-vector -mcrypto -mpower8-vector") SET_TARGET_PROPERTIES(crc32ieee PROPERTIES COMPILE_DEFINITIONS "CRC32_FUNCTION=crc32ieee_vpmsum;CRC32_CONSTANTS_HEADER=\"crc32ieee_constants.h\"") SET_TARGET_PROPERTIES(crc32c PROPERTIES COMPILE_DEFINITIONS "CRC32_FUNCTION=crc32c_vpmsum;CRC32_CONSTANTS_HEADER=\"crc32c_constants.h\"") diff -Nru mariadb-10.3-10.3.17/extra/innochecksum.cc mariadb-10.3-10.3.20/extra/innochecksum.cc --- mariadb-10.3-10.3.17/extra/innochecksum.cc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/extra/innochecksum.cc 2019-11-06 16:01:56.000000000 +0000 @@ -568,7 +568,8 @@ page_size); if (is_corrupted && log_file) { fprintf(log_file, - "Page " ULINTPF ":%llu may be corrupted;" + "[page id: space=" ULINTPF + ", page_number=%llu] may be corrupted;" " key_version=%u\n", space_id, cur_page_num, mach_read_from_4( @@ -1590,10 +1591,8 @@ byte* xdes = NULL; /* bytes read count */ ulint bytes; - /* current time */ - time_t now; /* last time */ - time_t lastt; + time_t lastt = 0; /* stat, to get file size. */ #ifdef _WIN32 struct _stat64 st; @@ -1944,7 +1943,6 @@ /* main checksumming loop */ cur_page_num = start_page ? start_page : cur_page_num + 1; - lastt = 0; while (!feof(fil_in)) { bytes = read_file(buf, partial_page_read, @@ -2024,12 +2022,10 @@ if (verbose && !read_from_stdin) { if ((cur_page_num % 64) == 0) { - now = time(0); + time_t now = time(0); if (!lastt) { lastt= now; - } - if (now - lastt >= 1 - && is_log_enabled) { + } else if (now - lastt >= 1 && is_log_enabled) { fprintf(log_file, "page::%llu " "okay: %.3f%% done\n", (cur_page_num - 1), diff -Nru mariadb-10.3-10.3.17/extra/mariabackup/backup_copy.cc mariadb-10.3-10.3.20/extra/mariabackup/backup_copy.cc --- mariadb-10.3-10.3.17/extra/mariabackup/backup_copy.cc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/extra/mariabackup/backup_copy.cc 2019-11-06 16:01:56.000000000 +0000 @@ -478,7 +478,7 @@ { memset(rel_path, 0, sizeof rel_path); if (filename) { - strncpy(abs_path, filename, sizeof abs_path); + strncpy(abs_path, filename, sizeof abs_path - 1); abs_path[(sizeof abs_path) - 1] = 0; } else { abs_path[0] = '\0'; @@ -1607,7 +1607,8 @@ return(false); } - if (!write_xtrabackup_info(mysql_connection, XTRABACKUP_INFO, opt_history != 0)) { + if (!write_xtrabackup_info(mysql_connection, XTRABACKUP_INFO, + opt_history != 0, true)) { return(false); } diff -Nru mariadb-10.3-10.3.17/extra/mariabackup/backup_mysql.cc mariadb-10.3-10.3.20/extra/mariabackup/backup_mysql.cc --- mariadb-10.3-10.3.17/extra/mariabackup/backup_mysql.cc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/extra/mariabackup/backup_mysql.cc 2019-11-06 16:01:56.000000000 +0000 @@ -1473,9 +1473,12 @@ table containing all the history info particular to the just completed backup. */ bool -write_xtrabackup_info(MYSQL *connection, const char * filename, bool history) +write_xtrabackup_info(MYSQL *connection, const char * filename, bool history, + bool stream) { + bool result = true; + FILE *fp = NULL; char *uuid = NULL; char *server_version = NULL; char buf_start_time[100]; @@ -1501,7 +1504,8 @@ || xtrabackup_databases_exclude ); - backup_file_printf(filename, + char *buf = NULL; + int buf_len = asprintf(&buf, "uuid = %s\n" "name = %s\n" "tool_name = %s\n" @@ -1513,8 +1517,8 @@ "end_time = %s\n" "lock_time = %d\n" "binlog_pos = %s\n" - "innodb_from_lsn = %llu\n" - "innodb_to_lsn = %llu\n" + "innodb_from_lsn = " LSN_PF "\n" + "innodb_to_lsn = " LSN_PF "\n" "partial = %s\n" "incremental = %s\n" "format = %s\n" @@ -1531,12 +1535,34 @@ (int)history_lock_time, /* lock_time */ mysql_binlog_position ? mysql_binlog_position : "", /* binlog_pos */ - incremental_lsn, /* innodb_from_lsn */ - metadata_to_lsn, /* innodb_to_lsn */ + incremental_lsn, + /* innodb_from_lsn */ + metadata_to_lsn, + /* innodb_to_lsn */ is_partial? "Y" : "N", xtrabackup_incremental ? "Y" : "N", /* incremental */ xb_stream_name[xtrabackup_stream_fmt], /* format */ xtrabackup_compress ? "compressed" : "N"); /* compressed */ + if (buf_len < 0) { + msg("Error: cannot generate xtrabackup_info"); + result = false; + goto cleanup; + } + + if (stream) { + backup_file_printf(filename, "%s", buf); + } else { + fp = fopen(filename, "w"); + if (!fp) { + msg("Error: cannot open %s", filename); + result = false; + goto cleanup; + } + if (fwrite(buf, buf_len, 1, fp) < 1) { + result = false; + goto cleanup; + } + } if (!history) { goto cleanup; @@ -1598,8 +1624,11 @@ free(uuid); free(server_version); + free(buf); + if (fp) + fclose(fp); - return(true); + return(result); } extern const char *innodb_checksum_algorithm_names[]; diff -Nru mariadb-10.3-10.3.17/extra/mariabackup/backup_mysql.h mariadb-10.3-10.3.20/extra/mariabackup/backup_mysql.h --- mariadb-10.3-10.3.17/extra/mariabackup/backup_mysql.h 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/extra/mariabackup/backup_mysql.h 2019-11-06 16:01:56.000000000 +0000 @@ -68,7 +68,8 @@ write_binlog_info(MYSQL *connection); bool -write_xtrabackup_info(MYSQL *connection, const char * filename, bool history); +write_xtrabackup_info(MYSQL *connection, const char * filename, bool history, + bool stream); bool write_backup_config_file(); diff -Nru mariadb-10.3-10.3.17/extra/mariabackup/changed_page_bitmap.cc mariadb-10.3-10.3.20/extra/mariabackup/changed_page_bitmap.cc --- mariadb-10.3-10.3.17/extra/mariabackup/changed_page_bitmap.cc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/extra/mariabackup/changed_page_bitmap.cc 2019-11-06 16:01:56.000000000 +0000 @@ -390,7 +390,7 @@ bitmap_files->files[array_pos].seq_num = file_seq_num; strncpy(bitmap_files->files[array_pos].name, - bitmap_dir_file_info.name, FN_REFLEN); + bitmap_dir_file_info.name, FN_REFLEN - 1); bitmap_files->files[array_pos].name[FN_REFLEN - 1] = '\0'; bitmap_files->files[array_pos].start_lsn diff -Nru mariadb-10.3-10.3.17/extra/mariabackup/fil_cur.cc mariadb-10.3-10.3.20/extra/mariabackup/fil_cur.cc --- mariadb-10.3-10.3.17/extra/mariabackup/fil_cur.cc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/extra/mariabackup/fil_cur.cc 2019-11-06 16:01:56.000000000 +0000 @@ -338,11 +338,9 @@ memcpy(tmp_page, page, page_size); - bool decrypted = false; if (!space->crypt_data || space->crypt_data->type == CRYPT_SCHEME_UNENCRYPTED - || !fil_space_decrypt(space, tmp_frame, tmp_page, - &decrypted)) { + || !fil_space_decrypt(space, tmp_frame, tmp_page)) { return true; } diff -Nru mariadb-10.3-10.3.17/extra/mariabackup/xtrabackup.cc mariadb-10.3-10.3.20/extra/mariabackup/xtrabackup.cc --- mariadb-10.3-10.3.17/extra/mariabackup/xtrabackup.cc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/extra/mariabackup/xtrabackup.cc 2019-11-06 16:01:56.000000000 +0000 @@ -1295,7 +1295,7 @@ {"innodb_log_file_size", OPT_INNODB_LOG_FILE_SIZE, "Ignored for mysqld option compatibility", (G_PTR*) &srv_log_file_size, (G_PTR*) &srv_log_file_size, 0, - GET_ULL, REQUIRED_ARG, 48 << 20, 1 << 20, 512ULL << 30, 0, + GET_ULL, REQUIRED_ARG, 48 << 20, 1 << 20, log_group_max_size, 0, UNIV_PAGE_SIZE_MAX, 0}, {"innodb_log_files_in_group", OPT_INNODB_LOG_FILES_IN_GROUP, "Ignored for mysqld option compatibility", @@ -1528,7 +1528,8 @@ " --defaults-extra-file=./backup-my.cnf --defaults-group-suffix=%s --datadir=." " --innodb --innodb-fast-shutdown=0 --loose-partition" " --innodb_purge_rseg_truncate_frequency=1 --innodb-buffer-pool-size=%llu" - " --console --skip-log-error --bootstrap < " BOOTSTRAP_FILENAME IF_WIN("\"",""), + " --console --skip-log-error --skip-log-bin --bootstrap < " + BOOTSTRAP_FILENAME IF_WIN("\"",""), mariabackup_exe, orig_argv1, (my_defaults_group_suffix?my_defaults_group_suffix:""), xtrabackup_use_memory); @@ -1540,7 +1541,8 @@ " --defaults-file=./backup-my.cnf --defaults-group-suffix=%s --datadir=." " --innodb --innodb-fast-shutdown=0 --loose-partition" " --innodb_purge_rseg_truncate_frequency=1 --innodb-buffer-pool-size=%llu" - " --console --log-error= --bootstrap < " BOOTSTRAP_FILENAME IF_WIN("\"",""), + " --console --log-error= --skip-log-bin --bootstrap < " + BOOTSTRAP_FILENAME IF_WIN("\"",""), mariabackup_exe, (my_defaults_group_suffix?my_defaults_group_suffix:""), xtrabackup_use_memory); @@ -3966,7 +3968,7 @@ } sprintf(filename, "%s/%s", xtrabackup_extra_lsndir, XTRABACKUP_INFO); - if (!write_xtrabackup_info(mysql_connection, filename, false)) { + if (!write_xtrabackup_info(mysql_connection, filename, false, false)) { msg("Error: failed to write info " "to '%s'.", filename); return false; diff -Nru mariadb-10.3-10.3.17/include/heap.h mariadb-10.3-10.3.20/include/heap.h --- mariadb-10.3-10.3.17/include/heap.h 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/include/heap.h 2019-11-06 16:01:56.000000000 +0000 @@ -246,7 +246,7 @@ int heap_rkey(HP_INFO *info, uchar *record, int inx, const uchar *key, key_part_map keypart_map, enum ha_rkey_function find_flag); extern uchar * heap_find(HP_INFO *info,int inx,const uchar *key); -extern int heap_check_heap(HP_INFO *info, my_bool print_status); +extern int heap_check_heap(const HP_INFO *info, my_bool print_status); extern uchar *heap_position(HP_INFO *info); /* The following is for programs that uses the old HEAP interface where diff -Nru mariadb-10.3-10.3.17/include/my_dbug.h mariadb-10.3-10.3.20/include/my_dbug.h --- mariadb-10.3-10.3.17/include/my_dbug.h 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/include/my_dbug.h 2019-11-06 16:01:56.000000000 +0000 @@ -1,5 +1,5 @@ /* Copyright (c) 2000, 2010, Oracle and/or its affiliates. - Copyright (C) 2000, 2017, MariaDB Corporation Ab + Copyright (C) 2000, 2019, MariaDB Corporation. 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 @@ -58,6 +58,8 @@ extern void _db_end_(void); extern void _db_lock_file_(void); extern void _db_unlock_file_(void); +ATTRIBUTE_COLD +extern my_bool _db_my_assert(const char *file, int line, const char *msg); extern FILE *_db_fp_(void); extern void _db_flush_(void); extern void dbug_swap_code_state(void **code_state_store); @@ -103,7 +105,9 @@ #define DBUG_END() _db_end_ () #define DBUG_LOCK_FILE _db_lock_file_() #define DBUG_UNLOCK_FILE _db_unlock_file_() -#define DBUG_ASSERT(A) do { if (!(A)) { _db_flush_(); assert(A); }} while (0) +#define DBUG_ASSERT(A) do { \ + if (unlikely(!(A)) && _db_my_assert(__FILE__, __LINE__, #A)) assert(A); \ +} while (0) #define DBUG_SLOW_ASSERT(A) DBUG_ASSERT(A) #define DBUG_ASSERT_EXISTS #define DBUG_EXPLAIN(buf,len) _db_explain_(0, (buf),(len)) diff -Nru mariadb-10.3-10.3.17/include/my_global.h mariadb-10.3-10.3.20/include/my_global.h --- mariadb-10.3-10.3.17/include/my_global.h 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/include/my_global.h 2019-11-06 16:01:56.000000000 +0000 @@ -1,6 +1,6 @@ /* Copyright (c) 2001, 2013, Oracle and/or its affiliates. - Copyright (c) 2009, 2017, MariaDB Corporation + Copyright (c) 2009, 2019, MariaDB Corporation. 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 @@ -445,6 +445,20 @@ #if HAVE_MADVISE && !HAVE_DECL_MADVISE && defined(__cplusplus) extern "C" int madvise(void *addr, size_t len, int behav); #endif +#ifdef HAVE_SYS_MMAN_H +#include +#endif +/** FreeBSD equivalent */ +#if defined(MADV_CORE) && !defined(MADV_DODUMP) +#define MADV_DODUMP MADV_CORE +#define MADV_DONTDUMP MADV_NOCORE +#define DODUMP_STR "MADV_CORE" +#define DONTDUMP_STR "MADV_NOCORE" +#else +#define DODUMP_STR "MADV_DODUMP" +#define DONTDUMP_STR "MADV_DONTDUMP" +#endif + #define QUOTE_ARG(x) #x /* Quote argument (before cpp) */ #define STRINGIFY_ARG(x) QUOTE_ARG(x) /* Quote argument, after cpp */ @@ -1043,6 +1057,19 @@ #define reg16 register #endif +/* + MYSQL_PLUGIN_IMPORT macro is used to export mysqld data + (i.e variables) for usage in storage engine loadable plugins. + Outside of Windows, it is dummy. +*/ +#ifndef MYSQL_PLUGIN_IMPORT +#if (defined(_WIN32) && defined(MYSQL_DYNAMIC_PLUGIN)) +#define MYSQL_PLUGIN_IMPORT __declspec(dllimport) +#else +#define MYSQL_PLUGIN_IMPORT +#endif +#endif + #include /* Some helper macros */ @@ -1169,19 +1196,6 @@ #endif #endif /* !defined(__func__) */ -/* - MYSQL_PLUGIN_IMPORT macro is used to export mysqld data - (i.e variables) for usage in storage engine loadable plugins. - Outside of Windows, it is dummy. -*/ -#ifndef MYSQL_PLUGIN_IMPORT -#if (defined(_WIN32) && defined(MYSQL_DYNAMIC_PLUGIN)) -#define MYSQL_PLUGIN_IMPORT __declspec(dllimport) -#else -#define MYSQL_PLUGIN_IMPORT -#endif -#endif - /* Defines that are unique to the embedded version of MySQL */ #ifdef EMBEDDED_LIBRARY diff -Nru mariadb-10.3-10.3.17/include/mysql/service_wsrep.h mariadb-10.3-10.3.20/include/mysql/service_wsrep.h --- mariadb-10.3-10.3.17/include/mysql/service_wsrep.h 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/include/mysql/service_wsrep.h 2019-11-06 16:01:56.000000000 +0000 @@ -101,7 +101,7 @@ enum wsrep_conflict_state (*wsrep_thd_get_conflict_state_func)(MYSQL_THD); my_bool (*wsrep_thd_is_BF_func)(MYSQL_THD , my_bool); my_bool (*wsrep_thd_is_wsrep_func)(MYSQL_THD thd); - char * (*wsrep_thd_query_func)(THD *thd); + const char * (*wsrep_thd_query_func)(THD *thd); enum wsrep_query_state (*wsrep_thd_query_state_func)(THD *thd); const char * (*wsrep_thd_query_state_str_func)(THD *thd); int (*wsrep_thd_retry_counter_func)(THD *thd); @@ -186,7 +186,7 @@ bool wsrep_consistency_check(THD *thd); bool wsrep_prepare_key(const unsigned char* cache_key, size_t cache_key_len, const unsigned char* row_id, size_t row_id_len, struct wsrep_buf* key, size_t* key_len); -char *wsrep_thd_query(THD *thd); +const char *wsrep_thd_query(THD *thd); const char *wsrep_thd_conflict_state_str(THD *thd); const char *wsrep_thd_exec_mode_str(THD *thd); const char *wsrep_thd_query_state_str(THD *thd); diff -Nru mariadb-10.3-10.3.17/include/my_sys.h mariadb-10.3-10.3.20/include/my_sys.h --- mariadb-10.3-10.3.17/include/my_sys.h 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/include/my_sys.h 2019-11-06 16:01:56.000000000 +0000 @@ -1,5 +1,5 @@ /* Copyright (c) 2000, 2013, Oracle and/or its affiliates. - Copyright (c) 2010, 2017, MariaDB Corporation. + Copyright (c) 2010, 2019, MariaDB Corporation. 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 @@ -267,6 +267,7 @@ extern uint mysys_usage_id; extern int32 my_file_opened; extern my_bool my_init_done, my_thr_key_mysys_exists; +extern my_bool my_assert; extern my_bool my_assert_on_error; extern myf my_global_flags; /* Set to MY_WME for more error messages */ /* Point to current my_message() */ @@ -963,8 +964,6 @@ #endif #ifdef HAVE_SYS_MMAN_H -#include - #ifndef MAP_NOSYNC #define MAP_NOSYNC 0 #endif diff -Nru mariadb-10.3-10.3.17/include/my_time.h mariadb-10.3-10.3.20/include/my_time.h --- mariadb-10.3-10.3.17/include/my_time.h 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/include/my_time.h 2019-11-06 16:01:56.000000000 +0000 @@ -120,7 +120,7 @@ static inline longlong double_to_datetime(double nr, MYSQL_TIME *ltime, ulonglong flags, int *cut) { - if (nr < 0 || nr > LONGLONG_MAX) + if (nr < 0 || nr > (double)LONGLONG_MAX) nr= (double)LONGLONG_MAX; return number_to_datetime((longlong) floor(nr), (ulong)((nr-floor(nr))*TIME_SECOND_PART_FACTOR), diff -Nru mariadb-10.3-10.3.17/include/my_valgrind.h mariadb-10.3-10.3.20/include/my_valgrind.h --- mariadb-10.3-10.3.17/include/my_valgrind.h 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/include/my_valgrind.h 2019-11-06 16:01:56.000000000 +0000 @@ -55,12 +55,19 @@ #endif /* HAVE_VALGRIND_MEMCHECK_H */ #if defined(TRASH_FREED_MEMORY) +/* NOTE: Do not invoke TRASH_FILL directly! Use TRASH_ALLOC or TRASH_FREE. + +The MEM_UNDEFINED() call before memset() is for canceling the effect +of any previous MEM_NOACCESS(). We must invoke MEM_UNDEFINED() after +writing the dummy pattern, unless MEM_NOACCESS() is going to be invoked. +On AddressSanitizer, the MEM_UNDEFINED() in TRASH_ALLOC() has no effect. */ #define TRASH_FILL(A,B,C) do { const size_t trash_tmp= (B); MEM_UNDEFINED(A, trash_tmp); memset(A, C, trash_tmp); } while (0) #else -#define TRASH_FILL(A,B,C) do { MEM_UNDEFINED((A), (B)); } while (0) +#define TRASH_FILL(A,B,C) while (0) #endif - +/** Note that some memory became allocated or uninitialized. */ #define TRASH_ALLOC(A,B) do { TRASH_FILL(A,B,0xA5); MEM_UNDEFINED(A,B); } while(0) +/** Note that some memory became freed. (Prohibit further access to it.) */ #define TRASH_FREE(A,B) do { TRASH_FILL(A,B,0x8F); MEM_NOACCESS(A,B); } while(0) #endif /* MY_VALGRIND_INCLUDED */ diff -Nru mariadb-10.3-10.3.17/include/source_revision.h mariadb-10.3-10.3.20/include/source_revision.h --- mariadb-10.3-10.3.17/include/source_revision.h 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/include/source_revision.h 2019-11-06 16:01:59.000000000 +0000 @@ -1 +1 @@ -#define SOURCE_REVISION "4b5a14d0fe3d6945a0a9516261f563dcfd1f2c9c" +#define SOURCE_REVISION "352e7667877ec6603aff5234c003ef8c11885cd8" diff -Nru mariadb-10.3-10.3.17/libmariadb/cmake/CheckFunctions.cmake mariadb-10.3-10.3.20/libmariadb/cmake/CheckFunctions.cmake --- mariadb-10.3-10.3.17/libmariadb/cmake/CheckFunctions.cmake 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/cmake/CheckFunctions.cmake 2019-11-06 16:01:56.000000000 +0000 @@ -21,3 +21,4 @@ CHECK_FUNCTION_EXISTS (nl_langinfo HAVE_NL_LANGINFO) CHECK_FUNCTION_EXISTS (setlocale HAVE_SETLOCALE) CHECK_FUNCTION_EXISTS (poll HAVE_POLL) +CHECK_FUNCTION_EXISTS (getpwuid HAVE_GETPWUID) diff -Nru mariadb-10.3-10.3.17/libmariadb/cmake/install.cmake mariadb-10.3-10.3.20/libmariadb/cmake/install.cmake --- mariadb-10.3-10.3.17/libmariadb/cmake/install.cmake 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/cmake/install.cmake 2019-11-06 16:01:56.000000000 +0000 @@ -65,7 +65,10 @@ SET(INSTALL_PCDIR_DEFAULT "lib/pkgconfig") SET(INSTALL_INCLUDEDIR_DEFAULT "include/mariadb") SET(INSTALL_DOCDIR_DEFAULT "docs") -SET(INSTALL_PLUGINDIR_DEFAULT "lib/mariadb/plugin") +IF(NOT IS_SUBPROJECT) + SET(INSTALL_PLUGINDIR_DEFAULT "lib/mariadb/plugin") +ELSE() +ENDIF() SET(LIBMARIADB_STATIC_DEFAULT "mariadbclient") # # RPM layout diff -Nru mariadb-10.3-10.3.17/libmariadb/CMakeLists.txt mariadb-10.3-10.3.20/libmariadb/CMakeLists.txt --- mariadb-10.3-10.3.17/libmariadb/CMakeLists.txt 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/CMakeLists.txt 2019-11-06 16:01:56.000000000 +0000 @@ -36,7 +36,7 @@ SET(CPACK_PACKAGE_VERSION_MAJOR 3) SET(CPACK_PACKAGE_VERSION_MINOR 1) -SET(CPACK_PACKAGE_VERSION_PATCH 3) +SET(CPACK_PACKAGE_VERSION_PATCH 5) SET(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") MATH(EXPR MARIADB_PACKAGE_VERSION_ID "${CPACK_PACKAGE_VERSION_MAJOR} * 10000 + ${CPACK_PACKAGE_VERSION_MINOR} * 100 + diff -Nru mariadb-10.3-10.3.17/libmariadb/include/ma_common.h mariadb-10.3-10.3.20/libmariadb/include/ma_common.h --- mariadb-10.3-10.3.17/libmariadb/include/ma_common.h 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/include/ma_common.h 2019-11-06 16:01:56.000000000 +0000 @@ -91,6 +91,7 @@ struct st_mariadb_net_extension { enum enum_multi_status multi_status; + int extended_errno; }; struct st_mariadb_session_state diff -Nru mariadb-10.3-10.3.17/libmariadb/include/ma_crypt.h mariadb-10.3-10.3.20/libmariadb/include/ma_crypt.h --- mariadb-10.3-10.3.17/libmariadb/include/ma_crypt.h 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/include/ma_crypt.h 2019-11-06 16:01:56.000000000 +0000 @@ -44,14 +44,7 @@ #define MA_MAX_HASH_SIZE 64 /** \typedef MRL hash context */ -#if defined(HAVE_OPENSSL) -typedef void MA_HASH_CTX; -#elif defined(HAVE_GNUTLS) -typedef struct { - void *ctx; - const struct nettle_hash *hash; -} MA_HASH_CTX; -#elif defined(HAVE_SCHANNEL) +#if defined(WIN32) #include #include typedef struct { @@ -61,6 +54,13 @@ PBYTE hashObject; DWORD digest_len; } MA_HASH_CTX; +#elif defined(HAVE_OPENSSL) +typedef void MA_HASH_CTX; +#elif defined(HAVE_GNUTLS) +typedef struct { + void *ctx; + const struct nettle_hash *hash; +} MA_HASH_CTX; #endif /** diff -Nru mariadb-10.3-10.3.17/libmariadb/include/mariadb_stmt.h mariadb-10.3-10.3.20/libmariadb/include/mariadb_stmt.h --- mariadb-10.3-10.3.17/libmariadb/include/mariadb_stmt.h 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/include/mariadb_stmt.h 2019-11-06 16:01:56.000000000 +0000 @@ -38,7 +38,9 @@ { \ (a)->last_errno= (b);\ strncpy((a)->sqlstate, (c), SQLSTATE_LENGTH);\ - strncpy((a)->last_error, (d) ? (d) : ER((b)), MYSQL_ERRMSG_SIZE - 1);\ + (a)->sqlstate[SQLSTATE_LENGTH]= 0;\ + strncpy((a)->last_error, (d) ? (d) : ER((b)), MYSQL_ERRMSG_SIZE);\ + (a)->last_error[MYSQL_ERRMSG_SIZE - 1]= 0;\ } #define CLEAR_CLIENT_STMT_ERROR(a) \ diff -Nru mariadb-10.3-10.3.17/libmariadb/include/mariadb_version.h.in mariadb-10.3-10.3.20/libmariadb/include/mariadb_version.h.in --- mariadb-10.3-10.3.17/libmariadb/include/mariadb_version.h.in 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/include/mariadb_version.h.in 2019-11-06 16:01:56.000000000 +0000 @@ -24,7 +24,7 @@ #define MARIADB_PACKAGE_VERSION_ID @MARIADB_PACKAGE_VERSION_ID@ #define MARIADB_SYSTEM_TYPE "@CMAKE_SYSTEM_NAME@" #define MARIADB_MACHINE_TYPE "@CMAKE_SYSTEM_PROCESSOR@" -#define MARIADB_PLUGINDIR "@PLUGINDIR@" +#define MARIADB_PLUGINDIR "@CMAKE_INSTALL_PREFIX@/@INSTALL_PLUGINDIR@" /* mysqld compile time options */ #ifndef MYSQL_CHARSET diff -Nru mariadb-10.3-10.3.17/libmariadb/include/mysql.h mariadb-10.3-10.3.20/libmariadb/include/mysql.h --- mariadb-10.3-10.3.17/libmariadb/include/mysql.h 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/include/mysql.h 2019-11-06 16:01:56.000000000 +0000 @@ -125,7 +125,9 @@ { \ (a)->net.last_errno= (b);\ strncpy((a)->net.sqlstate, (c), SQLSTATE_LENGTH);\ + (a)->net.sqlstate[SQLSTATE_LENGTH]= 0;\ strncpy((a)->net.last_error, (d) ? (d) : ER((b)), MYSQL_ERRMSG_SIZE - 1);\ + (a)->net.last_error[MYSQL_ERRMSG_SIZE - 1]= 0;\ } /* For mysql_async.c */ @@ -138,6 +140,7 @@ (a)->net.last_errno= 0;\ strcpy((a)->net.sqlstate, "00000");\ (a)->net.last_error[0]= '\0';\ + (a)->net.extension->extended_errno= 0;\ } #define MYSQL_COUNT_ERROR (~(unsigned long long) 0) diff -Nru mariadb-10.3-10.3.17/libmariadb/libmariadb/CMakeLists.txt mariadb-10.3-10.3.20/libmariadb/libmariadb/CMakeLists.txt --- mariadb-10.3-10.3.17/libmariadb/libmariadb/CMakeLists.txt 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/libmariadb/CMakeLists.txt 2019-11-06 16:01:56.000000000 +0000 @@ -75,8 +75,6 @@ mysql_get_server_version mysql_get_socket mysql_get_ssl_cipher - mysql_get_timeout_value - mysql_get_timeout_value_ms mysql_hex_string mysql_info mysql_init @@ -201,8 +199,6 @@ mysql_fetch_row_start mysql_free_result_cont mysql_free_result_start - mysql_get_timeout_value - mysql_get_timeout_value_ms mysql_kill_cont mysql_kill_start mysql_list_fields_cont @@ -412,7 +408,7 @@ IF(CMAKE_SYSTEM_NAME MATCHES "Linux" OR CMAKE_SYSTEM_NAME MATCHES "GNU") - IF (NOT WITH_ASAN AND NOT WITH_TSAN) + IF (NOT WITH_ASAN AND NOT WITH_TSAN AND NOT WITH_UBSAN AND NOT WITH_MSAN) TARGET_LINK_LIBRARIES (libmariadb "-Wl,--no-undefined") ENDIF() SET_TARGET_PROPERTIES(libmariadb PROPERTIES LINK_FLAGS "${CC_BINARY_DIR}/libmariadb/mariadbclient.def") diff -Nru mariadb-10.3-10.3.17/libmariadb/libmariadb/ma_client_plugin.c.in mariadb-10.3-10.3.20/libmariadb/libmariadb/ma_client_plugin.c.in --- mariadb-10.3-10.3.17/libmariadb/libmariadb/ma_client_plugin.c.in 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/libmariadb/ma_client_plugin.c.in 2019-11-06 16:01:56.000000000 +0000 @@ -30,10 +30,8 @@ There is no reference counting and no unloading either. */ -#if _MSC_VER /* Silence warnings about variable 'unused' being used. */ #define FORCE_INIT_OF_VARS 1 -#endif #include #include diff -Nru mariadb-10.3-10.3.17/libmariadb/libmariadb/mariadb_lib.c mariadb-10.3-10.3.20/libmariadb/libmariadb/mariadb_lib.c --- mariadb-10.3-10.3.17/libmariadb/libmariadb/mariadb_lib.c 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/libmariadb/mariadb_lib.c 2019-11-06 16:01:56.000000000 +0000 @@ -1020,7 +1020,7 @@ mysql->charset= mysql_find_charset_name(MARIADB_DEFAULT_CHARSET); mysql->methods= &MARIADB_DEFAULT_METHODS; strcpy(mysql->net.sqlstate, "00000"); - mysql->net.last_error[0]= mysql->net.last_errno= 0; + mysql->net.last_error[0]= mysql->net.last_errno= mysql->net.extension->extended_errno= 0; if (ENABLED_LOCAL_INFILE != LOCAL_INFILE_MODE_OFF) mysql->options.client_flag|= CLIENT_LOCAL_FILES; @@ -1199,9 +1199,42 @@ return my; } } - +#ifndef HAVE_SCHANNEL return mysql->methods->db_connect(mysql, host, user, passwd, db, port, unix_socket, client_flag); +#else +/* + With older windows versions (prior Win 10) TLS connections periodically + fail with SEC_E_INVALID_TOKEN, SEC_E_BUFFER_TOO_SMALL or SEC_E_MESSAGE_ALTERED + error (see MDEV-13492). If the connect attempt returns on of these error codes + in mysql->net.extended_errno we will try to connect again (max. 3 times) +*/ +#define MAX_SCHANNEL_CONNECT_ATTEMPTS 3 + { + int ssl_retry= (mysql->options.use_ssl) ? MAX_SCHANNEL_CONNECT_ATTEMPTS : 1; + MYSQL *my= NULL; + while (ssl_retry) + { + if ((my= mysql->methods->db_connect(mysql, host, user, passwd, + db, port, unix_socket, client_flag | CLIENT_REMEMBER_OPTIONS))) + return my; + + switch (mysql->net.extension->extended_errno) { + case SEC_E_INVALID_TOKEN: + case SEC_E_BUFFER_TOO_SMALL: + case SEC_E_MESSAGE_ALTERED: + ssl_retry--; + break; + default: + ssl_retry= 0; + break; + } + } + if (!my && !(client_flag & CLIENT_REMEMBER_OPTIONS)) + mysql_close_options(mysql); + return my; + } +#endif } MYSQL *mthd_my_real_connect(MYSQL *mysql, const char *host, const char *user, @@ -3757,7 +3790,7 @@ #ifdef HAVE_TLS *((const char **)arg)= tls_library_version; #else - *((char **)arg)= "Off"; + *((const char **)arg)= "Off"; #endif break; case MARIADB_CLIENT_VERSION: diff -Nru mariadb-10.3-10.3.17/libmariadb/libmariadb/secure/gnutls.c mariadb-10.3-10.3.20/libmariadb/libmariadb/secure/gnutls.c --- mariadb-10.3-10.3.17/libmariadb/libmariadb/secure/gnutls.c 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/libmariadb/secure/gnutls.c 2019-11-06 16:01:56.000000000 +0000 @@ -19,10 +19,10 @@ *************************************************************************************/ #ifdef HAVE_GNUTLS +#include #include #include #include -#include #include #include #include diff -Nru mariadb-10.3-10.3.17/libmariadb/libmariadb/secure/ma_schannel.c mariadb-10.3-10.3.20/libmariadb/libmariadb/secure/ma_schannel.c --- mariadb-10.3-10.3.17/libmariadb/libmariadb/secure/ma_schannel.c 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/libmariadb/secure/ma_schannel.c 2019-11-06 16:01:56.000000000 +0000 @@ -26,12 +26,16 @@ #define MAX_SSL_ERR_LEN 100 #define SCHANNEL_PAYLOAD(A) (A).cbMaximumMessage + (A).cbHeader + (A).cbTrailer -void ma_schannel_set_win_error(MARIADB_PVIO *pvio); +void ma_schannel_set_win_error(MARIADB_PVIO *pvio, DWORD ErrorNo __attribute__((unused))); /* {{{ void ma_schannel_set_sec_error */ void ma_schannel_set_sec_error(MARIADB_PVIO *pvio, DWORD ErrorNo) { MYSQL *mysql= pvio->mysql; + + if (ErrorNo != SEC_E_OK) + mysql->net.extension->extended_errno= ErrorNo; + switch(ErrorNo) { case SEC_E_ILLEGAL_MESSAGE: pvio->set_error(mysql, CR_SSL_CONNECTION_ERROR, SQLSTATE_UNKNOWN, "SSL connection error: The message received was unexpected or badly formatted"); @@ -73,20 +77,20 @@ break; case SEC_E_INTERNAL_ERROR: if (GetLastError()) - ma_schannel_set_win_error(pvio); + ma_schannel_set_win_error(pvio, 0); else pvio->set_error(mysql, CR_SSL_CONNECTION_ERROR, SQLSTATE_UNKNOWN, "The Local Security Authority cannot be contacted"); break; default: - pvio->set_error(mysql, CR_SSL_CONNECTION_ERROR, SQLSTATE_UNKNOWN, "Unknown SSL error (0x%x)", ErrorNo); + ma_schannel_set_win_error(pvio, ErrorNo); } } /* }}} */ /* {{{ void ma_schnnel_set_win_error */ -void ma_schannel_set_win_error(MARIADB_PVIO *pvio) +void ma_schannel_set_win_error(MARIADB_PVIO *pvio, DWORD ErrorNo __attribute__((unused))) { - ulong ssl_errno= GetLastError(); + ulong ssl_errno= ErrorNo ? ErrorNo : GetLastError(); char *ssl_error_reason= NULL; char *p; char buffer[256]; @@ -146,7 +150,7 @@ if ((hfile= CreateFile(PemFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL )) == INVALID_HANDLE_VALUE) { - ma_schannel_set_win_error(pvio); + ma_schannel_set_win_error(pvio, 0); return NULL; } @@ -164,7 +168,7 @@ if (!ReadFile(hfile, buffer, *buffer_len, &dwBytesRead, NULL)) { - ma_schannel_set_win_error(pvio); + ma_schannel_set_win_error(pvio, 0); goto end; } @@ -174,7 +178,7 @@ if (!CryptStringToBinaryA(buffer, *buffer_len, CRYPT_STRING_BASE64HEADER, NULL, &der_buffer_length, NULL, NULL)) { - ma_schannel_set_win_error(pvio); + ma_schannel_set_win_error(pvio, 0); goto end; } /* allocate DER binary buffer */ @@ -187,7 +191,7 @@ if (!CryptStringToBinaryA(buffer, *buffer_len, CRYPT_STRING_BASE64HEADER, der_buffer, &der_buffer_length, NULL, NULL)) { - ma_schannel_set_win_error(pvio); + ma_schannel_set_win_error(pvio, 0); goto end; } @@ -217,7 +221,7 @@ if ((hfile = CreateFile(PemFile, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) { - ma_schannel_set_win_error(pvio); + ma_schannel_set_win_error(pvio, 0); return NULL; } @@ -235,7 +239,7 @@ if (!ReadFile(hfile, buffer, *buffer_len, &dwBytesRead, NULL)) { - ma_schannel_set_win_error(pvio); + ma_schannel_set_win_error(pvio, 0); goto end; } @@ -262,7 +266,7 @@ if (!CryptStringToBinaryA(buffer, buffer_len, CRYPT_STRING_BASE64HEADER, NULL, der_len, NULL, NULL)) { - ma_schannel_set_win_error(pvio); + ma_schannel_set_win_error(pvio, 0); goto end; } /* allocate DER binary buffer */ @@ -275,7 +279,7 @@ if (!CryptStringToBinaryA(buffer, buffer_len, CRYPT_STRING_BASE64HEADER, der_buffer, der_len, NULL, NULL)) { - ma_schannel_set_win_error(pvio); + ma_schannel_set_win_error(pvio, 0); goto end; } return der_buffer; @@ -350,7 +354,7 @@ if (!(ctx->client_cert_ctx = (CERT_CONTEXT*)CertCreateCertificateContext(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, der_buffer, der_buffer_length))) { - ma_schannel_set_win_error(pvio); + ma_schannel_set_win_error(pvio, 0); goto error; } } @@ -429,7 +433,7 @@ goto end; if (!(ctx= (CERT_CONTEXT *)CertCreateCertificateContext(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, der_buffer, der_buffer_length))) - ma_schannel_set_win_error(pvio); + ma_schannel_set_win_error(pvio, 0); end: if (der_buffer) @@ -468,7 +472,7 @@ goto end; if (!(ctx= CertCreateCRLContext(X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, der_buffer, der_buffer_length))) - ma_schannel_set_win_error(pvio); + ma_schannel_set_win_error(pvio, 0); end: if (der_buffer) free(der_buffer); @@ -518,7 +522,7 @@ 0, NULL, NULL, &priv_key_len)) { - ma_schannel_set_win_error(pvio); + ma_schannel_set_win_error(pvio, 0); goto end; } @@ -535,20 +539,20 @@ 0, NULL, priv_key, &priv_key_len)) { - ma_schannel_set_win_error(pvio); + ma_schannel_set_win_error(pvio, 0); goto end; } /* Acquire context */ if (!CryptAcquireContext(&crypt_prov, NULL, MS_ENHANCED_PROV, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) { - ma_schannel_set_win_error(pvio); + ma_schannel_set_win_error(pvio, 0); goto end; } /* ... and import the private key */ if (!CryptImportKey(crypt_prov, priv_key, priv_key_len, 0, 0, (HCRYPTKEY *)&crypt_key)) { - ma_schannel_set_win_error(pvio); + ma_schannel_set_win_error(pvio, 0); goto end; } @@ -560,7 +564,7 @@ if (CertSetCertificateContextProperty(ctx->client_cert_ctx, CERT_KEY_CONTEXT_PROP_ID, 0, &kpi)) rc= 1; else - ma_schannel_set_win_error(pvio); + ma_schannel_set_win_error(pvio, 0); end: if (ctx->der_key) @@ -1043,7 +1047,7 @@ DWORD flags = CERT_STORE_SIGNATURE_FLAG | CERT_STORE_TIME_VALIDITY_FLAG; if (!CertVerifySubjectCertificateContext(pServerCert, ca_ctx, &flags)) { - ma_schannel_set_win_error(pvio); + ma_schannel_set_win_error(pvio, 0); goto end; } diff -Nru mariadb-10.3-10.3.17/libmariadb/plugins/auth/caching_sha2_pw.c mariadb-10.3-10.3.20/libmariadb/plugins/auth/caching_sha2_pw.c --- mariadb-10.3-10.3.17/libmariadb/plugins/auth/caching_sha2_pw.c 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/plugins/auth/caching_sha2_pw.c 2019-11-06 16:01:56.000000000 +0000 @@ -21,15 +21,14 @@ #endif #ifdef _WIN32 -#if !defined(HAVE_OPENSSL) #define HAVE_WINCRYPT -#else +#undef HAVE_OPENSSL +#undef HAVE_GNUTLS #pragma comment(lib, "crypt32.lib") #pragma comment(lib, "ws2_32.lib") #endif -#endif -#if defined(HAVE_OPENSSL) || defined(HAVE_SCHANNEL) || defined(HAVE_GNUTLS) +#if defined(HAVE_OPENSSL) || defined(HAVE_WINCRYPT) || defined(HAVE_GNUTLS) #include #include @@ -51,7 +50,7 @@ #include #elif defined(HAVE_GNUTLS) #include -#elif defined(HAVE_SCHANNEL) +#elif defined(HAVE_WINCRYPT) #include #include #include @@ -89,7 +88,7 @@ unsigned char digest1[MA_SHA256_HASH_SIZE], digest2[MA_SHA256_HASH_SIZE], new_scramble[MA_SHA256_HASH_SIZE]; -#ifdef HAVE_SCHANNEL +#ifdef HAVE_WINCRYPT MA_HASH_CTX myctx; MA_HASH_CTX *ctx= &myctx; #else @@ -108,7 +107,7 @@ ma_hash_input(ctx, source, source_len); ma_hash_result(ctx, digest1); ma_hash_free(ctx); -#ifndef HAVE_SCHANNEL +#ifndef HAVE_WINCRYPT ctx = NULL; #endif @@ -118,7 +117,7 @@ ma_hash_input(ctx, digest1, MA_SHA256_HASH_SIZE); ma_hash_result(ctx, digest2); ma_hash_free(ctx); -#ifndef HAVE_SCHANNEL +#ifndef HAVE_WINCRYPT ctx = NULL; #endif @@ -165,11 +164,11 @@ auth_caching_sha2_client }; -#ifdef HAVE_SCHANNEL +#ifdef HAVE_WINCRYPT static LPBYTE ma_load_pem(const char *buffer, DWORD *buffer_len) { LPBYTE der_buffer= NULL; - DWORD der_buffer_length; + DWORD der_buffer_length= 0; if (buffer_len == NULL || *buffer_len == 0) return NULL; @@ -257,7 +256,7 @@ #if defined(HAVE_OPENSSL) RSA *pubkey= NULL; BIO *bio; -#elif defined(HAVE_SCHANNEL) +#elif defined(HAVE_WINCRYPT) BCRYPT_KEY_HANDLE pubkey= 0; BCRYPT_OAEP_PADDING_INFO paddingInfo; LPBYTE der_buffer= NULL; @@ -276,14 +275,6 @@ memmove(mysql->scramble_buff, packet, SCRAMBLE_LENGTH); mysql->scramble_buff[SCRAMBLE_LENGTH]= 0; - /* if a tls session is active we need to send plain password */ - if (mysql->client_flag & CLIENT_SSL) - { - if (vio->write_packet(vio, (unsigned char *)mysql->passwd, (int)strlen(mysql->passwd) + 1)) - return CR_ERROR; - return CR_OK; - } - /* send empty packet if no password was provided */ if (!mysql->passwd || !mysql->passwd[0]) { @@ -351,7 +342,7 @@ rsa_size= RSA_size(pubkey); BIO_free(bio); ERR_clear_error(); -#elif defined(HAVE_SCHANNEL) +#elif defined(HAVE_WINCRYPT) der_buffer_len= packet_length; /* Load pem and convert it to binary object. New length will be returned in der_buffer_len */ @@ -389,7 +380,7 @@ #if defined(HAVE_OPENSSL) if (RSA_public_encrypt(pwlen, (unsigned char *)passwd, rsa_enc_pw, pubkey, RSA_PKCS1_OAEP_PADDING) < 0) goto error; -#elif defined(HAVE_SCHANNEL) +#elif defined(HAVE_WINCRYPT) ZeroMemory(&paddingInfo, sizeof(paddingInfo)); paddingInfo.pszAlgId = BCRYPT_SHA1_ALGORITHM; if ((rc= BCryptEncrypt(pubkey, (PUCHAR)passwd, pwlen, &paddingInfo, NULL, 0, rsa_enc_pw, @@ -414,7 +405,7 @@ #if defined(HAVE_OPENSSL) if (pubkey) RSA_free(pubkey); -#elif defined(HAVE_SCHANNEL) +#elif defined(HAVE_WINCRYPT) if (pubkey) BCryptDestroyKey(pubkey); if (publicKeyInfo) @@ -451,7 +442,7 @@ int unused3 __attribute__((unused)), va_list unused4 __attribute__((unused))) { -#if defined(HAVE_SCHANNEL) +#if defined(HAVE_WINCRYPT) BCryptOpenAlgorithmProvider(&Sha256Prov, BCRYPT_SHA256_ALGORITHM, NULL, 0); BCryptOpenAlgorithmProvider(&RsaProv, BCRYPT_RSA_ALGORITHM, NULL, 0); #endif @@ -462,7 +453,7 @@ /* {{{ auth_caching_sha2_deinit */ static int auth_caching_sha2_deinit() { -#if defined(HAVE_SCHANNEL) +#if defined(HAVE_WINCRYPT) BCryptCloseAlgorithmProvider(Sha256Prov, 0); BCryptCloseAlgorithmProvider(RsaProv, 0); #endif diff -Nru mariadb-10.3-10.3.17/libmariadb/plugins/auth/CMakeLists.txt mariadb-10.3-10.3.20/libmariadb/plugins/auth/CMakeLists.txt --- mariadb-10.3-10.3.17/libmariadb/plugins/auth/CMakeLists.txt 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/plugins/auth/CMakeLists.txt 2019-11-06 16:01:56.000000000 +0000 @@ -3,6 +3,22 @@ INCLUDE_DIRECTORIES(${AUTH_DIR}) INCLUDE_DIRECTORIES(${CC_SOURCE_DIR}/include) +SET(CRYPTO_PLUGIN 1) +IF(WIN32) + SET(CRYPT_SOURCE ${CC_SOURCE_DIR}/libmariadb/secure/win_crypt.c) + SET(CRYPT_LIBS crypt32) +ELSEIF(WITH_SSL STREQUAL "OPENSSL") + SET(CRYPT_SOURCE ${CC_SOURCE_DIR}/libmariadb/secure/openssl_crypt.c) + SET(CRYPT_LIBS ${SSL_LIBRARIES}) +ELSEIF(WITH_SSL STREQUAL "GNUTLS") + SET(CRYPT_SOURCE ${CC_SOURCE_DIR}/libmariadb/secure/gnutls_crypt.c) + IF (NOT SSL_LIBRARIES MATCHES "^.*\\.a$") + SET(CRYPT_LIBS ${SSL_LIBRARIES}) + ENDIF() +ELSE() + UNSET(CRYPTO_PLUGIN) +ENDIF() + #native password REGISTER_PLUGIN(TARGET mysql_native_password TYPE MARIADB_CLIENT_PLUGIN_AUTH @@ -18,30 +34,23 @@ SOURCES ${CC_SOURCE_DIR}/plugins/auth/dialog.c ${CC_SOURCE_DIR}/libmariadb/get_password.c) -#ED25519 client authentication plugin -SET(REF10_DIR ${CC_SOURCE_DIR}/plugins/auth/ref10) -SET(REF10_SOURCES ${REF10_DIR}/fe_0.c ${REF10_DIR}/fe_isnegative.c ${REF10_DIR}/fe_sub.c ${REF10_DIR}/ge_p1p1_to_p2.c - ${REF10_DIR}/ge_p3_to_cached.c ${REF10_DIR}/open.c ${REF10_DIR}/fe_1.c ${REF10_DIR}/fe_isnonzero.c - ${REF10_DIR}/fe_tobytes.c ${REF10_DIR}/ge_p1p1_to_p3.c ${REF10_DIR}/ge_p3_to_p2.c ${REF10_DIR}/sc_muladd.c - ${REF10_DIR}/fe_add.c ${REF10_DIR}/fe_mul.c ${REF10_DIR}/ge_add.c ${REF10_DIR}/ge_p2_0.c ${REF10_DIR}/ge_precomp_0.c - ${REF10_DIR}/sc_reduce.c ${REF10_DIR}/fe_cmov.c ${REF10_DIR}/fe_neg.c ${REF10_DIR}/ge_double_scalarmult.c - ${REF10_DIR}/ge_p2_dbl.c ${REF10_DIR}/ge_scalarmult_base.c ${REF10_DIR}/sign.c ${REF10_DIR}/fe_copy.c - ${REF10_DIR}/fe_pow22523.c ${REF10_DIR}/ge_frombytes.c ${REF10_DIR}/ge_p3_0.c ${REF10_DIR}/ge_sub.c - ${REF10_DIR}/verify.c ${REF10_DIR}/fe_frombytes.c ${REF10_DIR}/fe_sq2.c ${REF10_DIR}/ge_madd.c - ${REF10_DIR}/ge_p3_dbl.c ${REF10_DIR}/ge_tobytes.c ${REF10_DIR}/fe_invert.c ${REF10_DIR}/fe_sq.c - ${REF10_DIR}/ge_msub.c ${REF10_DIR}/ge_p3_tobytes.c ${REF10_DIR}/keypair.c) - -IF(WITH_SSL) - IF(${WITH_SSL} STREQUAL "OPENSSL") - SET(CRYPT_SOURCE ${CC_SOURCE_DIR}/libmariadb/secure/openssl_crypt.c) - SET(ED25519_LIBS ${SSL_LIBRARIES}) - ELSEIF(${WITH_SSL} STREQUAL "SCHANNEL") - SET(CRYPT_SOURCE ${CC_SOURCE_DIR}/libmariadb/secure/win_crypt.c) - SET(ED_25519_LIBS crypt32) - ELSE() - SET(CRYPT_SOURCE ${CC_SOURCE_DIR}/libmariadb/secure/gnutls_crypt.c) - SET(ED25519_LIBS ${SSL_LIBRARIES}) - ENDIF() + +# Crypto plugins +IF(CRYPTO_PLUGIN) + + #ED25519 client authentication plugin + SET(REF10_DIR ${CC_SOURCE_DIR}/plugins/auth/ref10) + SET(REF10_SOURCES ${REF10_DIR}/fe_0.c ${REF10_DIR}/fe_isnegative.c ${REF10_DIR}/fe_sub.c ${REF10_DIR}/ge_p1p1_to_p2.c + ${REF10_DIR}/ge_p3_to_cached.c ${REF10_DIR}/open.c ${REF10_DIR}/fe_1.c ${REF10_DIR}/fe_isnonzero.c + ${REF10_DIR}/fe_tobytes.c ${REF10_DIR}/ge_p1p1_to_p3.c ${REF10_DIR}/ge_p3_to_p2.c ${REF10_DIR}/sc_muladd.c + ${REF10_DIR}/fe_add.c ${REF10_DIR}/fe_mul.c ${REF10_DIR}/ge_add.c ${REF10_DIR}/ge_p2_0.c ${REF10_DIR}/ge_precomp_0.c + ${REF10_DIR}/sc_reduce.c ${REF10_DIR}/fe_cmov.c ${REF10_DIR}/fe_neg.c ${REF10_DIR}/ge_double_scalarmult.c + ${REF10_DIR}/ge_p2_dbl.c ${REF10_DIR}/ge_scalarmult_base.c ${REF10_DIR}/sign.c ${REF10_DIR}/fe_copy.c + ${REF10_DIR}/fe_pow22523.c ${REF10_DIR}/ge_frombytes.c ${REF10_DIR}/ge_p3_0.c ${REF10_DIR}/ge_sub.c + ${REF10_DIR}/verify.c ${REF10_DIR}/fe_frombytes.c ${REF10_DIR}/fe_sq2.c ${REF10_DIR}/ge_madd.c + ${REF10_DIR}/ge_p3_dbl.c ${REF10_DIR}/ge_tobytes.c ${REF10_DIR}/fe_invert.c ${REF10_DIR}/fe_sq.c + ${REF10_DIR}/ge_msub.c ${REF10_DIR}/ge_p3_tobytes.c ${REF10_DIR}/keypair.c) + REGISTER_PLUGIN(TARGET client_ed25519 TYPE MARIADB_CLIENT_PLUGIN_AUTH CONFIGURATIONS DYNAMIC STATIC OFF @@ -50,36 +59,37 @@ ${REF10_SOURCES} ${CRYPT_SOURCE} INCLUDES ${REF10_DIR} + LIBRARIES ${CRYPT_LIBS} COMPILE_OPTIONS -DMYSQL_CLIENT=1) IF(MSVC) # Silence conversion (integer truncantion) warnings from reference code SET_SOURCE_FILES_PROPERTIES(${REF10_SOURCES} PROPERTY COMPILE_FLAGS "-DMYSQL_CLIENT=1 /wd4244 /wd4146") ENDIF() -ENDIF() -#GSSAPI client authentication plugin -IF(NOT WIN32) - INCLUDE(${CC_SOURCE_DIR}/cmake/FindGSSAPI.cmake) -ENDIF() -# SHA256 caching plugin for MySQL 8.0 connection -IF(WITH_SSL) - IF(${WITH_SSL} STREQUAL "OPENSSL") - SET(CRYPT_SOURCE ${CC_SOURCE_DIR}/libmariadb/secure/openssl_crypt.c) - SET(CACHING_SHA2_LIBS ${SSL_LIBRARIES}) - ELSEIF(${WITH_SSL} STREQUAL "SCHANNEL") - SET(CRYPT_SOURCE ${CC_SOURCE_DIR}/libmariadb/secure/win_crypt.c) - SET(CACHING_SHA2_LIBS crypt32 bcrypt) - ELSEIF(${WITH_SSL} STREQUAL "GNUTLS") - SET(CRYPT_SOURCE ${CC_SOURCE_DIR}/libmariadb/secure/gnutls_crypt.c) - SET(CACHING_SHA2_LIBS ${SSL_LIBRARIES} ${LIBZ}) - ENDIF() + # SHA256 caching plugin for MySQL 8.0 connection REGISTER_PLUGIN(TARGET caching_sha2_password TYPE MARIADB_CLIENT_PLUGIN_AUTH CONFIGURATIONS DYNAMIC STATIC OFF DEFAULT DYNAMIC SOURCES ${CC_SOURCE_DIR}/plugins/auth/caching_sha2_pw.c ${CRYPT_SOURCE} - LIBRARIES ${CACHING_SHA2_LIBS}) + LIBRARIES ${CRYPT_LIBS}) + + IF(WITH_SSL STREQUAL "GNUTLS" AND NOT WIN32) + MESSAGE1(STATUS "sha256_password not supported by GnuTLS due to missing OAEP padding") + ELSE() + REGISTER_PLUGIN(TARGET sha256_password + TYPE MARIADB_CLIENT_PLUGIN_AUTH + CONFIGURATIONS DYNAMIC STATIC OFF + DEFAULT DYNAMIC + SOURCES ${AUTH_DIR}/sha256_pw.c + LIBRARIES ${CRYPT_LIBS}) + ENDIF() +ENDIF() + +#GSSAPI client authentication plugin +IF(NOT WIN32) + INCLUDE(${CC_SOURCE_DIR}/cmake/FindGSSAPI.cmake) ENDIF() #GSSAPI client authentication plugin @@ -102,20 +112,6 @@ LIBRARIES ${GSSAPI_LIBS}) ENDIF() -IF(${WITH_SSL} STREQUAL "OPENSSL" OR ${WITH_SSL} STREQUAL "SCHANNEL") - IF(WITH_SSL STREQUAL "SCHANNEL") - SET(SHA256_LIBS crypt32) - ELSE() - SET(SHA256_LIBS ${SSL_LIBRARIES}) - ENDIF() - REGISTER_PLUGIN(TARGET sha256_password - TYPE MARIADB_CLIENT_PLUGIN_AUTH - CONFIGURATIONS DYNAMIC STATIC OFF - DEFAULT DYNAMIC - SOURCES ${AUTH_DIR}/sha256_pw.c - LIBRARIES ${SHA256_LIBS}) -ENDIF() - # old_password plugin REGISTER_PLUGIN(TARGET mysql_old_password TYPE MARIADB_CLIENT_PLUGIN_AUTH @@ -123,7 +119,6 @@ DEFAULT STATIC SOURCES ${AUTH_DIR}/old_password.c) - # Cleartext REGISTER_PLUGIN(TARGET mysql_clear_password TYPE MARIADB_CLIENT_PLUGIN_AUTH diff -Nru mariadb-10.3-10.3.17/libmariadb/plugins/auth/ed25519.c mariadb-10.3-10.3.20/libmariadb/plugins/auth/ed25519.c --- mariadb-10.3-10.3.17/libmariadb/plugins/auth/ed25519.c 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/plugins/auth/ed25519.c 2019-11-06 16:01:56.000000000 +0000 @@ -1,5 +1,5 @@ /************************************************************************************ - Copyright (C) 2017 MariaDB Corporation AB + Copyright (C) 2017-2019 MariaDB Corporation AB This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public @@ -21,12 +21,12 @@ #endif #ifdef _WIN32 -#if !defined(HAVE_OPENSSL) #define HAVE_WINCRYPT -#endif +#undef HAVE_OPENSSL +#undef HAVE_GNUTLS #endif -#if defined(HAVE_OPENSSL) || defined(HAVE_SCHANNEL) || defined(HAVE_GNUTLS) +#if defined(HAVE_OPENSSL) || defined(HAVE_WINCRYPT) || defined(HAVE_GNUTLS) #include #include @@ -42,19 +42,19 @@ #include #endif -#if defined(HAVE_OPENSSL) -#include -#include -#include -#elif defined(HAVE_GNUTLS) -#include -#elif defined(HAVE_SCHANNEL) +#if defined(HAVE_WINCRYPT) #include #include #include #pragma comment(lib, "bcrypt.lib") #pragma comment(lib, "crypt32.lib") extern BCRYPT_ALG_HANDLE Sha512Prov; +#elif defined(HAVE_OPENSSL) +#include +#include +#include +#elif defined(HAVE_GNUTLS) +#include #endif #include @@ -71,7 +71,7 @@ #ifndef PLUGIN_DYNAMIC -struct st_mysql_client_plugin_AUTHENTICATION caching_sha2_password_client_plugin= +struct st_mysql_client_plugin_AUTHENTICATION client_ed25519_client_plugin= #else struct st_mysql_client_plugin_AUTHENTICATION _mysql_client_plugin_declaration_ = #endif @@ -126,7 +126,7 @@ int unused3 __attribute__((unused)), va_list unused4 __attribute__((unused))) { -#if defined(HAVE_SCHANNEL) +#if defined(HAVE_WINCRYPT) BCryptOpenAlgorithmProvider(&Sha512Prov, BCRYPT_SHA512_ALGORITHM, NULL, 0); #endif return 0; @@ -136,7 +136,7 @@ /* {{{ auth_ed25519_deinit */ static int auth_ed25519_deinit() { -#if defined(HAVE_SCHANNEL) +#if defined(HAVE_WINCRYPT) BCryptCloseAlgorithmProvider(Sha512Prov, 0); #endif return 0; diff -Nru mariadb-10.3-10.3.17/libmariadb/plugins/auth/gssapi_errmsg.c mariadb-10.3-10.3.20/libmariadb/plugins/auth/gssapi_errmsg.c --- mariadb-10.3-10.3.17/libmariadb/plugins/auth/gssapi_errmsg.c 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/plugins/auth/gssapi_errmsg.c 2019-11-06 16:01:56.000000000 +0000 @@ -26,7 +26,7 @@ POSSIBILITY OF SUCH DAMAGE. */ -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(SOLARIS) || defined(__sun) #include #else #include diff -Nru mariadb-10.3-10.3.17/libmariadb/plugins/auth/sha256_pw.c mariadb-10.3-10.3.20/libmariadb/plugins/auth/sha256_pw.c --- mariadb-10.3-10.3.17/libmariadb/plugins/auth/sha256_pw.c 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/plugins/auth/sha256_pw.c 2019-11-06 16:01:56.000000000 +0000 @@ -21,13 +21,12 @@ #endif #ifdef _WIN32 -#if !defined(HAVE_OPENSSL) +#undef HAVE_GNUTLS +#undef HAVE_OPENSSL #define HAVE_WINCRYPT -#else #pragma comment(lib, "crypt32.lib") #pragma comment(lib, "ws2_32.lib") #endif -#endif #if defined(HAVE_OPENSSL) || defined(HAVE_WINCRYPT) @@ -45,12 +44,12 @@ #include #endif -#if defined(HAVE_OPENSSL) +#if defined(WIN32) +#include +#elif defined(HAVE_OPENSSL) #include #include #include -#elif defined(HAVE_WINCRYPT) -#include #endif #define MAX_PW_LEN 1024 @@ -87,7 +86,7 @@ static LPBYTE ma_load_pem(const char *buffer, DWORD *buffer_len) { LPBYTE der_buffer= NULL; - DWORD der_buffer_length; + DWORD der_buffer_length= 0; if (buffer_len == NULL || *buffer_len == 0) return NULL; @@ -181,7 +180,7 @@ DWORD der_buffer_len= 0; CERT_PUBLIC_KEY_INFO *publicKeyInfo= NULL; DWORD ParamSize= sizeof(DWORD); - int publicKeyInfoLen; + int publicKeyInfoLen= 0; #endif char *filebuffer= NULL; diff -Nru mariadb-10.3-10.3.17/libmariadb/unittest/libmariadb/connection.c mariadb-10.3-10.3.20/libmariadb/unittest/libmariadb/connection.c --- mariadb-10.3-10.3.17/libmariadb/unittest/libmariadb/connection.c 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/unittest/libmariadb/connection.c 2019-11-06 16:01:56.000000000 +0000 @@ -1684,8 +1684,54 @@ return OK; } +static int test_conc443(MYSQL *my __attribute__((unused))) +{ + my_bool x= 1; + unsigned long thread_id= 0; + char query[128]; + MYSQL_RES *result; + MYSQL_ROW row; + int rc; + + MYSQL *mysql= mysql_init(NULL); + mysql_options(mysql, MYSQL_INIT_COMMAND, "set @a:=3"); + mysql_options(mysql, MYSQL_OPT_RECONNECT, &x); + + if (!mysql_real_connect(mysql, hostname, username, password, schema, port, socketname, CLIENT_REMEMBER_OPTIONS)) + { + diag("Connection failed. Error: %s", mysql_error(mysql)); + mysql_close(mysql); + } + + thread_id= mysql_thread_id(mysql); + + sprintf(query, "KILL %lu", thread_id); + rc= mysql_query(mysql, query); + + sleep(3); + + rc= mysql_ping(mysql); + check_mysql_rc(rc, mysql); + + rc= mysql_query(mysql, "SELECT @a"); + check_mysql_rc(rc, mysql); + + FAIL_IF(mysql_thread_id(mysql) == thread_id, "Expected different thread id"); + + result= mysql_store_result(mysql); + if (!result) + return FAIL; + row= mysql_fetch_row(result); + FAIL_IF(strcmp(row[0],"3"), "Wrong result"); + + mysql_free_result(result); + mysql_close(mysql); + + return OK; +} struct my_tests_st my_tests[] = { + {"test_conc443", test_conc443, TEST_CONNECTION_NONE, 0, NULL, NULL}, {"test_conc366", test_conc366, TEST_CONNECTION_DEFAULT, 0, NULL, NULL}, {"test_conc392", test_conc392, TEST_CONNECTION_DEFAULT, 0, NULL, NULL}, {"test_conc312", test_conc312, TEST_CONNECTION_DEFAULT, 0, NULL, NULL}, diff -Nru mariadb-10.3-10.3.17/libmariadb/unittest/libmariadb/ps_bugs.c mariadb-10.3-10.3.20/libmariadb/unittest/libmariadb/ps_bugs.c --- mariadb-10.3-10.3.17/libmariadb/unittest/libmariadb/ps_bugs.c 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmariadb/unittest/libmariadb/ps_bugs.c 2019-11-06 16:01:56.000000000 +0000 @@ -5112,7 +5112,57 @@ return OK; } +static int test_maxparam(MYSQL *mysql) +{ + const char *query= "INSERT INTO t1 VALUES (?)"; + int rc; + char *buffer; + int i; + int val= 1; + size_t mem= strlen(query) + 1 + 4 * 65535 + 1; + MYSQL_STMT *stmt= mysql_stmt_init(mysql); + MYSQL_BIND bind[65535]; + + rc= mysql_query(mysql, "DROP TABLE IF EXISTS t1"); + check_mysql_rc(rc, mysql); + + rc= mysql_query(mysql, "CREATE TABLE t1 (a int)"); + check_mysql_rc(rc, mysql); + + buffer= calloc(1, mem); + strcpy(buffer, query); + for (i=0; i < 65534.; i++) + strcat(buffer, ",(?)"); + rc= mysql_stmt_prepare(stmt, SL(buffer)); + check_stmt_rc(rc, stmt); + + memset(bind, 0, sizeof(MYSQL_BIND) * 65535); + for (i=0; i < 65534; i++) + { + bind[i].buffer_type= MYSQL_TYPE_LONG; + bind[i].buffer= &val; + } + + rc= mysql_stmt_bind_param(stmt, bind); + check_stmt_rc(rc, stmt); + + rc= mysql_stmt_execute(stmt); + check_stmt_rc(rc, stmt); + + FAIL_IF(mysql_stmt_affected_rows(stmt) != 65535, "Expected affected_rows=65535"); + + strcat(buffer, ",(?)"); + rc= mysql_stmt_prepare(stmt, SL(buffer)); + free(buffer); + FAIL_IF(!rc, "Error expected"); + FAIL_IF(mysql_stmt_errno(stmt) != ER_PS_MANY_PARAM, "Expected ER_PS_MANY_PARAM error"); + + mysql_stmt_close(stmt); + return OK; +} + struct my_tests_st my_tests[] = { + {"test_maxparam", test_maxparam, TEST_CONNECTION_NEW, 0, NULL, NULL}, {"test_conc424", test_conc424, TEST_CONNECTION_NEW, 0, NULL, NULL}, {"test_conc344", test_conc344, TEST_CONNECTION_NEW, 0, NULL, NULL}, {"test_conc334", test_conc334, TEST_CONNECTION_NEW, 0, NULL, NULL}, diff -Nru mariadb-10.3-10.3.17/libmysqld/CMakeLists.txt mariadb-10.3-10.3.20/libmysqld/CMakeLists.txt --- mariadb-10.3-10.3.17/libmysqld/CMakeLists.txt 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmysqld/CMakeLists.txt 2019-11-06 16:01:56.000000000 +0000 @@ -109,6 +109,7 @@ ../sql/sql_analyze_stmt.cc ../sql/sql_analyze_stmt.h ../sql/compat56.cc ../sql/sql_type.cc ../sql/sql_type.h + ../sql/sql_mode.cc ../sql/table_cache.cc ../sql/mf_iocache_encr.cc ../sql/item_inetfunc.cc ../sql/wsrep_dummy.cc ../sql/encryption.cc diff -Nru mariadb-10.3-10.3.17/libmysqld/lib_sql.cc mariadb-10.3-10.3.20/libmysqld/lib_sql.cc --- mariadb-10.3-10.3.17/libmysqld/lib_sql.cc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/libmysqld/lib_sql.cc 2019-11-06 16:01:56.000000000 +0000 @@ -44,12 +44,13 @@ extern char mysql_server_last_error[MYSQL_ERRMSG_SIZE]; static my_bool emb_read_query_result(MYSQL *mysql); static void emb_free_embedded_thd(MYSQL *mysql); - +static bool embedded_print_errors= 0; extern "C" void unireg_clear(int exit_code) { DBUG_ENTER("unireg_clear"); - clean_up(!opt_help && (exit_code || !opt_bootstrap)); /* purecov: inspected */ + embedded_print_errors= 0; + clean_up(!opt_help && !exit_code); /* purecov: inspected */ clean_up_mutexes(); my_end(opt_endinfo ? MY_CHECK_ERROR | MY_GIVE_INFO : 0); DBUG_VOID_RETURN; @@ -522,7 +523,7 @@ my_bool acl_error; DBUG_ASSERT(mysql_embedded_init == 0); - + embedded_print_errors= 1; if (my_thread_init()) return 1; @@ -1347,8 +1348,17 @@ const char *format, va_list argsi) { vsnprintf(mysql_server_last_error, sizeof(mysql_server_last_error), - format, argsi); + format, argsi); mysql_server_last_errno= CR_UNKNOWN_ERROR; + if (embedded_print_errors && level == ERROR_LEVEL) + { + /* The following is for testing when someone removes the above test */ + const char *tag= (level == ERROR_LEVEL ? "ERROR" : + level == WARNING_LEVEL ? "Warning" : + "Note"); + fprintf(stderr,"Got %s: \"%s\" errno: %d\n", + tag, mysql_server_last_error, mysql_server_last_errno); + } return 0; } diff -Nru mariadb-10.3-10.3.17/mysql-test/collections/10.0-compatible.list mariadb-10.3-10.3.20/mysql-test/collections/10.0-compatible.list --- mariadb-10.3-10.3.17/mysql-test/collections/10.0-compatible.list 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/collections/10.0-compatible.list 2019-11-06 16:01:56.000000000 +0000 @@ -202,7 +202,6 @@ main.gcc296 main.get_diagnostics main.gis -main.gis2 main.gis-alter_table_online main.gis-precise main.gis-rt-precise diff -Nru mariadb-10.3-10.3.17/mysql-test/include/alter_table_mdev539.inc mariadb-10.3-10.3.20/mysql-test/include/alter_table_mdev539.inc --- mariadb-10.3-10.3.17/mysql-test/include/alter_table_mdev539.inc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/include/alter_table_mdev539.inc 2019-11-06 16:01:56.000000000 +0000 @@ -2,6 +2,8 @@ --echo # mdev-539: fast build of unique/primary indexes for MyISAM/Aria --echo # +--source include/default_charset.inc + call mtr.add_suppression("Can't find record in '.*'"); --disable_warnings @@ -62,6 +64,6 @@ alter ignore table customer add primary key (c_custkey); show create table customer; select * from customer where c_custkey=3; - +--source include/restore_charset.inc DROP DATABASE dbt3_s001; diff -Nru mariadb-10.3-10.3.17/mysql-test/include/common-tests.inc mariadb-10.3-10.3.20/mysql-test/include/common-tests.inc --- mariadb-10.3-10.3.17/mysql-test/include/common-tests.inc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/include/common-tests.inc 2019-11-06 16:01:56.000000000 +0000 @@ -1537,8 +1537,10 @@ # Test of left join. # -SET @save_optimizer_switch=@@optimizer_switch; -SET optimizer_switch='outer_join_with_cache=off'; +SET @local_optimizer_switch=@@optimizer_switch; +set @local_join_cache_level=@@join_cache_level; +set @@join_cache_level=2; +set optimizer_switch='outer_join_with_cache=off,join_cache_hashed=off'; insert into t2 (fld1, companynr) values (999999,99); @@ -1572,7 +1574,7 @@ explain select companynr,companyname from t4 left join t2 using (companynr) where companynr > 0 or companynr < 0 or companynr > 0; explain select companynr,companyname from t4 left join t2 using (companynr) where ifnull(companynr,1)>0; -SET optimizer_switch=@save_optimizer_switch; +SET @@optimizer_switch=@local_optimizer_switch; # # Joins with forms. @@ -1581,6 +1583,8 @@ select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1; explain select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1; +SET @@join_cache_level=@local_join_cache_level; + # # Search using 'or' with the same referens group. # An interval search will be done first with the first table and after that diff -Nru mariadb-10.3-10.3.17/mysql-test/include/ctype_utf8_ilseq.inc mariadb-10.3-10.3.20/mysql-test/include/ctype_utf8_ilseq.inc --- mariadb-10.3-10.3.17/mysql-test/include/ctype_utf8_ilseq.inc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/include/ctype_utf8_ilseq.inc 2019-11-06 16:01:56.000000000 +0000 @@ -14,6 +14,7 @@ INSERT INTO t1 (ch) VALUES ('admin'),('admin1'); SELECT ch FROM t1 WHERE ch='admin𝌆'; +EXPLAIN SELECT ch FROM t1 WHERE ch='admin𝌆'; SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆'; SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆'; DELETE FROM t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/include/ctype_utf8mb4.inc mariadb-10.3-10.3.20/mysql-test/include/ctype_utf8mb4.inc --- mariadb-10.3-10.3.17/mysql-test/include/ctype_utf8mb4.inc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/include/ctype_utf8mb4.inc 2019-11-06 16:01:56.000000000 +0000 @@ -1,6 +1,7 @@ # # Tests with the utf8mb4 character set # +--source include/default_optimizer_switch.inc --disable_warnings drop table if exists t1,t2; --enable_warnings @@ -1244,7 +1245,9 @@ # SET CHARACTER SET utf8mb4; +--source include/default_charset.inc SHOW VARIABLES LIKE 'character\_set\_%'; +SET @@character_set_server=@save_character_set_server; CREATE DATABASE crashtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; USE crashtest; eval CREATE TABLE crashtest (crash char(10)) DEFAULT CHARSET=utf8mb4 ENGINE $engine; diff -Nru mariadb-10.3-10.3.17/mysql-test/include/default_charset.inc mariadb-10.3-10.3.20/mysql-test/include/default_charset.inc --- mariadb-10.3-10.3.17/mysql-test/include/default_charset.inc 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/include/default_charset.inc 2019-11-06 16:01:56.000000000 +0000 @@ -0,0 +1,15 @@ +# This file sets the default character set that most test expects. + +# In most cases the variables should match the community server defaults. +# The values should be changed if the default character set for the server +# changes and all tests have been updated to supported the new character set + +# The purpose if this file is to allow users to change these defaults +# without having to update all tests. + +--disable_query_log +SET @save_character_set_server= @@character_set_server; +SET @save_collation_server= @@collation_server; +set @@character_set_server="latin1"; +set @@collation_server="latin1_swedish_ci"; +--enable_query_log diff -Nru mariadb-10.3-10.3.17/mysql-test/include/default_group_order.cnf mariadb-10.3-10.3.20/mysql-test/include/default_group_order.cnf --- mariadb-10.3-10.3.17/mysql-test/include/default_group_order.cnf 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/include/default_group_order.cnf 2019-11-06 16:01:56.000000000 +0000 @@ -0,0 +1,11 @@ +# Define the order that mtr will save groups in the generated my.cnf files +# The --debug-gdb option is just here to force mtr to remember the group order + +[mysqld] +#debug-gdb= +[mariadb] +#debug-gdb= +[embedded] +#debug-gdb= +[server] +#debug-gdb= diff -Nru mariadb-10.3-10.3.17/mysql-test/include/default_my.cnf mariadb-10.3-10.3.20/mysql-test/include/default_my.cnf --- mariadb-10.3-10.3.17/mysql-test/include/default_my.cnf 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/include/default_my.cnf 2019-11-06 16:01:56.000000000 +0000 @@ -15,6 +15,7 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA # Use default setting for mysqld processes +!include default_group_order.cnf !include default_mysqld.cnf !include default_client.cnf diff -Nru mariadb-10.3-10.3.17/mysql-test/include/default_mysqld.cnf mariadb-10.3-10.3.20/mysql-test/include/default_mysqld.cnf --- mariadb-10.3-10.3.17/mysql-test/include/default_mysqld.cnf 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/include/default_mysqld.cnf 2019-11-06 16:01:56.000000000 +0000 @@ -127,4 +127,3 @@ # tables. Let's enable it in the [server] group, because this group # is read after [mysqld] and [embedded] loose-aria - diff -Nru mariadb-10.3-10.3.17/mysql-test/include/default_optimizer_switch.inc mariadb-10.3-10.3.20/mysql-test/include/default_optimizer_switch.inc --- mariadb-10.3-10.3.17/mysql-test/include/default_optimizer_switch.inc 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/include/default_optimizer_switch.inc 2019-11-06 16:01:56.000000000 +0000 @@ -0,0 +1,18 @@ +# This file sets the default optimizer flags and optimizer variables that +# most test expects. In most cases the variables should match the community +# server defaults. +# The purpose if this file is to allow users to change these defaults +# without having to update all tests. + +--disable_query_log +set @save_optimizer_switch=@@optimizer_switch; +set @save_join_cache_level=@@join_cache_level; + +set optimizer_switch="index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on"; + +set optimizer_use_condition_selectivity=1; +set optimizer_search_depth=62; +set join_buffer_space_limit=2097152; +set join_cache_level=2; +set join_buffer_size=262144; +--enable_query_log diff -Nru mariadb-10.3-10.3.17/mysql-test/include/grant_cache.inc mariadb-10.3-10.3.20/mysql-test/include/grant_cache.inc --- mariadb-10.3-10.3.17/mysql-test/include/grant_cache.inc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/include/grant_cache.inc 2019-11-06 16:01:56.000000000 +0000 @@ -37,8 +37,13 @@ --source include/add_anonymous_users.inc +set @save_query_cache_size=@@global.query_cache_size; +set @save_sql_mode=@@global.sql_mode; +set @save_query_cache_type=@@global.query_cache_type; + set GLOBAL sql_mode=""; set LOCAL sql_mode=""; + # --disable_warnings drop table if exists test.t1,mysqltest.t1,mysqltest.t2; @@ -208,10 +213,10 @@ drop table test.t1,mysqltest.t1,mysqltest.t2; drop database mysqltest; -set GLOBAL query_cache_size=default; set GLOBAL query_cache_type=ON; set LOCAL query_cache_type=ON; --source include/delete_anonymous_users.inc -set GLOBAL sql_mode=default; -set GLOBAL query_cache_type=default; +set GLOBAL query_cache_size=@save_query_cache_size; +set GLOBAL sql_mode=@save_sql_mode; +set GLOBAL query_cache_type=@save_query_cache_type; diff -Nru mariadb-10.3-10.3.17/mysql-test/include/have_hostname_cache.inc mariadb-10.3-10.3.20/mysql-test/include/have_hostname_cache.inc --- mariadb-10.3-10.3.17/mysql-test/include/have_hostname_cache.inc 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/include/have_hostname_cache.inc 2019-11-06 16:01:56.000000000 +0000 @@ -0,0 +1,6 @@ +# Ensure that host_cache is enabled + +if (`SELECT @@skip_name_resolve != "OFF"`) +{ + skip No hostname_cache; +} diff -Nru mariadb-10.3-10.3.17/mysql-test/include/index_merge1.inc mariadb-10.3-10.3.20/mysql-test/include/index_merge1.inc --- mariadb-10.3-10.3.17/mysql-test/include/index_merge1.inc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/include/index_merge1.inc 2019-11-06 16:01:56.000000000 +0000 @@ -2,11 +2,10 @@ # # Index merge tests # -# The variables -# $engine_type -- storage engine to be tested +# The variable # $merge_table_support -- 1 storage engine supports merge tables # -- 0 storage engine does not support merge tables -# have to be set before sourcing this script. +# has to be set before sourcing this script. # # Note: The comments/expectations refer to MyISAM. # They might be not valid for other storage engines. @@ -16,15 +15,10 @@ # old name was t/index_merge.test # main code went into include/index_merge1.inc # +--source include/have_sequence.inc --echo #---------------- Index merge test 1 ------------------------------------------- -eval SET SESSION STORAGE_ENGINE = $engine_type; - ---disable_warnings -drop table if exists t0, t1, t2, t3, t4; ---enable_warnings - # Create and fill a table with simple keys create table t0 ( @@ -32,20 +26,7 @@ INDEX i1(key1) ); ---disable_query_log -insert into t0 values (1),(2),(3),(4),(5),(6),(7),(8); - -let $1=7; -set @d=8; -begin; -while ($1) -{ - eval insert into t0 select key1+@d from t0; - eval set @d=@d*2; - dec $1; -} -commit; ---enable_query_log +insert into t0(key1) select seq from seq_1_to_1024; alter table t0 add key2 int not null, add index i2(key2); alter table t0 add key3 int not null, add index i3(key3); @@ -217,7 +198,7 @@ index i2_2(key2, key2_1) ); -insert into t4 select key1,key1,key1 div 10, key1 % 10, key1 % 10, key1 from t0; +insert into t4 select seq,seq,seq div 10, seq % 10, seq % 10, seq from seq_1_to_1024; # the following will be handled by index_merge: select * from t4 where key1a = 3 or key1b = 4; @@ -392,14 +373,13 @@ # # BUG#17314: Index_merge/intersection not choosen by the optimizer for MERGE tables # -create table t0 (a int); -insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); create table t1 ( a int, b int, filler1 char(200), filler2 char(200), key(a),key(b) ); -insert into t1 select @v:= A.a, @v, 't1', 'filler2' from t0 A, t0 B, t0 C; +insert into t1 select @v:= seq % 10, @v, 't1', 'filler2' from seq_1_to_1000; + create table t2 like t1; create table t3 ( @@ -413,8 +393,7 @@ --replace_column 9 # explain select * from t3 where a=1 and b=1; -drop table t3; -drop table t0, t1, t2; +drop table t1, t2, t3; } # @@ -513,16 +492,13 @@ --echo # --echo # BUG#40974: Incorrect query results when using clause evaluated using range check --echo # -create table t0 (a int); -insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); - create table t1 (a int); insert into t1 values (1),(2); create table t2(a int, b int); insert into t2 values (1,1), (2, 1000); create table t3 (a int, b int, filler char(100), key(a), key(b)); -insert into t3 select 1000, 1000,'filler' from t0 A, t0 B, t0 C; +insert into t3 select 1000, 1000,'filler' from seq_1_to_1000; insert into t3 values (1,1,'data'); insert into t3 values (1,1,'data'); -- echo The plan should be ALL/ALL/ALL(Range checked for each record (index map: 0x3) @@ -534,20 +510,14 @@ where exists (select 1 from t2, t3 where t2.a=t1.a and (t3.a=t2.b or t3.b=t2.b or t3.b=t2.b+1)); -drop table t0, t1, t2, t3; +drop table t1, t2, t3; --echo # --echo # BUG#44810: index merge and order by with low sort_buffer_size --echo # crashes server! --echo # CREATE TABLE t1(a VARCHAR(128),b VARCHAR(128),KEY(A),KEY(B)); -INSERT INTO t1 VALUES (REPEAT('a',128),REPEAT('b',128)); -INSERT INTO t1 SELECT * FROM t1; -INSERT INTO t1 SELECT * FROM t1; -INSERT INTO t1 SELECT * FROM t1; -INSERT INTO t1 SELECT * FROM t1; -INSERT INTO t1 SELECT * FROM t1; -INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT REPEAT('a',128),REPEAT('b',128) FROM seq_1_to_64; SET SESSION sort_buffer_size=1024*8; EXPLAIN SELECT * FROM t1 FORCE INDEX(a,b) WHERE a LIKE 'a%' OR b LIKE 'b%' diff -Nru mariadb-10.3-10.3.17/mysql-test/include/index_merge2.inc mariadb-10.3-10.3.20/mysql-test/include/index_merge2.inc --- mariadb-10.3-10.3.17/mysql-test/include/index_merge2.inc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/include/index_merge2.inc 2019-11-06 16:01:56.000000000 +0000 @@ -2,10 +2,6 @@ # # Index merge tests # -# The variable -# $engine_type -- storage engine to be tested -# has to be set before sourcing this script. -# # Note: The comments/expectations refer to InnoDB. # They might be not valid for other storage engines. # @@ -14,15 +10,10 @@ # old name was t/index_merge_innodb.test # main code went into include/index_merge2.inc # +--source include/have_sequence.inc --echo #---------------- Index merge test 2 ------------------------------------------- -eval SET SESSION STORAGE_ENGINE = $engine_type; - ---disable_warnings -drop table if exists t1,t2; ---enable_warnings - create table t1 ( key1 int not null, @@ -32,16 +23,7 @@ INDEX i2(key2) ); ---disable_query_log -let $1=200; -begin; -while ($1) -{ - eval insert into t1 values (200-$1, $1); - dec $1; -} -commit; ---enable_query_log +INSERT INTO t1 SELECT seq,200-seq FROM seq_0_to_200; # No primary key explain select * from t1 where key1 < 5 or key2 > 197; @@ -80,16 +62,8 @@ index (key2) ); show warnings; ---disable_query_log -let $1=30; -begin; -while ($1) -{ - eval insert into t1 (key1, key2, filler) values ($1/4, $1/8, 'filler-data'); - dec $1; -} -commit; ---enable_query_log +INSERT INTO t1 (key1, key2, filler) +SELECT seq/4, seq/8, 'filler-data' FROM seq_30_to_0; explain select pk from t1 where key1 = 1 and key2 = 1; select pk from t1 where key2 = 1 and key1 = 1; select pk from t1 ignore index(key1,key2) where key2 = 1 and key1 = 1; @@ -331,19 +305,7 @@ key3 int not null default 0 ); -insert into t1(key1) values (1),(2),(3),(4),(5),(6),(7),(8); - -let $1=7; -set @d=8; -begin; -while ($1) -{ - eval insert into t1 (key1) select key1+@d from t1; - eval set @d=@d*2; - dec $1; -} -commit; - +insert into t1(key1) select seq from seq_1_to_1024; alter table t1 add index i2(key2); alter table t1 add index i3(key3); update t1 set key2=key1,key3=key1; diff -Nru mariadb-10.3-10.3.17/mysql-test/include/index_merge_2sweeps.inc mariadb-10.3-10.3.20/mysql-test/include/index_merge_2sweeps.inc --- mariadb-10.3-10.3.17/mysql-test/include/index_merge_2sweeps.inc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/include/index_merge_2sweeps.inc 2019-11-06 16:01:56.000000000 +0000 @@ -2,24 +2,15 @@ # # 2-sweeps read Index_merge test # -# The variable -# $engine_type -- storage engine to be tested -# has to be set before sourcing this script. -# # Last update: # 2006-08-02 ML test refactored # old name was index_merge_innodb2.test # main code went into include/index_merge_2sweeps.inc # +--source include/have_sequence.inc --echo #---------------- 2-sweeps read Index merge test 2 ------------------------------- -eval SET SESSION STORAGE_ENGINE = $engine_type; - ---disable_warnings -drop table if exists t1; ---enable_warnings - create table t1 ( pk int primary key, key1 int, @@ -30,17 +21,8 @@ index(key2) ); - ---disable_query_log -begin; -let $1=1000; -while ($1) -{ - eval insert into t1 values($1, $1, $1, 'filler-data','filler-data-2'); - dec $1; -} -commit; ---enable_query_log +insert into t1 select seq, seq, seq, 'filler-data', 'filler-data-2' +from seq_1000_to_1; select * from t1 where (key1 >= 2 and key1 <= 10) or (pk >= 4 and pk <=8 ); diff -Nru mariadb-10.3-10.3.17/mysql-test/include/index_merge_ror_cpk.inc mariadb-10.3-10.3.20/mysql-test/include/index_merge_ror_cpk.inc --- mariadb-10.3-10.3.17/mysql-test/include/index_merge_ror_cpk.inc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/include/index_merge_ror_cpk.inc 2019-11-06 16:01:56.000000000 +0000 @@ -2,10 +2,6 @@ # # Clustered PK ROR-index_merge tests # -# The variable -# $engine_type -- storage engine to be tested -# has to be set before sourcing this script. -# # Note: The comments/expectations refer to InnoDB. # They might be not valid for other storage engines. # @@ -15,13 +11,9 @@ # main code went into include/index_merge_ror_cpk.inc # ---echo #---------------- Clustered PK ROR-index_merge tests ----------------------------- - -eval SET SESSION STORAGE_ENGINE = $engine_type; +--source include/have_sequence.inc ---disable_warnings -drop table if exists t1; ---enable_warnings +--echo #---------------- Clustered PK ROR-index_merge tests ----------------------------- create table t1 ( diff -Nru mariadb-10.3-10.3.17/mysql-test/include/index_merge_ror.inc mariadb-10.3-10.3.20/mysql-test/include/index_merge_ror.inc --- mariadb-10.3-10.3.17/mysql-test/include/index_merge_ror.inc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/include/index_merge_ror.inc 2019-11-06 16:01:56.000000000 +0000 @@ -17,11 +17,6 @@ --echo #---------------- ROR-index_merge tests ----------------------- -eval SET SESSION STORAGE_ENGINE = $engine_type; - ---disable_warnings -drop table if exists t0,t1,t2; ---enable_warnings create table t1 ( /* Field names reflect value(rowid) distribution, st=STairs, swt= SaWTooth */ diff -Nru mariadb-10.3-10.3.17/mysql-test/include/restore_charset.inc mariadb-10.3-10.3.20/mysql-test/include/restore_charset.inc --- mariadb-10.3-10.3.17/mysql-test/include/restore_charset.inc 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/include/restore_charset.inc 2019-11-06 16:01:56.000000000 +0000 @@ -0,0 +1,13 @@ +# This file sets the default character set that most test expects. + +# In most cases the variables should match the community server defaults. +# The values should be changed if the default character set for the server +# changes and all tests have been updated to supported the new character set + +# The purpose if this file is to allow users to change these defaults +# without having to update all tests. + +--disable_query_log +SET @@character_set_server=@save_character_set_server; +SET @@collation_server=@save_collation_server; +--enable_query_log diff -Nru mariadb-10.3-10.3.17/mysql-test/include/wait_for_slave_param.inc mariadb-10.3-10.3.20/mysql-test/include/wait_for_slave_param.inc --- mariadb-10.3-10.3.17/mysql-test/include/wait_for_slave_param.inc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/include/wait_for_slave_param.inc 2019-11-06 16:01:56.000000000 +0000 @@ -69,7 +69,7 @@ if ($rpl_debug) { - --echo Waiting until '$slave_param' $_slave_param_comparison '$slave_param_value' [timeout='$_slave_timeout', \$slave_error_param='$slave_error_param'] + --echo Waiting until '$slave_param' $_slave_param_comparison '$slave_param_value' [\$slave_error_param='$slave_error_param'] } --let $_slave_check_configured= query_get_value("SHOW SLAVE STATUS", Slave_IO_Running, 1) diff -Nru mariadb-10.3-10.3.17/mysql-test/lib/My/Handles.pm mariadb-10.3-10.3.20/mysql-test/lib/My/Handles.pm --- mariadb-10.3-10.3.17/mysql-test/lib/My/Handles.pm 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/lib/My/Handles.pm 2019-11-06 16:01:56.000000000 +0000 @@ -24,18 +24,20 @@ my $handle_exe; - -if (IS_WINDOWS){ +sub import { + my $self = shift; + my $params = shift; + return if (!IS_WINDOWS || $handle_exe); # Check if handle.exe is available # Pass switch to accept the EULA to avoid hanging # if the program hasn't been run before. my $list= `handle.exe -? -accepteula 2>&1`; foreach my $line (split('\n', $list)) { - $handle_exe= "$1.$2" - if ($line =~ /Handle v([0-9]*)\.([0-9]*)/); + $handle_exe= "$2.$3" + if ($line =~ /(Nth|H)andle v([0-9]*)\.([0-9]*)/); } - if ($handle_exe){ + if ($handle_exe && (!$params || !$params->{suppress_init_messages})){ print "Found handle.exe version $handle_exe\n"; } } diff -Nru mariadb-10.3-10.3.17/mysql-test/lib/My/SafeProcess/safe_process.cc mariadb-10.3-10.3.20/mysql-test/lib/My/SafeProcess/safe_process.cc --- mariadb-10.3-10.3.17/mysql-test/lib/My/SafeProcess/safe_process.cc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/lib/My/SafeProcess/safe_process.cc 2019-11-06 16:01:56.000000000 +0000 @@ -1,4 +1,5 @@ /* Copyright (c) 2008, 2012, Oracle and/or its affiliates + Copyright (c) 2019, MariaDB Corporation. 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 @@ -219,6 +220,7 @@ sigemptyset(&sa.sa_mask); sa_abort.sa_handler= handle_abort; + sa_abort.sa_flags= 0; sigemptyset(&sa_abort.sa_mask); /* Install signal handlers */ sigaction(SIGTERM, &sa,NULL); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/alter_table.result mariadb-10.3-10.3.20/mysql-test/main/alter_table.result --- mariadb-10.3-10.3.17/mysql-test/main/alter_table.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/alter_table.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,5 +1,6 @@ drop table if exists t1,t2; drop database if exists mysqltest; +set @save_max_allowed_packet=@@global.max_allowed_packet; create table t1 ( col1 int not null auto_increment primary key, col2 varchar(30) not null, @@ -1463,7 +1464,7 @@ connection default; DROP TABLE t1, t2, t3; SET SQL_MODE=default; -SET GLOBAL max_allowed_packet=default; +SET GLOBAL max_allowed_packet=@save_max_allowed_packet; CREATE TABLE t1 ( id INT(11) NOT NULL, x_param INT(11) DEFAULT NULL, @@ -2539,3 +2540,21 @@ set @@use_stat_tables= @save_use_stat_tables; set @@optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity; drop table t1; +# +# MDEV-18154 Deadlock and assertion upon no-op ALTER under LOCK TABLES +# +create or replace table t1 (pk int, i int, primary key (pk)) engine myisam; +create or replace view v1 as select * from t1; +lock table v1 read, t1 write; +alter table t1 change f1 f2 int; +ERROR 42S22: Unknown column 'f1' in 't1' +set max_statement_time= 1; +alter table t1 add column if not exists i int after pk; +Warnings: +Note 1060 Duplicate column name 'i' +set max_statement_time= 0; +drop table t1; +drop view v1; +# +# End of 10.3 tests +# diff -Nru mariadb-10.3-10.3.17/mysql-test/main/alter_table.test mariadb-10.3-10.3.20/mysql-test/main/alter_table.test --- mariadb-10.3-10.3.17/mysql-test/main/alter_table.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/alter_table.test 2019-11-06 16:01:56.000000000 +0000 @@ -6,6 +6,7 @@ drop table if exists t1,t2; drop database if exists mysqltest; --enable_warnings +set @save_max_allowed_packet=@@global.max_allowed_packet; create table t1 ( col1 int not null auto_increment primary key, @@ -1340,7 +1341,7 @@ DROP TABLE t1, t2, t3; SET SQL_MODE=default; -SET GLOBAL max_allowed_packet=default; +SET GLOBAL max_allowed_packet=@save_max_allowed_packet; # # Test of ALTER TABLE IF [NOT] EXISTS @@ -2057,3 +2058,21 @@ set @@use_stat_tables= @save_use_stat_tables; set @@optimizer_use_condition_selectivity= @save_optimizer_use_condition_selectivity; drop table t1; + +--echo # +--echo # MDEV-18154 Deadlock and assertion upon no-op ALTER under LOCK TABLES +--echo # +create or replace table t1 (pk int, i int, primary key (pk)) engine myisam; +create or replace view v1 as select * from t1; +lock table v1 read, t1 write; +--error ER_BAD_FIELD_ERROR +alter table t1 change f1 f2 int; +set max_statement_time= 1; +alter table t1 add column if not exists i int after pk; +set max_statement_time= 0; +drop table t1; +drop view v1; + +--echo # +--echo # End of 10.3 tests +--echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/analyze_format_json.test mariadb-10.3-10.3.20/mysql-test/main/analyze_format_json.test --- mariadb-10.3-10.3.17/mysql-test/main/analyze_format_json.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/analyze_format_json.test 2019-11-06 16:01:56.000000000 +0000 @@ -5,6 +5,8 @@ drop table if exists t0,t1,t2,t3; --enable_warnings +--source include/default_optimizer_switch.inc + create table t0 (a int); INSERT INTO t0 VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/analyze_stmt_orderby.test mariadb-10.3-10.3.20/mysql-test/main/analyze_stmt_orderby.test --- mariadb-10.3-10.3.17/mysql-test/main/analyze_stmt_orderby.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/analyze_stmt_orderby.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,5 +1,6 @@ --source include/have_innodb.inc +--source include/default_optimizer_switch.inc create table t0(a int); insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/analyze_stmt_privileges2.result mariadb-10.3-10.3.20/mysql-test/main/analyze_stmt_privileges2.result --- mariadb-10.3-10.3.17/mysql-test/main/analyze_stmt_privileges2.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/analyze_stmt_privileges2.result 2019-11-06 16:01:56.000000000 +0000 @@ -376,13 +376,13 @@ a b EXPLAIN SELECT * FROM t1 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 ANALYZE SELECT * FROM t1 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 3.00 100.00 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 4 4.00 100.00 0.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 4.00 100.00 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 0.00 100.00 100.00 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 3.00 100.00 100.00 #------------------------------------------------------------------------ # I/R/U/D/S on the inner view @@ -491,14 +491,14 @@ a b EXPLAIN SELECT * FROM v1 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 8 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 ANALYZE SELECT * FROM v1 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 3.00 100.00 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 8 8.00 100.00 0.00 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 3.00 100.00 100.00 +1 PRIMARY t1 ALL NULL NULL NULL NULL 8 8.00 100.00 0.00 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 NULL 100.00 NULL +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 NULL 100.00 NULL #------------------------------------------------------------------------ # I/R/U/D/S on the outer view # Expectation: Can run everything @@ -598,14 +598,14 @@ a b EXPLAIN SELECT * FROM v2 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 12 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 Using where +1 PRIMARY t1 ALL NULL NULL NULL NULL 12 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 ANALYZE SELECT * FROM v2 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 3.00 100.00 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 12 12.00 100.00 0.00 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 3.00 100.00 100.00 Using where +1 PRIMARY t1 ALL NULL NULL NULL NULL 12 12.00 100.00 0.00 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 NULL 100.00 NULL +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 NULL 100.00 NULL #======================================================================== # Test: Grant INSERT on the table @@ -1591,14 +1591,14 @@ a b EXPLAIN SELECT * FROM v1 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 ANALYZE SELECT * FROM v1 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 3.00 100.00 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 4 4.00 100.00 0.00 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 3.00 100.00 100.00 +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 4.00 100.00 0.00 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 NULL 100.00 NULL +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 NULL 100.00 NULL #------------------------------------------------------------------------ # I/R/U/D/S on the outer view # Expectation: Can run everything: SELECT access to the column `a` @@ -1708,14 +1708,14 @@ a b EXPLAIN SELECT * FROM v2 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 Using where +1 PRIMARY t1 ALL NULL NULL NULL NULL 8 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 ANALYZE SELECT * FROM v2 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 3.00 100.00 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 8 8.00 100.00 0.00 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 3.00 100.00 100.00 Using where +1 PRIMARY t1 ALL NULL NULL NULL NULL 8 8.00 100.00 0.00 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 NULL 100.00 NULL +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 NULL 100.00 NULL #======================================================================== # Test: Grant SELECT, INSERT, UPDATE, DELETE on the table @@ -1940,14 +1940,14 @@ a b EXPLAIN SELECT * FROM v1 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 ANALYZE SELECT * FROM v1 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 3.00 100.00 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 4 4.00 100.00 0.00 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 3.00 100.00 100.00 +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 4.00 100.00 0.00 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 NULL 100.00 NULL +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 NULL 100.00 NULL #------------------------------------------------------------------------ # I/R/U/D/S on the outer view # Expectation: Can run everything @@ -2048,14 +2048,14 @@ a b EXPLAIN SELECT * FROM v2 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 Using where +1 PRIMARY t1 ALL NULL NULL NULL NULL 8 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 ANALYZE SELECT * FROM v2 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 3.00 100.00 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 8 8.00 100.00 0.00 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 3.00 100.00 100.00 Using where +1 PRIMARY t1 ALL NULL NULL NULL NULL 8 8.00 100.00 0.00 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 NULL 100.00 NULL +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 NULL 100.00 NULL ######################################################################### # Inner view permission tests @@ -2697,14 +2697,14 @@ a b EXPLAIN SELECT * FROM v1 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 14 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 14 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 ANALYZE SELECT * FROM v1 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 3.00 100.00 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 14 14.00 100.00 0.00 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 3.00 100.00 100.00 +1 PRIMARY t1 ALL NULL NULL NULL NULL 14 14.00 100.00 0.00 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 NULL 100.00 NULL +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 NULL 100.00 NULL #------------------------------------------------------------------------ # I/R/U/D/S on the outer view # Expectation: Can run everything @@ -2804,14 +2804,14 @@ a b EXPLAIN SELECT * FROM v2 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 Using where +1 PRIMARY t1 ALL NULL NULL NULL NULL 18 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 ANALYZE SELECT * FROM v2 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 3.00 100.00 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 18 18.00 100.00 0.00 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 3.00 100.00 100.00 Using where +1 PRIMARY t1 ALL NULL NULL NULL NULL 18 18.00 100.00 0.00 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 NULL 100.00 NULL +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 NULL 100.00 NULL #======================================================================== # Test: Grant INSERT on the inner view @@ -3987,14 +3987,14 @@ a b EXPLAIN SELECT * FROM v1 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 35 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 35 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 ANALYZE SELECT * FROM v1 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 3.00 100.00 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 35 35.00 100.00 0.00 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 3.00 100.00 100.00 +1 PRIMARY t1 ALL NULL NULL NULL NULL 35 35.00 100.00 0.00 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 NULL 100.00 NULL +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 NULL 100.00 NULL #------------------------------------------------------------------------ # I/R/U/D/S on the outer view # Expectation: Can run everything @@ -4094,14 +4094,14 @@ a b EXPLAIN SELECT * FROM v2 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 39 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 Using where +1 PRIMARY t1 ALL NULL NULL NULL NULL 39 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 ANALYZE SELECT * FROM v2 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 3.00 100.00 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 39 39.00 100.00 0.00 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 3.00 100.00 100.00 Using where +1 PRIMARY t1 ALL NULL NULL NULL NULL 39 39.00 100.00 0.00 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 NULL 100.00 NULL +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 NULL 100.00 NULL ######################################################################### # Outer view permission tests @@ -4614,14 +4614,14 @@ a b EXPLAIN SELECT * FROM v2 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 39 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 Using where +1 PRIMARY t1 ALL NULL NULL NULL NULL 39 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 ANALYZE SELECT * FROM v2 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 3.00 100.00 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 39 39.00 100.00 0.00 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 3.00 100.00 100.00 Using where +1 PRIMARY t1 ALL NULL NULL NULL NULL 39 39.00 100.00 0.00 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 NULL 100.00 NULL +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 NULL 100.00 NULL #======================================================================== # Test: Grant INSERT on the outer view @@ -5221,14 +5221,14 @@ a b EXPLAIN SELECT * FROM v2 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 44 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 Using where +1 PRIMARY t1 ALL NULL NULL NULL NULL 44 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 ANALYZE SELECT * FROM v2 WHERE a IN ( SELECT a FROM t2 ); id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 3.00 100.00 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 44 44.00 100.00 0.00 Using where; Using join buffer (flat, BNL join) -2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 3.00 100.00 100.00 Using where +1 PRIMARY t1 ALL NULL NULL NULL NULL 44 44.00 100.00 0.00 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 NULL 100.00 NULL +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 NULL 100.00 NULL disconnect con1; connection default; DROP USER 'privtest'@localhost; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/analyze_stmt_privileges2.test mariadb-10.3-10.3.20/mysql-test/main/analyze_stmt_privileges2.test --- mariadb-10.3-10.3.17/mysql-test/main/analyze_stmt_privileges2.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/analyze_stmt_privileges2.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,4 +1,4 @@ -################################################################################ +############################################################################### # The test ensures that permission checks are applied correctly to # ANALYZE INSERT/REPLACE/UPDATE/DELETE/SELECT (I/R/U/D/S further in the test) # when it's executed on a table or on a view. @@ -18,7 +18,8 @@ # Search for 'MDEV' to find all of them. ################################################################################ --- source include/not_embedded.inc +--source include/not_embedded.inc +--source include/default_optimizer_switch.inc # Save the initial number of concurrent sessions --source include/count_sessions.inc @@ -44,6 +45,7 @@ GRANT SELECT ON privtest_db.t2 TO 'privtest'@'localhost'; connect(con1,localhost,privtest,,privtest_db); +--source include/default_optimizer_switch.inc --echo --echo ######################################################################### diff -Nru mariadb-10.3-10.3.17/mysql-test/main/analyze_stmt.result mariadb-10.3-10.3.20/mysql-test/main/analyze_stmt.result --- mariadb-10.3-10.3.17/mysql-test/main/analyze_stmt.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/analyze_stmt.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,4 @@ +set join_cache_level=2; drop table if exists t0,t1,t2,t3; create table t0 (a int) engine=myisam; INSERT INTO t0 VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/analyze_stmt.test mariadb-10.3-10.3.20/mysql-test/main/analyze_stmt.test --- mariadb-10.3-10.3.17/mysql-test/main/analyze_stmt.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/analyze_stmt.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,6 +1,10 @@ # # Tests for "ANALYZE $statement" feature # + +# Fix that analyze delete with join doesn't add extra WHERE clause. +set join_cache_level=2; + --disable_warnings drop table if exists t0,t1,t2,t3; --enable_warnings diff -Nru mariadb-10.3-10.3.17/mysql-test/main/analyze.test mariadb-10.3-10.3.20/mysql-test/main/analyze.test --- mariadb-10.3-10.3.17/mysql-test/main/analyze.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/analyze.test 2019-11-06 16:01:56.000000000 +0000 @@ -13,6 +13,8 @@ # before calling mi_state_info_write # +--source include/default_optimizer_switch.inc + create table t1 (a bigint); lock tables t1 write; insert into t1 values(0); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/auto_increment_ranges.inc mariadb-10.3-10.3.20/mysql-test/main/auto_increment_ranges.inc --- mariadb-10.3-10.3.17/mysql-test/main/auto_increment_ranges.inc 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/auto_increment_ranges.inc 2019-11-06 16:01:56.000000000 +0000 @@ -238,3 +238,23 @@ --error HA_ERR_AUTOINC_ERANGE insert into t1 values(NULL); drop table t1; + +--echo # +--echo # MDEV-17333 Assertion in update_auto_increment() upon exotic LOAD +--echo # +--source include/have_partition.inc +let $mysqld_datadir= `select @@datadir`; +--write_file $mysqld_datadir/test/load.data +1 1 +0 2 +3 3 +4 1 +0 1 +6 6 +EOF +create or replace table t1 (pk int auto_increment, x int, primary key(pk), unique key(x)) +with system versioning partition by system_time interval 2 day +(partition p1 history, partition pn current); +load data infile 'load.data' ignore into table t1; +--remove_file $mysqld_datadir/test/load.data +drop table t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/auto_increment_ranges_innodb.result mariadb-10.3-10.3.20/mysql-test/main/auto_increment_ranges_innodb.result --- mariadb-10.3-10.3.17/mysql-test/main/auto_increment_ranges_innodb.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/auto_increment_ranges_innodb.result 2019-11-06 16:01:56.000000000 +0000 @@ -264,6 +264,17 @@ insert into t1 values(NULL); ERROR 22003: Out of range value for column 'a' at row 1 drop table t1; +# +# MDEV-17333 Assertion in update_auto_increment() upon exotic LOAD +# +create or replace table t1 (pk int auto_increment, x int, primary key(pk), unique key(x)) +with system versioning partition by system_time interval 2 day +(partition p1 history, partition pn current); +load data infile 'load.data' ignore into table t1; +Warnings: +Warning 1062 Duplicate entry '1' for key 'x' +Warning 1062 Duplicate entry '1' for key 'x' +drop table t1; create table t1 (pk int auto_increment primary key, f varchar(20)); insert t1 (f) values ('a'), ('b'), ('c'), ('d'); select null, f into outfile 'load.data' from t1 limit 1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/auto_increment_ranges_myisam.result mariadb-10.3-10.3.20/mysql-test/main/auto_increment_ranges_myisam.result --- mariadb-10.3-10.3.17/mysql-test/main/auto_increment_ranges_myisam.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/auto_increment_ranges_myisam.result 2019-11-06 16:01:56.000000000 +0000 @@ -270,3 +270,14 @@ insert into t1 values(NULL); ERROR 22003: Out of range value for column 'a' at row 1 drop table t1; +# +# MDEV-17333 Assertion in update_auto_increment() upon exotic LOAD +# +create or replace table t1 (pk int auto_increment, x int, primary key(pk), unique key(x)) +with system versioning partition by system_time interval 2 day +(partition p1 history, partition pn current); +load data infile 'load.data' ignore into table t1; +Warnings: +Warning 1062 Duplicate entry '1' for key 'x' +Warning 1062 Duplicate entry '1' for key 'x' +drop table t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/bootstrap.result mariadb-10.3-10.3.20/mysql-test/main/bootstrap.result --- mariadb-10.3-10.3.17/mysql-test/main/bootstrap.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/bootstrap.result 2019-11-06 16:01:56.000000000 +0000 @@ -3,7 +3,8 @@ drop table t1; ERROR 42S02: Unknown table 'test.t1' set @my_max_allowed_packet= @@max_allowed_packet; -set global max_allowed_packet=64*@@max_allowed_packet; +set @@global.max_allowed_packet= greatest(1073741824, @@max_allowed_packet); +set @max_allowed_packed=@@global.max_allowed_packet; set global max_allowed_packet=@my_max_allowed_packet; drop table t1; End of 5.1 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/bootstrap.test mariadb-10.3-10.3.20/mysql-test/main/bootstrap.test --- mariadb-10.3-10.3.17/mysql-test/main/bootstrap.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/bootstrap.test 2019-11-06 16:01:56.000000000 +0000 @@ -33,10 +33,11 @@ remove_file $MYSQLTEST_VARDIR/tmp/bootstrap_error.sql; # -# Bootstrap with a query larger than 2*thd->net.max_packet +# Bootstrap with a large thd->net.max_packet # set @my_max_allowed_packet= @@max_allowed_packet; -set global max_allowed_packet=64*@@max_allowed_packet; +set @@global.max_allowed_packet= greatest(1073741824, @@max_allowed_packet); +set @max_allowed_packed=@@global.max_allowed_packet; --disable_query_log create table t1 select 2 as a, concat(repeat('MySQL', @@max_allowed_packet/10), ';') as b; eval select * into outfile '$MYSQLTEST_VARDIR/tmp/long_query.sql' from t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/bug13633383.test mariadb-10.3-10.3.20/mysql-test/main/bug13633383.test --- mariadb-10.3-10.3.17/mysql-test/main/bug13633383.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/bug13633383.test 2019-11-06 16:01:56.000000000 +0000 @@ -2,6 +2,9 @@ --echo # Bug#13633383 63183: SMALL SORT_BUFFER_SIZE CRASH IN MERGE_BUFFERS --echo # +# Avoid warnings from join_buffer +--source include/default_optimizer_switch.inc + CREATE TABLE t1 ( `a` int(11) DEFAULT NULL, `col432` bit(8) DEFAULT NULL, diff -Nru mariadb-10.3-10.3.17/mysql-test/main/cast.result mariadb-10.3-10.3.20/mysql-test/main/cast.result --- mariadb-10.3-10.3.17/mysql-test/main/cast.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/cast.result 2019-11-06 16:01:56.000000000 +0000 @@ -727,6 +727,7 @@ # # Bug #11765023: 57934: DOS POSSIBLE SINCE BINARY CASTING # DOESN'T ADHERE TO MAX_ALLOWED_PACKET +set @save_max_allowed_packet=@@global.max_allowed_packet; SET @@GLOBAL.max_allowed_packet=2048; Warnings: Warning 1708 The value of 'max_allowed_packet' should be no less than the value of 'net_buffer_length' @@ -748,7 +749,7 @@ Warning 1301 Result of cast_as_char() was larger than max_allowed_packet (2048) - truncated connection default; disconnect newconn; -SET @@GLOBAL.max_allowed_packet=default; +SET @@GLOBAL.max_allowed_packet=@save_max_allowed_packet; # # Bug#13519724 63793: CRASH IN DTCOLLATION::SET(DTCOLLATION &SET) # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/cast.test mariadb-10.3-10.3.20/mysql-test/main/cast.test --- mariadb-10.3-10.3.17/mysql-test/main/cast.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/cast.test 2019-11-06 16:01:56.000000000 +0000 @@ -393,6 +393,7 @@ --echo # Bug #11765023: 57934: DOS POSSIBLE SINCE BINARY CASTING --echo # DOESN'T ADHERE TO MAX_ALLOWED_PACKET +set @save_max_allowed_packet=@@global.max_allowed_packet; SET @@GLOBAL.max_allowed_packet=2048; # reconnect to make the new max packet size take effect --connect (newconn, localhost, root,,) @@ -403,7 +404,7 @@ connection default; disconnect newconn; -SET @@GLOBAL.max_allowed_packet=default; +SET @@GLOBAL.max_allowed_packet=@save_max_allowed_packet; --echo # --echo # Bug#13519724 63793: CRASH IN DTCOLLATION::SET(DTCOLLATION &SET) diff -Nru mariadb-10.3-10.3.17/mysql-test/main/compare.result mariadb-10.3-10.3.20/mysql-test/main/compare.result --- mariadb-10.3-10.3.17/mysql-test/main/compare.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/compare.result 2019-11-06 16:01:56.000000000 +0000 @@ -100,3 +100,23 @@ SELECT 1 FROM t1 WHERE t1.a IN (1, t1.a) AND t1.a=2; 1 DROP TABLE t1; +CREATE TABLE t1 (a char(2), index (a)); +insert into t1 values ("aa"),("bb"); +select * from t1 where a="aa"; +a +aa +select * from t1 where a="aaa"; +a +select * from t1 where a="aa "; +a +aa +select * from t1 where a>="aaa"; +a +bb +explain select * from t1 where a="aaa"; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 ref a a 3 const 1 Using where; Using index +explain select * from t1 where a="aa "; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 ref a a 3 const 1 Using where; Using index +drop table t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/compare.test mariadb-10.3-10.3.20/mysql-test/main/compare.test --- mariadb-10.3-10.3.17/mysql-test/main/compare.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/compare.test 2019-11-06 16:01:56.000000000 +0000 @@ -94,3 +94,17 @@ CREATE TABLE t1(a INT ZEROFILL); SELECT 1 FROM t1 WHERE t1.a IN (1, t1.a) AND t1.a=2; DROP TABLE t1; + +# +# Check what happens when comparing to long string +# + +CREATE TABLE t1 (a char(2), index (a)); +insert into t1 values ("aa"),("bb"); +select * from t1 where a="aa"; +select * from t1 where a="aaa"; +select * from t1 where a="aa "; +select * from t1 where a>="aaa"; +explain select * from t1 where a="aaa"; +explain select * from t1 where a="aa "; +drop table t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/compound.result mariadb-10.3-10.3.20/mysql-test/main/compound.result --- mariadb-10.3-10.3.17/mysql-test/main/compound.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/compound.result 2019-11-06 16:01:56.000000000 +0000 @@ -154,6 +154,7 @@ master-bin.000001 # Query # # COMMIT drop function fn| drop table t1| +set @@sql_mode="STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"; begin not atomic select @@sql_mode; end| @@sql_mode STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION diff -Nru mariadb-10.3-10.3.17/mysql-test/main/compound.test mariadb-10.3-10.3.20/mysql-test/main/compound.test --- mariadb-10.3-10.3.17/mysql-test/main/compound.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/compound.test 2019-11-06 16:01:56.000000000 +0000 @@ -145,6 +145,8 @@ # MDEV-6606 Server crashes in String::append on selecting sql_mode inside anonymous block # MDEV-6609 SQL inside an anonymous block is executed with wrong SQL_MODE # + +set @@sql_mode="STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"; begin not atomic select @@sql_mode; end| create table t1 (a int)| select a from t1 having a > 1| diff -Nru mariadb-10.3-10.3.17/mysql-test/main/compress.result mariadb-10.3-10.3.20/mysql-test/main/compress.result --- mariadb-10.3-10.3.17/mysql-test/main/compress.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/compress.result 2019-11-06 16:01:56.000000000 +0000 @@ -1354,8 +1354,10 @@ 250503 250505 250504 250505 250505 250505 -SET @save_optimizer_switch=@@optimizer_switch; -SET optimizer_switch='outer_join_with_cache=off'; +SET @local_optimizer_switch=@@optimizer_switch; +set @local_join_cache_level=@@join_cache_level; +set @@join_cache_level=2; +set optimizer_switch='outer_join_with_cache=off,join_cache_hashed=off'; insert into t2 (fld1, companynr) values (999999,99); select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null; companynr companyname @@ -1431,7 +1433,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where 1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where -SET optimizer_switch=@save_optimizer_switch; +SET @@optimizer_switch=@local_optimizer_switch; select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1; companynr companynr 37 36 @@ -1440,6 +1442,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary 1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join) +SET @@join_cache_level=@local_join_cache_level; select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008; fld1 companynr fld3 period 038008 37 reporters 1008 diff -Nru mariadb-10.3-10.3.17/mysql-test/main/connect_debug.test mariadb-10.3-10.3.20/mysql-test/main/connect_debug.test --- mariadb-10.3-10.3.17/mysql-test/main/connect_debug.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/connect_debug.test 2019-11-06 16:01:56.000000000 +0000 @@ -17,6 +17,7 @@ # set global debug_dbug='+d,auth_invalid_plugin'; create user 'bad' identified by 'worse'; +--replace_regex /loaded: [^\n]*/loaded: invalid plugin name/ --error 1 --exec $MYSQL --default-auth=mysql_old_password --user=bad --password=worse 2>&1 set global debug_dbug=@old_dbug; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/connect.result mariadb-10.3-10.3.20/mysql-test/main/connect.result --- mariadb-10.3-10.3.17/mysql-test/main/connect.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/connect.result 2019-11-06 16:01:56.000000000 +0000 @@ -257,7 +257,7 @@ root # -- Resetting variables... -SET GLOBAL max_connections = 151; +SET GLOBAL max_connections = #max_connections#; # -- Stopping Event Scheduler... SET GLOBAL event_scheduler = OFF; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/connect.test mariadb-10.3-10.3.20/mysql-test/main/connect.test --- mariadb-10.3-10.3.17/mysql-test/main/connect.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/connect.test 2019-11-06 16:01:56.000000000 +0000 @@ -224,6 +224,7 @@ --echo --echo # -- Resetting variables... +--replace_result $saved_max_connections #max_connections# --eval SET GLOBAL max_connections = $saved_max_connections --echo diff -Nru mariadb-10.3-10.3.17/mysql-test/main/constraints.result mariadb-10.3-10.3.20/mysql-test/main/constraints.result --- mariadb-10.3-10.3.17/mysql-test/main/constraints.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/constraints.result 2019-11-06 16:01:56.000000000 +0000 @@ -129,6 +129,61 @@ ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP table test.t; SET @@SQL_MODE=@OLD_SQL_MODE; +# +# MDEV-16932 - ASAN heap-use-after-free in my_charlen_utf8 / +# my_well_formed_char_length_utf8 on 2nd execution of SP with +# ALTER trying to add bad CHECK +# +CREATE TABLE t1 (a INT); +CREATE PROCEDURE sp() ALTER TABLE t1 ADD CONSTRAINT CHECK (b > 0); +CALL sp; +ERROR 42S22: Unknown column 'b' in 'CHECK' +CALL sp; +ERROR 42S22: Unknown column 'b' in 'CHECK' +CALL sp; +ERROR 42S22: Unknown column 'b' in 'CHECK' +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +alter table t1 add column b int; +CALL sp; +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL, + `b` int(11) DEFAULT NULL, + CONSTRAINT `CONSTRAINT_1` CHECK (`b` > 0) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +CALL sp; +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL, + `b` int(11) DEFAULT NULL, + CONSTRAINT `CONSTRAINT_1` CHECK (`b` > 0), + CONSTRAINT `CONSTRAINT_2` CHECK (`b` > 0) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP PROCEDURE sp; +DROP TABLE t1; +CREATE TABLE t1 (a INT); +CREATE PROCEDURE sp() ALTER TABLE t1 ADD CONSTRAINT CHECK (b > 0); +CALL sp; +ERROR 42S22: Unknown column 'b' in 'CHECK' +alter table t1 add column b int, add constraint check (b < 10); +CALL sp; +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(11) DEFAULT NULL, + `b` int(11) DEFAULT NULL, + CONSTRAINT `CONSTRAINT_1` CHECK (`b` < 10), + CONSTRAINT `CONSTRAINT_2` CHECK (`b` > 0) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP PROCEDURE sp; +DROP TABLE t1; +# End of 10.2 tests create table t1 (a int check (a>10)) select 100 as 'a'; show create table t1; Table Create Table diff -Nru mariadb-10.3-10.3.17/mysql-test/main/constraints.test mariadb-10.3-10.3.20/mysql-test/main/constraints.test --- mariadb-10.3-10.3.17/mysql-test/main/constraints.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/constraints.test 2019-11-06 16:01:56.000000000 +0000 @@ -116,6 +116,43 @@ DROP table test.t; SET @@SQL_MODE=@OLD_SQL_MODE; +--echo # +--echo # MDEV-16932 - ASAN heap-use-after-free in my_charlen_utf8 / +--echo # my_well_formed_char_length_utf8 on 2nd execution of SP with +--echo # ALTER trying to add bad CHECK +--echo # + +CREATE TABLE t1 (a INT); +CREATE PROCEDURE sp() ALTER TABLE t1 ADD CONSTRAINT CHECK (b > 0); +--error ER_BAD_FIELD_ERROR +CALL sp; +--error ER_BAD_FIELD_ERROR +CALL sp; +--error ER_BAD_FIELD_ERROR +CALL sp; +show create table t1; +alter table t1 add column b int; +CALL sp; +show create table t1; +CALL sp; +show create table t1; +# Cleanup +DROP PROCEDURE sp; +DROP TABLE t1; + +CREATE TABLE t1 (a INT); +CREATE PROCEDURE sp() ALTER TABLE t1 ADD CONSTRAINT CHECK (b > 0); +--error ER_BAD_FIELD_ERROR +CALL sp; +alter table t1 add column b int, add constraint check (b < 10); +CALL sp; +show create table t1; +# Cleanup +DROP PROCEDURE sp; +DROP TABLE t1; + +--echo # End of 10.2 tests + # # Check that we don't lose constraints as part of CREATE ... SELECT # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/create_drop_server.result mariadb-10.3-10.3.20/mysql-test/main/create_drop_server.result --- mariadb-10.3-10.3.17/mysql-test/main/create_drop_server.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/create_drop_server.result 2019-11-06 16:01:56.000000000 +0000 @@ -38,9 +38,9 @@ CREATE SERVER server_1 FOREIGN DATA WRAPPER mysql OPTIONS (USER 'Remote', HOST 'Server.Example.Com', DATABASE 'test'); SELECT Host FROM mysql.servers WHERE Server_Name = 'server_1'; Host -server.example.com +Server.Example.Com ALTER SERVER server_1 OPTIONS(HOST 'Server.Example.Org'); SELECT Host FROM mysql.servers WHERE Server_Name = 'server_1'; Host -server.example.org +Server.Example.Org DROP SERVER server_1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/create.result mariadb-10.3-10.3.20/mysql-test/main/create.result --- mariadb-10.3-10.3.17/mysql-test/main/create.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/create.result 2019-11-06 16:01:56.000000000 +0000 @@ -1053,6 +1053,8 @@ ERROR 42000: Incorrect database name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' SHOW CREATE DATABASE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; ERROR 42000: Incorrect database name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' +set @save_character_set_client=@@character_set_client; +set @save_collation_connection=@@collation_connection; set names utf8; create database имя_базы_в_кодировке_утф8_длиной_больше_чем_45; use имя_базы_в_кодировке_утф8_длиной_больше_чем_45; @@ -1141,7 +1143,9 @@ ERROR 42000: Identifier name 'очень_очень_очень_очень_очень_очень_очень_очень_длинна' is too long drop view имя_вью_кодировке_утф8_длиной_больше_чем_42; drop table имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48; -set names default; +set @@character_set_client=@save_character_set_client; +set @@character_set_results=@save_character_set_client; +set @@session.collation_connection=@save_collation_connection; drop table if exists t1,t2,t3; drop function if exists f1; create function f1() returns int @@ -2093,3 +2097,7 @@ Warnings: Note 1831 Duplicate index `i_2`. This is deprecated and will be disallowed in a future release drop table t1; +CREATE TABLE t1 ( id1 INT, id2 INT, CONSTRAINT `foo` PRIMARY KEY (id1), CONSTRAINT `bar` UNIQUE KEY(id2)); +Warnings: +Warning 1280 Name 'foo' ignored for PRIMARY key. +DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/create.test mariadb-10.3-10.3.20/mysql-test/main/create.test --- mariadb-10.3-10.3.17/mysql-test/main/create.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/create.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,5 @@ +--source include/default_charset.inc + call mtr.add_suppression("table or database name 't-1'"); # # Check some special create statements. @@ -993,6 +995,8 @@ # # Bug#21432 Database/Table name limited to 64 bytes, not chars, problems with multi-byte # +set @save_character_set_client=@@character_set_client; +set @save_collation_connection=@@collation_connection; set names utf8; create database имя_базы_в_кодировке_утф8_длиной_больше_чем_45; @@ -1069,7 +1073,9 @@ drop view имя_вью_кодировке_утф8_длиной_больше_чем_42; drop table имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48; -set names default; +set @@character_set_client=@save_character_set_client; +set @@character_set_results=@save_character_set_client; +set @@session.collation_connection=@save_collation_connection; # # Bug#21136 CREATE TABLE SELECT within CREATE TABLE SELECT causes server crash @@ -1941,3 +1947,10 @@ # create table t1 (i int, j int, key(i), key(i)) as select 1 as i, 2 as j; drop table t1; + +# +# MDEV-17544 No warning when trying to name a primary key constraint. +# +CREATE TABLE t1 ( id1 INT, id2 INT, CONSTRAINT `foo` PRIMARY KEY (id1), CONSTRAINT `bar` UNIQUE KEY(id2)); +DROP TABLE t1; + diff -Nru mariadb-10.3-10.3.17/mysql-test/main/cte_nonrecursive.result mariadb-10.3-10.3.20/mysql-test/main/cte_nonrecursive.result --- mariadb-10.3-10.3.17/mysql-test/main/cte_nonrecursive.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/cte_nonrecursive.result 2019-11-06 16:01:56.000000000 +0000 @@ -606,7 +606,7 @@ select * from t r1 where r1.c=4; show create view v3; View Create View character_set_client collation_connection -v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS with t as (select `t1`.`a` AS `c` from `t1` where `t1`.`b` >= 'c')select `r1`.`c` AS `c` from `t` `r1` where `r1`.`c` = 4 latin1 latin1_swedish_ci +v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS with t(c) as (select `t1`.`a` AS `c` from `t1` where `t1`.`b` >= 'c')select `r1`.`c` AS `c` from `t` `r1` where `r1`.`c` = 4 latin1 latin1_swedish_ci select * from v3; c 4 @@ -618,7 +618,7 @@ select * from t r1, t r2 where r1.c=r2.c and r2.c=4; show create view v4; View Create View character_set_client collation_connection -v4 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS with t as (select `test`.`t1`.`a` AS `c` from `test`.`t1` where `test`.`t1`.`b` >= 'c')select `r1`.`c` AS `c`,`r2`.`c` AS `d` from (`t` `r1` join (select `test`.`t1`.`a` AS `c` from `test`.`t1` where `test`.`t1`.`b` >= 'c') `r2`) where `r1`.`c` = `r2`.`c` and `r2`.`c` = 4 latin1 latin1_swedish_ci +v4 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS with t(c) as (select `test`.`t1`.`a` AS `c` from `test`.`t1` where `test`.`t1`.`b` >= 'c')select `r1`.`c` AS `c`,`r2`.`c` AS `d` from (`t` `r1` join (select `test`.`t1`.`a` AS `c` from `test`.`t1` where `test`.`t1`.`b` >= 'c') `r2`) where `r1`.`c` = `r2`.`c` and `r2`.`c` = 4 latin1 latin1_swedish_ci select * from v4; c d 4 4 @@ -1159,9 +1159,9 @@ union (select a from t1 where a < 2); a -7 -5 4 +5 +7 1 prepare stmt from "with cte as (select a from t1 where a between 4 and 7 group by a) @@ -1170,15 +1170,15 @@ (select a from t1 where a < 2)"; execute stmt; a -7 -5 4 +5 +7 1 execute stmt; a -7 -5 4 +5 +7 1 deallocate prepare stmt; with cte as @@ -1188,9 +1188,9 @@ (select a from cte where exists( select a from t1 where cte.a=t1.a )); a 1 -7 -5 4 +5 +7 prepare stmt from "with cte as (select a from t1 where a between 4 and 7 group by a) (select a from t1 where a < 2) @@ -1199,15 +1199,15 @@ execute stmt; a 1 -7 -5 4 +5 +7 execute stmt; a 1 -7 -5 4 +5 +7 deallocate prepare stmt; with cte as (select a from t1 where a between 4 and 7) diff -Nru mariadb-10.3-10.3.17/mysql-test/main/cte_nonrecursive.test mariadb-10.3-10.3.20/mysql-test/main/cte_nonrecursive.test --- mariadb-10.3-10.3.17/mysql-test/main/cte_nonrecursive.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/cte_nonrecursive.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,5 @@ +--source include/default_optimizer_switch.inc + create table t1 (a int, b varchar(32)); insert into t1 values (4,'aaaa' ), (7,'bb'), (1,'ccc'), (4,'dd'); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/cte_recursive.result mariadb-10.3-10.3.20/mysql-test/main/cte_recursive.result --- mariadb-10.3-10.3.17/mysql-test/main/cte_recursive.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/cte_recursive.result 2019-11-06 16:01:56.000000000 +0000 @@ -699,7 +699,7 @@ 5 RECURSIVE UNION p ALL NULL NULL NULL NULL 12 100.00 Using where; Using join buffer (flat, BNL join) NULL UNION RESULT ALL NULL NULL NULL NULL NULL NULL Warnings: -Note 1003 with recursive ancestor_couple_ids as (/* select#2 */ select `a`.`father` AS `h_id`,`a`.`mother` AS `w_id` from `coupled_ancestors` `a` where `a`.`father` is not null and `a`.`mother` is not null), coupled_ancestors as (/* select#3 */ select `test`.`folks`.`id` AS `id`,`test`.`folks`.`name` AS `name`,`test`.`folks`.`dob` AS `dob`,`test`.`folks`.`father` AS `father`,`test`.`folks`.`mother` AS `mother` from `test`.`folks` where `test`.`folks`.`name` = 'Me' union all /* select#4 */ select `test`.`p`.`id` AS `id`,`test`.`p`.`name` AS `name`,`test`.`p`.`dob` AS `dob`,`test`.`p`.`father` AS `father`,`test`.`p`.`mother` AS `mother` from `test`.`folks` `p` join `ancestor_couple_ids` `fa` where `test`.`p`.`id` = `fa`.`h_id` union all /* select#5 */ select `test`.`p`.`id` AS `id`,`test`.`p`.`name` AS `name`,`test`.`p`.`dob` AS `dob`,`test`.`p`.`father` AS `father`,`test`.`p`.`mother` AS `mother` from `test`.`folks` `p` join `ancestor_couple_ids` `ma` where `test`.`p`.`id` = `ma`.`w_id`)/* select#1 */ select `h`.`name` AS `name`,`h`.`dob` AS `dob`,`w`.`name` AS `name`,`w`.`dob` AS `dob` from `ancestor_couple_ids` `c` join `coupled_ancestors` `h` join `coupled_ancestors` `w` where `h`.`id` = `c`.`h_id` and `w`.`id` = `c`.`w_id` +Note 1003 with recursive ancestor_couple_ids(h_id,w_id) as (/* select#2 */ select `a`.`father` AS `h_id`,`a`.`mother` AS `w_id` from `coupled_ancestors` `a` where `a`.`father` is not null and `a`.`mother` is not null), coupled_ancestors(id,name,dob,father,mother) as (/* select#3 */ select `test`.`folks`.`id` AS `id`,`test`.`folks`.`name` AS `name`,`test`.`folks`.`dob` AS `dob`,`test`.`folks`.`father` AS `father`,`test`.`folks`.`mother` AS `mother` from `test`.`folks` where `test`.`folks`.`name` = 'Me' union all /* select#4 */ select `test`.`p`.`id` AS `id`,`test`.`p`.`name` AS `name`,`test`.`p`.`dob` AS `dob`,`test`.`p`.`father` AS `father`,`test`.`p`.`mother` AS `mother` from `test`.`folks` `p` join `ancestor_couple_ids` `fa` where `test`.`p`.`id` = `fa`.`h_id` union all /* select#5 */ select `test`.`p`.`id` AS `id`,`test`.`p`.`name` AS `name`,`test`.`p`.`dob` AS `dob`,`test`.`p`.`father` AS `father`,`test`.`p`.`mother` AS `mother` from `test`.`folks` `p` join `ancestor_couple_ids` `ma` where `test`.`p`.`id` = `ma`.`w_id`)/* select#1 */ select `h`.`name` AS `name`,`h`.`dob` AS `dob`,`w`.`name` AS `name`,`w`.`dob` AS `dob` from `ancestor_couple_ids` `c` join `coupled_ancestors` `h` join `coupled_ancestors` `w` where `h`.`id` = `c`.`h_id` and `w`.`id` = `c`.`w_id` # simple mutual recursion with recursive ancestor_couple_ids(h_id, w_id) @@ -3091,7 +3091,7 @@ 4 DEPENDENT SUBQUERY ALL NULL NULL NULL NULL 16 100.00 Using where NULL UNION RESULT ALL NULL NULL NULL NULL NULL NULL Warnings: -Note 1003 with recursive destinations as (/* select#2 */ select `test`.`a`.`arrival` AS `city`,1 AS `legs` from `test`.`flights` `a` where `test`.`a`.`departure` = 'Cairo' union /* select#3 */ select `test`.`b`.`arrival` AS `arrival`,`r`.`legs` + 1 AS `r.legs + 1` from `destinations` `r` join `test`.`flights` `b` where `r`.`city` = `test`.`b`.`departure` and !(`test`.`b`.`arrival`,(/* select#4 */ select `destinations`.`city` from `destinations` where trigcond(`test`.`b`.`arrival` = `destinations`.`city` or `destinations`.`city` is null) having trigcond(`destinations`.`city` is null))))/* select#1 */ select `destinations`.`city` AS `city`,`destinations`.`legs` AS `legs` from `destinations` +Note 1003 with recursive destinations(city,legs) as (/* select#2 */ select `test`.`a`.`arrival` AS `city`,1 AS `legs` from `test`.`flights` `a` where `test`.`a`.`departure` = 'Cairo' union /* select#3 */ select `test`.`b`.`arrival` AS `arrival`,`r`.`legs` + 1 AS `r.legs + 1` from `destinations` `r` join `test`.`flights` `b` where `r`.`city` = `test`.`b`.`departure` and !(`test`.`b`.`arrival`,(/* select#4 */ select `destinations`.`city` from `destinations` where trigcond(`test`.`b`.`arrival` = `destinations`.`city` or `destinations`.`city` is null) having trigcond(`destinations`.`city` is null))))/* select#1 */ select `destinations`.`city` AS `city`,`destinations`.`legs` AS `legs` from `destinations` set standard_compliant_cte=default; drop table flights; # @@ -3378,7 +3378,7 @@ 3 RECURSIVE UNION ALL NULL NULL NULL NULL 2 100.00 Using where NULL UNION RESULT ALL NULL NULL NULL NULL NULL NULL Warnings: -Note 1003 with recursive rcte as (/* select#2 */ select 1 AS `a` union /* select#3 */ select cast(`rcte`.`a` + 1 as unsigned) AS `cast(a+1 as unsigned)` from `rcte` where `rcte`.`a` < 10), cte1 as (/* select#4 */ select count(0) AS `c1` from `rcte` join `test`.`t1` where `rcte`.`a` between 3 and 5 and `test`.`t1`.`id` = `rcte`.`a` - 3), cte2 as (/* select#5 */ select count(0) AS `c2` from `rcte` join `test`.`t1` where `rcte`.`a` between 7 and 8 and `test`.`t1`.`id` = `rcte`.`a` - 7)/* select#1 */ select `cte1`.`c1` AS `c1`,`cte2`.`c2` AS `c2` from `cte1` join `cte2` +Note 1003 with recursive rcte(a) as (/* select#2 */ select 1 AS `a` union /* select#3 */ select cast(`rcte`.`a` + 1 as unsigned) AS `cast(a+1 as unsigned)` from `rcte` where `rcte`.`a` < 10), cte1 as (/* select#4 */ select count(0) AS `c1` from `rcte` join `test`.`t1` where `rcte`.`a` between 3 and 5 and `test`.`t1`.`id` = `rcte`.`a` - 3), cte2 as (/* select#5 */ select count(0) AS `c2` from `rcte` join `test`.`t1` where `rcte`.`a` between 7 and 8 and `test`.`t1`.`id` = `rcte`.`a` - 7)/* select#1 */ select `cte1`.`c1` AS `c1`,`cte2`.`c2` AS `c2` from `cte1` join `cte2` prepare stmt from "with recursive rcte(a) as (select 1 union select cast(a+1 as unsigned) from rcte where a < 10), diff -Nru mariadb-10.3-10.3.17/mysql-test/main/cte_recursive.test mariadb-10.3-10.3.20/mysql-test/main/cte_recursive.test --- mariadb-10.3-10.3.17/mysql-test/main/cte_recursive.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/cte_recursive.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,5 @@ +--source include/default_optimizer_switch.inc + create table t1 (a int, b varchar(32)); insert into t1 values (4,'aaaa' ), (7,'bb'), (1,'ccc'), (4,'dd'); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_binary.result mariadb-10.3-10.3.20/mysql-test/main/ctype_binary.result --- mariadb-10.3-10.3.17/mysql-test/main/ctype_binary.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_binary.result 2019-11-06 16:01:56.000000000 +0000 @@ -102,7 +102,7 @@ show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varbinary(1) DEFAULT NULL + `c1` varbinary(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(-1)); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_collate.result mariadb-10.3-10.3.20/mysql-test/main/ctype_collate.result --- mariadb-10.3-10.3.17/mysql-test/main/ctype_collate.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_collate.result 2019-11-06 16:01:56.000000000 +0000 @@ -732,6 +732,8 @@ b LONGTEXT CHARACTER SET "latin1" COLLATE "latin1_bin", PRIMARY KEY b (b(32)) ); +Warnings: +Warning 1280 Name 'b' ignored for PRIMARY key. INSERT INTO t1 (b) VALUES ('a'), (_binary 0x1), (_binary 0x0), (''); explain select hex(b) from t1 force index (PRIMARY) where b<'zzz'; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_cp1251.result mariadb-10.3-10.3.20/mysql-test/main/ctype_cp1251.result --- mariadb-10.3-10.3.17/mysql-test/main/ctype_cp1251.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_cp1251.result 2019-11-06 16:01:56.000000000 +0000 @@ -511,7 +511,7 @@ show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET cp1251 DEFAULT NULL + `c1` varchar(2) CHARACTER SET cp1251 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(-1)); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_latin1.result mariadb-10.3-10.3.20/mysql-test/main/ctype_latin1.result --- mariadb-10.3-10.3.17/mysql-test/main/ctype_latin1.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_latin1.result 2019-11-06 16:01:56.000000000 +0000 @@ -820,7 +820,7 @@ show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) DEFAULT NULL + `c1` varchar(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(-1)); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_latin2_ch.result mariadb-10.3-10.3.20/mysql-test/main/ctype_latin2_ch.result --- mariadb-10.3-10.3.17/mysql-test/main/ctype_latin2_ch.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_latin2_ch.result 2019-11-06 16:01:56.000000000 +0000 @@ -10,6 +10,8 @@ insert into t1 values (1,'Aa'); insert into t1 values (2,'Aas'); alter table t1 add primary key aaa(tt); +Warnings: +Warning 1280 Name 'aaa' ignored for PRIMARY key. select * from t1 where tt like 'Aa%'; id tt 1 Aa diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_uca_innodb.result mariadb-10.3-10.3.20/mysql-test/main/ctype_uca_innodb.result --- mariadb-10.3-10.3.17/mysql-test/main/ctype_uca_innodb.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_uca_innodb.result 2019-11-06 16:01:56.000000000 +0000 @@ -23,14 +23,13 @@ INSERT INTO t1 (ch) VALUES ('admin'),('admin1'); SELECT ch FROM t1 WHERE ch='admin𝌆'; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 +EXPLAIN SELECT ch FROM t1 WHERE ch='admin𝌆'; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆'; ch SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆'; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 DELETE FROM t1; INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????'); INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b'); @@ -46,22 +45,14 @@ SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL # Impossible WHERE noticed after reading const tables -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL # Impossible WHERE noticed after reading const tables -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch; ch a @@ -104,8 +95,6 @@ SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch; ch a @@ -125,14 +114,10 @@ az aЀ aր -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch; ch a @@ -152,8 +137,6 @@ az aЀ aր -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch; ch z @@ -164,24 +147,16 @@ SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch; ch z -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch; ch z -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 ALTER TABLE t1 DROP KEY ch; # 0xD18F would be a good 2-byte character, 0xD1 is an incomplete sequence SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,''''); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_uca.result mariadb-10.3-10.3.20/mysql-test/main/ctype_uca.result --- mariadb-10.3-10.3.17/mysql-test/main/ctype_uca.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_uca.result 2019-11-06 16:01:56.000000000 +0000 @@ -6748,14 +6748,13 @@ INSERT INTO t1 (ch) VALUES ('admin'),('admin1'); SELECT ch FROM t1 WHERE ch='admin𝌆'; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 +EXPLAIN SELECT ch FROM t1 WHERE ch='admin𝌆'; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆'; ch SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆'; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 DELETE FROM t1; INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????'); INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b'); @@ -6771,22 +6770,14 @@ SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL # Impossible WHERE noticed after reading const tables -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL # Impossible WHERE noticed after reading const tables -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch; ch a @@ -6829,8 +6820,6 @@ SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch; ch a @@ -6850,14 +6839,10 @@ az aЀ aր -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch; ch a @@ -6877,8 +6862,6 @@ az aЀ aր -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch; ch z @@ -6889,24 +6872,16 @@ SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch; ch z -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch; ch z -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 ALTER TABLE t1 DROP KEY ch; # 0xD18F would be a good 2-byte character, 0xD1 is an incomplete sequence SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,''''); @@ -6992,14 +6967,13 @@ INSERT INTO t1 (ch) VALUES ('admin'),('admin1'); SELECT ch FROM t1 WHERE ch='admin𝌆'; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 +EXPLAIN SELECT ch FROM t1 WHERE ch='admin𝌆'; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆'; ch SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆'; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 DELETE FROM t1; INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????'); INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b'); @@ -7015,22 +6989,14 @@ SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL # Impossible WHERE noticed after reading const tables -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL # Impossible WHERE noticed after reading const tables -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch; ch a diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_ucs.result mariadb-10.3-10.3.20/mysql-test/main/ctype_ucs.result --- mariadb-10.3-10.3.17/mysql-test/main/ctype_ucs.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_ucs.result 2019-11-06 16:01:56.000000000 +0000 @@ -1700,7 +1700,7 @@ show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET ucs2 DEFAULT NULL + `c1` varchar(2) CHARACTER SET ucs2 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(-1)); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_ujis.result mariadb-10.3-10.3.20/mysql-test/main/ctype_ujis.result --- mariadb-10.3-10.3.17/mysql-test/main/ctype_ujis.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_ujis.result 2019-11-06 16:01:56.000000000 +0000 @@ -2504,6 +2504,8 @@ DROP TABLE IF EXISTS t1, t2; DROP PROCEDURE IF EXISTS sp1; set names ujis; +SET @save_character_set_server= @@character_set_server; +SET @save_character_set_database= @@character_set_database; set character_set_database = ujis; set character_set_server = ujis; CREATE TABLE t1(c1 char(2)) default charset = ujis; @@ -2539,8 +2541,8 @@ Warning 1292 Truncated incorrect INTEGER value: 'a' Warning 1292 Truncated incorrect INTEGER value: 'a' set names default; -set character_set_database=default; -set character_set_server=default; +set character_set_database=@save_character_set_server; +set character_set_server=@save_character_set_database; End of 5.1 tests # # Start of 5.5 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_ujis.test mariadb-10.3-10.3.20/mysql-test/main/ctype_ujis.test --- mariadb-10.3-10.3.17/mysql-test/main/ctype_ujis.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_ujis.test 2019-11-06 16:01:56.000000000 +0000 @@ -1178,6 +1178,8 @@ --enable_warnings set names ujis; +SET @save_character_set_server= @@character_set_server; +SET @save_character_set_database= @@character_set_database; set character_set_database = ujis; set character_set_server = ujis; @@ -1219,8 +1221,8 @@ set names default; -set character_set_database=default; -set character_set_server=default; +set character_set_database=@save_character_set_server; +set character_set_server=@save_character_set_database; --echo End of 5.1 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_utf16_def-master.opt mariadb-10.3-10.3.20/mysql-test/main/ctype_utf16_def-master.opt --- mariadb-10.3-10.3.17/mysql-test/main/ctype_utf16_def-master.opt 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_utf16_def-master.opt 2019-11-06 16:01:56.000000000 +0000 @@ -1 +1 @@ ---character-set-server=utf16,latin1 +--character-set-server=utf16,latin1 --collation-server=utf16_general_ci diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_utf16.result mariadb-10.3-10.3.20/mysql-test/main/ctype_utf16.result --- mariadb-10.3-10.3.17/mysql-test/main/ctype_utf16.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_utf16.result 2019-11-06 16:01:56.000000000 +0000 @@ -1567,7 +1567,7 @@ space(date_add(101, INTERVAL CHAR('1' USING utf16) hour_second)) NULL Warnings: -Warning 1301 Result of space() was larger than max_allowed_packet (16777216) - truncated +Warning 1301 Result of space() was larger than max_allowed_packet (XXX) - truncated # # Bug#11750518 41090: ORDER BY TRUNCATES GROUP_CONCAT RESULT # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_utf16.test mariadb-10.3-10.3.20/mysql-test/main/ctype_utf16.test --- mariadb-10.3-10.3.17/mysql-test/main/ctype_utf16.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_utf16.test 2019-11-06 16:01:56.000000000 +0000 @@ -765,9 +765,10 @@ --echo # DATE_ADD/DATE_SUB WITH INTERVAL CRASHES IN GET_INTERVAL_VALUE() --echo # +let $max_packet=`select @@max_allowed_packet`; +--replace_result $max_packet XXX SELECT space(date_add(101, INTERVAL CHAR('1' USING utf16) hour_second)); - --echo # --echo # Bug#11750518 41090: ORDER BY TRUNCATES GROUP_CONCAT RESULT --echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_utf8mb4_heap.result mariadb-10.3-10.3.20/mysql-test/main/ctype_utf8mb4_heap.result --- mariadb-10.3-10.3.17/mysql-test/main/ctype_utf8mb4_heap.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_utf8mb4_heap.result 2019-11-06 16:01:56.000000000 +0000 @@ -1682,6 +1682,7 @@ character_set_results utf8mb4 character_set_server latin1 character_set_system utf8 +SET @@character_set_server=@save_character_set_server; CREATE DATABASE crashtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; USE crashtest; CREATE TABLE crashtest (crash char(10)) DEFAULT CHARSET=utf8mb4 ENGINE heap; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_utf8mb4_innodb.result mariadb-10.3-10.3.20/mysql-test/main/ctype_utf8mb4_innodb.result --- mariadb-10.3-10.3.17/mysql-test/main/ctype_utf8mb4_innodb.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_utf8mb4_innodb.result 2019-11-06 16:01:56.000000000 +0000 @@ -1808,6 +1808,7 @@ character_set_results utf8mb4 character_set_server latin1 character_set_system utf8 +SET @@character_set_server=@save_character_set_server; CREATE DATABASE crashtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; USE crashtest; CREATE TABLE crashtest (crash char(10)) DEFAULT CHARSET=utf8mb4 ENGINE InnoDB; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_utf8mb4_myisam.result mariadb-10.3-10.3.20/mysql-test/main/ctype_utf8mb4_myisam.result --- mariadb-10.3-10.3.17/mysql-test/main/ctype_utf8mb4_myisam.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_utf8mb4_myisam.result 2019-11-06 16:01:56.000000000 +0000 @@ -1815,6 +1815,7 @@ character_set_results utf8mb4 character_set_server latin1 character_set_system utf8 +SET @@character_set_server=@save_character_set_server; CREATE DATABASE crashtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; USE crashtest; CREATE TABLE crashtest (crash char(10)) DEFAULT CHARSET=utf8mb4 ENGINE MyISAM; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_utf8mb4.result mariadb-10.3-10.3.20/mysql-test/main/ctype_utf8mb4.result --- mariadb-10.3-10.3.17/mysql-test/main/ctype_utf8mb4.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_utf8mb4.result 2019-11-06 16:01:56.000000000 +0000 @@ -1850,6 +1850,7 @@ character_set_results utf8mb4 character_set_server latin1 character_set_system utf8 +SET @@character_set_server=@save_character_set_server; CREATE DATABASE crashtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; USE crashtest; CREATE TABLE crashtest (crash char(10)) DEFAULT CHARSET=utf8mb4; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_utf8mb4.test mariadb-10.3-10.3.20/mysql-test/main/ctype_utf8mb4.test --- mariadb-10.3-10.3.17/mysql-test/main/ctype_utf8mb4.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_utf8mb4.test 2019-11-06 16:01:56.000000000 +0000 @@ -5,6 +5,7 @@ # --source include/have_innodb.inc +--source include/default_optimizer_switch.inc --disable_warnings drop table if exists t1,t2; @@ -1187,7 +1188,9 @@ # SET CHARACTER SET utf8mb4; +--source include/default_charset.inc SHOW VARIABLES LIKE 'character\_set\_%'; +SET @@character_set_server=@save_character_set_server; CREATE DATABASE crashtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; USE crashtest; CREATE TABLE crashtest (crash char(10)) DEFAULT CHARSET=utf8mb4; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_utf8.result mariadb-10.3-10.3.20/mysql-test/main/ctype_utf8.result --- mariadb-10.3-10.3.17/mysql-test/main/ctype_utf8.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_utf8.result 2019-11-06 16:01:56.000000000 +0000 @@ -2571,7 +2571,7 @@ show create table t1; Table Create Table t1 CREATE TABLE `t1` ( - `c1` varchar(1) CHARACTER SET utf8 DEFAULT NULL + `c1` varchar(2) CHARACTER SET utf8 DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; select hex(concat(-1)); @@ -5467,14 +5467,13 @@ INSERT INTO t1 (ch) VALUES ('admin'),('admin1'); SELECT ch FROM t1 WHERE ch='admin𝌆'; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 +EXPLAIN SELECT ch FROM t1 WHERE ch='admin𝌆'; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆'; ch SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆'; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 DELETE FROM t1; INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????'); INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b'); @@ -5490,22 +5489,14 @@ SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL # Impossible WHERE noticed after reading const tables -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL # Impossible WHERE noticed after reading const tables -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch; ch a @@ -5548,8 +5539,6 @@ SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch; ch a @@ -5569,14 +5558,10 @@ az aЀ aր -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch; ch a @@ -5596,8 +5581,6 @@ az aЀ aր -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch; ch z @@ -5608,24 +5591,16 @@ SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch; ch z -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch; ch z -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 ALTER TABLE t1 DROP KEY ch; # 0xD18F would be a good 2-byte character, 0xD1 is an incomplete sequence SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,''''); @@ -5711,14 +5686,13 @@ INSERT INTO t1 (ch) VALUES ('admin'),('admin1'); SELECT ch FROM t1 WHERE ch='admin𝌆'; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 +EXPLAIN SELECT ch FROM t1 WHERE ch='admin𝌆'; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆'; ch SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆'; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 DELETE FROM t1; INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????'); INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b'); @@ -5734,22 +5708,14 @@ SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL # Impossible WHERE noticed after reading const tables -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL # Impossible WHERE noticed after reading const tables -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch; ch a @@ -5792,8 +5758,6 @@ SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch; ch a @@ -5813,14 +5777,10 @@ az aЀ aր -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch; ch a @@ -5840,8 +5800,6 @@ az aЀ aր -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch; ch z @@ -5852,24 +5810,16 @@ SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch; ch z -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index ch ch 183 NULL # Using where; Using index -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch; ch z -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 ALTER TABLE t1 DROP KEY ch; # 0xD18F would be a good 2-byte character, 0xD1 is an incomplete sequence SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,''''); @@ -5955,14 +5905,13 @@ INSERT INTO t1 (ch) VALUES ('admin'),('admin1'); SELECT ch FROM t1 WHERE ch='admin𝌆'; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 +EXPLAIN SELECT ch FROM t1 WHERE ch='admin𝌆'; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆'; ch SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆'; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 DELETE FROM t1; INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????'); INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b'); @@ -5978,22 +5927,14 @@ SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL # Impossible WHERE noticed after reading const tables -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86' for column `test`.`t1`.`ch` at row 1 EXPLAIN SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL # Impossible WHERE noticed after reading const tables -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch; ch -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9D\x8C\x86b' for column `test`.`t1`.`ch` at row 1 SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch; ch a diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ctype_utf8.test mariadb-10.3-10.3.20/mysql-test/main/ctype_utf8.test --- mariadb-10.3-10.3.17/mysql-test/main/ctype_utf8.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ctype_utf8.test 2019-11-06 16:01:56.000000000 +0000 @@ -7,6 +7,8 @@ SET TIME_ZONE='+03:00'; --source include/have_innodb.inc +--source include/default_optimizer_switch.inc +--source include/default_charset.inc --disable_warnings drop table if exists t1,t2,t3,t4; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/custom_aggregates_i_s.test mariadb-10.3-10.3.20/mysql-test/main/custom_aggregates_i_s.test --- mariadb-10.3-10.3.17/mysql-test/main/custom_aggregates_i_s.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/custom_aggregates_i_s.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,5 @@ +--source include/default_optimizer_switch.inc + flush status; show status like "%custom_aggregate%"; create table t2 (sal int(10)); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/default.result mariadb-10.3-10.3.20/mysql-test/main/default.result --- mariadb-10.3-10.3.17/mysql-test/main/default.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/default.result 2019-11-06 16:01:56.000000000 +0000 @@ -3357,18 +3357,26 @@ drop table t1; set sql_mode=default; create table t1 (a int default b, b int default 4, t text); -insert into t1 (b, t) values (5, '1 column is omitted'); -insert into t1 values (default, 5, '2 column gets DEFAULT, keyword'); -insert into t1 values (default(a), 5, '3 column gets DEFAULT(a), expression'); -insert into t1 values (default(a)+0, 5, '4 also expression DEFAULT(0)+0'); -insert into t1 values (b, 5, '5 the value of the DEFAULT(a), that is b'); +insert t1 (b, t) values (5, '1 column is omitted'); +insert t1 values (default, 5, '2 column gets DEFAULT, keyword'); +insert t1 values (default(a), 5, '3 column gets DEFAULT(a), expression'); +insert t1 values (default(a)+0, 5, '4 also expression DEFAULT(0)+0'); +insert t1 values (b, 5, '5 the value of the DEFAULT(a), that is b'); +insert t1 (t,b,a) values ('6 reversed, column gets DEFAULT, keyword', 5, default); +insert t1 (t,b,a) values ('7 reversed, column gets DEFAULT(a), expression', 5, default(a)); +insert t1 (t,b,a) values ('8 reversed, also expression DEFAULT(0)+0', 5, default(a)+0); +insert t1 (t,b,a) values ('9 reversed, the value of the DEFAULT(a), that is b', 5, b); select * from t1 order by t; a b t 5 5 1 column is omitted -5 5 2 column gets DEFAULT, keyword +4 5 2 column gets DEFAULT, keyword 4 5 3 column gets DEFAULT(a), expression 4 5 4 also expression DEFAULT(0)+0 4 5 5 the value of the DEFAULT(a), that is b +5 5 6 reversed, column gets DEFAULT, keyword +5 5 7 reversed, column gets DEFAULT(a), expression +5 5 8 reversed, also expression DEFAULT(0)+0 +5 5 9 reversed, the value of the DEFAULT(a), that is b drop table t1; create table t1 (col1 int default(-(default(col1)))); ERROR 01000: Expression for field `col1` is referring to uninitialized field `col1` diff -Nru mariadb-10.3-10.3.17/mysql-test/main/default.test mariadb-10.3-10.3.20/mysql-test/main/default.test --- mariadb-10.3-10.3.17/mysql-test/main/default.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/default.test 2019-11-06 16:01:56.000000000 +0000 @@ -2073,11 +2073,16 @@ # MDEV-10201 Bad results for CREATE TABLE t1 (a INT DEFAULT b, b INT DEFAULT 4) # create table t1 (a int default b, b int default 4, t text); -insert into t1 (b, t) values (5, '1 column is omitted'); -insert into t1 values (default, 5, '2 column gets DEFAULT, keyword'); -insert into t1 values (default(a), 5, '3 column gets DEFAULT(a), expression'); -insert into t1 values (default(a)+0, 5, '4 also expression DEFAULT(0)+0'); -insert into t1 values (b, 5, '5 the value of the DEFAULT(a), that is b'); +insert t1 (b, t) values (5, '1 column is omitted'); +insert t1 values (default, 5, '2 column gets DEFAULT, keyword'); +insert t1 values (default(a), 5, '3 column gets DEFAULT(a), expression'); +insert t1 values (default(a)+0, 5, '4 also expression DEFAULT(0)+0'); +insert t1 values (b, 5, '5 the value of the DEFAULT(a), that is b'); +# and the same in a different order +insert t1 (t,b,a) values ('6 reversed, column gets DEFAULT, keyword', 5, default); +insert t1 (t,b,a) values ('7 reversed, column gets DEFAULT(a), expression', 5, default(a)); +insert t1 (t,b,a) values ('8 reversed, also expression DEFAULT(0)+0', 5, default(a)+0); +insert t1 (t,b,a) values ('9 reversed, the value of the DEFAULT(a), that is b', 5, b); select * from t1 order by t; drop table t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/derived_cond_pushdown.result mariadb-10.3-10.3.20/mysql-test/main/derived_cond_pushdown.result --- mariadb-10.3-10.3.17/mysql-test/main/derived_cond_pushdown.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/derived_cond_pushdown.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,4 @@ +set @@join_buffer_size=256*1024; create table t1 (a int, b int, c int); create table t2 (a int, b int, c int, d decimal); insert into t1 values diff -Nru mariadb-10.3-10.3.17/mysql-test/main/derived_cond_pushdown.test mariadb-10.3-10.3.20/mysql-test/main/derived_cond_pushdown.test --- mariadb-10.3-10.3.17/mysql-test/main/derived_cond_pushdown.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/derived_cond_pushdown.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,4 +1,6 @@ +--source include/default_optimizer_switch.inc let $no_pushdown= set statement optimizer_switch='condition_pushdown_for_derived=off' for; +set @@join_buffer_size=256*1024; create table t1 (a int, b int, c int); create table t2 (a int, b int, c int, d decimal); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/derived.result mariadb-10.3-10.3.20/mysql-test/main/derived.result --- mariadb-10.3-10.3.17/mysql-test/main/derived.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/derived.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,4 @@ +drop table if exists t1,t2,t3; set @save_derived_optimizer_switch=@@optimizer_switch; set optimizer_switch='derived_merge=off,derived_with_keys=off'; select * from (select 2 from DUAL) b; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/derived_split_innodb.test mariadb-10.3-10.3.20/mysql-test/main/derived_split_innodb.test --- mariadb-10.3-10.3.17/mysql-test/main/derived_split_innodb.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/derived_split_innodb.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,4 +1,5 @@ --source include/have_innodb.inc +--source include/default_optimizer_switch.inc --echo # --echo # MDEV-16917: do not use splitting for derived with join cache diff -Nru mariadb-10.3-10.3.17/mysql-test/main/derived.test mariadb-10.3-10.3.20/mysql-test/main/derived.test --- mariadb-10.3-10.3.17/mysql-test/main/derived.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/derived.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,4 +1,9 @@ # Initialize +--source include/default_optimizer_switch.inc + +--disable_warnings +drop table if exists t1,t2,t3; +--enable_warnings set @save_derived_optimizer_switch=@@optimizer_switch; set optimizer_switch='derived_merge=off,derived_with_keys=off'; @@ -106,6 +111,7 @@ create table t1 select 1 as a; connect (con1,localhost,mysqltest_1,,*NO-ONE*,$MASTER_MYPORT,$MASTER_MYSOCK); connection con1; +--source include/default_optimizer_switch.inc set optimizer_switch='derived_merge=off,derived_with_keys=off'; --error 1046 select 2 as a from (select * from t1) b; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/derived_view.result mariadb-10.3-10.3.20/mysql-test/main/derived_view.result --- mariadb-10.3-10.3.17/mysql-test/main/derived_view.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/derived_view.result 2019-11-06 16:01:56.000000000 +0000 @@ -2,6 +2,7 @@ drop view if exists v1,v2,v3,v4; set @exit_optimizer_switch=@@optimizer_switch; set @exit_join_cache_level=@@join_cache_level; +set @exit_join_buffer_size=@@join_buffer_size; set optimizer_switch='derived_merge=on,derived_with_keys=on'; set @save_optimizer_switch=@@optimizer_switch; set join_cache_level=1; @@ -1995,8 +1996,8 @@ e e e -SET SESSION join_cache_level = DEFAULT; -SET SESSION join_buffer_size = DEFAULT; +SET SESSION join_cache_level = @exit_join_cache_level; +SET SESSION join_buffer_size = @exit_join_buffer_size; DROP VIEW v3; DROP TABLE t1,t2,t3,t4,t5; # @@ -2111,7 +2112,7 @@ 8 x 5 r 9 y -SET SESSION join_cache_level = default; +SET SESSION join_cache_level = @exit_join_cache_level; SET optimizer_switch=@save_optimizer_switch; DROP VIEW v2; DROP TABLE t1,t2,t3; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/derived_view.test mariadb-10.3-10.3.20/mysql-test/main/derived_view.test --- mariadb-10.3-10.3.17/mysql-test/main/derived_view.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/derived_view.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,5 @@ +--source include/default_optimizer_switch.inc + --disable_warnings drop table if exists t1,t2; drop view if exists v1,v2,v3,v4; @@ -5,6 +7,7 @@ set @exit_optimizer_switch=@@optimizer_switch; set @exit_join_cache_level=@@join_cache_level; +set @exit_join_buffer_size=@@join_buffer_size; set optimizer_switch='derived_merge=on,derived_with_keys=on'; # The 'default' value within the scope of this test: set @save_optimizer_switch=@@optimizer_switch; @@ -1077,8 +1080,8 @@ SELECT t2.d FROM t1,t2,v3 WHERE v3.e = t2.d AND v3.i < 3; SELECT t2.d FROM t1,t2,v3 WHERE v3.e = t2.d AND v3.i < 3; -SET SESSION join_cache_level = DEFAULT; -SET SESSION join_buffer_size = DEFAULT; +SET SESSION join_cache_level = @exit_join_cache_level; +SET SESSION join_buffer_size = @exit_join_buffer_size; DROP VIEW v3; DROP TABLE t1,t2,t3,t4,t5; @@ -1167,7 +1170,7 @@ SELECT * FROM t3 WHERE t3.b <> ANY (SELECT t1.b FROM t1 LEFT JOIN v2 ON v2.a = t1.a); -SET SESSION join_cache_level = default; +SET SESSION join_cache_level = @exit_join_cache_level; SET optimizer_switch=@save_optimizer_switch; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/distinct.test mariadb-10.3-10.3.20/mysql-test/main/distinct.test --- mariadb-10.3-10.3.17/mysql-test/main/distinct.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/distinct.test 2019-11-06 16:01:56.000000000 +0000 @@ -3,6 +3,7 @@ # Bug with group by and not used fields # +--source include/default_optimizer_switch.inc --disable_warnings drop table if exists t1,t2,t3; --enable_warnings diff -Nru mariadb-10.3-10.3.17/mysql-test/main/drop_bad_db_type.result mariadb-10.3-10.3.20/mysql-test/main/drop_bad_db_type.result --- mariadb-10.3-10.3.17/mysql-test/main/drop_bad_db_type.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/drop_bad_db_type.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,4 @@ +SET @save_dbug = @@debug_dbug; set debug_dbug='+d,unstable_db_type'; install soname 'ha_archive'; create table t1 (a int) engine=archive; @@ -32,4 +33,4 @@ drop table t1; db.opt uninstall soname 'ha_archive'; -set debug_dbug='-d,unstable_db_type'; +set debug_dbug=@save_dbug; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/drop_bad_db_type.test mariadb-10.3-10.3.20/mysql-test/main/drop_bad_db_type.test --- mariadb-10.3-10.3.17/mysql-test/main/drop_bad_db_type.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/drop_bad_db_type.test 2019-11-06 16:01:56.000000000 +0000 @@ -7,6 +7,7 @@ let $mysqld_datadir= `select @@datadir`; +SET @save_dbug = @@debug_dbug; set debug_dbug='+d,unstable_db_type'; install soname 'ha_archive'; @@ -27,5 +28,4 @@ --list_files $mysqld_datadir/test uninstall soname 'ha_archive'; -set debug_dbug='-d,unstable_db_type'; - +set debug_dbug=@save_dbug; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/dyncol.result mariadb-10.3-10.3.20/mysql-test/main/dyncol.result --- mariadb-10.3-10.3.17/mysql-test/main/dyncol.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/dyncol.result 2019-11-06 16:01:56.000000000 +0000 @@ -1483,7 +1483,7 @@ select hex(column_create("1212", 2, "адын", 1, 3, 3)); hex(column_create("1212", 2, "адын", 1, 3, 3)) 0403000D000000000001001000050020003331323132D0B0D0B4D18BD0BD060402 -set names default; +set names latin1; # fetching column test (names) set names utf8; select column_get(column_create("адын", 1212), "адын" as int); @@ -1507,7 +1507,7 @@ select column_get(column_create("1212", 2, "адын", 1, 3, 3), "4" as int); column_get(column_create("1212", 2, "адын", 1, 3, 3), "4" as int) NULL -set names default; +set names latin1; # column existance test (names) set names utf8; select column_exists(column_create("адын", 1212), "адын"); @@ -1534,7 +1534,7 @@ select column_exists(column_create("1212", 2, "адын", 1, 3, 3), "4"); column_exists(column_create("1212", 2, "адын", 1, 3, 3), "4") 0 -set names default; +set names latin1; # column changing test (names) select hex(column_add(column_create(1, "AAA"), "b", "BBB")); hex(column_add(column_create(1, "AAA"), "b", "BBB")) diff -Nru mariadb-10.3-10.3.17/mysql-test/main/dyncol.test mariadb-10.3-10.3.20/mysql-test/main/dyncol.test --- mariadb-10.3-10.3.17/mysql-test/main/dyncol.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/dyncol.test 2019-11-06 16:01:56.000000000 +0000 @@ -2,6 +2,8 @@ # Dynamic column function test # +--source include/default_charset.inc + --echo # --echo # column create --echo # @@ -674,7 +676,7 @@ select hex(column_create("1212", 2, "www", 3)); select hex(column_create("1212", 2, 3, 3)); select hex(column_create("1212", 2, "адын", 1, 3, 3)); -set names default; +set names latin1; --echo # fetching column test (names) set names utf8; @@ -685,7 +687,7 @@ select column_get(column_create("1212", 2, "адын", 1, 3, 3), 3 as int); select column_get(column_create("1212", 2, "адын", 1, 3, 3), 4 as int); select column_get(column_create("1212", 2, "адын", 1, 3, 3), "4" as int); -set names default; +set names latin1; --echo # column existance test (names) set names utf8; @@ -697,7 +699,7 @@ select column_exists(column_create("1212", 2, "адын", 1, 3, 3), 3); select column_exists(column_create("1212", 2, "адын", 1, 3, 3), 4); select column_exists(column_create("1212", 2, "адын", 1, 3, 3), "4"); -set names default; +set names latin1; --echo # column changing test (names) select hex(column_add(column_create(1, "AAA"), "b", "BBB")); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/events_1.test mariadb-10.3-10.3.20/mysql-test/main/events_1.test --- mariadb-10.3-10.3.17/mysql-test/main/events_1.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/events_1.test 2019-11-06 16:01:56.000000000 +0000 @@ -5,6 +5,7 @@ -- source include/not_embedded.inc set sql_mode=""; +--source include/default_charset.inc call mtr.add_suppression("Column count of mysql.event is wrong. Expected .*, found .*\. The table is probably corrupted"); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/events_2.test mariadb-10.3-10.3.20/mysql-test/main/events_2.test --- mariadb-10.3-10.3.17/mysql-test/main/events_2.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/events_2.test 2019-11-06 16:01:56.000000000 +0000 @@ -4,6 +4,7 @@ -- source include/not_embedded.inc set sql_mode=""; +--source include/default_charset.inc --disable_warnings drop database if exists events_test; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/events_bugs.result mariadb-10.3-10.3.20/mysql-test/main/events_bugs.result --- mariadb-10.3-10.3.17/mysql-test/main/events_bugs.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/events_bugs.result 2019-11-06 16:01:56.000000000 +0000 @@ -2,6 +2,7 @@ drop database if exists events_test; drop database if exists mysqltest_db1; drop database if exists mysqltest_db2; +set collation_server=latin1_swedish_ci; create database events_test; use events_test; set @concurrent_insert= @@global.concurrent_insert; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/events_bugs.test mariadb-10.3-10.3.20/mysql-test/main/events_bugs.test --- mariadb-10.3-10.3.17/mysql-test/main/events_bugs.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/events_bugs.test 2019-11-06 16:01:56.000000000 +0000 @@ -139,6 +139,7 @@ drop database if exists mysqltest_db1; drop database if exists mysqltest_db2; --enable_warnings +set collation_server=latin1_swedish_ci; create database events_test; use events_test; # We use MyISAM tables and must avoid effects (visibility of changes might be diff -Nru mariadb-10.3-10.3.17/mysql-test/main/events_grant.test mariadb-10.3-10.3.20/mysql-test/main/events_grant.test --- mariadb-10.3-10.3.17/mysql-test/main/events_grant.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/events_grant.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,5 +1,7 @@ # Can't test with embedded server that doesn't support grants -- source include/not_embedded.inc +--source include/default_charset.inc + CREATE DATABASE IF NOT EXISTS events_test; use events_test; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/events_logs_tests.result mariadb-10.3-10.3.20/mysql-test/main/events_logs_tests.result --- mariadb-10.3-10.3.17/mysql-test/main/events_logs_tests.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/events_logs_tests.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,4 @@ +set @save_long_query_time=@@long_query_time; drop database if exists events_test; create database if not exists events_test; use events_test; @@ -68,5 +69,5 @@ USER_HOST events_test select 'events_logs_test' as inside_event, sleep(1.5) drop database events_test; set global event_scheduler=off; -set @@global.long_query_time=default; -set @@session.long_query_time=default; +set @@global.long_query_time=@save_long_query_time; +set @@session.long_query_time=@save_long_query_time; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/events_logs_tests.test mariadb-10.3-10.3.20/mysql-test/main/events_logs_tests.test --- mariadb-10.3-10.3.17/mysql-test/main/events_logs_tests.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/events_logs_tests.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,6 +1,7 @@ # Can't test with embedded server that doesn't support grants -- source include/not_embedded.inc +set @save_long_query_time=@@long_query_time; --disable_warnings drop database if exists events_test; --enable_warnings @@ -78,8 +79,8 @@ drop database events_test; set global event_scheduler=off; -set @@global.long_query_time=default; -set @@session.long_query_time=default; +set @@global.long_query_time=@save_long_query_time; +set @@session.long_query_time=@save_long_query_time; # # Safety diff -Nru mariadb-10.3-10.3.17/mysql-test/main/events_restart.test mariadb-10.3-10.3.20/mysql-test/main/events_restart.test --- mariadb-10.3-10.3.17/mysql-test/main/events_restart.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/events_restart.test 2019-11-06 16:01:56.000000000 +0000 @@ -3,6 +3,7 @@ call mtr.add_suppression("Column count of mysql.event is wrong. Expected .*, found .*\. The table is probably corrupted"); +let $collation_server=`select @@collation_server`; # # Test that when the server is restarted, it checks mysql.event table, # and disables the scheduler if it's not up to date. @@ -92,6 +93,7 @@ select @@global.event_scheduler; --sorted_result --replace_column 6 # 9 # 10 # +--replace_result $collation_server latin1_swedish_ci show events; --echo Now let's restart the server again diff -Nru mariadb-10.3-10.3.17/mysql-test/main/except.result mariadb-10.3-10.3.20/mysql-test/main/except.result --- mariadb-10.3-10.3.17/mysql-test/main/except.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/except.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,4 @@ +set @@join_buffer_size=256*1024; create table t1 (a int, b int) engine=MyISAM; create table t2 (c int, d int) engine=MyISAM; insert into t1 values (1,1),(2,2); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/except.test mariadb-10.3-10.3.20/mysql-test/main/except.test --- mariadb-10.3-10.3.17/mysql-test/main/except.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/except.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,7 @@ +# For explain +--source include/default_optimizer_switch.inc +set @@join_buffer_size=256*1024; + create table t1 (a int, b int) engine=MyISAM; create table t2 (c int, d int) engine=MyISAM; insert into t1 values (1,1),(2,2); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/explain_json.test mariadb-10.3-10.3.20/mysql-test/main/explain_json.test --- mariadb-10.3-10.3.17/mysql-test/main/explain_json.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/explain_json.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,6 +1,8 @@ # # EXPLAIN FORMAT=JSON tests. These are tests developed for MariaDB. # +--source include/default_optimizer_switch.inc + --disable_warnings drop table if exists t0,t1,t2; --enable_warnings diff -Nru mariadb-10.3-10.3.17/mysql-test/main/flush2.result mariadb-10.3-10.3.20/mysql-test/main/flush2.result --- mariadb-10.3-10.3.17/mysql-test/main/flush2.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/flush2.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,4 @@ +set @save_expire_logs_days=@@global.expire_logs_days; flush logs; set global expire_logs_days = 3; show variables like 'log_bin%'; @@ -10,9 +11,9 @@ log_bin_trust_function_creators ON show variables like 'relay_log%'; Variable_name Value -relay_log mysqld-relay-bin -relay_log_basename MYSQLTEST_VARDIR/mysqld.1/data/mysqld-relay-bin -relay_log_index MYSQLTEST_VARDIR/mysqld.1/data/mysqld-relay-bin.index +relay_log XXX-relay-bin +relay_log_basename MYSQLTEST_VARDIR/mysqld.1/data/XXX-relay-bin +relay_log_index MYSQLTEST_VARDIR/mysqld.1/data/XXX-relay-bin.index relay_log_info_file relay-log.info relay_log_purge ON relay_log_recovery OFF @@ -28,11 +29,11 @@ log_bin_trust_function_creators ON show variables like 'relay_log%'; Variable_name Value -relay_log mysqld-relay-bin -relay_log_basename MYSQLTEST_VARDIR/mysqld.1/data/mysqld-relay-bin -relay_log_index MYSQLTEST_VARDIR/mysqld.1/data/mysqld-relay-bin.index +relay_log XXX-relay-bin +relay_log_basename MYSQLTEST_VARDIR/mysqld.1/data/XXX-relay-bin +relay_log_index MYSQLTEST_VARDIR/mysqld.1/data/XXX-relay-bin.index relay_log_info_file relay-log.info relay_log_purge ON relay_log_recovery OFF relay_log_space_limit 0 -set global expire_logs_days = 0; +set global expire_logs_days=@save_expire_logs_days; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/flush2.test mariadb-10.3-10.3.20/mysql-test/main/flush2.test --- mariadb-10.3-10.3.17/mysql-test/main/flush2.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/flush2.test 2019-11-06 16:01:56.000000000 +0000 @@ -4,13 +4,16 @@ --source include/not_embedded.inc +set @save_expire_logs_days=@@global.expire_logs_days; + flush logs; set global expire_logs_days = 3; +let $relay_prefix=`select concat(substring_index(@@relay_log,"-",1),"-")`; show variables like 'log_bin%'; ---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $relay_prefix XXX- show variables like 'relay_log%'; flush logs; show variables like 'log_bin%'; ---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $relay_prefix XXX- show variables like 'relay_log%'; -set global expire_logs_days = 0; +set global expire_logs_days=@save_expire_logs_days; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/func_compress.result mariadb-10.3-10.3.20/mysql-test/main/func_compress.result --- mariadb-10.3-10.3.17/mysql-test/main/func_compress.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/func_compress.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,4 @@ +set @save_max_allowed_packet=@@max_allowed_packet; set global max_allowed_packet=1048576; connect conn1,localhost,root,,; connection conn1; @@ -81,7 +82,7 @@ Warning 1292 Truncated incorrect DOUBLE value: XXX disconnect newconn; connection default; -set @@global.max_allowed_packet=default; +set @@global.max_allowed_packet=@save_max_allowed_packet; create table t1(a blob); insert into t1 values(NULL), (compress('a')); select uncompress(a), uncompressed_length(a) from t1; @@ -163,7 +164,7 @@ Warning 1259 ZLIB: Input data corrupted disconnect conn1; connection default; -set global max_allowed_packet=default; +set global max_allowed_packet=@save_max_allowed_packet; # # End of 5.5 tests # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/func_compress.test mariadb-10.3-10.3.20/mysql-test/main/func_compress.test --- mariadb-10.3-10.3.17/mysql-test/main/func_compress.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/func_compress.test 2019-11-06 16:01:56.000000000 +0000 @@ -5,6 +5,7 @@ # Note that this test gives error in the gzip library when running under # valgrind, but these warnings can be ignored +set @save_max_allowed_packet=@@max_allowed_packet; set global max_allowed_packet=1048576; connect (conn1,localhost,root,,); connection conn1; @@ -56,7 +57,7 @@ disconnect newconn; --source include/wait_until_disconnected.inc connection default; -set @@global.max_allowed_packet=default; +set @@global.max_allowed_packet=@save_max_allowed_packet; # # Bug #18643: problem with null values @@ -116,7 +117,7 @@ --echo End of 5.0 tests --disable_result_log --disable_query_log -set @@global.max_allowed_packet=default; +set @@global.max_allowed_packet=@save_max_allowed_packet; --enable_result_log --enable_query_log @@ -148,7 +149,7 @@ disconnect conn1; connection default; -set global max_allowed_packet=default; +set global max_allowed_packet=@save_max_allowed_packet; --echo # --echo # End of 5.5 tests --echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/func_hybrid_type.result mariadb-10.3-10.3.20/mysql-test/main/func_hybrid_type.result --- mariadb-10.3-10.3.17/mysql-test/main/func_hybrid_type.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/func_hybrid_type.result 2019-11-06 16:01:56.000000000 +0000 @@ -3915,5 +3915,20 @@ DROP TABLE t1; SET sql_mode=DEFAULT; # +# MDEV-18456 Assertion `item->maybe_null' failed in Type_handler_temporal_result::make_sort_key +# +CREATE TABLE t1 (t TIME NOT NULL); +INSERT INTO t1 VALUES ('00:20:11'),('14:52:05'); +SELECT GREATEST('9999', t) FROM t1 ORDER BY 1; +GREATEST('9999', t) +NULL +NULL +Warnings: +Warning 1292 Truncated incorrect time value: '9999' +Warning 1292 Truncated incorrect time value: '9999' +Warning 1292 Truncated incorrect time value: '9999' +Warning 1292 Truncated incorrect time value: '9999' +DROP TABLE t1; +# # End of 10.3 tests # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/func_hybrid_type.test mariadb-10.3-10.3.20/mysql-test/main/func_hybrid_type.test --- mariadb-10.3-10.3.17/mysql-test/main/func_hybrid_type.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/func_hybrid_type.test 2019-11-06 16:01:56.000000000 +0000 @@ -711,5 +711,15 @@ SET sql_mode=DEFAULT; --echo # +--echo # MDEV-18456 Assertion `item->maybe_null' failed in Type_handler_temporal_result::make_sort_key +--echo # + +CREATE TABLE t1 (t TIME NOT NULL); +INSERT INTO t1 VALUES ('00:20:11'),('14:52:05'); +SELECT GREATEST('9999', t) FROM t1 ORDER BY 1; +DROP TABLE t1; + + +--echo # --echo # End of 10.3 tests --echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/func_isnull.test mariadb-10.3-10.3.20/mysql-test/main/func_isnull.test --- mariadb-10.3-10.3.17/mysql-test/main/func_isnull.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/func_isnull.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,6 +1,7 @@ # # test of ISNULL() # +--source include/default_optimizer_switch.inc --disable_warnings drop table if exists t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/func_json.result mariadb-10.3-10.3.20/mysql-test/main/func_json.result --- mariadb-10.3-10.3.17/mysql-test/main/func_json.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/func_json.result 2019-11-06 16:01:56.000000000 +0000 @@ -619,6 +619,8 @@ SELECT JSON_search( '{"x": "\\""}', "one", '\\"'); JSON_search( '{"x": "\\""}', "one", '\\"') "$.x" +set @save_max_allowed_packet=@@max_allowed_packet; +set @save_net_buffer_length=@@net_buffer_length; set @@global.net_buffer_length=1024; set @@global.max_allowed_packet=2048; connect newconn, localhost, root,,; @@ -639,8 +641,8 @@ Warnings: Warning 1301 Result of json_object() was larger than max_allowed_packet (2048) - truncated connection default; -set @@global.max_allowed_packet = default; -set @@global.net_buffer_length = default; +set @@global.max_allowed_packet = @save_max_allowed_packet; +set @@global.net_buffer_length = @save_net_buffer_length; disconnect newconn; create table t1(j longtext, p longtext); insert into t1 values @@ -940,5 +942,26 @@ json_length json_depnth 2 3 # +# MDEV-19670 json escaped unicode parse error +# +SELECT json_valid('{"value":"\\ud83d\\ude0a"}'); +json_valid('{"value":"\\ud83d\\ude0a"}') +1 +SELECT json_valid('{"test": "\\ud83d\\ude0b"}'); +json_valid('{"test": "\\ud83d\\ude0b"}') +1 +# +# MDEV-19670 json escaped unicode parse error +# +SELECT JSON_VALID('{"admin\\"": null}'), '{"admin\\"": null}' + UNION +SELECT JSON_VALID('{"\\"admin": null}'), '{"\\"admin": null}' + UNION +SELECT JSON_VALID('{"\\"": null}'), '{"\\"": null}'; +JSON_VALID('{"admin\\"": null}') {"admin\"": null} +1 {"admin\"": null} +1 {"\"admin": null} +1 {"\"": null} +# # End of 10.3 tests # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/func_json.test mariadb-10.3-10.3.20/mysql-test/main/func_json.test --- mariadb-10.3-10.3.17/mysql-test/main/func_json.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/func_json.test 2019-11-06 16:01:56.000000000 +0000 @@ -265,6 +265,9 @@ # # MDEV-11833 JSON functions don't seem to respect max_allowed_packet. # +set @save_max_allowed_packet=@@max_allowed_packet; +set @save_net_buffer_length=@@net_buffer_length; + set @@global.net_buffer_length=1024; set @@global.max_allowed_packet=2048; --connect (newconn, localhost, root,,) @@ -275,8 +278,8 @@ select json_object("a", repeat('a',1024),"b", repeat('a',1024)); --connection default -set @@global.max_allowed_packet = default; -set @@global.net_buffer_length = default; +set @@global.max_allowed_packet = @save_max_allowed_packet; +set @@global.net_buffer_length = @save_net_buffer_length; --disconnect newconn @@ -559,5 +562,22 @@ --disable_metadata --echo # +--echo # MDEV-19670 json escaped unicode parse error +--echo # + +SELECT json_valid('{"value":"\\ud83d\\ude0a"}'); +SELECT json_valid('{"test": "\\ud83d\\ude0b"}'); + +--echo # +--echo # MDEV-19670 json escaped unicode parse error +--echo # + +SELECT JSON_VALID('{"admin\\"": null}'), '{"admin\\"": null}' + UNION + SELECT JSON_VALID('{"\\"admin": null}'), '{"\\"admin": null}' + UNION + SELECT JSON_VALID('{"\\"": null}'), '{"\\"": null}'; + +--echo # --echo # End of 10.3 tests --echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/func_math.result mariadb-10.3-10.3.20/mysql-test/main/func_math.result --- mariadb-10.3-10.3.17/mysql-test/main/func_math.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/func_math.result 2019-11-06 16:01:56.000000000 +0000 @@ -296,7 +296,7 @@ 10,000 10,000 drop table t1, t2; -set names default; +set names latin1; select cast(-2 as unsigned), 18446744073709551614, -2; cast(-2 as unsigned) 18446744073709551614 -2 18446744073709551614 18446744073709551614 -2 @@ -817,6 +817,107 @@ 0 DROP TABLE t1; # +# MDEV-20495 Assertion `precision > 0' failed in decimal_bin_size upon CREATE .. SELECT with zerofilled decimal +# +# Testing that dyadic arithmetic operations are symmetric +# for (+1) and (-1) and produce the same length in CONCAT(), +# because (+1) and (-1) have the same data type: signed int. +CREATE TABLE t1 AS SELECT +CONCAT(+1%2.0), +CONCAT(-1%2.0), +CONCAT(+1/2.0), +CONCAT(-1/2.0), +CONCAT(+1*2.0), +CONCAT(-1*2.0), +CONCAT(+1+2.0), +CONCAT(-1+2.0), +CONCAT(+1-2.0), +CONCAT(-1-2.0); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `CONCAT(+1%2.0)` varchar(4) DEFAULT NULL, + `CONCAT(-1%2.0)` varchar(4) DEFAULT NULL, + `CONCAT(+1/2.0)` varchar(8) DEFAULT NULL, + `CONCAT(-1/2.0)` varchar(8) DEFAULT NULL, + `CONCAT(+1*2.0)` varchar(5) DEFAULT NULL, + `CONCAT(-1*2.0)` varchar(5) DEFAULT NULL, + `CONCAT(+1+2.0)` varchar(5) DEFAULT NULL, + `CONCAT(-1+2.0)` varchar(5) DEFAULT NULL, + `CONCAT(+1-2.0)` varchar(5) DEFAULT NULL, + `CONCAT(-1-2.0)` varchar(5) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +CREATE TABLE t1 AS SELECT +CONCAT(+1%2), +CONCAT(-1%2), +CONCAT(+1/2), +CONCAT(-1/2), +CONCAT(+1*2), +CONCAT(-1*2), +CONCAT(+1+2), +CONCAT(-1+2), +CONCAT(+1-2), +CONCAT(-1-2); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `CONCAT(+1%2)` varchar(2) DEFAULT NULL, + `CONCAT(-1%2)` varchar(2) DEFAULT NULL, + `CONCAT(+1/2)` varchar(7) DEFAULT NULL, + `CONCAT(-1/2)` varchar(7) DEFAULT NULL, + `CONCAT(+1*2)` varchar(3) DEFAULT NULL, + `CONCAT(-1*2)` varchar(3) DEFAULT NULL, + `CONCAT(+1+2)` varchar(3) DEFAULT NULL, + `CONCAT(-1+2)` varchar(3) DEFAULT NULL, + `CONCAT(+1-2)` varchar(3) DEFAULT NULL, + `CONCAT(-1-2)` varchar(3) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +# +# Bug #29723340: MYSQL SERVER CRASH AFTER SQL QUERY WITH DATA ?AST +# +create table t1(a int); +insert ignore t1 values("1e-214748364"); +Warnings: +Warning 1265 Data truncated for column 'a' at row 1 +insert ignore t1 values("1e-2147483648"); +Warnings: +Warning 1265 Data truncated for column 'a' at row 1 +insert ignore t1 values("1e-21474836480"); +Warnings: +Warning 1265 Data truncated for column 'a' at row 1 +insert ignore t1 values("1e+214748364"); +Warnings: +Warning 1264 Out of range value for column 'a' at row 1 +insert ignore t1 values("1e+2147483647"); +Warnings: +Warning 1264 Out of range value for column 'a' at row 1 +insert ignore t1 values("1e+21474836470"); +Warnings: +Warning 1264 Out of range value for column 'a' at row 1 +set global max_allowed_packet= cast(2*1024*1024*1024+1024 as unsigned); +Warnings: +Warning 1292 Truncated incorrect max_allowed_packet value: '2147484672' +connect foo,localhost,root; +set @a=2147483647; +insert ignore t1 values (concat('1', repeat('0', @a+18), 'e-', @a-1, '0')); +Warnings: +Warning 1301 Result of repeat() was larger than max_allowed_packet (1073741824) - truncated +disconnect foo; +connection default; +set global max_allowed_packet=default; +select * from t1; +a +0 +0 +0 +2147483647 +2147483647 +2147483647 +NULL +drop table t1; +# # End of 5.5 tests # # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/func_math.test mariadb-10.3-10.3.20/mysql-test/main/func_math.test --- mariadb-10.3-10.3.17/mysql-test/main/func_math.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/func_math.test 2019-11-06 16:01:56.000000000 +0000 @@ -2,6 +2,8 @@ # Test of math functions # +--source include/default_charset.inc + --disable_warnings drop table if exists t1; --enable_warnings @@ -193,7 +195,7 @@ select format(t2.f2-t2.f1+1,0) from t1,t2 where t1.f2 = t2.f3 order by t1.f1; drop table t1, t2; -set names default; +set names latin1; # Bug 24912 -- misc functions have trouble with unsigned @@ -587,6 +589,69 @@ SELECT STDDEV_SAMP(ROUND('0', 309)) FROM t1; DROP TABLE t1; + +--echo # +--echo # MDEV-20495 Assertion `precision > 0' failed in decimal_bin_size upon CREATE .. SELECT with zerofilled decimal +--echo # + +--echo # Testing that dyadic arithmetic operations are symmetric +--echo # for (+1) and (-1) and produce the same length in CONCAT(), +--echo # because (+1) and (-1) have the same data type: signed int. + +CREATE TABLE t1 AS SELECT + CONCAT(+1%2.0), + CONCAT(-1%2.0), + CONCAT(+1/2.0), + CONCAT(-1/2.0), + CONCAT(+1*2.0), + CONCAT(-1*2.0), + CONCAT(+1+2.0), + CONCAT(-1+2.0), + CONCAT(+1-2.0), + CONCAT(-1-2.0); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 AS SELECT + CONCAT(+1%2), + CONCAT(-1%2), + CONCAT(+1/2), + CONCAT(-1/2), + CONCAT(+1*2), + CONCAT(-1*2), + CONCAT(+1+2), + CONCAT(-1+2), + CONCAT(+1-2), + CONCAT(-1-2); +SHOW CREATE TABLE t1; +DROP TABLE t1; + + +--echo # +--echo # Bug #29723340: MYSQL SERVER CRASH AFTER SQL QUERY WITH DATA ?AST +--echo # + +create table t1(a int); +insert ignore t1 values("1e-214748364"); +insert ignore t1 values("1e-2147483648"); +insert ignore t1 values("1e-21474836480"); +insert ignore t1 values("1e+214748364"); +insert ignore t1 values("1e+2147483647"); +insert ignore t1 values("1e+21474836470"); + +# if max max_allowed_packet will ever be increased beyond 2GB, this could +# break again: +set global max_allowed_packet= cast(2*1024*1024*1024+1024 as unsigned); +connect foo,localhost,root; +set @a=2147483647; +insert ignore t1 values (concat('1', repeat('0', @a+18), 'e-', @a-1, '0')); +disconnect foo; +connection default; +set global max_allowed_packet=default; + +select * from t1; +drop table t1; + --echo # --echo # End of 5.5 tests --echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/func_misc.result mariadb-10.3-10.3.20/mysql-test/main/func_misc.result --- mariadb-10.3-10.3.17/mysql-test/main/func_misc.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/func_misc.result 2019-11-06 16:01:56.000000000 +0000 @@ -1557,6 +1557,15 @@ DROP VIEW v1; DROP TABLE t1; # +# MDEV-20517 Assertion `!is_expensive()' failed in Item::value_depends_on_sql_mode_const_item +# +SELECT ( 1 LIKE GET_LOCK( 'foo', 0 ) ) - 2; +( 1 LIKE GET_LOCK( 'foo', 0 ) ) - 2 +-1 +SELECT RELEASE_LOCK('foo'); +RELEASE_LOCK('foo') +1 +# # End of 10.2 tests # # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/func_misc.test mariadb-10.3-10.3.20/mysql-test/main/func_misc.test --- mariadb-10.3-10.3.17/mysql-test/main/func_misc.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/func_misc.test 2019-11-06 16:01:56.000000000 +0000 @@ -2,6 +2,7 @@ # Testing of misc functions # +--source include/default_optimizer_switch.inc --disable_warnings DROP TABLE IF EXISTS t1, t2; --enable_warnings @@ -1191,6 +1192,12 @@ DROP VIEW v1; DROP TABLE t1; +--echo # +--echo # MDEV-20517 Assertion `!is_expensive()' failed in Item::value_depends_on_sql_mode_const_item +--echo # + +SELECT ( 1 LIKE GET_LOCK( 'foo', 0 ) ) - 2; +SELECT RELEASE_LOCK('foo'); --echo # --echo # End of 10.2 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/func_str.result mariadb-10.3-10.3.20/mysql-test/main/func_str.result --- mariadb-10.3-10.3.17/mysql-test/main/func_str.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/func_str.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,4 +1,5 @@ drop table if exists t1,t2; +set @save_max_allowed_packet=@@global.max_allowed_packet; set global max_allowed_packet=1048576; connect conn1,localhost,root,,; connection conn1; @@ -4800,7 +4801,7 @@ latin2_general_ci disconnect conn1; connection default; -set global max_allowed_packet=default; +set global max_allowed_packet=@save_max_allowed_packet; # # End of 5.6 tests # @@ -5068,5 +5069,89 @@ DROP TABLE t1; # +# MDEV-20292 REPEAT(x,-1) returns a wrong data type +# +CREATE OR REPLACE TABLE t1 (i BIGINT); +INSERT INTO t1 VALUES (42); +CREATE OR REPLACE TABLE t2 AS SELECT +REPEAT(i,NULL) AS cn, +REPEAT(i,0) AS c0, +REPEAT(i,-1) AS c1 +FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `cn` char(0) CHARACTER SET utf8 DEFAULT NULL, + `c0` char(0) CHARACTER SET utf8 DEFAULT NULL, + `c1` char(0) CHARACTER SET utf8 DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1, t2; +# +# MDEV-20303 SPACE(-1) returns a wrong data type +# +CREATE TABLE t1 (i BIGINT); +INSERT INTO t1 VALUES (42); +CREATE TABLE t2 AS SELECT +SPACE(NULL) AS cn, +SPACE(0) AS c0, +SPACE(-1) AS c1 +FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `cn` char(0) CHARACTER SET utf8 DEFAULT NULL, + `c0` char(0) CHARACTER SET utf8 DEFAULT NULL, + `c1` char(0) CHARACTER SET utf8 DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1, t2; +CREATE TABLE t1 (i BIGINT); +INSERT INTO t1 VALUES (42); +CREATE TABLE t2 AS SELECT +LPAD(i,NULL,'a') AS cn, +LPAD(i,0,'a') AS c0, +LPAD(i,-1,'a') AS c1 +FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `cn` char(0) CHARACTER SET utf8 DEFAULT NULL, + `c0` char(0) CHARACTER SET utf8 DEFAULT NULL, + `c1` char(0) CHARACTER SET utf8 DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1, t2; +CREATE TABLE t1 (i BIGINT); +INSERT INTO t1 VALUES (42); +CREATE TABLE t2 AS SELECT +RPAD(i,NULL,'a') AS cn, +RPAD(i,0,'a') AS c0, +RPAD(i,-1,'a') AS c1 +FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `cn` char(0) CHARACTER SET utf8 DEFAULT NULL, + `c0` char(0) CHARACTER SET utf8 DEFAULT NULL, + `c1` char(0) CHARACTER SET utf8 DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1, t2; +CREATE TABLE t1 (i BIGINT); +INSERT INTO t1 VALUES (42); +CREATE TABLE t2 AS SELECT +LEFT(i,NULL) AS cn, +LEFT(i,0) AS c0, +LEFT(i,18446744073709551615) AS c1 +FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `cn` char(0) CHARACTER SET utf8 DEFAULT NULL, + `c0` char(0) CHARACTER SET utf8 DEFAULT NULL, + `c1` varchar(20) CHARACTER SET utf8 DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT c1 FROM t2; +c1 +42 +DROP TABLE t1, t2; +# # End of 10.3 tests # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/func_str.test mariadb-10.3-10.3.20/mysql-test/main/func_str.test --- mariadb-10.3-10.3.17/mysql-test/main/func_str.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/func_str.test 2019-11-06 16:01:56.000000000 +0000 @@ -6,6 +6,7 @@ drop table if exists t1,t2; --enable_warnings +set @save_max_allowed_packet=@@global.max_allowed_packet; set global max_allowed_packet=1048576; connect (conn1,localhost,root,,); connection conn1; @@ -1848,7 +1849,7 @@ disconnect conn1; connection default; -set global max_allowed_packet=default; +set global max_allowed_packet=@save_max_allowed_packet; --echo # --echo # End of 5.6 tests @@ -2028,6 +2029,66 @@ SELECT RPAD( c, 0, '?' ) FROM t1; DROP TABLE t1; +--echo # +--echo # MDEV-20292 REPEAT(x,-1) returns a wrong data type +--echo # + +CREATE OR REPLACE TABLE t1 (i BIGINT); +INSERT INTO t1 VALUES (42); +CREATE OR REPLACE TABLE t2 AS SELECT + REPEAT(i,NULL) AS cn, + REPEAT(i,0) AS c0, + REPEAT(i,-1) AS c1 +FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t1, t2; + + +--echo # +--echo # MDEV-20303 SPACE(-1) returns a wrong data type +--echo # + +CREATE TABLE t1 (i BIGINT); +INSERT INTO t1 VALUES (42); +CREATE TABLE t2 AS SELECT + SPACE(NULL) AS cn, + SPACE(0) AS c0, + SPACE(-1) AS c1 +FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t1, t2; + +CREATE TABLE t1 (i BIGINT); +INSERT INTO t1 VALUES (42); +CREATE TABLE t2 AS SELECT + LPAD(i,NULL,'a') AS cn, + LPAD(i,0,'a') AS c0, + LPAD(i,-1,'a') AS c1 +FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t1, t2; + +CREATE TABLE t1 (i BIGINT); +INSERT INTO t1 VALUES (42); +CREATE TABLE t2 AS SELECT + RPAD(i,NULL,'a') AS cn, + RPAD(i,0,'a') AS c0, + RPAD(i,-1,'a') AS c1 +FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t1, t2; + +CREATE TABLE t1 (i BIGINT); +INSERT INTO t1 VALUES (42); +CREATE TABLE t2 AS SELECT + LEFT(i,NULL) AS cn, + LEFT(i,0) AS c0, + LEFT(i,18446744073709551615) AS c1 +FROM t1; +SHOW CREATE TABLE t2; +SELECT c1 FROM t2; +DROP TABLE t1, t2; + --echo # --echo # End of 10.3 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/func_time.result mariadb-10.3-10.3.20/mysql-test/main/func_time.result --- mariadb-10.3-10.3.17/mysql-test/main/func_time.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/func_time.result 2019-11-06 16:01:56.000000000 +0000 @@ -2153,7 +2153,7 @@ SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( - `f2` varchar(26) DEFAULT NULL + `f2` varchar(22) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t2; f2 diff -Nru mariadb-10.3-10.3.17/mysql-test/main/function_defaults.result mariadb-10.3-10.3.20/mysql-test/main/function_defaults.result --- mariadb-10.3-10.3.17/mysql-test/main/function_defaults.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/function_defaults.result 2019-11-06 16:01:56.000000000 +0000 @@ -3093,3 +3093,55 @@ 1999-12-01 11:22:33.000000 1999-12-01 11:22:33.000000 2001-09-09 04:46:40.000000 2001-09-09 04:46:40.000000 DROP TABLE t1; +create table t1 (t timestamp, i int, v timestamp as (t) virtual, key(v)); +insert t1 (t,i) values ('2006-03-01 23:59:59',1); +update t1 set i = 2; +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +drop table t1; +create table t1 (t timestamp, i int); +create trigger tr1 before update on t1 for each row set @new:=new.t; +insert t1 (t,i) values ('2006-03-01 23:59:59', 1); +update t1 set i = 2; +select if(@new = t, 'correct', 'wrong') from t1; +if(@new = t, 'correct', 'wrong') +correct +drop table t1; +create table t1 (i int, j int as (i)); +create trigger tr1 before update on t1 for each row set @new:=new.j; +insert t1 (i) values (1); +update t1, t1 as t2 set t1.i = 2; +select if(@new = j, 'correct', 'wrong') from t1; +if(@new = j, 'correct', 'wrong') +correct +drop table t1; +create table t1 (a int, b varchar(20) default 'foo'); +insert t1 values (1,'bla'),(2, 'bar'); +select * from t1; +a b +1 bla +2 bar +update t1 set b=default where a=1; +select * from t1; +a b +1 foo +2 bar +drop table t1; +create table t1 ( +a int, +b timestamp default '2010-10-10 10:10:10' on update now(), +c varchar(100) default 'x'); +insert t1 (a) values (1),(2); +select * from t1; +a b c +1 2010-10-10 10:10:10 x +2 2010-10-10 10:10:10 x +set timestamp=unix_timestamp('2011-11-11 11-11-11'); +update t1 set b=default, c=default(b) where a=1; +select * from t1; +a b c +1 2010-10-10 10:10:10 2010-10-10 10:10:10 +2 2010-10-10 10:10:10 x +drop table t1; +set timestamp=default; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/function_defaults.test mariadb-10.3-10.3.20/mysql-test/main/function_defaults.test --- mariadb-10.3-10.3.17/mysql-test/main/function_defaults.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/function_defaults.test 2019-11-06 16:01:56.000000000 +0000 @@ -19,3 +19,51 @@ let $timestamp=TIMESTAMP(6); let $datetime=DATETIME(6); source 'include/function_defaults.inc'; + +# +# MDEV-20403 Assertion `0' or Assertion `btr_validate_index(index, 0)' failed in row_upd_sec_index_entry or error code 126: Index is corrupted upon UPDATE with TIMESTAMP..ON UPDATE +# + +# ON UPDATE NOW and indexed virtual columns +create table t1 (t timestamp, i int, v timestamp as (t) virtual, key(v)); +insert t1 (t,i) values ('2006-03-01 23:59:59',1); +update t1 set i = 2; +check table t1; +drop table t1; + +# ON UPDATE NOW and triggers +create table t1 (t timestamp, i int); +create trigger tr1 before update on t1 for each row set @new:=new.t; +insert t1 (t,i) values ('2006-03-01 23:59:59', 1); +update t1 set i = 2; +select if(@new = t, 'correct', 'wrong') from t1; +drop table t1; + +# triggers, virtual columns, multi-update +create table t1 (i int, j int as (i)); +create trigger tr1 before update on t1 for each row set @new:=new.j; +insert t1 (i) values (1); +update t1, t1 as t2 set t1.i = 2; +select if(@new = j, 'correct', 'wrong') from t1; +drop table t1; + +# SET xxx=DEFAULT +create table t1 (a int, b varchar(20) default 'foo'); +insert t1 values (1,'bla'),(2, 'bar'); +select * from t1; +update t1 set b=default where a=1; +select * from t1; +drop table t1; + +# ON UPDATE NOW and SET xxx=DEFAULT +create table t1 ( + a int, + b timestamp default '2010-10-10 10:10:10' on update now(), + c varchar(100) default 'x'); +insert t1 (a) values (1),(2); +select * from t1; +set timestamp=unix_timestamp('2011-11-11 11-11-11'); +update t1 set b=default, c=default(b) where a=1; +select * from t1; +drop table t1; +set timestamp=default; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/func_weight_string.result mariadb-10.3-10.3.20/mysql-test/main/func_weight_string.result --- mariadb-10.3-10.3.17/mysql-test/main/func_weight_string.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/func_weight_string.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,4 +1,5 @@ drop table if exists t1; +set @save_max_allowed_packet=@@max_allowed_packet; set global max_allowed_packet=1048576; connect conn1,localhost,root,,; connection conn1; @@ -95,7 +96,7 @@ Warning 1301 Result of weight_string() was larger than max_allowed_packet (1048576) - truncated disconnect conn1; connection default; -set global max_allowed_packet=default; +set global max_allowed_packet=@save_max_allowed_packet; # # Start of 10.1 tests # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/func_weight_string.test mariadb-10.3-10.3.20/mysql-test/main/func_weight_string.test --- mariadb-10.3-10.3.17/mysql-test/main/func_weight_string.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/func_weight_string.test 2019-11-06 16:01:56.000000000 +0000 @@ -2,7 +2,7 @@ drop table if exists t1; --enable_warnings - +set @save_max_allowed_packet=@@max_allowed_packet; set global max_allowed_packet=1048576; connect (conn1,localhost,root,,); connection conn1; @@ -118,7 +118,7 @@ disconnect conn1; connection default; -set global max_allowed_packet=default; +set global max_allowed_packet=@save_max_allowed_packet; --echo # --echo # Start of 10.1 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/gis.result mariadb-10.3-10.3.20/mysql-test/main/gis.result --- mariadb-10.3-10.3.17/mysql-test/main/gis.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/gis.result 2019-11-06 16:01:56.000000000 +0000 @@ -816,11 +816,15 @@ drop function fn3; create table t1(pt POINT); alter table t1 add primary key pti(pt); +Warnings: +Warning 1280 Name 'pti' ignored for PRIMARY key. drop table t1; create table t1(pt GEOMETRY); alter table t1 add primary key pti(pt); ERROR 42000: BLOB/TEXT column 'pt' used in key specification without a key length alter table t1 add primary key pti(pt(20)); +Warnings: +Warning 1280 Name 'pti' ignored for PRIMARY key. drop table t1; create table t1 select GeomFromText('point(1 1)'); desc t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/grant2.opt mariadb-10.3-10.3.20/mysql-test/main/grant2.opt --- mariadb-10.3-10.3.17/mysql-test/main/grant2.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/grant2.opt 2019-11-06 16:01:56.000000000 +0000 @@ -0,0 +1 @@ +--disable-skip-name-resolve --character_set_server=latin1 --collation_server=latin1_swedish_ci diff -Nru mariadb-10.3-10.3.17/mysql-test/main/grant4.opt mariadb-10.3-10.3.20/mysql-test/main/grant4.opt --- mariadb-10.3-10.3.17/mysql-test/main/grant4.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/grant4.opt 2019-11-06 16:01:56.000000000 +0000 @@ -0,0 +1 @@ +--disable-skip-name-resolve --character_set_server=latin1 --collation_server=latin1_swedish_ci diff -Nru mariadb-10.3-10.3.17/mysql-test/main/grant_cache_no_prot.result mariadb-10.3-10.3.20/mysql-test/main/grant_cache_no_prot.result --- mariadb-10.3-10.3.17/mysql-test/main/grant_cache_no_prot.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/grant_cache_no_prot.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,6 @@ +set @save_query_cache_size=@@global.query_cache_size; +set @save_sql_mode=@@global.sql_mode; +set @save_query_cache_type=@@global.query_cache_type; set GLOBAL sql_mode=""; set LOCAL sql_mode=""; drop table if exists test.t1,mysqltest.t1,mysqltest.t2; @@ -242,8 +245,8 @@ flush privileges; drop table test.t1,mysqltest.t1,mysqltest.t2; drop database mysqltest; -set GLOBAL query_cache_size=default; set GLOBAL query_cache_type=ON; set LOCAL query_cache_type=ON; -set GLOBAL sql_mode=default; -set GLOBAL query_cache_type=default; +set GLOBAL query_cache_size=@save_query_cache_size; +set GLOBAL sql_mode=@save_sql_mode; +set GLOBAL query_cache_type=@save_query_cache_type; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/grant_cache_ps_prot.result mariadb-10.3-10.3.20/mysql-test/main/grant_cache_ps_prot.result --- mariadb-10.3-10.3.17/mysql-test/main/grant_cache_ps_prot.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/grant_cache_ps_prot.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,6 @@ +set @save_query_cache_size=@@global.query_cache_size; +set @save_sql_mode=@@global.sql_mode; +set @save_query_cache_type=@@global.query_cache_type; set GLOBAL sql_mode=""; set LOCAL sql_mode=""; drop table if exists test.t1,mysqltest.t1,mysqltest.t2; @@ -242,8 +245,8 @@ flush privileges; drop table test.t1,mysqltest.t1,mysqltest.t2; drop database mysqltest; -set GLOBAL query_cache_size=default; set GLOBAL query_cache_type=ON; set LOCAL query_cache_type=ON; -set GLOBAL sql_mode=default; -set GLOBAL query_cache_type=default; +set GLOBAL query_cache_size=@save_query_cache_size; +set GLOBAL sql_mode=@save_sql_mode; +set GLOBAL query_cache_type=@save_query_cache_type; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/grant_explain_non_select.test mariadb-10.3-10.3.20/mysql-test/main/grant_explain_non_select.test --- mariadb-10.3-10.3.17/mysql-test/main/grant_explain_non_select.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/grant_explain_non_select.test 2019-11-06 16:01:56.000000000 +0000 @@ -7,6 +7,7 @@ # Save the initial number of concurrent sessions --source include/count_sessions.inc +--source include/default_optimizer_switch.inc set GLOBAL sql_mode=""; set LOCAL sql_mode=""; @@ -22,6 +23,7 @@ connect(con1,localhost,privtest,,); connection con1; +--source include/default_optimizer_switch.inc USE privtest_db; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/grant.opt mariadb-10.3-10.3.20/mysql-test/main/grant.opt --- mariadb-10.3-10.3.17/mysql-test/main/grant.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/grant.opt 2019-11-06 16:01:56.000000000 +0000 @@ -0,0 +1 @@ +--disable-skip-name-resolve --character_set_server=latin1 --collation_server=latin1_swedish_ci diff -Nru mariadb-10.3-10.3.17/mysql-test/main/greedy_optimizer.result mariadb-10.3-10.3.20/mysql-test/main/greedy_optimizer.result --- mariadb-10.3-10.3.17/mysql-test/main/greedy_optimizer.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/greedy_optimizer.result 2019-11-06 16:01:56.000000000 +0000 @@ -110,13 +110,7 @@ insert into t7 values (19,2,3,4,5,6); insert into t7 values (20,2,3,4,5,6); insert into t7 values (21,2,3,4,5,6); -select @@optimizer_search_depth; -@@optimizer_search_depth -62 -select @@optimizer_prune_level; -@@optimizer_prune_level -1 -set optimizer_search_depth=63; +set optimizer_search_depth=63, optimizer_prune_level=1; Warnings: Warning 1292 Truncated incorrect optimizer_search_depth value: '63' select @@optimizer_search_depth; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/greedy_optimizer.test mariadb-10.3-10.3.20/mysql-test/main/greedy_optimizer.test --- mariadb-10.3-10.3.17/mysql-test/main/greedy_optimizer.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/greedy_optimizer.test 2019-11-06 16:01:56.000000000 +0000 @@ -138,11 +138,6 @@ # The actual test begins here # -# Check the default values for the optimizer parameters - -select @@optimizer_search_depth; -select @@optimizer_prune_level; - # This value swithes back to the old implementation of 'find_best()' # set optimizer_search_depth=63; - old (independent of the optimizer_prune_level) # @@ -170,7 +165,7 @@ # procedure 'find_best'. Notice that 'find_best' does not depend on the # choice of heuristic. -set optimizer_search_depth=63; +set optimizer_search_depth=63, optimizer_prune_level=1; select @@optimizer_search_depth; # 6-table join, chain diff -Nru mariadb-10.3-10.3.17/mysql-test/main/group_by.result mariadb-10.3-10.3.20/mysql-test/main/group_by.result --- mariadb-10.3-10.3.17/mysql-test/main/group_by.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/group_by.result 2019-11-06 16:01:56.000000000 +0000 @@ -523,6 +523,8 @@ b 1 drop table t1; set big_tables=0; +SET @save_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity,@save_optimizer_switch=@@optimizer_switch; +SET optimizer_switch='outer_join_with_cache=off',@@optimizer_use_condition_selectivity=1; create table t1 (a int not null, b int not null); insert into t1 values (1,1),(1,2),(3,1),(3,2),(2,2),(2,1); create table t2 (a int not null, b int not null, key(a)); @@ -535,10 +537,10 @@ 3 1 select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b ORDER BY NULL; a b +1 1 1 3 -3 1 2 2 -1 1 +3 1 explain select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using temporary; Using filesort @@ -548,6 +550,7 @@ 1 SIMPLE t1 ALL NULL NULL NULL NULL 6 Using temporary 1 SIMPLE t2 ALL a NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join) drop table t1,t2; +SET @@optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity,@@optimizer_switch=@save_optimizer_switch; create table t1 (a int, b int); insert into t1 values (1, 4),(10, 40),(1, 4),(10, 43),(1, 4),(10, 41),(1, 4),(10, 43),(1, 4); select a, MAX(b), INTERVAL (MAX(b), 1,3,10,30,39,40,50,60,100,1000) from t1 group by a; @@ -1607,7 +1610,8 @@ (SELECT a FROM t1 USE INDEX (i2) IGNORE INDEX (i2)); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t2 index a a 5 NULL 4 Using index -1 PRIMARY t1 ALL NULL NULL NULL NULL 144 Using where; FirstMatch(t2) +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 +2 MATERIALIZED t1 ALL NULL NULL NULL NULL 144 SET optimizer_switch=@save_optimizer_switch; DROP TABLE t1, t2; CREATE TABLE t1( diff -Nru mariadb-10.3-10.3.17/mysql-test/main/group_by.test mariadb-10.3-10.3.20/mysql-test/main/group_by.test --- mariadb-10.3-10.3.17/mysql-test/main/group_by.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/group_by.test 2019-11-06 16:01:56.000000000 +0000 @@ -400,15 +400,20 @@ # Test of GROUP BY ... ORDER BY NULL optimization # +SET @save_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity,@save_optimizer_switch=@@optimizer_switch; +SET optimizer_switch='outer_join_with_cache=off',@@optimizer_use_condition_selectivity=1; create table t1 (a int not null, b int not null); insert into t1 values (1,1),(1,2),(3,1),(3,2),(2,2),(2,1); create table t2 (a int not null, b int not null, key(a)); insert into t2 values (1,3),(3,1),(2,2),(1,1); select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b; +--sorted_result select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b ORDER BY NULL; explain select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b; explain select t1.a,t2.b from t1,t2 where t1.a=t2.a group by t1.a,t2.b ORDER BY NULL; drop table t1,t2; +SET @@optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity,@@optimizer_switch=@save_optimizer_switch; + # # group function arguments in some functions diff -Nru mariadb-10.3-10.3.17/mysql-test/main/group_min_max.result mariadb-10.3-10.3.20/mysql-test/main/group_min_max.result --- mariadb-10.3-10.3.17/mysql-test/main/group_min_max.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/group_min_max.result 2019-11-06 16:01:56.000000000 +0000 @@ -2119,12 +2119,12 @@ 1 SIMPLE t1 index NULL idx_t1_2 147 NULL 128 Using index explain extended select a1,a2,count(a2) from t1 where (a1 > 'a') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE t1 index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 128 75.00 Using where; Using index +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_2 65 NULL 102 94.12 Using where; Using index Warnings: Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,count(`test`.`t1`.`a2`) AS `count(a2)` from `test`.`t1` where `test`.`t1`.`a1` > 'a' group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain extended select sum(ord(a1)) from t1 where (a1 > 'a') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE t1 index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 128 75.00 Using where; Using index +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_2 65 NULL 102 94.12 Using where; Using index Warnings: Note 1003 select sum(ord(`test`.`t1`.`a1`)) AS `sum(ord(a1))` from `test`.`t1` where `test`.`t1`.`a1` > 'a' group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` create table t4 as select distinct a1, a2, b, c from t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/group_min_max.test mariadb-10.3-10.3.20/mysql-test/main/group_min_max.test --- mariadb-10.3-10.3.17/mysql-test/main/group_min_max.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/group_min_max.test 2019-11-06 16:01:56.000000000 +0000 @@ -3,6 +3,8 @@ # The queries in this file test query execution via QUICK_GROUP_MIN_MAX_SELECT. # +--source include/default_optimizer_switch.inc + # # TODO: # Add queries with: diff -Nru mariadb-10.3-10.3.17/mysql-test/main/handlersocket.opt mariadb-10.3-10.3.20/mysql-test/main/handlersocket.opt --- mariadb-10.3-10.3.17/mysql-test/main/handlersocket.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/handlersocket.opt 2019-11-06 16:01:56.000000000 +0000 @@ -0,0 +1 @@ +--plugin-maturity=unknown diff -Nru mariadb-10.3-10.3.17/mysql-test/main/host_cache_size_functionality.result mariadb-10.3-10.3.20/mysql-test/main/host_cache_size_functionality.result --- mariadb-10.3-10.3.17/mysql-test/main/host_cache_size_functionality.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/host_cache_size_functionality.result 2019-11-06 16:01:56.000000000 +0000 @@ -4,12 +4,7 @@ #################################################################### # Checking default value # #################################################################### -SELECT COUNT(@@GLOBAL.Host_Cache_Size) -1 Expected -set @Default_host_cache_size=279; -select @@global.Host_Cache_Size=@Default_host_cache_size; -@@global.Host_Cache_Size=@Default_host_cache_size -1 +select @@global.Host_Cache_Size > 0 1 Expected '#---------------------WL6372_VAR_6_02----------------------#' # Restart server with Host_Cache_Size 1 diff -Nru mariadb-10.3-10.3.17/mysql-test/main/host_cache_size_functionality.test mariadb-10.3-10.3.20/mysql-test/main/host_cache_size_functionality.test --- mariadb-10.3-10.3.17/mysql-test/main/host_cache_size_functionality.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/host_cache_size_functionality.test 2019-11-06 16:01:56.000000000 +0000 @@ -31,13 +31,8 @@ #################################################################### # Checking default value # #################################################################### -SELECT COUNT(@@GLOBAL.Host_Cache_Size); ---echo 1 Expected - -#set @Default_host_cache_size=(select if(if(@@global.max_connections<500,128+@@global.max_connections,128+@@global.max_connections+floor((@@global.max_connections-500)/20))>2000,2000,if(@@global.max_connections<500,128+@@global.max_connections,128+@@global.max_connections+floor((@@global.max_connections-500)/20)))); -set @Default_host_cache_size=279; -select @@global.Host_Cache_Size=@Default_host_cache_size; +select @@global.Host_Cache_Size > 0; --echo 1 Expected diff -Nru mariadb-10.3-10.3.17/mysql-test/main/huge_frm-6224.result mariadb-10.3-10.3.20/mysql-test/main/huge_frm-6224.result --- mariadb-10.3-10.3.17/mysql-test/main/huge_frm-6224.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/huge_frm-6224.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,6 +1,7 @@ +set @save_max_allowed_packet=@@max_allowed_packet; set global max_allowed_packet=1024*1024*10; connect con1,localhost,root; ERROR HY000: The definition for table `t1` is too big connection default; disconnect con1; -set global max_allowed_packet=default; +set global max_allowed_packet=@save_max_allowed_packet; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/huge_frm-6224.test mariadb-10.3-10.3.20/mysql-test/main/huge_frm-6224.test --- mariadb-10.3-10.3.17/mysql-test/main/huge_frm-6224.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/huge_frm-6224.test 2019-11-06 16:01:56.000000000 +0000 @@ -4,6 +4,7 @@ # verify that huge frms are rejected during creation, not on opening # --source include/have_partition.inc +set @save_max_allowed_packet=@@max_allowed_packet; set global max_allowed_packet=1024*1024*10; connect con1,localhost,root; @@ -23,5 +24,4 @@ connection default; disconnect con1; -set global max_allowed_packet=default; - +set global max_allowed_packet=@save_max_allowed_packet; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/index_intersect.test mariadb-10.3-10.3.20/mysql-test/main/index_intersect.test --- mariadb-10.3-10.3.17/mysql-test/main/index_intersect.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/index_intersect.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,6 @@ +--source include/default_optimizer_switch.inc +--source include/default_charset.inc + --disable_warnings DROP TABLE IF EXISTS t1,t2,t3,t4; DROP DATABASE IF EXISTS world; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/index_merge_innodb.result mariadb-10.3-10.3.20/mysql-test/main/index_merge_innodb.result --- mariadb-10.3-10.3.17/mysql-test/main/index_merge_innodb.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/index_merge_innodb.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,8 +1,11 @@ +connect disable_purge,localhost,root,,; +# Disable the purge of InnoDB history, to make the test run faster. +START TRANSACTION WITH CONSISTENT SNAPSHOT; +connection default; +SET STORAGE_ENGINE = InnoDB; set @optimizer_switch_save= @@optimizer_switch; set optimizer_switch='index_merge_sort_intersection=off'; #---------------- Index merge test 2 ------------------------------------------- -SET SESSION STORAGE_ENGINE = InnoDB; -drop table if exists t1,t2; create table t1 ( key1 int not null, @@ -10,6 +13,7 @@ INDEX i1(key1), INDEX i2(key2) ); +INSERT INTO t1 SELECT seq,200-seq FROM seq_0_to_200; explain select * from t1 where key1 < 5 or key2 > 197; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index_merge i1,i2 i1,i2 4,4 NULL 8 Using sort_union(i1,i2); Using where @@ -67,6 +71,8 @@ ); show warnings; Level Code Message +INSERT INTO t1 (key1, key2, filler) +SELECT seq/4, seq/8, 'filler-data' FROM seq_30_to_0; explain select pk from t1 where key1 = 1 and key2 = 1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index_merge key1,key2 key1,key2 5,4 NULL 1 Using intersect(key1,key2); Using where; Using index @@ -292,24 +298,7 @@ key2 int not null default 0, key3 int not null default 0 ); -insert into t1(key1) values (1),(2),(3),(4),(5),(6),(7),(8); -set @d=8; -begin; -insert into t1 (key1) select key1+@d from t1; -set @d=@d*2; -insert into t1 (key1) select key1+@d from t1; -set @d=@d*2; -insert into t1 (key1) select key1+@d from t1; -set @d=@d*2; -insert into t1 (key1) select key1+@d from t1; -set @d=@d*2; -insert into t1 (key1) select key1+@d from t1; -set @d=@d*2; -insert into t1 (key1) select key1+@d from t1; -set @d=@d*2; -insert into t1 (key1) select key1+@d from t1; -set @d=@d*2; -commit; +insert into t1(key1) select seq from seq_1_to_1024; alter table t1 add index i2(key2); alter table t1 add index i3(key3); update t1 set key2=key1,key3=key1; @@ -388,8 +377,6 @@ 1 b DROP TABLE t1, t2; #---------------- 2-sweeps read Index merge test 2 ------------------------------- -SET SESSION STORAGE_ENGINE = InnoDB; -drop table if exists t1; create table t1 ( pk int primary key, key1 int, @@ -399,6 +386,8 @@ index(key1), index(key2) ); +insert into t1 select seq, seq, seq, 'filler-data', 'filler-data-2' +from seq_1000_to_1; select * from t1 where (key1 >= 2 and key1 <= 10) or (pk >= 4 and pk <=8 ); pk key1 key2 filler filler2 2 2 2 filler-data filler-data-2 @@ -526,8 +515,6 @@ 54 54 54 filler-data filler-data-2 drop table t1; #---------------- Clustered PK ROR-index_merge tests ----------------------------- -SET SESSION STORAGE_ENGINE = InnoDB; -drop table if exists t1; create table t1 ( pk1 int not null, @@ -668,34 +655,27 @@ # # BUG#56862/640419: Wrong result with sort_union index merge when one # of the merged index scans is the primary key scan -# +# +CREATE TABLE t0(a int, b int) ENGINE=MyISAM; CREATE TABLE t1 ( pk int NOT NULL AUTO_INCREMENT PRIMARY KEY, a int, b int, INDEX idx(a)) ENGINE=INNODB; -begin; -INSERT INTO t1(a,b) VALUES +INSERT INTO t0(a,b) VALUES (11, 1100), (2, 200), (1, 100), (14, 1400), (5, 500), (3, 300), (17, 1700), (4, 400), (12, 1200), (8, 800), (6, 600), (18, 1800), (9, 900), (10, 1000), (7, 700), (13, 1300), (15, 1500), (19, 1900), (16, 1600), (20, 2000); -INSERT INTO t1(a,b) SELECT a+20, b+2000 FROM t1; -INSERT INTO t1(a,b) SELECT a+40, b+4000 FROM t1; -INSERT INTO t1(a,b) SELECT a+80, b+8000 FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; +INSERT INTO t0(a,b) SELECT a+20, b+2000 FROM t0; +INSERT INTO t0(a,b) SELECT a+40, b+4000 FROM t0; +INSERT INTO t0(a,b) SELECT a+80, b+8000 FROM t0; +begin; +INSERT INTO t1(a,b) SELECT t0.a,t0.b FROM t0, seq_1_to_1024; INSERT INTO t1 VALUES (1000000, 0, 0); commit; +DROP TABLE t0; SET SESSION sort_buffer_size = 1024*36; set @tmp_optimizer_switch=@@optimizer_switch; set optimizer_switch='derived_merge=off,derived_with_keys=off'; @@ -704,8 +684,8 @@ (SELECT * FROM t1 FORCE INDEX(primary,idx) WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL NULL NULL NULL NULL 6145 -2 DERIVED t1 index_merge PRIMARY,idx idx,PRIMARY 5,4 NULL 6145 Using sort_union(idx,PRIMARY); Using where +1 PRIMARY ALL NULL NULL NULL NULL # +2 DERIVED t1 index_merge PRIMARY,idx idx,PRIMARY 5,4 NULL # Using sort_union(idx,PRIMARY); Using where SELECT COUNT(*) FROM (SELECT * FROM t1 FORCE INDEX(primary,idx) WHERE a BETWEEN 2 AND 7 OR pk=1000000) AS t; @@ -759,8 +739,6 @@ # # BUG#1006164: Multi-table DELETE that uses innodb + index_merge/intersect may fail to delete rows # -create table t0(a int); -insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); create table t1 ( pk int auto_increment, zone_id int, @@ -769,7 +747,7 @@ key (zone_id), key (modified) ) engine=innodb; -insert into t1 (zone_id, modified) select 0,0 from t0 A, t0 B, t0 C, t0 D; +insert into t1 (zone_id, modified) select 0,0 from seq_1_to_10000; update t1 set zone_id=487, modified=9 where pk=7259; update t1 set zone_id=487, modified=9 where pk=7260; update t1 set zone_id=830, modified=9 where pk=8434; @@ -787,7 +765,7 @@ commit; select * from t1 where t1.zone_id=830 AND modified=9; pk zone_id modified -drop table t0, t1; +drop table t1; # # MDEV-376: Wrong result (missing rows) with index_merge+index_merge_intersection, join # @@ -822,14 +800,11 @@ KEY key1 (key1), KEY key2 (key2) ) ENGINE=InnoDB AUTO_INCREMENT=12860259 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT; -create table t2(a int); -insert into t2 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); -create table t3(a int); -insert into t3 select A.a + B.a* 10 + C.a * 100 + D.a*1000 from t2 A, t2 B, t2 C, t2 D; insert into t1 (key1, key2, col1,col2,col3,col4) -select a,a, a,a,a,a from t3; +select seq,seq,seq,seq,seq,seq from seq_1_to_10000; SELECT sum(col1) FROM t1 FORCE INDEX (key1,key2) WHERE (key1 between 10 and 8191+10) or (key2= 5); sum(col1) 33632261 -drop table t1,t2,t3; +drop table t1; set optimizer_switch=@tmp_optimizer_switch; +disconnect disable_purge; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/index_merge_innodb.test mariadb-10.3-10.3.20/mysql-test/main/index_merge_innodb.test --- mariadb-10.3-10.3.17/mysql-test/main/index_merge_innodb.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/index_merge_innodb.test 2019-11-06 16:01:56.000000000 +0000 @@ -14,7 +14,12 @@ --source include/not_staging.inc --source include/have_innodb.inc -let $engine_type= InnoDB; +connect disable_purge,localhost,root,,; +--echo # Disable the purge of InnoDB history, to make the test run faster. +START TRANSACTION WITH CONSISTENT SNAPSHOT; +connection default; + +SET STORAGE_ENGINE = InnoDB; # InnoDB does not support Merge tables (affects include/index_merge1.inc) let $merge_table_support= 0; @@ -37,7 +42,9 @@ --echo # --echo # BUG#56862/640419: Wrong result with sort_union index merge when one --echo # of the merged index scans is the primary key scan ---echo # +--echo # + +CREATE TABLE t0(a int, b int) ENGINE=MyISAM; CREATE TABLE t1 ( pk int NOT NULL AUTO_INCREMENT PRIMARY KEY, @@ -46,27 +53,19 @@ INDEX idx(a)) ENGINE=INNODB; -begin; -INSERT INTO t1(a,b) VALUES +INSERT INTO t0(a,b) VALUES (11, 1100), (2, 200), (1, 100), (14, 1400), (5, 500), (3, 300), (17, 1700), (4, 400), (12, 1200), (8, 800), (6, 600), (18, 1800), (9, 900), (10, 1000), (7, 700), (13, 1300), (15, 1500), (19, 1900), (16, 1600), (20, 2000); -INSERT INTO t1(a,b) SELECT a+20, b+2000 FROM t1; -INSERT INTO t1(a,b) SELECT a+40, b+4000 FROM t1; -INSERT INTO t1(a,b) SELECT a+80, b+8000 FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; -INSERT INTO t1(a,b) SELECT a,b FROM t1; +INSERT INTO t0(a,b) SELECT a+20, b+2000 FROM t0; +INSERT INTO t0(a,b) SELECT a+40, b+4000 FROM t0; +INSERT INTO t0(a,b) SELECT a+80, b+8000 FROM t0; +begin; +INSERT INTO t1(a,b) SELECT t0.a,t0.b FROM t0, seq_1_to_1024; INSERT INTO t1 VALUES (1000000, 0, 0); commit; +DROP TABLE t0; SET SESSION sort_buffer_size = 1024*36; set @tmp_optimizer_switch=@@optimizer_switch; @@ -74,6 +73,7 @@ # We have to use FORCE INDEX here as Innodb gives inconsistent estimates # which causes different query plans. +--replace_column 9 # EXPLAIN SELECT COUNT(*) FROM (SELECT * FROM t1 FORCE INDEX(primary,idx) @@ -130,9 +130,6 @@ --echo # BUG#1006164: Multi-table DELETE that uses innodb + index_merge/intersect may fail to delete rows --echo # -create table t0(a int); -insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); - create table t1 ( pk int auto_increment, zone_id int, @@ -142,7 +139,7 @@ key (modified) ) engine=innodb; -insert into t1 (zone_id, modified) select 0,0 from t0 A, t0 B, t0 C, t0 D; +insert into t1 (zone_id, modified) select 0,0 from seq_1_to_10000; update t1 set zone_id=487, modified=9 where pk=7259; update t1 set zone_id=487, modified=9 where pk=7260; update t1 set zone_id=830, modified=9 where pk=8434; @@ -156,7 +153,7 @@ commit; select * from t1 where t1.zone_id=830 AND modified=9; -drop table t0, t1; +drop table t1; --echo # --echo # MDEV-376: Wrong result (missing rows) with index_merge+index_merge_intersection, join @@ -196,14 +193,10 @@ KEY key2 (key2) ) ENGINE=InnoDB AUTO_INCREMENT=12860259 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT; -create table t2(a int); -insert into t2 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); - -create table t3(a int); -insert into t3 select A.a + B.a* 10 + C.a * 100 + D.a*1000 from t2 A, t2 B, t2 C, t2 D; - insert into t1 (key1, key2, col1,col2,col3,col4) -select a,a, a,a,a,a from t3; +select seq,seq,seq,seq,seq,seq from seq_1_to_10000; SELECT sum(col1) FROM t1 FORCE INDEX (key1,key2) WHERE (key1 between 10 and 8191+10) or (key2= 5); -drop table t1,t2,t3; +drop table t1; set optimizer_switch=@tmp_optimizer_switch; + +disconnect disable_purge; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/index_merge_myisam.result mariadb-10.3-10.3.20/mysql-test/main/index_merge_myisam.result --- mariadb-10.3-10.3.17/mysql-test/main/index_merge_myisam.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/index_merge_myisam.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,13 +1,13 @@ +SET STORAGE_ENGINE = MyISAM; set @optimizer_switch_save= @@optimizer_switch; set optimizer_switch='index_merge_sort_intersection=off'; #---------------- Index merge test 1 ------------------------------------------- -SET SESSION STORAGE_ENGINE = MyISAM; -drop table if exists t0, t1, t2, t3, t4; create table t0 ( key1 int not null, INDEX i1(key1) ); +insert into t0(key1) select seq from seq_1_to_1024; alter table t0 add key2 int not null, add index i2(key2); alter table t0 add key3 int not null, add index i3(key3); alter table t0 add key4 int not null, add index i4(key4); @@ -228,7 +228,7 @@ ); Warnings: Note 1831 Duplicate index `i2_2`. This is deprecated and will be disallowed in a future release -insert into t4 select key1,key1,key1 div 10, key1 % 10, key1 % 10, key1 from t0; +insert into t4 select seq,seq,seq div 10, seq % 10, seq % 10, seq from seq_1_to_1024; select * from t4 where key1a = 3 or key1b = 4; key1a key1b key2 key2_1 key2_2 key3 3 3 0 3 3 3 @@ -414,14 +414,12 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index_merge cola,colb cola,colb 3,3 NULL 32 Using intersect(cola,colb); Using where drop table t1; -create table t0 (a int); -insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); create table t1 ( a int, b int, filler1 char(200), filler2 char(200), key(a),key(b) ); -insert into t1 select @v:= A.a, @v, 't1', 'filler2' from t0 A, t0 B, t0 C; +insert into t1 select @v:= seq % 10, @v, 't1', 'filler2' from seq_1_to_1000; create table t2 like t1; create table t3 ( a int, b int, @@ -434,8 +432,7 @@ explain select * from t3 where a=1 and b=1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t3 index_merge a,b a,b 5,5 NULL # Using intersect(a,b); Using where -drop table t3; -drop table t0, t1, t2; +drop table t1, t2, t3; CREATE TABLE t1(a INT); INSERT INTO t1 VALUES(1); CREATE TABLE t2(a INT, b INT, dummy CHAR(16) DEFAULT '', KEY(a), KEY(b)); @@ -540,14 +537,12 @@ # # BUG#40974: Incorrect query results when using clause evaluated using range check # -create table t0 (a int); -insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); create table t1 (a int); insert into t1 values (1),(2); create table t2(a int, b int); insert into t2 values (1,1), (2, 1000); create table t3 (a int, b int, filler char(100), key(a), key(b)); -insert into t3 select 1000, 1000,'filler' from t0 A, t0 B, t0 C; +insert into t3 select 1000, 1000,'filler' from seq_1_to_1000; insert into t3 values (1,1,'data'); insert into t3 values (1,1,'data'); The plan should be ALL/ALL/ALL(Range checked for each record (index map: 0x3) @@ -556,27 +551,22 @@ where t2.a=t1.a and (t3.a=t2.b or t3.b=t2.b or t3.b=t2.b+1)); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t1 ALL NULL NULL NULL NULL 2 -1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where -1 PRIMARY t3 ALL a,b NULL NULL NULL 1002 Range checked for each record (index map: 0x3); FirstMatch(t1) +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 +2 MATERIALIZED t3 ALL a,b NULL NULL NULL 1002 Range checked for each record (index map: 0x3) select * from t1 where exists (select 1 from t2, t3 where t2.a=t1.a and (t3.a=t2.b or t3.b=t2.b or t3.b=t2.b+1)); a 1 2 -drop table t0, t1, t2, t3; +drop table t1, t2, t3; # # BUG#44810: index merge and order by with low sort_buffer_size # crashes server! # CREATE TABLE t1(a VARCHAR(128),b VARCHAR(128),KEY(A),KEY(B)); -INSERT INTO t1 VALUES (REPEAT('a',128),REPEAT('b',128)); -INSERT INTO t1 SELECT * FROM t1; -INSERT INTO t1 SELECT * FROM t1; -INSERT INTO t1 SELECT * FROM t1; -INSERT INTO t1 SELECT * FROM t1; -INSERT INTO t1 SELECT * FROM t1; -INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT REPEAT('a',128),REPEAT('b',128) FROM seq_1_to_64; SET SESSION sort_buffer_size=1024*8; EXPLAIN SELECT * FROM t1 FORCE INDEX(a,b) WHERE a LIKE 'a%' OR b LIKE 'b%' @@ -589,8 +579,6 @@ DROP TABLE t1; End of 5.0 tests #---------------- ROR-index_merge tests ----------------------- -SET SESSION STORAGE_ENGINE = MyISAM; -drop table if exists t0,t1,t2; create table t1 ( /* Field names reflect value(rowid) distribution, st=STairs, swt= SaWTooth */ @@ -839,8 +827,6 @@ c1 c2 c3 DROP TABLE t1,t2; #---------------- Index merge test 2 ------------------------------------------- -SET SESSION STORAGE_ENGINE = MyISAM; -drop table if exists t1,t2; create table t1 ( key1 int not null, @@ -848,6 +834,7 @@ INDEX i1(key1), INDEX i2(key2) ); +INSERT INTO t1 SELECT seq,200-seq FROM seq_0_to_200; explain select * from t1 where key1 < 5 or key2 > 197; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index_merge i1,i2 i1,i2 4,4 NULL 10 Using sort_union(i1,i2); Using where @@ -905,6 +892,8 @@ ); show warnings; Level Code Message +INSERT INTO t1 (key1, key2, filler) +SELECT seq/4, seq/8, 'filler-data' FROM seq_30_to_0; explain select pk from t1 where key1 = 1 and key2 = 1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref key1,key2 key1 5 const 4 Using where @@ -1130,24 +1119,7 @@ key2 int not null default 0, key3 int not null default 0 ); -insert into t1(key1) values (1),(2),(3),(4),(5),(6),(7),(8); -set @d=8; -begin; -insert into t1 (key1) select key1+@d from t1; -set @d=@d*2; -insert into t1 (key1) select key1+@d from t1; -set @d=@d*2; -insert into t1 (key1) select key1+@d from t1; -set @d=@d*2; -insert into t1 (key1) select key1+@d from t1; -set @d=@d*2; -insert into t1 (key1) select key1+@d from t1; -set @d=@d*2; -insert into t1 (key1) select key1+@d from t1; -set @d=@d*2; -insert into t1 (key1) select key1+@d from t1; -set @d=@d*2; -commit; +insert into t1(key1) select seq from seq_1_to_1024; alter table t1 add index i2(key2); alter table t1 add index i3(key3); update t1 set key2=key1,key3=key1; @@ -1226,8 +1198,6 @@ 1 b DROP TABLE t1, t2; #---------------- 2-sweeps read Index merge test 2 ------------------------------- -SET SESSION STORAGE_ENGINE = MyISAM; -drop table if exists t1; create table t1 ( pk int primary key, key1 int, @@ -1237,6 +1207,8 @@ index(key1), index(key2) ); +insert into t1 select seq, seq, seq, 'filler-data', 'filler-data-2' +from seq_1000_to_1; select * from t1 where (key1 >= 2 and key1 <= 10) or (pk >= 4 and pk <=8 ); pk key1 key2 filler filler2 10 10 10 filler-data filler-data-2 @@ -1364,8 +1336,6 @@ 1 1 1 filler-data filler-data-2 drop table t1; #---------------- Clustered PK ROR-index_merge tests ----------------------------- -SET SESSION STORAGE_ENGINE = MyISAM; -drop table if exists t1; create table t1 ( pk1 int not null, @@ -1726,22 +1696,7 @@ key1 int not null, INDEX i1(key1) ); -insert into t0 values (1),(2),(3),(4),(5),(6),(7),(8); -set @d=8; -insert into t0 select key1+ @d from t0; -set @d=@d*2; -insert into t0 select key1+ @d from t0; -set @d=@d*2; -insert into t0 select key1+ @d from t0; -set @d=@d*2; -insert into t0 select key1+ @d from t0; -set @d=@d*2; -insert into t0 select key1+ @d from t0; -set @d=@d*2; -insert into t0 select key1+ @d from t0; -set @d=@d*2; -insert into t0 select key1+ @d from t0; -set @d=@d*2; +insert into t0 select * from seq_1_to_1024; alter table t0 add key2 int not null, add index i2(key2); alter table t0 add key3 int not null, add index i3(key3); alter table t0 add key8 int not null, add index i8(key8); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/index_merge_myisam.test mariadb-10.3-10.3.20/mysql-test/main/index_merge_myisam.test --- mariadb-10.3-10.3.17/mysql-test/main/index_merge_myisam.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/index_merge_myisam.test 2019-11-06 16:01:56.000000000 +0000 @@ -10,7 +10,7 @@ # include/index_merge*.inc files # -let $engine_type= MyISAM; +SET STORAGE_ENGINE = MyISAM; # MyISAM supports Merge tables let $merge_table_support= 1; @@ -33,7 +33,7 @@ A.a * B.a*10 + C.a*100, A.a, 'filler' -from t0 A, t0 B, t0 C; +from t0 A, t0 B, t0 C; --echo This should use union: explain select * from t1 where a=1 or b=1; @@ -253,15 +253,7 @@ INDEX i1(key1) ); -insert into t0 values (1),(2),(3),(4),(5),(6),(7),(8); -let $1=7; -set @d=8; -while ($1) -{ - eval insert into t0 select key1+ @d from t0; - eval set @d=@d*2; - dec $1; -} +insert into t0 select * from seq_1_to_1024; alter table t0 add key2 int not null, add index i2(key2); alter table t0 add key3 int not null, add index i3(key3); alter table t0 add key8 int not null, add index i8(key8); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/information_schema-big.result mariadb-10.3-10.3.20/mysql-test/main/information_schema-big.result --- mariadb-10.3-10.3.17/mysql-test/main/information_schema-big.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/information_schema-big.result 2019-11-06 16:01:56.000000000 +0000 @@ -15,7 +15,7 @@ c2.table_name = t.table_name AND c2.column_name LIKE '%SCHEMA%' ) -AND t.table_name NOT LIKE 'innodb%'; +AND t.table_name NOT LIKE 'innodb%' and t.table_name NOT LIKE "OPTIMIZER_TRACE%"; table_name column_name ALL_PLUGINS PLUGIN_NAME APPLICABLE_ROLES GRANTEE @@ -73,7 +73,7 @@ c2.table_name = t.table_name AND c2.column_name LIKE '%SCHEMA%' ) -AND t.table_name NOT LIKE 'innodb%'; +AND t.table_name NOT LIKE 'innodb%' and t.table_name NOT LIKE "OPTIMIZER_TRACE%"; table_name column_name ALL_PLUGINS PLUGIN_NAME APPLICABLE_ROLES GRANTEE diff -Nru mariadb-10.3-10.3.17/mysql-test/main/information_schema-big.test mariadb-10.3-10.3.20/mysql-test/main/information_schema-big.test --- mariadb-10.3-10.3.17/mysql-test/main/information_schema-big.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/information_schema-big.test 2019-11-06 16:01:56.000000000 +0000 @@ -26,7 +26,7 @@ c2.table_name = t.table_name AND c2.column_name LIKE '%SCHEMA%' ) - AND t.table_name NOT LIKE 'innodb%'; + AND t.table_name NOT LIKE 'innodb%' and t.table_name NOT LIKE "OPTIMIZER_TRACE%"; --sorted_result SELECT t.table_name, c1.column_name FROM information_schema.tables t @@ -42,4 +42,4 @@ c2.table_name = t.table_name AND c2.column_name LIKE '%SCHEMA%' ) - AND t.table_name NOT LIKE 'innodb%'; + AND t.table_name NOT LIKE 'innodb%' and t.table_name NOT LIKE "OPTIMIZER_TRACE%"; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/information_schema_db.result mariadb-10.3-10.3.20/mysql-test/main/information_schema_db.result --- mariadb-10.3-10.3.17/mysql-test/main/information_schema_db.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/information_schema_db.result 2019-11-06 16:01:56.000000000 +0000 @@ -244,3 +244,82 @@ disconnect user1; connection default; set global sql_mode=default; +create user foo@localhost; +grant select on test.* to foo@localhost; +create procedure rootonly() select 1; +create sql security definer view v1d as select current_user(),user from information_schema.processlist; +create sql security invoker view v1i as select current_user(),user from information_schema.processlist; +create sql security definer view v2d as select table_name from information_schema.tables where table_schema='mysql' and table_name like '%user%'; +create sql security invoker view v2i as select table_name from information_schema.tables where table_schema='mysql' and table_name like '%user%'; +create sql security definer view v3d as select schema_name from information_schema.schemata where schema_name like '%mysql%'; +create sql security invoker view v3i as select schema_name from information_schema.schemata where schema_name like '%mysql%'; +create sql security definer view v4d as select routine_name from information_schema.routines where routine_schema='test'; +create sql security invoker view v4i as select routine_name from information_schema.routines where routine_schema='test'; +create sql security definer view v5d as select view_definition > '' from information_schema.views where table_name='v1d'; +create sql security invoker view v5i as select view_definition > '' from information_schema.views where table_name='v1d'; +connect foo,localhost,foo; +select * from v1d; +current_user() user +root@localhost root +root@localhost root +select * from v1i; +current_user() user +foo@localhost foo +select * from v2d; +table_name +user +select * from v2i; +table_name +select * from v3d; +schema_name +mysql +select * from v3i; +schema_name +select * from v4d; +routine_name +rootonly +select * from v4i; +routine_name +select * from v5d; +view_definition > '' +1 +select * from v5i; +view_definition > '' +0 +connection default; +select * from v1d; +current_user() user +root@localhost foo +root@localhost root +select * from v1i; +current_user() user +root@localhost foo +root@localhost root +select * from v2d; +table_name +user +select * from v2i; +table_name +user +select * from v3d; +schema_name +mysql +select * from v3i; +schema_name +mysql +select * from v4d; +routine_name +rootonly +select * from v4i; +routine_name +rootonly +select * from v5d; +view_definition > '' +1 +select * from v5i; +view_definition > '' +1 +disconnect foo; +drop view v1d, v1i, v2d, v2i, v3d, v3i, v4d, v4i, v5d, v5i; +drop user foo@localhost; +drop procedure rootonly; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/information_schema_db.test mariadb-10.3-10.3.20/mysql-test/main/information_schema_db.test --- mariadb-10.3-10.3.17/mysql-test/main/information_schema_db.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/information_schema_db.test 2019-11-06 16:01:56.000000000 +0000 @@ -255,3 +255,47 @@ connection default; set global sql_mode=default; + +# +# MDEV-20549 SQL SECURITY DEFINER does not work for INFORMATION_SCHEMA tables +# + +create user foo@localhost; +grant select on test.* to foo@localhost; +create procedure rootonly() select 1; +create sql security definer view v1d as select current_user(),user from information_schema.processlist; +create sql security invoker view v1i as select current_user(),user from information_schema.processlist; +create sql security definer view v2d as select table_name from information_schema.tables where table_schema='mysql' and table_name like '%user%'; +create sql security invoker view v2i as select table_name from information_schema.tables where table_schema='mysql' and table_name like '%user%'; +create sql security definer view v3d as select schema_name from information_schema.schemata where schema_name like '%mysql%'; +create sql security invoker view v3i as select schema_name from information_schema.schemata where schema_name like '%mysql%'; +create sql security definer view v4d as select routine_name from information_schema.routines where routine_schema='test'; +create sql security invoker view v4i as select routine_name from information_schema.routines where routine_schema='test'; +create sql security definer view v5d as select view_definition > '' from information_schema.views where table_name='v1d'; +create sql security invoker view v5i as select view_definition > '' from information_schema.views where table_name='v1d'; +connect foo,localhost,foo; +select * from v1d; +select * from v1i; +select * from v2d; +select * from v2i; +select * from v3d; +select * from v3i; +select * from v4d; +select * from v4i; +select * from v5d; +select * from v5i; +connection default; +select * from v1d; +select * from v1i; +select * from v2d; +select * from v2i; +select * from v3d; +select * from v3i; +select * from v4d; +select * from v4i; +select * from v5d; +select * from v5i; +disconnect foo; +drop view v1d, v1i, v2d, v2i, v3d, v3i, v4d, v4i, v5d, v5i; +drop user foo@localhost; +drop procedure rootonly; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/information_schema_parameters.test mariadb-10.3-10.3.20/mysql-test/main/information_schema_parameters.test --- mariadb-10.3-10.3.17/mysql-test/main/information_schema_parameters.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/information_schema_parameters.test 2019-11-06 16:01:56.000000000 +0000 @@ -7,6 +7,8 @@ # Last modified: 2007-12-03 #------------------------------------------------------------------------------ +--source include/default_charset.inc + ############################################################################### # Testcase parameters.1: Verify INFORMATION_SCHEMA.PARAMETERS view has the # following structure: diff -Nru mariadb-10.3-10.3.17/mysql-test/main/information_schema_routines.test mariadb-10.3-10.3.20/mysql-test/main/information_schema_routines.test --- mariadb-10.3-10.3.17/mysql-test/main/information_schema_routines.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/information_schema_routines.test 2019-11-06 16:01:56.000000000 +0000 @@ -56,6 +56,8 @@ ################################################################################ set sql_mode=""; set sql_mode=""; +--source include/default_charset.inc + -- echo # ========== routines.1 ========== USE INFORMATION_SCHEMA; --replace_result ENGINE=MyISAM "" ENGINE=MARIA "" ENGINE=Aria "" " PAGE_CHECKSUM=1" "" " PAGE_CHECKSUM=0" "" diff -Nru mariadb-10.3-10.3.17/mysql-test/main/information_schema_stats.result mariadb-10.3-10.3.20/mysql-test/main/information_schema_stats.result --- mariadb-10.3-10.3.17/mysql-test/main/information_schema_stats.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/information_schema_stats.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,4 @@ +set @save_userstat=@@global.userstat; set global userstat=1; create table just_a_test(id int,first_name varchar(10),last_name varchar(10),address varchar(100),phone bigint,email varchar(30), state varchar(30)); insert into just_a_test values(1,'fa','la','china_a',11111111,'fa_la@163.com','California'), @@ -67,4 +68,4 @@ TABLE_SCHEMA TABLE_NAME INDEX_NAME ROWS_READ select * from information_schema.table_statistics where table_schema='test' and table_name='just_a_test'; TABLE_SCHEMA TABLE_NAME ROWS_READ ROWS_CHANGED ROWS_CHANGED_X_INDEXES -set global userstat=0; +set global userstat=@save_userstat; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/information_schema_stats.test mariadb-10.3-10.3.20/mysql-test/main/information_schema_stats.test --- mariadb-10.3-10.3.17/mysql-test/main/information_schema_stats.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/information_schema_stats.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,6 +1,7 @@ # # MDEV-8633: information_schema.index_statistics doesn't delete item when drop table indexes or drop table; # +set @save_userstat=@@global.userstat; set global userstat=1; create table just_a_test(id int,first_name varchar(10),last_name varchar(10),address varchar(100),phone bigint,email varchar(30), state varchar(30)); insert into just_a_test values(1,'fa','la','china_a',11111111,'fa_la@163.com','California'), @@ -43,4 +44,4 @@ drop table just_a_test; select * from information_schema.index_statistics where table_schema='test' and table_name='just_a_test'; select * from information_schema.table_statistics where table_schema='test' and table_name='just_a_test'; -set global userstat=0; +set global userstat=@save_userstat; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/information_schema.test mariadb-10.3-10.3.20/mysql-test/main/information_schema.test --- mariadb-10.3-10.3.17/mysql-test/main/information_schema.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/information_schema.test 2019-11-06 16:01:56.000000000 +0000 @@ -17,6 +17,9 @@ # Save the initial number of concurrent sessions --source include/count_sessions.inc +--source include/default_optimizer_switch.inc +--source include/default_charset.inc + set global sql_mode=""; set local sql_mode=""; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/init_connection_query_cache.result mariadb-10.3-10.3.20/mysql-test/main/init_connection_query_cache.result --- mariadb-10.3-10.3.17/mysql-test/main/init_connection_query_cache.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/init_connection_query_cache.result 2019-11-06 16:01:56.000000000 +0000 @@ -2,6 +2,7 @@ # MDEV-4520: Assertion `0' fails in Query_cache::end_of_result on # concurrent drop event and event execution # +set @save_query_cache_size=@@query_cache_size; set GLOBAL query_cache_size=1355776; create user mysqltest1@localhost; grant SELECT on test.* to mysqltest1@localhost; @@ -20,4 +21,4 @@ revoke all privileges, grant option from mysqltest1@localhost; drop user mysqltest1@localhost; drop table t1; -set GLOBAL query_cache_size=default; +set GLOBAL query_cache_size=@save_query_cache_size; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/init_connection_query_cache.test mariadb-10.3-10.3.20/mysql-test/main/init_connection_query_cache.test --- mariadb-10.3-10.3.17/mysql-test/main/init_connection_query_cache.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/init_connection_query_cache.test 2019-11-06 16:01:56.000000000 +0000 @@ -4,6 +4,7 @@ --echo # MDEV-4520: Assertion `0' fails in Query_cache::end_of_result on --echo # concurrent drop event and event execution --echo # +set @save_query_cache_size=@@query_cache_size; set GLOBAL query_cache_size=1355776; create user mysqltest1@localhost; @@ -23,4 +24,4 @@ drop table t1; -set GLOBAL query_cache_size=default; +set GLOBAL query_cache_size=@save_query_cache_size; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/innodb_ext_key.result mariadb-10.3-10.3.20/mysql-test/main/innodb_ext_key.result --- mariadb-10.3-10.3.17/mysql-test/main/innodb_ext_key.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/innodb_ext_key.result 2019-11-06 16:01:56.000000000 +0000 @@ -727,8 +727,8 @@ WHERE c = a AND b IN (SELECT b FROM t1, t2 WHERE b = t.b); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t index a,b b 7 NULL 10 Using index -1 PRIMARY t1 ref b b 3 test.t.b 2 Using index -1 PRIMARY t2 index NULL PRIMARY 4 NULL 11 Using index; FirstMatch(t) +1 PRIMARY t1 ref b b 3 test.t.b 2 Using index; Start temporary +1 PRIMARY t2 index NULL PRIMARY 4 NULL 11 Using index; End temporary; Using join buffer (flat, BNL join) 1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t.a 1 Using index SELECT a FROM t1 AS t, t2 WHERE c = a AND b IN (SELECT b FROM t1, t2 WHERE b = t.b); @@ -740,8 +740,8 @@ WHERE c = a AND b IN (SELECT b FROM t1, t2 WHERE b = t.b); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t index a,b b 7 NULL 10 Using index -1 PRIMARY t1 ref b b 3 test.t.b 2 Using index -1 PRIMARY t2 index NULL PRIMARY 4 NULL 11 Using index; FirstMatch(t) +1 PRIMARY t1 ref b b 3 test.t.b 2 Using index; Start temporary +1 PRIMARY t2 index NULL PRIMARY 4 NULL 11 Using index; End temporary; Using join buffer (flat, BNL join) 1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t.a 1 Using index SELECT a FROM t1 AS t, t2 WHERE c = a AND b IN (SELECT b FROM t1, t2 WHERE b = t.b); @@ -1137,6 +1137,7 @@ # # MDEV-11196: Error:Run-Time Check Failure #2 - Stack around the variable 'key_buff' # was corrupted, server crashes in opt_sum_query +SET @save_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity,@@optimizer_use_condition_selectivity=1; CREATE TABLE t1 ( pk INT, f1 VARCHAR(3), @@ -1209,3 +1210,4 @@ } } drop table t1; +SET optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/innodb_ext_key.test mariadb-10.3-10.3.20/mysql-test/main/innodb_ext_key.test --- mariadb-10.3-10.3.17/mysql-test/main/innodb_ext_key.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/innodb_ext_key.test 2019-11-06 16:01:56.000000000 +0000 @@ -784,6 +784,8 @@ --echo # MDEV-11196: Error:Run-Time Check Failure #2 - Stack around the variable 'key_buff' --echo # was corrupted, server crashes in opt_sum_query +SET @save_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity,@@optimizer_use_condition_selectivity=1; + CREATE TABLE t1 ( pk INT, f1 VARCHAR(3), @@ -822,3 +824,4 @@ explain format= json select * from t1 force index(k1) where f2 <= 5 and pk2 <=5 and pk1 = 'abc' and f1 <= '3'; drop table t1; +SET optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/innodb_icp.result mariadb-10.3-10.3.20/mysql-test/main/innodb_icp.result --- mariadb-10.3-10.3.17/mysql-test/main/innodb_icp.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/innodb_icp.result 2019-11-06 16:01:56.000000000 +0000 @@ -679,7 +679,7 @@ SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND t1.b != 0 HAVING t1.c != 5 ORDER BY t1.c; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using where; Using filesort +1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 1 Using where; Using filesort 1 SIMPLE t2 ref a a 515 test.t1.a 1 Using where SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND t1.b != 0 HAVING t1.c != 5 ORDER BY t1.c; @@ -690,7 +690,7 @@ SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND t1.b != 0 HAVING t1.c != 5 ORDER BY t1.c; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using where; Using filesort +1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 1 Using where; Using filesort 1 SIMPLE t2 ref a a 515 test.t1.a 1 Using where SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND t1.b != 0 HAVING t1.c != 5 ORDER BY t1.c; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/innodb_icp.test mariadb-10.3-10.3.20/mysql-test/main/innodb_icp.test --- mariadb-10.3-10.3.17/mysql-test/main/innodb_icp.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/innodb_icp.test 2019-11-06 16:01:56.000000000 +0000 @@ -3,6 +3,7 @@ # --source include/have_innodb.inc +--source include/default_optimizer_switch.inc set @save_storage_engine= @@storage_engine; set storage_engine=InnoDB; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/intersect.result mariadb-10.3-10.3.20/mysql-test/main/intersect.result --- mariadb-10.3-10.3.17/mysql-test/main/intersect.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/intersect.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,5 @@ +set @@join_buffer_size=256*1024; +set @save_optimizer_switch=@@optimizer_switch; create table t1 (a int, b int); create table t2 (c int, d int); insert into t1 values (1,1),(2,2); @@ -279,6 +281,7 @@ NULL INTERSECT RESULT ALL NULL NULL NULL NULL NULL NULL Warnings: Note 1003 /* select#1 */ select `a`.`a` AS `a`,`a`.`b` AS `b` from ((/* select#2 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1`) intersect (/* select#3 */ select `test`.`t2`.`c` AS `c`,`test`.`t3`.`e` AS `e` from `test`.`t2` join `test`.`t3`)) `a` +set @@optimizer_switch='optimize_join_buffer_size=off'; EXPLAIN format=json (select a,b from t1) intersect (select c,e from t2,t3); EXPLAIN { @@ -472,6 +475,7 @@ } } } +set @@optimizer_switch=@save_optimizer_switch; select * from ((select a,b from t1) intersect (select c,e from t2,t3)) a; a b 2 2 diff -Nru mariadb-10.3-10.3.17/mysql-test/main/intersect.test mariadb-10.3-10.3.20/mysql-test/main/intersect.test --- mariadb-10.3-10.3.17/mysql-test/main/intersect.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/intersect.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,7 @@ +# For explain +set @@join_buffer_size=256*1024; +set @save_optimizer_switch=@@optimizer_switch; + create table t1 (a int, b int); create table t2 (c int, d int); insert into t1 values (1,1),(2,2); @@ -38,11 +42,13 @@ EXPLAIN (select a,b from t1) intersect (select c,e from t2,t3); EXPLAIN extended (select a,b from t1) intersect (select c,e from t2,t3); EXPLAIN extended select * from ((select a,b from t1) intersect (select c,e from t2,t3)) a; +set @@optimizer_switch='optimize_join_buffer_size=off'; EXPLAIN format=json (select a,b from t1) intersect (select c,e from t2,t3); --replace_regex /"r_total_time_ms": [0-9e\.\-+]*,/"r_total_time_ms": "REPLACED",/ ANALYZE format=json (select a,b from t1) intersect (select c,e from t2,t3); --replace_regex /"r_total_time_ms": [0-9e\.\-+]*,/"r_total_time_ms": "REPLACED",/ ANALYZE format=json select * from ((select a,b from t1) intersect (select c,e from t2,t3)) a; +set @@optimizer_switch=@save_optimizer_switch; select * from ((select a,b from t1) intersect (select c,e from t2,t3)) a; prepare stmt from "(select a,b from t1) intersect (select c,e from t2,t3);"; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/invisible_field_debug.result mariadb-10.3-10.3.20/mysql-test/main/invisible_field_debug.result --- mariadb-10.3-10.3.17/mysql-test/main/invisible_field_debug.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/invisible_field_debug.result 2019-11-06 16:01:56.000000000 +0000 @@ -376,3 +376,15 @@ CREATE TABLE t2 LIKE t1; SET debug_dbug= DEFAULT; DROP TABLE t1, t2; +# +# MDEV-20210 +# If you have an INVISIBLE VIRTUAL column, SHOW CREATE TABLE doesn't list it as INVISIBLE +# +CREATE TABLE t1 (i INT, v int GENERATED ALWAYS AS (1) VIRTUAL INVISIBLE); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `i` int(11) DEFAULT NULL, + `v` int(11) GENERATED ALWAYS AS (1) VIRTUAL INVISIBLE +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/invisible_field_debug.test mariadb-10.3-10.3.20/mysql-test/main/invisible_field_debug.test --- mariadb-10.3-10.3.17/mysql-test/main/invisible_field_debug.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/invisible_field_debug.test 2019-11-06 16:01:56.000000000 +0000 @@ -278,3 +278,12 @@ CREATE TABLE t2 LIKE t1; SET debug_dbug= DEFAULT; DROP TABLE t1, t2; + +--echo # +--echo # MDEV-20210 +--echo # If you have an INVISIBLE VIRTUAL column, SHOW CREATE TABLE doesn't list it as INVISIBLE +--echo # + +CREATE TABLE t1 (i INT, v int GENERATED ALWAYS AS (1) VIRTUAL INVISIBLE); +SHOW CREATE TABLE t1; +DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/invisible_field.result mariadb-10.3-10.3.20/mysql-test/main/invisible_field.result --- mariadb-10.3-10.3.17/mysql-test/main/invisible_field.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/invisible_field.result 2019-11-06 16:01:56.000000000 +0000 @@ -538,7 +538,7 @@ insert into t2 values(1); select a,b from t2; a b -12 1 +NULL 1 drop table t1,t2; create table t1 (a int invisible, b int, c int); create table t2 (a int, b int, d int); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/join_cache.result mariadb-10.3-10.3.20/mysql-test/main/join_cache.result --- mariadb-10.3-10.3.17/mysql-test/main/join_cache.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/join_cache.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,12 +1,16 @@ DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11; DROP DATABASE IF EXISTS world; -set @save_optimizer_switch=@@optimizer_switch; +set @org_optimizer_switch=@@optimizer_switch; +set @save_join_cache_level=@@join_cache_level; +set @save_join_buffer_space_limit=@@join_buffer_space_limit; +set @save_join_buffer_size=@@join_buffer_size; +set @save_expensive_subquery_limit=@@expensive_subquery_limit; set @@optimizer_switch='optimize_join_buffer_size=on'; -set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on'; +set @@optimizer_switch='semijoin=on,firstmatch=on,loosescan=on'; set @@optimizer_switch='semijoin_with_cache=on'; set @@optimizer_switch='outer_join_with_cache=on'; -set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; -set @local_join_cache_test_optimizer_switch_default=@@optimizer_switch; +set @@optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +set @local_optimizer_switch=@@optimizer_switch; set names utf8; CREATE DATABASE world; use world; @@ -770,14 +774,8 @@ Lexington-Fayette United States English Louisville United States English Little Rock United States English -set join_cache_level=default; -set join_buffer_size=default; -show variables like 'join_buffer_size'; -Variable_name Value -join_buffer_size 262144 -show variables like 'join_cache_level'; -Variable_name Value -join_cache_level 2 +set join_cache_level=@save_join_cache_level; +set join_buffer_size=@save_join_buffer_size; DROP DATABASE world; CREATE DATABASE world; use world; @@ -2684,14 +2682,8 @@ Klaipeda ?iauliai Panevezys -set join_cache_level=default; -set join_buffer_size=default; -show variables like 'join_buffer_size'; -Variable_name Value -join_buffer_size 262144 -show variables like 'join_cache_level'; -Variable_name Value -join_cache_level 2 +set join_cache_level=@save_join_cache_level; +set join_buffer_size=@save_join_buffer_size; set join_cache_level=1; SELECT City.Name, Country.Name FROM City,Country WHERE City.Country=Country.Code AND City.Population > 3000000; @@ -2799,7 +2791,7 @@ Tianjin China Tokyo Japan Wuhan China -set join_buffer_size=default; +set join_buffer_size=@save_join_buffer_size; set join_cache_level=6; ALTER TABLE Country MODIFY Name varchar(52) NOT NULL default ''; SELECT City.Name, Country.Name FROM City,Country @@ -2883,8 +2875,8 @@ Klaipeda Lithuania xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ?iauliai Lithuania xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Panevezys Lithuania xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -set join_cache_level=default; -set join_buffer_size=default; +set join_cache_level=@save_join_cache_level; +set join_buffer_size=@save_join_buffer_size; # # MDEV-17752: Plan changes from hash_index_merge to index_merge with new optimizer defaults # @@ -2915,7 +2907,7 @@ 1 SIMPLE City hash_index_merge Population,Country,City_Name #hash#Country:Population,City_Name 3:4,35 world.Country.Code 96 Using sort_union(Population,City_Name); Using where; Using join buffer (flat, BNLH join) set @@optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; set @@use_stat_tables=@save_use_stat_tables; -set join_cache_level=default; +set @@join_cache_level=@save_join_cache_level; DROP DATABASE world; use test; CREATE TABLE t1( @@ -3103,6 +3095,8 @@ a2 int, b2 int, filler2 char(64) default ' ', PRIMARY KEY idx(a2,b2,filler2) ) ; +Warnings: +Warning 1280 Name 'idx' ignored for PRIMARY key. CREATE TABLE t3 (b3 int, c3 int, INDEX idx(b3)); INSERT INTO t1(a1) VALUES (4), (7), (1), (9), (8), (5), (3), (6), (2); @@ -3204,8 +3198,8 @@ # # Bug #40134: outer join with not exists optimization and join buffer # -set join_cache_level=default; -set join_buffer_size=default; +set join_cache_level=@save_join_cache_level; +set join_buffer_size=@save_join_buffer_size; CREATE TABLE t1 (a int NOT NULL); INSERT INTO t1 VALUES (2), (4), (3), (5), (1); CREATE TABLE t2 (a int NOT NULL, b int NOT NULL, INDEX i_a(a)); @@ -3233,8 +3227,8 @@ 5 NULL NULL 1 NULL NULL DROP TABLE t1, t2; -set join_cache_level=default; -set join_buffer_size=default; +set join_cache_level=@save_join_cache_level; +set join_buffer_size=@save_join_buffer_size; # # BUG#40136: Group by is ignored when join buffer is used for an outer join # @@ -3286,7 +3280,7 @@ 4 2 1 2 4 2 3 3 NULL NULL NULL NULL 5 3 NULL NULL NULL NULL -set join_cache_level=default; +set join_cache_level=@save_join_cache_level; DROP TABLE t2, t3, t4; # # Bug #40192: outer join with where clause when using BNL @@ -3310,7 +3304,7 @@ a b a c 3 30 3 102 2 20 NULL NULL -set join_cache_level=default; +set join_cache_level=@save_join_cache_level; drop table t1, t2; # # Bug #40317: outer join with with constant on expression equal to FALSE @@ -3337,7 +3331,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 3 1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where -set join_cache_level=default; +set join_cache_level=@save_join_cache_level; drop table t1, t2; # # Bug #41204: small buffer with big rec_per_key for ref access @@ -3376,8 +3370,8 @@ SELECT AVG(c) FROM t1,t2 WHERE t1.a=t2.b; AVG(c) 5.0000 -set join_buffer_size=default; -set join_cache_level=default; +set join_buffer_size=@save_join_buffer_size; +set join_cache_level=@save_join_cache_level; DROP TABLE t1, t2; # # Bug #41894: big join buffer of level 7 used to join records @@ -3419,8 +3413,8 @@ t1.b IS NULL AND t2.b IS NULL AND t3.b IS NULL; COUNT(*) 16384 -set join_buffer_size=default; -set join_cache_level=default; +set join_buffer_size=@save_join_buffer_size; +set join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3; # # Bug #42020: join buffer is used for outer join with fields of @@ -3519,8 +3513,8 @@ 2 2 2 60 60 0 2 2 2 70 70 0 2 2 2 80 80 0 -set join_buffer_size=default; -set join_cache_level=default; +set join_buffer_size=@save_join_buffer_size; +set join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3; create table t1(f1 int, f2 int); insert into t1 values (1,1),(2,2),(3,3); @@ -3607,7 +3601,7 @@ Handler_icp_attempts 80 Handler_icp_match 16 drop table t1,t2; -set join_cache_level=default; +set join_cache_level=@save_join_cache_level; # # Bug #42955: join with GROUP BY/ORDER BY and when BKA is enabled # @@ -3651,7 +3645,7 @@ 20 30 30 -set join_cache_level=default; +set join_cache_level=@save_join_cache_level; drop table t1,t2; # # Bug #44019: star-like multi-join query executed join_cache_level=6 @@ -3715,7 +3709,7 @@ where t2.b=t1.b and t3.d=t1.d and t4.c=t1.c; a b c d e f g 3 30 300 3000 bbb ddd ccc -set join_cache_level=default; +set join_cache_level=@save_join_cache_level; drop table t1,t2,t3,t4; # # Bug #44250: Corruption of linked join buffers when using BKA @@ -3799,8 +3793,8 @@ 228808822 3 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 2381969632 2482416112 0 228808822 28 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 2381969632 2482416112 0 228808822 62 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 2381969632 2482416112 0 -set join_buffer_size=default; -set join_cache_level=default; +set join_buffer_size=@save_join_buffer_size; +set join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3,t4,t5; # # Bug#45267: Incomplete check caused wrong result. @@ -3862,7 +3856,7 @@ 1 SIMPLE t2 index NULL int_key 4 NULL 2 Using index; Using join buffer (flat, BNL join) DROP TABLE t1,t2; -SET join_cache_level=default; +SET join_cache_level=@save_join_cache_level; # # Regression test for # Bug#46733 - NULL value not returned for aggregate on empty result @@ -3915,7 +3909,7 @@ WHERE t1.c2=LENGTH(t2.c2) and t1.c1=LENGTH(t2.c1); c1 c2 c1 c2 LENGTH(t2.c1) LENGTH(t2.c2) 2 2 tt uu 2 2 -set join_cache_level=default; +set join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; # # Bug #51092: linked join buffer is used for a 3-way cross join query @@ -3959,7 +3953,7 @@ 2 2 1 1 2 2 -set join_cache_level=default; +set join_cache_level=@save_join_cache_level; drop table t1,t2,t3; # # Bug #52394: using join buffer for 3 table join with ref access @@ -3988,7 +3982,7 @@ 27 27 DROP TABLE t1,t2,t3; -set join_cache_level=default; +set join_cache_level=@save_join_cache_level; # # Bug #51084: Batched key access crashes for SELECT with # derived table and LEFT JOIN @@ -4028,7 +4022,7 @@ 1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using join buffer (flat, BNL join) 1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.carrier 1 Using where 1 SIMPLE t4 ref carrier_id carrier_id 5 test.t3.id 2 Using index -SET join_cache_level=default; +SET join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3,t4; # # Bug #52636: allowing JOINs on NULL values w/ join_cache_level = 5-8 @@ -4092,7 +4086,7 @@ a NULL NULL -set join_cache_level = default; +set join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; # # Bug #54359: Extra rows with join_cache_level=7,8 and two joins @@ -4119,7 +4113,7 @@ a 9 9 -set join_cache_level = default; +set join_cache_level=@save_join_cache_level; DROP TABLE t1; # # Bug #54235: Extra rows with join_cache_level=6,8 and two LEFT JOINs @@ -4159,7 +4153,7 @@ a 2 1 -set join_cache_level = default; +set join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3,t4; # # Bug #663840: Memory overwrite causing crash with hash join @@ -4294,8 +4288,8 @@ 8 2009-01-13 z 5 1900-01-01 22:45:53 a 8 2009-01-13 z 5 1900-01-01 22:45:53 a DROP TABLE t1,t2,t3; -SET SESSION join_cache_level=DEFAULT; -SET SESSION join_buffer_size=DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; +SET SESSION join_buffer_size=@save_join_buffer_size; # # Bug #664508: 'Simple' GROUP BY + ORDER BY # when join buffers are used @@ -4440,7 +4434,7 @@ v p DROP TABLE t1,t2,t3; -SET SESSION join_cache_level=DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; # # Bug #668290: hash join with non-binary collations # @@ -4486,7 +4480,7 @@ i 6 6 -SET SESSION join_cache_level = DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; # # Bug #669382: hash join using a ref with constant key parts @@ -4511,8 +4505,8 @@ 1 SIMPLE t1 hash_ALL NULL #hash#$hj 5 test.t2.a 36 Using where; Using join buffer (flat, BNLH join) SELECT t1.a, t2.c FROM t1,t2 WHERE t1.a=t2.a AND t2.b=99; a c -SET SESSION join_cache_level = DEFAULT; -SET SESSION join_buffer_size = DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; +SET SESSION join_buffer_size=@save_join_buffer_size; DROP TABLE t1,t2; # # Bug #671901: hash join using a ref to a varchar field @@ -4580,7 +4574,7 @@ v i f 5 f 5 -SET SESSION join_cache_level = DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; # Bug #672497: 3 way join with tiny incremental join buffer with # and a ref access from the first table @@ -4649,8 +4643,8 @@ SELECT t3.i FROM t1,t2,t3 WHERE t1.v = t2.v AND t3.v = t1.v AND t2.i <> 0; i -SET SESSION join_cache_level = DEFAULT; -SET SESSION join_buffer_size = DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; +SET SESSION join_buffer_size=@save_join_buffer_size; DROP TABLE t1,t2,t3; # # Bug #672551: hash join over a long varchar field @@ -4704,7 +4698,7 @@ 2 aa 131 aa 3 bb 132 bb 2 aa 142 aa -SET SESSION join_cache_level = DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; # # Bug #674431: nested outer join when join_cache_level is set to 7 @@ -4725,8 +4719,8 @@ Warnings: Warning 1292 Truncated incorrect INTEGER value: 'h' Warning 1292 Truncated incorrect INTEGER value: 'j' -SET SESSION optimizer_switch = 'outer_join_with_cache=off'; -SET SESSION join_cache_level = DEFAULT; +SET SESSION optimizer_switch=@local_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3; # # Bug #52540: nested outer join when join_cache_level is set to 3 @@ -4746,8 +4740,8 @@ a a pk a f 2 2 NULL x 2 2 NULL -SET SESSION optimizer_switch = 'outer_join_with_cache=off'; -SET SESSION join_cache_level = DEFAULT; +SET SESSION optimizer_switch=@local_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3,t4; # # Bug #674423: outer join with ON expression over only outer tables @@ -4775,8 +4769,8 @@ SELECT * FROM t2 LEFT JOIN t1 ON t2.a <> 0 WHERE t1.a <> 0 OR t2.pk < 9; pk a a 1 NULL NULL -SET SESSION optimizer_switch = 'outer_join_with_cache=off'; -SET SESSION join_cache_level = DEFAULT; +SET SESSION optimizer_switch=@local_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; # # Bug #675095: nested outer join using join buffer @@ -4861,8 +4855,8 @@ 2 NULL 9 0 0 2 9 0 0 2 NULL NULL 8 0 2 NULL 9 0 0 2 1 0 0 7 NULL NULL 8 0 8 0 NULL NULL NULL NULL NULL NULL NULL NULL 8 0 NULL NULL -SET SESSION optimizer_switch = 'outer_join_with_cache=off'; -SET SESSION join_cache_level = DEFAULT; +SET SESSION optimizer_switch=@local_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3,t4,t5; # # Bug #675516: nested outer join with 3 tables in the nest @@ -4909,8 +4903,8 @@ ((t2 JOIN t3 ON t2.a2 = t3.b3) JOIN t4 ON t4.b4 <> 0) ON t1.c1 = t3.c3 WHERE t3.a3 IS NULL; a1 b1 c1 a2 a3 b3 c3 a4 b4 c4 -SET SESSION optimizer_switch = 'outer_join_with_cache=off'; -SET SESSION join_cache_level = DEFAULT; +SET SESSION optimizer_switch=@local_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3,t4; # # Bug #660963: nested outer join with join_cache_level set to 5 @@ -4944,8 +4938,8 @@ a1 a2 b2 a3 b3 0 2 1 2 1 0 2 1 2 1 -SET SESSION optimizer_switch = 'outer_join_with_cache=off'; -SET SESSION join_cache_level = DEFAULT; +SET SESSION optimizer_switch=@local_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3; # # Bug #675922: incremental buffer for BKA with access from previous @@ -4996,8 +4990,8 @@ a4 b5 9 0 9 NULL -SET SESSION optimizer_switch = 'outer_join_with_cache=off'; -SET SESSION join_cache_level = DEFAULT; +SET SESSION optimizer_switch=@local_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3,t4,t5; # # Bug #670380: hash join for non-binary collation @@ -5041,7 +5035,7 @@ 40 DD 112 dd 50 ee 113 EE 50 ee 114 ee -SET SESSION join_cache_level = DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; # # Bug #694092: incorrect detection of index only pushdown conditions @@ -5075,8 +5069,8 @@ SELECT * FROM t1,t2 WHERE t1.f1 = t2.f4 AND (t1.f3 = 1 AND t2.f3 = 4 OR t1.f3 = 2 AND t2.f3 = 6); f1 f3 f3 f2 f4 -SET SESSION join_cache_level = DEFAULT; -SET SESSION optimizer_switch = @local_join_cache_test_optimizer_switch_default; +SET SESSION join_cache_level=@save_join_cache_level; +SET SESSION optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2; CREATE TABLE t1 (f1 int, f2 varchar(10), KEY (f1), KEY (f2)) ; INSERT INTO t1 VALUES @@ -5098,7 +5092,7 @@ SELECT * FROM t1,t2 WHERE t2.f3 = t1.f2 AND t1.f1 IN (9, 0 ,100) ORDER BY t1.f2 LIMIT 1; f1 f2 f3 -SET SESSION optimizer_switch = @local_join_cache_test_optimizer_switch_default; +SET SESSION optimizer_switch=@local_optimizer_switch; SET SESSION optimizer_switch = 'index_condition_pushdown=on'; EXPLAIN SELECT * FROM t1,t2 WHERE t2.f3 = t1.f2 AND t1.f1 IN (9, 0 ,100) ORDER BY t1.f2 LIMIT 1; @@ -5108,7 +5102,7 @@ SELECT * FROM t1,t2 WHERE t2.f3 = t1.f2 AND t1.f1 IN (9, 0 ,100) ORDER BY t1.f2 LIMIT 1; f1 f2 f3 -SET SESSION optimizer_switch = @local_join_cache_test_optimizer_switch_default; +SET SESSION optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2; # # Bug #694443: hash join using IS NULL the an equi-join condition @@ -5154,7 +5148,7 @@ 2 NULL 41 1 NULL 42 2 NULL 42 -SET SESSION join_cache_level = DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; # # Bug #697557: hash join on a varchar field @@ -5176,7 +5170,7 @@ 1 SIMPLE t2 hash_ALL f1 #hash#f1 13 test.t1.f1 20 Using join buffer (flat, BNLH join) SELECT * FROM t1,t2 WHERE t2.f1 = t1.f1; f1 f2 f1 f2 -SET SESSION join_cache_level = DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; # # Bug #707827: hash join on varchar column with NULLs @@ -5210,8 +5204,8 @@ a 11 18 -SET SESSION join_cache_level = DEFAULT; -SET SESSION join_buffer_size = DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; +SET SESSION join_buffer_size=@save_join_buffer_size; DROP TABLE t1,t2; # # Bug #802860: crash on join cache + derived + duplicate_weedout @@ -5246,8 +5240,8 @@ WHERE t.a IN (SELECT t2.a FROM t2); a 0 -SET SESSION join_cache_level = DEFAULT; DROP TABLE t1, t2; +SET SESSION join_cache_level=@save_join_cache_level; # # Bug #887479: join_cache_level=3 + semijoin=on # @@ -5255,7 +5249,7 @@ INSERT INTO t1 VALUES (3914,17), (3710,5), (3888,20); CREATE TABLE t2 (c int, KEY (c)); INSERT INTO t2 VALUES (27), (17), (33), (20), (3), (7), (18), (2); -SET @tmp887479_optimizer_switch=@@optimizer_switch; +SET @tmp_optimizer_switch=@@optimizer_switch; SET SESSION optimizer_switch='semijoin=on'; SET SESSION optimizer_switch='semijoin_with_cache=on'; SET SESSION join_cache_level=1; @@ -5278,8 +5272,8 @@ a b 3914 17 3888 20 -SET SESSION join_cache_level = DEFAULT; -SET optimizer_switch=@tmp887479_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; +set @@optimizer_switch=@tmp_optimizer_switch; DROP TABLE t1,t2; # # Bug #899777: join_cache_level=4 + semijoin=on @@ -5325,8 +5319,8 @@ AND t1.a = 1; a b c 1 8 6 -SET SESSION join_cache_level = DEFAULT; -SET optimizer_switch=@tmp_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; +set @@optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2,t3,t4; # # Bug #899509: an attempt to use hash join with join_cache_level=0 @@ -5337,11 +5331,9 @@ INSERT INTO t2 VALUES (8), (7); CREATE TABLE t3 (a int); INSERT INTO t3 VALUES (8), (7); -SET @tmp_optimizer_switch=@@optimizer_switch; -set optimizer_switch=default; set @@optimizer_switch='semijoin_with_cache=off'; set @@optimizer_switch='outer_join_with_cache=off'; -SET optimizer_switch='derived_merge=off,derived_with_keys=off'; +set @@optimizer_switch='derived_merge=off,derived_with_keys=off'; SET join_cache_level=0; EXPLAIN SELECT * FROM (SELECT t1.* FROM t1, t2) t WHERE t.a IN (SELECT * FROM t3); @@ -5363,8 +5355,8 @@ 8 7 7 -SET SESSION join_cache_level = DEFAULT; -SET optimizer_switch=@tmp_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; +set @@optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2,t3; # # Bug #900469: semijoin + BNLH + ORDER BY @@ -5377,8 +5369,8 @@ CREATE TABLE t3 (c int, d int); INSERT INTO t3 VALUES (8,10); INSERT INTO t3 VALUES (9,11); -SET @tmp_optimizer_switch=@@optimizer_switch; set @@optimizer_switch='semijoin_with_cache=on'; +set @@optimizer_switch='firstmatch=off'; SET join_cache_level=1; EXPLAIN SELECT * FROM t1,t2 WHERE b IN (SELECT d FROM t3 WHERE c <= t2.c) ORDER BY a,d; @@ -5412,8 +5404,8 @@ a b c d 8 10 8 10 8 10 9 11 -SET SESSION join_cache_level = DEFAULT; -SET optimizer_switch=@tmp_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; +set @@optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2,t3; # # Bug #901478: semijoin + ORDER BY + join_cache_level=4|6 @@ -5431,7 +5423,6 @@ INSERT INTO t4 VALUES (19,11,10), (17,12,18), (12,13,15), (14,12,19), (18,13,18), (13,14,11), (15,15,14); -SET @tmp_optimizer_switch=@@optimizer_switch; SET @@optimizer_switch='semijoin=on'; SET @@optimizer_switch='firstmatch=off'; SET @@optimizer_switch='mrr=off'; @@ -5491,8 +5482,8 @@ a a b c x 4 2 9 x 5 5 4 -SET join_cache_level = DEFAULT; -SET optimizer_switch=@tmp_optimizer_switch; +set join_cache_level=@save_join_cache_level; +set @@optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2,t3,t4; # # Bug#53305 Duplicate weedout + join buffer (join cache --level=7,8) @@ -5511,11 +5502,10 @@ (1,1), (1,2), (1,3),(1,4), (2,5), (2,6), (2,7), (2,8), (3,1), (3,2), (3,9); -set @tmp_optimizer_switch=@@optimizer_switch; -set @@optimizer_switch='semijoin=on'; -set optimizer_switch='materialization=off'; -set optimizer_switch='loosescan=off,firstmatch=off'; -set optimizer_switch='mrr_sort_keys=off'; +set @@optimizer_switch='semijoin=on'; +set @@optimizer_switch='materialization=off'; +set @@optimizer_switch='loosescan=off,firstmatch=off'; +set @@optimizer_switch='mrr_sort_keys=off'; set join_cache_level=7; create table t4 (uid int primary key, name varchar(128), index(name)); insert into t4 values @@ -5544,8 +5534,8 @@ G H I -set join_cache_level = default; -set optimizer_switch=@tmp_optimizer_switch; +set join_cache_level=@save_join_cache_level; +set @@optimizer_switch=@local_optimizer_switch; drop table t1,t2,t3,t4; # # Bug#50358 - semijoin execution of subquery with outerjoin @@ -5557,9 +5547,8 @@ INSERT INTO t1 VALUES (1), (2); INSERT INTO t2 VALUES (6); INSERT INTO t3 VALUES (1), (2); -set @tmp_optimizer_switch=@@optimizer_switch; -set @@optimizer_switch='semijoin=on'; -set optimizer_switch='materialization=on'; +set @@optimizer_switch='semijoin=on'; +set @@optimizer_switch='materialization=on'; set join_cache_level=0; EXPLAIN SELECT * FROM t1 WHERE t1.i IN @@ -5588,8 +5577,8 @@ i 1 2 -set join_cache_level = default; -set optimizer_switch=@tmp_optimizer_switch; +set join_cache_level=@save_join_cache_level; +set @@optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2,t3; # # Bug #12546542: missing row with semijoin=off + join cache @@ -5603,9 +5592,8 @@ INSERT INTO t2 VALUES ('we',4,NULL), ('v',1305673728,6); CREATE TABLE t3 (b int, c int); INSERT INTO t3 VALUES (4,4); -set @tmp_optimizer_switch=@@optimizer_switch; -set optimizer_switch='semijoin=off'; -set optimizer_switch='materialization=off'; +set @@optimizer_switch='semijoin=off'; +set @@optimizer_switch='materialization=off'; set join_cache_level=0; EXPLAIN SELECT * FROM t1 @@ -5636,8 +5624,8 @@ a v we -set join_cache_level = default; -set optimizer_switch=@tmp_optimizer_switch; +set join_cache_level=@save_join_cache_level; +set @@optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2,t3; # # lp:925985 LEFT JOIN with optimize_join_buffer_size=off + @@ -5652,12 +5640,11 @@ (3,32), (1,12), (7,72), (2,22); CREATE TABLE t3 (b int, c int); INSERT INTO t3 VALUES (32, 302), (42,400), (30,300); -set @tmp_optimizer_switch=@@optimizer_switch; -set optimizer_switch='optimize_join_buffer_size=off'; +set @@optimizer_switch='optimize_join_buffer_size=off'; +set @@optimizer_switch='outer_join_with_cache=on'; set join_buffer_space_limit=4096; set join_buffer_size=4096*2; set join_cache_level=2; -set optimizer_switch='outer_join_with_cache=on'; EXPLAIN SELECT * FROM t1, t2 LEFT JOIN t3 ON t2.b=t3.b WHERE t1.a=t2.a; id select_type table type possible_keys key key_len ref rows Extra @@ -5669,10 +5656,10 @@ 3 3 30 30 300 3 3 31 NULL NULL 3 3 32 32 302 -set join_buffer_space_limit=default; -set join_buffer_size=default; -set join_cache_level=default; -set optimizer_switch=@tmp_optimizer_switch; +set join_buffer_space_limit=@save_join_buffer_space_limit; +set join_buffer_size=@save_join_buffer_size; +set join_cache_level=@save_join_cache_level; +set @@optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2,t3; # # Bug #1058071: LEFT JOIN using blobs @@ -5705,8 +5692,7 @@ INSERT INTO t2 VALUES (NULL); CREATE TABLE t3 (c int) ENGINE=Aria; INSERT INTO t3 VALUES (NULL); -set @tmp_optimizer_switch=@@optimizer_switch; -set optimizer_switch = 'outer_join_with_cache=on,join_cache_incremental=on'; +set @@optimizer_switch = 'outer_join_with_cache=on,join_cache_incremental=on'; set join_buffer_size=128; EXPLAIN SELECT 1 AS c FROM t1 NATURAL LEFT JOIN t2 LEFT OUTER JOIN t3 ON 1 @@ -5719,11 +5705,9 @@ GROUP BY elt(t1.col282,1,t1.col280); c 1 -set join_buffer_size=default; -set optimizer_switch=@tmp_optimizer_switch; DROP table t1,t2,t3; -set join_buffer_size= default; -set @@optimizer_switch=@save_optimizer_switch; +set join_buffer_size=@save_join_buffer_size; +set @@optimizer_switch=@org_optimizer_switch,@local_optimizer_switch= @org_optimizer_switch; # # MDEV-5293: outer join, join buffering, and order by - invalid query plan # @@ -5894,8 +5878,8 @@ 1 SIMPLE c25 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (incremental, BNL join) 1 SIMPLE c26 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (incremental, BNL join) 1 SIMPLE c27 ALL NULL NULL NULL NULL 1 Using where; Using join buffer (incremental, BNL join) -set join_buffer_size=default; -set join_cache_level = default; +set join_buffer_size=@save_join_buffer_size; +set join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; # # MDEV-14960: BNLH used for materialized semi-join @@ -5913,11 +5897,10 @@ INSERT INTO t2 SELECT * FROM t1; INSERT INTO t4 SELECT * FROM t1; INSERT INTO t5 SELECT * FROM t1; -set @save_optimizer_switch= @@optimizer_switch; SET join_cache_level = 6; SET join_buffer_size=4096; SET join_buffer_space_limit=4096; -SET optimizer_switch = 'join_cache_hashed=on,optimize_join_buffer_size=on'; +set @@optimizer_switch = 'join_cache_hashed=on,optimize_join_buffer_size=on'; EXPLAIN SELECT * FROM t1 WHERE i1 < 10 AND @@ -5950,10 +5933,10 @@ 7 8 9 -SET join_cache_level = default; -SET join_buffer_size = default; -SET join_buffer_space_limit= default; -set optimizer_switch=@save_optimizer_switch; +set join_cache_level=@save_join_cache_level; +SET join_buffer_size=@save_join_buffer_size; +SET join_buffer_space_limit=@save_join_buffer_space_limit; +set @@optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t4,t5,t2; # # MDEV-16603: BNLH for query with materialized semi-join @@ -5987,11 +5970,10 @@ Warnings: Note 1003 select `test`.`temp`.`f1` AS `f1`,`test`.`temp`.`f2` AS `f2` from `test`.`temp` semi join (`test`.`t2` join `test`.`t1`) where `test`.`temp`.`f1` = `test`.`t1`.`i1` and `test`.`t2`.`v1` = `test`.`t1`.`v1` and `test`.`temp`.`f2` = `test`.`t1`.`v1` DROP TABLE t1,t2,temp; -SET join_cache_level = default; +set join_cache_level=@save_join_cache_level; # # MDEV-5123 Remove duplicated conditions pushed both to join_tab->select_cond and join_tab->cache_select->cond for blocked joins. # -set join_cache_level=default; set expensive_subquery_limit=0; create table t1 (c1 int); create table t2 (c2 int); @@ -6034,7 +6016,7 @@ @counter 2 drop table t1,t2,t3; -set expensive_subquery_limit=default; +set expensive_subquery_limit=@save_expensive_subquery_limit; # # MDEV-6071: EXPLAIN chooses to use join buffer while execution turns it down # @@ -6046,17 +6028,11 @@ 1 SIMPLE t1 ALL NULL NULL NULL NULL 11 1 SIMPLE t2 ALL NULL NULL NULL NULL 11 Using where; Using join buffer (flat, BNL join) set join_buffer_space_limit=1024*8; -select @@join_buffer_space_limit; -@@join_buffer_space_limit -8192 -select @@join_buffer_size; -@@join_buffer_size -262144 explain select count(*) from t1, t1 t2 where t1.a=t2.a; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 11 1 SIMPLE t2 ALL NULL NULL NULL NULL 11 Using where -set join_buffer_space_limit=default; +set join_buffer_space_limit=@save_join_buffer_space_limit; drop table t1; # # MDEV-6687: Assertion `0' failed in Protocol::end_statement on query @@ -6070,7 +6046,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE PROFILING ALL NULL NULL NULL NULL NULL Using where 1 SIMPLE user hash_ALL NULL #hash#$hj 1 information_schema.PROFILING.PAGE_FAULTS_MINOR 4 Using where; Using join buffer (flat, BNLH join) -set join_cache_level=default; +set join_cache_level=@save_join_cache_level; create table t1 (c1 date not null, key (c1)) engine=innodb; insert t1 values ('2017-12-27'); create table t2 (pk int, f1 int, f2 int); @@ -6079,5 +6055,5 @@ select f2 from t2,t1 where f2 = 0; f2 drop table t1, t2; -set join_buffer_size = default; +set join_buffer_size=@save_join_buffer_size; set @@optimizer_switch=@save_optimizer_switch; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/join_cache.test mariadb-10.3-10.3.20/mysql-test/main/join_cache.test --- mariadb-10.3-10.3.17/mysql-test/main/join_cache.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/join_cache.test 2019-11-06 16:01:56.000000000 +0000 @@ -2,15 +2,22 @@ DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11; DROP DATABASE IF EXISTS world; --enable_warnings +--source include/default_optimizer_switch.inc +--source include/default_charset.inc + +set @org_optimizer_switch=@@optimizer_switch; +set @save_join_cache_level=@@join_cache_level; +set @save_join_buffer_space_limit=@@join_buffer_space_limit; +set @save_join_buffer_size=@@join_buffer_size; +set @save_expensive_subquery_limit=@@expensive_subquery_limit; -set @save_optimizer_switch=@@optimizer_switch; set @@optimizer_switch='optimize_join_buffer_size=on'; -set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on'; +set @@optimizer_switch='semijoin=on,firstmatch=on,loosescan=on'; set @@optimizer_switch='semijoin_with_cache=on'; set @@optimizer_switch='outer_join_with_cache=on'; -set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +set @@optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +set @local_optimizer_switch=@@optimizer_switch; -set @local_join_cache_test_optimizer_switch_default=@@optimizer_switch; set names utf8; CREATE DATABASE world; @@ -318,11 +325,8 @@ CountryLanguage.Percentage > 50 AND LENGTH(Language) < LENGTH(City.Name) - 2; -set join_cache_level=default; -set join_buffer_size=default; - -show variables like 'join_buffer_size'; -show variables like 'join_cache_level'; +set join_cache_level=@save_join_cache_level; +set join_buffer_size=@save_join_buffer_size; DROP DATABASE world; @@ -911,11 +915,8 @@ WHERE City.Country IN (SELECT Code FROM Country WHERE Country.Name LIKE 'L%') AND City.Population > 100000; -set join_cache_level=default; -set join_buffer_size=default; - -show variables like 'join_buffer_size'; -show variables like 'join_cache_level'; +set join_cache_level=@save_join_cache_level; +set join_buffer_size=@save_join_buffer_size; set join_cache_level=1; @@ -934,7 +935,7 @@ SELECT City.Name, Country.Name FROM City,Country WHERE City.Country=Country.Code AND City.Population > 3000000; -set join_buffer_size=default; +set join_buffer_size=@save_join_buffer_size; set join_cache_level=6; @@ -964,8 +965,8 @@ WHERE City.Country=Country.Code AND Country.Name LIKE 'L%' AND City.Population > 100000; -set join_cache_level=default; -set join_buffer_size=default; +set join_cache_level=@save_join_cache_level; +set join_buffer_size=@save_join_buffer_size; --echo # @@ -999,7 +1000,7 @@ WHERE Country.Name LIKE 'C%' AND Country.Population > 10000000; set @@optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; set @@use_stat_tables=@save_use_stat_tables; -set join_cache_level=default; +set @@join_cache_level=@save_join_cache_level; DROP DATABASE world; @@ -1272,8 +1273,8 @@ --echo # Bug #40134: outer join with not exists optimization and join buffer --echo # -set join_cache_level=default; -set join_buffer_size=default; +set join_cache_level=@save_join_cache_level; +set join_buffer_size=@save_join_buffer_size; CREATE TABLE t1 (a int NOT NULL); INSERT INTO t1 VALUES (2), (4), (3), (5), (1); @@ -1292,8 +1293,8 @@ DROP TABLE t1, t2; -set join_cache_level=default; -set join_buffer_size=default; +set join_cache_level=@save_join_cache_level; +set join_buffer_size=@save_join_buffer_size; --echo # --echo # BUG#40136: Group by is ignored when join buffer is used for an outer join @@ -1335,7 +1336,7 @@ FROM t2 LEFT JOIN (t3, t4) ON t2.b=t4.b WHERE t3.a+2 200 order by t1.id1; -set join_cache_level=default; +set join_cache_level=@save_join_cache_level; drop table t1,t2; @@ -1692,7 +1693,7 @@ select t1.a, t1.b, t1.c, t1.d, t2.e, t3.f, t4.g from t1,t2,t3,t4 where t2.b=t1.b and t3.d=t1.d and t4.c=t1.c; -set join_cache_level=default; +set join_cache_level=@save_join_cache_level; drop table t1,t2,t3,t4; @@ -2081,8 +2082,8 @@ WHERE t1.id1=t5.id1 AND t1.id2=t5.id2 and t4.id2=t1.id2 AND t5.enum2='Active' AND t3.id4=t2.id4 AND t2.id3=t1.id3 AND t3.text1<'D'; -set join_buffer_size=default; -set join_cache_level=default; +set join_buffer_size=@save_join_buffer_size; +set join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3,t4,t5; @@ -2153,7 +2154,7 @@ DROP TABLE t1,t2; -SET join_cache_level=default; +SET join_cache_level=@save_join_cache_level; --echo # --echo # Regression test for @@ -2216,7 +2217,7 @@ SELECT t1.*, t2.*, LENGTH(t2.c1), LENGTH(t2.c2) FROM t1,t2 WHERE t1.c2=LENGTH(t2.c2) and t1.c1=LENGTH(t2.c1); -set join_cache_level=default; +set join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; @@ -2242,7 +2243,7 @@ explain select t1.* from t1,t2,t3; select t1.* from t1,t2,t3; -set join_cache_level=default; +set join_cache_level=@save_join_cache_level; drop table t1,t2,t3; @@ -2271,7 +2272,7 @@ DROP TABLE t1,t2,t3; -set join_cache_level=default; +set join_cache_level=@save_join_cache_level; --echo # --echo # Bug #51084: Batched key access crashes for SELECT with @@ -2313,7 +2314,7 @@ FROM (t2 JOIN t1) LEFT JOIN (t3 JOIN t4 ON t3.id = t4.carrier_id) ON t3.carrier = t1.carrier; -SET join_cache_level=default; +SET join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3,t4; @@ -2367,7 +2368,7 @@ --sorted_result SELECT t2.a FROM t1 LEFT JOIN t2 ON t2.b = t1.b; -set join_cache_level = default; +set join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; --echo # @@ -2395,7 +2396,7 @@ SELECT t.a FROM t1 t, t1 s FORCE INDEX(idx) WHERE s.pk AND s.a >= t.pk AND s.b = t.c; -set join_cache_level = default; +set join_cache_level=@save_join_cache_level; DROP TABLE t1; --echo # @@ -2426,7 +2427,7 @@ FROM t1 LEFT JOIN (t2 LEFT JOIN (t3 LEFT JOIN t4 ON 1) ON t2.a) ON 0 WHERE t1.a OR t4.a; -set join_cache_level = default; +set join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3,t4; --echo # @@ -2484,8 +2485,8 @@ DROP TABLE t1,t2,t3; -SET SESSION join_cache_level=DEFAULT; -SET SESSION join_buffer_size=DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; +SET SESSION join_buffer_size=@save_join_buffer_size; --echo # @@ -2593,7 +2594,7 @@ DROP TABLE t1,t2,t3; -SET SESSION join_cache_level=DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; --echo # --echo # Bug #668290: hash join with non-binary collations @@ -2634,7 +2635,7 @@ SELECT t2.i FROM t1,t2 WHERE t1.cu = t2.cl ; SELECT t2.i FROM t1,t2 WHERE t1.cu = t2.cl ; -SET SESSION join_cache_level = DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; @@ -2662,8 +2663,8 @@ SELECT t1.a, t2.c FROM t1,t2 WHERE t1.a=t2.a AND t2.b=99; SELECT t1.a, t2.c FROM t1,t2 WHERE t1.a=t2.a AND t2.b=99; -SET SESSION join_cache_level = DEFAULT; -SET SESSION join_buffer_size = DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; +SET SESSION join_buffer_size=@save_join_buffer_size; DROP TABLE t1,t2; @@ -2712,7 +2713,7 @@ SELECT t1.v,t2.i FROM t1,t2 WHERE t2.v = concat(t1.v, t1.v); SELECT t1.v,t2.i FROM t1,t2 WHERE t2.v = concat(t1.v, t1.v); -SET SESSION join_cache_level = DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; @@ -2785,8 +2786,8 @@ SELECT t3.i FROM t1,t2,t3 WHERE t1.v = t2.v AND t3.v = t1.v AND t2.i <> 0; -SET SESSION join_cache_level = DEFAULT; -SET SESSION join_buffer_size = DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; +SET SESSION join_buffer_size=@save_join_buffer_size; DROP TABLE t1,t2,t3; @@ -2822,7 +2823,7 @@ SELECT * FROM t1,t2 WHERE t2.a=t1.a; SELECT * FROM t1,t2 WHERE t2.a=t1.a; -SET SESSION join_cache_level = DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; @@ -2844,8 +2845,8 @@ (t2 LEFT OUTER JOIN t3 ON t2.b = t3.b) ON t2.a = t1.b WHERE t3.a BETWEEN 3 AND 11 OR t1.a <= t2.c; -SET SESSION optimizer_switch = 'outer_join_with_cache=off'; -SET SESSION join_cache_level = DEFAULT; +SET SESSION optimizer_switch=@local_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3; @@ -2868,8 +2869,8 @@ FROM t2 LEFT JOIN ((t1 JOIN t3 ON t1.a = t3.pk) LEFT JOIN t4 ON 1) ON 1; -SET SESSION optimizer_switch = 'outer_join_with_cache=off'; -SET SESSION join_cache_level = DEFAULT; +SET SESSION optimizer_switch=@local_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3,t4; @@ -2895,8 +2896,8 @@ SELECT * FROM t2 LEFT JOIN t1 ON t2.a <> 0 WHERE t1.a <> 0 OR t2.pk < 9; SELECT * FROM t2 LEFT JOIN t1 ON t2.a <> 0 WHERE t1.a <> 0 OR t2.pk < 9; -SET SESSION optimizer_switch = 'outer_join_with_cache=off'; -SET SESSION join_cache_level = DEFAULT; +SET SESSION optimizer_switch=@local_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; @@ -2955,8 +2956,8 @@ FROM ((t1 LEFT JOIN (t2 JOIN t3 ON t2.c2 = t3.a3) ON t1.pk = t2.d2) LEFT JOIN t4 ON t1.a1 = t4.a4) LEFT JOIN t5 ON t3.a3 = t5.a5; -SET SESSION optimizer_switch = 'outer_join_with_cache=off'; -SET SESSION join_cache_level = DEFAULT; +SET SESSION optimizer_switch=@local_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3,t4,t5; @@ -3001,8 +3002,8 @@ ((t2 JOIN t3 ON t2.a2 = t3.b3) JOIN t4 ON t4.b4 <> 0) ON t1.c1 = t3.c3 WHERE t3.a3 IS NULL; -SET SESSION optimizer_switch = 'outer_join_with_cache=off'; -SET SESSION join_cache_level = DEFAULT; +SET SESSION optimizer_switch=@local_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3,t4; @@ -3031,8 +3032,8 @@ SELECT * FROM t1 LEFT JOIN t2 JOIN t3 ON t3.a3 = t2.a2 ON t3.b3 <> 0; SELECT * FROM t1 LEFT JOIN t2 JOIN t3 ON t3.a3 = t2.a2 ON t3.b3 <> 0; -SET SESSION optimizer_switch = 'outer_join_with_cache=off'; -SET SESSION join_cache_level = DEFAULT; +SET SESSION optimizer_switch=@local_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3; @@ -3076,8 +3077,8 @@ FROM ((t1 LEFT JOIN (t2 JOIN t3 ON t2.a2 = t3.a3) ON t2.b2 = t1.a1) LEFT JOIN t4 ON t4.a4 <> 0) LEFT JOIN t5 ON t5.a5 = t2.a2; -SET SESSION optimizer_switch = 'outer_join_with_cache=off'; -SET SESSION join_cache_level = DEFAULT; +SET SESSION optimizer_switch=@local_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2,t3,t4,t5; @@ -3104,7 +3105,7 @@ SELECT * FROM t1,t2 WHERE t1.a=t2.a; SELECT * FROM t1,t2 WHERE t1.a=t2.a; -SET SESSION join_cache_level = DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; @@ -3138,8 +3139,8 @@ SELECT * FROM t1,t2 WHERE t1.f1 = t2.f4 AND (t1.f3 = 1 AND t2.f3 = 4 OR t1.f3 = 2 AND t2.f3 = 6); -SET SESSION join_cache_level = DEFAULT; -SET SESSION optimizer_switch = @local_join_cache_test_optimizer_switch_default; +SET SESSION join_cache_level=@save_join_cache_level; +SET SESSION optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2; @@ -3165,7 +3166,7 @@ WHERE t2.f3 = t1.f2 AND t1.f1 IN (9, 0, 100) ORDER BY t1.f2 LIMIT 1; SELECT * FROM t1,t2 WHERE t2.f3 = t1.f2 AND t1.f1 IN (9, 0 ,100) ORDER BY t1.f2 LIMIT 1; -SET SESSION optimizer_switch = @local_join_cache_test_optimizer_switch_default; +SET SESSION optimizer_switch=@local_optimizer_switch; SET SESSION optimizer_switch = 'index_condition_pushdown=on'; EXPLAIN SELECT * FROM t1,t2 @@ -3173,7 +3174,7 @@ SELECT * FROM t1,t2 WHERE t2.f3 = t1.f2 AND t1.f1 IN (9, 0 ,100) ORDER BY t1.f2 LIMIT 1; -SET SESSION optimizer_switch = @local_join_cache_test_optimizer_switch_default; +SET SESSION optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2; @@ -3202,8 +3203,7 @@ SELECT * FROM t1,t2 WHERE t1.a < 3 and t2.a IS NULL; SELECT * FROM t1,t2 WHERE t1.a < 3 and t2.a IS NULL; - -SET SESSION join_cache_level = DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; @@ -3229,7 +3229,7 @@ SELECT * FROM t1,t2 WHERE t2.f1 = t1.f1; SELECT * FROM t1,t2 WHERE t2.f1 = t1.f1; -SET SESSION join_cache_level = DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; @@ -3259,8 +3259,8 @@ SELECT a FROM t1,t2 WHERE t2.v = t1.v ; SELECT a FROM t1,t2 WHERE t2.v = t1.v ; -SET SESSION join_cache_level = DEFAULT; -SET SESSION join_buffer_size = DEFAULT; +SET SESSION join_cache_level=@save_join_cache_level; +SET SESSION join_buffer_size=@save_join_buffer_size; DROP TABLE t1,t2; @@ -3293,10 +3293,12 @@ SELECT * FROM (SELECT DISTINCT * FROM t1) t WHERE t.a IN (SELECT t2.a FROM t2); -SET SESSION join_cache_level = DEFAULT; - DROP TABLE t1, t2; +SET SESSION join_cache_level=@save_join_cache_level; + +# Note that next tests are run with same optimizer_switch as previous one! + --echo # --echo # Bug #887479: join_cache_level=3 + semijoin=on --echo # @@ -3307,7 +3309,7 @@ CREATE TABLE t2 (c int, KEY (c)); INSERT INTO t2 VALUES (27), (17), (33), (20), (3), (7), (18), (2); -SET @tmp887479_optimizer_switch=@@optimizer_switch; +SET @tmp_optimizer_switch=@@optimizer_switch; SET SESSION optimizer_switch='semijoin=on'; SET SESSION optimizer_switch='semijoin_with_cache=on'; @@ -3321,8 +3323,8 @@ SELECT * FROM t1 WHERE (t1.b) IN (SELECT c FROM t2); SELECT * FROM t1 WHERE (t1.b) IN (SELECT c FROM t2); -SET SESSION join_cache_level = DEFAULT; -SET optimizer_switch=@tmp887479_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; +set @@optimizer_switch=@tmp_optimizer_switch; DROP TABLE t1,t2; @@ -3361,8 +3363,8 @@ WHERE (t1.b,t2.b) IN (SELECT t3.b,t4.b FROM t3,t4 WHERE t4.c=t3.b) AND t1.a = 1; -SET SESSION join_cache_level = DEFAULT; -SET optimizer_switch=@tmp_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; +set @@optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2,t3,t4; @@ -3377,11 +3379,9 @@ CREATE TABLE t3 (a int); INSERT INTO t3 VALUES (8), (7); -SET @tmp_optimizer_switch=@@optimizer_switch; -set optimizer_switch=default; set @@optimizer_switch='semijoin_with_cache=off'; set @@optimizer_switch='outer_join_with_cache=off'; -SET optimizer_switch='derived_merge=off,derived_with_keys=off'; +set @@optimizer_switch='derived_merge=off,derived_with_keys=off'; SET join_cache_level=0; EXPLAIN @@ -3390,8 +3390,8 @@ SELECT * FROM ( SELECT ta.* FROM t1 AS ta, t1 ) tb WHERE a IN ( SELECT * FROM t1 ); -SET SESSION join_cache_level = DEFAULT; -SET optimizer_switch=@tmp_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; +set @@optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2,t3; @@ -3410,8 +3410,8 @@ INSERT INTO t3 VALUES (8,10); INSERT INTO t3 VALUES (9,11); -SET @tmp_optimizer_switch=@@optimizer_switch; set @@optimizer_switch='semijoin_with_cache=on'; +set @@optimizer_switch='firstmatch=off'; SET join_cache_level=1; EXPLAIN @@ -3428,8 +3428,8 @@ SELECT * FROM t1,t2 WHERE b IN (SELECT d FROM t3 WHERE c <= t2.c) ORDER BY a,d; SELECT * FROM t1,t2 WHERE b IN (SELECT d FROM t3 WHERE c <= t2.c) ORDER BY a,d; -SET SESSION join_cache_level = DEFAULT; -SET optimizer_switch=@tmp_optimizer_switch; +SET SESSION join_cache_level=@save_join_cache_level; +set @@optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2,t3; @@ -3451,7 +3451,6 @@ (19,11,10), (17,12,18), (12,13,15), (14,12,19), (18,13,18), (13,14,11), (15,15,14); -SET @tmp_optimizer_switch=@@optimizer_switch; SET @@optimizer_switch='semijoin=on'; SET @@optimizer_switch='firstmatch=off'; SET @@optimizer_switch='mrr=off'; @@ -3491,8 +3490,8 @@ t2.a BETWEEN 4 and 5 ORDER BY t2.b; -SET join_cache_level = DEFAULT; -SET optimizer_switch=@tmp_optimizer_switch; +set join_cache_level=@save_join_cache_level; +set @@optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2,t3,t4; @@ -3517,11 +3516,10 @@ (2,5), (2,6), (2,7), (2,8), (3,1), (3,2), (3,9); -set @tmp_optimizer_switch=@@optimizer_switch; -set @@optimizer_switch='semijoin=on'; -set optimizer_switch='materialization=off'; -set optimizer_switch='loosescan=off,firstmatch=off'; -set optimizer_switch='mrr_sort_keys=off'; +set @@optimizer_switch='semijoin=on'; +set @@optimizer_switch='materialization=off'; +set @@optimizer_switch='loosescan=off,firstmatch=off'; +set @@optimizer_switch='mrr_sort_keys=off'; set join_cache_level=7; create table t4 (uid int primary key, name varchar(128), index(name)); @@ -3538,8 +3536,8 @@ where t1.uid in (select t4.uid from t4, t3 where t3.uid=1 and t4.uid=t3.fid) and t2.uid=t1.fid; -set join_cache_level = default; -set optimizer_switch=@tmp_optimizer_switch; +set join_cache_level=@save_join_cache_level; +set @@optimizer_switch=@local_optimizer_switch; drop table t1,t2,t3,t4; @@ -3555,9 +3553,8 @@ INSERT INTO t2 VALUES (6); INSERT INTO t3 VALUES (1), (2); -set @tmp_optimizer_switch=@@optimizer_switch; -set @@optimizer_switch='semijoin=on'; -set optimizer_switch='materialization=on'; +set @@optimizer_switch='semijoin=on'; +set @@optimizer_switch='materialization=on'; set join_cache_level=0; EXPLAIN @@ -3573,8 +3570,8 @@ SELECT * FROM t1 WHERE t1.i IN (SELECT t3.i FROM t3 LEFT JOIN t2 ON t2.i=t3.i); -set join_cache_level = default; -set optimizer_switch=@tmp_optimizer_switch; +set join_cache_level=@save_join_cache_level; +set @@optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2,t3; @@ -3592,9 +3589,8 @@ CREATE TABLE t3 (b int, c int); INSERT INTO t3 VALUES (4,4); -set @tmp_optimizer_switch=@@optimizer_switch; -set optimizer_switch='semijoin=off'; -set optimizer_switch='materialization=off'; +set @@optimizer_switch='semijoin=off'; +set @@optimizer_switch='materialization=off'; set join_cache_level=0; EXPLAIN @@ -3615,8 +3611,8 @@ WHERE a IN (SELECT t2.a FROM t2 LEFT JOIN t3 ON t2.b = t3.b WHERE t2.c < 10 OR t3.c > 1); -set join_cache_level = default; -set optimizer_switch=@tmp_optimizer_switch; +set join_cache_level=@save_join_cache_level; +set @@optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2,t3; @@ -3637,21 +3633,20 @@ CREATE TABLE t3 (b int, c int); INSERT INTO t3 VALUES (32, 302), (42,400), (30,300); -set @tmp_optimizer_switch=@@optimizer_switch; -set optimizer_switch='optimize_join_buffer_size=off'; +set @@optimizer_switch='optimize_join_buffer_size=off'; +set @@optimizer_switch='outer_join_with_cache=on'; set join_buffer_space_limit=4096; set join_buffer_size=4096*2; set join_cache_level=2; -set optimizer_switch='outer_join_with_cache=on'; EXPLAIN SELECT * FROM t1, t2 LEFT JOIN t3 ON t2.b=t3.b WHERE t1.a=t2.a; SELECT * FROM t1, t2 LEFT JOIN t3 ON t2.b=t3.b WHERE t1.a=t2.a; -set join_buffer_space_limit=default; -set join_buffer_size=default; -set join_cache_level=default; -set optimizer_switch=@tmp_optimizer_switch; +set join_buffer_space_limit=@save_join_buffer_space_limit; +set join_buffer_size=@save_join_buffer_size; +set join_cache_level=@save_join_cache_level; +set @@optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2,t3; @@ -3688,8 +3683,7 @@ CREATE TABLE t3 (c int) ENGINE=Aria; INSERT INTO t3 VALUES (NULL); -set @tmp_optimizer_switch=@@optimizer_switch; -set optimizer_switch = 'outer_join_with_cache=on,join_cache_incremental=on'; +set @@optimizer_switch = 'outer_join_with_cache=on,join_cache_incremental=on'; set join_buffer_size=128; EXPLAIN @@ -3699,12 +3693,14 @@ SELECT 1 AS c FROM t1 NATURAL LEFT JOIN t2 LEFT OUTER JOIN t3 ON 1 GROUP BY elt(t1.col282,1,t1.col280); -set join_buffer_size=default; -set optimizer_switch=@tmp_optimizer_switch; - DROP table t1,t2,t3; -set join_buffer_size= default; -set @@optimizer_switch=@save_optimizer_switch; +set join_buffer_size=@save_join_buffer_size; + +# +# --echo switch to use orginal test suite optimizer switch +# + +set @@optimizer_switch=@org_optimizer_switch,@local_optimizer_switch= @org_optimizer_switch; --echo # @@ -3853,8 +3849,8 @@ ORDER BY col1; -set join_buffer_size=default; -set join_cache_level = default; +set join_buffer_size=@save_join_buffer_size; +set join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; @@ -3877,11 +3873,10 @@ INSERT INTO t4 SELECT * FROM t1; INSERT INTO t5 SELECT * FROM t1; -set @save_optimizer_switch= @@optimizer_switch; SET join_cache_level = 6; SET join_buffer_size=4096; SET join_buffer_space_limit=4096; -SET optimizer_switch = 'join_cache_hashed=on,optimize_join_buffer_size=on'; +set @@optimizer_switch = 'join_cache_hashed=on,optimize_join_buffer_size=on'; let $q= SELECT * FROM t1 @@ -3896,10 +3891,10 @@ eval EXPLAIN $q; eval $q; -SET join_cache_level = default; -SET join_buffer_size = default; -SET join_buffer_space_limit= default; -set optimizer_switch=@save_optimizer_switch; +set join_cache_level=@save_join_cache_level; +SET join_buffer_size=@save_join_buffer_size; +SET join_buffer_space_limit=@save_join_buffer_space_limit; +set @@optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t4,t5,t2; @@ -3932,13 +3927,12 @@ DROP TABLE t1,t2,temp; -SET join_cache_level = default; +set join_cache_level=@save_join_cache_level; --echo # --echo # MDEV-5123 Remove duplicated conditions pushed both to join_tab->select_cond and join_tab->cache_select->cond for blocked joins. --echo # -set join_cache_level=default; set expensive_subquery_limit=0; create table t1 (c1 int); @@ -3976,7 +3970,7 @@ select @counter; drop table t1,t2,t3; -set expensive_subquery_limit=default; +set expensive_subquery_limit=@save_expensive_subquery_limit; --echo # --echo # MDEV-6071: EXPLAIN chooses to use join buffer while execution turns it down @@ -3989,12 +3983,10 @@ explain select count(*) from t1, t1 t2 where t1.a=t2.a; set join_buffer_space_limit=1024*8; -select @@join_buffer_space_limit; -select @@join_buffer_size; explain select count(*) from t1, t1 t2 where t1.a=t2.a; -set join_buffer_space_limit=default; +set join_buffer_space_limit=@save_join_buffer_space_limit; drop table t1; @@ -4008,7 +4000,7 @@ explain SELECT * FROM INFORMATION_SCHEMA.PROFILING, mysql.user WHERE password_expired = PAGE_FAULTS_MINOR; -set join_cache_level=default; +set join_cache_level=@save_join_cache_level; # # MDEV-12580 Wrong query result in join when using an index (Version > "10.2.3") @@ -4020,7 +4012,7 @@ set join_buffer_size = 222222208; select f2 from t2,t1 where f2 = 0; drop table t1, t2; -set join_buffer_size = default; +set join_buffer_size=@save_join_buffer_size; -# The following command must be the last one the file +# The following command must be the last one in the file set @@optimizer_switch=@save_optimizer_switch; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/join_nested_jcl6.result mariadb-10.3-10.3.20/mysql-test/main/join_nested_jcl6.result --- mariadb-10.3-10.3.17/mysql-test/main/join_nested_jcl6.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/join_nested_jcl6.result 2019-11-06 16:01:56.000000000 +0000 @@ -4,9 +4,7 @@ set @@optimizer_switch='outer_join_with_cache=on'; set @@optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; set join_cache_level=6; -show variables like 'join_cache_level'; -Variable_name Value -join_cache_level 6 +set optimizer_search_depth=62; set @optimizer_switch_for_join_nested_test=@@optimizer_switch; set @join_cache_level_for_join_nested_test=@@join_cache_level; DROP TABLE IF EXISTS t0,t1,t2,t3,t4,t5,t6,t7,t8,t9; @@ -2116,9 +2114,6 @@ 3 2 NULL NULL NULL NULL NULL NULL DROP TABLE t5,t6,t7,t8; set join_cache_level=default; -show variables like 'join_cache_level'; -Variable_name Value -join_cache_level 2 set @@optimizer_switch=@save_optimizer_switch_jcl6; set @optimizer_switch_for_join_nested_test=NULL; set @join_cache_level_for_join_nested_test=NULL; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/join_nested_jcl6.test mariadb-10.3-10.3.20/mysql-test/main/join_nested_jcl6.test --- mariadb-10.3-10.3.17/mysql-test/main/join_nested_jcl6.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/join_nested_jcl6.test 2019-11-06 16:01:56.000000000 +0000 @@ -9,7 +9,7 @@ set @@optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; set join_cache_level=6; -show variables like 'join_cache_level'; +set optimizer_search_depth=62; set @optimizer_switch_for_join_nested_test=@@optimizer_switch; set @join_cache_level_for_join_nested_test=@@join_cache_level; @@ -104,7 +104,6 @@ DROP TABLE t5,t6,t7,t8; set join_cache_level=default; -show variables like 'join_cache_level'; set @@optimizer_switch=@save_optimizer_switch_jcl6; set @optimizer_switch_for_join_nested_test=NULL; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/join_outer_innodb.test mariadb-10.3-10.3.20/mysql-test/main/join_outer_innodb.test --- mariadb-10.3-10.3.17/mysql-test/main/join_outer_innodb.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/join_outer_innodb.test 2019-11-06 16:01:56.000000000 +0000 @@ -3,6 +3,7 @@ # --source include/have_innodb.inc +--source include/default_optimizer_switch.inc # # Test for bug #17164: ORed FALSE blocked conversion of outer join into join diff -Nru mariadb-10.3-10.3.17/mysql-test/main/join_outer_jcl6.result mariadb-10.3-10.3.20/mysql-test/main/join_outer_jcl6.result --- mariadb-10.3-10.3.17/mysql-test/main/join_outer_jcl6.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/join_outer_jcl6.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,16 +1,12 @@ -set @save_optimizer_switch_jcl6=@@optimizer_switch; set @@optimizer_switch='optimize_join_buffer_size=on'; set @@optimizer_switch='semijoin_with_cache=on'; set @@optimizer_switch='outer_join_with_cache=on'; -set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; -set join_cache_level=6; -show variables like 'join_cache_level'; -Variable_name Value -join_cache_level 6 +set @@optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +set @@join_cache_level=6; set @optimizer_switch_for_join_outer_test=@@optimizer_switch; set @join_cache_level_for_join_outer_test=@@join_cache_level; drop table if exists t0,t1,t2,t3,t4,t5; -SET @save_optimizer_switch=@@optimizer_switch; +SET @org_optimizer_switch=@@optimizer_switch; SET optimizer_switch=ifnull(@optimizer_switch_for_join_outer_test,'outer_join_with_cache=off'); set join_cache_level=@join_cache_level_for_join_outer_test; CREATE TABLE t1 ( @@ -2762,11 +2758,4 @@ 1 drop view v4; drop table t1,t2,t3,t4; -SET optimizer_switch=@save_optimizer_switch; -set join_cache_level=default; -show variables like 'join_cache_level'; -Variable_name Value -join_cache_level 2 -set @@optimizer_switch=@save_optimizer_switch_jcl6; -set @optimizer_switch_for_join_outer_test=NULL; -set @join_cache_level_for_join_outer_test=NULL; +SET optimizer_switch=@org_optimizer_switch; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/join_outer_jcl6.test mariadb-10.3-10.3.20/mysql-test/main/join_outer_jcl6.test --- mariadb-10.3-10.3.17/mysql-test/main/join_outer_jcl6.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/join_outer_jcl6.test 2019-11-06 16:01:56.000000000 +0000 @@ -2,23 +2,15 @@ # Run join_outer.test with BKA enabled # -set @save_optimizer_switch_jcl6=@@optimizer_switch; +--source include/default_optimizer_switch.inc + set @@optimizer_switch='optimize_join_buffer_size=on'; set @@optimizer_switch='semijoin_with_cache=on'; set @@optimizer_switch='outer_join_with_cache=on'; -set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; - -set join_cache_level=6; -show variables like 'join_cache_level'; +set @@optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +set @@join_cache_level=6; set @optimizer_switch_for_join_outer_test=@@optimizer_switch; set @join_cache_level_for_join_outer_test=@@join_cache_level; --source join_outer.test - -set join_cache_level=default; -show variables like 'join_cache_level'; - -set @@optimizer_switch=@save_optimizer_switch_jcl6; -set @optimizer_switch_for_join_outer_test=NULL; -set @join_cache_level_for_join_outer_test=NULL; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/join_outer.result mariadb-10.3-10.3.20/mysql-test/main/join_outer.result --- mariadb-10.3-10.3.17/mysql-test/main/join_outer.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/join_outer.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,5 +1,5 @@ drop table if exists t0,t1,t2,t3,t4,t5; -SET @save_optimizer_switch=@@optimizer_switch; +SET @org_optimizer_switch=@@optimizer_switch; SET optimizer_switch=ifnull(@optimizer_switch_for_join_outer_test,'outer_join_with_cache=off'); set join_cache_level=1; CREATE TABLE t1 ( @@ -2751,4 +2751,4 @@ 1 drop view v4; drop table t1,t2,t3,t4; -SET optimizer_switch=@save_optimizer_switch; +SET optimizer_switch=@org_optimizer_switch; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/join_outer.test mariadb-10.3-10.3.20/mysql-test/main/join_outer.test --- mariadb-10.3-10.3.17/mysql-test/main/join_outer.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/join_outer.test 2019-11-06 16:01:56.000000000 +0000 @@ -8,7 +8,7 @@ drop table if exists t0,t1,t2,t3,t4,t5; --enable_warnings -SET @save_optimizer_switch=@@optimizer_switch; +SET @org_optimizer_switch=@@optimizer_switch; SET optimizer_switch=ifnull(@optimizer_switch_for_join_outer_test,'outer_join_with_cache=off'); if (`select @join_cache_level_for_join_outer_test is null`) { @@ -2251,4 +2251,4 @@ drop view v4; drop table t1,t2,t3,t4; -SET optimizer_switch=@save_optimizer_switch; +SET optimizer_switch=@org_optimizer_switch; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/join.result mariadb-10.3-10.3.20/mysql-test/main/join.result --- mariadb-10.3-10.3.17/mysql-test/main/join.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/join.result 2019-11-06 16:01:56.000000000 +0000 @@ -2929,6 +2929,332 @@ NULL NULL NULL 5 drop table t1,t2,t3,t4,s1,s2; # +# MDEV-20265: Mix of comma joins with JOIN expressions +# (correction of the fix for MDEV-19421) +# MDEV-20330: duplicate +# +create table t1 (a int); +insert into t1 values (7), (5), (3); +create table t2 (a int); +insert into t2 values (5), (1), (7); +create table t3 (a int); +insert into t3 values (2), (7), (3); +create table t4 (a int); +insert into t4 values (4), (7), (9), (5); +create table t5 (a int); +insert into t5 values (3), (7), (9), (2); +explain extended select t1.a as t1_a, t2.a as t2_a, t3.a as t3_a, t4.a as t4_a +from t1, t2 join t3 left join t4 on t3.a=t4.a; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (flat, BNL join) +1 SIMPLE t3 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (incremental, BNL join) +1 SIMPLE t4 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (incremental, BNL join) +Warnings: +Note 1003 select `test`.`t1`.`a` AS `t1_a`,`test`.`t2`.`a` AS `t2_a`,`test`.`t3`.`a` AS `t3_a`,`test`.`t4`.`a` AS `t4_a` from `test`.`t1` join `test`.`t2` join `test`.`t3` left join `test`.`t4` on(`test`.`t4`.`a` = `test`.`t3`.`a`) where 1 +select t1.a as t1_a, t2.a as t2_a, t3.a as t3_a, t4.a as t4_a +from t1, t2 join t3 left join t4 on t3.a=t4.a; +t1_a t2_a t3_a t4_a +7 5 7 7 +5 5 7 7 +3 5 7 7 +7 1 7 7 +5 1 7 7 +3 1 7 7 +7 7 7 7 +5 7 7 7 +3 7 7 7 +7 5 2 NULL +5 5 2 NULL +3 5 2 NULL +7 1 2 NULL +5 1 2 NULL +3 1 2 NULL +7 7 2 NULL +5 7 2 NULL +3 7 2 NULL +7 5 3 NULL +5 5 3 NULL +3 5 3 NULL +7 1 3 NULL +5 1 3 NULL +3 1 3 NULL +7 7 3 NULL +5 7 3 NULL +3 7 3 NULL +explain extended select t1.a as t1_a, t2.a as t2_a, t3.a as t3_a, t4.a as t4_a +from t1, t2 join t3 right join t4 on t3.a=t4.a; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 +1 SIMPLE t4 ALL NULL NULL NULL NULL 4 100.00 Using join buffer (flat, BNL join) +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (incremental, BNL join) +1 SIMPLE t3 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (incremental, BNL join) +Warnings: +Note 1003 select `test`.`t1`.`a` AS `t1_a`,`test`.`t2`.`a` AS `t2_a`,`test`.`t3`.`a` AS `t3_a`,`test`.`t4`.`a` AS `t4_a` from `test`.`t1` join `test`.`t4` left join (`test`.`t2` join `test`.`t3`) on(`test`.`t3`.`a` = `test`.`t4`.`a`) where 1 +select t1.a as t1_a, t2.a as t2_a, t3.a as t3_a, t4.a as t4_a +from t1, t2 join t3 right join t4 on t3.a=t4.a; +t1_a t2_a t3_a t4_a +7 5 7 7 +5 5 7 7 +3 5 7 7 +7 1 7 7 +5 1 7 7 +3 1 7 7 +7 7 7 7 +5 7 7 7 +3 7 7 7 +7 NULL NULL 4 +5 NULL NULL 4 +3 NULL NULL 4 +7 NULL NULL 9 +5 NULL NULL 9 +3 NULL NULL 9 +7 NULL NULL 5 +5 NULL NULL 5 +3 NULL NULL 5 +explain extended select t1.a as t1_a, t2.a as t2_a, t3.a as t3_a, t4.a as t4_a, t5.a as t5_a +from t1, t2 join t3 join t4 left join t5 on t4.a=t5.a; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (flat, BNL join) +1 SIMPLE t3 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (incremental, BNL join) +1 SIMPLE t4 ALL NULL NULL NULL NULL 4 100.00 Using join buffer (incremental, BNL join) +1 SIMPLE t5 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (incremental, BNL join) +Warnings: +Note 1003 select `test`.`t1`.`a` AS `t1_a`,`test`.`t2`.`a` AS `t2_a`,`test`.`t3`.`a` AS `t3_a`,`test`.`t4`.`a` AS `t4_a`,`test`.`t5`.`a` AS `t5_a` from `test`.`t1` join `test`.`t2` join `test`.`t3` join `test`.`t4` left join `test`.`t5` on(`test`.`t5`.`a` = `test`.`t4`.`a`) where 1 +select t1.a as t1_a, t2.a as t2_a, t3.a as t3_a, t4.a as t4_a, t5.a as t5_a +from t1, t2 join t3 join t4 left join t5 on t4.a=t5.a; +t1_a t2_a t3_a t4_a t5_a +7 5 2 7 7 +5 5 2 7 7 +3 5 2 7 7 +7 1 2 7 7 +5 1 2 7 7 +3 1 2 7 7 +7 7 2 7 7 +5 7 2 7 7 +3 7 2 7 7 +7 5 7 7 7 +5 5 7 7 7 +3 5 7 7 7 +7 1 7 7 7 +5 1 7 7 7 +3 1 7 7 7 +7 7 7 7 7 +5 7 7 7 7 +3 7 7 7 7 +7 5 3 7 7 +5 5 3 7 7 +3 5 3 7 7 +7 1 3 7 7 +5 1 3 7 7 +3 1 3 7 7 +7 7 3 7 7 +5 7 3 7 7 +3 7 3 7 7 +7 5 2 9 9 +5 5 2 9 9 +3 5 2 9 9 +7 1 2 9 9 +5 1 2 9 9 +3 1 2 9 9 +7 7 2 9 9 +5 7 2 9 9 +3 7 2 9 9 +7 5 7 9 9 +5 5 7 9 9 +3 5 7 9 9 +7 1 7 9 9 +5 1 7 9 9 +3 1 7 9 9 +7 7 7 9 9 +5 7 7 9 9 +3 7 7 9 9 +7 5 3 9 9 +5 5 3 9 9 +3 5 3 9 9 +7 1 3 9 9 +5 1 3 9 9 +3 1 3 9 9 +7 7 3 9 9 +5 7 3 9 9 +3 7 3 9 9 +7 5 2 4 NULL +5 5 2 4 NULL +3 5 2 4 NULL +7 1 2 4 NULL +5 1 2 4 NULL +3 1 2 4 NULL +7 7 2 4 NULL +5 7 2 4 NULL +3 7 2 4 NULL +7 5 7 4 NULL +5 5 7 4 NULL +3 5 7 4 NULL +7 1 7 4 NULL +5 1 7 4 NULL +3 1 7 4 NULL +7 7 7 4 NULL +5 7 7 4 NULL +3 7 7 4 NULL +7 5 3 4 NULL +5 5 3 4 NULL +3 5 3 4 NULL +7 1 3 4 NULL +5 1 3 4 NULL +3 1 3 4 NULL +7 7 3 4 NULL +5 7 3 4 NULL +3 7 3 4 NULL +7 5 2 5 NULL +5 5 2 5 NULL +3 5 2 5 NULL +7 1 2 5 NULL +5 1 2 5 NULL +3 1 2 5 NULL +7 7 2 5 NULL +5 7 2 5 NULL +3 7 2 5 NULL +7 5 7 5 NULL +5 5 7 5 NULL +3 5 7 5 NULL +7 1 7 5 NULL +5 1 7 5 NULL +3 1 7 5 NULL +7 7 7 5 NULL +5 7 7 5 NULL +3 7 7 5 NULL +7 5 3 5 NULL +5 5 3 5 NULL +3 5 3 5 NULL +7 1 3 5 NULL +5 1 3 5 NULL +3 1 3 5 NULL +7 7 3 5 NULL +5 7 3 5 NULL +3 7 3 5 NULL +explain extended select t1.a as t1_a, t2.a as t2_a, t3.a as t3_a, t4.a as t4_a, t5.a as t5_a +from t1, t2 join t3 join t4 right join t5 on t4.a=t5.a; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 +1 SIMPLE t5 ALL NULL NULL NULL NULL 4 100.00 Using join buffer (flat, BNL join) +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (incremental, BNL join) +1 SIMPLE t3 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (incremental, BNL join) +1 SIMPLE t4 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (incremental, BNL join) +Warnings: +Note 1003 select `test`.`t1`.`a` AS `t1_a`,`test`.`t2`.`a` AS `t2_a`,`test`.`t3`.`a` AS `t3_a`,`test`.`t4`.`a` AS `t4_a`,`test`.`t5`.`a` AS `t5_a` from `test`.`t1` join `test`.`t5` left join (`test`.`t2` join `test`.`t3` join `test`.`t4`) on(`test`.`t4`.`a` = `test`.`t5`.`a`) where 1 +select t1.a as t1_a, t2.a as t2_a, t3.a as t3_a, t4.a as t4_a, t5.a as t5_a +from t1, t2 join t3 join t4 right join t5 on t4.a=t5.a; +t1_a t2_a t3_a t4_a t5_a +7 5 2 7 7 +5 5 2 7 7 +3 5 2 7 7 +7 1 2 7 7 +5 1 2 7 7 +3 1 2 7 7 +7 7 2 7 7 +5 7 2 7 7 +3 7 2 7 7 +7 5 7 7 7 +5 5 7 7 7 +3 5 7 7 7 +7 1 7 7 7 +5 1 7 7 7 +3 1 7 7 7 +7 7 7 7 7 +5 7 7 7 7 +3 7 7 7 7 +7 5 3 7 7 +5 5 3 7 7 +3 5 3 7 7 +7 1 3 7 7 +5 1 3 7 7 +3 1 3 7 7 +7 7 3 7 7 +5 7 3 7 7 +3 7 3 7 7 +7 5 2 9 9 +5 5 2 9 9 +3 5 2 9 9 +7 1 2 9 9 +5 1 2 9 9 +3 1 2 9 9 +7 7 2 9 9 +5 7 2 9 9 +3 7 2 9 9 +7 5 7 9 9 +5 5 7 9 9 +3 5 7 9 9 +7 1 7 9 9 +5 1 7 9 9 +3 1 7 9 9 +7 7 7 9 9 +5 7 7 9 9 +3 7 7 9 9 +7 5 3 9 9 +5 5 3 9 9 +3 5 3 9 9 +7 1 3 9 9 +5 1 3 9 9 +3 1 3 9 9 +7 7 3 9 9 +5 7 3 9 9 +3 7 3 9 9 +7 NULL NULL NULL 3 +5 NULL NULL NULL 3 +3 NULL NULL NULL 3 +7 NULL NULL NULL 2 +5 NULL NULL NULL 2 +3 NULL NULL NULL 2 +explain extended select t1.a as t1_a, t2.a as t2_a, t3.a as t3_a, t4.a as t4_a, t5.a as t5_a +from t1 left join t2 on t1.a=t2.a, t3 join t4 right join t5 on t4.a=t5.a; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 +1 SIMPLE t2 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join) +1 SIMPLE t5 ALL NULL NULL NULL NULL 4 100.00 Using join buffer (incremental, BNL join) +1 SIMPLE t3 ALL NULL NULL NULL NULL 3 100.00 Using join buffer (incremental, BNL join) +1 SIMPLE t4 ALL NULL NULL NULL NULL 4 100.00 Using where; Using join buffer (incremental, BNL join) +Warnings: +Note 1003 select `test`.`t1`.`a` AS `t1_a`,`test`.`t2`.`a` AS `t2_a`,`test`.`t3`.`a` AS `t3_a`,`test`.`t4`.`a` AS `t4_a`,`test`.`t5`.`a` AS `t5_a` from `test`.`t1` left join `test`.`t2` on(`test`.`t2`.`a` = `test`.`t1`.`a`) join `test`.`t5` left join (`test`.`t3` join `test`.`t4`) on(`test`.`t4`.`a` = `test`.`t5`.`a`) where 1 +select t1.a as t1_a, t2.a as t2_a, t3.a as t3_a, t4.a as t4_a, t5.a as t5_a +from t1 left join t2 on t1.a=t2.a, t3 join t4 right join t5 on t4.a=t5.a; +t1_a t2_a t3_a t4_a t5_a +5 5 2 7 7 +7 7 2 7 7 +3 NULL 2 7 7 +5 5 7 7 7 +7 7 7 7 7 +3 NULL 7 7 7 +5 5 3 7 7 +7 7 3 7 7 +3 NULL 3 7 7 +5 5 2 9 9 +7 7 2 9 9 +3 NULL 2 9 9 +5 5 7 9 9 +7 7 7 9 9 +3 NULL 7 9 9 +5 5 3 9 9 +7 7 3 9 9 +3 NULL 3 9 9 +5 5 NULL NULL 3 +7 7 NULL NULL 3 +3 NULL NULL NULL 3 +5 5 NULL NULL 2 +7 7 NULL NULL 2 +3 NULL NULL NULL 2 +drop table t1,t2,t3,t4,t5; +select a.a +from (select 1 as a) a, +(select 2 as b) b +cross join +(select 3 as c) c +left join +(select 4 as d) d +on 1; +a +1 +# # End of MariaDB 5.5 tests # # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/join.test mariadb-10.3-10.3.20/mysql-test/main/join.test --- mariadb-10.3-10.3.17/mysql-test/main/join.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/join.test 2019-11-06 16:01:56.000000000 +0000 @@ -1,5 +1,6 @@ # # Initialization +--source include/default_optimizer_switch.inc --disable_warnings drop table if exists t1,t2,t3; drop view if exists v1,v2; @@ -1614,6 +1615,65 @@ drop table t1,t2,t3,t4,s1,s2; --echo # +--echo # MDEV-20265: Mix of comma joins with JOIN expressions +--echo # (correction of the fix for MDEV-19421) +--echo # MDEV-20330: duplicate +--echo # + +create table t1 (a int); +insert into t1 values (7), (5), (3); +create table t2 (a int); +insert into t2 values (5), (1), (7); +create table t3 (a int); +insert into t3 values (2), (7), (3); +create table t4 (a int); +insert into t4 values (4), (7), (9), (5); +create table t5 (a int); +insert into t5 values (3), (7), (9), (2); + + +let $q= +select t1.a as t1_a, t2.a as t2_a, t3.a as t3_a, t4.a as t4_a +from t1, t2 join t3 left join t4 on t3.a=t4.a; +eval explain extended $q; +eval $q; + +let $q= +select t1.a as t1_a, t2.a as t2_a, t3.a as t3_a, t4.a as t4_a +from t1, t2 join t3 right join t4 on t3.a=t4.a; +eval explain extended $q; +eval $q; + +let $q= +select t1.a as t1_a, t2.a as t2_a, t3.a as t3_a, t4.a as t4_a, t5.a as t5_a +from t1, t2 join t3 join t4 left join t5 on t4.a=t5.a; +eval explain extended $q; +eval $q; + +let $q= +select t1.a as t1_a, t2.a as t2_a, t3.a as t3_a, t4.a as t4_a, t5.a as t5_a +from t1, t2 join t3 join t4 right join t5 on t4.a=t5.a; +eval explain extended $q; +eval $q; + +let $q= +select t1.a as t1_a, t2.a as t2_a, t3.a as t3_a, t4.a as t4_a, t5.a as t5_a +from t1 left join t2 on t1.a=t2.a, t3 join t4 right join t5 on t4.a=t5.a; +eval explain extended $q; +eval $q; + +drop table t1,t2,t3,t4,t5; + +select a.a +from (select 1 as a) a, + (select 2 as b) b + cross join + (select 3 as c) c + left join + (select 4 as d) d + on 1; + +--echo # --echo # End of MariaDB 5.5 tests --echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/kill.result mariadb-10.3-10.3.20/mysql-test/main/kill.result --- mariadb-10.3-10.3.17/mysql-test/main/kill.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/kill.result 2019-11-06 16:01:56.000000000 +0000 @@ -399,3 +399,19 @@ SET DEBUG_SYNC = 'RESET'; DROP FUNCTION MY_KILL; set global sql_mode=default; +# +# MDEV-17998 +# Deadlock and eventual Assertion `!table->pos_in_locked_tables' failed +# in tc_release_table on KILL_TIMEOUT +# +SET max_statement_time= 2; +CREATE TABLE t1 (a INT); +CREATE VIEW v1 AS SELECT * FROM t1; +CREATE TABLE t2 (b INT, c INT); +LOCK TABLES v1 READ, t2 WRITE, t1 WRITE; +ALTER TABLE t1 CHANGE f1 f2 DOUBLE; +Got one of the listed errors +ALTER TABLE t2 DROP c; +UNLOCK TABLES; +DROP VIEW v1; +DROP TABLE t1, t2; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/kill.test mariadb-10.3-10.3.20/mysql-test/main/kill.test --- mariadb-10.3-10.3.17/mysql-test/main/kill.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/kill.test 2019-11-06 16:01:56.000000000 +0000 @@ -642,3 +642,23 @@ DROP FUNCTION MY_KILL; set global sql_mode=default; + +--echo # +--echo # MDEV-17998 +--echo # Deadlock and eventual Assertion `!table->pos_in_locked_tables' failed +--echo # in tc_release_table on KILL_TIMEOUT +--echo # + +SET max_statement_time= 2; + +CREATE TABLE t1 (a INT); +CREATE VIEW v1 AS SELECT * FROM t1; +CREATE TABLE t2 (b INT, c INT); + +LOCK TABLES v1 READ, t2 WRITE, t1 WRITE; +--error ER_BAD_FIELD_ERROR,ER_STATEMENT_TIMEOUT +ALTER TABLE t1 CHANGE f1 f2 DOUBLE; +ALTER TABLE t2 DROP c; +UNLOCK TABLES; +DROP VIEW v1; +DROP TABLE t1, t2; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/limit_rows_examined.test mariadb-10.3-10.3.20/mysql-test/main/limit_rows_examined.test --- mariadb-10.3-10.3.17/mysql-test/main/limit_rows_examined.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/limit_rows_examined.test 2019-11-06 16:01:56.000000000 +0000 @@ -2,6 +2,7 @@ # Tests for LIMIT ROWS EXAMINED, MDEV-28 # +--source include/default_optimizer_switch.inc call mtr.add_suppression("Sort aborted.*"); set @save_join_cache_level = @@join_cache_level; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/log_slow_debug.result mariadb-10.3-10.3.20/mysql-test/main/log_slow_debug.result --- mariadb-10.3-10.3.17/mysql-test/main/log_slow_debug.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/log_slow_debug.result 2019-11-06 16:01:56.000000000 +0000 @@ -6,6 +6,7 @@ FLUSH SLOW LOGS; SET @@GLOBAL.slow_query_log=ON; SET @@GLOBAL.log_slow_admin_statements=ON; +SET @save_dbug = @@debug_dbug; SET SESSION debug_dbug="+d,simulate_slow_query"; CREATE PROCEDURE show_slow_log() BEGIN @@ -217,7 +218,7 @@ # # Clean up # -SET SESSION debug_dbug="-d,simulate_slow_query"; +SET SESSION debug_dbug=@save_dbug; TRUNCATE mysql.slow_log; SET @@global.slow_query_log= @org_slow_query_log; SET @@global.log_output= @org_log_output; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/log_slow_debug.test mariadb-10.3-10.3.20/mysql-test/main/log_slow_debug.test --- mariadb-10.3-10.3.17/mysql-test/main/log_slow_debug.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/log_slow_debug.test 2019-11-06 16:01:56.000000000 +0000 @@ -9,6 +9,7 @@ FLUSH SLOW LOGS; SET @@GLOBAL.slow_query_log=ON; SET @@GLOBAL.log_slow_admin_statements=ON; +SET @save_dbug = @@debug_dbug; SET SESSION debug_dbug="+d,simulate_slow_query"; DELIMITER $$; @@ -86,7 +87,7 @@ --echo # Clean up --echo # -SET SESSION debug_dbug="-d,simulate_slow_query"; +SET SESSION debug_dbug=@save_dbug; TRUNCATE mysql.slow_log; SET @@global.slow_query_log= @org_slow_query_log; SET @@global.log_output= @org_log_output; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/log_slow.result mariadb-10.3-10.3.20/mysql-test/main/log_slow.result --- mariadb-10.3-10.3.17/mysql-test/main/log_slow.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/log_slow.result 2019-11-06 16:01:56.000000000 +0000 @@ -1,3 +1,4 @@ +set @@log_slow_verbosity=""; select @@log_slow_filter; @@log_slow_filter admin,filesort,filesort_on_disk,filesort_priority_queue,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk diff -Nru mariadb-10.3-10.3.17/mysql-test/main/log_slow.test mariadb-10.3-10.3.20/mysql-test/main/log_slow.test --- mariadb-10.3-10.3.17/mysql-test/main/log_slow.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/log_slow.test 2019-11-06 16:01:56.000000000 +0000 @@ -2,6 +2,8 @@ # Testing of slow log query options # +set @@log_slow_verbosity=""; + select @@log_slow_filter; select @@log_slow_rate_limit; select @@log_slow_verbosity; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/log_state.result mariadb-10.3-10.3.20/mysql-test/main/log_state.result --- mariadb-10.3-10.3.17/mysql-test/main/log_state.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/log_state.result 2019-11-06 16:01:56.000000000 +0000 @@ -3,6 +3,7 @@ SET @old_general_log_file= @@global.general_log_file; SET @old_slow_query_log= @@global.slow_query_log; SET @old_slow_query_log_file= @@global.slow_query_log_file; +set @save_long_query_time=@@long_query_time; set global general_log= OFF; truncate table mysql.general_log; truncate table mysql.slow_log; @@ -276,7 +277,7 @@ SET GLOBAL general_log_file = @old_general_log_file; disconnect con1; connection default; -SET GLOBAL long_query_time = DEFAULT; +SET GLOBAL long_query_time = @save_long_query_time; SET GLOBAL log_output = @old_log_output; SET global general_log = @old_general_log; SET global general_log_file = @old_general_log_file; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/log_state.test mariadb-10.3-10.3.20/mysql-test/main/log_state.test --- mariadb-10.3-10.3.17/mysql-test/main/log_state.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/log_state.test 2019-11-06 16:01:56.000000000 +0000 @@ -12,7 +12,7 @@ SET @old_general_log_file= @@global.general_log_file; SET @old_slow_query_log= @@global.slow_query_log; SET @old_slow_query_log_file= @@global.slow_query_log_file; - +set @save_long_query_time=@@long_query_time; --disable_ps_protocol @@ -330,7 +330,7 @@ connection default; # Reset global system variables to initial values if forgotten somewhere above. -SET GLOBAL long_query_time = DEFAULT; +SET GLOBAL long_query_time = @save_long_query_time; SET GLOBAL log_output = @old_log_output; SET global general_log = @old_general_log; SET global general_log_file = @old_general_log_file; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/log_tables.result mariadb-10.3-10.3.20/mysql-test/main/log_tables.result --- mariadb-10.3-10.3.17/mysql-test/main/log_tables.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/log_tables.result 2019-11-06 16:01:56.000000000 +0000 @@ -9,9 +9,6 @@ SET @saved_log_output = @@log_output; SET @saved_general_log = @@GLOBAL.general_log; SET @saved_slow_query_log = @@GLOBAL.slow_query_log; -SELECT @saved_long_query_time, @saved_log_output, @saved_general_log, @saved_slow_query_log; -@saved_long_query_time @saved_log_output @saved_general_log @saved_slow_query_log -10 FILE,TABLE 1 1 truncate table general_log; select * from general_log; event_time user_host thread_id server_id command_type argument @@ -436,9 +433,9 @@ My own slow query 0 SELECT * FROM mysql.slow_log WHERE seq >= 2 LIMIT 3; start_time user_host query_time lock_time rows_sent rows_examined db last_insert_id insert_id server_id sql_text thread_id rows_affected seq -START_TIME USER_HOST QUERY_TIME 00:00:00.000000 1 0 test 0 0 1 SELECT "My own slow query", sleep(2) 4 0 2 -START_TIME USER_HOST QUERY_TIME 00:00:00.000000 1 0 test 0 0 1 SELECT "My own slow query", sleep(2) 4 0 3 -START_TIME USER_HOST QUERY_TIME 00:00:00.000000 1 0 test 0 0 1 SELECT "My own slow query", sleep(2) 4 0 4 +START_TIME USER_HOST QUERY_TIME 00:00:00.000000 1 0 test 0 0 1 SELECT "My own slow query", sleep(2) THREAD_ID 0 2 +START_TIME USER_HOST QUERY_TIME 00:00:00.000000 1 0 test 0 0 1 SELECT "My own slow query", sleep(2) THREAD_ID 0 3 +START_TIME USER_HOST QUERY_TIME 00:00:00.000000 1 0 test 0 0 1 SELECT "My own slow query", sleep(2) THREAD_ID 0 4 SET GLOBAL slow_query_log = 0; SET SESSION long_query_time =@saved_long_query_time; FLUSH LOGS; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/log_tables.test mariadb-10.3-10.3.20/mysql-test/main/log_tables.test --- mariadb-10.3-10.3.17/mysql-test/main/log_tables.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/log_tables.test 2019-11-06 16:01:56.000000000 +0000 @@ -27,10 +27,6 @@ SET @saved_general_log = @@GLOBAL.general_log; SET @saved_slow_query_log = @@GLOBAL.slow_query_log; -SELECT @saved_long_query_time, @saved_log_output, @saved_general_log, @saved_slow_query_log; - - - # # Check that log tables work and we can do basic selects. This also # tests truncate, which works in a special mode with the log tables @@ -528,7 +524,7 @@ SELECT "My own slow query", sleep(2); ## So we look for seq 2-4 ---replace_column 1 START_TIME 2 USER_HOST 3 QUERY_TIME +--replace_column 1 START_TIME 2 USER_HOST 3 QUERY_TIME 12 THREAD_ID SELECT * FROM mysql.slow_log WHERE seq >= 2 LIMIT 3; SET GLOBAL slow_query_log = 0; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/lowercase_table_qcache.result mariadb-10.3-10.3.20/mysql-test/main/lowercase_table_qcache.result --- mariadb-10.3-10.3.17/mysql-test/main/lowercase_table_qcache.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/lowercase_table_qcache.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +set @save_query_cache_size=@@query_cache_size; set GLOBAL query_cache_size=1355776; set GLOBAL query_cache_type=ON; set LOCAL query_cache_type=ON; @@ -23,5 +24,5 @@ show status like "Qcache_queries_in_cache"; Variable_name Value Qcache_queries_in_cache 0 -set GLOBAL query_cache_size=default; +set GLOBAL query_cache_size=@save_query_cache_size; set GLOBAL query_cache_type=default; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/lowercase_table_qcache.test mariadb-10.3-10.3.20/mysql-test/main/lowercase_table_qcache.test --- mariadb-10.3-10.3.17/mysql-test/main/lowercase_table_qcache.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/lowercase_table_qcache.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,6 +2,7 @@ # # Test of query cache with --lower-case-table-names # +set @save_query_cache_size=@@query_cache_size; set GLOBAL query_cache_size=1355776; set GLOBAL query_cache_type=ON; set LOCAL query_cache_type=ON; @@ -28,7 +29,7 @@ enable_result_log; show status like "Qcache_queries_in_cache"; -set GLOBAL query_cache_size=default; +set GLOBAL query_cache_size=@save_query_cache_size; set GLOBAL query_cache_type=default; # End of 4.1 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mdev13607.test mariadb-10.3-10.3.20/mysql-test/main/mdev13607.test --- mariadb-10.3-10.3.17/mysql-test/main/mdev13607.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mdev13607.test 2019-11-06 16:01:57.000000000 +0000 @@ -3,6 +3,7 @@ --echo # --source include/have_innodb.inc +--source include/default_optimizer_switch.inc CREATE TABLE t1 (id INT) ENGINE=InnoDB; INSERT INTO t1 VALUES diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mdev375.result mariadb-10.3-10.3.20/mysql-test/main/mdev375.result --- mariadb-10.3-10.3.17/mysql-test/main/mdev375.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mdev375.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +set @save_log_warnings=@@log_warnings, @save_max_connections=@@max_connections; SET GLOBAL log_warnings=4; SET GLOBAL max_connections=10; connect tmp_con1,localhost,root,,; @@ -24,5 +25,5 @@ show status like "Threads_connected"; Variable_name Value Threads_connected 11 -SET GLOBAL log_warnings=default; -SET GLOBAL max_connections=default; +SET GLOBAL log_warnings=@save_log_warnings; +SET GLOBAL max_connections=@save_max_connections; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mdev375.test mariadb-10.3-10.3.20/mysql-test/main/mdev375.test --- mariadb-10.3-10.3.17/mysql-test/main/mdev375.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mdev375.test 2019-11-06 16:01:57.000000000 +0000 @@ -3,6 +3,7 @@ # --source include/not_embedded.inc +set @save_log_warnings=@@log_warnings, @save_max_connections=@@max_connections; SET GLOBAL log_warnings=4; SET GLOBAL max_connections=10; @@ -28,5 +29,5 @@ SELECT 0; show status like "Threads_connected"; -SET GLOBAL log_warnings=default; -SET GLOBAL max_connections=default; +SET GLOBAL log_warnings=@save_log_warnings; +SET GLOBAL max_connections=@save_max_connections; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/merge.result mariadb-10.3-10.3.20/mysql-test/main/merge.result --- mariadb-10.3-10.3.17/mysql-test/main/merge.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/merge.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,6 @@ -set global storage_engine=myisam; -set session storage_engine=myisam; +set @save_default_storage_engine=@@global.storage_engine; +set global default_storage_engine=myisam; +set session default_storage_engine=myisam; drop table if exists t1,t2,t3,t4,t5,t6; drop database if exists mysqltest; create table t1 (a int not null primary key auto_increment, message char(20)); @@ -2582,11 +2583,8 @@ execute stmt; prepare stmt from "select * from t_parent"; execute stmt; -ERROR HY000: Prepared statement needs to be re-prepared execute stmt; -ERROR HY000: Prepared statement needs to be re-prepared execute stmt; -ERROR HY000: Prepared statement needs to be re-prepared deallocate prepare stmt; # # Create merge parent diff -Nru mariadb-10.3-10.3.17/mysql-test/main/merge.test mariadb-10.3-10.3.20/mysql-test/main/merge.test --- mariadb-10.3-10.3.17/mysql-test/main/merge.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/merge.test 2019-11-06 16:01:57.000000000 +0000 @@ -6,9 +6,12 @@ --source include/count_sessions.inc # MERGE tables require MyISAM tables -let $default=`select @@global.storage_engine`; -set global storage_engine=myisam; -set session storage_engine=myisam; +set @save_default_storage_engine=@@global.storage_engine; +set global default_storage_engine=myisam; +set session default_storage_engine=myisam; + +# This test assumes a stable character set +--source include/default_charset.inc # Clean up resources used in this test case. --disable_warnings @@ -17,7 +20,6 @@ --enable_warnings let $MYSQLD_DATADIR= `select @@datadir`; - create table t1 (a int not null primary key auto_increment, message char(20)); create table t2 (a int not null primary key auto_increment, message char(20)); INSERT INTO t1 (message) VALUES ("Testing"),("table"),("t1"); @@ -1921,13 +1923,16 @@ prepare stmt from @a; execute stmt; prepare stmt from "select * from t_parent"; ---error ER_NEED_REPREPARE +--disable_result_log +--error 0,ER_NEED_REPREPARE execute stmt; ---error ER_NEED_REPREPARE +--error 0,ER_NEED_REPREPARE execute stmt; ---error ER_NEED_REPREPARE +--error 0,ER_NEED_REPREPARE execute stmt; deallocate prepare stmt; +--enable_result_log + --echo # --echo # Create merge parent --echo # @@ -2907,7 +2912,7 @@ --disable_result_log --disable_query_log -eval set global storage_engine=$default; +set global default_storage_engine=@save_default_storage_engine; --enable_result_log --enable_query_log diff -Nru mariadb-10.3-10.3.17/mysql-test/main/metadata.result mariadb-10.3-10.3.20/mysql-test/main/metadata.result --- mariadb-10.3-10.3.17/mysql-test/main/metadata.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/metadata.result 2019-11-06 16:01:57.000000000 +0000 @@ -647,17 +647,17 @@ 1111111111 MOD 1, 11111111111 MOD 1 LIMIT 0; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr -def 1 MOD 1 3 1 0 Y 32896 0 63 -def 11 MOD 1 3 2 0 Y 32896 0 63 -def 111 MOD 1 3 3 0 Y 32896 0 63 -def 1111 MOD 1 3 4 0 Y 32896 0 63 -def 11111 MOD 1 3 5 0 Y 32896 0 63 -def 111111 MOD 1 3 6 0 Y 32896 0 63 -def 1111111 MOD 1 3 7 0 Y 32896 0 63 -def 11111111 MOD 1 3 8 0 Y 32896 0 63 -def 111111111 MOD 1 3 9 0 Y 32896 0 63 -def 1111111111 MOD 1 8 10 0 Y 32896 0 63 -def 11111111111 MOD 1 8 11 0 Y 32896 0 63 +def 1 MOD 1 3 2 0 Y 32896 0 63 +def 11 MOD 1 3 3 0 Y 32896 0 63 +def 111 MOD 1 3 4 0 Y 32896 0 63 +def 1111 MOD 1 3 5 0 Y 32896 0 63 +def 11111 MOD 1 3 6 0 Y 32896 0 63 +def 111111 MOD 1 3 7 0 Y 32896 0 63 +def 1111111 MOD 1 3 8 0 Y 32896 0 63 +def 11111111 MOD 1 3 9 0 Y 32896 0 63 +def 111111111 MOD 1 8 10 0 Y 32896 0 63 +def 1111111111 MOD 1 8 11 0 Y 32896 0 63 +def 11111111111 MOD 1 8 12 0 Y 32896 0 63 1 MOD 1 11 MOD 1 111 MOD 1 1111 MOD 1 11111 MOD 1 111111 MOD 1 1111111 MOD 1 11111111 MOD 1 111111111 MOD 1 1111111111 MOD 1 11111111111 MOD 1 SELECT -(1), diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mrr_icp_extra.test mariadb-10.3-10.3.20/mysql-test/main/mrr_icp_extra.test --- mariadb-10.3-10.3.17/mysql-test/main/mrr_icp_extra.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mrr_icp_extra.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,8 @@ - # Generated by an ALTER TABLE in include/varchar.inc + +--source include/default_optimizer_switch.inc +--source include/default_charset.inc + call mtr.add_suppression("Can't find record in .*"); set @mrr_icp_extra_tmp=@@optimizer_switch; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/multi_update.test mariadb-10.3-10.3.20/mysql-test/main/multi_update.test --- mariadb-10.3-10.3.17/mysql-test/main/multi_update.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/multi_update.test 2019-11-06 16:01:57.000000000 +0000 @@ -976,6 +976,8 @@ # MDEV-14551 Can't find record in table on multi-table update with ORDER BY # +--source include/default_optimizer_switch.inc + # simple test with multi-update and Using temporary: create table t1 (i int) engine=memory; insert t1 values (1),(2); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/myisam_explain_non_select_all.test mariadb-10.3-10.3.20/mysql-test/main/myisam_explain_non_select_all.test --- mariadb-10.3-10.3.17/mysql-test/main/myisam_explain_non_select_all.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/myisam_explain_non_select_all.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,6 +2,8 @@ # Run explain_non_select.inc on MyISAM with all of the so-called 6.0 features. # +--source include/default_optimizer_switch.inc + #--source include/have_semijoin.inc #--source include/have_materialization.inc #--source include/have_firstmatch.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/main/myisam_icp.test mariadb-10.3-10.3.20/mysql-test/main/myisam_icp.test --- mariadb-10.3-10.3.17/mysql-test/main/myisam_icp.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/myisam_icp.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,6 +2,7 @@ # ICP/MyISAM tests (Index Condition Pushdown) # +--source include/default_optimizer_switch.inc set @myisam_icp_tmp=@@optimizer_switch; set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/myisam_mrr.result mariadb-10.3-10.3.20/mysql-test/main/myisam_mrr.result --- mariadb-10.3-10.3.17/mysql-test/main/myisam_mrr.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/myisam_mrr.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,7 @@ drop table if exists t0, t1, t2, t3; set @myisam_mrr_tmp=@@optimizer_switch; set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +set optimizer_switch='optimize_join_buffer_size=off'; set @mrr_buffer_size_save= @@mrr_buffer_size; set mrr_buffer_size=79; Warnings: diff -Nru mariadb-10.3-10.3.17/mysql-test/main/myisam_mrr.test mariadb-10.3-10.3.20/mysql-test/main/myisam_mrr.test --- mariadb-10.3-10.3.17/mysql-test/main/myisam_mrr.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/myisam_mrr.test 2019-11-06 16:01:57.000000000 +0000 @@ -8,6 +8,7 @@ set @myisam_mrr_tmp=@@optimizer_switch; set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +set optimizer_switch='optimize_join_buffer_size=off'; set @mrr_buffer_size_save= @@mrr_buffer_size; set mrr_buffer_size=79; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/myisam_recover.result mariadb-10.3-10.3.20/mysql-test/main/myisam_recover.result --- mariadb-10.3-10.3.17/mysql-test/main/myisam_recover.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/myisam_recover.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,5 @@ call mtr.add_suppression("Table 't1' is marked as crashed and should be repaired"); +set @save_table_definition_cache=@@table_definition_cache; # # Tests for corrupted MyISAM tables and MyISAMMRG tables with corrupted # children.. @@ -97,10 +98,10 @@ prepare stmt from @drop_table_stmt; execute stmt; deallocate prepare stmt; -set @@global.table_definition_cache=default; set @@global.table_open_cache=@save_table_open_cache; disconnect con1; connection default; +set @@global.table_definition_cache=@save_table_definition_cache; # # 18075170 - sql node restart required to avoid deadlock after # restore diff -Nru mariadb-10.3-10.3.17/mysql-test/main/myisam_recover.test mariadb-10.3-10.3.20/mysql-test/main/myisam_recover.test --- mariadb-10.3-10.3.17/mysql-test/main/myisam_recover.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/myisam_recover.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,6 +2,8 @@ call mtr.add_suppression("Table 't1' is marked as crashed and should be repaired"); +set @save_table_definition_cache=@@table_definition_cache; + --echo # --echo # Tests for corrupted MyISAM tables and MyISAMMRG tables with corrupted --echo # children.. @@ -104,11 +106,11 @@ prepare stmt from @drop_table_stmt; execute stmt; deallocate prepare stmt; -set @@global.table_definition_cache=default; set @@global.table_open_cache=@save_table_open_cache; disconnect con1; connection default; --enable_ps_protocol +set @@global.table_definition_cache=@save_table_definition_cache; --echo # --echo # 18075170 - sql node restart required to avoid deadlock after diff -Nru mariadb-10.3-10.3.17/mysql-test/main/myisam.result mariadb-10.3-10.3.20/mysql-test/main/myisam.result --- mariadb-10.3-10.3.17/mysql-test/main/myisam.result 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/myisam.result 2019-11-06 16:01:57.000000000 +0000 @@ -2670,3 +2670,26 @@ select @@global.myisam_block_size; @@global.myisam_block_size 1024 +# +# MDEV-20704 An index on a double column erroneously uses prefix compression +# +CREATE TABLE t1 ( +id INT NOT NULL PRIMARY KEY, +d DOUBLE, +KEY (d) +) ENGINE=MyISAM; + +MyISAM file: MYSQLD_DATADIR/test/t1 +Record format: Fixed length +Character set: latin1_swedish_ci (8) +Data records: 0 Deleted blocks: 0 +Recordlength: 13 + +table description: +Key Start Len Index Type +1 2 4 unique long +2 6 8 multip. double NULL +DROP TABLE t1; +# +# End of 5.5 tests +# diff -Nru mariadb-10.3-10.3.17/mysql-test/main/myisam.test mariadb-10.3-10.3.20/mysql-test/main/myisam.test --- mariadb-10.3-10.3.17/mysql-test/main/myisam.test 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/myisam.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,6 +2,8 @@ # Test bugs in the MyISAM code # +--source include/default_optimizer_switch.inc + call mtr.add_suppression("Can't find record in '.*'"); call mtr.add_suppression("Table 't1' is marked as crashed and should be repaired"); @@ -1800,3 +1802,22 @@ # show variables like 'myisam_block_size'; select @@global.myisam_block_size; + + +--echo # +--echo # MDEV-20704 An index on a double column erroneously uses prefix compression +--echo # + +CREATE TABLE t1 ( + id INT NOT NULL PRIMARY KEY, + d DOUBLE, + KEY (d) +) ENGINE=MyISAM; +let $MYSQLD_DATADIR= `select @@datadir`; +--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR +--exec $MYISAMCHK -d $MYSQLD_DATADIR/test/t1 +DROP TABLE t1; + +--echo # +--echo # End of 5.5 tests +--echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog-innodb.result mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog-innodb.result --- mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog-innodb.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog-innodb.result 2019-11-06 16:01:57.000000000 +0000 @@ -30,10 +30,10 @@ SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1411383296/*!*/; +SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=#/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; INSERT INTO t1 VALUES (1) @@ -61,10 +61,10 @@ SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1411383296/*!*/; +SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=#/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; INSERT INTO t1 VALUES (1) diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog-innodb.test mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog-innodb.test --- mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog-innodb.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog-innodb.test 2019-11-06 16:01:57.000000000 +0000 @@ -24,7 +24,9 @@ USE test; SELECT * FROM t1 ORDER BY a; FLUSH LOGS; +--replace_regex /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ --exec $MYSQL_BINLOG $MYSQLD_DATADIR/master-bin.000001 --short-form +--replace_regex /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ --exec $MYSQL_BINLOG $MYSQLD_DATADIR/master-bin.000001 --short-form --rewrite-db="test->foo" --rewrite-db="test2->bar" DROP DATABASE test2; DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog.result mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog.result --- mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog.result 2019-11-06 16:01:57.000000000 +0000 @@ -23,10 +23,10 @@ SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1411383296/*!*/; +SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=#/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; DROP TABLE IF EXISTS `t1`,`t2`,`t3`,`t4`,`t5`,`t03`,`t04` /* generated by server */ @@ -103,10 +103,10 @@ SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1411383296/*!*/; +SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=#/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`word`) @@ -139,10 +139,10 @@ SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1411383296/*!*/; +SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=#/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; COMMIT @@ -190,10 +190,10 @@ SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1411383296/*!*/; +SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=#/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values ("Alas") @@ -217,10 +217,10 @@ SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1411383296/*!*/; +SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=#/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; DROP TABLE IF EXISTS `t1`,`t2`,`t3`,`t4`,`t5`,`t03`,`t04` /* generated by server */ @@ -297,10 +297,10 @@ SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1411383296/*!*/; +SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=#/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (`word`) @@ -333,10 +333,10 @@ SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1411383296/*!*/; +SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=#/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; COMMIT @@ -384,10 +384,10 @@ SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1411383296/*!*/; +SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=#/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values ("Alas") @@ -493,10 +493,10 @@ SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1411383296/*!*/; +SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=#/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() @@ -545,10 +545,10 @@ SET TIMESTAMP=1000000000/*!*/; SET @@session.pseudo_thread_id=999999999/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1411383296/*!*/; +SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=#/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a varchar(64) character set utf8) diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog_row_big.result mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog_row_big.result --- mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog_row_big.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog_row_big.result 2019-11-06 16:01:57.000000000 +0000 @@ -96,6 +96,5 @@ # Cleanup. # # reset variable value to pass testcase checks -SET @@global.max_allowed_packet = 16777216; DROP TABLE t1; remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_big_1.out diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog_row_big.test mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog_row_big.test --- mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog_row_big.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog_row_big.test 2019-11-06 16:01:57.000000000 +0000 @@ -138,7 +138,9 @@ --echo # Cleanup. --echo # --echo # reset variable value to pass testcase checks +--disable_query_log eval SET @@global.max_allowed_packet = $orig_max_allowed_packet; +--enable_query_log DROP TABLE t1; --echo remove_file \$MYSQLTEST_VARDIR/$mysqlbinlog_output diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog_row_compressed.result mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog_row_compressed.result --- mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog_row_compressed.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog_row_compressed.result 2019-11-06 16:01:57.000000000 +0000 @@ -34,10 +34,10 @@ SET TIMESTAMP=X/*!*/; SET @@session.pseudo_thread_id=5/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1411383296/*!*/; +SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=#/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE TABLE t1 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 TINYINT, f4 MEDIUMINT, f5 BIGINT, f6 INT, f7 INT, f8 char(1)) diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog_row_compressed.test mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog_row_compressed.test --- mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog_row_compressed.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog_row_compressed.test 2019-11-06 16:01:57.000000000 +0000 @@ -29,7 +29,7 @@ FLUSH BINARY LOGS; --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /\d{6} *\d*:\d\d:\d\d// /Start:.*at startup/Start: xxx/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /mapped to number \d*/mapped to number num/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ +--replace_regex /\d{6} *\d*:\d\d:\d\d// /Start:.*at startup/Start: xxx/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /mapped to number \d*/mapped to number num/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ --exec $MYSQL_BINLOG --verbose --verbose --base64-output=DECODE-ROWS $datadir/$binlog --echo diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog_row_minimal.result mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog_row_minimal.result --- mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog_row_minimal.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog_row_minimal.result 2019-11-06 16:01:57.000000000 +0000 @@ -32,10 +32,10 @@ SET TIMESTAMP=X/*!*/; SET @@session.pseudo_thread_id=5/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1411383296/*!*/; +SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=#/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE TABLE t1 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 TINYINT, f4 MEDIUMINT, f5 BIGINT, f6 INT, f7 INT, f8 char(1)) @@ -380,10 +380,10 @@ SET TIMESTAMP=X/*!*/; SET @@session.pseudo_thread_id=5/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1411383296/*!*/; +SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=#/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; COMMIT diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog_row_minimal.test mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog_row_minimal.test --- mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog_row_minimal.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog_row_minimal.test 2019-11-06 16:01:57.000000000 +0000 @@ -28,7 +28,7 @@ FLUSH BINARY LOGS; --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /\d{6} *\d*:\d\d:\d\d// /Start:.*at startup/Start: xxx/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /mapped to number \d*/mapped to number num/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ +--replace_regex /\d{6} *\d*:\d\d:\d\d// /Start:.*at startup/Start: xxx/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /mapped to number \d*/mapped to number num/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ --exec $MYSQL_BINLOG --verbose --verbose --base64-output=DECODE-ROWS $datadir/$binlog DROP TABLE t1,t2; @@ -67,7 +67,7 @@ FLUSH BINARY LOGS; --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /\d{6} *\d*:\d\d:\d\d// /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /@3=\d*/@3=X/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ +--replace_regex /\d{6} *\d*:\d\d:\d\d// /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /@3=\d*/@3=X/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ --exec $MYSQL_BINLOG --verbose --verbose --base64-output=DECODE-ROWS $datadir/$binlog --start-position=$binlog_pos DROP TABLE t1,t2; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog_stmt_compressed.result mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog_stmt_compressed.result --- mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog_stmt_compressed.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog_stmt_compressed.result 2019-11-06 16:01:57.000000000 +0000 @@ -34,10 +34,10 @@ SET TIMESTAMP=X/*!*/; SET @@session.pseudo_thread_id=5/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/; -SET @@session.sql_mode=1411383296/*!*/; +SET @@session.sql_mode=#/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=#/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE TABLE t1 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 TINYINT, f4 MEDIUMINT, f5 BIGINT, f6 INT, f7 INT, f8 char(1)) diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog_stmt_compressed.test mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog_stmt_compressed.test --- mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog_stmt_compressed.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog_stmt_compressed.test 2019-11-06 16:01:57.000000000 +0000 @@ -29,7 +29,7 @@ FLUSH BINARY LOGS; --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /\d{6} *\d*:\d\d:\d\d// /Start:.*at startup/Start: xxx/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /mapped to number \d*/mapped to number num/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ +--replace_regex /\d{6} *\d*:\d\d:\d\d// /Start:.*at startup/Start: xxx/ /SET TIMESTAMP=\d*/SET TIMESTAMP=X/ /exec_time=\d*/exec_time=x/ /mapped to number \d*/mapped to number num/ /CRC32 0x[0-9a-f]+/CRC32 XXX/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ --exec $MYSQL_BINLOG --verbose --verbose --base64-output=DECODE-ROWS $datadir/$binlog --echo diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog.test mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog.test --- mariadb-10.3-10.3.17/mysql-test/main/mysqlbinlog.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqlbinlog.test 2019-11-06 16:01:57.000000000 +0000 @@ -54,7 +54,7 @@ # let $MYSQLD_DATADIR= `select @@datadir`; --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ +--replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ --exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ $MYSQLD_DATADIR/master-bin.000001 # this should not fail but shouldn't produce any working statements @@ -62,7 +62,7 @@ select "--- Broken LOAD DATA --" as ""; --enable_query_log --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ +--replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ --exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ $MYSQLD_DATADIR/master-bin.000002 2> /dev/null # this should show almost nothing @@ -70,7 +70,7 @@ select "--- --database --" as ""; --enable_query_log --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ +--replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ --exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --database=nottest $MYSQLD_DATADIR/master-bin.000001 2> /dev/null # this test for start-position option @@ -78,7 +78,7 @@ select "--- --start-position --" as ""; --enable_query_log --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ +--replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ --exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --start-position=$binlog_start_pos $MYSQLD_DATADIR/master-bin.000002 # These are tests for remote binlog. @@ -90,7 +90,7 @@ # This is broken now --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ +--replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ --exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 # This is broken too @@ -98,7 +98,7 @@ select "--- Broken LOAD DATA --" as ""; --enable_query_log --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ +--replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ --exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000002 2> /dev/null # And this too ! (altough it is documented) @@ -106,7 +106,7 @@ select "--- --database --" as ""; --enable_query_log --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ +--replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ --exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT --database=nottest master-bin.000001 2> /dev/null # Strangely but this works @@ -114,7 +114,7 @@ select "--- --start-position --" as ""; --enable_query_log --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ +--replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ --exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ --read-from-remote-server --start-position=$binlog_start_pos --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000002 # Bug#7853 mysqlbinlog does not accept input from stdin @@ -122,11 +122,11 @@ select "--- reading stdin --" as ""; --enable_query_log --replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR ---replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ +--replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ --exec $MYSQL_BINLOG --short-form - < $MYSQL_TEST_DIR/std_data/trunc_binlog.000001 --replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR ---replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ +--replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ # postion is constant to correspond to an event in pre-recorded binlog --let $binlog_start_pos=79 --exec $MYSQL_BINLOG --short-form --start-position=$binlog_start_pos - < $MYSQL_TEST_DIR/std_data/trunc_binlog.000001 @@ -214,7 +214,7 @@ drop procedure p1; --error ER_SP_DOES_NOT_EXIST call p1(); ---replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ +--replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ --exec $MYSQL_BINLOG --short-form $MYSQLD_DATADIR/master-bin.000008 --exec $MYSQL_BINLOG --short-form $MYSQLD_DATADIR/master-bin.000008 | $MYSQL call p1(); @@ -255,7 +255,7 @@ flush logs; --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ +--replace_regex /SQL_LOAD_MB-[0-9a-f]+-[0-9a-f]+/SQL_LOAD_MB-#-#/ /@@session.sql_mode=\d+/@@session.sql_mode=#/ /collation_server=\d+/collation_server=#/ --exec $MYSQL_BINLOG --short-form --local-load=$MYSQLTEST_VARDIR/tmp/ $MYSQLD_DATADIR/master-bin.000010 # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqlcheck.opt mariadb-10.3-10.3.20/mysql-test/main/mysqlcheck.opt --- mariadb-10.3-10.3.17/mysql-test/main/mysqlcheck.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqlcheck.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--character-set-server=latin1 --collation_server=latin1_swedish_ci diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqlcheck.result mariadb-10.3-10.3.20/mysql-test/main/mysqlcheck.result --- mariadb-10.3-10.3.17/mysql-test/main/mysqlcheck.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqlcheck.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,6 @@ call mtr.add_suppression("Invalid .old.. table or database name"); +set @save_character_set_client=@@character_set_client; +set @save_collation_connection=@@collation_connection; DROP TABLE IF EXISTS t1, `t``1`, `t 1`, test.`t.1`, v1; drop view if exists t1, `t``1`, `t 1`, test.`t.1`, v1; drop database if exists client_test_db; @@ -222,7 +224,9 @@ SHOW TABLES; Tables_in_test #mysql50#@ -SET NAMES DEFAULT; +set @@character_set_client=@save_character_set_client; +set @@character_set_results=@save_character_set_client; +set @@collation_connection=@save_collation_connection; mysqlcheck --fix-table-names --databases test SET NAMES utf8; SHOW TABLES; @@ -230,7 +234,9 @@ @ DROP TABLE `@`; CREATE TABLE `я` (a INT) engine=myisam; -SET NAMES DEFAULT; +set @@character_set_client=@save_character_set_client; +set @@character_set_results=@save_character_set_client; +set @@collation_connection=@save_collation_connection; call mtr.add_suppression("@003f.frm' \\(errno: 22\\)"); mysqlcheck --default-character-set="latin1" --databases test call mtr.add_suppression("Can't find file: '..test.@003f.frm'"); @@ -241,7 +247,9 @@ test.я OK SET NAMES utf8; DROP TABLE `я`; -SET NAMES DEFAULT; +set @@character_set_client=@save_character_set_client; +set @@character_set_results=@save_character_set_client; +set @@collation_connection=@save_collation_connection; CREATE DATABASE `#mysql50#a@b`; USE `#mysql50#a@b`; CREATE TABLE `#mysql50#c@d` (a INT) engine=myisam; @@ -479,5 +487,5 @@ status : OK select * from mysql.column_stats where db_name = 'test' and table_name = 't1'; db_name table_name column_name min_value max_value nulls_ratio avg_length avg_frequency hist_size hist_type histogram -test t1 a 1 3 0.0000 4.0000 1.0000 0 NULL NULL +test t1 a 1 3 0.0000 4.0000 1.0000 # # # drop table t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqlcheck.test mariadb-10.3-10.3.20/mysql-test/main/mysqlcheck.test --- mariadb-10.3-10.3.17/mysql-test/main/mysqlcheck.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqlcheck.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,8 +2,11 @@ # Embedded server doesn't support external clients --source include/not_embedded.inc - --source include/have_innodb.inc +--source include/default_charset.inc + +set @save_character_set_client=@@character_set_client; +set @save_collation_connection=@@collation_connection; # check that CSV engine was compiled in, as the result of the test # depends on the presence of the log tables (which are CSV-based). @@ -136,7 +139,10 @@ SET NAMES utf8; CREATE TABLE `#mysql50#@` (a INT) engine=myisam; SHOW TABLES; -SET NAMES DEFAULT; +# Safer version of SET NAMES DEFAULT: +set @@character_set_client=@save_character_set_client; +set @@character_set_results=@save_character_set_client; +set @@collation_connection=@save_collation_connection; --echo mysqlcheck --fix-table-names --databases test --exec $MYSQL_CHECK --fix-table-names --databases test SET NAMES utf8; @@ -144,7 +150,10 @@ DROP TABLE `@`; CREATE TABLE `я` (a INT) engine=myisam; -SET NAMES DEFAULT; +set @@character_set_client=@save_character_set_client; +set @@character_set_results=@save_character_set_client; +set @@collation_connection=@save_collation_connection; + call mtr.add_suppression("@003f.frm' \\(errno: 22\\)"); --echo mysqlcheck --default-character-set="latin1" --databases test # Error returned depends on platform, replace it with "Table doesn't exist" @@ -155,7 +164,9 @@ --exec $MYSQL_CHECK --default-character-set="utf8" --databases test SET NAMES utf8; DROP TABLE `я`; -SET NAMES DEFAULT; +set @@character_set_client=@save_character_set_client; +set @@character_set_results=@save_character_set_client; +set @@collation_connection=@save_collation_connection; CREATE DATABASE `#mysql50#a@b`; USE `#mysql50#a@b`; @@ -405,5 +416,6 @@ insert into t1 (a) values (1), (2), (3); select * from mysql.column_stats; --exec $MYSQL_CHECK --analyze test t1 --persistent +--replace_column 9 # 10 # 11 # select * from mysql.column_stats where db_name = 'test' and table_name = 't1'; drop table t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysql_client_test_nonblock.test mariadb-10.3-10.3.20/mysql-test/main/mysql_client_test_nonblock.test --- mariadb-10.3-10.3.17/mysql-test/main/mysql_client_test_nonblock.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysql_client_test_nonblock.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ + # This runs the mysql_client_test using the non-blocking API. # The non-blocking API is not supported in the embedded server. diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysql_client_test.result mariadb-10.3-10.3.20/mysql-test/main/mysql_client_test.result --- mariadb-10.3-10.3.17/mysql-test/main/mysql_client_test.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysql_client_test.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,9 @@ +SET @save_character_set_client= @@global.character_set_client; +SET @save_collation_connection= @@global.collation_connection; +SET @@global.character_set_server= @@character_set_server; +SET @@global.collation_server= @@collation_server; +SET @@global.character_set_client= @@character_set_server; +SET @@global.collation_connection= @@collation_server; SET @old_general_log= @@global.general_log; SET @old_slow_query_log= @@global.slow_query_log; call mtr.add_suppression(" Error reading file './client_test_db/test_frm_bug.frm'"); @@ -246,3 +252,7 @@ SET @@global.general_log= @old_general_log; SET @@global.slow_query_log= @old_slow_query_log; +SET @@global.character_set_server= @save_character_set_server; +SET @@global.collation_server= @save_collation_server; +SET @@global.character_set_client= @save_character_set_client; +SET @@global.collation_connection= @save_collation_connection; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysql_client_test.test mariadb-10.3-10.3.20/mysql-test/main/mysql_client_test.test --- mariadb-10.3-10.3.17/mysql-test/main/mysql_client_test.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysql_client_test.test 2019-11-06 16:01:57.000000000 +0000 @@ -5,6 +5,15 @@ # This test is slow on buildbot. --source include/big_test.inc +# Run test with default character set +--source include/default_charset.inc +SET @save_character_set_client= @@global.character_set_client; +SET @save_collation_connection= @@global.collation_connection; +SET @@global.character_set_server= @@character_set_server; +SET @@global.collation_server= @@collation_server; +SET @@global.character_set_client= @@character_set_server; +SET @@global.collation_connection= @@collation_server; + SET @old_general_log= @@global.general_log; SET @old_slow_query_log= @@global.slow_query_log; @@ -40,3 +49,7 @@ SET @@global.general_log= @old_general_log; SET @@global.slow_query_log= @old_slow_query_log; +SET @@global.character_set_server= @save_character_set_server; +SET @@global.collation_server= @save_collation_server; +SET @@global.character_set_client= @save_character_set_client; +SET @@global.collation_connection= @save_collation_connection; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysql_comments.test mariadb-10.3-10.3.20/mysql-test/main/mysql_comments.test --- mariadb-10.3-10.3.17/mysql-test/main/mysql_comments.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysql_comments.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,6 @@ # This test should work in embedded server after we fix mysqltest -- source include/not_embedded.inc + ###################### mysql_comments.test ############################# # # # Testing of comments handling by the command line client (mysql) # @@ -31,13 +32,12 @@ # Test without comments --echo "Pass 1 : --disable-comments" --replace_regex /[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}(.[0-9]{2})*/--TIME--/ ---exec $MYSQL --disable-comments test 2>&1 < "./main/mysql_comments.sql" +--exec $MYSQL --default-character-set=latin1 --disable-comments test 2>&1 < "./main/mysql_comments.sql" # Test with comments --echo "Pass 2 : --enable-comments" --replace_regex /[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}(.[0-9]{2})*/--TIME--/ ---exec $MYSQL --enable-comments test 2>&1 < "./main/mysql_comments.sql" - +--exec $MYSQL --default-character-set=latin1 --enable-comments test 2>&1 < "./main/mysql_comments.sql" set global sql_mode=default; --echo End of 5.0 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqld--help.result mariadb-10.3-10.3.20/mysql-test/main/mysqld--help.result --- mariadb-10.3-10.3.17/mysql-test/main/mysqld--help.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqld--help.result 2019-11-06 16:01:57.000000000 +0000 @@ -346,6 +346,10 @@ Specifies a directory to add to the ignore list when collecting database names from the datadir. Put a blank argument to reset the list accumulated so far. + --in-predicate-conversion-threshold=# + The minimum number of scalar elements in the value list + of IN predicate that triggers its conversion to IN + subquery. Set to 0 to disable the conversion. --init-connect=name Command(s) that are executed for each new connection (unless the user has SUPER privilege) --init-file=name Read SQL commands from this file at startup @@ -1442,6 +1446,7 @@ idle-write-transaction-timeout 0 ignore-builtin-innodb FALSE ignore-db-dirs +in-predicate-conversion-threshold 1000 init-connect init-file (No default value) init-rpl-role MASTER diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqld--help.test mariadb-10.3-10.3.20/mysql-test/main/mysqld--help.test --- mariadb-10.3-10.3.17/mysql-test/main/mysqld--help.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqld--help.test 2019-11-06 16:01:57.000000000 +0000 @@ -30,7 +30,7 @@ feedback debug temp-pool ssl des-key-file xtradb sequence thread-concurrency super-large-pages mutex-deadlock-detector connect null-audit aria oqgraph sphinx thread-handling - test-sql-discovery query-cache-info in-predicate-conversion-threshold + test-sql-discovery query-cache-info query-response-time metadata-lock-info locales unix-socket wsrep file-key-management cracklib-password-check user-variables/; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqldump-compat-102.test mariadb-10.3-10.3.20/mysql-test/main/mysqldump-compat-102.test --- mariadb-10.3-10.3.17/mysql-test/main/mysqldump-compat-102.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqldump-compat-102.test 2019-11-06 16:01:57.000000000 +0000 @@ -77,7 +77,7 @@ # mysqldump output is expected to have standalone PROCEDURE/FUNCTION, but not PACKAGE/PACKAGE BODY. --replace_regex /-- MySQL dump.*[^\n]/-- MySQL dump DUMPVERSION Distrib DISTVERSION, for OS/ / on [0-9 :-]+/ on TIMESTAMP/ ---exec $MYSQL_DUMP --quick --routines --triggers --no-create-info --skip-lock-tables --no-data --compress -uroot db1_mdev17429 +--exec $MYSQL_DUMP --quick --routines --triggers --no-create-info --skip-lock-tables --no-data --compress --default-character-set=utf8mb4 -uroot db1_mdev17429 DROP DATABASE db1_mdev17429; SET sql_mode=DEFAULT; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqldump-max.test mariadb-10.3-10.3.20/mysql-test/main/mysqldump-max.test --- mariadb-10.3-10.3.17/mysql-test/main/mysqldump-max.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqldump-max.test 2019-11-06 16:01:57.000000000 +0000 @@ -60,7 +60,9 @@ select * from t5; select * from t6; +--replace_result "NAMES utf8mb4" "NAMES utf8mb4" "NAMES utf8" "NAMES utf8mb4" --exec $MYSQL_DUMP --skip-comments --delayed-insert --insert-ignore --databases test +--replace_result "NAMES utf8mb4" "NAMES utf8mb4" "NAMES utf8" "NAMES utf8mb4" --exec $MYSQL_DUMP --skip-comments --delayed-insert --databases test drop table t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqldump-nl.test mariadb-10.3-10.3.20/mysql-test/main/mysqldump-nl.test --- mariadb-10.3-10.3.17/mysql-test/main/mysqldump-nl.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqldump-nl.test 2019-11-06 16:01:57.000000000 +0000 @@ -6,6 +6,7 @@ --source include/not_embedded.inc # cmd.exe doesn't like new lines on the command line --source include/not_windows.inc +--source include/default_charset.inc create database `mysqltest1 1tsetlqsym`; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqldump.opt mariadb-10.3-10.3.20/mysql-test/main/mysqldump.opt --- mariadb-10.3-10.3.17/mysql-test/main/mysqldump.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqldump.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--character_set_server=latin1 --collation_server=latin1_swedish_ci --sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqldump.test mariadb-10.3-10.3.20/mysql-test/main/mysqldump.test --- mariadb-10.3-10.3.17/mysql-test/main/mysqldump.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqldump.test 2019-11-06 16:01:57.000000000 +0000 @@ -87,10 +87,10 @@ SET SQL_MODE=@OLD_SQL_MODE; # check how mysqldump make quoting ---exec $MYSQL_DUMP --compact test t1 ---exec $MYSQL_DUMP --compact --skip-create-options test t1 ---exec $MYSQL_DUMP --skip-create-options --skip-comments test t1 ---exec $MYSQL_DUMP --skip-opt --extended-insert --skip-comments test t1 +--exec $MYSQL_DUMP --compact --default-character-set=utf8mb4 test t1 +--exec $MYSQL_DUMP --compact --skip-create-options --default-character-set=utf8mb4 test t1 +--exec $MYSQL_DUMP --skip-create-options --skip-comments --default-character-set=utf8mb4 test t1 +--exec $MYSQL_DUMP --skip-opt --extended-insert --skip-comments --default-character-set=utf8mb4 test t1 DROP TABLE t1; CREATE TABLE t1(a int, b text, c varchar(3)); @@ -114,7 +114,7 @@ CREATE TABLE t1 (a VARCHAR(255)) DEFAULT CHARSET koi8r; INSERT INTO t1 VALUES (_koi8r x'C1C2C3C4C5'), (NULL); ---exec $MYSQL_DUMP --skip-comments --skip-extended-insert test t1 +--exec $MYSQL_DUMP --skip-comments --skip-extended-insert --default-character-set=utf8mb4 test t1 DROP TABLE t1; --echo # @@ -123,8 +123,8 @@ CREATE TABLE t1 (a int) ENGINE=MYISAM; INSERT INTO t1 VALUES (1), (2); ---exec $MYSQL_DUMP --skip-comments --compatible=mysql40 test t1 ---exec $MYSQL_DUMP --skip-comments --compatible=mysql323 test t1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --compatible=mysql40 test t1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --compatible=mysql323 test t1 DROP TABLE t1; --echo # @@ -140,11 +140,11 @@ --echo # create table t1(a int); ---exec $MYSQL_DUMP --comments=0 test ---exec $MYSQL_DUMP --comments=0 --compatible=ansi test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --comments=0 test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --comments=0 --compatible=ansi test set global sql_mode='ANSI_QUOTES'; ---exec $MYSQL_DUMP --comments=0 test ---exec $MYSQL_DUMP --comments=0 --compatible=ansi test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --comments=0 test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --comments=0 --compatible=ansi test set global sql_mode=default; drop table t1; @@ -154,12 +154,12 @@ create table t1(a int); insert into t1 values (1),(2),(3); ---exec $MYSQL_DUMP --skip-comments --tab=$MYSQLTEST_VARDIR/tmp/ test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --tab=$MYSQLTEST_VARDIR/tmp/ test --cat_file $MYSQLTEST_VARDIR/tmp/t1.sql --cat_file $MYSQLTEST_VARDIR/tmp/t1.txt --remove_file $MYSQLTEST_VARDIR/tmp/t1.sql --remove_file $MYSQLTEST_VARDIR/tmp/t1.txt ---exec $MYSQL_DUMP --tab=$MYSQLTEST_VARDIR/tmp/ test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ test --remove_file $MYSQLTEST_VARDIR/tmp/t1.sql --remove_file $MYSQLTEST_VARDIR/tmp/t1.txt drop table t1; @@ -168,10 +168,10 @@ --echo # Bug#6101 create database problem --echo # ---exec $MYSQL_DUMP --skip-comments --databases test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --databases test create database mysqldump_test_db character set latin2 collate latin2_bin; ---exec $MYSQL_DUMP --skip-comments --databases mysqldump_test_db +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --databases mysqldump_test_db drop database mysqldump_test_db; --echo # @@ -183,7 +183,7 @@ CREATE TABLE t1 (a CHAR(10)); INSERT INTO t1 VALUES (_latin1 ''); ---exec $MYSQL_DUMP --character-sets-dir=$MYSQL_SHAREDIR/charsets --skip-comments test t1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --character-sets-dir=$MYSQL_SHAREDIR/charsets --skip-comments test t1 --echo # --echo # Bug#8063 make test mysqldump [ fail ] @@ -193,7 +193,7 @@ --echo # checking that "mysqldump" is compiled with "latin1" --echo # -#--exec $MYSQL_DUMP --character-sets-dir=$MYSQL_SHAREDIR/charsets --skip-comments --compatible=mysql323 test t1 +#--exec $MYSQL_DUMP --default-character-set=utf8mb4 --character-sets-dir=$MYSQL_SHAREDIR/charsets --skip-comments --compatible=mysql323 test t1 --exec $MYSQL_DUMP --character-sets-dir=$MYSQL_SHAREDIR/charsets --skip-comments --compatible=mysql323 --default-character-set=cp850 test t1 --exec $MYSQL_DUMP --character-sets-dir=$MYSQL_SHAREDIR/charsets --skip-comments --default-character-set=cp850 --compatible=mysql323 test t1 --exec $MYSQL_DUMP --character-sets-dir=$MYSQL_SHAREDIR/charsets --skip-comments --default-character-set=utf8 --compatible=mysql323 test t1 @@ -207,7 +207,7 @@ CREATE TABLE t2 (a int); INSERT INTO t1 VALUES (1),(2),(3); INSERT INTO t2 VALUES (4),(5),(6); ---exec $MYSQL_DUMP --skip-comments --ignore-table=test.t1 test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --ignore-table=test.t1 test DROP TABLE t1; DROP TABLE t2; @@ -217,7 +217,7 @@ CREATE TABLE t1 (`b` blob); INSERT INTO `t1` VALUES (0x602010000280100005E71A); ---exec $MYSQL_DUMP --skip-extended-insert --hex-blob test --skip-comments t1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-extended-insert --hex-blob test --skip-comments t1 DROP TABLE t1; --echo # @@ -227,8 +227,8 @@ CREATE TABLE t1 (a INT) ENGINE=MyISAM; INSERT INTO t1 VALUES (1),(2),(3); INSERT INTO t1 VALUES (4),(5),(6); ---exec $MYSQL_DUMP --skip-comments --insert-ignore test t1 ---exec $MYSQL_DUMP --skip-comments --insert-ignore --delayed-insert test t1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --insert-ignore test t1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --insert-ignore --delayed-insert test t1 DROP TABLE t1; --echo # @@ -567,7 +567,7 @@ F_6faa8040da20ef399b63a72d0e4ab575 int, F_fe73f687e5bc5280214e0486b273a5f9 int); insert into t1 (F_8d3bba7425e7c98c50f52ca1b52d3735) values (1); ---exec $MYSQL_DUMP --skip-comments -c test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments -c test drop table t1; --echo # @@ -576,7 +576,7 @@ CREATE TABLE t1 (a int); INSERT INTO t1 VALUES (1),(2),(3); ---exec $MYSQL_DUMP --add-drop-database --skip-comments --databases test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --add-drop-database --skip-comments --databases test DROP TABLE t1; --echo # @@ -589,10 +589,10 @@ CREATE TABLE t2 ( a INT ); INSERT INTO t1 VALUES (1), (2); INSERT INTO t2 VALUES (1), (2); ---exec $MYSQL_DUMP --skip-comments --no-data mysqldump_test_db ---exec $MYSQL_DUMP --skip-comments --no-data mysqldump_test_db t1 t2 ---exec $MYSQL_DUMP --skip-comments --skip-create-options --xml --no-data mysqldump_test_db ---exec $MYSQL_DUMP --skip-comments --skip-create-options --xml --no-data mysqldump_test_db t1 t2 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --no-data mysqldump_test_db +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --no-data mysqldump_test_db t1 t2 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --skip-create-options --xml --no-data mysqldump_test_db +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --skip-create-options --xml --no-data mysqldump_test_db t1 t2 DROP TABLE t1, t2; DROP DATABASE mysqldump_test_db; @@ -683,11 +683,11 @@ a int(10), b varchar(30), c datetime, d blob, e text); insert into t1 values (NULL), (10), (20); insert into t2 (a, b) values (NULL, NULL),(10, NULL),(NULL, "twenty"),(30, "thirty"); ---exec $MYSQL_DUMP --skip-comments --xml --no-create-info test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --xml --no-create-info test # Test if UNIQUE_CHECK is done correctly ---exec $MYSQL_DUMP --skip-comments --no-create-info test ---exec $MYSQL_DUMP --skip-comments test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --no-create-info test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments test drop table t1, t2; @@ -698,7 +698,7 @@ create table t1 (a text character set utf8, b text character set latin1); insert t1 values (0x4F736E616272C3BC636B, 0x4BF66C6E); select * from t1; ---exec $MYSQL_DUMP --tab=$MYSQLTEST_VARDIR/tmp/ test +--exec $MYSQL_DUMP --disable-default-character-set --tab=$MYSQLTEST_VARDIR/tmp/ test --exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/t1.sql --exec $MYSQL_IMPORT test $MYSQLTEST_VARDIR/tmp/t1.txt select * from t1; @@ -731,7 +731,7 @@ show create table `t1`; ---exec $MYSQL_DUMP --skip-comments test t1 > $MYSQLTEST_VARDIR/tmp/bug19025.sql +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments test t1 > $MYSQLTEST_VARDIR/tmp/bug19025.sql DROP TABLE `t1`; --exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/bug19025.sql @@ -753,7 +753,7 @@ create table t3(a int); --replace_result mysqldump.exe mysqldump --error 6 ---exec $MYSQL_DUMP --skip-comments --force --no-data test t3 t1 non_existing t2 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --force --no-data test t3 t1 non_existing t2 drop table t1, t2, t3; @@ -764,7 +764,7 @@ create table t1 (a int); --replace_result mysqldump.exe mysqldump --error 2 ---exec $MYSQL_DUMP --skip-comments --force test t1 --where="xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 2>&1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --force test t1 --where="xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 2>&1 drop table t1; @@ -782,8 +782,8 @@ ) ENGINE=MyISAM DEFAULT CHARSET=latin1; insert into t1 values (0815, 4711, 2006); ---exec $MYSQL_DUMP --skip-comments --compatible=ansi --order-by-primary test t1 ---exec $MYSQL_DUMP --skip-comments --order-by-primary test t1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --compatible=ansi --order-by-primary test t1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --order-by-primary test t1 DROP TABLE `t1`; --enable_warnings @@ -808,7 +808,7 @@ INSERT INTO t2 VALUES ('waffle'); INSERT INTO t2 VALUES ('lemon'); create view v2 as select * from t2 where a like 'a%' with check option; ---exec $MYSQL_DUMP --skip-comments db1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments db1 drop table t2; drop view v2; drop database db1; @@ -858,7 +858,7 @@ create table t1(a int); create view v1 as select * from t1; ---exec $MYSQL_DUMP --skip-comments test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments test drop view v1; drop table t1; @@ -881,7 +881,7 @@ INSERT INTO t2 VALUES ('waffle'); INSERT INTO t2 VALUES ('lemon'); create view v2 as select * from t2 where a like 'a%' with check option; ---exec $MYSQL_DUMP --skip-comments mysqldump_test_db +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments mysqldump_test_db drop table t2; drop view v2; drop database mysqldump_test_db; @@ -893,7 +893,7 @@ CREATE TABLE t1 (a char(10)); INSERT INTO t1 VALUES ('\''); ---exec $MYSQL_DUMP --skip-comments test t1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments test t1 DROP TABLE t1; --echo # @@ -913,7 +913,7 @@ create view v2 as select v3.a from v3, v1 where v1.a=v3.a and v3.b=3 limit 1; ---exec $MYSQL_DUMP --skip-comments test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments test drop view v1, v2, v3; drop table t1; @@ -955,11 +955,11 @@ INSERT INTO t1 (a) VALUES (1),(2),(3),(22); update t1 set a = 4 where a=3; # Triggers should be dumped by default ---exec $MYSQL_DUMP --skip-comments --databases test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --databases test # Skip dumping triggers ---exec $MYSQL_DUMP --skip-comments --databases --skip-triggers test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --databases --skip-triggers test # Dump and reload... ---exec $MYSQL_DUMP --skip-comments --databases test > $MYSQLTEST_VARDIR/tmp/mysqldump.sql +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --databases test > $MYSQLTEST_VARDIR/tmp/mysqldump.sql drop table t1; --exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/mysqldump.sql # Check that tables have been reloaded @@ -1005,7 +1005,7 @@ SELECT * FROM `test2`; # dump ---exec $MYSQL_DUMP --skip-comments --databases test > $MYSQLTEST_VARDIR/tmp/mysqldump.sql +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --databases test > $MYSQLTEST_VARDIR/tmp/mysqldump.sql #DROP TRIGGER testref; #DROP TABLE test1; @@ -1062,7 +1062,7 @@ set sql_mode=''; # Dump the DB and ROUTINES ---exec $MYSQL_DUMP --skip-comments --routines --databases test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --routines --databases test # ok, now blow it all away DROP FUNCTION bug9056_func1; @@ -1090,8 +1090,8 @@ # results should show two same time values, despite unique select * from t1; set global time_zone='Europe/Moscow'; ---exec $MYSQL_DUMP --skip-comments --databases test ---exec $MYSQL_DUMP --skip-tz-utc --skip-comments --databases test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --databases test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-tz-utc --skip-comments --databases test drop table t1; set global time_zone=default; set time_zone=default; @@ -1124,7 +1124,7 @@ SELECT * FROM `t2 test`; # dump with compatible=ansi. Everything except triggers should be double # quoted ---exec $MYSQL_DUMP --skip-comments --compatible=ansi --triggers test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --compatible=ansi --triggers test DROP TRIGGER `test trig`; DROP TABLE `t1 test`; @@ -1147,7 +1147,7 @@ create view v2 as select * from v0; select * from v2; ---exec $MYSQL_DUMP -x --skip-comments --databases test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 -x --skip-comments --databases test drop view v2; drop view v0; @@ -1173,7 +1173,7 @@ SET SQL_MODE = @old_sql_mode; ---exec $MYSQL_DUMP --skip-comments --databases test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --databases test DROP TRIGGER tr1; DROP TABLE t1; @@ -1184,8 +1184,8 @@ create table t1 (a binary(1), b blob); insert into t1 values ('',''); ---exec $MYSQL_DUMP --skip-comments --skip-extended-insert --hex-blob test t1 ---exec $MYSQL_DUMP --skip-comments --hex-blob test t1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --skip-extended-insert --hex-blob test t1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --hex-blob test t1 drop table t1; --echo # @@ -1201,7 +1201,7 @@ create algorithm =temptable view v5 as select * from t1; # dump tables and views ---exec $MYSQL_DUMP test > $MYSQLTEST_VARDIR/tmp/bug14871.sql +--exec $MYSQL_DUMP --default-character-set=utf8mb4 test > $MYSQLTEST_VARDIR/tmp/bug14871.sql # drop the db, tables and views drop table t1; @@ -1236,7 +1236,7 @@ delimiter ;| # dump table and trigger ---exec $MYSQL_DUMP test > $MYSQLTEST_VARDIR/tmp/bug16878.sql +--exec $MYSQL_DUMP --default-character-set=utf8mb4 test > $MYSQLTEST_VARDIR/tmp/bug16878.sql drop trigger tr1; drop trigger tr2; drop table t1, t2; @@ -1261,7 +1261,7 @@ create view v1 as select qty, price, qty*price as value from t; create view v2 as select qty from v1; --echo mysqldump { ---exec $MYSQL_DUMP --compact -F --tab $MYSQLTEST_VARDIR/tmp test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --compact -F --tab $MYSQLTEST_VARDIR/tmp test --cat_file $MYSQLTEST_VARDIR/tmp/v1.sql --echo } mysqldump { --cat_file $MYSQLTEST_VARDIR/tmp/v2.sql @@ -1302,7 +1302,7 @@ --echo mysqldump { --replace_result mysqldump.exe mysqldump --error 2 ---exec $MYSQL_DUMP --force -N --compact --skip-comments test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --force -N --compact --skip-comments test --echo } mysqldump drop view v1; @@ -1319,7 +1319,7 @@ insert into t1 values (4711); insert into t1 values (3231); insert into t1 values (0815); ---exec $MYSQL_DUMP --skip-comments --add-drop-database --databases mysqldump_test_db +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --add-drop-database --databases mysqldump_test_db drop view v1; drop table t1; drop database mysqldump_test_db; @@ -1337,7 +1337,7 @@ use mysqldump_views; create view nasishnasifu as select mysqldump_tables.basetable.id from mysqldump_tables.basetable; ---exec $MYSQL_DUMP --skip-comments --compact --databases mysqldump_tables mysqldump_views +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --compact --databases mysqldump_tables mysqldump_views drop view nasishnasifu; drop database mysqldump_views; @@ -1360,7 +1360,7 @@ insert into t1 values (2,2); create view v1 as select f1, f2 from t1; ---exec $MYSQL_DUMP --skip-comments --add-drop-database --databases mysqldump_dba mysqldump_dbb > $MYSQLTEST_VARDIR/tmp/bug20221_backup +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --add-drop-database --databases mysqldump_dba mysqldump_dbb > $MYSQLTEST_VARDIR/tmp/bug20221_backup drop view v1; drop table t1; @@ -1400,13 +1400,13 @@ # Execute mysqldump, will fail on FLUSH TABLES --replace_result mysqldump.exe mysqldump --error 2 ---exec $MYSQL_DUMP --compact --master-data -u mysqltest_1 test 2>&1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --compact --master-data -u mysqltest_1 test 2>&1 # Execute mysqldump, will fail on FLUSH TABLES # use --force, should no affect behaviour --replace_result mysqldump.exe mysqldump --error 2 ---exec $MYSQL_DUMP --compact --force --master-data -u mysqltest_1 test 2>&1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --compact --force --master-data -u mysqltest_1 test 2>&1 # Add RELOAD grants grant RELOAD on *.* to mysqltest_1@localhost; @@ -1414,20 +1414,20 @@ # Execute mysqldump, will fail on SHOW MASTER STATUS --replace_result mysqldump.exe mysqldump --error 2 ---exec $MYSQL_DUMP --compact --master-data -u mysqltest_1 test 2>&1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --compact --master-data -u mysqltest_1 test 2>&1 # Execute mysqldump, will fail on SHOW MASTER STATUS. # use --force, should not alter behaviour --replace_result mysqldump.exe mysqldump --error 2 ---exec $MYSQL_DUMP --compact --force --master-data -u mysqltest_1 test 2>&1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --compact --force --master-data -u mysqltest_1 test 2>&1 # Add REPLICATION CLIENT grants grant REPLICATION CLIENT on *.* to mysqltest_1@localhost; # Execute mysqldump, should now succeed --disable_result_log ---exec $MYSQL_DUMP --compact --master-data -u mysqltest_1 test 2>&1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --compact --master-data -u mysqltest_1 test 2>&1 --enable_result_log # Clean up @@ -1458,7 +1458,7 @@ create view v1 (c1) as select * from t1; # Backup should not fail for Bug#21527. Flush priviliges test begins. ---exec $MYSQL_DUMP --skip-comments --add-drop-table --flush-privileges --ignore-table=mysql.general_log --ignore-table=mysql.slow_log --ignore-table=mysql.transaction_registry --databases mysqldump_myDB mysql > $MYSQLTEST_VARDIR/tmp/bug21527.sql +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --add-drop-table --flush-privileges --ignore-table=mysql.general_log --ignore-table=mysql.slow_log --ignore-table=mysql.transaction_registry --databases mysqldump_myDB mysql > $MYSQLTEST_VARDIR/tmp/bug21527.sql # Clean up connection root; @@ -1507,7 +1507,7 @@ --echo # --echo # Bug #33762: mysqldump can not dump INFORMATION_SCHEMA --echo # ---exec $MYSQL_DUMP --compact --opt -d information_schema TABLES +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --compact --opt -d information_schema TABLES --echo # --echo # Bug#19745 mysqldump --xml produces invalid xml @@ -1520,7 +1520,7 @@ CREATE TABLE t1 (f1 int(10), data MEDIUMBLOB); INSERT INTO t1 VALUES(1,0xff00fef0); ---exec $MYSQL_DUMP --xml --hex-blob --skip-create-options test t1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --xml --hex-blob --skip-create-options test t1 DROP TABLE t1; @@ -1535,19 +1535,19 @@ # too long a file path causes an error --replace_result mysqldump.exe mysqldump --error 1 ---exec $MYSQL_DUMP --tab=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test 2>&1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test 2>&1 ---exec $MYSQL_DUMP --tab=$MYSQLTEST_VARDIR/tmp/ --fields-terminated-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-terminated-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test --replace_result mysqldump.exe mysqldump --error 2 ---exec $MYSQL_DUMP --tab=$MYSQLTEST_VARDIR/tmp/ --fields-enclosed-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-enclosed-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test --replace_result mysqldump.exe mysqldump --error 2 ---exec $MYSQL_DUMP --tab=$MYSQLTEST_VARDIR/tmp/ --fields-optionally-enclosed-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-optionally-enclosed-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test --replace_result mysqldump.exe mysqldump --error 2 ---exec $MYSQL_DUMP --tab=$MYSQLTEST_VARDIR/tmp/ --fields-escaped-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test ---exec $MYSQL_DUMP --tab=$MYSQLTEST_VARDIR/tmp/ --lines-terminated-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --fields-escaped-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ --lines-terminated-by=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa test --remove_file $MYSQLTEST_VARDIR/tmp/t1.sql --remove_file $MYSQLTEST_VARDIR/tmp/t1.txt @@ -1561,7 +1561,7 @@ CREATE TABLE t2 (a INT) ENGINE=MyISAM; CREATE TABLE t3 (a INT) ENGINE=MyISAM; CREATE TABLE t1 (a INT) ENGINE=merge UNION=(t2, t3); ---exec $MYSQL_DUMP --skip-comments -c test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments -c test DROP TABLE t1, t2, t3; @@ -1582,7 +1582,7 @@ create view v3 as select bug23491_original.f1(); # Backup. ---exec $MYSQL_DUMP --skip-comments -uroot --opt --routines bug23491_original > $MYSQLTEST_VARDIR/tmp/bug23491_backup.sql +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments -uroot --opt --routines bug23491_original > $MYSQLTEST_VARDIR/tmp/bug23491_backup.sql # Restore. --exec $MYSQL bug23491_restore < $MYSQLTEST_VARDIR/tmp/bug23491_backup.sql @@ -1648,7 +1648,7 @@ --echo # CREATE VIEW v1 AS SELECT 1; ---exec $MYSQL_DUMP --skip-add-drop-table test > $MYSQLTEST_VARDIR/tmp/bug28524.sql +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-add-drop-table test > $MYSQLTEST_VARDIR/tmp/bug28524.sql DROP VIEW v1; --exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/bug28524.sql @@ -1673,7 +1673,7 @@ SET SQL_MODE = @TMP_SQL_MODE; SELECT * FROM t2; ---exec $MYSQL_DUMP --routines test >$MYSQLTEST_VARDIR/tmp/bug29788.sql +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --routines test >$MYSQLTEST_VARDIR/tmp/bug29788.sql --exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/bug29788.sql SELECT * FROM t2; @@ -1688,15 +1688,15 @@ --echo # --skip-dump-date: --replace_regex /-- [^D][^u][^m][^p].*// /\/\*!.*// ---exec $MYSQL_DUMP --skip-dump-date test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-dump-date test --echo # --dump-date: --replace_regex /-- [^D][^u][^m][^p].*// /\/\*!.*// / on [0-9 :-]+/ on DATE/ ---exec $MYSQL_DUMP --dump-date test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --dump-date test --echo # --dump-date (default): --replace_regex /-- [^D][^u][^m][^p].*// /\/\*!.*// / on [0-9 :-]+/ on DATE/ ---exec $MYSQL_DUMP test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 test --echo # --echo # Bug #42635: mysqldump includes views that were excluded using @@ -1708,7 +1708,7 @@ create table t1 (id int); create view db42635.v1 (c) as select * from db42635.t1; create view db42635.v2 (c) as select * from db42635.t1; ---exec $MYSQL_DUMP --skip-comments --ignore-table=db42635.v1 db42635 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --ignore-table=db42635.v1 db42635 use test; drop database db42635; @@ -1744,7 +1744,7 @@ INSERT INTO t1 VALUES (1,1); INSERT INTO t1 VALUES (2,3); INSERT INTO t1 VALUES (3,4), (4,5); ---exec $MYSQL_DUMP --replace --skip-comments test t1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --replace --skip-comments test t1 DROP TABLE t1; # @@ -1759,7 +1759,7 @@ insert t2 values ("a more perfect", "union"); select * from t1; select * from t2; ---exec $MYSQL_DUMP --tab=$MYSQLTEST_VARDIR/tmp/ test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ test --exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/t1.sql --exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/t2.sql # The first load tests the pausing code @@ -1801,7 +1801,7 @@ create event ee1 on schedule at '2035-12-31 20:01:23' do set @a=5; show events; show create event ee1; ---exec $MYSQL_DUMP --events first > $MYSQLTEST_VARDIR/tmp/bug16853-1.sql +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --events first > $MYSQLTEST_VARDIR/tmp/bug16853-1.sql drop database first; create database second; @@ -1816,7 +1816,7 @@ create event ee2 on schedule at '2030-12-31 21:01:22' do set @a=5; create event ee3 on schedule at '2030-12-31 22:01:23' do set @a=5; show events; ---exec $MYSQL_DUMP --events second > $MYSQLTEST_VARDIR/tmp/bug16853-2.sql +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --events second > $MYSQLTEST_VARDIR/tmp/bug16853-2.sql drop database second; create database third; @@ -1844,7 +1844,7 @@ insert into t1 values (4711); insert into t1 values (3231); insert into t1 values (0815); ---exec $MYSQL_DUMP --skip-comments --add-drop-database --databases mysqldump_test_db +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --add-drop-database --databases mysqldump_test_db drop view v1; drop table t1; drop database mysqldump_test_db; @@ -1852,7 +1852,7 @@ # # Bug#26121 mysqldump includes LOCK TABLES general_log WRITE # ---exec $MYSQL_DUMP --all-databases > $MYSQLTEST_VARDIR/tmp/bug26121.sql +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --all-databases > $MYSQLTEST_VARDIR/tmp/bug26121.sql --exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug26121.sql --remove_file $MYSQLTEST_VARDIR/tmp/bug26121.sql @@ -1924,7 +1924,7 @@ USE test; CREATE event e29938 ON SCHEDULE AT '2035-12-31 20:01:23' DO SET @bug29938=29938; SHOW EVENTS; ---exec $MYSQL_DUMP --skip-events --all-databases > $MYSQLTEST_VARDIR/tmp/bug29938.sql +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-events --all-databases > $MYSQLTEST_VARDIR/tmp/bug29938.sql TRUNCATE mysql.event; --exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug29938.sql @@ -1935,7 +1935,7 @@ --echo # MDEV-13336: add ignore-database option --echo # with --all-databases --echo # ---exec $MYSQL_DUMP --ignore-database test --all-databases > $MYSQLTEST_VARDIR/tmp/mysqldump-MDEV-13336.sql +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --ignore-database test --all-databases > $MYSQLTEST_VARDIR/tmp/mysqldump-MDEV-13336.sql DROP DATABASE test; --exec $MYSQL < $MYSQLTEST_VARDIR/tmp/mysqldump-MDEV-13336.sql SHOW DATABASES LIKE 'test'; @@ -1979,7 +1979,7 @@ --echo --echo ---> Dumping mysqldump_test_db to bug30217.sql ---exec $MYSQL_DUMP --character-sets-dir=$MYSQL_SHAREDIR/charsets --databases mysqldump_test_db > $MYSQLTEST_VARDIR/tmp/bug30217.sql +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --character-sets-dir=$MYSQL_SHAREDIR/charsets --databases mysqldump_test_db > $MYSQLTEST_VARDIR/tmp/bug30217.sql --echo @@ -2013,7 +2013,7 @@ create table t1 (a int); create view v1 as select a from t1; ---exec $MYSQL_DUMP --skip-comments --tab=$MYSQLTEST_VARDIR/tmp/ test t1 v1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments --tab=$MYSQLTEST_VARDIR/tmp/ test t1 v1 drop view v1; drop table t1; @@ -2133,17 +2133,17 @@ --replace_result mysqldump.exe mysqldump --error 2 ---exec $MYSQL_DUMP --tab=$MYSQLTEST_VARDIR/tmp/ --fields-enclosed-by='12345' test t1 +--exec $MYSQL_DUMP --disable-default-character-set --tab=$MYSQLTEST_VARDIR/tmp/ --fields-enclosed-by='12345' test t1 --remove_file $file --replace_result mysqldump.exe mysqldump --error 2 ---exec $MYSQL_DUMP --tab=$MYSQLTEST_VARDIR/tmp/ --fields-escaped-by='12345' test t1 +--exec $MYSQL_DUMP --disable-default-character-set --tab=$MYSQLTEST_VARDIR/tmp/ --fields-escaped-by='12345' test t1 --remove_file $file --echo # default '--default-charset' (binary): ---exec $MYSQL_DUMP --character-sets-dir=$MYSQL_SHAREDIR/charsets --tab=$MYSQLTEST_VARDIR/tmp/ test t1 +--exec $MYSQL_DUMP --disable-default-character-set --character-sets-dir=$MYSQL_SHAREDIR/charsets --tab=$MYSQLTEST_VARDIR/tmp/ test t1 --echo ################################################## --cat_file $file --echo ################################################## @@ -2367,7 +2367,7 @@ RETURNS CHAR(50) DETERMINISTIC RETURN CONCAT(']]>, ', s, '!'); ---exec $MYSQL_DUMP --character-sets-dir=$CHARSETSDIR --skip-comments --default-character-set=utf8 --compatible=mysql323 -R -X BUG52792 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --character-sets-dir=$CHARSETSDIR --skip-comments --default-character-set=utf8 --compatible=mysql323 -R -X BUG52792 DROP DATABASE BUG52792; @@ -2384,7 +2384,7 @@ --echo # CREATE TABLE t1 (a INT); # no_t = no_table_options; no_f = no_field_options ---exec $MYSQL_DUMP --compatible=no_t,no_f --skip-comments test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --compatible=no_t,no_f --skip-comments test DROP TABLE t1; --echo # @@ -2415,7 +2415,7 @@ # mixing of normal (stdout) and --verbose (stderr) output will happen in random # order depending on stdio internal buffer size. --replace_regex /-- Server version.*// /-- MySQL dump .*// /-- Dump completed on .*/-- Dump completed/ ---exec $MYSQL_DUMP --verbose --single-transaction --flush-logs b12809202_db 2>&1 > $MYSQLTEST_VARDIR/tmp/bug61854.sql +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --verbose --single-transaction --flush-logs b12809202_db 2>&1 > $MYSQLTEST_VARDIR/tmp/bug61854.sql --echo --echo #### Dump ends here #### @@ -2440,7 +2440,7 @@ SET @old_slow_query_log_state= @@global.slow_query_log; call mtr.add_suppression("Failed to write to mysql.general_log"); ---exec $MYSQL_DUMP -uroot --all-databases > $MYSQLTEST_VARDIR/tmp/bug45740.sql +--exec $MYSQL_DUMP --default-character-set=utf8mb4 -uroot --all-databases > $MYSQLTEST_VARDIR/tmp/bug45740.sql # Make log_output as table and disabling general_log and slow_log SET @@global.log_output="TABLE"; SET @@global.general_log='OFF'; @@ -2460,7 +2460,7 @@ create table t1 (g GEOMETRY) CHARSET koi8r; create table t2 (g GEOMETRY) CHARSET koi8r; insert into t1 values (point(1,1)), (point(2,2)); ---exec $MYSQL_DUMP --hex-blob --character-sets-dir=$MYSQL_SHAREDIR/charsets --tab=$MYSQLTEST_VARDIR/tmp/ test t1 +--exec $MYSQL_DUMP --disable-default-character-set --hex-blob --character-sets-dir=$MYSQL_SHAREDIR/charsets --tab=$MYSQLTEST_VARDIR/tmp/ test t1 --echo ################################################## --cat_file $file --echo ################################################## @@ -2488,7 +2488,7 @@ SELECT * FROM t1; SELECT * FROM t2; ---exec $MYSQL_DUMP --tab=$MYSQLTEST_VARDIR/tmp/ db_20772273 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --tab=$MYSQLTEST_VARDIR/tmp/ db_20772273 --exec $MYSQL db_20772273 < $MYSQLTEST_VARDIR/tmp/t1.sql --exec $MYSQL db_20772273 < $MYSQLTEST_VARDIR/tmp/t2.sql @@ -2543,7 +2543,7 @@ WHERE ROUTINE_SCHEMA='bug25717383' AND ROUTINE_TYPE= 'PROCEDURE' ORDER BY ROUTINE_NAME; ---exec $MYSQL_DUMP --triggers --events --routines --add-drop-database --databases bug25717383 > $MYSQLTEST_VARDIR/tmp/bug25717383.sql +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --triggers --events --routines --add-drop-database --databases bug25717383 > $MYSQLTEST_VARDIR/tmp/bug25717383.sql SHOW TABLES FROM bug25717383; --replace_column 6 # @@ -2561,14 +2561,14 @@ # MDEV-6091 mysqldump goes in a loop and segfaults if --dump-slave is specified and it cannot connect to the server # --error 2 ---exec $MYSQL_DUMP -hunknownhost --dump-slave nulldb +--exec $MYSQL_DUMP --default-character-set=utf8mb4 -hunknownhost --dump-slave nulldb # # MDEV-6056 [PATCH] mysqldump writes usage to stdout even when not explicitly requested # --replace_result mysqldump.exe mysqldump --error 1 ---exec $MYSQL_DUMP --user=foo 2>&1 > $MYSQLTEST_VARDIR/tmp/bug6056.out +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --user=foo 2>&1 > $MYSQLTEST_VARDIR/tmp/bug6056.out --exec $MYSQL_DUMP --help > $MYSQLTEST_VARDIR/tmp/bug6056.out --echo # @@ -2596,8 +2596,8 @@ create table t1 (a int); insert into t1 values (1); ---exec $MYSQL_DUMP --hex-blob --character-sets-dir=$MYSQL_SHAREDIR/charsets --tab=$MYSQLTEST_VARDIR/tmp/ test t1 ---exec $MYSQL_DUMP --disable-log-queries --skip-comments test t1 >$MYSQLTEST_VARDIR/tmp/mysqldump-test.out +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --hex-blob --character-sets-dir=$MYSQL_SHAREDIR/charsets --tab=$MYSQLTEST_VARDIR/tmp/ test t1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --disable-log-queries --skip-comments test t1 >$MYSQLTEST_VARDIR/tmp/mysqldump-test.out drop table t1; --exec $MYSQL test < $MYSQLTEST_VARDIR/tmp/mysqldump-test.out @@ -2658,7 +2658,7 @@ CREATE VIEW v1 AS SELECT f(); --echo # Running mysqldump -uroot test --routines --tables v1 > **vardir**/test.dmp ---exec $MYSQL_DUMP -uroot test --routines --tables v1 > $MYSQLTEST_VARDIR/test.dmp +--exec $MYSQL_DUMP --default-character-set=utf8mb4 -uroot test --routines --tables v1 > $MYSQLTEST_VARDIR/test.dmp DROP VIEW v1; DROP FUNCTION f; @@ -2709,7 +2709,7 @@ SET NEW.b=NEW.a + 10; INSERT INTO t1 (a) VALUES (1),(2),(3); ---exec $MYSQL_DUMP --triggers --no-data --no-create-info --add-drop-trigger --skip-comments --databases test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --triggers --no-data --no-create-info --add-drop-trigger --skip-comments --databases test DROP TABLE t1; --echo # --echo # Test for Invisible columns @@ -2740,10 +2740,10 @@ --echo #Check side effect on --complete insert --exec $MYSQL_DUMP --compact --complete-insert d --echo #Check xml ---exec $MYSQL_DUMP --skip-create-options --skip-comments -X d +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-create-options --skip-comments -X d #import data ---exec $MYSQL_DUMP --skip-comments d > $MYSQLTEST_VARDIR/tmp/invisible_dump.sql +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-comments d > $MYSQLTEST_VARDIR/tmp/invisible_dump.sql DROP table t1,t2,t3; --exec $MYSQL d < $MYSQLTEST_VARDIR/tmp/invisible_dump.sql diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysqldump-utf8mb4.test mariadb-10.3-10.3.20/mysql-test/main/mysqldump-utf8mb4.test --- mariadb-10.3-10.3.17/mysql-test/main/mysqldump-utf8mb4.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysqldump-utf8mb4.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,6 @@ --source include/have_utf8mb4.inc --source include/not_embedded.inc +--source include/default_charset.inc SET NAMES utf8mb4; @@ -18,14 +19,14 @@ --echo Testing XML format output --echo ---- ---exec $MYSQL_DUMP --skip-create-options --skip-comments -X test t1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-create-options --skip-comments -X test t1 --echo ---- --echo Testing text format output --echo ---- ---exec $MYSQL_DUMP --skip-create-options --skip-comments test t1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-create-options --skip-comments test t1 DROP TABLE t1; @@ -42,7 +43,7 @@ ) CHARACTER SET utf8mb4; INSERT INTO t1 VALUES ('01f300', UNHEX('f09f8c80'), 'U+1F300 CYCLONE'); ---exec $MYSQL_DUMP test t1 > $file +--exec $MYSQL_DUMP --default-character-set=utf8mb4 test t1 > $file DROP TABLE t1; --exec $MYSQL test < $file SELECT * FROM t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysql.test mariadb-10.3-10.3.20/mysql-test/main/mysql.test --- mariadb-10.3-10.3.17/mysql-test/main/mysql.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysql.test 2019-11-06 16:01:57.000000000 +0000 @@ -694,7 +694,7 @@ --exec $MYSQL --disable-local-infile -e "$ldli" select count(*) from t1; truncate table t1; --error 1 ---exec $MYSQL -e "/*q*/$ldli" +--exec $MYSQL --local-infile=0 -e "/*q*/$ldli" select count(*) from t1; truncate table t1; --exec $MYSQL --enable-local-infile -e "/*q*/$ldli" select count(*) from t1; truncate table t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/mysql_tzinfo_to_sql_symlink.result mariadb-10.3-10.3.20/mysql-test/main/mysql_tzinfo_to_sql_symlink.result --- mariadb-10.3-10.3.17/mysql-test/main/mysql_tzinfo_to_sql_symlink.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/mysql_tzinfo_to_sql_symlink.result 2019-11-06 16:01:57.000000000 +0000 @@ -2,9 +2,15 @@ # MDEV-5226 mysql_tzinfo_to_sql errors with tzdata 2013f and above # # Verbose run -set @prep=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET GLOBAL wsrep_replicate_myisam=?', 'do ?'); -prepare set_wsrep_myisam from @prep; -set @toggle=1; execute set_wsrep_myisam using @toggle; +\d | +IF (select count(*) from information_schema.global_variables where +variable_name='wsrep_on') = 1 THEN +ALTER TABLE time_zone ENGINE=InnoDB; +ALTER TABLE time_zone_name ENGINE=InnoDB; +ALTER TABLE time_zone_transition ENGINE=InnoDB; +ALTER TABLE time_zone_transition_type ENGINE=InnoDB; +END IF| +\d ; TRUNCATE TABLE time_zone; TRUNCATE TABLE time_zone_name; TRUNCATE TABLE time_zone_transition; @@ -28,11 +34,25 @@ Warning: Skipping directory 'MYSQLTEST_VARDIR/zoneinfo/posix/posix': to avoid infinite symlink recursion. ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time; ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id; -set @toggle=0; execute set_wsrep_myisam using @toggle; +\d | +IF (select count(*) from information_schema.global_variables where +variable_name='wsrep_on') = 1 THEN +ALTER TABLE time_zone ENGINE=MyISAM; +ALTER TABLE time_zone_name ENGINE=MyISAM; +ALTER TABLE time_zone_transition ENGINE=MyISAM; +ALTER TABLE time_zone_transition_type ENGINE=MyISAM; +END IF| +\d ; # Silent run -set @prep=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET GLOBAL wsrep_replicate_myisam=?', 'do ?'); -prepare set_wsrep_myisam from @prep; -set @toggle=1; execute set_wsrep_myisam using @toggle; +\d | +IF (select count(*) from information_schema.global_variables where +variable_name='wsrep_on') = 1 THEN +ALTER TABLE time_zone ENGINE=InnoDB; +ALTER TABLE time_zone_name ENGINE=InnoDB; +ALTER TABLE time_zone_transition ENGINE=InnoDB; +ALTER TABLE time_zone_transition_type ENGINE=InnoDB; +END IF| +\d ; TRUNCATE TABLE time_zone; TRUNCATE TABLE time_zone_name; TRUNCATE TABLE time_zone_transition; @@ -53,39 +73,83 @@ Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/posix/garbage' as time zone. Skipping it. ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time; ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id; -set @toggle=0; execute set_wsrep_myisam using @toggle; +\d | +IF (select count(*) from information_schema.global_variables where +variable_name='wsrep_on') = 1 THEN +ALTER TABLE time_zone ENGINE=MyISAM; +ALTER TABLE time_zone_name ENGINE=MyISAM; +ALTER TABLE time_zone_transition ENGINE=MyISAM; +ALTER TABLE time_zone_transition_type ENGINE=MyISAM; +END IF| +\d ; # # Testing with explicit timezonefile # -set @prep=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET GLOBAL wsrep_replicate_myisam=?', 'do ?'); -prepare set_wsrep_myisam from @prep; -set @toggle=1; execute set_wsrep_myisam using @toggle; INSERT INTO time_zone (Use_leap_seconds) VALUES ('N'); SET @time_zone_id= LAST_INSERT_ID(); INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('XXX', @time_zone_id); INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES (@time_zone_id, 0, 0, 0, 'GMT') ; -set @toggle=0; execute set_wsrep_myisam using @toggle; +\d | +IF (select count(*) from information_schema.global_variables where +variable_name='wsrep_on') = 1 THEN +ALTER TABLE time_zone ENGINE=MyISAM; +ALTER TABLE time_zone_name ENGINE=MyISAM; +ALTER TABLE time_zone_transition ENGINE=MyISAM; +ALTER TABLE time_zone_transition_type ENGINE=MyISAM; +END IF| +\d ; # # Testing --leap # -set @prep=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET GLOBAL wsrep_replicate_myisam=?', 'do ?'); -prepare set_wsrep_myisam from @prep; -set @toggle=1; execute set_wsrep_myisam using @toggle; +\d | +IF (select count(*) from information_schema.global_variables where +variable_name='wsrep_on') = 1 THEN +ALTER TABLE time_zone_leap_second ENGINE=InnoDB; +END IF| +\d ; TRUNCATE TABLE time_zone_leap_second; +\d | +IF (select count(*) from information_schema.global_variables where +variable_name='wsrep_on') = 1 THEN +ALTER TABLE time_zone_leap_second ENGINE=MyISAM; +END IF| +\d ; ALTER TABLE time_zone_leap_second ORDER BY Transition_time; -set @toggle=0; execute set_wsrep_myisam using @toggle; +\d | +IF (select count(*) from information_schema.global_variables where +variable_name='wsrep_on') = 1 THEN +ALTER TABLE time_zone ENGINE=MyISAM; +ALTER TABLE time_zone_name ENGINE=MyISAM; +ALTER TABLE time_zone_transition ENGINE=MyISAM; +ALTER TABLE time_zone_transition_type ENGINE=MyISAM; +END IF| +\d ; # # MDEV-6236 - [PATCH] mysql_tzinfo_to_sql may produce invalid SQL # -set @prep=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET GLOBAL wsrep_replicate_myisam=?', 'do ?'); -prepare set_wsrep_myisam from @prep; -set @toggle=1; execute set_wsrep_myisam using @toggle; +\d | +IF (select count(*) from information_schema.global_variables where +variable_name='wsrep_on') = 1 THEN +ALTER TABLE time_zone ENGINE=InnoDB; +ALTER TABLE time_zone_name ENGINE=InnoDB; +ALTER TABLE time_zone_transition ENGINE=InnoDB; +ALTER TABLE time_zone_transition_type ENGINE=InnoDB; +END IF| +\d ; TRUNCATE TABLE time_zone; TRUNCATE TABLE time_zone_name; TRUNCATE TABLE time_zone_transition; TRUNCATE TABLE time_zone_transition_type; ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time; ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id; -set @toggle=0; execute set_wsrep_myisam using @toggle; +\d | +IF (select count(*) from information_schema.global_variables where +variable_name='wsrep_on') = 1 THEN +ALTER TABLE time_zone ENGINE=MyISAM; +ALTER TABLE time_zone_name ENGINE=MyISAM; +ALTER TABLE time_zone_transition ENGINE=MyISAM; +ALTER TABLE time_zone_transition_type ENGINE=MyISAM; +END IF| +\d ; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/named_pipe.result mariadb-10.3-10.3.20/mysql-test/main/named_pipe.result --- mariadb-10.3-10.3.17/mysql-test/main/named_pipe.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/named_pipe.result 2019-11-06 16:01:57.000000000 +0000 @@ -1348,8 +1348,10 @@ 250503 250505 250504 250505 250505 250505 -SET @save_optimizer_switch=@@optimizer_switch; -SET optimizer_switch='outer_join_with_cache=off'; +SET @local_optimizer_switch=@@optimizer_switch; +set @local_join_cache_level=@@join_cache_level; +set @@join_cache_level=2; +set optimizer_switch='outer_join_with_cache=off,join_cache_hashed=off'; insert into t2 (fld1, companynr) values (999999,99); select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null; companynr companyname @@ -1425,7 +1427,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where 1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where -SET optimizer_switch=@save_optimizer_switch; +SET @@optimizer_switch=@local_optimizer_switch; select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1; companynr companynr 37 36 @@ -1434,6 +1436,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary 1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join) +SET @@join_cache_level=@local_join_cache_level; select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008; fld1 companynr fld3 period 038008 37 reporters 1008 diff -Nru mariadb-10.3-10.3.17/mysql-test/main/openssl_1.test mariadb-10.3-10.3.20/mysql-test/main/openssl_1.test --- mariadb-10.3-10.3.17/mysql-test/main/openssl_1.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/openssl_1.test 2019-11-06 16:01:57.000000000 +0000 @@ -166,17 +166,17 @@ INSERT INTO t1 VALUES (1), (2); # Run mysqldump ---exec $MYSQL_DUMP --skip-create-options --skip-comments --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test t1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-create-options --skip-comments --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test t1 ---exec $MYSQL_DUMP --skip-create-options --skip-comments --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-create-options --skip-comments --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test ---exec $MYSQL_DUMP --skip-create-options --skip-comments --ssl --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-create-options --skip-comments --ssl --ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test # With wrong parameters --replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR mysqldump.exe mysqldump --replace_regex /SSL connection error.*/SSL connection error: xxxx/ --error 2 ---exec $MYSQL_DUMP --skip-create-options --skip-comments --ssl --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test 2>&1 +--exec $MYSQL_DUMP --default-character-set=utf8mb4 --skip-create-options --skip-comments --ssl --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem test 2>&1 --echo DROP TABLE t1; --remove_file $MYSQLTEST_VARDIR/tmp/test.sql diff -Nru mariadb-10.3-10.3.17/mysql-test/main/opt_tvc.result mariadb-10.3-10.3.20/mysql-test/main/opt_tvc.result --- mariadb-10.3-10.3.17/mysql-test/main/opt_tvc.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/opt_tvc.result 2019-11-06 16:01:57.000000000 +0000 @@ -46,12 +46,12 @@ 2 5 explain extended select * from t1 where a in (1,2); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 2 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 3 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where `test`.`t1`.`a` = `tvc_0`.`_col_1` +Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where 1 explain extended select * from t1 where a in ( @@ -59,12 +59,12 @@ from (values (1),(2)) as tvc_0 ); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 2 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 3 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where `test`.`t1`.`a` = `tvc_0`.`1` +Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where 1 # AND-condition with IN-predicates in WHERE-part select * from t1 where a in (1,2) and @@ -90,15 +90,15 @@ where a in (1,2) and b in (1,5); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 4 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 2 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 5 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used 3 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) semi join ((values (1),(5)) `tvc_1`) where `test`.`t1`.`b` = `tvc_1`.`_col_1` +Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) semi join ((values (1),(5)) `tvc_1`) where 1 explain extended select * from t1 where a in ( @@ -111,15 +111,15 @@ from (values (1),(5)) as tvc_1 ); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 4 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 2 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 5 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used 3 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) semi join ((values (1),(5)) `tvc_1`) where `test`.`t1`.`b` = `tvc_1`.`1` +Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) semi join ((values (1),(5)) `tvc_1`) where 1 # subquery with IN-predicate select * from t1 where a in @@ -206,12 +206,12 @@ where a in (1,2) ) as dr_table; id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 3 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 4 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where `test`.`t1`.`a` = `tvc_0`.`_col_1` +Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where 1 explain extended select * from ( select * @@ -224,12 +224,12 @@ ) ) as dr_table; id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 3 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 4 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where `test`.`t1`.`a` = `tvc_0`.`1` +Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where 1 # non-recursive CTE with IN-predicate with tvc_0 as ( @@ -265,12 +265,12 @@ ) select * from tvc_0; id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 3 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 4 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 with tvc_0 as (/* select#2 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where `test`.`t1`.`a` in (1,2))/* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where `test`.`t1`.`a` = `tvc_0`.`_col_1` +Note 1003 with tvc_0 as (/* select#2 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where `test`.`t1`.`a` in (1,2))/* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where 1 explain extended select * from ( select * @@ -283,12 +283,12 @@ ) ) as dr_table; id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 3 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 4 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where `test`.`t1`.`a` = `tvc_0`.`1` +Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where 1 # VIEW with IN-predicate create view v1 as select * @@ -316,20 +316,20 @@ 2 5 explain extended select * from v1; id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 3 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 4 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where `test`.`t1`.`a` = `tvc_0`.`_col_1` +Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where 1 explain extended select * from v2; id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 3 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 4 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where `test`.`t1`.`a` = `tvc_0`.`1` +Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where 1 drop view v1,v2; # subselect defined by derived table with IN-predicate select * from t1 @@ -519,12 +519,12 @@ 1 2 explain extended select * from t1 where (a,b) in ((1,2),(3,4)); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 8 func,func 1 100.00 2 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 3 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1,2),(3,4)) `tvc_0`) where `test`.`t1`.`a` = `tvc_0`.`_col_1` and `test`.`t1`.`b` = `tvc_0`.`_col_2` +Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1,2),(3,4)) `tvc_0`) where 1 set @@in_predicate_conversion_threshold= 2; # trasformation works for the one IN predicate and doesn't work for the other set @@in_predicate_conversion_threshold= 5; @@ -538,12 +538,12 @@ where (a,b) in ((1,2),(8,9)) and (a,c) in ((1,3),(8,0),(5,1)); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 100.00 -1 PRIMARY t2 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t2 ALL NULL NULL NULL NULL 6 100.00 Using where +1 PRIMARY eq_ref distinct_key distinct_key 8 func,func 1 100.00 2 MATERIALIZED ALL NULL NULL NULL NULL 3 100.00 3 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t2` semi join ((values (1,3),(8,0),(5,1)) `tvc_0`) where `test`.`t2`.`a` = `tvc_0`.`_col_1` and `test`.`t2`.`c` = `tvc_0`.`_col_2` and (`tvc_0`.`_col_1`,`test`.`t2`.`b`) in (((1,2)),((8,9))) +Note 1003 /* select#1 */ select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t2` semi join ((values (1,3),(8,0),(5,1)) `tvc_0`) where (`test`.`t2`.`a`,`test`.`t2`.`b`) in (((1,2)),((8,9))) set @@in_predicate_conversion_threshold= 2; # # mdev-14281: conversion of NOT IN predicate into subquery predicate diff -Nru mariadb-10.3-10.3.17/mysql-test/main/opt_tvc.test mariadb-10.3-10.3.20/mysql-test/main/opt_tvc.test --- mariadb-10.3-10.3.17/mysql-test/main/opt_tvc.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/opt_tvc.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,6 +2,7 @@ # MDEV-12176 Transform [NOT] IN predicate with long list of values INTO [NOT] IN subquery # source include/have_debug.inc; +source include/default_optimizer_switch.inc; create table t1 (a int, b int); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/order_by_innodb.result mariadb-10.3-10.3.20/mysql-test/main/order_by_innodb.result --- mariadb-10.3-10.3.17/mysql-test/main/order_by_innodb.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/order_by_innodb.result 2019-11-06 16:01:57.000000000 +0000 @@ -49,6 +49,32 @@ 1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL # Using sort_union(key1,key2); Using where drop table t0, t1; # +# MDEV-18094: Query with order by limit picking index scan over filesort +# +create table t0 (a int); +INSERT INTO t0 VALUES (0),(0),(0),(0),(2),(0),(0),(1),(1),(0); +CREATE TABLE t1 ( +a int(11), +b int(11), +c int(11), +KEY a_c (a,c), +KEY a_b (a,b) +) ENGINE=InnoDB; +insert into t1 select A.a , B.a, C.a from t0 A, t0 B, t0 C; +# should use ref access +explain select a,b,c from t1 where a=1 and c=2 order by b; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 ref a_c,a_b a_c 10 const,const 20 Using where; Using filesort +# both should use range access +explain select a,b,c from t1 where a=1 and c=2 order by b limit 1000; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range a_c,a_b a_b 5 NULL 200 Using where +explain select a,b,c from t1 where a=1 and c=2 order by b limit 2000; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range a_c,a_b a_b 5 NULL 200 Using where +drop table t1,t0; +# Start of 10.2 tests +# # MDEV-14071: wrong results with orderby_uses_equalities=on # (duplicate of MDEV-13994) # @@ -121,3 +147,4 @@ 656 eight set optimizer_switch= @save_optimizer_switch; DROP TABLE t1,t2,t3; +# End of 10.2 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/order_by_innodb.test mariadb-10.3-10.3.20/mysql-test/main/order_by_innodb.test --- mariadb-10.3-10.3.17/mysql-test/main/order_by_innodb.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/order_by_innodb.test 2019-11-06 16:01:57.000000000 +0000 @@ -63,6 +63,32 @@ drop table t0, t1; --echo # +--echo # MDEV-18094: Query with order by limit picking index scan over filesort +--echo # + +create table t0 (a int); +INSERT INTO t0 VALUES (0),(0),(0),(0),(2),(0),(0),(1),(1),(0); + +CREATE TABLE t1 ( +a int(11), +b int(11), +c int(11), +KEY a_c (a,c), +KEY a_b (a,b) +) ENGINE=InnoDB; +insert into t1 select A.a , B.a, C.a from t0 A, t0 B, t0 C; + +--echo # should use ref access +explain select a,b,c from t1 where a=1 and c=2 order by b; + +--echo # both should use range access +explain select a,b,c from t1 where a=1 and c=2 order by b limit 1000; +explain select a,b,c from t1 where a=1 and c=2 order by b limit 2000; +drop table t1,t0; + +--echo # Start of 10.2 tests + +--echo # --echo # MDEV-14071: wrong results with orderby_uses_equalities=on --echo # (duplicate of MDEV-13994) --echo # @@ -108,3 +134,5 @@ set optimizer_switch= @save_optimizer_switch; DROP TABLE t1,t2,t3; + +--echo # End of 10.2 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/partition_debug_sync.result mariadb-10.3-10.3.20/mysql-test/main/partition_debug_sync.result --- mariadb-10.3-10.3.17/mysql-test/main/partition_debug_sync.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/partition_debug_sync.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,3 @@ -DROP TABLE IF EXISTS t1, t2; SET DEBUG_SYNC= 'RESET'; # # Bug#42438: Crash ha_partition::change_table_ptr diff -Nru mariadb-10.3-10.3.17/mysql-test/main/partition_debug_sync.test mariadb-10.3-10.3.20/mysql-test/main/partition_debug_sync.test --- mariadb-10.3-10.3.17/mysql-test/main/partition_debug_sync.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/partition_debug_sync.test 2019-11-06 16:01:57.000000000 +0000 @@ -8,10 +8,7 @@ --source include/have_debug.inc --source include/have_innodb.inc ---disable_warnings -DROP TABLE IF EXISTS t1, t2; SET DEBUG_SYNC= 'RESET'; ---enable_warnings --echo # --echo # Bug#42438: Crash ha_partition::change_table_ptr diff -Nru mariadb-10.3-10.3.17/mysql-test/main/partition_example.opt mariadb-10.3-10.3.20/mysql-test/main/partition_example.opt --- mariadb-10.3-10.3.17/mysql-test/main/partition_example.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/partition_example.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--plugin-maturity=unknown diff -Nru mariadb-10.3-10.3.17/mysql-test/main/partition_innodb.result mariadb-10.3-10.3.20/mysql-test/main/partition_innodb.result --- mariadb-10.3-10.3.17/mysql-test/main/partition_innodb.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/partition_innodb.result 2019-11-06 16:01:57.000000000 +0000 @@ -1028,5 +1028,29 @@ 2 DROP TABLE t1; # +# MDEV-18244 Server crashes in ha_innobase::update_thd / ... / ha_partition::update_next_auto_inc_val +# +CREATE TABLE t1 (a INT) +ENGINE=InnoDB +PARTITION BY RANGE (a) ( +PARTITION p0 VALUES LESS THAN (6), +PARTITION pn VALUES LESS THAN MAXVALUE +); +INSERT INTO t1 VALUES (4),(5),(6); +ALTER TABLE t1 MODIFY a INT AUTO_INCREMENT PRIMARY KEY; +UPDATE t1 PARTITION (p0) SET a = 3 WHERE a = 5; +INSERT INTO t1 PARTITION(p0) VALUES (); +ERROR HY000: Found a row not matching the given partition set +INSERT INTO t1 PARTITION(p0) VALUES (-1); +INSERT INTO t1 VALUES (); +SELECT * FROM t1; +a +-1 +1 +3 +4 +6 +DROP TABLE t1; +# # End of 10.3 tests # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/partition_innodb.test mariadb-10.3-10.3.20/mysql-test/main/partition_innodb.test --- mariadb-10.3-10.3.17/mysql-test/main/partition_innodb.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/partition_innodb.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,7 @@ --source include/not_embedded.inc --source include/have_partition.inc --source include/have_innodb.inc +--source include/default_optimizer_switch.inc call mtr.add_suppression("Deadlock found when trying to get lock; try restarting transaction"); @@ -1105,5 +1106,25 @@ DROP TABLE t1; --echo # +--echo # MDEV-18244 Server crashes in ha_innobase::update_thd / ... / ha_partition::update_next_auto_inc_val +--echo # + +CREATE TABLE t1 (a INT) + ENGINE=InnoDB + PARTITION BY RANGE (a) ( + PARTITION p0 VALUES LESS THAN (6), + PARTITION pn VALUES LESS THAN MAXVALUE + ); +INSERT INTO t1 VALUES (4),(5),(6); +ALTER TABLE t1 MODIFY a INT AUTO_INCREMENT PRIMARY KEY; +UPDATE t1 PARTITION (p0) SET a = 3 WHERE a = 5; +--error ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET +INSERT INTO t1 PARTITION(p0) VALUES (); +INSERT INTO t1 PARTITION(p0) VALUES (-1); +INSERT INTO t1 VALUES (); +SELECT * FROM t1; +DROP TABLE t1; + +--echo # --echo # End of 10.3 tests --echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/partition_key_cache.result mariadb-10.3-10.3.20/mysql-test/main/partition_key_cache.result --- mariadb-10.3-10.3.17/mysql-test/main/partition_key_cache.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/partition_key_cache.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,9 +1,7 @@ DROP TABLE IF EXISTS t1, t2, v, x; # Actual test of key caches # Verifing that reads/writes use the key cache correctly -SELECT @org_key_cache_buffer_size:= @@global.default.key_buffer_size; -@org_key_cache_buffer_size:= @@global.default.key_buffer_size -1048576 +SET @org_key_cache_buffer_size= @@global.default.key_buffer_size; # Minimize default key cache (almost disabled). SET @@global.default.key_buffer_size = 4096; CREATE TABLE t1 ( diff -Nru mariadb-10.3-10.3.17/mysql-test/main/partition_key_cache.test mariadb-10.3-10.3.20/mysql-test/main/partition_key_cache.test --- mariadb-10.3-10.3.17/mysql-test/main/partition_key_cache.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/partition_key_cache.test 2019-11-06 16:01:57.000000000 +0000 @@ -7,7 +7,7 @@ --echo # Actual test of key caches --echo # Verifing that reads/writes use the key cache correctly -SELECT @org_key_cache_buffer_size:= @@global.default.key_buffer_size; +SET @org_key_cache_buffer_size= @@global.default.key_buffer_size; --echo # Minimize default key cache (almost disabled). SET @@global.default.key_buffer_size = 4096; CREATE TABLE t1 ( diff -Nru mariadb-10.3-10.3.17/mysql-test/main/partition_pruning.test mariadb-10.3-10.3.20/mysql-test/main/partition_pruning.test --- mariadb-10.3-10.3.17/mysql-test/main/partition_pruning.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/partition_pruning.test 2019-11-06 16:01:57.000000000 +0000 @@ -3,6 +3,7 @@ # prune, so the test is EXPLAINs. # -- source include/have_partition.inc +--source include/default_optimizer_switch.inc --disable_warnings drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/partition_range.result mariadb-10.3-10.3.20/mysql-test/main/partition_range.result --- mariadb-10.3-10.3.17/mysql-test/main/partition_range.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/partition_range.result 2019-11-06 16:01:57.000000000 +0000 @@ -981,4 +981,31 @@ SHOW status LIKE 'handler_read_key'; Variable_name Value Handler_read_key 4 +# +# MDEV-18501 Partition pruning doesn't work for historical queries +# +set time_zone= '+00:00'; +create or replace table t1 (d datetime(6)) +partition by range (unix_timestamp(d)) ( +partition p0 values less than (1), +partition p1 values less than (maxvalue)); +ERROR HY000: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed +# DECIMAL functions are now allowed, partitioning is done by integer part +create or replace table t1 (d timestamp(6)) +partition by range (unix_timestamp(d)) ( +partition p0 values less than (946684801), +partition p1 values less than (maxvalue)); +insert into t1 values +# go to p0 +('2000-01-01 00:00:00'), +('2000-01-01 00:00:00.000001'), +# goes to p1 +('2000-01-01 00:00:01'); +select * from t1 partition (p0); +d +2000-01-01 00:00:00.000000 +2000-01-01 00:00:00.000001 +select * from t1 partition (p1); +d +2000-01-01 00:00:01.000000 DROP TABLE t1, t2; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/partition_range.test mariadb-10.3-10.3.20/mysql-test/main/partition_range.test --- mariadb-10.3-10.3.17/mysql-test/main/partition_range.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/partition_range.test 2019-11-06 16:01:57.000000000 +0000 @@ -971,4 +971,31 @@ --echo # Should be no more than 4 reads. SHOW status LIKE 'handler_read_key'; +--echo # +--echo # MDEV-18501 Partition pruning doesn't work for historical queries +--echo # +set time_zone= '+00:00'; +let $ts= `select unix_timestamp('2000-01-01 00:00:00') + 1`; + +--error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR +create or replace table t1 (d datetime(6)) +partition by range (unix_timestamp(d)) ( + partition p0 values less than (1), + partition p1 values less than (maxvalue)); + +--echo # DECIMAL functions are now allowed, partitioning is done by integer part +eval create or replace table t1 (d timestamp(6)) +partition by range (unix_timestamp(d)) ( + partition p0 values less than ($ts), + partition p1 values less than (maxvalue)); + +insert into t1 values + # go to p0 + ('2000-01-01 00:00:00'), + ('2000-01-01 00:00:00.000001'), + # goes to p1 + ('2000-01-01 00:00:01'); +select * from t1 partition (p0); +select * from t1 partition (p1); + DROP TABLE t1, t2; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/partition_ucs2.result mariadb-10.3-10.3.20/mysql-test/main/partition_ucs2.result --- mariadb-10.3-10.3.17/mysql-test/main/partition_ucs2.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/partition_ucs2.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,13 @@ +# +# Start of 10.3 tests +# +# +# MDEV-20855 Crash with PARTITION BY LIST and extended characters +# +SET NAMES utf8; +CREATE OR REPLACE TABLE t1 (a TIME) +PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN (_ucs2 0x0411)); +ERROR HY000: This partition function is not allowed +# +# End of 10.3 tests +# diff -Nru mariadb-10.3-10.3.17/mysql-test/main/partition_ucs2.test mariadb-10.3-10.3.20/mysql-test/main/partition_ucs2.test --- mariadb-10.3-10.3.17/mysql-test/main/partition_ucs2.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/partition_ucs2.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,19 @@ +--source include/have_partition.inc +--source include/have_ucs2.inc + +--echo # +--echo # Start of 10.3 tests +--echo # + +--echo # +--echo # MDEV-20855 Crash with PARTITION BY LIST and extended characters +--echo # + +SET NAMES utf8; +--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED +CREATE OR REPLACE TABLE t1 (a TIME) + PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN (_ucs2 0x0411)); + +--echo # +--echo # End of 10.3 tests +--echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/partition_utf8.result mariadb-10.3-10.3.20/mysql-test/main/partition_utf8.result --- mariadb-10.3-10.3.17/mysql-test/main/partition_utf8.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/partition_utf8.result 2019-11-06 16:01:57.000000000 +0000 @@ -51,3 +51,19 @@ insert into t1 values (''); insert into t1 values (_ucs2 0x2020); drop table t1; +# +# Start of 10.3 tests +# +# +# MDEV-20855 Crash with PARTITION BY LIST and extended characters +# +SET NAMES utf8; +CREATE OR REPLACE TABLE t1 (a CHAR(10)) CHARACTER SET latin1 +PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN ('Б')); +ERROR HY000: This partition function is not allowed +CREATE OR REPLACE TABLE t1 (a TIME) +PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN ('Б')); +ERROR HY000: This partition function is not allowed +# +# End of 10.3 tests +# diff -Nru mariadb-10.3-10.3.17/mysql-test/main/partition_utf8.test mariadb-10.3-10.3.20/mysql-test/main/partition_utf8.test --- mariadb-10.3-10.3.17/mysql-test/main/partition_utf8.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/partition_utf8.test 2019-11-06 16:01:57.000000000 +0000 @@ -40,3 +40,25 @@ insert into t1 values (''); insert into t1 values (_ucs2 0x2020); drop table t1; + +--echo # +--echo # Start of 10.3 tests +--echo # + +--echo # +--echo # MDEV-20855 Crash with PARTITION BY LIST and extended characters +--echo # + +SET NAMES utf8; + +--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED +CREATE OR REPLACE TABLE t1 (a CHAR(10)) CHARACTER SET latin1 + PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN ('Б')); + +--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED +CREATE OR REPLACE TABLE t1 (a TIME) + PARTITION BY LIST COLUMNS (a) (PARTITION p0 VALUES IN ('Б')); + +--echo # +--echo # End of 10.3 tests +--echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/plugin_innodb.opt mariadb-10.3-10.3.20/mysql-test/main/plugin_innodb.opt --- mariadb-10.3-10.3.17/mysql-test/main/plugin_innodb.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/plugin_innodb.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--plugin-maturity=unknown diff -Nru mariadb-10.3-10.3.17/mysql-test/main/plugin_load.opt mariadb-10.3-10.3.20/mysql-test/main/plugin_load.opt --- mariadb-10.3-10.3.17/mysql-test/main/plugin_load.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/plugin_load.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +--plugin-maturity=unknown --plugin-load-add=$DIALOG_EXAMPLES_SO --plugin-load=$LIBDAEMON_EXAMPLE_SO --plugin-load-add=EXAMPLE=$HA_EXAMPLE_SO diff -Nru mariadb-10.3-10.3.17/mysql-test/main/plugin_load_option.opt mariadb-10.3-10.3.20/mysql-test/main/plugin_load_option.opt --- mariadb-10.3-10.3.17/mysql-test/main/plugin_load_option.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/plugin_load_option.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1,2 +1,3 @@ +--plugin-maturity=unknown --plugin-load-add=EXAMPLE=$HA_EXAMPLE_SO --loose-plugin-example=FORCE_PLUS_PERMANENT diff -Nru mariadb-10.3-10.3.17/mysql-test/main/plugin_not_embedded.opt mariadb-10.3-10.3.20/mysql-test/main/plugin_not_embedded.opt --- mariadb-10.3-10.3.17/mysql-test/main/plugin_not_embedded.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/plugin_not_embedded.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--plugin-maturity=unknown diff -Nru mariadb-10.3-10.3.17/mysql-test/main/plugin.opt mariadb-10.3-10.3.20/mysql-test/main/plugin.opt --- mariadb-10.3-10.3.17/mysql-test/main/plugin.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/plugin.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--plugin-maturity=unknown diff -Nru mariadb-10.3-10.3.17/mysql-test/main/pool_of_threads.result mariadb-10.3-10.3.20/mysql-test/main/pool_of_threads.result --- mariadb-10.3-10.3.17/mysql-test/main/pool_of_threads.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/pool_of_threads.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,3 @@ -SET @save_optimizer_switch=@@optimizer_switch; SET optimizer_switch='outer_join_with_cache=off'; drop table if exists t1,t2,t3,t4; CREATE TABLE t1 ( @@ -1349,8 +1348,10 @@ 250503 250505 250504 250505 250505 250505 -SET @save_optimizer_switch=@@optimizer_switch; -SET optimizer_switch='outer_join_with_cache=off'; +SET @local_optimizer_switch=@@optimizer_switch; +set @local_join_cache_level=@@join_cache_level; +set @@join_cache_level=2; +set optimizer_switch='outer_join_with_cache=off,join_cache_hashed=off'; insert into t2 (fld1, companynr) values (999999,99); select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null; companynr companyname @@ -1426,7 +1427,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where 1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where -SET optimizer_switch=@save_optimizer_switch; +SET @@optimizer_switch=@local_optimizer_switch; select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1; companynr companynr 37 36 @@ -1435,6 +1436,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary 1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join) +SET @@join_cache_level=@local_join_cache_level; select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008; fld1 companynr fld3 period 038008 37 reporters 1008 @@ -2156,7 +2158,7 @@ Warnings: Warning 1052 Column 'kundentyp' in group statement is ambiguous drop table t1; -SET optimizer_switch=@save_optimizer_switch; +SET optimizer_switch=default; connection default; SELECT sleep(50); connect con2,localhost,root,,; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/pool_of_threads.test mariadb-10.3-10.3.20/mysql-test/main/pool_of_threads.test --- mariadb-10.3-10.3.17/mysql-test/main/pool_of_threads.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/pool_of_threads.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,13 +2,14 @@ # and run a number of tests -- source include/have_pool_of_threads.inc -SET @save_optimizer_switch=@@optimizer_switch; +-- source include/default_optimizer_switch.inc + SET optimizer_switch='outer_join_with_cache=off'; # Slow test, don't run during staging part -- source include/not_staging.inc -- source include/long_test.inc -- source include/common-tests.inc -SET optimizer_switch=@save_optimizer_switch; +SET optimizer_switch=default; # Test that we cannot have more simultaneous connections than # --thread-pool-size on the standard port, but _can_ have additional diff -Nru mariadb-10.3-10.3.17/mysql-test/main/processlist_notembedded.result mariadb-10.3-10.3.20/mysql-test/main/processlist_notembedded.result --- mariadb-10.3-10.3.17/mysql-test/main/processlist_notembedded.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/processlist_notembedded.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,12 @@ +# +# MDEV-20466: SHOW PROCESSLIST truncates query text on \0 bytes +# +connect con1,localhost,root,,; +connection con1; +SET DEBUG_SYNC= 'before_join_optimize SIGNAL in_sync'; +connection default; +SET DEBUG_SYNC= 'now WAIT_FOR in_sync'; +FOUND 1 /sleep \(30\)/ in MDEV-20466.text +disconnect con1; +SET DEBUG_SYNC = 'RESET'; +End of 5.5 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/processlist_notembedded.test mariadb-10.3-10.3.20/mysql-test/main/processlist_notembedded.test --- mariadb-10.3-10.3.17/mysql-test/main/processlist_notembedded.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/processlist_notembedded.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,34 @@ +source include/have_debug.inc; +source include/have_debug_sync.inc; +source include/not_embedded.inc; + +--echo # +--echo # MDEV-20466: SHOW PROCESSLIST truncates query text on \0 bytes +--echo # + +connect (con1,localhost,root,,); + +connection con1; + +let $q= `select CONCAT("SELECT user FROM mysql.user WHERE user ='some", CHAR(0), "' or sleep (30)")`; + +SET DEBUG_SYNC= 'before_join_optimize SIGNAL in_sync'; +--disable_query_log +--send_eval $q; +--enable_query_log +connection default; + +SET DEBUG_SYNC= 'now WAIT_FOR in_sync'; + +exec $MYSQL test -e "SHOW PROCESSLIST" > $MYSQLTEST_VARDIR/tmp/MDEV-20466.text; + +let SEARCH_FILE=$MYSQLTEST_VARDIR/tmp/MDEV-20466.text; +let SEARCH_PATTERN=sleep \(30\); +source include/search_pattern_in_file.inc; +remove_file $MYSQLTEST_VARDIR/tmp/MDEV-20466.text; + +disconnect con1; + +SET DEBUG_SYNC = 'RESET'; + +--echo End of 5.5 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/processlist.result mariadb-10.3-10.3.20/mysql-test/main/processlist.result --- mariadb-10.3-10.3.17/mysql-test/main/processlist.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/processlist.result 2019-11-06 16:01:57.000000000 +0000 @@ -23,8 +23,9 @@ command time < 5 Sleep 1 disconnect con1; -set debug_sync='reset'; connection default; +set debug_sync='reset'; +End of 5.5 tests # # 10.1 tests # @@ -36,10 +37,6 @@ INFO SELECT INFO, INFO_BINARY, 'xxx????yyy' AS utf8mb4_string FROM INFORMATION_SCHEMA.PROCESSLIST WHERE INFO LIKE '%xxx%yyy%' INFO_BINARY SELECT INFO, INFO_BINARY, 'xxx😎yyy' AS utf8mb4_string FROM INFORMATION_SCHEMA.PROCESSLIST WHERE INFO LIKE '%xxx%yyy%' utf8mb4_string xxx😎yyy -Warnings: -Level Warning -Code 1366 -Message Incorrect string value: '\xF0\x9F\x98\x8Eyy...' for column `information_schema`.`(temporary)`.`INFO` at row 1 # # End of 10.1 tests # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/processlist.test mariadb-10.3-10.3.20/mysql-test/main/processlist.test --- mariadb-10.3-10.3.17/mysql-test/main/processlist.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/processlist.test 2019-11-06 16:01:57.000000000 +0000 @@ -49,10 +49,10 @@ select command, time < 5 from information_schema.processlist where id != connection_id(); disconnect con1; -set debug_sync='reset'; - connection default; +set debug_sync='reset'; +--echo End of 5.5 tests --echo # --echo # 10.1 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ps-master.opt mariadb-10.3-10.3.20/mysql-test/main/ps-master.opt --- mariadb-10.3-10.3.17/mysql-test/main/ps-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ps-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1 +1 @@ ---log-output=table,file --slow-query-log --log-queries-not-using-indexes --general-log +--log-output=table,file --slow-query-log --log-queries-not-using-indexes --general-log --character-set-server=latin1 --collation_server=latin1_swedish_ci --sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ps.test mariadb-10.3-10.3.20/mysql-test/main/ps.test --- mariadb-10.3-10.3.17/mysql-test/main/ps.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ps.test 2019-11-06 16:01:57.000000000 +0000 @@ -1814,7 +1814,6 @@ deallocate prepare stmt; set @@character_set_server= @old_character_set_server; - # # BUG#24491 "using alias from source table in insert ... on duplicate key" # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/query_cache_debug.result mariadb-10.3-10.3.20/mysql-test/main/query_cache_debug.result --- mariadb-10.3-10.3.17/mysql-test/main/query_cache_debug.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/query_cache_debug.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,6 @@ set global query_cache_type= ON; +set @save_query_cache_size=@@global.query_cache_size; +SET @save_concurrent_insert= @@GLOBAL.concurrent_insert; flush status; set query_cache_type=DEMAND; set global query_cache_size= 1024*768; @@ -37,8 +39,6 @@ set global query_cache_size= 0; use test; drop table t1; -SET @old_concurrent_insert= @@GLOBAL.concurrent_insert; -SET @old_query_cache_size= @@GLOBAL.query_cache_size; DROP TABLE IF EXISTS t1, t2; CREATE TABLE t1 (a INT); CREATE TABLE t2 (a INT); @@ -214,7 +214,6 @@ # # Bug#56822: Add a thread state for sessions waiting on the query cache lock # -SET @old_query_cache_size= @@GLOBAL.query_cache_size; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (1),(2),(3); @@ -246,7 +245,7 @@ SET DEBUG_SYNC= 'RESET'; RESET QUERY CACHE; DROP TABLE t1; -SET GLOBAL query_cache_size= DEFAULT; +SET GLOBAL query_cache_size= @save_query_cache_size; SET GLOBAL query_cache_type= DEFAULT; # # MDEV-14526: MariaDB keeps crashing under load when @@ -270,7 +269,7 @@ connection default; set debug_sync="now WAIT_FOR parked"; connection con2; -SET GLOBAL query_cache_type= 0; +SET GLOBAL query_cache_type= 0;; connection default; set debug_sync="now SIGNAL go"; connection con1; @@ -281,6 +280,7 @@ connection default; set debug_sync= 'RESET'; DROP TABLE t1; -SEt GLOBAL query_cache_size= DEFAULT; -SEt GLOBAL query_cache_type= DEFAULT; +SET GLOBAL query_cache_size=@save_query_cache_size; +SET GLOBAL query_cache_type= DEFAULT; +SET @@GLOBAL.concurrent_insert=@save_concurrent_insert; # End of 5.5 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/query_cache_debug.test mariadb-10.3-10.3.20/mysql-test/main/query_cache_debug.test --- mariadb-10.3-10.3.17/mysql-test/main/query_cache_debug.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/query_cache_debug.test 2019-11-06 16:01:57.000000000 +0000 @@ -4,6 +4,9 @@ --source include/long_test.inc set global query_cache_type= ON; +set @save_query_cache_size=@@global.query_cache_size; +SET @save_concurrent_insert= @@GLOBAL.concurrent_insert; + # # Bug #30887 Server crashes on SET GLOBAL query_cache_size=0 # @@ -53,9 +56,6 @@ # Bug#41098: Query Cache returns wrong result with concurrent insert # -SET @old_concurrent_insert= @@GLOBAL.concurrent_insert; -SET @old_query_cache_size= @@GLOBAL.query_cache_size; - --disable_warnings DROP TABLE IF EXISTS t1, t2; --enable_warnings @@ -247,8 +247,6 @@ --echo # Bug#56822: Add a thread state for sessions waiting on the query cache lock --echo # -SET @old_query_cache_size= @@GLOBAL.query_cache_size; - --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings @@ -297,7 +295,7 @@ SET DEBUG_SYNC= 'RESET'; RESET QUERY CACHE; DROP TABLE t1; -SET GLOBAL query_cache_size= DEFAULT; +SET GLOBAL query_cache_size= @save_query_cache_size; SET GLOBAL query_cache_type= DEFAULT; --echo # @@ -322,16 +320,13 @@ --connect (con2,localhost,root,,test) --connect (con1,localhost,root,,test) set debug_sync="wait_in_query_cache_store_query SIGNAL parked WAIT_FOR go"; ---send - - SELECT DISTINCT id FROM t1 WHERE id BETWEEN 5603 AND 16218 ORDER BY k; +--send SELECT DISTINCT id FROM t1 WHERE id BETWEEN 5603 AND 16218 ORDER BY k --connection default set debug_sync="now WAIT_FOR parked"; --connection con2 ---send - SET GLOBAL query_cache_type= 0; +--send SET GLOBAL query_cache_type= 0; --connection default set debug_sync="now SIGNAL go"; @@ -347,7 +342,8 @@ --connection default set debug_sync= 'RESET'; DROP TABLE t1; -SEt GLOBAL query_cache_size= DEFAULT; -SEt GLOBAL query_cache_type= DEFAULT; +SET GLOBAL query_cache_size=@save_query_cache_size; +SET GLOBAL query_cache_type= DEFAULT; +SET @@GLOBAL.concurrent_insert=@save_concurrent_insert; --echo # End of 5.5 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/query_cache_innodb.result mariadb-10.3-10.3.20/mysql-test/main/query_cache_innodb.result --- mariadb-10.3-10.3.17/mysql-test/main/query_cache_innodb.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/query_cache_innodb.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +set @save_query_cache_size=@@query_cache_size; # # MDEV-12485: foreign key on delete cascade stale entries with # query cache enabled @@ -86,5 +87,5 @@ SET NAMES default; FOUND 8 /\[ERROR\] Invalid \(old\?\) table or database name/ in mysqld.1.err set global query_cache_type=DEFAULT; -set global query_cache_size=DEFAULT; +set global query_cache_size=@save_query_cache_size; End of 10.2 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/query_cache_innodb.test mariadb-10.3-10.3.20/mysql-test/main/query_cache_innodb.test --- mariadb-10.3-10.3.17/mysql-test/main/query_cache_innodb.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/query_cache_innodb.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,6 +2,8 @@ --source include/have_query_cache.inc --source include/not_embedded.inc +set @save_query_cache_size=@@query_cache_size; + --echo # --echo # MDEV-12485: foreign key on delete cascade stale entries with --echo # query cache enabled @@ -81,5 +83,5 @@ --source include/search_pattern_in_file.inc set global query_cache_type=DEFAULT; -set global query_cache_size=DEFAULT; +set global query_cache_size=@save_query_cache_size; --echo End of 10.2 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/query_cache_merge.result mariadb-10.3-10.3.20/mysql-test/main/query_cache_merge.result --- mariadb-10.3-10.3.17/mysql-test/main/query_cache_merge.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/query_cache_merge.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,5 @@ +set @save_query_cache_size=@@global.query_cache_size; +set @save_query_cache_type=@@global.query_cache_type; SET GLOBAL query_cache_type=ON; SET LOCAL query_cache_type=ON; SET @@global.query_cache_size=1355776; @@ -1692,7 +1694,7 @@ DROP TABLE t3; DROP TABLE t2; DROP TABLE t1; -SET @@global.query_cache_size = default; +SET @@global.query_cache_size = @save_query_cache_size; SET @@global.table_definition_cache = @save_table_definition_cache; -SET GLOBAL query_cache_type=default; +SET @@global.query_cache_type = @save_query_cache_type; End of 5.1 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/query_cache_merge.test mariadb-10.3-10.3.20/mysql-test/main/query_cache_merge.test --- mariadb-10.3-10.3.17/mysql-test/main/query_cache_merge.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/query_cache_merge.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,8 @@ # Test query cache with many tables +set @save_query_cache_size=@@global.query_cache_size; +set @save_query_cache_type=@@global.query_cache_type; + SET GLOBAL query_cache_type=ON; SET LOCAL query_cache_type=ON; @@ -105,8 +108,7 @@ dec $c; } -SET @@global.query_cache_size = default; +SET @@global.query_cache_size = @save_query_cache_size; SET @@global.table_definition_cache = @save_table_definition_cache; - -SET GLOBAL query_cache_type=default; +SET @@global.query_cache_type = @save_query_cache_type; --echo End of 5.1 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/query_cache_notembedded.result mariadb-10.3-10.3.20/mysql-test/main/query_cache_notembedded.result --- mariadb-10.3-10.3.17/mysql-test/main/query_cache_notembedded.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/query_cache_notembedded.result 2019-11-06 16:01:57.000000000 +0000 @@ -409,9 +409,7 @@ DROP USER 'bug30269'@'localhost'; set GLOBAL query_cache_type=ON; set LOCAL query_cache_type=ON; -set GLOBAL query_cache_limit=default; -set GLOBAL query_cache_min_res_unit=default; -set GLOBAL query_cache_size=default; +set GLOBAL query_cache_size=@query_cache_size_save; drop table if exists t1| create table t1 ( id char(16) not null default '', diff -Nru mariadb-10.3-10.3.17/mysql-test/main/query_cache_notembedded.test mariadb-10.3-10.3.20/mysql-test/main/query_cache_notembedded.test --- mariadb-10.3-10.3.17/mysql-test/main/query_cache_notembedded.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/query_cache_notembedded.test 2019-11-06 16:01:57.000000000 +0000 @@ -4,7 +4,6 @@ # Save the initial number of concurrent sessions --source include/count_sessions.inc - # # Tests with query cache # @@ -277,9 +276,7 @@ set GLOBAL query_cache_type=ON; set LOCAL query_cache_type=ON; -set GLOBAL query_cache_limit=default; -set GLOBAL query_cache_min_res_unit=default; -set GLOBAL query_cache_size=default; +set GLOBAL query_cache_size=@query_cache_size_save; # # Bug#3583 query cache doesn't work for stored procedures @@ -333,4 +330,3 @@ SET GLOBAL query_cache_size=@query_cache_size_save; SET GLOBAL query_cache_type=@query_cache_type_save; set GLOBAL sql_mode=@sql_mode_save; - diff -Nru mariadb-10.3-10.3.17/mysql-test/main/query_cache_ps_no_prot.test mariadb-10.3-10.3.20/mysql-test/main/query_cache_ps_no_prot.test --- mariadb-10.3-10.3.17/mysql-test/main/query_cache_ps_no_prot.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/query_cache_ps_no_prot.test 2019-11-06 16:01:57.000000000 +0000 @@ -12,6 +12,8 @@ # We cannot run on embedded server because we use multiple sessions. --source include/not_embedded.inc --source include/have_query_cache.inc +--source include/default_charset.inc + let collation=utf8_unicode_ci; --source include/have_collation.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/main/query_cache.result mariadb-10.3-10.3.20/mysql-test/main/query_cache.result --- mariadb-10.3-10.3.17/mysql-test/main/query_cache.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/query_cache.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +set @save_query_cache_size=@@query_cache_size; SET GLOBAL query_cache_type= Off; SET LOCAL query_cache_type= Off; SET LOCAL query_cache_type= 0; @@ -1634,7 +1635,7 @@ Variable_name Value Qcache_queries_in_cache 0 drop database db2; -set global query_cache_size=default; +set global query_cache_size=@save_query_cache_size; drop database if exists db1; drop database if exists db3; set GLOBAL query_cache_size=15*1024*1024; @@ -1669,7 +1670,7 @@ set GLOBAL query_cache_type=default; set GLOBAL query_cache_limit=default; set GLOBAL query_cache_min_res_unit=default; -set GLOBAL query_cache_size=default; +set GLOBAL query_cache_size=@save_query_cache_size; set local query_cache_type=default; set GLOBAL query_cache_type=on; set local query_cache_type=on; @@ -1949,6 +1950,7 @@ # MDEV-4981: Account for queries handled by query-cache in # USER_STATISTICS (and in HOST_STATISTICS) # +set @save_userstat=@@global.userstat; SET GLOBAL userstat=1; set GLOBAL query_cache_size=1355776; FLUSH USER_STATISTICS; @@ -2089,7 +2091,7 @@ drop procedure p1; drop table t1; set GLOBAL query_cache_size=1355776; -SET GLOBAL userstat=default; +SET GLOBAL userstat=@save_userstat; End of 5.5 tests # # Bug#12977203: SERVER CRASH ON A DERIVED TABLE WITH QUERY CACHE ENABLED @@ -2189,5 +2191,4 @@ drop table t1; restore defaults SET GLOBAL query_cache_type= default; -SET GLOBAL query_cache_size= default; -SET LOCAL query_cache_type= default; +SET GLOBAL query_cache_size=@save_query_cache_size; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/query_cache.test mariadb-10.3-10.3.20/mysql-test/main/query_cache.test --- mariadb-10.3-10.3.17/mysql-test/main/query_cache.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/query_cache.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,7 @@ -- source include/have_query_cache.inc -- source include/long_test.inc +set @save_query_cache_size=@@query_cache_size; # # Tests with query cache # @@ -1236,7 +1237,7 @@ drop database db1; show status like 'Qcache_queries_in_cache'; drop database db2; - set global query_cache_size=default; + set global query_cache_size=@save_query_cache_size; --disable_warnings drop database if exists db1; @@ -1266,7 +1267,7 @@ set GLOBAL query_cache_type=default; set GLOBAL query_cache_limit=default; set GLOBAL query_cache_min_res_unit=default; -set GLOBAL query_cache_size=default; +set GLOBAL query_cache_size=@save_query_cache_size; set local query_cache_type=default; set GLOBAL query_cache_type=on; set local query_cache_type=on; @@ -1632,6 +1633,7 @@ --echo # USER_STATISTICS (and in HOST_STATISTICS) --echo # +set @save_userstat=@@global.userstat; SET GLOBAL userstat=1; set GLOBAL query_cache_size=1355776; FLUSH USER_STATISTICS; @@ -1716,7 +1718,7 @@ drop procedure p1; drop table t1; set GLOBAL query_cache_size=1355776; -SET GLOBAL userstat=default; +SET GLOBAL userstat=@save_userstat; --echo End of 5.5 tests @@ -1784,5 +1786,4 @@ --echo restore defaults SET GLOBAL query_cache_type= default; -SET GLOBAL query_cache_size= default; -SET LOCAL query_cache_type= default; +SET GLOBAL query_cache_size=@save_query_cache_size; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/query_cache_with_views.result mariadb-10.3-10.3.20/mysql-test/main/query_cache_with_views.result --- mariadb-10.3-10.3.17/mysql-test/main/query_cache_with_views.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/query_cache_with_views.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,7 @@ drop table if exists t1,t2,v1,v2,v3; drop view if exists t1,t2,v1,v2,v3; +set @save_query_cache_size=@@global.query_cache_size; +set @save_query_cache_type=@@global.query_cache_type; set GLOBAL query_cache_type=ON; set LOCAL query_cache_type=ON; set GLOBAL query_cache_size=1355776; @@ -208,5 +210,5 @@ DROP TABLE t2; DROP VIEW t1_view; SET AUTOCOMMIT=DEFAULT; -set GLOBAL query_cache_size=default; -set GLOBAL query_cache_type=default; +set GLOBAL query_cache_size=@save_query_cache_size; +set GLOBAL query_cache_type=@save_query_cache_type; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/query_cache_with_views.test mariadb-10.3-10.3.20/mysql-test/main/query_cache_with_views.test --- mariadb-10.3-10.3.17/mysql-test/main/query_cache_with_views.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/query_cache_with_views.test 2019-11-06 16:01:57.000000000 +0000 @@ -6,6 +6,9 @@ drop table if exists t1,t2,v1,v2,v3; drop view if exists t1,t2,v1,v2,v3; --enable_warnings + +set @save_query_cache_size=@@global.query_cache_size; +set @save_query_cache_type=@@global.query_cache_type; set GLOBAL query_cache_type=ON; set LOCAL query_cache_type=ON; set GLOBAL query_cache_size=1355776; @@ -145,5 +148,5 @@ SET AUTOCOMMIT=DEFAULT; # Reset default environment. -set GLOBAL query_cache_size=default; -set GLOBAL query_cache_type=default; +set GLOBAL query_cache_size=@save_query_cache_size; +set GLOBAL query_cache_type=@save_query_cache_type; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/range_interrupted-13751.test mariadb-10.3-10.3.20/mysql-test/main/range_interrupted-13751.test --- mariadb-10.3-10.3.17/mysql-test/main/range_interrupted-13751.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/range_interrupted-13751.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,6 @@ -source include/have_debug.inc; +-- source include/have_debug.inc +--source include/default_optimizer_switch.inc + # # MDEV-13751 Interrupted SELECT fails with 1030: 'Got error 1 "Operation not permitted" from storage engine MyISAM' # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/range_mrr_icp.result mariadb-10.3-10.3.20/mysql-test/main/range_mrr_icp.result --- mariadb-10.3-10.3.17/mysql-test/main/range_mrr_icp.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/range_mrr_icp.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,6 @@ set @mrr_icp_extra_tmp=@@optimizer_switch; set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +SET optimizer_use_condition_selectivity=1; CREATE TABLE t1 ( event_date date DEFAULT '0000-00-00' NOT NULL, type int(11) DEFAULT '0' NOT NULL, @@ -2057,23 +2058,15 @@ SELECT * FROM t1 WHERE fd='😁'; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column `test`.`t1`.`fd` at row 1 SELECT * FROM t1 WHERE fd='😁'; id fd -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column `test`.`t1`.`fd` at row 1 # The following must not use range access: explain select count(*) from t1 where fd <'😁'; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index ix_fd ix_fd 63 NULL # Using where; Using index -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column `test`.`t1`.`fd` at row 1 select count(*) from t1 where fd <'😁'; count(*) 40960 -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column `test`.`t1`.`fd` at row 1 select count(*) from t1 ignore index (ix_fd) where fd <'😁'; count(*) 40960 @@ -2294,8 +2287,6 @@ EXPLAIN SELECT * FROM t1 WHERE a<=>'😎'; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9F\x98\x8E' for column `test`.`t1`.`a` at row 1 DROP TABLE t1; # # MDEV-10185: Assertion `tree1->keys[key_no] && tree2->keys[key_no]' failed in diff -Nru mariadb-10.3-10.3.17/mysql-test/main/range_mrr_icp.test mariadb-10.3-10.3.20/mysql-test/main/range_mrr_icp.test --- mariadb-10.3-10.3.17/mysql-test/main/range_mrr_icp.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/range_mrr_icp.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,5 @@ +--source include/default_optimizer_switch.inc + set @mrr_icp_extra_tmp=@@optimizer_switch; set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/range.result mariadb-10.3-10.3.20/mysql-test/main/range.result --- mariadb-10.3-10.3.17/mysql-test/main/range.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/range.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +SET optimizer_use_condition_selectivity=1; CREATE TABLE t1 ( event_date date DEFAULT '0000-00-00' NOT NULL, type int(11) DEFAULT '0' NOT NULL, @@ -2055,23 +2056,15 @@ SELECT * FROM t1 WHERE fd='😁'; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column `test`.`t1`.`fd` at row 1 SELECT * FROM t1 WHERE fd='😁'; id fd -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column `test`.`t1`.`fd` at row 1 # The following must not use range access: explain select count(*) from t1 where fd <'😁'; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index ix_fd ix_fd 63 NULL # Using where; Using index -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column `test`.`t1`.`fd` at row 1 select count(*) from t1 where fd <'😁'; count(*) 40960 -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9F\x98\x81' for column `test`.`t1`.`fd` at row 1 select count(*) from t1 ignore index (ix_fd) where fd <'😁'; count(*) 40960 @@ -2292,8 +2285,6 @@ EXPLAIN SELECT * FROM t1 WHERE a<=>'😎'; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables -Warnings: -Warning 1366 Incorrect string value: '\xF0\x9F\x98\x8E' for column `test`.`t1`.`a` at row 1 DROP TABLE t1; # # MDEV-10185: Assertion `tree1->keys[key_no] && tree2->keys[key_no]' failed in diff -Nru mariadb-10.3-10.3.17/mysql-test/main/range.test mariadb-10.3-10.3.20/mysql-test/main/range.test --- mariadb-10.3-10.3.17/mysql-test/main/range.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/range.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,6 +2,7 @@ # Problem with range optimizer # --source include/have_innodb.inc +SET optimizer_use_condition_selectivity=1; CREATE TABLE t1 ( event_date date DEFAULT '0000-00-00' NOT NULL, diff -Nru mariadb-10.3-10.3.17/mysql-test/main/range_vs_index_merge_innodb.result mariadb-10.3-10.3.20/mysql-test/main/range_vs_index_merge_innodb.result --- mariadb-10.3-10.3.17/mysql-test/main/range_vs_index_merge_innodb.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/range_vs_index_merge_innodb.result 2019-11-06 16:01:57.000000000 +0000 @@ -1796,7 +1796,7 @@ WHERE ( state = 'Alabama' OR state >= 'Colorado' ) AND id != 9 OR ( capital >= 'Topeka' OR state = 'Kansas' ) AND state != 'Texas'; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range state,capital state 71 NULL 12 Using index condition; Using where +1 SIMPLE t1 range state,capital state 71 NULL 8 Using index condition; Using where SELECT * FROM t1 FORCE KEY (state,capital) WHERE ( state = 'Alabama' OR state >= 'Colorado' ) AND id != 9 OR ( capital >= 'Topeka' OR state = 'Kansas' ) AND state != 'Texas'; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/range_vs_index_merge.result mariadb-10.3-10.3.20/mysql-test/main/range_vs_index_merge.result --- mariadb-10.3-10.3.17/mysql-test/main/range_vs_index_merge.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/range_vs_index_merge.result 2019-11-06 16:01:57.000000000 +0000 @@ -1795,7 +1795,7 @@ WHERE ( state = 'Alabama' OR state >= 'Colorado' ) AND id != 9 OR ( capital >= 'Topeka' OR state = 'Kansas' ) AND state != 'Texas'; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range state,capital state 71 NULL 12 Using index condition; Using where +1 SIMPLE t1 range state,capital state 71 NULL 8 Using index condition; Using where SELECT * FROM t1 FORCE KEY (state,capital) WHERE ( state = 'Alabama' OR state >= 'Colorado' ) AND id != 9 OR ( capital >= 'Topeka' OR state = 'Kansas' ) AND state != 'Texas'; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/range_vs_index_merge.test mariadb-10.3-10.3.20/mysql-test/main/range_vs_index_merge.test --- mariadb-10.3-10.3.17/mysql-test/main/range_vs_index_merge.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/range_vs_index_merge.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,6 @@ +--source include/default_optimizer_switch.inc +--source include/default_charset.inc + --disable_warnings DROP TABLE IF EXISTS t1,t2,t3,t4; DROP DATABASE IF EXISTS world; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/repair.result mariadb-10.3-10.3.20/mysql-test/main/repair.result --- mariadb-10.3-10.3.17/mysql-test/main/repair.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/repair.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +call mtr.add_suppression("character set is multi-byte"); drop table if exists t1; create table t1 SELECT 1,"table 1"; repair table t1 use_frm; @@ -188,6 +189,8 @@ # .frm file from MySQL 3.23 # # Test with a saved table from 3.23 +SET @save_global_character_set_server= @@global.character_set_server; +set @@global.character_set_server=@@character_set_server; select count(*) from t1; ERROR HY000: Got error 190 "Incompatible key or row definition between the MariaDB .frm file and the information in the storage engine. You have to dump an" from storage engine MyISAM check table t1; @@ -208,6 +211,7 @@ Table Op Msg_type Msg_text test.t1 check status OK drop table t1; +set @@global.character_set_server=@save_global_character_set_server; create table t1 (a blob); create view v1 as select * from t1; repair view v1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/repair.test mariadb-10.3-10.3.20/mysql-test/main/repair.test --- mariadb-10.3-10.3.17/mysql-test/main/repair.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/repair.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,9 @@ # # Test of repair table # +--source include/default_charset.inc + +call mtr.add_suppression("character set is multi-byte"); --disable_warnings drop table if exists t1; @@ -199,6 +202,9 @@ --echo # Test with a saved table from 3.23 let $MYSQLD_DATADIR= `select @@datadir`; + +SET @save_global_character_set_server= @@global.character_set_server; +set @@global.character_set_server=@@character_set_server; --copy_file std_data/host_old.frm $MYSQLD_DATADIR/test/t1.frm --copy_file std_data/host_old.MYD $MYSQLD_DATADIR/test/t1.MYD --copy_file std_data/host_old.MYI $MYSQLD_DATADIR/test/t1.MYI @@ -212,6 +218,8 @@ check table t1; drop table t1; +set @@global.character_set_server=@save_global_character_set_server; + # # MDEV-8115 mysql_upgrade crashes the server with REPAIR VIEW # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/schema.test mariadb-10.3-10.3.20/mysql-test/main/schema.test --- mariadb-10.3-10.3.17/mysql-test/main/schema.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/schema.test 2019-11-06 16:01:57.000000000 +0000 @@ -6,6 +6,7 @@ # Save the initial number of concurrent sessions. --source include/count_sessions.inc +--source include/default_charset.inc --disable_warnings drop database if exists mysqltest1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/selectivity_innodb.result mariadb-10.3-10.3.20/mysql-test/main/selectivity_innodb.result --- mariadb-10.3-10.3.17/mysql-test/main/selectivity_innodb.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/selectivity_innodb.result 2019-11-06 16:01:57.000000000 +0000 @@ -13,6 +13,8 @@ set @save_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity; set @save_histogram_size=@@histogram_size; set @save_histogram_type=@@histogram_type; +set join_cache_level=2; +set @@global.histogram_size=0,@@local.histogram_size=0; set optimizer_use_condition_selectivity=3; create table t1 (a int); insert into t1 values @@ -1645,6 +1647,186 @@ set @@optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; drop table t1; drop function f1; +# +# MDEV-19834 Selectivity of an equality condition discounted twice +# +set @@optimizer_use_condition_selectivity=4; +set @@use_stat_tables='preferably'; +set @save_histogram_size=@@histogram_size; +set @@histogram_size=0; +create table t1 (a int, b int, key (b), key (a)); +insert into t1 +select (rand(1)*1000)/10, (rand(1001)*1000)/50 from seq_1_to_1000; +analyze table t1 ; +Table Op Msg_type Msg_text +test.t1 analyze status Engine-independent statistics collected +test.t1 analyze status OK +# Check what info the optimizer has about selectivities +explain extended select * from t1 use index () where a in (17,51,5); +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 2.97 Using where +Warnings: +Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` USE INDEX () where `test`.`t1`.`a` in (17,51,5) +explain extended select * from t1 use index () where b=2; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 4.76 Using where +Warnings: +Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` USE INDEX () where `test`.`t1`.`b` = 2 +# Now, the equality is used for ref access, while the range condition +# gives selectivity data +explain extended select * from t1 where a in (17,51,5) and b=2; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ref b,a b 5 const 59 2.90 Using where +Warnings: +Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where `test`.`t1`.`b` = 2 and `test`.`t1`.`a` in (17,51,5) +drop table t1; +set use_stat_tables= @save_use_stat_tables; +set @@histogram_size=@save_histogram_size; +set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; +# +# MDEV-20576: failing assertion DBUG_ASSERT(0.0 < sel && sel <= 1) +# +set @@optimizer_use_condition_selectivity=2; +set names utf8; +CREATE DATABASE world; +use world; +CREATE TABLE Country ( +Code char(3) NOT NULL default '', +Name char(52) NOT NULL default '', +SurfaceArea float(10,2) NOT NULL default '0.00', +Population int(11) NOT NULL default '0', +Capital int(11) default NULL, +PRIMARY KEY (Code), +UNIQUE INDEX (Name) +); +CREATE TABLE City ( +ID int(11) NOT NULL auto_increment, +Name char(35) NOT NULL default '', +Country char(3) NOT NULL default '', +Population int(11) NOT NULL default '0', +PRIMARY KEY (ID), +INDEX (Population), +INDEX (Country) +); +CREATE TABLE CountryLanguage ( +Country char(3) NOT NULL default '', +Language char(30) NOT NULL default '', +Percentage float(3,1) NOT NULL default '0.0', +PRIMARY KEY (Country, Language), +INDEX (Percentage) +); +CREATE INDEX Name ON City(Name); +CREATE INDEX CountryPopulation ON City(Country,Population); +CREATE INDEX CountryName ON City(Country,Name); +set @@optimizer_use_condition_selectivity=2; +EXPLAIN +SELECT * FROM City WHERE Country='FIN'; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE City ref Country,CountryPopulation,CountryName Country 3 const 7 Using index condition +DROP DATABASE world; +use test; +CREATE TABLE t1 ( +a INT, +b INT NOT NULL, +c char(100), +KEY (b, c), +KEY (b, a, c) +) ENGINE=MyISAM +DEFAULT CHARSET = utf8; +INSERT INTO t1 VALUES +(1, 1, 1), +(2, 2, 2), +(3, 3, 3), +(4, 4, 4), +(5, 5, 5), +(6, 6, 6), +(7, 7, 7), +(8, 8, 8), +(9, 9, 9); +INSERT INTO t1 SELECT a + 10, b, c FROM t1; +INSERT INTO t1 SELECT a + 20, b, c FROM t1; +INSERT INTO t1 SELECT a + 40, b, c FROM t1; +INSERT INTO t1 SELECT a + 80, b, c FROM t1; +INSERT INTO t1 SELECT a + 160, b, c FROM t1; +INSERT INTO t1 SELECT a + 320, b, c FROM t1; +INSERT INTO t1 SELECT a + 640, b, c FROM t1; +INSERT INTO t1 SELECT a + 1280, b, c FROM t1 LIMIT 80; +EXPLAIN +SELECT a FROM t1 WHERE b = 1 ORDER BY c DESC LIMIT 9; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range b,b_2 b 4 NULL 226 Using where +SELECT a FROM t1 WHERE b = 1 ORDER BY c DESC LIMIT 9; +a +2071 +2061 +2051 +2041 +2031 +2021 +2011 +2001 +1991 +set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; +DROP TABLE t1; +# +# MDEV-20424: New default value for optimizer_use_condition-selectivity +# leads to bad plan +# +create table t1(a int, b int, c int, d int, key(a,b)); +insert into t1 select 50,seq-1,seq-1,seq from seq_1_to_10; +insert into t1 select seq-1,seq-1,seq-1,seq from seq_1_to_100 limit 90; +create table t2(a int, b int, c int, primary key(a)); +insert into t2 select seq-1,seq-1,seq-1 from seq_1_to_100; +create table t3(a int, b int, c int, primary key(a)); +insert into t3 select seq-1,seq-1,seq-1 from seq_1_to_100 limit 30; +set optimizer_use_condition_selectivity=1; +explain extended select t1.b,t2.a,t3.a,t3.b from t1,t2,t3 +where t1.c = t2.a AND t1.d = t3.a and t1.a = 50 and t1.b <= 100; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 range a a 10 NULL 11 100.00 Using index condition; Using where +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.d 1 100.00 +1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 100.00 Using index +Warnings: +Note 1003 select `test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b` from `test`.`t1` join `test`.`t2` join `test`.`t3` where `test`.`t2`.`a` = `test`.`t1`.`c` and `test`.`t3`.`a` = `test`.`t1`.`d` and `test`.`t1`.`a` = 50 and `test`.`t1`.`b` <= 100 +select t1.b,t2.a,t3.a,t3.b from t1,t2,t3 +where t1.c = t2.a AND t1.d = t3.a and t1.a = 50 and t1.b <= 100; +b a a b +0 0 1 1 +1 1 2 2 +2 2 3 3 +3 3 4 4 +4 4 5 5 +5 5 6 6 +6 6 7 7 +7 7 8 8 +8 8 9 9 +9 9 10 10 +set optimizer_use_condition_selectivity=2; +explain extended select t1.b,t2.a,t3.a,t3.b from t1,t2,t3 +where t1.c = t2.a AND t1.d = t3.a and t1.a = 50 and t1.b <= 100; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 range a a 10 NULL 11 11.00 Using index condition; Using where +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.d 1 100.00 +1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 100.00 Using index +Warnings: +Note 1003 select `test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b` from `test`.`t1` join `test`.`t2` join `test`.`t3` where `test`.`t2`.`a` = `test`.`t1`.`c` and `test`.`t3`.`a` = `test`.`t1`.`d` and `test`.`t1`.`a` = 50 and `test`.`t1`.`b` <= 100 +select t1.b,t2.a,t3.a,t3.b from t1,t2,t3 +where t1.c = t2.a AND t1.d = t3.a and t1.a = 50 and t1.b <= 100; +b a a b +0 0 1 1 +1 1 2 2 +2 2 3 3 +3 3 4 4 +4 4 5 5 +5 5 6 6 +6 6 7 7 +7 7 8 8 +8 8 9 9 +9 9 10 10 +set optimizer_use_condition_selectivity= @@optimizer_use_condition_selectivity; +drop table t1,t2,t3; +# End of 10.1 tests +set @@global.histogram_size=@save_histogram_size; set optimizer_switch=@save_optimizer_switch_for_selectivity_test; set @tmp_ust= @@use_stat_tables; set @tmp_oucs= @@optimizer_use_condition_selectivity; @@ -1794,4 +1976,5 @@ # set use_stat_tables= @tmp_ust; set optimizer_use_condition_selectivity= @tmp_oucs; +set @@global.histogram_size=@save_histogram_size; SET SESSION STORAGE_ENGINE=DEFAULT; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/selectivity_innodb.test mariadb-10.3-10.3.20/mysql-test/main/selectivity_innodb.test --- mariadb-10.3-10.3.17/mysql-test/main/selectivity_innodb.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/selectivity_innodb.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,7 @@ --source include/have_innodb.inc # This test is slow on buildbot. --source include/big_test.inc +--source include/default_optimizer_switch.inc SET SESSION STORAGE_ENGINE='InnoDB'; @@ -175,4 +176,5 @@ set use_stat_tables= @tmp_ust; set optimizer_use_condition_selectivity= @tmp_oucs; +set @@global.histogram_size=@save_histogram_size; SET SESSION STORAGE_ENGINE=DEFAULT; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/selectivity_no_engine.test mariadb-10.3-10.3.20/mysql-test/main/selectivity_no_engine.test --- mariadb-10.3-10.3.17/mysql-test/main/selectivity_no_engine.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/selectivity_no_engine.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,5 @@ --source include/have_stat_tables.inc +--source include/default_optimizer_switch.inc --echo # --echo # Engine-agnostic tests for statistics-based selectivity calculations. diff -Nru mariadb-10.3-10.3.17/mysql-test/main/selectivity.result mariadb-10.3-10.3.20/mysql-test/main/selectivity.result --- mariadb-10.3-10.3.17/mysql-test/main/selectivity.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/selectivity.result 2019-11-06 16:01:57.000000000 +0000 @@ -10,6 +10,8 @@ set @save_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity; set @save_histogram_size=@@histogram_size; set @save_histogram_type=@@histogram_type; +set join_cache_level=2; +set @@global.histogram_size=0,@@local.histogram_size=0; set optimizer_use_condition_selectivity=3; create table t1 (a int); insert into t1 values @@ -1635,3 +1637,183 @@ set @@optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; drop table t1; drop function f1; +# +# MDEV-19834 Selectivity of an equality condition discounted twice +# +set @@optimizer_use_condition_selectivity=4; +set @@use_stat_tables='preferably'; +set @save_histogram_size=@@histogram_size; +set @@histogram_size=0; +create table t1 (a int, b int, key (b), key (a)); +insert into t1 +select (rand(1)*1000)/10, (rand(1001)*1000)/50 from seq_1_to_1000; +analyze table t1 ; +Table Op Msg_type Msg_text +test.t1 analyze status Engine-independent statistics collected +test.t1 analyze status Table is already up to date +# Check what info the optimizer has about selectivities +explain extended select * from t1 use index () where a in (17,51,5); +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 2.97 Using where +Warnings: +Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` USE INDEX () where `test`.`t1`.`a` in (17,51,5) +explain extended select * from t1 use index () where b=2; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 4.76 Using where +Warnings: +Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` USE INDEX () where `test`.`t1`.`b` = 2 +# Now, the equality is used for ref access, while the range condition +# gives selectivity data +explain extended select * from t1 where a in (17,51,5) and b=2; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ref b,a b 5 const 58 2.90 Using where +Warnings: +Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` where `test`.`t1`.`b` = 2 and `test`.`t1`.`a` in (17,51,5) +drop table t1; +set use_stat_tables= @save_use_stat_tables; +set @@histogram_size=@save_histogram_size; +set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; +# +# MDEV-20576: failing assertion DBUG_ASSERT(0.0 < sel && sel <= 1) +# +set @@optimizer_use_condition_selectivity=2; +set names utf8; +CREATE DATABASE world; +use world; +CREATE TABLE Country ( +Code char(3) NOT NULL default '', +Name char(52) NOT NULL default '', +SurfaceArea float(10,2) NOT NULL default '0.00', +Population int(11) NOT NULL default '0', +Capital int(11) default NULL, +PRIMARY KEY (Code), +UNIQUE INDEX (Name) +); +CREATE TABLE City ( +ID int(11) NOT NULL auto_increment, +Name char(35) NOT NULL default '', +Country char(3) NOT NULL default '', +Population int(11) NOT NULL default '0', +PRIMARY KEY (ID), +INDEX (Population), +INDEX (Country) +); +CREATE TABLE CountryLanguage ( +Country char(3) NOT NULL default '', +Language char(30) NOT NULL default '', +Percentage float(3,1) NOT NULL default '0.0', +PRIMARY KEY (Country, Language), +INDEX (Percentage) +); +CREATE INDEX Name ON City(Name); +CREATE INDEX CountryPopulation ON City(Country,Population); +CREATE INDEX CountryName ON City(Country,Name); +set @@optimizer_use_condition_selectivity=2; +EXPLAIN +SELECT * FROM City WHERE Country='FIN'; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE City ref Country,CountryPopulation,CountryName CountryName 3 const 5 Using index condition +DROP DATABASE world; +use test; +CREATE TABLE t1 ( +a INT, +b INT NOT NULL, +c char(100), +KEY (b, c), +KEY (b, a, c) +) ENGINE=MyISAM +DEFAULT CHARSET = utf8; +INSERT INTO t1 VALUES +(1, 1, 1), +(2, 2, 2), +(3, 3, 3), +(4, 4, 4), +(5, 5, 5), +(6, 6, 6), +(7, 7, 7), +(8, 8, 8), +(9, 9, 9); +INSERT INTO t1 SELECT a + 10, b, c FROM t1; +INSERT INTO t1 SELECT a + 20, b, c FROM t1; +INSERT INTO t1 SELECT a + 40, b, c FROM t1; +INSERT INTO t1 SELECT a + 80, b, c FROM t1; +INSERT INTO t1 SELECT a + 160, b, c FROM t1; +INSERT INTO t1 SELECT a + 320, b, c FROM t1; +INSERT INTO t1 SELECT a + 640, b, c FROM t1; +INSERT INTO t1 SELECT a + 1280, b, c FROM t1 LIMIT 80; +EXPLAIN +SELECT a FROM t1 WHERE b = 1 ORDER BY c DESC LIMIT 9; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range b,b_2 b 4 NULL 226 Using where +SELECT a FROM t1 WHERE b = 1 ORDER BY c DESC LIMIT 9; +a +2071 +2061 +2051 +2041 +2031 +2021 +2011 +2001 +1991 +set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; +DROP TABLE t1; +# +# MDEV-20424: New default value for optimizer_use_condition-selectivity +# leads to bad plan +# +create table t1(a int, b int, c int, d int, key(a,b)); +insert into t1 select 50,seq-1,seq-1,seq from seq_1_to_10; +insert into t1 select seq-1,seq-1,seq-1,seq from seq_1_to_100 limit 90; +create table t2(a int, b int, c int, primary key(a)); +insert into t2 select seq-1,seq-1,seq-1 from seq_1_to_100; +create table t3(a int, b int, c int, primary key(a)); +insert into t3 select seq-1,seq-1,seq-1 from seq_1_to_100 limit 30; +set optimizer_use_condition_selectivity=1; +explain extended select t1.b,t2.a,t3.a,t3.b from t1,t2,t3 +where t1.c = t2.a AND t1.d = t3.a and t1.a = 50 and t1.b <= 100; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 range a a 10 NULL 9 100.00 Using index condition; Using where +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.d 1 100.00 +1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 100.00 Using index +Warnings: +Note 1003 select `test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b` from `test`.`t1` join `test`.`t2` join `test`.`t3` where `test`.`t2`.`a` = `test`.`t1`.`c` and `test`.`t3`.`a` = `test`.`t1`.`d` and `test`.`t1`.`a` = 50 and `test`.`t1`.`b` <= 100 +select t1.b,t2.a,t3.a,t3.b from t1,t2,t3 +where t1.c = t2.a AND t1.d = t3.a and t1.a = 50 and t1.b <= 100; +b a a b +0 0 1 1 +1 1 2 2 +2 2 3 3 +3 3 4 4 +4 4 5 5 +5 5 6 6 +6 6 7 7 +7 7 8 8 +8 8 9 9 +9 9 10 10 +set optimizer_use_condition_selectivity=2; +explain extended select t1.b,t2.a,t3.a,t3.b from t1,t2,t3 +where t1.c = t2.a AND t1.d = t3.a and t1.a = 50 and t1.b <= 100; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 range a a 10 NULL 9 9.00 Using index condition; Using where +1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t1.d 1 100.00 +1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 100.00 Using index +Warnings: +Note 1003 select `test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b` from `test`.`t1` join `test`.`t2` join `test`.`t3` where `test`.`t2`.`a` = `test`.`t1`.`c` and `test`.`t3`.`a` = `test`.`t1`.`d` and `test`.`t1`.`a` = 50 and `test`.`t1`.`b` <= 100 +select t1.b,t2.a,t3.a,t3.b from t1,t2,t3 +where t1.c = t2.a AND t1.d = t3.a and t1.a = 50 and t1.b <= 100; +b a a b +0 0 1 1 +1 1 2 2 +2 2 3 3 +3 3 4 4 +4 4 5 5 +5 5 6 6 +6 6 7 7 +7 7 8 8 +8 8 9 9 +9 9 10 10 +set optimizer_use_condition_selectivity= @@optimizer_use_condition_selectivity; +drop table t1,t2,t3; +# End of 10.1 tests +set @@global.histogram_size=@save_histogram_size; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/selectivity.test mariadb-10.3-10.3.20/mysql-test/main/selectivity.test --- mariadb-10.3-10.3.17/mysql-test/main/selectivity.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/selectivity.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,6 @@ --source include/have_stat_tables.inc +--source include/have_sequence.inc +--source include/default_charset.inc --disable_warnings drop table if exists t0,t1,t2,t3; @@ -8,12 +10,14 @@ select @@session.use_stat_tables; set @save_use_stat_tables=@@use_stat_tables; - set use_stat_tables='preferably'; +--source include/default_optimizer_switch.inc set @save_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity; set @save_histogram_size=@@histogram_size; set @save_histogram_type=@@histogram_type; +set join_cache_level=2; +set @@global.histogram_size=0,@@local.histogram_size=0; # check that statistics on nulls is used @@ -1102,3 +1106,144 @@ drop table t1; drop function f1; +--echo # +--echo # MDEV-19834 Selectivity of an equality condition discounted twice +--echo # +set @@optimizer_use_condition_selectivity=4; +set @@use_stat_tables='preferably'; +set @save_histogram_size=@@histogram_size; +set @@histogram_size=0; +create table t1 (a int, b int, key (b), key (a)); +insert into t1 +select (rand(1)*1000)/10, (rand(1001)*1000)/50 from seq_1_to_1000; +analyze table t1 ; + +--echo # Check what info the optimizer has about selectivities +explain extended select * from t1 use index () where a in (17,51,5); +explain extended select * from t1 use index () where b=2; + +--echo # Now, the equality is used for ref access, while the range condition +--echo # gives selectivity data +explain extended select * from t1 where a in (17,51,5) and b=2; +drop table t1; + +set use_stat_tables= @save_use_stat_tables; +set @@histogram_size=@save_histogram_size; +set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; + +--echo # +--echo # MDEV-20576: failing assertion DBUG_ASSERT(0.0 < sel && sel <= 1) +--echo # + +set @@optimizer_use_condition_selectivity=2; + +set names utf8; + +CREATE DATABASE world; + +use world; + +--source include/world_schema.inc + +--disable_query_log +--disable_result_log +--disable_warnings +--source include/world.inc +--enable_warnings +--enable_result_log +--enable_query_log + +CREATE INDEX Name ON City(Name); +CREATE INDEX CountryPopulation ON City(Country,Population); +CREATE INDEX CountryName ON City(Country,Name); + +--disable_query_log +--disable_result_log +--disable_warnings +ANALYZE TABLE City; +--enable_warnings +--enable_result_log +--enable_query_log + +set @@optimizer_use_condition_selectivity=2; + +EXPLAIN +SELECT * FROM City WHERE Country='FIN'; + +DROP DATABASE world; + +use test; + +CREATE TABLE t1 ( + a INT, + b INT NOT NULL, + c char(100), + KEY (b, c), + KEY (b, a, c) +) ENGINE=MyISAM +DEFAULT CHARSET = utf8; + +INSERT INTO t1 VALUES +(1, 1, 1), +(2, 2, 2), +(3, 3, 3), +(4, 4, 4), +(5, 5, 5), +(6, 6, 6), +(7, 7, 7), +(8, 8, 8), +(9, 9, 9); + +INSERT INTO t1 SELECT a + 10, b, c FROM t1; +INSERT INTO t1 SELECT a + 20, b, c FROM t1; +INSERT INTO t1 SELECT a + 40, b, c FROM t1; +INSERT INTO t1 SELECT a + 80, b, c FROM t1; +INSERT INTO t1 SELECT a + 160, b, c FROM t1; +INSERT INTO t1 SELECT a + 320, b, c FROM t1; +INSERT INTO t1 SELECT a + 640, b, c FROM t1; +INSERT INTO t1 SELECT a + 1280, b, c FROM t1 LIMIT 80; + +EXPLAIN +SELECT a FROM t1 WHERE b = 1 ORDER BY c DESC LIMIT 9; +SELECT a FROM t1 WHERE b = 1 ORDER BY c DESC LIMIT 9; + +set optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; + +DROP TABLE t1; + +--echo # +--echo # MDEV-20424: New default value for optimizer_use_condition-selectivity +--echo # leads to bad plan +--echo # + +create table t1(a int, b int, c int, d int, key(a,b)); +insert into t1 select 50,seq-1,seq-1,seq from seq_1_to_10; +insert into t1 select seq-1,seq-1,seq-1,seq from seq_1_to_100 limit 90; + +create table t2(a int, b int, c int, primary key(a)); +insert into t2 select seq-1,seq-1,seq-1 from seq_1_to_100; + +create table t3(a int, b int, c int, primary key(a)); +insert into t3 select seq-1,seq-1,seq-1 from seq_1_to_100 limit 30; + +let $query= select t1.b,t2.a,t3.a,t3.b from t1,t2,t3 +where t1.c = t2.a AND t1.d = t3.a and t1.a = 50 and t1.b <= 100; + +set optimizer_use_condition_selectivity=1; +eval explain extended $query; +eval $query; + +set optimizer_use_condition_selectivity=2; +eval explain extended $query; +eval $query; +set optimizer_use_condition_selectivity= @@optimizer_use_condition_selectivity; + +drop table t1,t2,t3; + +--echo # End of 10.1 tests + +# +# Clean up +# +--source include/restore_charset.inc +set @@global.histogram_size=@save_histogram_size; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/select_jcl6.result mariadb-10.3-10.3.20/mysql-test/main/select_jcl6.result --- mariadb-10.3-10.3.17/mysql-test/main/select_jcl6.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/select_jcl6.result 2019-11-06 16:01:57.000000000 +0000 @@ -12,7 +12,6 @@ drop table if exists t1,t2,t3,t4,t11; drop table if exists t1_1,t1_2,t9_1,t9_2,t1aa,t2aa; drop view if exists v1; -SET @save_optimizer_switch=@@optimizer_switch; SET optimizer_switch=ifnull(@optimizer_switch_for_select_test,'outer_join_with_cache=off'); set join_cache_level=@join_cache_level_for_select_test; CREATE TABLE t1 ( @@ -4905,7 +4904,7 @@ INSERT INTO t5 VALUES (20),(5); CREATE TABLE t6(f1 int); INSERT INTO t6 VALUES (9),(7); -SET SESSION join_buffer_size = 2176; +SET @save_join_buffer_size=@@join_buffer_size,@@join_buffer_size = 2176; EXPLAIN SELECT STRAIGHT_JOIN * FROM t2, (t1 LEFT JOIN (t3,t4) ON t1.f1 = t4.f1), t5, t6; id select_type table type possible_keys key key_len ref rows Extra @@ -4965,7 +4964,7 @@ 3 9 NULL NULL NULL 5 7 7 9 NULL NULL NULL 5 7 18 9 NULL NULL NULL 5 7 -SET SESSION join_buffer_size = DEFAULT; +SET SESSION join_buffer_size = @save_join_buffer_size; DROP TABLE t1,t2,t3,t4,t5,t6; # # Bug #698882: best equality substitution not applied to ref @@ -5345,7 +5344,7 @@ a COUNT(*) NULL 0 DROP TABLE t1; -SET optimizer_switch=@save_optimizer_switch; +SET @@optimizer_switch=@save_optimizer_switch; # # LP bug#994275 Assertion `real->type() == Item::FIELD_ITEM' failed # in add_not_null_conds(JOIN*) with JOIN, ZEROFILL column, PK @@ -5560,9 +5559,6 @@ drop table t1; End of 10.0 tests set join_cache_level=default; -show variables like 'join_cache_level'; -Variable_name Value -join_cache_level 2 set @@optimizer_switch=@save_optimizer_switch_jcl6; set @optimizer_switch_for_select_test=NULL; set @join_cache_level_for_select_test=NULL; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/select_jcl6.test mariadb-10.3-10.3.20/mysql-test/main/select_jcl6.test --- mariadb-10.3-10.3.17/mysql-test/main/select_jcl6.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/select_jcl6.test 2019-11-06 16:01:57.000000000 +0000 @@ -17,7 +17,6 @@ --source select.test set join_cache_level=default; -show variables like 'join_cache_level'; set @@optimizer_switch=@save_optimizer_switch_jcl6; set @optimizer_switch_for_select_test=NULL; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/select_pkeycache.result mariadb-10.3-10.3.20/mysql-test/main/select_pkeycache.result --- mariadb-10.3-10.3.17/mysql-test/main/select_pkeycache.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/select_pkeycache.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,7 +1,6 @@ drop table if exists t1,t2,t3,t4,t11; drop table if exists t1_1,t1_2,t9_1,t9_2,t1aa,t2aa; drop view if exists v1; -SET @save_optimizer_switch=@@optimizer_switch; SET optimizer_switch=ifnull(@optimizer_switch_for_select_test,'outer_join_with_cache=off'); set join_cache_level=1; CREATE TABLE t1 ( @@ -4894,7 +4893,7 @@ INSERT INTO t5 VALUES (20),(5); CREATE TABLE t6(f1 int); INSERT INTO t6 VALUES (9),(7); -SET SESSION join_buffer_size = 2176; +SET @save_join_buffer_size=@@join_buffer_size,@@join_buffer_size = 2176; EXPLAIN SELECT STRAIGHT_JOIN * FROM t2, (t1 LEFT JOIN (t3,t4) ON t1.f1 = t4.f1), t5, t6; id select_type table type possible_keys key key_len ref rows Extra @@ -4954,7 +4953,7 @@ 3 9 NULL NULL NULL 5 7 7 9 NULL NULL NULL 5 7 18 9 NULL NULL NULL 5 7 -SET SESSION join_buffer_size = DEFAULT; +SET SESSION join_buffer_size = @save_join_buffer_size; DROP TABLE t1,t2,t3,t4,t5,t6; # # Bug #698882: best equality substitution not applied to ref @@ -5334,7 +5333,7 @@ a COUNT(*) NULL 0 DROP TABLE t1; -SET optimizer_switch=@save_optimizer_switch; +SET @@optimizer_switch=@save_optimizer_switch; # # LP bug#994275 Assertion `real->type() == Item::FIELD_ITEM' failed # in add_not_null_conds(JOIN*) with JOIN, ZEROFILL column, PK diff -Nru mariadb-10.3-10.3.17/mysql-test/main/select.result mariadb-10.3-10.3.20/mysql-test/main/select.result --- mariadb-10.3-10.3.17/mysql-test/main/select.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/select.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,7 +1,6 @@ drop table if exists t1,t2,t3,t4,t11; drop table if exists t1_1,t1_2,t9_1,t9_2,t1aa,t2aa; drop view if exists v1; -SET @save_optimizer_switch=@@optimizer_switch; SET optimizer_switch=ifnull(@optimizer_switch_for_select_test,'outer_join_with_cache=off'); set join_cache_level=1; CREATE TABLE t1 ( @@ -4894,7 +4893,7 @@ INSERT INTO t5 VALUES (20),(5); CREATE TABLE t6(f1 int); INSERT INTO t6 VALUES (9),(7); -SET SESSION join_buffer_size = 2176; +SET @save_join_buffer_size=@@join_buffer_size,@@join_buffer_size = 2176; EXPLAIN SELECT STRAIGHT_JOIN * FROM t2, (t1 LEFT JOIN (t3,t4) ON t1.f1 = t4.f1), t5, t6; id select_type table type possible_keys key key_len ref rows Extra @@ -4954,7 +4953,7 @@ 3 9 NULL NULL NULL 5 7 7 9 NULL NULL NULL 5 7 18 9 NULL NULL NULL 5 7 -SET SESSION join_buffer_size = DEFAULT; +SET SESSION join_buffer_size = @save_join_buffer_size; DROP TABLE t1,t2,t3,t4,t5,t6; # # Bug #698882: best equality substitution not applied to ref @@ -5334,7 +5333,7 @@ a COUNT(*) NULL 0 DROP TABLE t1; -SET optimizer_switch=@save_optimizer_switch; +SET @@optimizer_switch=@save_optimizer_switch; # # LP bug#994275 Assertion `real->type() == Item::FIELD_ITEM' failed # in add_not_null_conds(JOIN*) with JOIN, ZEROFILL column, PK diff -Nru mariadb-10.3-10.3.17/mysql-test/main/select.test mariadb-10.3-10.3.20/mysql-test/main/select.test --- mariadb-10.3-10.3.17/mysql-test/main/select.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/select.test 2019-11-06 16:01:57.000000000 +0000 @@ -13,7 +13,8 @@ drop view if exists v1; --enable_warnings -SET @save_optimizer_switch=@@optimizer_switch; +--source include/default_optimizer_switch.inc + SET optimizer_switch=ifnull(@optimizer_switch_for_select_test,'outer_join_with_cache=off'); if (`select @join_cache_level_for_select_test is null`) { @@ -4174,13 +4175,13 @@ CREATE TABLE t6(f1 int); INSERT INTO t6 VALUES (9),(7); -SET SESSION join_buffer_size = 2176; +SET @save_join_buffer_size=@@join_buffer_size,@@join_buffer_size = 2176; EXPLAIN SELECT STRAIGHT_JOIN * FROM t2, (t1 LEFT JOIN (t3,t4) ON t1.f1 = t4.f1), t5, t6; SELECT STRAIGHT_JOIN * FROM t2, (t1 LEFT JOIN (t3,t4) ON t1.f1 = t4.f1), t5, t6; -SET SESSION join_buffer_size = DEFAULT; +SET SESSION join_buffer_size = @save_join_buffer_size; DROP TABLE t1,t2,t3,t4,t5,t6; @@ -4479,7 +4480,7 @@ SELECT a, COUNT(*) FROM t1 WHERE 0; DROP TABLE t1; -SET optimizer_switch=@save_optimizer_switch; +SET @@optimizer_switch=@save_optimizer_switch; --echo # --echo # LP bug#994275 Assertion `real->type() == Item::FIELD_ITEM' failed diff -Nru mariadb-10.3-10.3.17/mysql-test/main/set_statement.result mariadb-10.3-10.3.20/mysql-test/main/set_statement.result --- mariadb-10.3-10.3.17/mysql-test/main/set_statement.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/set_statement.result 2019-11-06 16:01:57.000000000 +0000 @@ -1044,19 +1044,11 @@ set @save_log_output= @@log_output; set statement long_query_time=default for select @@long_query_time; @@long_query_time -10.000000 +DEFAULT set statement log_slow_filter=default for select @@log_slow_filter; -@@log_slow_filter -admin,filesort,filesort_on_disk,filesort_priority_queue,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk set statement log_slow_verbosity=default for select @@log_slow_verbosity; -@@log_slow_verbosity - set statement log_slow_rate_limit=default for select @@log_slow_rate_limit; -@@log_slow_rate_limit -1 set statement slow_query_log=default for select @@slow_query_log; -@@slow_query_log -1 truncate table mysql.slow_log; set slow_query_log= 1; set global log_output='TABLE'; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/set_statement.test mariadb-10.3-10.3.20/mysql-test/main/set_statement.test --- mariadb-10.3-10.3.17/mysql-test/main/set_statement.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/set_statement.test 2019-11-06 16:01:57.000000000 +0000 @@ -991,11 +991,17 @@ set @save_slow_query_log= @@slow_query_log; set @save_log_output= @@log_output; +let $long_query_time=`select @@long_query_time`; +--replace_result $long_query_time DEFAULT set statement long_query_time=default for select @@long_query_time; + +# Disable result log as the results depends on the values of the variables +--disable_result_log set statement log_slow_filter=default for select @@log_slow_filter; set statement log_slow_verbosity=default for select @@log_slow_verbosity; set statement log_slow_rate_limit=default for select @@log_slow_rate_limit; set statement slow_query_log=default for select @@slow_query_log; +--enable_result_log truncate table mysql.slow_log; set slow_query_log= 1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/shm.result mariadb-10.3-10.3.20/mysql-test/main/shm.result --- mariadb-10.3-10.3.17/mysql-test/main/shm.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/shm.result 2019-11-06 16:01:57.000000000 +0000 @@ -1348,8 +1348,10 @@ 250503 250505 250504 250505 250505 250505 -SET @save_optimizer_switch=@@optimizer_switch; -SET optimizer_switch='outer_join_with_cache=off'; +SET @local_optimizer_switch=@@optimizer_switch; +set @local_join_cache_level=@@join_cache_level; +set @@join_cache_level=2; +set optimizer_switch='outer_join_with_cache=off,join_cache_hashed=off'; insert into t2 (fld1, companynr) values (999999,99); select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null; companynr companyname @@ -1425,7 +1427,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where 1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where -SET optimizer_switch=@save_optimizer_switch; +SET @@optimizer_switch=@local_optimizer_switch; select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1; companynr companynr 37 36 @@ -1434,6 +1436,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary 1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join) +SET @@join_cache_level=@local_join_cache_level; select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008; fld1 companynr fld3 period 038008 37 reporters 1008 diff -Nru mariadb-10.3-10.3.17/mysql-test/main/show_bad_definer-5553.test mariadb-10.3-10.3.20/mysql-test/main/show_bad_definer-5553.test --- mariadb-10.3-10.3.17/mysql-test/main/show_bad_definer-5553.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/show_bad_definer-5553.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,6 @@ --source include/not_embedded.inc +--source include/default_charset.inc + # # MDEV-5553 A view or procedure with a non existing definer can block "SHOW TABLE STATUS" with an unclear error message # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/show_check.result mariadb-10.3-10.3.20/mysql-test/main/show_check.result --- mariadb-10.3-10.3.17/mysql-test/main/show_check.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/show_check.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,5 @@ +SET @@global.character_set_server= @@session.character_set_server; +set @@sql_mode="STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"; drop table if exists t1,t2; drop table if exists t1aa,t2aa; drop database if exists mysqltest; @@ -440,9 +442,7 @@ DROP TABLE `table`; SET sql_quote_show_create= @old_sql_quote_show_create; SET sql_mode= @old_sql_mode; -select @@max_heap_table_size; -@@max_heap_table_size -1048576 +set @@max_heap_table_size=1048576; CREATE TABLE t1 ( a int(11) default NULL, KEY a USING BTREE (a) @@ -1579,3 +1579,4 @@ SHOW CONTRIBUTORS; SHOW WARNINGS; Level Code Message +SET @@global.character_set_server=@save_character_set_server; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/show_check.test mariadb-10.3-10.3.20/mysql-test/main/show_check.test --- mariadb-10.3-10.3.17/mysql-test/main/show_check.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/show_check.test 2019-11-06 16:01:57.000000000 +0000 @@ -17,6 +17,11 @@ # depends on the presence of the log tables (which are CSV-based). --source include/have_csv.inc +# Test results assumes we are using latin1 +--source include/default_charset.inc +SET @@global.character_set_server= @@session.character_set_server; +set @@sql_mode="STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"; + # # Test of some show commands # @@ -261,7 +266,7 @@ # Test for Bug#2719 Heap tables status shows wrong or missing data. # -select @@max_heap_table_size; +set @@max_heap_table_size=1048576; CREATE TABLE t1 ( a int(11) default NULL, @@ -1406,3 +1411,5 @@ SHOW CONTRIBUTORS; --enable_result_log SHOW WARNINGS; + +SET @@global.character_set_server=@save_character_set_server; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/sp-anchor-type.test mariadb-10.3-10.3.20/mysql-test/main/sp-anchor-type.test --- mariadb-10.3-10.3.17/mysql-test/main/sp-anchor-type.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/sp-anchor-type.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +--source include/default_charset.inc --echo # --echo # Start of 10.3 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/sp-code.result mariadb-10.3-10.3.20/mysql-test/main/sp-code.result --- mariadb-10.3-10.3.17/mysql-test/main/sp-code.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/sp-code.result 2019-11-06 16:01:57.000000000 +0000 @@ -919,6 +919,7 @@ CLOSE c; SELECT a INTO @foo FROM t1 LIMIT 1; # Clear warning stack END| +SET @save_dbug = @@debug_dbug; SET SESSION debug_dbug="+d,bug23032_emit_warning"; CALL p1(); Warning found! @@ -938,7 +939,7 @@ Level Code Message Warning 1105 Unknown error Error 1329 No data - zero rows fetched, selected, or processed -SET SESSION debug_dbug="-d,bug23032_emit_warning"; +SET SESSION debug_dbug=@save_dbug; DROP PROCEDURE p1; DROP TABLE t1; # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/sp-code.test mariadb-10.3-10.3.20/mysql-test/main/sp-code.test --- mariadb-10.3-10.3.17/mysql-test/main/sp-code.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/sp-code.test 2019-11-06 16:01:57.000000000 +0000 @@ -696,9 +696,10 @@ delimiter ;| +SET @save_dbug = @@debug_dbug; SET SESSION debug_dbug="+d,bug23032_emit_warning"; CALL p1(); -SET SESSION debug_dbug="-d,bug23032_emit_warning"; +SET SESSION debug_dbug=@save_dbug; DROP PROCEDURE p1; DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/sp-error.test mariadb-10.3-10.3.20/mysql-test/main/sp-error.test --- mariadb-10.3-10.3.17/mysql-test/main/sp-error.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/sp-error.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,6 +2,8 @@ # Stored PROCEDURE error tests # +--source include/default_charset.inc + --disable_warnings drop table if exists t1, t2; --enable_warnings diff -Nru mariadb-10.3-10.3.17/mysql-test/main/sp.result mariadb-10.3-10.3.20/mysql-test/main/sp.result --- mariadb-10.3-10.3.17/mysql-test/main/sp.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/sp.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,5 @@ +set @save_character_set_client=@@character_set_client; +set @save_userstat=@@global.userstat, @@global.userstat= 0; use test; drop table if exists t1,t2,t3,t4; drop view if exists v1; @@ -3342,7 +3344,8 @@ call bug6063()| call bug7088_1()| call bug7088_2()| -set character set default| +set @@character_set_client=@save_character_set_client| +set @@character_set_results=@save_character_set_client| show create procedure bug6063| Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation bug6063 CREATE DEFINER=`root`@`localhost` PROCEDURE `bug6063`() @@ -6250,7 +6253,8 @@ CALL p1(); NULL -SET NAMES default; +set @@character_set_client=@save_character_set_client; +set @@character_set_results=@save_character_set_client; DROP PROCEDURE p1; drop procedure if exists proc_25411_a; drop procedure if exists proc_25411_b; @@ -7643,6 +7647,7 @@ 2012-03-01 02:00:00 3 1 DROP PROCEDURE p1; # End of 5.5 test +FLUSH USER_STATISTICS; CREATE PROCEDURE sp() ALTER TABLE non_existing_table OPTIMIZE PARTITION p0; CALL sp; Table Op Msg_type Msg_text @@ -7652,7 +7657,7 @@ 1 1 DROP PROCEDURE sp; -CREATE PROCEDURE sp() SHOW USER_STATISTICS; +CREATE PROCEDURE sp() SET STATEMENT SQL_SELECT_LIMIT=0 FOR SHOW USER_STATISTICS; CALL sp; User Total_connections Concurrent_connections Connected_time Busy_time Cpu_time Bytes_received Bytes_sent Binlog_bytes_written Rows_read Rows_sent Rows_deleted Rows_inserted Rows_updated Select_commands Update_commands Other_commands Commit_transactions Rollback_transactions Denied_connections Lost_connections Access_denied Empty_queries Total_ssl_connections Max_statement_time_exceeded SELECT 1; @@ -8828,6 +8833,7 @@ drop procedure p4; drop table t1; set @@sql_mode=@save_sql_mode; +set @@global.userstat= @save_userstat; # # MDEV-17363 Compressed columns cannot be restored from dump # COMPRESSED conflicted between data type and SP label, diff -Nru mariadb-10.3-10.3.17/mysql-test/main/sp-security.result mariadb-10.3-10.3.20/mysql-test/main/sp-security.result --- mariadb-10.3-10.3.17/mysql-test/main/sp-security.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/sp-security.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +set @@global.character_set_server=@@session.character_set_server; connect con1root,localhost,root,,; connection con1root; use test; @@ -800,3 +801,4 @@ connection default; DROP DATABASE u1; DROP USER u1@localhost; +set @@global.character_set_server=@save_character_set_server; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/sp-security.test mariadb-10.3-10.3.20/mysql-test/main/sp-security.test --- mariadb-10.3-10.3.17/mysql-test/main/sp-security.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/sp-security.test 2019-11-06 16:01:57.000000000 +0000 @@ -3,7 +3,9 @@ # # Can't test with embedded server that doesn't support grants --- source include/not_embedded.inc +--source include/not_embedded.inc +--source include/default_charset.inc +set @@global.character_set_server=@@session.character_set_server; # Save the initial number of concurrent sessions --source include/count_sessions.inc @@ -1080,3 +1082,5 @@ connection default; DROP DATABASE u1; DROP USER u1@localhost; + +set @@global.character_set_server=@save_character_set_server; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/sp.test mariadb-10.3-10.3.20/mysql-test/main/sp.test --- mariadb-10.3-10.3.17/mysql-test/main/sp.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/sp.test 2019-11-06 16:01:57.000000000 +0000 @@ -14,6 +14,11 @@ # Tests that require --with-geometry go into sp_gis.test # Tests that require multibyte character sets, which are not always available, # go into separate files (e.g. sp-ucs2.test) + +--source include/default_charset.inc +set @save_character_set_client=@@character_set_client; +set @save_userstat=@@global.userstat, @@global.userstat= 0; + use test; # Test tables @@ -4087,7 +4092,8 @@ call bug7088_1()| call bug7088_2()| -set character set default| +set @@character_set_client=@save_character_set_client| +set @@character_set_results=@save_character_set_client| show create procedure bug6063| show create procedure bug7088_1| @@ -7364,7 +7370,8 @@ CALL p1(); -SET NAMES default; +set @@character_set_client=@save_character_set_client; +set @@character_set_results=@save_character_set_client; DROP PROCEDURE p1; # @@ -8240,6 +8247,7 @@ # # Bug#43962 "Packets out of order" calling a SHOW TABLE STATUS # + DELIMITER //; CREATE DEFINER = 'root'@'localhost' PROCEDURE p1() NOT DETERMINISTIC @@ -9069,11 +9077,12 @@ --echo # End of 5.5 test #MDEV-17610 +FLUSH USER_STATISTICS; CREATE PROCEDURE sp() ALTER TABLE non_existing_table OPTIMIZE PARTITION p0; CALL sp; SELECT 1; DROP PROCEDURE sp; -CREATE PROCEDURE sp() SHOW USER_STATISTICS; +CREATE PROCEDURE sp() SET STATEMENT SQL_SELECT_LIMIT=0 FOR SHOW USER_STATISTICS; CALL sp; SELECT 1; DROP PROCEDURE sp; @@ -10354,6 +10363,7 @@ drop procedure p4; drop table t1; set @@sql_mode=@save_sql_mode; +set @@global.userstat= @save_userstat; --echo # --echo # MDEV-17363 Compressed columns cannot be restored from dump diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ssl-big.test mariadb-10.3-10.3.20/mysql-test/main/ssl-big.test --- mariadb-10.3-10.3.17/mysql-test/main/ssl-big.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ssl-big.test 2019-11-06 16:01:57.000000000 +0000 @@ -3,6 +3,7 @@ -- source include/have_ssl_communication.inc -- source include/big_test.inc +-- source include/have_64bit.inc # Save the initial number of concurrent sessions --source include/count_sessions.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ssl_compress.result mariadb-10.3-10.3.20/mysql-test/main/ssl_compress.result --- mariadb-10.3-10.3.17/mysql-test/main/ssl_compress.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ssl_compress.result 2019-11-06 16:01:57.000000000 +0000 @@ -1354,8 +1354,10 @@ 250503 250505 250504 250505 250505 250505 -SET @save_optimizer_switch=@@optimizer_switch; -SET optimizer_switch='outer_join_with_cache=off'; +SET @local_optimizer_switch=@@optimizer_switch; +set @local_join_cache_level=@@join_cache_level; +set @@join_cache_level=2; +set optimizer_switch='outer_join_with_cache=off,join_cache_hashed=off'; insert into t2 (fld1, companynr) values (999999,99); select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null; companynr companyname @@ -1431,7 +1433,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where 1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where -SET optimizer_switch=@save_optimizer_switch; +SET @@optimizer_switch=@local_optimizer_switch; select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1; companynr companynr 37 36 @@ -1440,6 +1442,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary 1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join) +SET @@join_cache_level=@local_join_cache_level; select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008; fld1 companynr fld3 period 038008 37 reporters 1008 diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ssl_compress.test mariadb-10.3-10.3.20/mysql-test/main/ssl_compress.test --- mariadb-10.3-10.3.17/mysql-test/main/ssl_compress.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ssl_compress.test 2019-11-06 16:01:57.000000000 +0000 @@ -4,6 +4,7 @@ -- source include/have_ssl_communication.inc -- source include/have_compress.inc -- source include/not_staging.inc +--source include/default_optimizer_switch.inc # Save the initial number of concurrent sessions --source include/count_sessions.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ssl.result mariadb-10.3-10.3.20/mysql-test/main/ssl.result --- mariadb-10.3-10.3.17/mysql-test/main/ssl.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ssl.result 2019-11-06 16:01:57.000000000 +0000 @@ -1357,8 +1357,10 @@ 250503 250505 250504 250505 250505 250505 -SET @save_optimizer_switch=@@optimizer_switch; -SET optimizer_switch='outer_join_with_cache=off'; +SET @local_optimizer_switch=@@optimizer_switch; +set @local_join_cache_level=@@join_cache_level; +set @@join_cache_level=2; +set optimizer_switch='outer_join_with_cache=off,join_cache_hashed=off'; insert into t2 (fld1, companynr) values (999999,99); select t2.companynr,companyname from t2 left join t4 using (companynr) where t4.companynr is null; companynr companyname @@ -1434,7 +1436,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t4 ALL NULL NULL NULL NULL 12 Using where 1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where -SET optimizer_switch=@save_optimizer_switch; +SET @@optimizer_switch=@local_optimizer_switch; select distinct t2.companynr,t4.companynr from t2,t4 where t2.companynr=t4.companynr+1; companynr companynr 37 36 @@ -1443,6 +1445,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t4 index NULL PRIMARY 1 NULL 12 Using index; Using temporary 1 SIMPLE t2 ALL NULL NULL NULL NULL 1199 Using where; Using join buffer (flat, BNL join) +SET @@join_cache_level=@local_join_cache_level; select t2.fld1,t2.companynr,fld3,period from t3,t2 where t2.fld1 = 38208 and t2.fld1=t3.t2nr and period = 1008 or t2.fld1 = 38008 and t2.fld1 =t3.t2nr and period = 1008; fld1 companynr fld3 period 038008 37 reporters 1008 diff -Nru mariadb-10.3-10.3.17/mysql-test/main/ssl.test mariadb-10.3-10.3.20/mysql-test/main/ssl.test --- mariadb-10.3-10.3.17/mysql-test/main/ssl.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/ssl.test 2019-11-06 16:01:57.000000000 +0000 @@ -8,6 +8,8 @@ # Save the initial number of concurrent sessions --source include/count_sessions.inc +--source include/default_charset.inc + connect (ssl_con,localhost,root,,,,,SSL); # Check ssl turned on diff -Nru mariadb-10.3-10.3.17/mysql-test/main/statistics.result mariadb-10.3-10.3.20/mysql-test/main/statistics.result --- mariadb-10.3-10.3.17/mysql-test/main/statistics.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/statistics.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,7 @@ drop table if exists t1,t2; set @save_use_stat_tables=@@use_stat_tables; +set @save_histogram_size=@@global.histogram_size; +set @@global.histogram_size=0,@@local.histogram_size=0; DELETE FROM mysql.table_stats; DELETE FROM mysql.column_stats; DELETE FROM mysql.index_stats; @@ -1771,3 +1773,4 @@ # # End of 10.2 tests # +set @@global.histogram_size=@save_histogram_size; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/statistics.test mariadb-10.3-10.3.20/mysql-test/main/statistics.test --- mariadb-10.3-10.3.17/mysql-test/main/statistics.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/statistics.test 2019-11-06 16:01:57.000000000 +0000 @@ -5,6 +5,8 @@ --enable_warnings set @save_use_stat_tables=@@use_stat_tables; +set @save_histogram_size=@@global.histogram_size; +set @@global.histogram_size=0,@@local.histogram_size=0; DELETE FROM mysql.table_stats; --sorted_result @@ -913,3 +915,5 @@ --echo # --echo # End of 10.2 tests --echo # + +set @@global.histogram_size=@save_histogram_size; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/stat_tables-enospc.result mariadb-10.3-10.3.20/mysql-test/main/stat_tables-enospc.result --- mariadb-10.3-10.3.17/mysql-test/main/stat_tables-enospc.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/stat_tables-enospc.result 2019-11-06 16:01:57.000000000 +0000 @@ -2,6 +2,7 @@ create table t1 (a varchar(255), b varchar(255), c varchar(255)); set use_stat_tables=PREFERABLY, optimizer_use_condition_selectivity=3; set debug_dbug='+d,simulate_file_write_error'; +set @@max_heap_table_size=128*1024; analyze table t1; Table Op Msg_type Msg_text test.t1 analyze Error Error writing file 'tmp-file' (Errcode: 28 "No space left on device") diff -Nru mariadb-10.3-10.3.17/mysql-test/main/stat_tables-enospc.test mariadb-10.3-10.3.20/mysql-test/main/stat_tables-enospc.test --- mariadb-10.3-10.3.17/mysql-test/main/stat_tables-enospc.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/stat_tables-enospc.test 2019-11-06 16:01:57.000000000 +0000 @@ -3,6 +3,7 @@ # # test that ANALYZE TABLE is immediately aborted when going out of disk space --source include/have_debug.inc + call mtr.add_suppression("No space left on device"); create table t1 (a varchar(255), b varchar(255), c varchar(255)); --disable_query_log @@ -16,8 +17,8 @@ --enable_query_log set use_stat_tables=PREFERABLY, optimizer_use_condition_selectivity=3; set debug_dbug='+d,simulate_file_write_error'; +set @@max_heap_table_size=128*1024; --replace_regex /'.*'/'tmp-file'/ analyze table t1; set debug_dbug=''; drop table t1; - diff -Nru mariadb-10.3-10.3.17/mysql-test/main/stat_tables_innodb.result mariadb-10.3-10.3.20/mysql-test/main/stat_tables_innodb.result --- mariadb-10.3-10.3.17/mysql-test/main/stat_tables_innodb.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/stat_tables_innodb.result 2019-11-06 16:01:57.000000000 +0000 @@ -8,6 +8,9 @@ @@session.use_stat_tables COMPLEMENTARY set @save_use_stat_tables=@@use_stat_tables; +set @save_histogram_size=@@global.histogram_size; +set @@global.histogram_size=0,@@local.histogram_size=0; +set optimizer_use_condition_selectivity=1; set use_stat_tables='preferably'; DROP DATABASE IF EXISTS dbt3_s001; CREATE DATABASE dbt3_s001; @@ -776,7 +779,6 @@ set @save_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity; set optimizer_use_condition_selectivity=4; set use_stat_tables=preferably; -set @save_histogram_size= @@histogram_size; set histogram_size=255; create table t1 ( a varchar(255) character set utf8); insert into t1 values (REPEAT('ӥ',255)), (REPEAT('ç',255)); @@ -822,10 +824,35 @@ 2004-01-01 2004-02-29 0000-10-31 -drop table t1; set @@sql_mode= @save_sql_mode; set use_stat_tables=@save_use_stat_tables; set @@histogram_size= @save_histogram_size; set @@optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; +drop table t1; +# +# MDEV-20589: Server still crashes in Field::set_warning_truncated_wrong_value +# +set names utf8; +create table t1 ( a varchar(255) character set utf8); +insert into t1 values (REPEAT('ӥ',255)), (REPEAT('ç',255)); +set use_stat_tables='preferably'; +analyze table t1 persistent for all; +Table Op Msg_type Msg_text +test.t1 analyze status Engine-independent statistics collected +test.t1 analyze status OK +set @save_sql_mode= @@sql_mode; +set sql_mode='ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; +update mysql.column_stats set min_value= REPEAT('ӥ',256) where db_name='test' and table_name='t1'; +Warnings: +Warning 1265 Data truncated for column 'min_value' at row 1 +set @@sql_mode= @save_sql_mode; +select length(a) from t1 where a=REPEAT('ӥ',255); +length(a) +510 +set names latin1; +set @@use_stat_tables=@save_use_stat_tables; +drop table t1; +# please keep this at the last +set @@global.histogram_size=@save_histogram_size; set optimizer_switch=@save_optimizer_switch_for_stat_tables_test; SET SESSION STORAGE_ENGINE=DEFAULT; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/stat_tables.result mariadb-10.3-10.3.20/mysql-test/main/stat_tables.result --- mariadb-10.3-10.3.17/mysql-test/main/stat_tables.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/stat_tables.result 2019-11-06 16:01:57.000000000 +0000 @@ -5,6 +5,9 @@ @@session.use_stat_tables COMPLEMENTARY set @save_use_stat_tables=@@use_stat_tables; +set @save_histogram_size=@@global.histogram_size; +set @@global.histogram_size=0,@@local.histogram_size=0; +set optimizer_use_condition_selectivity=1; set use_stat_tables='preferably'; DROP DATABASE IF EXISTS dbt3_s001; CREATE DATABASE dbt3_s001; @@ -749,7 +752,6 @@ set @save_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity; set optimizer_use_condition_selectivity=4; set use_stat_tables=preferably; -set @save_histogram_size= @@histogram_size; set histogram_size=255; create table t1 ( a varchar(255) character set utf8); insert into t1 values (REPEAT('ӥ',255)), (REPEAT('ç',255)); @@ -795,8 +797,33 @@ 2004-01-01 2004-02-29 0000-10-31 -drop table t1; set @@sql_mode= @save_sql_mode; set use_stat_tables=@save_use_stat_tables; set @@histogram_size= @save_histogram_size; set @@optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; +drop table t1; +# +# MDEV-20589: Server still crashes in Field::set_warning_truncated_wrong_value +# +set names utf8; +create table t1 ( a varchar(255) character set utf8); +insert into t1 values (REPEAT('ӥ',255)), (REPEAT('ç',255)); +set use_stat_tables='preferably'; +analyze table t1 persistent for all; +Table Op Msg_type Msg_text +test.t1 analyze status Engine-independent statistics collected +test.t1 analyze status OK +set @save_sql_mode= @@sql_mode; +set sql_mode='ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; +update mysql.column_stats set min_value= REPEAT('ӥ',256) where db_name='test' and table_name='t1'; +Warnings: +Warning 1265 Data truncated for column 'min_value' at row 1 +set @@sql_mode= @save_sql_mode; +select length(a) from t1 where a=REPEAT('ӥ',255); +length(a) +510 +set names latin1; +set @@use_stat_tables=@save_use_stat_tables; +drop table t1; +# please keep this at the last +set @@global.histogram_size=@save_histogram_size; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/stat_tables.test mariadb-10.3-10.3.20/mysql-test/main/stat_tables.test --- mariadb-10.3-10.3.17/mysql-test/main/stat_tables.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/stat_tables.test 2019-11-06 16:01:57.000000000 +0000 @@ -4,6 +4,9 @@ select @@session.use_stat_tables; set @save_use_stat_tables=@@use_stat_tables; +set @save_histogram_size=@@global.histogram_size; +set @@global.histogram_size=0,@@local.histogram_size=0; +set optimizer_use_condition_selectivity=1; set use_stat_tables='preferably'; @@ -511,7 +514,6 @@ set @save_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity; set optimizer_use_condition_selectivity=4; set use_stat_tables=preferably; -set @save_histogram_size= @@histogram_size; set histogram_size=255; create table t1 ( a varchar(255) character set utf8); @@ -538,9 +540,33 @@ update mysql.column_stats set min_value='2004-0-31123' where db_name='test' and table_name='t1'; select min_value from mysql.column_stats where db_name='test' and table_name='t1'; select * from t1; -drop table t1; - set @@sql_mode= @save_sql_mode; set use_stat_tables=@save_use_stat_tables; set @@histogram_size= @save_histogram_size; set @@optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity; +drop table t1; + +--echo # +--echo # MDEV-20589: Server still crashes in Field::set_warning_truncated_wrong_value +--echo # + +set names utf8; +create table t1 ( a varchar(255) character set utf8); +insert into t1 values (REPEAT('ӥ',255)), (REPEAT('ç',255)); + +set use_stat_tables='preferably'; +analyze table t1 persistent for all; + +set @save_sql_mode= @@sql_mode; +set sql_mode='ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; +update mysql.column_stats set min_value= REPEAT('ӥ',256) where db_name='test' and table_name='t1'; +set @@sql_mode= @save_sql_mode; + +select length(a) from t1 where a=REPEAT('ӥ',255); + +set names latin1; +set @@use_stat_tables=@save_use_stat_tables; +drop table t1; + +--echo # please keep this at the last +set @@global.histogram_size=@save_histogram_size; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect2.result mariadb-10.3-10.3.20/mysql-test/main/subselect2.result --- mariadb-10.3-10.3.17/mysql-test/main/subselect2.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect2.result 2019-11-06 16:01:57.000000000 +0000 @@ -383,7 +383,7 @@ DEALLOCATE PREPARE stmt; DROP VIEW v1; DROP TABLE t1,t2,t3; -set optimizer_switch=@subselect2_test_tmp; +set optimizer_switch=@save_optimizer_switch; create table t1 (a int); create table t2 (a int); create table t3(a int); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect2.test mariadb-10.3-10.3.20/mysql-test/main/subselect2.test --- mariadb-10.3-10.3.17/mysql-test/main/subselect2.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect2.test 2019-11-06 16:01:57.000000000 +0000 @@ -7,6 +7,7 @@ --disable_warnings drop table if exists t1, t2, t3, t4; --enable_warnings +--source include/default_optimizer_switch.inc set @subselect2_test_tmp=@@optimizer_switch; set optimizer_switch='semijoin=on,firstmatch=on,mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; @@ -396,7 +397,7 @@ DROP VIEW v1; DROP TABLE t1,t2,t3; -set optimizer_switch=@subselect2_test_tmp; +set optimizer_switch=@save_optimizer_switch; # # Bug #23303485 : HANDLE_FATAL_SIGNAL (SIG=11) IN SUBSELECT_UNION_ENGINE::NO_ROWS diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect3.inc mariadb-10.3-10.3.20/mysql-test/main/subselect3.inc --- mariadb-10.3-10.3.17/mysql-test/main/subselect3.inc 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect3.inc 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,1306 @@ +--disable_warnings +drop table if exists t0, t1, t2, t3, t4, t5, t11, t12, t21, t22; +--enable_warnings + +set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on'; + +# +# 1. Subquery with GROUP/HAVING +# +create table t1 (oref int, grp int, ie int) ; +insert into t1 (oref, grp, ie) values + (1, 1, 1), + (1, 1, 1), + (1, 2, NULL), + + (2, 1, 3), + + (3, 1, 4), + (3, 2, NULL); + +# Ok, for +# select max(ie) from t1 where oref=PARAM group by grp +# we'll have: +# PARAM subquery result +# 1 -> {(1), (NULL)} matching + NULL +# 2 -> {(3)} non-matching +# 3 -> {(3), (NULL)} non-matching + NULL +# 4 -> {} empty set + +create table t2 (oref int, a int); +insert into t2 values + (1, 1), + (2, 2), + (3, 3), + (4, NULL), + (2, NULL); + +# true, false, null, false, null +select a, oref, a in (select max(ie) + from t1 where oref=t2.oref group by grp) Z from t2; + +# This must have a trigcond +explain extended +select a, oref, a in (select max(ie) + from t1 where oref=t2.oref group by grp) Z from t2; + +# This must not have a trigcond: +explain extended +select a, oref from t2 +where a in (select max(ie) from t1 where oref=t2.oref group by grp); +select a, oref, a in ( + select max(ie) from t1 where oref=t2.oref group by grp union + select max(ie) from t1 where oref=t2.oref group by grp + ) Z from t2; + +# Non-correlated subquery, 2 NULL evaluations +create table t3 (a int); +insert into t3 values (NULL), (NULL); +flush status; +select a in (select max(ie) from t1 where oref=4 group by grp) from t3; +show status like 'Handler_read_rnd_next'; +select ' ^ This must show 11' Z; + +set @save_optimizer_switch=@@optimizer_switch; +set @@optimizer_switch="partial_match_rowid_merge=off,partial_match_table_scan=off"; + +# This must show trigcond: +explain extended select a in (select max(ie) from t1 where oref=4 group by grp) from t3; + +set @@optimizer_switch=@save_optimizer_switch; +drop table t1, t2, t3; + +# +# 2. Subquery handled with 'index_subquery': +# +create table t1 (a int, oref int, key(a)); +insert into t1 values + (1, 1), + (1, NULL), + (2, 3), + (2, NULL), + (3, NULL); +insert into t1 values (5, 7), (8, 9), (4, 1); + +create table t2 (a int, oref int); +insert into t2 values (1, 1), (2,2), (NULL, 3), (NULL, 4); + +select oref, a, a in (select a from t1 where oref=t2.oref) Z from t2; + +# The next explain shows "using index" but that is just incorrect display +# (there is a bug filed about this). +explain extended +select oref, a, a in (select a from t1 where oref=t2.oref) Z from t2; + +flush status; +select oref, a from t2 where a in (select a from t1 where oref=t2.oref); +# This will only show access to t2: +show status like '%Handler_read_rnd_next'; + +# Check that repeated NULL-scans are not cached (subq. is not correlated): +delete from t2; +insert into t2 values (NULL, 0),(NULL, 0), (NULL, 0), (NULL, 0); + +set optimizer_switch='subquery_cache=off'; +flush status; +select oref, a, a in (select a from t1 where oref=t2.oref) Z from t2; +show status like '%Handler_read%'; +select 'No key lookups, seq reads: 29= 5 reads from t2 + 4 * 6 reads from t1.' Z; +set @@optimizer_switch=@save_optimizer_switch; + +drop table t1, t2; + +# +# 3. Subquery handled with 'unique_index_subquery': +# +create table t1 (a int, b int, primary key (a)); +insert into t1 values (1,1), (3,1),(100,1); + +create table t2 (a int, b int); +insert into t2 values (1,1),(2,1),(NULL,1),(NULL,0); + +select a,b, a in (select a from t1 where t1.b = t2.b) Z from t2 ; + +drop table t1, t2; + +# +# 4. Subquery that is a join, with ref access +# +create table t1 (a int, b int, key(a)); +insert into t1 values + (0,0),(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9); + +create table t2 like t1; +insert into t2 select * from t1; +update t2 set b=1; + +create table t3 (a int, oref int); +insert into t3 values (1, 1), (NULL,1), (NULL,0); +select a, oref, + t3.a in (select t1.a from t1, t2 where t1.b=t2.a and t2.b=t3.oref) Z +from t3; + +# This must have trigcond in WHERE and HAVING: +explain extended +select a, oref, + t3.a in (select t1.a from t1, t2 where t1.b=t2.a and t2.b=t3.oref) Z +from t3; + +drop table t1, t2, t3; + + +# +# BUG#24085: Wrong query result for "NULL IN (SELECT ... UNION SELECT ...)" +# + +# case 1: NULL IN (SELECT not_null_val FROM ...) w/o HAVING/GROUP-BY/etc +create table t1 (a int NOT NULL, b int NOT NULL, key(a)); +insert into t1 values + (0,0),(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9); + +create table t2 like t1; +insert into t2 select * from t1; +update t2 set b=1; + +create table t3 (a int, oref int); +insert into t3 values (1, 1), (NULL,1), (NULL,0); +select a, oref, + t3.a in (select t1.a from t1, t2 where t1.b=t2.a and t2.b=t3.oref) Z +from t3; + +--echo This must show a trig_cond: +explain extended +select a, oref, + t3.a in (select t1.a from t1, t2 where t1.b=t2.a and t2.b=t3.oref) Z +from t3; +drop table t1,t2,t3; + + +# case 2: NULL IN (SELECT not_null_val FROM) where SELECT has GROUP BY +create table t1 (oref int, grp int); +insert into t1 (oref, grp) values + (1, 1), + (1, 1); + +# Ok, for +# select count(*) from t1 group by grp having grp=PARAM +# we'll have: +# PARAM subuqery result +# 1 -> {(2)} +# 2 -> {} - empty set +create table t2 (oref int, a int); +insert into t2 values + (1, NULL), + (2, NULL); + +select a, oref, + a in (select count(*) from t1 group by grp having grp=t2.oref) Z from t2; + +--echo This must show a trig_cond: +explain extended +select a, oref, + a in (select count(*) from t1 group by grp having grp=t2.oref) Z from t2; + +drop table t1, t2; + +create table t1 (a int, b int, primary key (a)); +insert into t1 values (1,1), (3,1),(100,1); +create table t2 (a int, b int); +insert into t2 values (1,1),(2,1),(NULL,1),(NULL,0); + +select a,b, a in (select a from t1 where t1.b = t2.b union select a from +t1 where t1.b = t2.b) Z from t2 ; +select a,b, a in (select a from t1 where t1.b = t2.b) Z from t2 ; +drop table t1, t2; + + +# +# BUG#24127: Incorrect results of row-based subqueries with NULLs on the left side. +# +create table t3 (a int); +insert into t3 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t2 (a int, b int, oref int); +insert into t2 values (NULL,1, 100), (NULL,2, 100); + +create table t1 (a int, b int, c int, key(a,b)); +insert into t1 select 2*A, 2*A, 100 from t3; + +# First test index subquery engine +explain extended select a,b, oref, (a,b) in (select a,b from t1 where c=t2.oref) Z from t2; +select a,b, oref, (a,b) in (select a,b from t1 where c=t2.oref) Z from t2; + +# Then check that we do turn off 'ref' scans in the subquery +create table t4 (x int); +insert into t4 select A.a + 10*B.a from t1 A, t1 B; +explain extended + select a,b, oref, + (a,b) in (select a,b from t1,t4 where c=t2.oref) Z + from t2; +select a,b, oref, + (a,b) in (select a,b from t1,t4 where c=t2.oref) Z +from t2; + +drop table t1,t2,t3,t4; + +# More tests for tricky multi-column cases, where some of pushed-down +# equalities are used for index lookups and some arent. +create table t1 (oref char(4), grp int, ie1 int, ie2 int); +insert into t1 (oref, grp, ie1, ie2) values + ('aa', 10, 2, 1), + ('aa', 10, 1, 1), + ('aa', 20, 2, 1), + ('bb', 10, 3, 1), + ('cc', 10, 4, 2), + ('cc', 20, 3, 2), + + ('ee', 10, 2, 1), + ('ee', 10, 1, 2), + + ('ff', 20, 2, 2), + ('ff', 20, 1, 2); +create table t2 (oref char(4), a int, b int); +insert into t2 values + ('ee', NULL, 1), + ('bb', 2, 1), + ('ff', 2, 2), + ('cc', 3, NULL), + ('bb', NULL, NULL), + ('aa', 1, 1), + ('dd', 1, NULL); +alter table t1 add index idx(ie1,ie2); + +# cc 3 NULL NULL +select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2 where a=3 and b is null ; +insert into t2 values ('new1', 10,10); +insert into t1 values ('new1', 1234, 10, NULL); +# new1, 10, 10, NULL, +select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2 where a=10 and b=10; +explain extended +select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2 where a=10 and b=10; +drop table t1, t2; + +# Now test different column types: +create table t1 (oref char(4), grp int, ie int); +insert into t1 (oref, grp, ie) values + ('aa', 10, 2), + ('aa', 10, 1), + ('aa', 20, NULL), + + ('bb', 10, 3), + + ('cc', 10, 4), + ('cc', 20, NULL), + + ('ee', 10, NULL), + ('ee', 10, NULL), + + ('ff', 20, 2), + ('ff', 20, 1); + +create table t2 (oref char(4), a int); +insert into t2 values + ('ee', NULL), + ('bb', 2), + ('ff', 2), + ('cc', 3), + ('aa', 1), + ('dd', NULL), + ('bb', NULL); + +select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2; + +select oref, a from t2 where a in (select ie from t1 where oref=t2.oref); + +select oref, a from t2 where a not in (select ie from t1 where oref=t2.oref); + + +select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by grp) Z from t2; + +select oref, a from t2 where + a in (select min(ie) from t1 where oref=t2.oref group by grp); + +select oref, a from t2 where + a not in (select min(ie) from t1 where oref=t2.oref group by grp); + +# +update t1 set ie=3 where oref='ff' and ie=1; + +select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by +grp) Z from t2; + + +select oref, a from t2 where a in (select min(ie) from t1 where +oref=t2.oref group by grp); + +select oref, a from t2 where a not in (select min(ie) from t1 where +oref=t2.oref group by grp); + +select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by +grp having min(ie) > 1) Z from t2; + +select oref, a from t2 where a in (select min(ie) from t1 where +oref=t2.oref group by grp having min(ie) > 1); + +select oref, a from t2 where a not in (select min(ie) from t1 where +oref=t2.oref group by grp having min(ie) > 1); + +# +alter table t1 add index idx(ie); + +explain select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2; + +select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2; + +select oref, a from t2 where a in (select ie from t1 where oref=t2.oref); + +select oref, a from t2 where a not in (select ie from t1 where oref=t2.oref); + + +alter table t1 drop index idx; +alter table t1 add index idx(oref,ie); + +explain select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2; + +select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2; + +select oref, a from t2 where a in (select ie from t1 where oref=t2.oref); + +select oref, a from t2 where a not in (select ie from t1 where oref=t2.oref); + +explain +select oref, a, + a in (select min(ie) from t1 where oref=t2.oref + group by grp having min(ie) > 1) Z +from t2; + +select oref, a, + a in (select min(ie) from t1 where oref=t2.oref + group by grp having min(ie) > 1) Z +from t2; + +select oref, a from t2 where a in (select min(ie) from t1 where oref=t2.oref + group by grp having min(ie) > 1); + +select oref, a from t2 where a not in (select min(ie) from t1 where oref=t2.oref + group by grp having min(ie) > 1); + +drop table t1,t2; + +create table t1 (oref char(4), grp int, ie1 int, ie2 int); +insert into t1 (oref, grp, ie1, ie2) values + ('aa', 10, 2, 1), + ('aa', 10, 1, 1), + ('aa', 20, 2, 1), + + ('bb', 10, 3, 1), + + ('cc', 10, 4, 2), + ('cc', 20, 3, 2), + + ('ee', 10, 2, 1), + ('ee', 10, 1, 2), + + ('ff', 20, 2, 2), + ('ff', 20, 1, 2); + +create table t2 (oref char(4), a int, b int); +insert into t2 values + ('ee', NULL, 1), + ('bb', 2, 1), + ('ff', 2, 2), + ('cc', 3, NULL), + ('bb', NULL, NULL), + ('aa', 1, 1), + ('dd', 1, NULL); + +select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2; + +select oref, a, b from t2 where (a,b) in (select ie1,ie2 from t1 where oref=t2.oref); + +select oref, a, b from t2 where (a,b) not in (select ie1,ie2 from t1 where oref=t2.oref); + +select oref, a, b, + (a,b) in (select min(ie1),max(ie2) from t1 + where oref=t2.oref group by grp) Z +from t2; + +select oref, a, b from t2 where + (a,b) in (select min(ie1), max(ie2) from t1 where oref=t2.oref group by grp); + +select oref, a, b from t2 where + (a,b) not in (select min(ie1), max(ie2) from t1 where oref=t2.oref group by grp); + +alter table t1 add index idx(ie1,ie2); + +explain select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2; + +select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2; + +select oref, a, b from t2 where (a,b) in (select ie1,ie2 from t1 where oref=t2.oref); + +select oref, a, b from t2 where (a,b) not in (select ie1,ie2 from t1 where oref=t2.oref); + +explain extended +select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2; + +drop table t1,t2; + +create table t1 (oref char(4), grp int, ie int primary key); +insert into t1 (oref, grp, ie) values + ('aa', 10, 2), + ('aa', 10, 1), + + ('bb', 10, 3), + + ('cc', 10, 4), + ('cc', 20, 5), + ('cc', 10, 6); + +create table t2 (oref char(4), a int); +insert into t2 values + ('ee', NULL), + ('bb', 2), + ('cc', 5), + ('cc', 2), + ('cc', NULL), + ('aa', 1), + ('bb', NULL); + +explain select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2; + +select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2; + +select oref, a from t2 where a in (select ie from t1 where oref=t2.oref); + +select oref, a from t2 where a not in (select ie from t1 where oref=t2.oref); + +explain +select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by grp) Z from t2; + +select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by grp) Z from t2; + +drop table t1,t2; + +# +# BUG#24420: row-based IN suqueries with aggregation when the left operand +# of the subquery predicate may contain NULL values +# + +create table t1 (a int, b int); +insert into t1 values (0,0), (2,2), (3,3); +create table t2 (a int, b int); +insert into t2 values (1,1), (3,3); + +select a, b, (a,b) in (select a, min(b) from t2 group by a) Z from t1; + +insert into t2 values (NULL,4); +select a, b, (a,b) in (select a, min(b) from t2 group by a) Z from t1; + +drop table t1,t2; + +# +# Bug #24484: Aggregate function used in column list subquery gives erroneous +# error +# +CREATE TABLE t1 (a int, b INT, c CHAR(10) NOT NULL, PRIMARY KEY (a, b)); +INSERT INTO t1 VALUES (1,1,'a'), (1,2,'b'), (1,3,'c'), (1,4,'d'), (1,5,'e'), + (2,1,'f'), (2,2,'g'), (2,3,'h'), (3,4,'i'),(3,3,'j'), (3,2,'k'), (3,1,'l'), + (1,9,'m'); +CREATE TABLE t2 (a int, b INT, c CHAR(10) NOT NULL, PRIMARY KEY (a, b)); +INSERT INTO t2 SELECT * FROM t1; + +# Gives error, but should work since it is (a, b) is the PK so only one +# given match possible +SELECT a, MAX(b), (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b)) + as test FROM t1 GROUP BY a; +SELECT * FROM t1 GROUP by t1.a + HAVING (MAX(t1.b) > (SELECT MAX(t2.b) FROM t2 WHERE t2.c < t1.c + HAVING MAX(t2.b+t1.a) < 10)); + +SELECT a,b,c FROM t1 WHERE b in (9,3,4) ORDER BY b,c; + +SELECT a, MAX(b), + (SELECT COUNT(DISTINCT t.c) FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b) + LIMIT 1) + as cnt, + (SELECT t.b FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b) LIMIT 1) + as t_b, + (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b) LIMIT 1) + as t_b, + (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b) ORDER BY t.c LIMIT 1) + as t_b + FROM t1 GROUP BY a; + +SELECT a, MAX(b), + (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b) LIMIT 1) as test + FROM t1 GROUP BY a; + + +DROP TABLE t1, t2; + +# The next three test cases must be executed with the IN=>EXISTS strategy +set @@optimizer_switch="partial_match_rowid_merge=off,partial_match_table_scan=off"; + +# +# Bug #27870: crash of an equijoin query with WHERE condition containing +# a subquery predicate of the form NOT IN (SELECT ...) +# + +CREATE TABLE t1 (a int); +CREATE TABLE t2 (b int, PRIMARY KEY(b)); +INSERT INTO t1 VALUES (1), (NULL), (4); +INSERT INTO t2 VALUES (3), (1),(2), (5), (4), (7), (6); + +EXPLAIN EXTENDED +SELECT a FROM t1, t2 WHERE a=b AND (b NOT IN (SELECT a FROM t1)); +SELECT a FROM t1, t2 WHERE a=b AND (b NOT IN (SELECT a FROM t1)); +SELECT a FROM t1, t2 WHERE a=b AND (b NOT IN (SELECT a FROM t1 WHERE a > 4)); + +DROP TABLE t1,t2; + +# +# Bug #28375: crash for NOT IN subquery predicate when left operand becomes NULL +# + +CREATE TABLE t1 (id int); +CREATE TABLE t2 (id int PRIMARY KEY); +CREATE TABLE t3 (id int PRIMARY KEY, name varchar(10)); +INSERT INTO t1 VALUES (2), (NULL), (3), (1); +INSERT INTO t2 VALUES (234), (345), (457); +INSERT INTO t3 VALUES (222,'bbb'), (333,'ccc'), (111,'aaa'); + +EXPLAIN +SELECT * FROM t1 + WHERE t1.id NOT IN (SELECT t2.id FROM t2,t3 + WHERE t3.name='xxx' AND t2.id=t3.id); +SELECT * FROM t1 + WHERE t1.id NOT IN (SELECT t2.id FROM t2,t3 + WHERE t3.name='xxx' AND t2.id=t3.id); + +SELECT (t1.id IN (SELECT t2.id FROM t2,t3 + WHERE t3.name='xxx' AND t2.id=t3.id)) AS x + FROM t1; + +DROP TABLE t1,t2,t3; + +# +# Bug #22855: Optimizer doesn't rewrite NOT IN subselects to a correlated +# subquery +# +CREATE TABLE t1 (a INT NOT NULL); +INSERT INTO t1 VALUES (1),(-1), (65),(66); + +CREATE TABLE t2 (a INT UNSIGNED NOT NULL PRIMARY KEY); +INSERT INTO t2 VALUES (65),(66); + +SELECT a FROM t1 WHERE a NOT IN (65,66); +SELECT a FROM t1 WHERE a NOT IN (SELECT a FROM t2); +EXPLAIN SELECT a FROM t1 WHERE a NOT IN (SELECT a FROM t2); + +DROP TABLE t1, t2; + +set @@optimizer_switch=@save_optimizer_switch; + +# +# Bug #34763: item_subselect.cc:1235:Item_in_subselect::row_value_transformer: +# Assertion failed, unexpected error message: +# ERROR 1247 (42S22): Reference '' not supported (forward +# reference in item list) +# +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES(1); + +CREATE TABLE t2 (placeholder CHAR(11)); +INSERT INTO t2 VALUES("placeholder"); + +SELECT ROW(1, 2) IN (SELECT t1.a, 2) FROM t1 GROUP BY t1.a; +SELECT ROW(1, 2) IN (SELECT t1.a, 2 FROM t2) FROM t1 GROUP BY t1.a; + +DROP TABLE t1, t2; + +# +# Bug #36005: crash in subselect with single row +# (subselect_single_select_engine::exec) +# + +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2),(3); +CREATE TABLE t2 SELECT * FROM t1; + +SELECT 1 FROM t1 WHERE t1.a NOT IN (SELECT 1 FROM t1, t2 WHERE 0); + +DROP TABLE t1, t2; + +# +# Bug 2198 +# + +create table t1 (a int, b decimal(13, 3)); +insert into t1 values (1, 0.123); +select a, (select max(b) from t1) into outfile "subselect.out.file.1" from t1; +delete from t1; +load data infile "subselect.out.file.1" into table t1; +select * from t1; +drop table t1; +let $datadir=`select @@datadir`; +--remove_file $datadir/test/subselect.out.file.1 + +# +# Bug #37894: Assertion in init_read_record_seq in handler.h line 1444 +# + +CREATE TABLE t1 ( + pk INT PRIMARY KEY, + int_key INT, + varchar_key VARCHAR(5) UNIQUE, + varchar_nokey VARCHAR(5) +); +INSERT INTO t1 VALUES (9, 7,NULL,NULL), (10,8,'p' ,'p'); + +SELECT varchar_nokey +FROM t1 +WHERE NULL NOT IN ( + SELECT INNR.pk FROM t1 AS INNR2 + LEFT JOIN t1 AS INNR ON ( INNR2.int_key = INNR.int_key ) + WHERE INNR.varchar_key > 'n{' +); + +DROP TABLE t1; + +# +# Bug #39069: IN seriously messed up +# + +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1), (2), (11); + +--echo # 2nd and 3rd columns should be same +SELECT a, ROW(11, 12) = (SELECT a, 22), ROW(11, 12) IN (SELECT a, 22) FROM t1 GROUP BY t1.a; +SELECT a, ROW(11, 12) = (SELECT a, 12), ROW(11, 12) IN (SELECT a, 12) FROM t1 GROUP BY t1.a; +SELECT a, ROW(11, 12) = (SELECT a, 22), ROW(11, 12) IN (SELECT a, 22) FROM t1; +SELECT a, ROW(11, 12) = (SELECT a, 12), ROW(11, 12) IN (SELECT a, 12) FROM t1; + +# The x alias is used below to workaround bug #40674. +# Regression tests for sum function on outer column in subselect from dual: +SELECT a AS x, ROW(11, 12) = (SELECT MAX(x), 22), ROW(11, 12) IN (SELECT MAX(x), 22) FROM t1; +--echo # 2nd and 3rd columns should be same +EXPLAIN SELECT a AS x, ROW(11, 12) = (SELECT MAX(x), 12), ROW(11, 12) IN (SELECT MAX(x), 12) FROM t1; +SELECT a AS x, ROW(11, 12) = (SELECT MAX(x), 12), ROW(11, 12) IN (SELECT MAX(x), 12) FROM t1; + +DROP TABLE t1; + +--echo # both columns should be same +SELECT ROW(1,2) = (SELECT NULL, NULL), ROW(1,2) IN (SELECT NULL, NULL); +SELECT ROW(1,2) = (SELECT 1, NULL), ROW(1,2) IN (SELECT 1, NULL); +SELECT ROW(1,2) = (SELECT NULL, 2), ROW(1,2) IN (SELECT NULL, 2); +SELECT ROW(1,2) = (SELECT NULL, 1), ROW(1,2) IN (SELECT NULL, 1); +SELECT ROW(1,2) = (SELECT 1, 1), ROW(1,2) IN (SELECT 1, 1); +SELECT ROW(1,2) = (SELECT 1, 2), ROW(1,2) IN (SELECT 1, 2); + +# +# Bug #37362 Crash in do_field_eq +# +# Note that currently this test produces wrong output, see MBug#430669. +# +CREATE TABLE t1 (a INT, b INT, c INT); +INSERT INTO t1 VALUES (1,1,1), (1,1,1); + +--error 1054 +EXPLAIN EXTENDED + SELECT c FROM + ( SELECT + (SELECT COUNT(a) FROM + (SELECT COUNT(b) FROM t1) AS x GROUP BY c + ) FROM t1 GROUP BY b + ) AS y; +SHOW WARNINGS; + +DROP TABLE t1; + + +--echo End of 5.0 tests + +--echo # +--echo # BUG#36896: Server crash on SELECT FROM DUAL +--echo # +create table t1 (a int); +select 1 as res from dual where (1) in (select * from t1); +drop table t1; + +# +# BUG#36135 "void Diagnostics_area::set_eof_status(THD*): Assertion `!is_set()' failed." +# +create table t0 (a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); + +create table t1 ( + a int(11) default null, + b int(11) default null, + key (a) +); +# produce numbers 0..999 +insert into t1 select A.a+10*(B.a+10*C.a),A.a+10*(B.a+10*C.a) from t0 A, t0 B, t0 C; + +create table t2 (a int(11) default null); +insert into t2 values (0),(1); + +create table t3 (a int(11) default null); +insert into t3 values (0),(1); + +create table t4 (a int(11) default null); +insert into t4 values (0),(1); + +create table t5 (a int(11) default null); +insert into t5 values (0),(1),(0),(1); + +# this must not fail assertion +--error 1242 +select * from t2, t3 +where + t2.a < 10 and + t3.a+1 = 2 and + t3.a in (select t1.b from t1 + where t1.a+1=t1.a+1 and + t1.a < (select t4.a+10 + from t4, t5 limit 2)); + +drop table t0, t1, t2, t3, t4, t5; + +--echo # +--echo # BUG#48177 - SELECTs with NOT IN subqueries containing NULL +--echo # values return too many records +--echo # + +CREATE TABLE t1 ( + i1 int DEFAULT NULL, + i2 int DEFAULT NULL +) ; + +INSERT INTO t1 VALUES (1, NULL); +INSERT INTO t1 VALUES (2, 3); +INSERT INTO t1 VALUES (4, NULL); +INSERT INTO t1 VALUES (4, 0); +INSERT INTO t1 VALUES (NULL, NULL); + +CREATE TABLE t2 ( + i1 int DEFAULT NULL, + i2 int DEFAULT NULL +) ; + +INSERT INTO t2 VALUES (4, NULL); +INSERT INTO t2 VALUES (5, 0); + +--echo +--echo Data in t1 +SELECT i1, i2 FROM t1; + +--echo +--echo Data in subquery (should be filtered out) +SELECT i1, i2 FROM t2 ORDER BY i1; + +FLUSH STATUS; +set @save_optimizer_switch2=@@optimizer_switch; +set optimizer_switch='subquery_cache=off'; + +--echo +SELECT i1, i2 +FROM t1 +WHERE (i1, i2) + NOT IN (SELECT i1, i2 FROM t2); + +--echo +--echo # Check that the subquery only has to be evaluated once +--echo # for all-NULL values even though there are two (NULL,NULL) records +--echo # Baseline: +SHOW STATUS LIKE '%Handler_read_rnd_next'; + +--echo +INSERT INTO t1 VALUES (NULL, NULL); +FLUSH STATUS; + +--echo +SELECT i1, i2 +FROM t1 +WHERE (i1, i2) + NOT IN (SELECT i1, i2 FROM t2); + +--echo +--echo # Handler_read_rnd_next should be one more than baseline +--echo # (read record from t1, but do not read from t2) +SHOW STATUS LIKE '%Handler_read_rnd_next'; + +set @@optimizer_switch=@save_optimizer_switch2; +DROP TABLE t1,t2; + +--echo End of 5.1 tests + +# +# Test for the problem with using sj-materialization when subquery's select +# list element SCOL is covered by equality propagation and has preceding equal +# column PCOL which belongs to a table within the the semi-join nest: SJM-Scan +# process should unpack column value not to SCOL but rather to PCOL, as +# substitute_best_equal has made all conditions to refer to PCOL. +# +CREATE TABLE t1 ( + a int(11) NOT NULL, + b int(11) NOT NULL, + c datetime default NULL, + PRIMARY KEY (a), + KEY idx_bc (b,c) +); + +INSERT INTO t1 VALUES +(406989,67,'2006-02-23 17:08:46'), (150078,67,'2005-10-26 11:17:45'), +(406993,67,'2006-02-27 11:20:57'), (245655,67,'2005-12-08 15:59:08'), +(406994,67,'2006-02-27 11:26:46'), (256,67,NULL), +(398341,67,'2006-02-20 04:48:44'), (254,67,NULL),(1120,67,NULL), +(406988,67,'2006-02-23 17:07:22'), (255,67,NULL), +(398340,67,'2006-02-20 04:38:53'),(406631,67,'2006-02-23 10:49:42'), +(245653,67,'2005-12-08 15:59:07'),(406992,67,'2006-02-24 16:47:18'), +(245654,67,'2005-12-08 15:59:08'),(406995,67,'2006-02-28 11:55:00'), +(127261,67,'2005-10-13 12:17:58'),(406991,67,'2006-02-24 16:42:32'), +(245652,67,'2005-12-08 15:58:27'),(398545,67,'2006-02-20 04:53:13'), +(154504,67,'2005-10-28 11:53:01'),(9199,67,NULL),(1,67,'2006-02-23 15:01:35'), +(223456,67,NULL),(4101,67,NULL),(1133,67,NULL), +(406990,67,'2006-02-23 18:01:45'),(148815,67,'2005-10-25 15:34:17'), +(148812,67,'2005-10-25 15:30:01'),(245651,67,'2005-12-08 15:58:27'), +(154503,67,'2005-10-28 11:52:38'); + +create table t11 select * from t1 where b = 67 AND (c IS NULL OR c > NOW()) order by 3 asc; +create table t12 select * from t1 where b = 67 AND (c IS NULL OR c > NOW()) order by 3 desc; +create table t21 select * from t1 where b = 67 AND (c IS NULL OR c > '2005-12-08') order by 3 asc; +create table t22 select * from t1 where b = 67 AND (c IS NULL OR c > '2005-12-08') order by 3 desc; + +set @@optimizer_switch=@save_optimizer_switch; +set @@optimizer_switch='materialization=off'; + +update t22 set c = '2005-12-08 15:58:27' where a = 255; +explain select t21.* from t21,t22 where t21.a = t22.a and +t22.a in (select t12.a from t11, t12 where t11.a in(255,256) and t11.a = t12.a and t11.c is null) and t22.c is null order by t21.a; +select t21.* from t21,t22 where t21.a = t22.a and +t22.a in (select t12.a from t11, t12 where t11.a in(255,256) and t11.a = t12.a and t11.c is null) and t22.c is null order by t21.a; + +set @@optimizer_switch=@save_optimizer_switch; + +drop table t1, t11, t12, t21, t22; + +# +# Test sj-materialization re-execution. The test isn't meaningful (materialized +# table stays the same across all executions) because it's hard to create a +# dataset that would verify correct re-execution without hitting BUG#31480 +# +create table t1(a int); +insert into t1 values (0),(1); + +set @@optimizer_switch='firstmatch=off,materialization=off'; +explain +select (select max(Y.a) from t1 Y where a in (select a from t1 Z) and a < X.a) as subq from t1 X; +select (select max(Y.a) from t1 Y where a in (select a from t1 Z) and a < X.a) as subq from t1 X; +set @@optimizer_switch=@save_optimizer_switch; + +drop table t1; + +# +# Test confluent duplicate weedout +# +create table t0 (a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t1 as select * from t0; +insert into t1 select a+10 from t0; +set @@optimizer_switch='firstmatch=off,materialization=off'; +insert into t0 values(2); +explain select * from t1 where 2 in (select a from t0); +select * from t1 where 2 in (select a from t0); +set @@optimizer_switch=@save_optimizer_switch; +set @@optimizer_switch='materialization=off'; +explain select * from t1 where 2 in (select a from t0); +select * from t1 where 2 in (select a from t0); +set @@optimizer_switch=@save_optimizer_switch; + + +set @@optimizer_switch=@save_optimizer_switch; +set @@optimizer_switch='materialization=off'; + +# +# FirstMatch referring to a derived table +# +set @tmp_optimizer_switch=@@optimizer_switch; +set optimizer_switch='derived_merge=off,derived_with_keys=off'; +explain select * from (select a from t0) X where a in (select a from t1); +drop table t0, t1; +set optimizer_switch=@tmp_optimizer_switch; + +# +# LooseScan: Check if we can pick it together with range access +# +create table t0 (a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); + +create table t1 (kp1 int, kp2 int, c int, filler char(100), key(kp1, kp2)); +insert into t1 select A.a+10*(B.a+10*C.a), 0, 0, 'filler' from t0 A, t0 B, t0 C; +insert into t1 select * from t1 where kp1 < 20; + +create table t3 (a int); +insert into t3 select A.a + 10*B.a from t0 A, t0 B; + +explain select * from t3 where a in (select kp1 from t1 where kp1<20); + +create table t4 (pk int primary key); +insert into t4 select a from t3; + +explain select * from t3 where a in (select t1.kp1 from t1,t4 where kp1<20 +and t4.pk=t1.c); + +drop table t1, t3, t4; + +set @@optimizer_switch=@save_optimizer_switch; + +# +# Test if we handle duplicate elimination temptable overflowing to disk +# +create table t1 (a int) as select * from t0 where a < 5; + +set @save_max_heap_table_size=@@max_heap_table_size; +set @@optimizer_switch='firstmatch=off,materialization=off'; +set @@max_heap_table_size= 16384; + +explain select count(*) from t0 A, t0 B, t0 C, t0 D where D.a in (select a from t1 E where a+1 < 10000 + A.a + B.a +C.a+D.a); +flush status; +select count(*) from t0 A, t0 B, t0 C, t0 D where D.a in (select a from t1 E where a+1 < 10000 + A.a + B.a +C.a+D.a); +show status like 'Created_tmp_disk_tables'; +set @save_max_heap_table_size=@@max_heap_table_size; +set @@optimizer_switch=@save_optimizer_switch; +drop table t0, t1; + +# +# Materialize + Scan + ref access to the subsequent table based on scanned +# value +# +create table t0 (a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t2(a int); +insert into t2 values (1),(2); +create table t3 ( a int , filler char(100), key(a)); +insert into t3 select A.a + 10*B.a, 'filler' from t0 A, t0 B; +explain select * from t3 where a in (select a from t2) and (a > 5 or a < 10); +select * from t3 where a in (select a from t2); + +drop table t0, t2, t3; + +# +# DATETIME type checks +# +set @@optimizer_switch='firstmatch=off,materialization=off'; +create table t1 (a date); +insert into t1 values ('2008-01-01'),('2008-01-01'),('2008-02-01'),('2008-02-01'); +create table t2 (a int); +insert into t2 values (1),(2); +create table t3 (a char(10)); +insert into t3 select * from t1; +insert into t3 values (1),(2); +explain select * from t2 where a in (select a from t1); +explain select * from t2 where a in (select a from t2); +explain select * from t2 where a in (select a from t3); +explain select * from t1 where a in (select a from t3); +drop table t1, t2, t3; +create table t1 (a decimal); +insert into t1 values (1),(2); +explain select * from t1 where a in (select a from t1); +drop table t1; +set @@optimizer_switch=@save_optimizer_switch; + +set @@optimizer_switch=@save_optimizer_switch; +set @@optimizer_switch='materialization=off'; + +# +# SJ-Materialization-scan for non-first table +# +create table t1 (a int); +insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t2 as select * from t1; +create table t3 (a int, b int, filler char(100), key(a)); +insert into t3 select A.a + 10*B.a, A.a + 10*B.a, 'filler' from t1 A, t1 B, t1 C; +explain select * from t1, t3 where t3.a in (select a from t2) and (t3.a < 10 or t3.a >30) and t1.a =3; + +# +# Verify that straight_join modifier in parent or child prevents flattening +# +explain select straight_join * from t1 A, t1 B where A.a in (select a from t2); +explain select * from t2 where a in (select straight_join A.a from t1 A, t1 B); +explain select * from t2 where a in (select straight_join A.a from t1 A, t1 B); +explain select straight_join * from t2 X, t2 Y +where X.a in (select straight_join A.a from t1 A, t1 B); + +# +# SJ-Materialization scan + first table being system const table +# +create table t0 (a int, b int); +insert into t0 values(1,1); +explain select * from t0, t3 where t3.a in (select a from t2) and (t3.a < 10 or t3.a >30); +create table t4 as select a as x, a as y from t1; +explain select * from t0, t3 where (t3.a, t3.b) in (select x,y from t4) and (t3.a < 10 or t3.a >30); +drop table t0,t1,t2,t3,t4; + +# +# LooseScan with ref access +# +create table t0 (a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t1 (a int, b int, filler char(100), key(a,b)); +insert into t1 select A.a, B.a, 'filler' from t0 A, t0 B; +create table t2 as select * from t1; + +explain select * from t2 where a in (select b from t1 where a=3); +explain select * from t2 where (b,a) in (select a,b from t1 where a=3); + +drop table t1,t2; + +set @@optimizer_switch=@save_optimizer_switch; + +# +# Multi-column sj-materialization with lookups +# +create table t1 (a int, b int); +insert into t1 select a,a from t0; +create table t2 (a int, b int); +insert into t2 select A.a + 10*B.a, A.a + 10*B.a from t0 A, t0 B; + +set @@optimizer_switch='firstmatch=off,materialization=off'; +explain select * from t1 where (a,b) in (select a,b from t2); + +# A smallish test if find_best() still works for semi-join optimization: +set @save_optimizer_search_depth=@@optimizer_search_depth; +set @@optimizer_search_depth=63; +explain select * from t1 where (a,b) in (select a,b from t2); +set @@optimizer_search_depth=@save_optimizer_search_depth; +set @@optimizer_switch=@save_optimizer_switch; + +drop table t0, t1, t2; + +set @@optimizer_switch='materialization=off'; + +# +# Primitive SJ-Materialization tests for DECIMAL and DATE +# +create table t0 (a decimal(4,2)); +insert into t0 values (10.24), (22.11); +create table t1 as select * from t0; +insert into t1 select * from t0; +explain select * from t0 where a in (select a from t1); +select * from t0 where a in (select a from t1); +drop table t0, t1; + +create table t0(a date); +insert into t0 values ('2008-01-01'),('2008-02-02'); +create table t1 as select * from t0; +insert into t1 select * from t0; +explain select * from t0 where a in (select a from t1); +select * from t0 where a in (select a from t1); +drop table t0, t1; + +# +# Fix a trivial crash with SJ-Materialization lookup, multiple tables in the +# subquery, and a condition on some of inner tables but not others +# +create table t0(a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t1 as select a as a, a as b, a as c from t0 where a < 3; +create table t2 as select a as a, a as b from t0 where a < 3; +insert into t2 select * from t2; + +explain select * from t1 where (a,b,c) in (select X.a, Y.a, Z.a from t2 X, t2 Y, t2 Z where X.b=33); + +drop table t0,t1,t2; + +set @@optimizer_switch=@save_optimizer_switch; + +--echo +--echo BUG#37842: Assertion in DsMrr_impl::dsmrr_init, at handler.cc:4307 +--echo +CREATE TABLE t1 ( + `pk` int(11) NOT NULL AUTO_INCREMENT, + `int_key` int(11) DEFAULT NULL, + PRIMARY KEY (`pk`), + KEY `int_key` (`int_key`) +) ENGINE=MyISAM; +INSERT INTO t1 VALUES (1,9),(2,3),(3,8),(4,6),(5,9),(6,5),(7,5),(8,9),(9,1),(10,10); +SELECT `pk` FROM t1 AS OUTR WHERE `int_key` = ALL ( + SELECT `int_key` FROM t1 AS INNR WHERE INNR . `pk` >= 9 +); +DROP TABLE t1; + +--echo +--echo BUG#40118 Crash when running Batched Key Access and requiring one match for each key +--echo +create table t0(a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t1 (a int, key(a)); +insert into t1 select * from t0; +alter table t1 add b int not null, add filler char(200); +insert into t1 select * from t1; +insert into t1 select * from t1; + +set @save_join_cache_level=@@join_cache_level; +set join_cache_level=6; +select * from t0 where t0.a in (select t1.a from t1 where t1.b=0); +set join_cache_level=@save_join_cache_level; +drop table t0, t1; + +--echo # +--echo # BUG#32665 Query with dependent subquery is too slow +--echo # +create table t1 ( + idIndividual int primary key +); +insert into t1 values (1),(2); + +create table t2 ( + idContact int primary key, + contactType int, + idObj int +); +insert into t2 values (1,1,1),(2,2,2),(3,3,3); + +create table t3 ( + idAddress int primary key, + idContact int, + postalStripped varchar(100) +); + +insert into t3 values (1,1, 'foo'), (2,2,'bar'); + +--echo The following must be converted to a semi-join: +set @save_optimizer_switch=@@optimizer_switch; +set @@optimizer_switch='materialization=off'; +explain extended SELECT a.idIndividual FROM t1 a +WHERE a.idIndividual IN + ( SELECT c.idObj FROM t3 cona + INNER JOIN t2 c ON c.idContact=cona.idContact + WHERE cona.postalStripped='T2H3B2' + ); +set @@optimizer_switch=@save_optimizer_switch; +drop table t1,t2,t3; + +--echo # +--echo # BUG#47367 Crash in Name_resolution_context::process_error +--echo # + +SET SESSION optimizer_switch = 'semijoin=off'; +CREATE TABLE t1 (f1 INTEGER); +CREATE TABLE t2 LIKE t1; +delimiter |; +CREATE PROCEDURE p1 () BEGIN SELECT f1 FROM t1 WHERE f1 IN (SELECT f1 FROM t2); END| +delimiter ;| +CALL p1; +ALTER TABLE t2 CHANGE COLUMN f1 my_column INT; +CALL p1; +DROP PROCEDURE p1; +--echo # Restore the original column list of table t2: +ALTER TABLE t2 CHANGE COLUMN my_column f1 INT; + +SET SESSION optimizer_switch = 'semijoin=on'; +delimiter |; +--echo # Recreate procedure so that we eliminate any caching effects +CREATE PROCEDURE p1 () BEGIN SELECT f1 FROM t1 WHERE f1 IN (SELECT f1 FROM t2); END| +delimiter ;| +CALL p1; +ALTER TABLE t2 CHANGE COLUMN f1 my_column INT; +--error ER_BAD_FIELD_ERROR +CALL p1; +DROP PROCEDURE p1; +DROP TABLE t1, t2; + +--echo # +--echo # fix of lp:824425 (prohibiting subqueries in row in +--echo # left part of IN/ALL/ANY) +--echo # + +CREATE TABLE t1 ( a int) ; +INSERT INTO t1 VALUES (20),(30); + +CREATE TABLE t2 (a int) ; +INSERT INTO t2 VALUES (3),(9); + +CREATE TABLE t3 ( a int, b int) ; +INSERT INTO t3 VALUES (20,5),(30,6); + +set @optimizer_switch_save=@@optimizer_switch; +SET SESSION optimizer_switch='semijoin=OFF,in_to_exists=OFF,materialization=ON,partial_match_rowid_merge=ON,partial_match_table_scan=OFF'; + +SELECT * FROM t1 +WHERE ( + ( SELECT a FROM t2 WHERE a = 9 ) +) NOT IN ( + SELECT b + FROM t3 +); +explain extended +SELECT * FROM t1 +WHERE ( + ( SELECT a FROM t2 WHERE a = 9 ) +) NOT IN ( + SELECT b + FROM t3 +); + +--error ER_NOT_SUPPORTED_YET +SELECT * FROM t1 +WHERE ( + ( SELECT a FROM t2 WHERE a = 9 ), + ( SELECT a FROM t2 WHERE a = 3 ) +) NOT IN ( + SELECT b , a + FROM t3 +); +set optimizer_switch=@optimizer_switch_save; + +drop table t1,t2,t3; + +--echo End of 5.3 tests + +--echo # +--echo # BUG#48920: COUNT DISTINCT returns 1 for NULL values when in a subquery +--echo # in the select list +--echo # + +--echo +CREATE TABLE t1 ( + i int(11) DEFAULT NULL, + v varchar(1) DEFAULT NULL +); + +--echo +INSERT INTO t1 VALUES (8,'v'); +INSERT INTO t1 VALUES (9,'r'); +INSERT INTO t1 VALUES (NULL,'y'); + +--echo +CREATE TABLE t2 ( + i int(11) DEFAULT NULL, + v varchar(1) DEFAULT NULL, + KEY i_key (i) +); + +--echo +INSERT INTO t2 VALUES (NULL,'r'); +INSERT INTO t2 VALUES (0,'c'); +INSERT INTO t2 VALUES (0,'o'); +INSERT INTO t2 VALUES (2,'v'); +INSERT INTO t2 VALUES (7,'c'); + +--echo +SELECT i, v, (SELECT COUNT(DISTINCT i) + FROM t1 + WHERE v = t2.v) as subsel +FROM t2; + +--echo +EXPLAIN EXTENDED +SELECT i, v, (SELECT COUNT(DISTINCT i) + FROM t1 + WHERE v = t2.v) as subsel +FROM t2; + +DROP TABLE t1,t2; + +--echo End of 5.6 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect3_jcl6.result mariadb-10.3-10.3.20/mysql-test/main/subselect3_jcl6.result --- mariadb-10.3-10.3.17/mysql-test/main/subselect3_jcl6.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect3_jcl6.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,17 +1,10 @@ -set @save_optimizer_switch=@@optimizer_switch; set @@optimizer_switch='optimize_join_buffer_size=on'; set @@optimizer_switch='semijoin_with_cache=on'; set @@optimizer_switch='outer_join_with_cache=on'; set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; set join_cache_level=6; -show variables like 'join_cache_level'; -Variable_name Value -join_cache_level 6 -set @join_cache_level_for_subselect3_test=@@join_cache_level; drop table if exists t0, t1, t2, t3, t4, t5, t11, t12, t21, t22; -set @subselect3_tmp= @@optimizer_switch; set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on'; -set join_cache_level=@join_cache_level_for_subselect3_test; create table t1 (oref int, grp int, ie int) ; insert into t1 (oref, grp, ie) values (1, 1, 1), @@ -1149,8 +1142,8 @@ insert into t3 select A.a + 10*B.a from t0 A, t0 B; explain select * from t3 where a in (select kp1 from t1 where kp1<20); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; LooseScan -1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where +1 PRIMARY t1 ref kp1 kp1 5 test.t3.a 1 Using index; FirstMatch(t3) create table t4 (pk int primary key); insert into t4 select a from t3; explain select * from t3 where a in (select t1.kp1 from t1,t4 where kp1<20 @@ -1286,12 +1279,12 @@ create table t2 as select * from t1; explain select * from t2 where a in (select b from t1 where a=3); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 ref a a 5 const 8 Using index; LooseScan -1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where +1 PRIMARY t1 ref a a 10 const,test.t2.a 1 Using index; FirstMatch(t2) explain select * from t2 where (b,a) in (select a,b from t1 where a=3); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 ref a a 5 const 8 Using index; LooseScan -1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where +1 PRIMARY t1 ref a a 10 const,test.t2.a 1 Using index; FirstMatch(t2) drop table t1,t2; set @@optimizer_switch=@save_optimizer_switch; create table t1 (a int, b int); @@ -1348,10 +1341,10 @@ insert into t2 select * from t2; explain select * from t1 where (a,b,c) in (select X.a, Y.a, Z.a from t2 X, t2 Y, t2 Z where X.b=33); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 ALL NULL NULL NULL NULL 3 -1 PRIMARY X ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join) -1 PRIMARY Y ALL NULL NULL NULL NULL 6 Using where; Using join buffer (incremental, BNL join) -1 PRIMARY Z ALL NULL NULL NULL NULL 6 Using where; FirstMatch(t1); Using join buffer (incremental, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where +1 PRIMARY X hash_ALL NULL #hash#$hj 5 test.t1.a 6 Using where; Start temporary; Using join buffer (flat, BNLH join) +1 PRIMARY Y hash_ALL NULL #hash#$hj 5 test.t1.b 6 Using where; Using join buffer (incremental, BNLH join) +1 PRIMARY Z hash_ALL NULL #hash#$hj 5 test.t1.c 6 Using where; End temporary; Using join buffer (incremental, BNLH join) drop table t0,t1,t2; set @@optimizer_switch=@save_optimizer_switch; @@ -1554,10 +1547,4 @@ Note 1003 /* select#1 */ select `test`.`t2`.`i` AS `i`,`test`.`t2`.`v` AS `v`,<`test`.`t2`.`v`>((/* select#2 */ select count(distinct `test`.`t1`.`i`) from `test`.`t1` where `test`.`t1`.`v` = `test`.`t2`.`v`)) AS `subsel` from `test`.`t2` DROP TABLE t1,t2; End of 5.6 tests -set @@optimizer_switch=@subselect3_tmp; -set join_cache_level=default; -show variables like 'join_cache_level'; -Variable_name Value -join_cache_level 2 -set @@optimizer_switch=@save_optimizer_switch; -set @join_cache_level_for_subselect3_test=NULL; +# end of 10.2 test diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect3_jcl6.test mariadb-10.3-10.3.20/mysql-test/main/subselect3_jcl6.test --- mariadb-10.3-10.3.17/mysql-test/main/subselect3_jcl6.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect3_jcl6.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,21 +2,14 @@ # Run subselect3.test with BKA enabled # -set @save_optimizer_switch=@@optimizer_switch; +--source include/default_optimizer_switch.inc + set @@optimizer_switch='optimize_join_buffer_size=on'; set @@optimizer_switch='semijoin_with_cache=on'; set @@optimizer_switch='outer_join_with_cache=on'; set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; - set join_cache_level=6; -show variables like 'join_cache_level'; - -set @join_cache_level_for_subselect3_test=@@join_cache_level; - ---source subselect3.test -set join_cache_level=default; -show variables like 'join_cache_level'; +--source subselect3.inc -set @@optimizer_switch=@save_optimizer_switch; -set @join_cache_level_for_subselect3_test=NULL; +--echo # end of 10.2 test diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect3.result mariadb-10.3-10.3.20/mysql-test/main/subselect3.result --- mariadb-10.3-10.3.17/mysql-test/main/subselect3.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect3.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,7 +1,7 @@ drop table if exists t0, t1, t2, t3, t4, t5, t11, t12, t21, t22; -set @subselect3_tmp= @@optimizer_switch; -set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on'; set join_cache_level=1; +drop table if exists t0, t1, t2, t3, t4, t5, t11, t12, t21, t22; +set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on'; create table t1 (oref int, grp int, ie int) ; insert into t1 (oref, grp, ie) values (1, 1, 1), @@ -1139,8 +1139,8 @@ insert into t3 select A.a + 10*B.a from t0 A, t0 B; explain select * from t3 where a in (select kp1 from t1 where kp1<20); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; LooseScan -1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where +1 PRIMARY t1 ref kp1 kp1 5 test.t3.a 1 Using index; FirstMatch(t3) create table t4 (pk int primary key); insert into t4 select a from t3; explain select * from t3 where a in (select t1.kp1 from t1,t4 where kp1<20 @@ -1276,12 +1276,12 @@ create table t2 as select * from t1; explain select * from t2 where a in (select b from t1 where a=3); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 ref a a 5 const 8 Using index; LooseScan -1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where +1 PRIMARY t1 ref a a 10 const,test.t2.a 1 Using index; FirstMatch(t2) explain select * from t2 where (b,a) in (select a,b from t1 where a=3); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 ref a a 5 const 8 Using index; LooseScan -1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t2 ALL NULL NULL NULL NULL 100 Using where +1 PRIMARY t1 ref a a 10 const,test.t2.a 1 Using index; FirstMatch(t2) drop table t1,t2; set @@optimizer_switch=@save_optimizer_switch; create table t1 (a int, b int); @@ -1339,9 +1339,9 @@ explain select * from t1 where (a,b,c) in (select X.a, Y.a, Z.a from t2 X, t2 Y, t2 Z where X.b=33); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t1 ALL NULL NULL NULL NULL 3 -1 PRIMARY X ALL NULL NULL NULL NULL 6 Using where -1 PRIMARY Y ALL NULL NULL NULL NULL 6 Using where -1 PRIMARY Z ALL NULL NULL NULL NULL 6 Using where; FirstMatch(t1) +1 PRIMARY X ALL NULL NULL NULL NULL 6 Using where; Start temporary; Using join buffer (flat, BNL join) +1 PRIMARY Y ALL NULL NULL NULL NULL 6 Using where; Using join buffer (flat, BNL join) +1 PRIMARY Z ALL NULL NULL NULL NULL 6 Using where; End temporary; Using join buffer (flat, BNL join) drop table t0,t1,t2; set @@optimizer_switch=@save_optimizer_switch; @@ -1544,4 +1544,4 @@ Note 1003 /* select#1 */ select `test`.`t2`.`i` AS `i`,`test`.`t2`.`v` AS `v`,<`test`.`t2`.`v`>((/* select#2 */ select count(distinct `test`.`t1`.`i`) from `test`.`t1` where `test`.`t1`.`v` = `test`.`t2`.`v`)) AS `subsel` from `test`.`t2` DROP TABLE t1,t2; End of 5.6 tests -set @@optimizer_switch=@subselect3_tmp; +# end of 10.2 test diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect3.test mariadb-10.3-10.3.20/mysql-test/main/subselect3.test --- mariadb-10.3-10.3.17/mysql-test/main/subselect3.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect3.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,1318 +1,10 @@ --disable_warnings drop table if exists t0, t1, t2, t3, t4, t5, t11, t12, t21, t22; --enable_warnings +--source include/default_optimizer_switch.inc -set @subselect3_tmp= @@optimizer_switch; -set optimizer_switch='semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on'; -if (`select @join_cache_level_for_subselect3_test is null`) -{ - set join_cache_level=1; -} -if (`select @join_cache_level_for_subselect3_test is not null`) -{ - set join_cache_level=@join_cache_level_for_subselect3_test; -} +set join_cache_level=1; -# -# 1. Subquery with GROUP/HAVING -# -create table t1 (oref int, grp int, ie int) ; -insert into t1 (oref, grp, ie) values - (1, 1, 1), - (1, 1, 1), - (1, 2, NULL), +--source subselect3.inc - (2, 1, 3), - - (3, 1, 4), - (3, 2, NULL); - -# Ok, for -# select max(ie) from t1 where oref=PARAM group by grp -# we'll have: -# PARAM subquery result -# 1 -> {(1), (NULL)} matching + NULL -# 2 -> {(3)} non-matching -# 3 -> {(3), (NULL)} non-matching + NULL -# 4 -> {} empty set - -create table t2 (oref int, a int); -insert into t2 values - (1, 1), - (2, 2), - (3, 3), - (4, NULL), - (2, NULL); - -# true, false, null, false, null -select a, oref, a in (select max(ie) - from t1 where oref=t2.oref group by grp) Z from t2; - -# This must have a trigcond -explain extended -select a, oref, a in (select max(ie) - from t1 where oref=t2.oref group by grp) Z from t2; - -# This must not have a trigcond: -explain extended -select a, oref from t2 -where a in (select max(ie) from t1 where oref=t2.oref group by grp); -select a, oref, a in ( - select max(ie) from t1 where oref=t2.oref group by grp union - select max(ie) from t1 where oref=t2.oref group by grp - ) Z from t2; - -# Non-correlated subquery, 2 NULL evaluations -create table t3 (a int); -insert into t3 values (NULL), (NULL); -flush status; -select a in (select max(ie) from t1 where oref=4 group by grp) from t3; -show status like 'Handler_read_rnd_next'; -select ' ^ This must show 11' Z; - -set @save_optimizer_switch=@@optimizer_switch; -set @@optimizer_switch="partial_match_rowid_merge=off,partial_match_table_scan=off"; - -# This must show trigcond: -explain extended select a in (select max(ie) from t1 where oref=4 group by grp) from t3; - -set @@optimizer_switch=@save_optimizer_switch; -drop table t1, t2, t3; - -# -# 2. Subquery handled with 'index_subquery': -# -create table t1 (a int, oref int, key(a)); -insert into t1 values - (1, 1), - (1, NULL), - (2, 3), - (2, NULL), - (3, NULL); -insert into t1 values (5, 7), (8, 9), (4, 1); - -create table t2 (a int, oref int); -insert into t2 values (1, 1), (2,2), (NULL, 3), (NULL, 4); - -select oref, a, a in (select a from t1 where oref=t2.oref) Z from t2; - -# The next explain shows "using index" but that is just incorrect display -# (there is a bug filed about this). -explain extended -select oref, a, a in (select a from t1 where oref=t2.oref) Z from t2; - -flush status; -select oref, a from t2 where a in (select a from t1 where oref=t2.oref); -# This will only show access to t2: -show status like '%Handler_read_rnd_next'; - -# Check that repeated NULL-scans are not cached (subq. is not correlated): -delete from t2; -insert into t2 values (NULL, 0),(NULL, 0), (NULL, 0), (NULL, 0); - -set optimizer_switch='subquery_cache=off'; -flush status; -select oref, a, a in (select a from t1 where oref=t2.oref) Z from t2; -show status like '%Handler_read%'; -select 'No key lookups, seq reads: 29= 5 reads from t2 + 4 * 6 reads from t1.' Z; -set @@optimizer_switch=@save_optimizer_switch; - -drop table t1, t2; - -# -# 3. Subquery handled with 'unique_index_subquery': -# -create table t1 (a int, b int, primary key (a)); -insert into t1 values (1,1), (3,1),(100,1); - -create table t2 (a int, b int); -insert into t2 values (1,1),(2,1),(NULL,1),(NULL,0); - -select a,b, a in (select a from t1 where t1.b = t2.b) Z from t2 ; - -drop table t1, t2; - -# -# 4. Subquery that is a join, with ref access -# -create table t1 (a int, b int, key(a)); -insert into t1 values - (0,0),(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9); - -create table t2 like t1; -insert into t2 select * from t1; -update t2 set b=1; - -create table t3 (a int, oref int); -insert into t3 values (1, 1), (NULL,1), (NULL,0); -select a, oref, - t3.a in (select t1.a from t1, t2 where t1.b=t2.a and t2.b=t3.oref) Z -from t3; - -# This must have trigcond in WHERE and HAVING: -explain extended -select a, oref, - t3.a in (select t1.a from t1, t2 where t1.b=t2.a and t2.b=t3.oref) Z -from t3; - -drop table t1, t2, t3; - - -# -# BUG#24085: Wrong query result for "NULL IN (SELECT ... UNION SELECT ...)" -# - -# case 1: NULL IN (SELECT not_null_val FROM ...) w/o HAVING/GROUP-BY/etc -create table t1 (a int NOT NULL, b int NOT NULL, key(a)); -insert into t1 values - (0,0),(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9); - -create table t2 like t1; -insert into t2 select * from t1; -update t2 set b=1; - -create table t3 (a int, oref int); -insert into t3 values (1, 1), (NULL,1), (NULL,0); -select a, oref, - t3.a in (select t1.a from t1, t2 where t1.b=t2.a and t2.b=t3.oref) Z -from t3; - ---echo This must show a trig_cond: -explain extended -select a, oref, - t3.a in (select t1.a from t1, t2 where t1.b=t2.a and t2.b=t3.oref) Z -from t3; -drop table t1,t2,t3; - - -# case 2: NULL IN (SELECT not_null_val FROM) where SELECT has GROUP BY -create table t1 (oref int, grp int); -insert into t1 (oref, grp) values - (1, 1), - (1, 1); - -# Ok, for -# select count(*) from t1 group by grp having grp=PARAM -# we'll have: -# PARAM subuqery result -# 1 -> {(2)} -# 2 -> {} - empty set -create table t2 (oref int, a int); -insert into t2 values - (1, NULL), - (2, NULL); - -select a, oref, - a in (select count(*) from t1 group by grp having grp=t2.oref) Z from t2; - ---echo This must show a trig_cond: -explain extended -select a, oref, - a in (select count(*) from t1 group by grp having grp=t2.oref) Z from t2; - -drop table t1, t2; - -create table t1 (a int, b int, primary key (a)); -insert into t1 values (1,1), (3,1),(100,1); -create table t2 (a int, b int); -insert into t2 values (1,1),(2,1),(NULL,1),(NULL,0); - -select a,b, a in (select a from t1 where t1.b = t2.b union select a from -t1 where t1.b = t2.b) Z from t2 ; -select a,b, a in (select a from t1 where t1.b = t2.b) Z from t2 ; -drop table t1, t2; - - -# -# BUG#24127: Incorrect results of row-based subqueries with NULLs on the left side. -# -create table t3 (a int); -insert into t3 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); -create table t2 (a int, b int, oref int); -insert into t2 values (NULL,1, 100), (NULL,2, 100); - -create table t1 (a int, b int, c int, key(a,b)); -insert into t1 select 2*A, 2*A, 100 from t3; - -# First test index subquery engine -explain extended select a,b, oref, (a,b) in (select a,b from t1 where c=t2.oref) Z from t2; -select a,b, oref, (a,b) in (select a,b from t1 where c=t2.oref) Z from t2; - -# Then check that we do turn off 'ref' scans in the subquery -create table t4 (x int); -insert into t4 select A.a + 10*B.a from t1 A, t1 B; -explain extended - select a,b, oref, - (a,b) in (select a,b from t1,t4 where c=t2.oref) Z - from t2; -select a,b, oref, - (a,b) in (select a,b from t1,t4 where c=t2.oref) Z -from t2; - -drop table t1,t2,t3,t4; - -# More tests for tricky multi-column cases, where some of pushed-down -# equalities are used for index lookups and some arent. -create table t1 (oref char(4), grp int, ie1 int, ie2 int); -insert into t1 (oref, grp, ie1, ie2) values - ('aa', 10, 2, 1), - ('aa', 10, 1, 1), - ('aa', 20, 2, 1), - ('bb', 10, 3, 1), - ('cc', 10, 4, 2), - ('cc', 20, 3, 2), - - ('ee', 10, 2, 1), - ('ee', 10, 1, 2), - - ('ff', 20, 2, 2), - ('ff', 20, 1, 2); -create table t2 (oref char(4), a int, b int); -insert into t2 values - ('ee', NULL, 1), - ('bb', 2, 1), - ('ff', 2, 2), - ('cc', 3, NULL), - ('bb', NULL, NULL), - ('aa', 1, 1), - ('dd', 1, NULL); -alter table t1 add index idx(ie1,ie2); - -# cc 3 NULL NULL -select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2 where a=3 and b is null ; -insert into t2 values ('new1', 10,10); -insert into t1 values ('new1', 1234, 10, NULL); -# new1, 10, 10, NULL, -select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2 where a=10 and b=10; -explain extended -select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2 where a=10 and b=10; -drop table t1, t2; - -# Now test different column types: -create table t1 (oref char(4), grp int, ie int); -insert into t1 (oref, grp, ie) values - ('aa', 10, 2), - ('aa', 10, 1), - ('aa', 20, NULL), - - ('bb', 10, 3), - - ('cc', 10, 4), - ('cc', 20, NULL), - - ('ee', 10, NULL), - ('ee', 10, NULL), - - ('ff', 20, 2), - ('ff', 20, 1); - -create table t2 (oref char(4), a int); -insert into t2 values - ('ee', NULL), - ('bb', 2), - ('ff', 2), - ('cc', 3), - ('aa', 1), - ('dd', NULL), - ('bb', NULL); - -select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2; - -select oref, a from t2 where a in (select ie from t1 where oref=t2.oref); - -select oref, a from t2 where a not in (select ie from t1 where oref=t2.oref); - - -select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by grp) Z from t2; - -select oref, a from t2 where - a in (select min(ie) from t1 where oref=t2.oref group by grp); - -select oref, a from t2 where - a not in (select min(ie) from t1 where oref=t2.oref group by grp); - -# -update t1 set ie=3 where oref='ff' and ie=1; - -select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by -grp) Z from t2; - - -select oref, a from t2 where a in (select min(ie) from t1 where -oref=t2.oref group by grp); - -select oref, a from t2 where a not in (select min(ie) from t1 where -oref=t2.oref group by grp); - -select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by -grp having min(ie) > 1) Z from t2; - -select oref, a from t2 where a in (select min(ie) from t1 where -oref=t2.oref group by grp having min(ie) > 1); - -select oref, a from t2 where a not in (select min(ie) from t1 where -oref=t2.oref group by grp having min(ie) > 1); - -# -alter table t1 add index idx(ie); - -explain select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2; - -select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2; - -select oref, a from t2 where a in (select ie from t1 where oref=t2.oref); - -select oref, a from t2 where a not in (select ie from t1 where oref=t2.oref); - - -alter table t1 drop index idx; -alter table t1 add index idx(oref,ie); - -explain select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2; - -select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2; - -select oref, a from t2 where a in (select ie from t1 where oref=t2.oref); - -select oref, a from t2 where a not in (select ie from t1 where oref=t2.oref); - -explain -select oref, a, - a in (select min(ie) from t1 where oref=t2.oref - group by grp having min(ie) > 1) Z -from t2; - -select oref, a, - a in (select min(ie) from t1 where oref=t2.oref - group by grp having min(ie) > 1) Z -from t2; - -select oref, a from t2 where a in (select min(ie) from t1 where oref=t2.oref - group by grp having min(ie) > 1); - -select oref, a from t2 where a not in (select min(ie) from t1 where oref=t2.oref - group by grp having min(ie) > 1); - -drop table t1,t2; - -create table t1 (oref char(4), grp int, ie1 int, ie2 int); -insert into t1 (oref, grp, ie1, ie2) values - ('aa', 10, 2, 1), - ('aa', 10, 1, 1), - ('aa', 20, 2, 1), - - ('bb', 10, 3, 1), - - ('cc', 10, 4, 2), - ('cc', 20, 3, 2), - - ('ee', 10, 2, 1), - ('ee', 10, 1, 2), - - ('ff', 20, 2, 2), - ('ff', 20, 1, 2); - -create table t2 (oref char(4), a int, b int); -insert into t2 values - ('ee', NULL, 1), - ('bb', 2, 1), - ('ff', 2, 2), - ('cc', 3, NULL), - ('bb', NULL, NULL), - ('aa', 1, 1), - ('dd', 1, NULL); - -select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2; - -select oref, a, b from t2 where (a,b) in (select ie1,ie2 from t1 where oref=t2.oref); - -select oref, a, b from t2 where (a,b) not in (select ie1,ie2 from t1 where oref=t2.oref); - -select oref, a, b, - (a,b) in (select min(ie1),max(ie2) from t1 - where oref=t2.oref group by grp) Z -from t2; - -select oref, a, b from t2 where - (a,b) in (select min(ie1), max(ie2) from t1 where oref=t2.oref group by grp); - -select oref, a, b from t2 where - (a,b) not in (select min(ie1), max(ie2) from t1 where oref=t2.oref group by grp); - -alter table t1 add index idx(ie1,ie2); - -explain select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2; - -select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2; - -select oref, a, b from t2 where (a,b) in (select ie1,ie2 from t1 where oref=t2.oref); - -select oref, a, b from t2 where (a,b) not in (select ie1,ie2 from t1 where oref=t2.oref); - -explain extended -select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2; - -drop table t1,t2; - -create table t1 (oref char(4), grp int, ie int primary key); -insert into t1 (oref, grp, ie) values - ('aa', 10, 2), - ('aa', 10, 1), - - ('bb', 10, 3), - - ('cc', 10, 4), - ('cc', 20, 5), - ('cc', 10, 6); - -create table t2 (oref char(4), a int); -insert into t2 values - ('ee', NULL), - ('bb', 2), - ('cc', 5), - ('cc', 2), - ('cc', NULL), - ('aa', 1), - ('bb', NULL); - -explain select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2; - -select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2; - -select oref, a from t2 where a in (select ie from t1 where oref=t2.oref); - -select oref, a from t2 where a not in (select ie from t1 where oref=t2.oref); - -explain -select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by grp) Z from t2; - -select oref, a, a in (select min(ie) from t1 where oref=t2.oref group by grp) Z from t2; - -drop table t1,t2; - -# -# BUG#24420: row-based IN suqueries with aggregation when the left operand -# of the subquery predicate may contain NULL values -# - -create table t1 (a int, b int); -insert into t1 values (0,0), (2,2), (3,3); -create table t2 (a int, b int); -insert into t2 values (1,1), (3,3); - -select a, b, (a,b) in (select a, min(b) from t2 group by a) Z from t1; - -insert into t2 values (NULL,4); -select a, b, (a,b) in (select a, min(b) from t2 group by a) Z from t1; - -drop table t1,t2; - -# -# Bug #24484: Aggregate function used in column list subquery gives erroneous -# error -# -CREATE TABLE t1 (a int, b INT, c CHAR(10) NOT NULL, PRIMARY KEY (a, b)); -INSERT INTO t1 VALUES (1,1,'a'), (1,2,'b'), (1,3,'c'), (1,4,'d'), (1,5,'e'), - (2,1,'f'), (2,2,'g'), (2,3,'h'), (3,4,'i'),(3,3,'j'), (3,2,'k'), (3,1,'l'), - (1,9,'m'); -CREATE TABLE t2 (a int, b INT, c CHAR(10) NOT NULL, PRIMARY KEY (a, b)); -INSERT INTO t2 SELECT * FROM t1; - -# Gives error, but should work since it is (a, b) is the PK so only one -# given match possible -SELECT a, MAX(b), (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b)) - as test FROM t1 GROUP BY a; -SELECT * FROM t1 GROUP by t1.a - HAVING (MAX(t1.b) > (SELECT MAX(t2.b) FROM t2 WHERE t2.c < t1.c - HAVING MAX(t2.b+t1.a) < 10)); - -SELECT a,b,c FROM t1 WHERE b in (9,3,4) ORDER BY b,c; - -SELECT a, MAX(b), - (SELECT COUNT(DISTINCT t.c) FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b) - LIMIT 1) - as cnt, - (SELECT t.b FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b) LIMIT 1) - as t_b, - (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b) LIMIT 1) - as t_b, - (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b) ORDER BY t.c LIMIT 1) - as t_b - FROM t1 GROUP BY a; - -SELECT a, MAX(b), - (SELECT t.c FROM t1 AS t WHERE t1.a=t.a AND t.b=MAX(t1.b) LIMIT 1) as test - FROM t1 GROUP BY a; - - -DROP TABLE t1, t2; - -# The next three test cases must be executed with the IN=>EXISTS strategy -set @@optimizer_switch="partial_match_rowid_merge=off,partial_match_table_scan=off"; - -# -# Bug #27870: crash of an equijoin query with WHERE condition containing -# a subquery predicate of the form NOT IN (SELECT ...) -# - -CREATE TABLE t1 (a int); -CREATE TABLE t2 (b int, PRIMARY KEY(b)); -INSERT INTO t1 VALUES (1), (NULL), (4); -INSERT INTO t2 VALUES (3), (1),(2), (5), (4), (7), (6); - -EXPLAIN EXTENDED -SELECT a FROM t1, t2 WHERE a=b AND (b NOT IN (SELECT a FROM t1)); -SELECT a FROM t1, t2 WHERE a=b AND (b NOT IN (SELECT a FROM t1)); -SELECT a FROM t1, t2 WHERE a=b AND (b NOT IN (SELECT a FROM t1 WHERE a > 4)); - -DROP TABLE t1,t2; - -# -# Bug #28375: crash for NOT IN subquery predicate when left operand becomes NULL -# - -CREATE TABLE t1 (id int); -CREATE TABLE t2 (id int PRIMARY KEY); -CREATE TABLE t3 (id int PRIMARY KEY, name varchar(10)); -INSERT INTO t1 VALUES (2), (NULL), (3), (1); -INSERT INTO t2 VALUES (234), (345), (457); -INSERT INTO t3 VALUES (222,'bbb'), (333,'ccc'), (111,'aaa'); - -EXPLAIN -SELECT * FROM t1 - WHERE t1.id NOT IN (SELECT t2.id FROM t2,t3 - WHERE t3.name='xxx' AND t2.id=t3.id); -SELECT * FROM t1 - WHERE t1.id NOT IN (SELECT t2.id FROM t2,t3 - WHERE t3.name='xxx' AND t2.id=t3.id); - -SELECT (t1.id IN (SELECT t2.id FROM t2,t3 - WHERE t3.name='xxx' AND t2.id=t3.id)) AS x - FROM t1; - -DROP TABLE t1,t2,t3; - -# -# Bug #22855: Optimizer doesn't rewrite NOT IN subselects to a correlated -# subquery -# -CREATE TABLE t1 (a INT NOT NULL); -INSERT INTO t1 VALUES (1),(-1), (65),(66); - -CREATE TABLE t2 (a INT UNSIGNED NOT NULL PRIMARY KEY); -INSERT INTO t2 VALUES (65),(66); - -SELECT a FROM t1 WHERE a NOT IN (65,66); -SELECT a FROM t1 WHERE a NOT IN (SELECT a FROM t2); -EXPLAIN SELECT a FROM t1 WHERE a NOT IN (SELECT a FROM t2); - -DROP TABLE t1, t2; - -set @@optimizer_switch=@save_optimizer_switch; - -# -# Bug #34763: item_subselect.cc:1235:Item_in_subselect::row_value_transformer: -# Assertion failed, unexpected error message: -# ERROR 1247 (42S22): Reference '' not supported (forward -# reference in item list) -# -CREATE TABLE t1 (a INT); -INSERT INTO t1 VALUES(1); - -CREATE TABLE t2 (placeholder CHAR(11)); -INSERT INTO t2 VALUES("placeholder"); - -SELECT ROW(1, 2) IN (SELECT t1.a, 2) FROM t1 GROUP BY t1.a; -SELECT ROW(1, 2) IN (SELECT t1.a, 2 FROM t2) FROM t1 GROUP BY t1.a; - -DROP TABLE t1, t2; - -# -# Bug #36005: crash in subselect with single row -# (subselect_single_select_engine::exec) -# - -CREATE TABLE t1 (a INT); -INSERT INTO t1 VALUES (1),(2),(3); -CREATE TABLE t2 SELECT * FROM t1; - -SELECT 1 FROM t1 WHERE t1.a NOT IN (SELECT 1 FROM t1, t2 WHERE 0); - -DROP TABLE t1, t2; - -# -# Bug 2198 -# - -create table t1 (a int, b decimal(13, 3)); -insert into t1 values (1, 0.123); -select a, (select max(b) from t1) into outfile "subselect.out.file.1" from t1; -delete from t1; -load data infile "subselect.out.file.1" into table t1; -select * from t1; -drop table t1; -let $datadir=`select @@datadir`; ---remove_file $datadir/test/subselect.out.file.1 - -# -# Bug #37894: Assertion in init_read_record_seq in handler.h line 1444 -# - -CREATE TABLE t1 ( - pk INT PRIMARY KEY, - int_key INT, - varchar_key VARCHAR(5) UNIQUE, - varchar_nokey VARCHAR(5) -); -INSERT INTO t1 VALUES (9, 7,NULL,NULL), (10,8,'p' ,'p'); - -SELECT varchar_nokey -FROM t1 -WHERE NULL NOT IN ( - SELECT INNR.pk FROM t1 AS INNR2 - LEFT JOIN t1 AS INNR ON ( INNR2.int_key = INNR.int_key ) - WHERE INNR.varchar_key > 'n{' -); - -DROP TABLE t1; - -# -# Bug #39069: IN seriously messed up -# - -CREATE TABLE t1 (a INT); -INSERT INTO t1 VALUES (1), (2), (11); - ---echo # 2nd and 3rd columns should be same -SELECT a, ROW(11, 12) = (SELECT a, 22), ROW(11, 12) IN (SELECT a, 22) FROM t1 GROUP BY t1.a; -SELECT a, ROW(11, 12) = (SELECT a, 12), ROW(11, 12) IN (SELECT a, 12) FROM t1 GROUP BY t1.a; -SELECT a, ROW(11, 12) = (SELECT a, 22), ROW(11, 12) IN (SELECT a, 22) FROM t1; -SELECT a, ROW(11, 12) = (SELECT a, 12), ROW(11, 12) IN (SELECT a, 12) FROM t1; - -# The x alias is used below to workaround bug #40674. -# Regression tests for sum function on outer column in subselect from dual: -SELECT a AS x, ROW(11, 12) = (SELECT MAX(x), 22), ROW(11, 12) IN (SELECT MAX(x), 22) FROM t1; ---echo # 2nd and 3rd columns should be same -EXPLAIN SELECT a AS x, ROW(11, 12) = (SELECT MAX(x), 12), ROW(11, 12) IN (SELECT MAX(x), 12) FROM t1; -SELECT a AS x, ROW(11, 12) = (SELECT MAX(x), 12), ROW(11, 12) IN (SELECT MAX(x), 12) FROM t1; - -DROP TABLE t1; - ---echo # both columns should be same -SELECT ROW(1,2) = (SELECT NULL, NULL), ROW(1,2) IN (SELECT NULL, NULL); -SELECT ROW(1,2) = (SELECT 1, NULL), ROW(1,2) IN (SELECT 1, NULL); -SELECT ROW(1,2) = (SELECT NULL, 2), ROW(1,2) IN (SELECT NULL, 2); -SELECT ROW(1,2) = (SELECT NULL, 1), ROW(1,2) IN (SELECT NULL, 1); -SELECT ROW(1,2) = (SELECT 1, 1), ROW(1,2) IN (SELECT 1, 1); -SELECT ROW(1,2) = (SELECT 1, 2), ROW(1,2) IN (SELECT 1, 2); - -# -# Bug #37362 Crash in do_field_eq -# -# Note that currently this test produces wrong output, see MBug#430669. -# -CREATE TABLE t1 (a INT, b INT, c INT); -INSERT INTO t1 VALUES (1,1,1), (1,1,1); - ---error 1054 -EXPLAIN EXTENDED - SELECT c FROM - ( SELECT - (SELECT COUNT(a) FROM - (SELECT COUNT(b) FROM t1) AS x GROUP BY c - ) FROM t1 GROUP BY b - ) AS y; -SHOW WARNINGS; - -DROP TABLE t1; - - ---echo End of 5.0 tests - ---echo # ---echo # BUG#36896: Server crash on SELECT FROM DUAL ---echo # -create table t1 (a int); -select 1 as res from dual where (1) in (select * from t1); -drop table t1; - -# -# BUG#36135 "void Diagnostics_area::set_eof_status(THD*): Assertion `!is_set()' failed." -# -create table t0 (a int); -insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); - -create table t1 ( - a int(11) default null, - b int(11) default null, - key (a) -); -# produce numbers 0..999 -insert into t1 select A.a+10*(B.a+10*C.a),A.a+10*(B.a+10*C.a) from t0 A, t0 B, t0 C; - -create table t2 (a int(11) default null); -insert into t2 values (0),(1); - -create table t3 (a int(11) default null); -insert into t3 values (0),(1); - -create table t4 (a int(11) default null); -insert into t4 values (0),(1); - -create table t5 (a int(11) default null); -insert into t5 values (0),(1),(0),(1); - -# this must not fail assertion ---error 1242 -select * from t2, t3 -where - t2.a < 10 and - t3.a+1 = 2 and - t3.a in (select t1.b from t1 - where t1.a+1=t1.a+1 and - t1.a < (select t4.a+10 - from t4, t5 limit 2)); - -drop table t0, t1, t2, t3, t4, t5; - ---echo # ---echo # BUG#48177 - SELECTs with NOT IN subqueries containing NULL ---echo # values return too many records ---echo # - -CREATE TABLE t1 ( - i1 int DEFAULT NULL, - i2 int DEFAULT NULL -) ; - -INSERT INTO t1 VALUES (1, NULL); -INSERT INTO t1 VALUES (2, 3); -INSERT INTO t1 VALUES (4, NULL); -INSERT INTO t1 VALUES (4, 0); -INSERT INTO t1 VALUES (NULL, NULL); - -CREATE TABLE t2 ( - i1 int DEFAULT NULL, - i2 int DEFAULT NULL -) ; - -INSERT INTO t2 VALUES (4, NULL); -INSERT INTO t2 VALUES (5, 0); - ---echo ---echo Data in t1 -SELECT i1, i2 FROM t1; - ---echo ---echo Data in subquery (should be filtered out) -SELECT i1, i2 FROM t2 ORDER BY i1; - -FLUSH STATUS; -set @save_optimizer_switch2=@@optimizer_switch; -set optimizer_switch='subquery_cache=off'; - ---echo -SELECT i1, i2 -FROM t1 -WHERE (i1, i2) - NOT IN (SELECT i1, i2 FROM t2); - ---echo ---echo # Check that the subquery only has to be evaluated once ---echo # for all-NULL values even though there are two (NULL,NULL) records ---echo # Baseline: -SHOW STATUS LIKE '%Handler_read_rnd_next'; - ---echo -INSERT INTO t1 VALUES (NULL, NULL); -FLUSH STATUS; - ---echo -SELECT i1, i2 -FROM t1 -WHERE (i1, i2) - NOT IN (SELECT i1, i2 FROM t2); - ---echo ---echo # Handler_read_rnd_next should be one more than baseline ---echo # (read record from t1, but do not read from t2) -SHOW STATUS LIKE '%Handler_read_rnd_next'; - -set @@optimizer_switch=@save_optimizer_switch2; -DROP TABLE t1,t2; - ---echo End of 5.1 tests - -# -# Test for the problem with using sj-materialization when subquery's select -# list element SCOL is covered by equality propagation and has preceding equal -# column PCOL which belongs to a table within the the semi-join nest: SJM-Scan -# process should unpack column value not to SCOL but rather to PCOL, as -# substitute_best_equal has made all conditions to refer to PCOL. -# -CREATE TABLE t1 ( - a int(11) NOT NULL, - b int(11) NOT NULL, - c datetime default NULL, - PRIMARY KEY (a), - KEY idx_bc (b,c) -); - -INSERT INTO t1 VALUES -(406989,67,'2006-02-23 17:08:46'), (150078,67,'2005-10-26 11:17:45'), -(406993,67,'2006-02-27 11:20:57'), (245655,67,'2005-12-08 15:59:08'), -(406994,67,'2006-02-27 11:26:46'), (256,67,NULL), -(398341,67,'2006-02-20 04:48:44'), (254,67,NULL),(1120,67,NULL), -(406988,67,'2006-02-23 17:07:22'), (255,67,NULL), -(398340,67,'2006-02-20 04:38:53'),(406631,67,'2006-02-23 10:49:42'), -(245653,67,'2005-12-08 15:59:07'),(406992,67,'2006-02-24 16:47:18'), -(245654,67,'2005-12-08 15:59:08'),(406995,67,'2006-02-28 11:55:00'), -(127261,67,'2005-10-13 12:17:58'),(406991,67,'2006-02-24 16:42:32'), -(245652,67,'2005-12-08 15:58:27'),(398545,67,'2006-02-20 04:53:13'), -(154504,67,'2005-10-28 11:53:01'),(9199,67,NULL),(1,67,'2006-02-23 15:01:35'), -(223456,67,NULL),(4101,67,NULL),(1133,67,NULL), -(406990,67,'2006-02-23 18:01:45'),(148815,67,'2005-10-25 15:34:17'), -(148812,67,'2005-10-25 15:30:01'),(245651,67,'2005-12-08 15:58:27'), -(154503,67,'2005-10-28 11:52:38'); - -create table t11 select * from t1 where b = 67 AND (c IS NULL OR c > NOW()) order by 3 asc; -create table t12 select * from t1 where b = 67 AND (c IS NULL OR c > NOW()) order by 3 desc; -create table t21 select * from t1 where b = 67 AND (c IS NULL OR c > '2005-12-08') order by 3 asc; -create table t22 select * from t1 where b = 67 AND (c IS NULL OR c > '2005-12-08') order by 3 desc; - -set @@optimizer_switch=@save_optimizer_switch; -set @@optimizer_switch='materialization=off'; - -update t22 set c = '2005-12-08 15:58:27' where a = 255; -explain select t21.* from t21,t22 where t21.a = t22.a and -t22.a in (select t12.a from t11, t12 where t11.a in(255,256) and t11.a = t12.a and t11.c is null) and t22.c is null order by t21.a; -select t21.* from t21,t22 where t21.a = t22.a and -t22.a in (select t12.a from t11, t12 where t11.a in(255,256) and t11.a = t12.a and t11.c is null) and t22.c is null order by t21.a; - -set @@optimizer_switch=@save_optimizer_switch; - -drop table t1, t11, t12, t21, t22; - -# -# Test sj-materialization re-execution. The test isn't meaningful (materialized -# table stays the same across all executions) because it's hard to create a -# dataset that would verify correct re-execution without hitting BUG#31480 -# -create table t1(a int); -insert into t1 values (0),(1); - -set @@optimizer_switch='firstmatch=off,materialization=off'; -explain -select (select max(Y.a) from t1 Y where a in (select a from t1 Z) and a < X.a) as subq from t1 X; -select (select max(Y.a) from t1 Y where a in (select a from t1 Z) and a < X.a) as subq from t1 X; -set @@optimizer_switch=@save_optimizer_switch; - -drop table t1; - -# -# Test confluent duplicate weedout -# -create table t0 (a int); -insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); -create table t1 as select * from t0; -insert into t1 select a+10 from t0; -set @@optimizer_switch='firstmatch=off,materialization=off'; -insert into t0 values(2); -explain select * from t1 where 2 in (select a from t0); -select * from t1 where 2 in (select a from t0); -set @@optimizer_switch=@save_optimizer_switch; -set @@optimizer_switch='materialization=off'; -explain select * from t1 where 2 in (select a from t0); -select * from t1 where 2 in (select a from t0); -set @@optimizer_switch=@save_optimizer_switch; - - -set @@optimizer_switch=@save_optimizer_switch; -set @@optimizer_switch='materialization=off'; - -# -# FirstMatch referring to a derived table -# -set @tmp_optimizer_switch=@@optimizer_switch; -set optimizer_switch='derived_merge=off,derived_with_keys=off'; -explain select * from (select a from t0) X where a in (select a from t1); -drop table t0, t1; -set optimizer_switch=@tmp_optimizer_switch; - -# -# LooseScan: Check if we can pick it together with range access -# -create table t0 (a int); -insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); - -create table t1 (kp1 int, kp2 int, c int, filler char(100), key(kp1, kp2)); -insert into t1 select A.a+10*(B.a+10*C.a), 0, 0, 'filler' from t0 A, t0 B, t0 C; -insert into t1 select * from t1 where kp1 < 20; - -create table t3 (a int); -insert into t3 select A.a + 10*B.a from t0 A, t0 B; - -explain select * from t3 where a in (select kp1 from t1 where kp1<20); - -create table t4 (pk int primary key); -insert into t4 select a from t3; - -explain select * from t3 where a in (select t1.kp1 from t1,t4 where kp1<20 -and t4.pk=t1.c); - -drop table t1, t3, t4; - -set @@optimizer_switch=@save_optimizer_switch; - -# -# Test if we handle duplicate elimination temptable overflowing to disk -# -create table t1 (a int) as select * from t0 where a < 5; - -set @save_max_heap_table_size=@@max_heap_table_size; -set @@optimizer_switch='firstmatch=off,materialization=off'; -set @@max_heap_table_size= 16384; - -explain select count(*) from t0 A, t0 B, t0 C, t0 D where D.a in (select a from t1 E where a+1 < 10000 + A.a + B.a +C.a+D.a); -flush status; -select count(*) from t0 A, t0 B, t0 C, t0 D where D.a in (select a from t1 E where a+1 < 10000 + A.a + B.a +C.a+D.a); -show status like 'Created_tmp_disk_tables'; -set @save_max_heap_table_size=@@max_heap_table_size; -set @@optimizer_switch=@save_optimizer_switch; -drop table t0, t1; - -# -# Materialize + Scan + ref access to the subsequent table based on scanned -# value -# -create table t0 (a int); -insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); -create table t2(a int); -insert into t2 values (1),(2); -create table t3 ( a int , filler char(100), key(a)); -insert into t3 select A.a + 10*B.a, 'filler' from t0 A, t0 B; -explain select * from t3 where a in (select a from t2) and (a > 5 or a < 10); -select * from t3 where a in (select a from t2); - -drop table t0, t2, t3; - -# -# DATETIME type checks -# -set @@optimizer_switch='firstmatch=off,materialization=off'; -create table t1 (a date); -insert into t1 values ('2008-01-01'),('2008-01-01'),('2008-02-01'),('2008-02-01'); -create table t2 (a int); -insert into t2 values (1),(2); -create table t3 (a char(10)); -insert into t3 select * from t1; -insert into t3 values (1),(2); -explain select * from t2 where a in (select a from t1); -explain select * from t2 where a in (select a from t2); -explain select * from t2 where a in (select a from t3); -explain select * from t1 where a in (select a from t3); -drop table t1, t2, t3; -create table t1 (a decimal); -insert into t1 values (1),(2); -explain select * from t1 where a in (select a from t1); -drop table t1; -set @@optimizer_switch=@save_optimizer_switch; - -set @@optimizer_switch=@save_optimizer_switch; -set @@optimizer_switch='materialization=off'; - -# -# SJ-Materialization-scan for non-first table -# -create table t1 (a int); -insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); -create table t2 as select * from t1; -create table t3 (a int, b int, filler char(100), key(a)); -insert into t3 select A.a + 10*B.a, A.a + 10*B.a, 'filler' from t1 A, t1 B, t1 C; -explain select * from t1, t3 where t3.a in (select a from t2) and (t3.a < 10 or t3.a >30) and t1.a =3; - -# -# Verify that straight_join modifier in parent or child prevents flattening -# -explain select straight_join * from t1 A, t1 B where A.a in (select a from t2); -explain select * from t2 where a in (select straight_join A.a from t1 A, t1 B); -explain select * from t2 where a in (select straight_join A.a from t1 A, t1 B); -explain select straight_join * from t2 X, t2 Y -where X.a in (select straight_join A.a from t1 A, t1 B); - -# -# SJ-Materialization scan + first table being system const table -# -create table t0 (a int, b int); -insert into t0 values(1,1); -explain select * from t0, t3 where t3.a in (select a from t2) and (t3.a < 10 or t3.a >30); -create table t4 as select a as x, a as y from t1; -explain select * from t0, t3 where (t3.a, t3.b) in (select x,y from t4) and (t3.a < 10 or t3.a >30); -drop table t0,t1,t2,t3,t4; - -# -# LooseScan with ref access -# -create table t0 (a int); -insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); -create table t1 (a int, b int, filler char(100), key(a,b)); -insert into t1 select A.a, B.a, 'filler' from t0 A, t0 B; -create table t2 as select * from t1; - -explain select * from t2 where a in (select b from t1 where a=3); -explain select * from t2 where (b,a) in (select a,b from t1 where a=3); - -drop table t1,t2; - -set @@optimizer_switch=@save_optimizer_switch; - -# -# Multi-column sj-materialization with lookups -# -create table t1 (a int, b int); -insert into t1 select a,a from t0; -create table t2 (a int, b int); -insert into t2 select A.a + 10*B.a, A.a + 10*B.a from t0 A, t0 B; - -set @@optimizer_switch='firstmatch=off,materialization=off'; -explain select * from t1 where (a,b) in (select a,b from t2); - -# A smallish test if find_best() still works for semi-join optimization: -set @save_optimizer_search_depth=@@optimizer_search_depth; -set @@optimizer_search_depth=63; -explain select * from t1 where (a,b) in (select a,b from t2); -set @@optimizer_search_depth=@save_optimizer_search_depth; -set @@optimizer_switch=@save_optimizer_switch; - -drop table t0, t1, t2; - -set @@optimizer_switch='materialization=off'; - -# -# Primitive SJ-Materialization tests for DECIMAL and DATE -# -create table t0 (a decimal(4,2)); -insert into t0 values (10.24), (22.11); -create table t1 as select * from t0; -insert into t1 select * from t0; -explain select * from t0 where a in (select a from t1); -select * from t0 where a in (select a from t1); -drop table t0, t1; - -create table t0(a date); -insert into t0 values ('2008-01-01'),('2008-02-02'); -create table t1 as select * from t0; -insert into t1 select * from t0; -explain select * from t0 where a in (select a from t1); -select * from t0 where a in (select a from t1); -drop table t0, t1; - -# -# Fix a trivial crash with SJ-Materialization lookup, multiple tables in the -# subquery, and a condition on some of inner tables but not others -# -create table t0(a int); -insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); -create table t1 as select a as a, a as b, a as c from t0 where a < 3; -create table t2 as select a as a, a as b from t0 where a < 3; -insert into t2 select * from t2; - -explain select * from t1 where (a,b,c) in (select X.a, Y.a, Z.a from t2 X, t2 Y, t2 Z where X.b=33); - -drop table t0,t1,t2; - -set @@optimizer_switch=@save_optimizer_switch; - ---echo ---echo BUG#37842: Assertion in DsMrr_impl::dsmrr_init, at handler.cc:4307 ---echo -CREATE TABLE t1 ( - `pk` int(11) NOT NULL AUTO_INCREMENT, - `int_key` int(11) DEFAULT NULL, - PRIMARY KEY (`pk`), - KEY `int_key` (`int_key`) -) ENGINE=MyISAM; -INSERT INTO t1 VALUES (1,9),(2,3),(3,8),(4,6),(5,9),(6,5),(7,5),(8,9),(9,1),(10,10); -SELECT `pk` FROM t1 AS OUTR WHERE `int_key` = ALL ( - SELECT `int_key` FROM t1 AS INNR WHERE INNR . `pk` >= 9 -); -DROP TABLE t1; - ---echo ---echo BUG#40118 Crash when running Batched Key Access and requiring one match for each key ---echo -create table t0(a int); -insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); -create table t1 (a int, key(a)); -insert into t1 select * from t0; -alter table t1 add b int not null, add filler char(200); -insert into t1 select * from t1; -insert into t1 select * from t1; - -set @save_join_cache_level=@@join_cache_level; -set join_cache_level=6; -select * from t0 where t0.a in (select t1.a from t1 where t1.b=0); -set join_cache_level=@save_join_cache_level; -drop table t0, t1; - ---echo # ---echo # BUG#32665 Query with dependent subquery is too slow ---echo # -create table t1 ( - idIndividual int primary key -); -insert into t1 values (1),(2); - -create table t2 ( - idContact int primary key, - contactType int, - idObj int -); -insert into t2 values (1,1,1),(2,2,2),(3,3,3); - -create table t3 ( - idAddress int primary key, - idContact int, - postalStripped varchar(100) -); - -insert into t3 values (1,1, 'foo'), (2,2,'bar'); - ---echo The following must be converted to a semi-join: -set @save_optimizer_switch=@@optimizer_switch; -set @@optimizer_switch='materialization=off'; -explain extended SELECT a.idIndividual FROM t1 a -WHERE a.idIndividual IN - ( SELECT c.idObj FROM t3 cona - INNER JOIN t2 c ON c.idContact=cona.idContact - WHERE cona.postalStripped='T2H3B2' - ); -set @@optimizer_switch=@save_optimizer_switch; -drop table t1,t2,t3; - ---echo # ---echo # BUG#47367 Crash in Name_resolution_context::process_error ---echo # - -SET SESSION optimizer_switch = 'semijoin=off'; -CREATE TABLE t1 (f1 INTEGER); -CREATE TABLE t2 LIKE t1; -delimiter |; -CREATE PROCEDURE p1 () BEGIN SELECT f1 FROM t1 WHERE f1 IN (SELECT f1 FROM t2); END| -delimiter ;| -CALL p1; -ALTER TABLE t2 CHANGE COLUMN f1 my_column INT; -CALL p1; -DROP PROCEDURE p1; ---echo # Restore the original column list of table t2: -ALTER TABLE t2 CHANGE COLUMN my_column f1 INT; - -SET SESSION optimizer_switch = 'semijoin=on'; -delimiter |; ---echo # Recreate procedure so that we eliminate any caching effects -CREATE PROCEDURE p1 () BEGIN SELECT f1 FROM t1 WHERE f1 IN (SELECT f1 FROM t2); END| -delimiter ;| -CALL p1; -ALTER TABLE t2 CHANGE COLUMN f1 my_column INT; ---error ER_BAD_FIELD_ERROR -CALL p1; -DROP PROCEDURE p1; -DROP TABLE t1, t2; - ---echo # ---echo # fix of lp:824425 (prohibiting subqueries in row in ---echo # left part of IN/ALL/ANY) ---echo # - -CREATE TABLE t1 ( a int) ; -INSERT INTO t1 VALUES (20),(30); - -CREATE TABLE t2 (a int) ; -INSERT INTO t2 VALUES (3),(9); - -CREATE TABLE t3 ( a int, b int) ; -INSERT INTO t3 VALUES (20,5),(30,6); - -set @optimizer_switch_save=@@optimizer_switch; -SET SESSION optimizer_switch='semijoin=OFF,in_to_exists=OFF,materialization=ON,partial_match_rowid_merge=ON,partial_match_table_scan=OFF'; - -SELECT * FROM t1 -WHERE ( - ( SELECT a FROM t2 WHERE a = 9 ) -) NOT IN ( - SELECT b - FROM t3 -); -explain extended -SELECT * FROM t1 -WHERE ( - ( SELECT a FROM t2 WHERE a = 9 ) -) NOT IN ( - SELECT b - FROM t3 -); - ---error ER_NOT_SUPPORTED_YET -SELECT * FROM t1 -WHERE ( - ( SELECT a FROM t2 WHERE a = 9 ), - ( SELECT a FROM t2 WHERE a = 3 ) -) NOT IN ( - SELECT b , a - FROM t3 -); -set optimizer_switch=@optimizer_switch_save; - -drop table t1,t2,t3; - ---echo End of 5.3 tests - ---echo # ---echo # BUG#48920: COUNT DISTINCT returns 1 for NULL values when in a subquery ---echo # in the select list ---echo # - ---echo -CREATE TABLE t1 ( - i int(11) DEFAULT NULL, - v varchar(1) DEFAULT NULL -); - ---echo -INSERT INTO t1 VALUES (8,'v'); -INSERT INTO t1 VALUES (9,'r'); -INSERT INTO t1 VALUES (NULL,'y'); - ---echo -CREATE TABLE t2 ( - i int(11) DEFAULT NULL, - v varchar(1) DEFAULT NULL, - KEY i_key (i) -); - ---echo -INSERT INTO t2 VALUES (NULL,'r'); -INSERT INTO t2 VALUES (0,'c'); -INSERT INTO t2 VALUES (0,'o'); -INSERT INTO t2 VALUES (2,'v'); -INSERT INTO t2 VALUES (7,'c'); - ---echo -SELECT i, v, (SELECT COUNT(DISTINCT i) - FROM t1 - WHERE v = t2.v) as subsel -FROM t2; - ---echo -EXPLAIN EXTENDED -SELECT i, v, (SELECT COUNT(DISTINCT i) - FROM t1 - WHERE v = t2.v) as subsel -FROM t2; - -DROP TABLE t1,t2; - ---echo End of 5.6 tests - -# The following command must be the last one in the file -set @@optimizer_switch=@subselect3_tmp; +--echo # end of 10.2 test diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect4.test mariadb-10.3-10.3.20/mysql-test/main/subselect4.test --- mariadb-10.3-10.3.17/mysql-test/main/subselect4.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect4.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,7 @@ # General purpose bug fix tests go here : subselect.test too large +--source include/default_optimizer_switch.inc + --disable_warnings drop table if exists t0,t1,t2,t3,t4,t5,t6; drop view if exists v1, v2; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_exists2in.test mariadb-10.3-10.3.20/mysql-test/main/subselect_exists2in.test --- mariadb-10.3-10.3.17/mysql-test/main/subselect_exists2in.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_exists2in.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +--source include/default_optimizer_switch.inc --disable_warnings drop table if exists t1,t2,t3; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_extra.test mariadb-10.3-10.3.20/mysql-test/main/subselect_extra.test --- mariadb-10.3-10.3.17/mysql-test/main/subselect_extra.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_extra.test 2019-11-06 16:01:57.000000000 +0000 @@ -6,6 +6,7 @@ # # and get as much subquery testing as possible. # +--source include/default_optimizer_switch.inc --disable_warnings drop table if exists t1,t2,t3,t4; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_mat_cost_bugs.test mariadb-10.3-10.3.20/mysql-test/main/subselect_mat_cost_bugs.test --- mariadb-10.3-10.3.17/mysql-test/main/subselect_mat_cost_bugs.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_mat_cost_bugs.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,6 +2,7 @@ # Test cases for bugs related to the implementation of # MWL#89 cost-based choice between the materialization and in-to-exists # +--source include/default_optimizer_switch.inc --echo # --echo # LP BUG#643424 valgrind warning in choose_subquery_plan() diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_mat_cost.result mariadb-10.3-10.3.20/mysql-test/main/subselect_mat_cost.result --- mariadb-10.3-10.3.17/mysql-test/main/subselect_mat_cost.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_mat_cost.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,3 @@ -set @subselect_mat_cost=@@optimizer_switch; set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; set long_query_time=0.1; TEST GROUP 1: @@ -562,4 +561,4 @@ Tests of various combinations of optimizer switches, types of queries, available indexes, column nullability, constness of tables/predicates. ===================================================================== -set optimizer_switch=@subselect_mat_cost; +set optimizer_switch=default; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_mat_cost.test mariadb-10.3-10.3.20/mysql-test/main/subselect_mat_cost.test --- mariadb-10.3-10.3.17/mysql-test/main/subselect_mat_cost.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_mat_cost.test 2019-11-06 16:01:57.000000000 +0000 @@ -13,7 +13,9 @@ # switches, data distribution, available indexes, and typical queries. # -set @subselect_mat_cost=@@optimizer_switch; +--source include/default_optimizer_switch.inc +--source include/default_charset.inc + set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; # # Test logging to slow log (there was some errors in the log files about @@ -426,4 +428,4 @@ # inner subqyery is materialized while the outer subquery is not ( #IN_EXIST transformation is applied to it) -set optimizer_switch=@subselect_mat_cost; +set optimizer_switch=default; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_mat.result mariadb-10.3-10.3.20/mysql-test/main/subselect_mat.result --- mariadb-10.3-10.3.17/mysql-test/main/subselect_mat.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_mat.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,4 @@ set @subselect_mat_test_optimizer_switch_value='materialization=on,in_to_exists=off,semijoin=off'; -set @subselect_sj_mat_tmp= @@optimizer_switch; set optimizer_switch=ifnull(@subselect_mat_test_optimizer_switch_value, 'semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on'); set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; set @optimizer_switch_local_default= @@optimizer_switch; @@ -185,7 +184,7 @@ 1 - 02 2 - 02 select * from t1 where (a1, a2) in (select b1, min(b2) from t2i limit 1,1); ERROR 42000: This version of MariaDB doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; set @@optimizer_switch=@optimizer_switch_local_default; set @@optimizer_switch='semijoin=off'; prepare st1 from @@ -218,7 +217,7 @@ a1 a2 1 - 01 2 - 01 1 - 02 2 - 02 -set @@optimizer_switch=@save_optimizer_switch; +set @@optimizer_switch=@local_optimizer_switch; explain extended select * from t1 where (a1, a2) in (select b1, b2 from t2 order by b1, b2); id select_type table type possible_keys key key_len ref rows filtered Extra @@ -1186,7 +1185,7 @@ select min(a1) from t1 where 7 in (select max(b1) from t2 group by b1); min(a1) NULL -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; set @@optimizer_switch=@optimizer_switch_local_default; set @@optimizer_switch='materialization=off,in_to_exists=on'; explain select min(a1) from t1 where 7 in (select max(b1) from t2 group by b1); @@ -1223,7 +1222,7 @@ select min(a1) from t1 where 7 in (select b1 from t2) or 2> 4; min(a1) NULL -set @@optimizer_switch= @save_optimizer_switch; +set @@optimizer_switch= @local_optimizer_switch; drop table t1,t2; create table t1 (a char(2), b varchar(10)); insert into t1 values ('a', 'aaa'); @@ -1472,18 +1471,18 @@ CREATE TABLE t2 LIKE t1; INSERT INTO t2 VALUES (1, 1.789); INSERT INTO t2 VALUES (13, 1.454); -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; set @@optimizer_switch=@optimizer_switch_local_default; SET @@optimizer_switch='semijoin=on,materialization=on'; EXPLAIN SELECT COUNT(*) FROM t1 WHERE (f1,f2) IN (SELECT f1,f2 FROM t2); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 -1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 3 +1 PRIMARY eq_ref distinct_key distinct_key 7 func,func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 SELECT COUNT(*) FROM t1 WHERE (f1,f2) IN (SELECT f1,f2 FROM t2); COUNT(*) 2 -set @@optimizer_switch= @save_optimizer_switch; +set @@optimizer_switch= @local_optimizer_switch; DROP TABLE t1, t2; CREATE TABLE t1 ( pk int, @@ -1496,7 +1495,7 @@ INSERT INTO t1 VALUES (1,'o','ffff','ffff','ffoo'),(2,'f','ffff','ffff','ffff'); CREATE TABLE t2 LIKE t1; INSERT INTO t2 VALUES (1,'i','iiii','iiii','iiii'),(2,'f','ffff','ffff','ffff'); -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; set @@optimizer_switch=@optimizer_switch_local_default; SET @@optimizer_switch='semijoin=on,materialization=on'; EXPLAIN SELECT pk FROM t1 WHERE (a) IN (SELECT a FROM t2 WHERE pk > 0); @@ -1511,7 +1510,7 @@ pk 2 DROP TABLE t1, t2; -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@local_optimizer_switch; # # BUG#50019: Wrong result for IN-subquery with materialization # @@ -1527,7 +1526,7 @@ 2 3 4 -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; set session optimizer_switch='materialization=off,in_to_exists=on'; select * from t1 where t1.i in (select t2.i from t2 join t3 where t2.i + t3.i = 5); i @@ -1535,7 +1534,7 @@ 2 3 4 -set session optimizer_switch=@save_optimizer_switch; +set session optimizer_switch=@local_optimizer_switch; drop table t1, t2, t3; create table t0 (a int); insert into t0 values (0),(1),(2); @@ -1911,7 +1910,7 @@ # # BUG#939009: Crash with aggregate function in IN subquery # -SET @save_optimizer_switch=@@optimizer_switch; +SET @local_optimizer_switch=@@optimizer_switch; SET optimizer_switch='materialization=on,semijoin=on'; CREATE TABLE t1 (a int, b int); INSERT INTO t1 VALUES (7,1), (4,2), (7,7); @@ -1940,7 +1939,7 @@ SELECT * FROM t1 WHERE a IN (SELECT MAX(c) FROM t2 WHERE c < 4) AND b=7 AND (a IS NULL OR a=b); a b -SET optimizer_switch=@save_optimizer_switch; +SET optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2; # # BUG#946055: Crash with semijoin IN subquery when hash join is used @@ -1951,8 +1950,7 @@ INSERT INTO t2 VALUES (4,2,'v','v'), (6,1,'v','v'), (0,5,'x','x'), (7,1,'x','x'), (7,3,'i','i'), (7,1,'e','e'), (1,4,'p','p'), (1,2,'j','j'); -SET @save_optimizer_switch=@@optimizer_switch; -SET @save_join_cache_level=@@join_cache_level; +SET @local_optimizer_switch=@@optimizer_switch; SET join_cache_level=2; EXPLAIN SELECT a, c FROM t1, t2 @@ -1990,7 +1988,7 @@ 7 1 7 1 7 1 -SET optimizer_switch=@save_optimizer_switch; +SET optimizer_switch=@local_optimizer_switch; SET join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; # @@ -2043,21 +2041,21 @@ delete t2 from t2 where a_id in (select * from (select t1.id from t1 limit 2) as x); drop table t1,t2; # This must be at the end: -set optimizer_switch=@subselect_sj_mat_tmp; +set optimizer_switch=@save_optimizer_switch; set join_cache_level=@save_join_cache_level; # # MDEV-4908: Assertion `((Item_cond *) cond)->functype() == # ((Item_cond *) new_item)->functype()' fails on a query with # IN and equal conditions, AND/OR, materialization+semijoin # -SET @save_optimizer_switch=@@optimizer_switch; +SET @local_optimizer_switch=@@optimizer_switch; SET optimizer_switch = 'materialization=on,semijoin=on'; CREATE TABLE t1 (pk INT, a INT, b INT, PRIMARY KEY(pk)) ENGINE=MyISAM; INSERT INTO t1 VALUES (1,3,5),(2,4,6); SELECT * FROM t1 WHERE 8 IN ( SELECT MIN(pk) FROM t1 ) AND ( pk = a OR pk = b ); pk a b drop table t1; -SET optimizer_switch=@save_optimizer_switch; +SET optimizer_switch=@local_optimizer_switch; # # MDEV-5011: ERROR Plugin 'MEMORY' has ref_count=1 after shutdown for SJM queries # @@ -2203,7 +2201,7 @@ WHERE sq1.`pk` IN ( SELECT f1 FROM t1 ) AND sq2.f1 = sq1.f1 ); f2 foo -set @save_optimizer_switch= @@optimizer_switch; +set @local_optimizer_switch= @@optimizer_switch; set optimizer_switch='exists_to_in=off'; EXPLAIN SELECT sq1.f2 FROM t1 AS sq1 @@ -2221,7 +2219,7 @@ WHERE sq1.`pk` IN ( SELECT f1 FROM t1 ) AND sq2.f1 = sq1.f1 ); f2 foo -set optimizer_switch= @save_optimizer_switch; +set optimizer_switch= @local_optimizer_switch; DROP TABLE t1; # # MDEV-12145: IN subquery used in WHERE of EXISTS subquery @@ -2232,7 +2230,7 @@ INSERT INTO t2 VALUES (8),(7),(1); CREATE TABLE t3 (f3 INT, i3 INT, KEY(i3)) ENGINE=MyISAM; INSERT INTO t3 VALUES (8,0),(6,3),(2,8),(3,8),(1,6),(0,0),(1,0),(1,5); -set @save_optimizer_switch= @@optimizer_switch; +set @local_optimizer_switch= @@optimizer_switch; set optimizer_switch='exists_to_in=off'; SELECT * FROM t1 WHERE EXISTS ( SELECT * FROM t2, t3 @@ -2259,7 +2257,7 @@ WHERE i3 = i2 AND f1 IN ( SELECT f3 FROM t3 ) ); f1 6 -set optimizer_switch= @save_optimizer_switch; +set optimizer_switch= @local_optimizer_switch; DROP TABLE t1,t2,t3; # # MDEV-9686: IN subquery used in WHERE of a subquery from select list @@ -2291,7 +2289,7 @@ Note 1276 Field or reference 'test.t1.pk' of SELECT #2 was resolved in SELECT #1 Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk`,`test`.`t1`.`f1` AS `f1`,<`test`.`t1`.`pk`>((/* select#2 */ select count(0) from `test`.`t2` semi join (`test`.`t2`) where `test`.`t1`.`pk` = `test`.`t2`.`f2`)) AS `sq` from `test`.`t1` # this checks the result set above -set @save_optimizer_switch= @@optimizer_switch; +set @local_optimizer_switch= @@optimizer_switch; set optimizer_switch= 'materialization=off,semijoin=off'; SELECT pk, f1, ( SELECT COUNT(*) FROM t2 WHERE t1.pk IN ( SELECT f2 FROM t2 ) ) AS sq FROM t1; @@ -2301,12 +2299,12 @@ 3 3 5 4 6 5 5 3 5 -set optimizer_switch= @save_optimizer_switch; +set optimizer_switch= @local_optimizer_switch; DROP TABLE t1,t2; # # mdev-12838: scan of materialized of semi-join subquery in join # -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; CREATE TABLE t1 ( dispatch_group varchar(32), assignment_group varchar(32), @@ -2390,7 +2388,7 @@ 7b10fd2637232000158bbfc8bcbe5d30 ebb4620037332000158bbfc8bcbe5d89 DROP TABLE t1,t2,t3; -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@local_optimizer_switch; # # MDEV-16751: Server crashes in st_join_table::cleanup or # TABLE_LIST::is_with_table_recursive_reference with join_cache_level>2 @@ -2404,8 +2402,8 @@ explain SELECT 1 FROM t1 where t1.id IN (SELECT t2.i1 FROM t2 WHERE t2.i1 = t2.i2); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 hash_ALL NULL #hash#$hj 4 test.t2.i1 9 Using where; Using join buffer (flat, BNLH join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 9 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 Using where SELECT 1 FROM t1 where t1.id IN (SELECT t2.i1 FROM t2 WHERE t2.i1 = t2.i2); 1 @@ -2417,8 +2415,8 @@ explain SELECT 1 FROM t1 where t1.id IN (SELECT t2.i1 FROM t2 WHERE t2.i1 = t2.i2); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ref id id 4 test.t2.i1 2 Using index +1 PRIMARY t1 index id id 4 NULL 9 Using index +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 Using where SELECT 1 FROM t1 where t1.id IN (SELECT t2.i1 FROM t2 WHERE t2.i1 = t2.i2); 1 @@ -2453,7 +2451,7 @@ 4189 8732 5 -set @save_optimizer_switch= @@optimizer_switch; +set @local_optimizer_switch= @@optimizer_switch; SET optimizer_switch='materialization=off'; SELECT t1.a FROM t1 WHERE t1.a IN (SELECT t2.a FROM t2 WHERE t2.b IN (SELECT t3.b FROM t3 WHERE t3.c= 27)) LIMIT 5; @@ -2465,7 +2463,7 @@ a 5 drop procedure prepare_data; -set @@optimizer_switch= @save_optimizer_switch; +set @@optimizer_switch= @local_optimizer_switch; drop table t1,t2,t3; CREATE TABLE t1 ( id int NOT NULL, key(id)); INSERT INTO t1 VALUES (11),(12),(13),(14),(15),(16),(17),(18),(19); @@ -2474,8 +2472,8 @@ CREATE VIEW v1 AS SELECT t2.i1 FROM t2 where t2.i1 = t2.i2; explain SELECT 1 FROM t1 where t1.id IN (SELECT v1.i1 from v1); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ref id id 4 test.t2.i1 2 Using index +1 PRIMARY t1 index id id 4 NULL 9 Using index +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 Using where SELECT 1 FROM t1 where t1.id IN (SELECT v1.i1 from v1); 1 diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_no_exists_to_in.result mariadb-10.3-10.3.20/mysql-test/main/subselect_no_exists_to_in.result --- mariadb-10.3-10.3.17/mysql-test/main/subselect_no_exists_to_in.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_no_exists_to_in.result 2019-11-06 16:01:57.000000000 +0000 @@ -9,7 +9,8 @@ set @@optimizer_switch=ifnull(@optimizer_switch_for_subselect_test, "semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on,partial_match_rowid_merge=off,partial_match_table_scan=off"); set join_cache_level=1; -set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +SET optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +SET optimizer_use_condition_selectivity=1; select (select 2); (select 2) 2 diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_no_mat.result mariadb-10.3-10.3.20/mysql-test/main/subselect_no_mat.result --- mariadb-10.3-10.3.17/mysql-test/main/subselect_no_mat.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_no_mat.result 2019-11-06 16:01:57.000000000 +0000 @@ -12,7 +12,8 @@ set @@optimizer_switch=ifnull(@optimizer_switch_for_subselect_test, "semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on,partial_match_rowid_merge=off,partial_match_table_scan=off"); set join_cache_level=@join_cache_level_for_subselect_test; -set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +SET optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +SET optimizer_use_condition_selectivity=1; select (select 2); (select 2) 2 @@ -5668,9 +5669,9 @@ FROM it2,it3); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY ot1 ALL NULL NULL NULL NULL 2 -1 PRIMARY ot4 ALL NULL NULL NULL NULL 8 Using join buffer (flat, BNL join) -1 PRIMARY it2 ALL NULL NULL NULL NULL 4 Using where -1 PRIMARY it3 ALL NULL NULL NULL NULL 6 Using where; FirstMatch(ot4) +1 PRIMARY it2 ALL NULL NULL NULL NULL 4 Using where; Start temporary; Using join buffer (flat, BNL join) +1 PRIMARY it3 ALL NULL NULL NULL NULL 6 Using join buffer (flat, BNL join) +1 PRIMARY ot4 ALL NULL NULL NULL NULL 8 Using where; End temporary; Using join buffer (flat, BNL join) DROP TABLE IF EXISTS ot1, ot4, it2, it3; # # Bug#729039: NULL keys used to evaluate subquery @@ -5697,8 +5698,8 @@ SELECT * FROM t1 WHERE EXISTS (SELECT a FROM t2 WHERE t2.a = t1.a); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t2 index idx idx 5 NULL 3 Using index; LooseScan -1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where +1 PRIMARY t2 ref idx idx 5 test.t1.a 2 Using index; FirstMatch(t1) DROP TABLE t1,t2; # # BUG#752992: Wrong results for a subquery with 'semijoin=on' diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_no_opts.result mariadb-10.3-10.3.20/mysql-test/main/subselect_no_opts.result --- mariadb-10.3-10.3.17/mysql-test/main/subselect_no_opts.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_no_opts.result 2019-11-06 16:01:57.000000000 +0000 @@ -8,7 +8,8 @@ set @@optimizer_switch=ifnull(@optimizer_switch_for_subselect_test, "semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on,partial_match_rowid_merge=off,partial_match_table_scan=off"); set join_cache_level=@join_cache_level_for_subselect_test; -set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +SET optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +SET optimizer_use_condition_selectivity=1; select (select 2); (select 2) 2 diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_no_scache.result mariadb-10.3-10.3.20/mysql-test/main/subselect_no_scache.result --- mariadb-10.3-10.3.17/mysql-test/main/subselect_no_scache.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_no_scache.result 2019-11-06 16:01:57.000000000 +0000 @@ -11,7 +11,8 @@ set @@optimizer_switch=ifnull(@optimizer_switch_for_subselect_test, "semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on,partial_match_rowid_merge=off,partial_match_table_scan=off"); set join_cache_level=@join_cache_level_for_subselect_test; -set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +SET optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +SET optimizer_use_condition_selectivity=1; select (select 2); (select 2) 2 @@ -5694,8 +5695,8 @@ SELECT * FROM t1 WHERE EXISTS (SELECT a FROM t2 USE INDEX() WHERE t2.a = t1.a); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 SELECT * FROM t1 WHERE EXISTS (SELECT a FROM t2 WHERE t2.a = t1.a); @@ -5705,8 +5706,8 @@ SELECT * FROM t1 WHERE EXISTS (SELECT a FROM t2 WHERE t2.a = t1.a); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t2 index idx idx 5 NULL 3 Using index DROP TABLE t1,t2; # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_no_semijoin.result mariadb-10.3-10.3.20/mysql-test/main/subselect_no_semijoin.result --- mariadb-10.3-10.3.17/mysql-test/main/subselect_no_semijoin.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_no_semijoin.result 2019-11-06 16:01:57.000000000 +0000 @@ -8,7 +8,8 @@ set @@optimizer_switch=ifnull(@optimizer_switch_for_subselect_test, "semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on,partial_match_rowid_merge=off,partial_match_table_scan=off"); set join_cache_level=@join_cache_level_for_subselect_test; -set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +SET optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +SET optimizer_use_condition_selectivity=1; select (select 2); (select 2) 2 diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect.result mariadb-10.3-10.3.20/mysql-test/main/subselect.result --- mariadb-10.3-10.3.17/mysql-test/main/subselect.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect.result 2019-11-06 16:01:57.000000000 +0000 @@ -5,7 +5,8 @@ set @@optimizer_switch=ifnull(@optimizer_switch_for_subselect_test, "semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on,partial_match_rowid_merge=off,partial_match_table_scan=off"); set join_cache_level=1; -set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +SET optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +SET optimizer_use_condition_selectivity=1; select (select 2); (select 2) 2 @@ -5688,8 +5689,8 @@ SELECT * FROM t1 WHERE EXISTS (SELECT a FROM t2 USE INDEX() WHERE t2.a = t1.a); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 SELECT * FROM t1 WHERE EXISTS (SELECT a FROM t2 WHERE t2.a = t1.a); @@ -5699,8 +5700,8 @@ SELECT * FROM t1 WHERE EXISTS (SELECT a FROM t2 WHERE t2.a = t1.a); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t2 index idx idx 5 NULL 3 Using index DROP TABLE t1,t2; # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_sj2_jcl6.result mariadb-10.3-10.3.20/mysql-test/main/subselect_sj2_jcl6.result --- mariadb-10.3-10.3.17/mysql-test/main/subselect_sj2_jcl6.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_sj2_jcl6.result 2019-11-06 16:01:57.000000000 +0000 @@ -158,9 +158,9 @@ a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z from t1 ot where a in (select a from t2 it); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 22 -1 PRIMARY ot hash_ALL NULL #hash#$hj 5 test.it.a 32 Using where; Using join buffer (flat, BNLH join) -2 MATERIALIZED it ALL NULL NULL NULL NULL 22 Using where +1 PRIMARY ot ALL NULL NULL NULL NULL 32 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 +2 MATERIALIZED it ALL NULL NULL NULL NULL 22 select a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z from t1 ot where a in (select a from t2 it); @@ -226,9 +226,9 @@ a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z from t1 ot where a in (select a from t2 it); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 22 -1 PRIMARY ot hash_ALL NULL #hash#$hj 5 test.it.a 52 Using where; Using join buffer (flat, BNLH join) -2 MATERIALIZED it ALL NULL NULL NULL NULL 22 Using where +1 PRIMARY ot ALL NULL NULL NULL NULL 52 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 +2 MATERIALIZED it ALL NULL NULL NULL NULL 22 select a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z from t1 ot where a in (select a from t2 it); @@ -632,7 +632,7 @@ set join_buffer_size=1; select * from t2 where filler1 in ( select a from t1); a b c filler1 -set join_buffer_size=default; +set join_buffer_size=@save_join_buffer_size; drop table t1, t2; create table t1 (a int not null); drop procedure if exists p1; @@ -1367,9 +1367,10 @@ WHERE c IN (SELECT t4.b FROM t4 JOIN t2); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Using where -1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using join buffer (flat, BNL join) -1 PRIMARY t4 ALL NULL NULL NULL NULL 2 Using where; FirstMatch(t3); Using join buffer (incremental, BNL join) +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 1 PRIMARY t1 ref b b 4 test.t3.b 1 Using index +2 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 +2 MATERIALIZED t4 ALL NULL NULL NULL NULL 2 Using join buffer (flat, BNL join) SELECT t3.* FROM t1 JOIN t3 ON t3.b = t1.b WHERE c IN (SELECT t4.b FROM t4 JOIN t2); b c @@ -1395,9 +1396,10 @@ SELECT * FROM t1, t2 WHERE b IN (SELECT a FROM t3, t4 WHERE b = pk); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t2 ALL NULL NULL NULL NULL 1 -1 PRIMARY t4 ALL NULL NULL NULL NULL 1 Using where -1 PRIMARY t3 eq_ref PRIMARY PRIMARY 4 test.t4.b 1 Using where; FirstMatch(t2) +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using join buffer (flat, BNL join) +2 MATERIALIZED t4 ALL NULL NULL NULL NULL 1 Using where +2 MATERIALIZED t3 eq_ref PRIMARY PRIMARY 4 test.t4.b 1 SELECT * FROM t1, t2 WHERE b IN (SELECT a FROM t3, t4 WHERE b = pk); pk a b 1 6 8 @@ -1436,10 +1438,6 @@ set optimizer_switch=@tmp_optimizer_switch; set join_cache_level=default; DROP TABLE t1,t2; -set join_cache_level=default; -show variables like 'join_cache_level'; -Variable_name Value -join_cache_level 2 set @@optimizer_switch=@save_optimizer_switch_jcl6; set @optimizer_switch_for_subselect_sj2_test=NULL; set @join_cache_level_subselect_sj2_test=NULL; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_sj2_jcl6.test mariadb-10.3-10.3.20/mysql-test/main/subselect_sj2_jcl6.test --- mariadb-10.3-10.3.17/mysql-test/main/subselect_sj2_jcl6.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_sj2_jcl6.test 2019-11-06 16:01:57.000000000 +0000 @@ -103,10 +103,6 @@ DROP TABLE t1,t2; - -set join_cache_level=default; -show variables like 'join_cache_level'; - set @@optimizer_switch=@save_optimizer_switch_jcl6; set @optimizer_switch_for_subselect_sj2_test=NULL; set @join_cache_level_subselect_sj2_test=NULL; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_sj2_mat.result mariadb-10.3-10.3.20/mysql-test/main/subselect_sj2_mat.result --- mariadb-10.3-10.3.17/mysql-test/main/subselect_sj2_mat.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_sj2_mat.result 2019-11-06 16:01:57.000000000 +0000 @@ -120,8 +120,9 @@ set max_heap_table_size= @save_max_heap_table_size; explain select * from t1 where a in (select b from t2); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where -1 PRIMARY t2 ref b b 5 test.t1.a 2 Using index; FirstMatch(t1) +1 PRIMARY t1 ALL NULL NULL NULL NULL 3 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 +2 MATERIALIZED t2 index b b 5 NULL 20 Using index select * from t1; a b 1 1 @@ -148,8 +149,8 @@ a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z from t1 ot where a in (select a from t2 it); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 22 -1 PRIMARY ot ALL NULL NULL NULL NULL 32 Using where; Using join buffer (flat, BNL join) +1 PRIMARY ot ALL NULL NULL NULL NULL 32 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED it ALL NULL NULL NULL NULL 22 select a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z @@ -216,8 +217,8 @@ a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z from t1 ot where a in (select a from t2 it); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 22 -1 PRIMARY ot ALL NULL NULL NULL NULL 52 Using where; Using join buffer (flat, BNL join) +1 PRIMARY ot ALL NULL NULL NULL NULL 52 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED it ALL NULL NULL NULL NULL 22 select a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z @@ -620,7 +621,7 @@ set join_buffer_size=1; select * from t2 where filler1 in ( select a from t1); a b c filler1 -set join_buffer_size=default; +set join_buffer_size=@save_join_buffer_size; drop table t1, t2; create table t1 (a int not null); drop procedure if exists p1; @@ -747,9 +748,10 @@ c1 in (select convert(c6,char(1)) from t2); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where -1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t2) +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 Using where 1 PRIMARY t2 ALL NULL NULL NULL NULL 1 -1 PRIMARY t3 ALL NULL NULL NULL NULL 2 FirstMatch(t2) +1 PRIMARY t3 ALL NULL NULL NULL NULL 2 FirstMatch((sj-nest)) +3 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 drop table t2, t3; # # BUG#761598: InnoDB: Error: row_search_for_mysql() is called without ha_innobase::external_lock() in maria-5.3 @@ -1596,12 +1598,12 @@ EXPLAIN EXTENDED SELECT * FROM t1 WHERE i1 IN (SELECT i3 FROM t2, t3 WHERE i3 = i2 OR 1=2); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 100.00 -1 PRIMARY t1 hash_ALL NULL #hash#$hj 5 test.t2.i2 5 100.00 Using where; Using join buffer (flat, BNLH join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 5 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 100.00 Using where 2 MATERIALIZED t3 hash_ALL NULL #hash#$hj 5 test.t2.i2 3 100.00 Using where; Using join buffer (flat, BNLH join) Warnings: -Note 1003 select `test`.`t1`.`i1` AS `i1` from `test`.`t1` semi join (`test`.`t2` join `test`.`t3`) where `test`.`t3`.`i3` = `test`.`t2`.`i2` and `test`.`t1`.`i1` = `test`.`t2`.`i2` +Note 1003 select `test`.`t1`.`i1` AS `i1` from `test`.`t1` semi join (`test`.`t2` join `test`.`t3`) where `test`.`t3`.`i3` = `test`.`t2`.`i2` SELECT * FROM t1 WHERE i1 IN (SELECT i3 FROM t2, t3 WHERE i3 = i2 OR 1=2); i1 7 @@ -1609,12 +1611,12 @@ SELECT * FROM t1 WHERE i1 IN (SELECT i3 FROM t2, t3 WHERE i3 > 0 AND i3 = i2 OR 1=2); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 100.00 -1 PRIMARY t1 hash_ALL NULL #hash#$hj 5 test.t2.i2 5 100.00 Using where; Using join buffer (flat, BNLH join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 5 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 100.00 Using where 2 MATERIALIZED t3 hash_ALL NULL #hash#$hj 5 test.t2.i2 3 100.00 Using where; Using join buffer (flat, BNLH join) Warnings: -Note 1003 select `test`.`t1`.`i1` AS `i1` from `test`.`t1` semi join (`test`.`t2` join `test`.`t3`) where `test`.`t3`.`i3` = `test`.`t2`.`i2` and `test`.`t1`.`i1` = `test`.`t2`.`i2` and `test`.`t3`.`i3` > 0 +Note 1003 select `test`.`t1`.`i1` AS `i1` from `test`.`t1` semi join (`test`.`t2` join `test`.`t3`) where `test`.`t3`.`i3` = `test`.`t2`.`i2` and `test`.`t3`.`i3` > 0 SELECT * FROM t1 WHERE i1 IN (SELECT i3 FROM t2, t3 WHERE i3 > 0 AND i3 = i2 OR 1=2); i1 @@ -1702,8 +1704,8 @@ ); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t index PRIMARY PRIMARY 4 NULL 13 Using where; Using index -2 MATERIALIZED ALL distinct_key NULL NULL NULL 8 -2 MATERIALIZED A ALL PRIMARY NULL NULL NULL 13 Using where; Using join buffer (flat, BNL join) +2 MATERIALIZED A ALL PRIMARY NULL NULL NULL 13 +2 MATERIALIZED eq_ref distinct_key distinct_key 67 func 1 3 MATERIALIZED B ALL PRIMARY NULL NULL NULL 13 Using where SELECT SQL_NO_CACHE t.id FROM t1 t @@ -1853,18 +1855,18 @@ AND t3.id_product IN (SELECT id_product FROM t2 t2_4 WHERE t2_4.id_t2 = 34 OR t2_4.id_t2 = 23) AND t3.id_product IN (SELECT id_product FROM t2 t2_5 WHERE t2_5.id_t2 = 29 OR t2_5.id_t2 = 28 OR t2_5.id_t2 = 26); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 index NULL PRIMARY 8 NULL 73 Using index -1 PRIMARY t3 eq_ref PRIMARY PRIMARY 4 test.t1.id_product 1 Using index +1 PRIMARY ALL distinct_key NULL NULL NULL 12 +1 PRIMARY t3 eq_ref PRIMARY PRIMARY 4 test.t2_2.id_product 1 Using where; Using index 1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 Using where 1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 Using where -1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 Using where -1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 Using where -1 PRIMARY t4 eq_ref PRIMARY PRIMARY 8 test.t1.id_product,const 1 Using where; Using index 1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 Using where 1 PRIMARY t5 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t4 eq_ref PRIMARY PRIMARY 8 test.t3.id_product,const 1 Using where; Using index +1 PRIMARY t1 index NULL PRIMARY 8 NULL 73 Using where; Using index; Using join buffer (flat, BNL join) +3 MATERIALIZED t2_2 ref id_t2,id_product id_t2 5 const 12 Using where 5 MATERIALIZED t2_4 range id_t2,id_product id_t2 5 NULL 18 Using index condition; Using where 4 MATERIALIZED t2_3 range id_t2,id_product id_t2 5 NULL 32 Using index condition; Using where -3 MATERIALIZED t2_2 ref id_t2,id_product id_t2 5 const 12 -2 MATERIALIZED t2_1 ref id_t2,id_product id_t2 5 const 50 6 MATERIALIZED t2_5 range id_t2,id_product id_t2 5 NULL 30 Using index condition; Using where +2 MATERIALIZED t2_1 ref id_t2,id_product id_t2 5 const 50 drop table t1,t2,t3,t4,t5; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_sj2_mat.test mariadb-10.3-10.3.20/mysql-test/main/subselect_sj2_mat.test --- mariadb-10.3-10.3.17/mysql-test/main/subselect_sj2_mat.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_sj2_mat.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,8 @@ # # Run subselect_sj2.test with subquery materialization. # +--source include/default_optimizer_switch.inc + set optimizer_switch='materialization=on'; set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_sj2.result mariadb-10.3-10.3.20/mysql-test/main/subselect_sj2.result --- mariadb-10.3-10.3.17/mysql-test/main/subselect_sj2.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_sj2.result 2019-11-06 16:01:57.000000000 +0000 @@ -118,8 +118,9 @@ set max_heap_table_size= @save_max_heap_table_size; explain select * from t1 where a in (select b from t2); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where -1 PRIMARY t2 ref b b 5 test.t1.a 2 Using index; FirstMatch(t1) +1 PRIMARY t1 ALL NULL NULL NULL NULL 3 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 +2 MATERIALIZED t2 index b b 5 NULL 20 Using index select * from t1; a b 1 1 @@ -146,8 +147,8 @@ a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z from t1 ot where a in (select a from t2 it); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 22 -1 PRIMARY ot ALL NULL NULL NULL NULL 32 Using where; Using join buffer (flat, BNL join) +1 PRIMARY ot ALL NULL NULL NULL NULL 32 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED it ALL NULL NULL NULL NULL 22 select a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z @@ -214,8 +215,8 @@ a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z from t1 ot where a in (select a from t2 it); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 22 -1 PRIMARY ot ALL NULL NULL NULL NULL 52 Using where; Using join buffer (flat, BNL join) +1 PRIMARY ot ALL NULL NULL NULL NULL 52 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED it ALL NULL NULL NULL NULL 22 select a, mid(filler1, 1,10), length(filler1)=length(filler2) as Z @@ -618,7 +619,7 @@ set join_buffer_size=1; select * from t2 where filler1 in ( select a from t1); a b c filler1 -set join_buffer_size=default; +set join_buffer_size=@save_join_buffer_size; drop table t1, t2; create table t1 (a int not null); drop procedure if exists p1; @@ -745,9 +746,10 @@ c1 in (select convert(c6,char(1)) from t2); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where -1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; FirstMatch(t2) +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 Using where 1 PRIMARY t2 ALL NULL NULL NULL NULL 1 -1 PRIMARY t3 ALL NULL NULL NULL NULL 2 FirstMatch(t2) +1 PRIMARY t3 ALL NULL NULL NULL NULL 2 FirstMatch((sj-nest)) +3 MATERIALIZED t2 ALL NULL NULL NULL NULL 1 drop table t2, t3; # # BUG#761598: InnoDB: Error: row_search_for_mysql() is called without ha_innobase::external_lock() in maria-5.3 diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_sj2.test mariadb-10.3-10.3.20/mysql-test/main/subselect_sj2.test --- mariadb-10.3-10.3.17/mysql-test/main/subselect_sj2.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_sj2.test 2019-11-06 16:01:57.000000000 +0000 @@ -794,9 +794,9 @@ --enable_warnings select * from t2 where filler1 in ( select a from t1); -set join_buffer_size=default; +set join_buffer_size=@save_join_buffer_size; -drop table t1, t2; +drop table t1, t2; # # BUG#33509: Server crashes with number of recursive subqueries=61 # (the query may or may not fail with an error so we're using it with SP diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_sj_jcl6.result mariadb-10.3-10.3.20/mysql-test/main/subselect_sj_jcl6.result --- mariadb-10.3-10.3.17/mysql-test/main/subselect_sj_jcl6.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_sj_jcl6.result 2019-11-06 16:01:57.000000000 +0000 @@ -5,10 +5,8 @@ set @@optimizer_switch='outer_join_with_cache=on'; set @@optimizer_switch='join_cache_hashed=off'; set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +set @save_join_cache_level=@@join_cache_level; set join_cache_level=6; -show variables like 'join_cache_level'; -Variable_name Value -join_cache_level 6 set @optimizer_switch_for_subselect_sj_test=@@optimizer_switch; set @join_cache_level_for_subselect_sj_test=@@join_cache_level; drop table if exists t0, t1, t2, t3, t4, t5, t10, t11, t12; @@ -20,7 +18,7 @@ SET optimizer_switch=ifnull(@optimizer_switch_for_subselect_sj_test,'outer_join_with_cache=off'); SET optimizer_switch=ifnull(@optimizer_switch_for_subselect_sj_test,'semijoin_with_cache=off'); set join_cache_level=@join_cache_level_for_subselect_sj_test; -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; create table t0 (a int); insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); create table t1(a int, b int); @@ -107,6 +105,7 @@ 2 MATERIALIZED t10 index PRIMARY PRIMARY 4 NULL 10 100.00 Using index Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`A` AS `A`,`test`.`t1`.`B` AS `B`,`test`.`t2`.`A` AS `A`,`test`.`t2`.`B` AS `B` from `test`.`t1` left join `test`.`t2` on(`test`.`t2`.`A` = `test`.`t1`.`A` And (`test`.`t1`.`A`,`test`.`t1`.`A` in ( (/* select#2 */ select `test`.`t10`.`pk` from `test`.`t10` ), (`test`.`t1`.`A` in on distinct_key where `test`.`t1`.`A` = ``.`pk`)))) where 1 +set @save_join_buffer_size=@@join_buffer_size; set join_buffer_size=8*1024; we shouldn't flatten if we're going to get a join of > MAX_TABLES. explain select * from @@ -199,7 +198,7 @@ 0 0 0 0 1 1 1 1 2 2 2 2 -set join_buffer_size=default; +set join_buffer_size=@save_join_buffer_size; prepare s1 from ' select * from t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10)) @@ -346,7 +345,7 @@ INSERT INTO WORKS VALUES ('E4','P2',20); INSERT INTO WORKS VALUES ('E4','P4',40); INSERT INTO WORKS VALUES ('E4','P5',80); -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@local_optimizer_switch; set optimizer_switch='materialization=off'; explain SELECT EMPNUM, EMPNAME FROM STAFF @@ -369,7 +368,7 @@ E2 Betty E3 Carmen E4 Don -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@local_optimizer_switch; drop table STAFF,WORKS,PROJ; # End of bug#45191 # @@ -457,7 +456,7 @@ drop table t1, t2; drop view v1; drop procedure p1; -set SESSION optimizer_switch=@save_optimizer_switch; +set SESSION optimizer_switch=@local_optimizer_switch; # End of bug#46744 Bug#46797 "Crash in fix_semijoin_strategies_for_picked_join_order @@ -608,7 +607,7 @@ DROP TABLE t1,t2; DROP VIEW v1,v2; DROP PROCEDURE p1; -set SESSION optimizer_switch=@save_optimizer_switch; +set SESSION optimizer_switch=@local_optimizer_switch; # End of BUG#48834 Bug#49097 subquery with view generates wrong result with @@ -742,8 +741,8 @@ WHERE int_nokey IN (SELECT it2.int_key FROM it1 LEFT JOIN it2 ON it2.datetime_key); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 11 -1 PRIMARY ot1 ALL NULL NULL NULL NULL 20 Using where; Using join buffer (flat, BNL join) +1 PRIMARY ot1 ALL NULL NULL NULL NULL 20 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED it1 index NULL int_key 4 NULL 2 Using index 2 MATERIALIZED it2 ALL int_key,datetime_key NULL NULL NULL 20 Using where; Using join buffer (flat, BNL join) DROP TABLE ot1, it1, it2; @@ -985,11 +984,11 @@ FROM t1 WHERE `varchar_nokey` < 'n' XOR `pk` ) ; id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 15 100.00 -1 PRIMARY t2 ALL NULL NULL NULL NULL 18 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t2 ALL NULL NULL NULL NULL 18 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 8 func,func 1 100.00 2 MATERIALIZED t1 ALL varchar_key NULL NULL NULL 15 100.00 Using where Warnings: -Note 1003 select `test`.`t2`.`varchar_nokey` AS `varchar_nokey` from `test`.`t2` semi join (`test`.`t1`) where `test`.`t1`.`varchar_nokey` = `test`.`t1`.`varchar_key` and `test`.`t2`.`varchar_nokey` = `test`.`t1`.`varchar_key` and (`test`.`t1`.`varchar_key` < 'n' xor `test`.`t1`.`pk`) +Note 1003 select `test`.`t2`.`varchar_nokey` AS `varchar_nokey` from `test`.`t2` semi join (`test`.`t1`) where `test`.`t1`.`varchar_nokey` = `test`.`t1`.`varchar_key` and (`test`.`t1`.`varchar_key` < 'n' xor `test`.`t1`.`pk`) SELECT varchar_nokey FROM t2 WHERE ( `varchar_nokey` , `varchar_nokey` ) IN ( @@ -1089,7 +1088,7 @@ # LPBUG#602574: RQG: sql_select.cc:5385: bool greedy_search(JOIN*, table_map, uint, # uint): Assertion `join->best_read < # -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimizer_switch=@@optimizer_switch; set optimizer_switch='materialization=off'; CREATE TABLE t1 ( varchar_key varchar(1) DEFAULT NULL, @@ -1123,7 +1122,7 @@ ) ); varchar_key -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimizer_switch; DROP TABLE t1, t2, t3; # # Bug#46692 "Crash occurring on queries with nested FROM subqueries @@ -1249,9 +1248,11 @@ # # BUG#53060: LooseScan semijoin strategy does not return all rows # -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimizer_switch=@@optimizer_switch; set optimizer_switch='semijoin=on,materialization=off'; set optimizer_switch='firstmatch=off,loosescan=on'; +set @tmp_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity; +set optimizer_use_condition_selectivity=1; CREATE TABLE t1 (i INTEGER); INSERT INTO t1 VALUES (1), (2), (3), (4), (5); CREATE TABLE t2 (i INTEGER, j INTEGER, KEY k(i, j)); @@ -1259,14 +1260,15 @@ EXPLAIN SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t2 index k k 10 NULL 4 Using where; Using index; LooseScan -1 PRIMARY t1 ALL NULL NULL NULL NULL 5 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 5 +1 PRIMARY t2 index k k 10 NULL 4 Using where; Using index; Start temporary; End temporary; Using join buffer (flat, BNL join) SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0); i 1 2 DROP TABLE t1, t2; -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimizer_switch; +set @@optimizer_use_condition_selectivity=@tmp_optimizer_use_condition_selectivity; # # BUG#49453: re-execution of prepared statement with view # and semijoin crashes @@ -1309,7 +1311,7 @@ insert into t1 values(1),(1); insert into t2 values(1),(1),(1),(1); insert into t3 values(2),(2); -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimizer_switch=@@optimizer_switch; set optimizer_switch='materialization=off'; set optimizer_switch='semijoin=off'; explain @@ -1333,7 +1335,7 @@ a 1 1 -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimizer_switch; drop table t1,t2,t3; # # Bug#55955: crash in MEMORY engine with IN(LEFT JOIN (JOIN)) @@ -1344,7 +1346,7 @@ INSERT INTO t1 VALUES(1),(1); INSERT INTO t2 VALUES(1),(1); INSERT INTO t3 VALUES(2),(2); -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimzer_switch=@@optimizer_switch; set optimizer_switch='semijoin=off,materialization=off'; EXPLAIN SELECT * FROM t1 @@ -1393,7 +1395,7 @@ a 1 1 -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimzer_switch; DROP TABLE t1,t2,t3; # # BUG#52329 - Wrong result: subquery materialization, IN, @@ -1411,7 +1413,7 @@ ('1 - 13', '2 - 23'); INSERT INTO t2b SELECT * FROM t2a; INSERT INTO t2c SELECT * FROM t2a; -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimzer_switch=@@optimizer_switch; set optimizer_switch='semijoin=off,materialization=on'; SELECT * FROM t1 WHERE (a1, a2) IN ( @@ -1433,7 +1435,7 @@ SELECT b1, b2 FROM t2c WHERE b1 > '0'); a1 a2 1 - 12 2 - 22 -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimzer_switch; DROP TABLE t1,t2a,t2b,t2c; # # Bug#57623: subquery within before insert trigger causes crash (sj=on) @@ -1446,7 +1448,7 @@ INSERT INTO ot2 VALUES(0),(2),(4),(6); INSERT INTO ot3 VALUES(0),(3),(6); INSERT INTO it1 VALUES(0),(1),(2),(3),(4),(5),(6),(7); -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimzer_switch=@@optimizer_switch; set optimizer_switch='semijoin=on'; set optimizer_switch='materialization=off'; explain SELECT * @@ -1550,7 +1552,7 @@ 5 NULL NULL 7 NULL NULL deallocate prepare s; -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimzer_switch; DROP TABLE ot1, ot2, ot3, it1; # # Bug#59919/11766739: Crash in tmp_table_param::init() with semijoin=on @@ -1563,7 +1565,7 @@ INSERT INTO t3 VALUES (1,1), (2,1), (5,4), (7,3), (8,2), (8,1), (7,3), (9,5), (4,3), (7,2), (7,7), (3,1), (5,8), (9,7); -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimzer_switch=@@optimizer_switch; set optimizer_switch='semijoin=off,materialization=on'; EXPLAIN SELECT * FROM t3 @@ -1601,7 +1603,7 @@ 2 1 8 1 3 1 -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimzer_switch; DROP TABLE t1, t2, t3 ; # # @@ -1770,8 +1772,8 @@ insert into t3 values('three'),( 'four'); explain select * from t3 where t3.b in (select t2.b from t1 left join t2 on t1.a=t2.a); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 -1 PRIMARY t3 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t3 ALL NULL NULL NULL NULL 8 +1 PRIMARY eq_ref distinct_key distinct_key 10 func 1 2 MATERIALIZED t1 ALL NULL NULL NULL NULL 2 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join) select * from t3 where t3.b in (select t2.b from t1 left join t2 on t1.a=t2.a); @@ -2509,8 +2511,8 @@ id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t3 system NULL NULL NULL NULL 1 1 PRIMARY ALL distinct_key NULL NULL NULL 1 -1 PRIMARY t1 ref a a 5 const 1 Using index -1 PRIMARY t2 ref a a 5 func 1 Using index +1 PRIMARY t2 ref a a 5 const 1 Using index +1 PRIMARY t1 ref a a 5 func 1 Using index 2 MATERIALIZED t4 ALL NULL NULL NULL NULL 0 SELECT * FROM t1, t2 WHERE t1.a = t2.a AND t2.a IN (SELECT b FROM t3 STRAIGHT_JOIN t4); @@ -2715,8 +2717,8 @@ 19 explain select * from t3 where a in (select kp1 from t1 where kp1<20); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; LooseScan -1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where +1 PRIMARY t1 ref kp1 kp1 5 test.t3.a 1 Using index; FirstMatch(t3) drop table t0,t1,t3; set optimizer_switch= @tmp_923246; # @@ -2932,8 +2934,8 @@ ); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t2 ALL NULL NULL NULL NULL 2 -1 PRIMARY alias1 index_merge PRIMARY,col_int_key,col_varchar_key PRIMARY,col_varchar_key 4,4 NULL 2 Using sort_union(PRIMARY,col_varchar_key); Using where -1 PRIMARY alias2 ALL col_int_key NULL NULL NULL 12 Range checked for each record (index map: 0x2); FirstMatch(t2) +1 PRIMARY alias1 index_merge PRIMARY,col_int_key,col_varchar_key PRIMARY,col_varchar_key 4,4 NULL 2 Using sort_union(PRIMARY,col_varchar_key); Using where; Start temporary; Using join buffer (flat, BNL join) +1 PRIMARY alias2 ALL col_int_key NULL NULL NULL 12 Range checked for each record (index map: 0x2); End temporary SELECT * FROM t2 WHERE (field1) IN (SELECT alias1.col_varchar_nokey AS field1 @@ -3051,7 +3053,7 @@ SET @tmp_mdev5059=@@join_cache_level; SET join_cache_level = 3; set @tmp_os_mdev5059= @@optimizer_switch; -set optimizer_switch=default; +set optimizer_switch=@local_optimizer_switch; CREATE TABLE t1 (pk1 INT PRIMARY KEY, i1 INT) ENGINE=MyISAM; INSERT INTO t1 VALUES (1,4),(2,5); CREATE TABLE t2 (i2 INT, c2 CHAR(1)) ENGINE=MyISAM; @@ -3268,7 +3270,56 @@ create table t2 (a2 varchar(25)) ; insert into t1 select 'xxx' from dual where 'xxx' in (select a2 from t2); drop table t1,t2; +# +# MDEV-13172: Wrong result / SELECT ... WHERE EXISTS ... (with UNIQUE Key) +# +CREATE TABLE `t1` ( +`Id` int(11) NOT NULL, +PRIMARY KEY (`Id`) +); +INSERT INTO `t1` (`Id`) VALUES (1); +CREATE TABLE `t2` ( +`t1_Id` int(11) NOT NULL DEFAULT 0, +`col1` int(11) DEFAULT NULL, +UNIQUE KEY `col1` (`col1`) +); +INSERT INTO `t2` (`t1_Id`, `col1`) VALUES (1, NULL), (1, NULL); +SELECT Id FROM t1 WHERE Id in (SELECT t1_Id FROM t2 WHERE t2.col1 IS NULL); +Id +1 +explain extended +SELECT Id FROM t1 WHERE Id in (SELECT t1_Id FROM t2 WHERE t2.col1 IS NULL); +id select_type table type possible_keys key key_len ref rows filtered Extra +1 PRIMARY t1 system PRIMARY NULL NULL NULL 1 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 +2 MATERIALIZED t2 ref col1 col1 5 const 1 100.00 Using index condition; Using where +Warnings: +Note 1003 select 1 AS `Id` from (`test`.`t2`) where `test`.`t2`.`t1_Id` = 1 and `test`.`t2`.`col1` is null +DROP TABLE t1, t2; # End of 5.5 test +# +# MDEV-20109: Optimizer ignores distinct key created for materialized +# semi-join subquery when searching for best execution plan +# +create table t1(a int); +insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t2(a int); +insert into t2 select A.a + B.a* 10 + C.a * 100 from t1 A, t1 B, t1 C; +create table t3 (a int); +create table t4 (a int); +insert into t3 select A.a +1000*B.a from t2 A, t1 B; +insert into t4 select floor(rand()*1000) from t2 limit 500; +# The following must not use this query plan that does a cross join: +# | 1 | PRIMARY | | ALL | distinct_key | ... | 500 | | +# | 1 | PRIMARY | t3 | ALL | NULL | ... | 10000 | Using where; Using join buffer (flat, BNL join) | +# +# Instead, it should use eq_ref on the materialized table. +explain select * from t3 where a in (select a from t4); +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t3 ALL NULL NULL NULL NULL 10000 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 +2 MATERIALIZED t4 ALL NULL NULL NULL NULL 500 +drop table t1, t2, t3, t4; set optimizer_switch=@subselect_sj_tmp; # # BUG#49129: Wrong result with IN-subquery with join_cache_level=6 and firstmatch=off @@ -3476,8 +3527,8 @@ SELECT a FROM t1 t WHERE a IN (SELECT b FROM t1, t2 WHERE b = a) GROUP BY a HAVING a != 'z'; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t index idx_a idx_a 4 NULL 3 Using index -1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 +1 PRIMARY ALL distinct_key NULL NULL NULL 2 Using temporary; Using filesort +1 PRIMARY t ref idx_a idx_a 4 test.t2.b 2 Using index 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where 2 MATERIALIZED t1 ref idx_a idx_a 4 test.t2.b 2 Using index SELECT a FROM t1 t WHERE a IN (SELECT b FROM t1, t2 WHERE b = a) @@ -3490,8 +3541,8 @@ SELECT a FROM t1 t WHERE a IN (SELECT b FROM t1, t2 WHERE b = a) GROUP BY a HAVING a != 'z'; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t index idx_a idx_a 4 NULL 3 Using index -1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 +1 PRIMARY ALL distinct_key NULL NULL NULL 2 Using temporary; Using filesort +1 PRIMARY t ref idx_a idx_a 4 test.t2.b 2 Using index 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where 2 MATERIALIZED t1 ref idx_a idx_a 4 test.t2.b 2 Using index SELECT a FROM t1 t WHERE a IN (SELECT b FROM t1, t2 WHERE b = a) @@ -3503,10 +3554,7 @@ set join_cache_level=@tmp_join_cache_level; DROP TABLE t1,t2; # End -set join_cache_level=default; -show variables like 'join_cache_level'; -Variable_name Value -join_cache_level 2 +set join_cache_level=@save_join_cache_level; set @@optimizer_switch=@save_optimizer_switch_jcl6; set @optimizer_switch_for_subselect_sj_test=NULL; set @join_cache_level_subselect_sj_test=NULL; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_sj_jcl6.test mariadb-10.3-10.3.20/mysql-test/main/subselect_sj_jcl6.test --- mariadb-10.3-10.3.17/mysql-test/main/subselect_sj_jcl6.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_sj_jcl6.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,7 @@ # # Run subselect_sj.test with BKA enabled # +--source include/default_optimizer_switch.inc set @save_optimizer_switch_jcl6=@@optimizer_switch; set @@optimizer_switch='optimize_join_buffer_size=on'; @@ -9,9 +10,8 @@ set @@optimizer_switch='outer_join_with_cache=on'; set @@optimizer_switch='join_cache_hashed=off'; set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; - +set @save_join_cache_level=@@join_cache_level; set join_cache_level=6; -show variables like 'join_cache_level'; set @optimizer_switch_for_subselect_sj_test=@@optimizer_switch; set @join_cache_level_for_subselect_sj_test=@@join_cache_level; @@ -208,9 +208,7 @@ --echo # End -set join_cache_level=default; -show variables like 'join_cache_level'; - +set join_cache_level=@save_join_cache_level; set @@optimizer_switch=@save_optimizer_switch_jcl6; set @optimizer_switch_for_subselect_sj_test=NULL; set @join_cache_level_subselect_sj_test=NULL; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_sj_mat.result mariadb-10.3-10.3.20/mysql-test/main/subselect_sj_mat.result --- mariadb-10.3-10.3.17/mysql-test/main/subselect_sj_mat.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_sj_mat.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,3 @@ -set @subselect_sj_mat_tmp= @@optimizer_switch; set optimizer_switch=ifnull(@subselect_mat_test_optimizer_switch_value, 'semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on'); set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; set @optimizer_switch_local_default= @@optimizer_switch; @@ -195,7 +194,7 @@ 1 - 02 2 - 02 select * from t1 where (a1, a2) in (select b1, min(b2) from t2i limit 1,1); ERROR 42000: This version of MariaDB doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; set @@optimizer_switch=@optimizer_switch_local_default; set @@optimizer_switch='semijoin=off'; prepare st1 from @@ -228,7 +227,7 @@ a1 a2 1 - 01 2 - 01 1 - 02 2 - 02 -set @@optimizer_switch=@save_optimizer_switch; +set @@optimizer_switch=@local_optimizer_switch; explain extended select * from t1 where (a1, a2) in (select b1, b2 from t2 order by b1, b2); id select_type table type possible_keys key key_len ref rows filtered Extra @@ -1100,11 +1099,11 @@ explain extended select a from t1 where a in (select c from t2 where d >= 20); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 6 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 7 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 7 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 6 100.00 Using where Warnings: -Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` semi join (`test`.`t2`) where `test`.`t1`.`a` = `test`.`t2`.`c` and `test`.`t2`.`d` >= 20 +Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` semi join (`test`.`t2`) where `test`.`t2`.`d` >= 20 select a from t1 where a in (select c from t2 where d >= 20); a 2 @@ -1221,7 +1220,7 @@ select min(a1) from t1 where 7 in (select max(b1) from t2 group by b1); min(a1) NULL -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; set @@optimizer_switch=@optimizer_switch_local_default; set @@optimizer_switch='materialization=off,in_to_exists=on'; explain select min(a1) from t1 where 7 in (select max(b1) from t2 group by b1); @@ -1257,7 +1256,7 @@ select min(a1) from t1 where 7 in (select b1 from t2) or 2> 4; min(a1) NULL -set @@optimizer_switch= @save_optimizer_switch; +set @@optimizer_switch= @local_optimizer_switch; drop table t1,t2; create table t1 (a char(2), b varchar(10)); insert into t1 values ('a', 'aaa'); @@ -1509,18 +1508,18 @@ CREATE TABLE t2 LIKE t1; INSERT INTO t2 VALUES (1, 1.789); INSERT INTO t2 VALUES (13, 1.454); -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; set @@optimizer_switch=@optimizer_switch_local_default; SET @@optimizer_switch='semijoin=on,materialization=on'; EXPLAIN SELECT COUNT(*) FROM t1 WHERE (f1,f2) IN (SELECT f1,f2 FROM t2); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 -1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 3 +1 PRIMARY eq_ref distinct_key distinct_key 7 func,func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 SELECT COUNT(*) FROM t1 WHERE (f1,f2) IN (SELECT f1,f2 FROM t2); COUNT(*) 2 -set @@optimizer_switch= @save_optimizer_switch; +set @@optimizer_switch= @local_optimizer_switch; DROP TABLE t1, t2; CREATE TABLE t1 ( pk int, @@ -1533,7 +1532,7 @@ INSERT INTO t1 VALUES (1,'o','ffff','ffff','ffoo'),(2,'f','ffff','ffff','ffff'); CREATE TABLE t2 LIKE t1; INSERT INTO t2 VALUES (1,'i','iiii','iiii','iiii'),(2,'f','ffff','ffff','ffff'); -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; set @@optimizer_switch=@optimizer_switch_local_default; SET @@optimizer_switch='semijoin=on,materialization=on'; EXPLAIN SELECT pk FROM t1 WHERE (a) IN (SELECT a FROM t2 WHERE pk > 0); @@ -1548,7 +1547,7 @@ pk 2 DROP TABLE t1, t2; -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@local_optimizer_switch; # # BUG#50019: Wrong result for IN-subquery with materialization # @@ -1564,7 +1563,7 @@ 2 3 4 -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; set session optimizer_switch='materialization=off,in_to_exists=on'; select * from t1 where t1.i in (select t2.i from t2 join t3 where t2.i + t3.i = 5); i @@ -1572,7 +1571,7 @@ 3 2 1 -set session optimizer_switch=@save_optimizer_switch; +set session optimizer_switch=@local_optimizer_switch; drop table t1, t2, t3; create table t0 (a int); insert into t0 values (0),(1),(2); @@ -1949,7 +1948,7 @@ # # BUG#939009: Crash with aggregate function in IN subquery # -SET @save_optimizer_switch=@@optimizer_switch; +SET @local_optimizer_switch=@@optimizer_switch; SET optimizer_switch='materialization=on,semijoin=on'; CREATE TABLE t1 (a int, b int); INSERT INTO t1 VALUES (7,1), (4,2), (7,7); @@ -1978,7 +1977,7 @@ SELECT * FROM t1 WHERE a IN (SELECT MAX(c) FROM t2 WHERE c < 4) AND b=7 AND (a IS NULL OR a=b); a b -SET optimizer_switch=@save_optimizer_switch; +SET optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2; # # BUG#946055: Crash with semijoin IN subquery when hash join is used @@ -1989,8 +1988,7 @@ INSERT INTO t2 VALUES (4,2,'v','v'), (6,1,'v','v'), (0,5,'x','x'), (7,1,'x','x'), (7,3,'i','i'), (7,1,'e','e'), (1,4,'p','p'), (1,2,'j','j'); -SET @save_optimizer_switch=@@optimizer_switch; -SET @save_join_cache_level=@@join_cache_level; +SET @local_optimizer_switch=@@optimizer_switch; SET join_cache_level=2; EXPLAIN SELECT a, c FROM t1, t2 @@ -2030,7 +2028,7 @@ 7 1 7 1 7 1 -SET optimizer_switch=@save_optimizer_switch; +SET optimizer_switch=@local_optimizer_switch; SET join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; # @@ -2083,21 +2081,21 @@ delete t2 from t2 where a_id in (select * from (select t1.id from t1 limit 2) as x); drop table t1,t2; # This must be at the end: -set optimizer_switch=@subselect_sj_mat_tmp; +set optimizer_switch=@save_optimizer_switch; set join_cache_level=@save_join_cache_level; # # MDEV-4908: Assertion `((Item_cond *) cond)->functype() == # ((Item_cond *) new_item)->functype()' fails on a query with # IN and equal conditions, AND/OR, materialization+semijoin # -SET @save_optimizer_switch=@@optimizer_switch; +SET @local_optimizer_switch=@@optimizer_switch; SET optimizer_switch = 'materialization=on,semijoin=on'; CREATE TABLE t1 (pk INT, a INT, b INT, PRIMARY KEY(pk)) ENGINE=MyISAM; INSERT INTO t1 VALUES (1,3,5),(2,4,6); SELECT * FROM t1 WHERE 8 IN ( SELECT MIN(pk) FROM t1 ) AND ( pk = a OR pk = b ); pk a b drop table t1; -SET optimizer_switch=@save_optimizer_switch; +SET optimizer_switch=@local_optimizer_switch; # # MDEV-5011: ERROR Plugin 'MEMORY' has ref_count=1 after shutdown for SJM queries # @@ -2243,7 +2241,7 @@ WHERE sq1.`pk` IN ( SELECT f1 FROM t1 ) AND sq2.f1 = sq1.f1 ); f2 foo -set @save_optimizer_switch= @@optimizer_switch; +set @local_optimizer_switch= @@optimizer_switch; set optimizer_switch='exists_to_in=off'; EXPLAIN SELECT sq1.f2 FROM t1 AS sq1 @@ -2261,7 +2259,7 @@ WHERE sq1.`pk` IN ( SELECT f1 FROM t1 ) AND sq2.f1 = sq1.f1 ); f2 foo -set optimizer_switch= @save_optimizer_switch; +set optimizer_switch= @local_optimizer_switch; DROP TABLE t1; # # MDEV-12145: IN subquery used in WHERE of EXISTS subquery @@ -2272,7 +2270,7 @@ INSERT INTO t2 VALUES (8),(7),(1); CREATE TABLE t3 (f3 INT, i3 INT, KEY(i3)) ENGINE=MyISAM; INSERT INTO t3 VALUES (8,0),(6,3),(2,8),(3,8),(1,6),(0,0),(1,0),(1,5); -set @save_optimizer_switch= @@optimizer_switch; +set @local_optimizer_switch= @@optimizer_switch; set optimizer_switch='exists_to_in=off'; SELECT * FROM t1 WHERE EXISTS ( SELECT * FROM t2, t3 @@ -2299,7 +2297,7 @@ WHERE i3 = i2 AND f1 IN ( SELECT f3 FROM t3 ) ); f1 6 -set optimizer_switch= @save_optimizer_switch; +set optimizer_switch= @local_optimizer_switch; DROP TABLE t1,t2,t3; # # MDEV-9686: IN subquery used in WHERE of a subquery from select list @@ -2331,7 +2329,7 @@ Note 1276 Field or reference 'test.t1.pk' of SELECT #2 was resolved in SELECT #1 Note 1003 /* select#1 */ select `test`.`t1`.`pk` AS `pk`,`test`.`t1`.`f1` AS `f1`,<`test`.`t1`.`pk`>((/* select#2 */ select count(0) from `test`.`t2` semi join (`test`.`t2`) where `test`.`t1`.`pk` = `test`.`t2`.`f2`)) AS `sq` from `test`.`t1` # this checks the result set above -set @save_optimizer_switch= @@optimizer_switch; +set @local_optimizer_switch= @@optimizer_switch; set optimizer_switch= 'materialization=off,semijoin=off'; SELECT pk, f1, ( SELECT COUNT(*) FROM t2 WHERE t1.pk IN ( SELECT f2 FROM t2 ) ) AS sq FROM t1; @@ -2341,12 +2339,12 @@ 3 3 5 4 6 5 5 3 5 -set optimizer_switch= @save_optimizer_switch; +set optimizer_switch= @local_optimizer_switch; DROP TABLE t1,t2; # # mdev-12838: scan of materialized of semi-join subquery in join # -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; CREATE TABLE t1 ( dispatch_group varchar(32), assignment_group varchar(32), @@ -2430,7 +2428,7 @@ 7b10fd2637232000158bbfc8bcbe5d30 ebb4620037332000158bbfc8bcbe5d89 DROP TABLE t1,t2,t3; -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@local_optimizer_switch; # # MDEV-16751: Server crashes in st_join_table::cleanup or # TABLE_LIST::is_with_table_recursive_reference with join_cache_level>2 @@ -2444,8 +2442,8 @@ explain SELECT 1 FROM t1 where t1.id IN (SELECT t2.i1 FROM t2 WHERE t2.i1 = t2.i2); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 hash_ALL NULL #hash#$hj 4 test.t2.i1 9 Using where; Using join buffer (flat, BNLH join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 9 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 Using where SELECT 1 FROM t1 where t1.id IN (SELECT t2.i1 FROM t2 WHERE t2.i1 = t2.i2); 1 @@ -2457,8 +2455,8 @@ explain SELECT 1 FROM t1 where t1.id IN (SELECT t2.i1 FROM t2 WHERE t2.i1 = t2.i2); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ref id id 4 test.t2.i1 2 Using index +1 PRIMARY t1 index id id 4 NULL 9 Using index +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 Using where SELECT 1 FROM t1 where t1.id IN (SELECT t2.i1 FROM t2 WHERE t2.i1 = t2.i2); 1 @@ -2493,7 +2491,7 @@ 4189 8732 5 -set @save_optimizer_switch= @@optimizer_switch; +set @local_optimizer_switch= @@optimizer_switch; SET optimizer_switch='materialization=off'; SELECT t1.a FROM t1 WHERE t1.a IN (SELECT t2.a FROM t2 WHERE t2.b IN (SELECT t3.b FROM t3 WHERE t3.c= 27)) LIMIT 5; @@ -2505,7 +2503,7 @@ a 5 drop procedure prepare_data; -set @@optimizer_switch= @save_optimizer_switch; +set @@optimizer_switch= @local_optimizer_switch; drop table t1,t2,t3; CREATE TABLE t1 ( id int NOT NULL, key(id)); INSERT INTO t1 VALUES (11),(12),(13),(14),(15),(16),(17),(18),(19); @@ -2514,8 +2512,8 @@ CREATE VIEW v1 AS SELECT t2.i1 FROM t2 where t2.i1 = t2.i2; explain SELECT 1 FROM t1 where t1.id IN (SELECT v1.i1 from v1); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ref id id 4 test.t2.i1 2 Using index +1 PRIMARY t1 index id id 4 NULL 9 Using index +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 3 Using where SELECT 1 FROM t1 where t1.id IN (SELECT v1.i1 from v1); 1 diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_sj_mat.test mariadb-10.3-10.3.20/mysql-test/main/subselect_sj_mat.test --- mariadb-10.3-10.3.17/mysql-test/main/subselect_sj_mat.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_sj_mat.test 2019-11-06 16:01:57.000000000 +0000 @@ -3,7 +3,8 @@ # (WL#1110: Subquery optimization: materialization) # -set @subselect_sj_mat_tmp= @@optimizer_switch; +--source include/default_optimizer_switch.inc + set optimizer_switch=ifnull(@subselect_mat_test_optimizer_switch_value, 'semijoin=on,firstmatch=on,loosescan=on,semijoin_with_cache=on'); set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; set @optimizer_switch_local_default= @@optimizer_switch; @@ -127,7 +128,7 @@ # test re-optimization/re-execution with different execution methods # prepare once, exec with different modes -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; set @@optimizer_switch=@optimizer_switch_local_default; set @@optimizer_switch='semijoin=off'; prepare st1 from @@ -149,7 +150,7 @@ set @@optimizer_switch=@optimizer_switch_local_default; set @@optimizer_switch='materialization=off,in_to_exists=on'; execute st1; -set @@optimizer_switch=@save_optimizer_switch; +set @@optimizer_switch=@local_optimizer_switch; # materialize the result of ORDER BY # non-indexed fields @@ -838,7 +839,7 @@ explain select min(a1) from t1 where 7 in (select max(b1) from t2 group by b1); select min(a1) from t1 where 7 in (select max(b1) from t2 group by b1); # Query with group by, executed via IN=>EXISTS -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; set @@optimizer_switch=@optimizer_switch_local_default; set @@optimizer_switch='materialization=off,in_to_exists=on'; explain select min(a1) from t1 where 7 in (select max(b1) from t2 group by b1); @@ -860,7 +861,7 @@ -- echo # but when we go around MWL#90 code, the problem still shows up: explain select min(a1) from t1 where 7 in (select b1 from t2) or 2> 4; select min(a1) from t1 where 7 in (select b1 from t2) or 2> 4; -set @@optimizer_switch= @save_optimizer_switch; +set @@optimizer_switch= @local_optimizer_switch; drop table t1,t2; # @@ -1146,12 +1147,12 @@ INSERT INTO t2 VALUES (1, 1.789); INSERT INTO t2 VALUES (13, 1.454); -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; set @@optimizer_switch=@optimizer_switch_local_default; SET @@optimizer_switch='semijoin=on,materialization=on'; EXPLAIN SELECT COUNT(*) FROM t1 WHERE (f1,f2) IN (SELECT f1,f2 FROM t2); SELECT COUNT(*) FROM t1 WHERE (f1,f2) IN (SELECT f1,f2 FROM t2); -set @@optimizer_switch= @save_optimizer_switch; +set @@optimizer_switch= @local_optimizer_switch; DROP TABLE t1, t2; @@ -1171,14 +1172,14 @@ CREATE TABLE t2 LIKE t1; INSERT INTO t2 VALUES (1,'i','iiii','iiii','iiii'),(2,'f','ffff','ffff','ffff'); -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; set @@optimizer_switch=@optimizer_switch_local_default; SET @@optimizer_switch='semijoin=on,materialization=on'; EXPLAIN SELECT pk FROM t1 WHERE (a) IN (SELECT a FROM t2 WHERE pk > 0); SELECT pk FROM t1 WHERE (a) IN (SELECT a FROM t2 WHERE pk > 0); SELECT pk FROM t1 WHERE (b,c,d) IN (SELECT b,c,d FROM t2 WHERE pk > 0); DROP TABLE t1, t2; -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@local_optimizer_switch; --echo # --echo # BUG#50019: Wrong result for IN-subquery with materialization @@ -1190,10 +1191,10 @@ create table t3(i int); insert into t3 values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10); select * from t1 where t1.i in (select t2.i from t2 join t3 where t2.i + t3.i = 5); -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; set session optimizer_switch='materialization=off,in_to_exists=on'; select * from t1 where t1.i in (select t2.i from t2 join t3 where t2.i + t3.i = 5); -set session optimizer_switch=@save_optimizer_switch; +set session optimizer_switch=@local_optimizer_switch; drop table t1, t2, t3; # @@ -1579,7 +1580,7 @@ --echo # BUG#939009: Crash with aggregate function in IN subquery --echo # -SET @save_optimizer_switch=@@optimizer_switch; +SET @local_optimizer_switch=@@optimizer_switch; SET optimizer_switch='materialization=on,semijoin=on'; CREATE TABLE t1 (a int, b int); @@ -1600,7 +1601,7 @@ SELECT * FROM t1 WHERE a IN (SELECT MAX(c) FROM t2 WHERE c < 4) AND b=7 AND (a IS NULL OR a=b); -SET optimizer_switch=@save_optimizer_switch; +SET optimizer_switch=@local_optimizer_switch; DROP TABLE t1,t2; @@ -1617,8 +1618,7 @@ (4,2,'v','v'), (6,1,'v','v'), (0,5,'x','x'), (7,1,'x','x'), (7,3,'i','i'), (7,1,'e','e'), (1,4,'p','p'), (1,2,'j','j'); -SET @save_optimizer_switch=@@optimizer_switch; -SET @save_join_cache_level=@@join_cache_level; +SET @local_optimizer_switch=@@optimizer_switch; SET join_cache_level=2; EXPLAIN @@ -1639,7 +1639,7 @@ WHERE (a, c) IN (SELECT s1.b, s1.c FROM t2 AS s1, t2 AS s2 WHERE s2.d = s1.e AND s1.e = (SELECT MAX(e) FROM t2)); -SET optimizer_switch=@save_optimizer_switch; +SET optimizer_switch=@local_optimizer_switch; SET join_cache_level=@save_join_cache_level; DROP TABLE t1,t2; @@ -1699,7 +1699,7 @@ drop table t1,t2; --echo # This must be at the end: -set optimizer_switch=@subselect_sj_mat_tmp; +set optimizer_switch=@save_optimizer_switch; set join_cache_level=@save_join_cache_level; --echo # @@ -1709,7 +1709,7 @@ --echo # -SET @save_optimizer_switch=@@optimizer_switch; +SET @local_optimizer_switch=@@optimizer_switch; SET optimizer_switch = 'materialization=on,semijoin=on'; CREATE TABLE t1 (pk INT, a INT, b INT, PRIMARY KEY(pk)) ENGINE=MyISAM; @@ -1717,7 +1717,7 @@ SELECT * FROM t1 WHERE 8 IN ( SELECT MIN(pk) FROM t1 ) AND ( pk = a OR pk = b ); drop table t1; -SET optimizer_switch=@save_optimizer_switch; +SET optimizer_switch=@local_optimizer_switch; --echo # --echo # MDEV-5011: ERROR Plugin 'MEMORY' has ref_count=1 after shutdown for SJM queries @@ -1871,7 +1871,7 @@ WHERE EXISTS ( SELECT * FROM t1 AS sq2 WHERE sq1.`pk` IN ( SELECT f1 FROM t1 ) AND sq2.f1 = sq1.f1 ); -set @save_optimizer_switch= @@optimizer_switch; +set @local_optimizer_switch= @@optimizer_switch; set optimizer_switch='exists_to_in=off'; EXPLAIN @@ -1885,7 +1885,7 @@ WHERE EXISTS ( SELECT * FROM t1 AS sq2 WHERE sq1.`pk` IN ( SELECT f1 FROM t1 ) AND sq2.f1 = sq1.f1 ); -set optimizer_switch= @save_optimizer_switch; +set optimizer_switch= @local_optimizer_switch; DROP TABLE t1; @@ -1902,7 +1902,7 @@ CREATE TABLE t3 (f3 INT, i3 INT, KEY(i3)) ENGINE=MyISAM; INSERT INTO t3 VALUES (8,0),(6,3),(2,8),(3,8),(1,6),(0,0),(1,0),(1,5); -set @save_optimizer_switch= @@optimizer_switch; +set @local_optimizer_switch= @@optimizer_switch; set optimizer_switch='exists_to_in=off'; SELECT * FROM t1 @@ -1919,7 +1919,7 @@ WHERE EXISTS ( SELECT * FROM t2, t3 WHERE i3 = i2 AND f1 IN ( SELECT f3 FROM t3 ) ); -set optimizer_switch= @save_optimizer_switch; +set optimizer_switch= @local_optimizer_switch; DROP TABLE t1,t2,t3; @@ -1944,11 +1944,11 @@ WHERE t1.pk IN ( SELECT f2 FROM t2 ) ) AS sq FROM t1; --echo # this checks the result set above -set @save_optimizer_switch= @@optimizer_switch; +set @local_optimizer_switch= @@optimizer_switch; set optimizer_switch= 'materialization=off,semijoin=off'; SELECT pk, f1, ( SELECT COUNT(*) FROM t2 WHERE t1.pk IN ( SELECT f2 FROM t2 ) ) AS sq FROM t1; -set optimizer_switch= @save_optimizer_switch; +set optimizer_switch= @local_optimizer_switch; DROP TABLE t1,t2; @@ -1956,7 +1956,7 @@ --echo # mdev-12838: scan of materialized of semi-join subquery in join --echo # -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; CREATE TABLE t1 ( dispatch_group varchar(32), @@ -2157,7 +2157,7 @@ eval $q; DROP TABLE t1,t2,t3; -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@local_optimizer_switch; --echo # --echo # MDEV-16751: Server crashes in st_join_table::cleanup or @@ -2214,7 +2214,7 @@ SELECT t2.a FROM t2 WHERE t2.b IN (SELECT t3.b FROM t3 WHERE t3.c= 27); -set @save_optimizer_switch= @@optimizer_switch; +set @local_optimizer_switch= @@optimizer_switch; SET optimizer_switch='materialization=off'; SELECT t1.a FROM t1 @@ -2226,7 +2226,7 @@ WHERE t1.a IN (SELECT t2.a FROM t2 WHERE t2.b IN (SELECT t3.b FROM t3 WHERE t3.c= 27)) LIMIT 5; drop procedure prepare_data; -set @@optimizer_switch= @save_optimizer_switch; +set @@optimizer_switch= @local_optimizer_switch; drop table t1,t2,t3; CREATE TABLE t1 ( id int NOT NULL, key(id)); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_sj_nonmerged.test mariadb-10.3-10.3.20/mysql-test/main/subselect_sj_nonmerged.test --- mariadb-10.3-10.3.17/mysql-test/main/subselect_sj_nonmerged.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_sj_nonmerged.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,8 @@ # # Tests for non-merged semi-joins # +--source include/default_optimizer_switch.inc + --disable_warnings drop table if exists t0, t1, t2, t3, t4; --enable_warnings diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_sj.result mariadb-10.3-10.3.20/mysql-test/main/subselect_sj.result --- mariadb-10.3-10.3.17/mysql-test/main/subselect_sj.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_sj.result 2019-11-06 16:01:57.000000000 +0000 @@ -7,7 +7,7 @@ SET optimizer_switch=ifnull(@optimizer_switch_for_subselect_sj_test,'outer_join_with_cache=off'); SET optimizer_switch=ifnull(@optimizer_switch_for_subselect_sj_test,'semijoin_with_cache=off'); set join_cache_level=1; -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; create table t0 (a int); insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); create table t1(a int, b int); @@ -94,6 +94,7 @@ 2 MATERIALIZED t10 index PRIMARY PRIMARY 4 NULL 10 100.00 Using index Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`A` AS `A`,`test`.`t1`.`B` AS `B`,`test`.`t2`.`A` AS `A`,`test`.`t2`.`B` AS `B` from `test`.`t1` left join `test`.`t2` on(`test`.`t2`.`A` = `test`.`t1`.`A` And (`test`.`t1`.`A`,`test`.`t1`.`A` in ( (/* select#2 */ select `test`.`t10`.`pk` from `test`.`t10` ), (`test`.`t1`.`A` in on distinct_key where `test`.`t1`.`A` = ``.`pk`)))) where 1 +set @save_join_buffer_size=@@join_buffer_size; set join_buffer_size=8*1024; we shouldn't flatten if we're going to get a join of > MAX_TABLES. explain select * from @@ -186,7 +187,7 @@ 0 0 0 0 1 1 1 1 2 2 2 2 -set join_buffer_size=default; +set join_buffer_size=@save_join_buffer_size; prepare s1 from ' select * from t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10)) @@ -333,7 +334,7 @@ INSERT INTO WORKS VALUES ('E4','P2',20); INSERT INTO WORKS VALUES ('E4','P4',40); INSERT INTO WORKS VALUES ('E4','P5',80); -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@local_optimizer_switch; set optimizer_switch='materialization=off'; explain SELECT EMPNUM, EMPNAME FROM STAFF @@ -356,7 +357,7 @@ E2 Betty E3 Carmen E4 Don -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@local_optimizer_switch; drop table STAFF,WORKS,PROJ; # End of bug#45191 # @@ -444,7 +445,7 @@ drop table t1, t2; drop view v1; drop procedure p1; -set SESSION optimizer_switch=@save_optimizer_switch; +set SESSION optimizer_switch=@local_optimizer_switch; # End of bug#46744 Bug#46797 "Crash in fix_semijoin_strategies_for_picked_join_order @@ -595,7 +596,7 @@ DROP TABLE t1,t2; DROP VIEW v1,v2; DROP PROCEDURE p1; -set SESSION optimizer_switch=@save_optimizer_switch; +set SESSION optimizer_switch=@local_optimizer_switch; # End of BUG#48834 Bug#49097 subquery with view generates wrong result with @@ -729,8 +730,8 @@ WHERE int_nokey IN (SELECT it2.int_key FROM it1 LEFT JOIN it2 ON it2.datetime_key); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 11 -1 PRIMARY ot1 ALL NULL NULL NULL NULL 20 Using where; Using join buffer (flat, BNL join) +1 PRIMARY ot1 ALL NULL NULL NULL NULL 20 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 2 MATERIALIZED it1 index NULL int_key 4 NULL 2 Using index 2 MATERIALIZED it2 ALL int_key,datetime_key NULL NULL NULL 20 Using where DROP TABLE ot1, it1, it2; @@ -972,11 +973,11 @@ FROM t1 WHERE `varchar_nokey` < 'n' XOR `pk` ) ; id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 15 100.00 -1 PRIMARY t2 ALL NULL NULL NULL NULL 18 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t2 ALL NULL NULL NULL NULL 18 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 8 func,func 1 100.00 2 MATERIALIZED t1 ALL varchar_key NULL NULL NULL 15 100.00 Using where Warnings: -Note 1003 select `test`.`t2`.`varchar_nokey` AS `varchar_nokey` from `test`.`t2` semi join (`test`.`t1`) where `test`.`t1`.`varchar_nokey` = `test`.`t1`.`varchar_key` and `test`.`t2`.`varchar_nokey` = `test`.`t1`.`varchar_key` and (`test`.`t1`.`varchar_key` < 'n' xor `test`.`t1`.`pk`) +Note 1003 select `test`.`t2`.`varchar_nokey` AS `varchar_nokey` from `test`.`t2` semi join (`test`.`t1`) where `test`.`t1`.`varchar_nokey` = `test`.`t1`.`varchar_key` and (`test`.`t1`.`varchar_key` < 'n' xor `test`.`t1`.`pk`) SELECT varchar_nokey FROM t2 WHERE ( `varchar_nokey` , `varchar_nokey` ) IN ( @@ -1076,7 +1077,7 @@ # LPBUG#602574: RQG: sql_select.cc:5385: bool greedy_search(JOIN*, table_map, uint, # uint): Assertion `join->best_read < # -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimizer_switch=@@optimizer_switch; set optimizer_switch='materialization=off'; CREATE TABLE t1 ( varchar_key varchar(1) DEFAULT NULL, @@ -1110,7 +1111,7 @@ ) ); varchar_key -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimizer_switch; DROP TABLE t1, t2, t3; # # Bug#46692 "Crash occurring on queries with nested FROM subqueries @@ -1236,9 +1237,11 @@ # # BUG#53060: LooseScan semijoin strategy does not return all rows # -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimizer_switch=@@optimizer_switch; set optimizer_switch='semijoin=on,materialization=off'; set optimizer_switch='firstmatch=off,loosescan=on'; +set @tmp_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity; +set optimizer_use_condition_selectivity=1; CREATE TABLE t1 (i INTEGER); INSERT INTO t1 VALUES (1), (2), (3), (4), (5); CREATE TABLE t2 (i INTEGER, j INTEGER, KEY k(i, j)); @@ -1246,14 +1249,15 @@ EXPLAIN SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t2 index k k 10 NULL 4 Using where; Using index; LooseScan -1 PRIMARY t1 ALL NULL NULL NULL NULL 5 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 5 +1 PRIMARY t2 index k k 10 NULL 4 Using where; Using index; Start temporary; End temporary SELECT * FROM t1 WHERE (i) IN (SELECT i FROM t2 where j > 0); i 1 2 DROP TABLE t1, t2; -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimizer_switch; +set @@optimizer_use_condition_selectivity=@tmp_optimizer_use_condition_selectivity; # # BUG#49453: re-execution of prepared statement with view # and semijoin crashes @@ -1296,7 +1300,7 @@ insert into t1 values(1),(1); insert into t2 values(1),(1),(1),(1); insert into t3 values(2),(2); -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimizer_switch=@@optimizer_switch; set optimizer_switch='materialization=off'; set optimizer_switch='semijoin=off'; explain @@ -1320,7 +1324,7 @@ a 1 1 -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimizer_switch; drop table t1,t2,t3; # # Bug#55955: crash in MEMORY engine with IN(LEFT JOIN (JOIN)) @@ -1331,7 +1335,7 @@ INSERT INTO t1 VALUES(1),(1); INSERT INTO t2 VALUES(1),(1); INSERT INTO t3 VALUES(2),(2); -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimzer_switch=@@optimizer_switch; set optimizer_switch='semijoin=off,materialization=off'; EXPLAIN SELECT * FROM t1 @@ -1380,7 +1384,7 @@ a 1 1 -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimzer_switch; DROP TABLE t1,t2,t3; # # BUG#52329 - Wrong result: subquery materialization, IN, @@ -1398,7 +1402,7 @@ ('1 - 13', '2 - 23'); INSERT INTO t2b SELECT * FROM t2a; INSERT INTO t2c SELECT * FROM t2a; -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimzer_switch=@@optimizer_switch; set optimizer_switch='semijoin=off,materialization=on'; SELECT * FROM t1 WHERE (a1, a2) IN ( @@ -1420,7 +1424,7 @@ SELECT b1, b2 FROM t2c WHERE b1 > '0'); a1 a2 1 - 12 2 - 22 -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimzer_switch; DROP TABLE t1,t2a,t2b,t2c; # # Bug#57623: subquery within before insert trigger causes crash (sj=on) @@ -1433,7 +1437,7 @@ INSERT INTO ot2 VALUES(0),(2),(4),(6); INSERT INTO ot3 VALUES(0),(3),(6); INSERT INTO it1 VALUES(0),(1),(2),(3),(4),(5),(6),(7); -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimzer_switch=@@optimizer_switch; set optimizer_switch='semijoin=on'; set optimizer_switch='materialization=off'; explain SELECT * @@ -1537,7 +1541,7 @@ 6 6 6 7 NULL NULL deallocate prepare s; -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimzer_switch; DROP TABLE ot1, ot2, ot3, it1; # # Bug#59919/11766739: Crash in tmp_table_param::init() with semijoin=on @@ -1550,7 +1554,7 @@ INSERT INTO t3 VALUES (1,1), (2,1), (5,4), (7,3), (8,2), (8,1), (7,3), (9,5), (4,3), (7,2), (7,7), (3,1), (5,8), (9,7); -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimzer_switch=@@optimizer_switch; set optimizer_switch='semijoin=off,materialization=on'; EXPLAIN SELECT * FROM t3 @@ -1588,7 +1592,7 @@ 2 1 8 1 3 1 -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimzer_switch; DROP TABLE t1, t2, t3 ; # # @@ -1757,8 +1761,8 @@ insert into t3 values('three'),( 'four'); explain select * from t3 where t3.b in (select t2.b from t1 left join t2 on t1.a=t2.a); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 -1 PRIMARY t3 ALL NULL NULL NULL NULL 8 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t3 ALL NULL NULL NULL NULL 8 +1 PRIMARY eq_ref distinct_key distinct_key 10 func 1 2 MATERIALIZED t1 ALL NULL NULL NULL NULL 2 2 MATERIALIZED t2 ALL NULL NULL NULL NULL 2 Using where select * from t3 where t3.b in (select t2.b from t1 left join t2 on t1.a=t2.a); @@ -1991,12 +1995,13 @@ explain extended SELECT * FROM t1 NATURAL LEFT JOIN (t2, t3) WHERE t2.f3 IN (SELECT * FROM t4); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using where -1 PRIMARY t4 ref f2 f2 5 test.t2.f3 2 100.00 Using index; FirstMatch(t2) +1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 1 PRIMARY t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join) 1 PRIMARY t3 ALL NULL NULL NULL NULL 5 100.00 Using where; Using join buffer (flat, BNL join) +2 MATERIALIZED t4 index f2 f2 5 NULL 2 100.00 Using index Warnings: -Note 1003 select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f2` AS `f2`,`test`.`t2`.`f3` AS `f3`,`test`.`t3`.`f3` AS `f3` from `test`.`t1` semi join (`test`.`t4`) join `test`.`t2` join `test`.`t3` where `test`.`t4`.`f2` = `test`.`t2`.`f3` and `test`.`t3`.`f1` = `test`.`t1`.`f1` and `test`.`t1`.`f2` = `test`.`t2`.`f2` +Note 1003 select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f2` AS `f2`,`test`.`t2`.`f3` AS `f3`,`test`.`t3`.`f3` AS `f3` from `test`.`t1` semi join (`test`.`t4`) join `test`.`t2` join `test`.`t3` where `test`.`t3`.`f1` = `test`.`t1`.`f1` and `test`.`t1`.`f2` = `test`.`t2`.`f2` SELECT * FROM t1 NATURAL LEFT JOIN (t2, t3) WHERE t2.f3 IN (SELECT * FROM t4); f1 f2 f3 f3 2 0 0 0 @@ -2495,8 +2500,8 @@ id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t3 system NULL NULL NULL NULL 1 1 PRIMARY ALL distinct_key NULL NULL NULL 1 -1 PRIMARY t1 ref a a 5 const 1 Using index -1 PRIMARY t2 ref a a 5 func 1 Using index +1 PRIMARY t2 ref a a 5 const 1 Using index +1 PRIMARY t1 ref a a 5 func 1 Using index 2 MATERIALIZED t4 ALL NULL NULL NULL NULL 0 SELECT * FROM t1, t2 WHERE t1.a = t2.a AND t2.a IN (SELECT b FROM t3 STRAIGHT_JOIN t4); @@ -2701,8 +2706,8 @@ 19 explain select * from t3 where a in (select kp1 from t1 where kp1<20); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 range kp1 kp1 5 NULL 48 Using where; Using index; LooseScan -1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t3 ALL NULL NULL NULL NULL 100 Using where +1 PRIMARY t1 ref kp1 kp1 5 test.t3.a 1 Using index; FirstMatch(t3) drop table t0,t1,t3; set optimizer_switch= @tmp_923246; # @@ -2918,8 +2923,8 @@ ); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t2 ALL NULL NULL NULL NULL 2 -1 PRIMARY alias1 index_merge PRIMARY,col_int_key,col_varchar_key PRIMARY,col_varchar_key 4,4 NULL 2 Using sort_union(PRIMARY,col_varchar_key); Using where -1 PRIMARY alias2 ALL col_int_key NULL NULL NULL 12 Range checked for each record (index map: 0x2); FirstMatch(t2) +1 PRIMARY alias1 index_merge PRIMARY,col_int_key,col_varchar_key PRIMARY,col_varchar_key 4,4 NULL 2 Using sort_union(PRIMARY,col_varchar_key); Using where; Start temporary +1 PRIMARY alias2 ALL col_int_key NULL NULL NULL 12 Range checked for each record (index map: 0x2); End temporary SELECT * FROM t2 WHERE (field1) IN (SELECT alias1.col_varchar_nokey AS field1 @@ -3037,7 +3042,7 @@ SET @tmp_mdev5059=@@join_cache_level; SET join_cache_level = 3; set @tmp_os_mdev5059= @@optimizer_switch; -set optimizer_switch=default; +set optimizer_switch=@local_optimizer_switch; CREATE TABLE t1 (pk1 INT PRIMARY KEY, i1 INT) ENGINE=MyISAM; INSERT INTO t1 VALUES (1,4),(2,5); CREATE TABLE t2 (i2 INT, c2 CHAR(1)) ENGINE=MyISAM; @@ -3254,5 +3259,54 @@ create table t2 (a2 varchar(25)) ; insert into t1 select 'xxx' from dual where 'xxx' in (select a2 from t2); drop table t1,t2; +# +# MDEV-13172: Wrong result / SELECT ... WHERE EXISTS ... (with UNIQUE Key) +# +CREATE TABLE `t1` ( +`Id` int(11) NOT NULL, +PRIMARY KEY (`Id`) +); +INSERT INTO `t1` (`Id`) VALUES (1); +CREATE TABLE `t2` ( +`t1_Id` int(11) NOT NULL DEFAULT 0, +`col1` int(11) DEFAULT NULL, +UNIQUE KEY `col1` (`col1`) +); +INSERT INTO `t2` (`t1_Id`, `col1`) VALUES (1, NULL), (1, NULL); +SELECT Id FROM t1 WHERE Id in (SELECT t1_Id FROM t2 WHERE t2.col1 IS NULL); +Id +1 +explain extended +SELECT Id FROM t1 WHERE Id in (SELECT t1_Id FROM t2 WHERE t2.col1 IS NULL); +id select_type table type possible_keys key key_len ref rows filtered Extra +1 PRIMARY t1 system PRIMARY NULL NULL NULL 1 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 +2 MATERIALIZED t2 ref col1 col1 5 const 1 100.00 Using index condition; Using where +Warnings: +Note 1003 select 1 AS `Id` from (`test`.`t2`) where `test`.`t2`.`t1_Id` = 1 and `test`.`t2`.`col1` is null +DROP TABLE t1, t2; # End of 5.5 test +# +# MDEV-20109: Optimizer ignores distinct key created for materialized +# semi-join subquery when searching for best execution plan +# +create table t1(a int); +insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t2(a int); +insert into t2 select A.a + B.a* 10 + C.a * 100 from t1 A, t1 B, t1 C; +create table t3 (a int); +create table t4 (a int); +insert into t3 select A.a +1000*B.a from t2 A, t1 B; +insert into t4 select floor(rand()*1000) from t2 limit 500; +# The following must not use this query plan that does a cross join: +# | 1 | PRIMARY | | ALL | distinct_key | ... | 500 | | +# | 1 | PRIMARY | t3 | ALL | NULL | ... | 10000 | Using where; Using join buffer (flat, BNL join) | +# +# Instead, it should use eq_ref on the materialized table. +explain select * from t3 where a in (select a from t4); +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t3 ALL NULL NULL NULL NULL 10000 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 +2 MATERIALIZED t4 ALL NULL NULL NULL NULL 500 +drop table t1, t2, t3, t4; set optimizer_switch=@subselect_sj_tmp; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect_sj.test mariadb-10.3-10.3.20/mysql-test/main/subselect_sj.test --- mariadb-10.3-10.3.17/mysql-test/main/subselect_sj.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect_sj.test 2019-11-06 16:01:57.000000000 +0000 @@ -22,7 +22,7 @@ } # The 'default' value within the scope of this test: -set @save_optimizer_switch=@@optimizer_switch; +set @local_optimizer_switch=@@optimizer_switch; # # 1. Subqueries that are converted into semi-joins @@ -79,6 +79,7 @@ explain extended select * from t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10)); +set @save_join_buffer_size=@@join_buffer_size; set join_buffer_size=8*1024; --echo we shouldn't flatten if we're going to get a join of > MAX_TABLES. @@ -99,7 +100,7 @@ t1 left join t2 on (t2.a= t1.a and t2.a in (select pk from t10)) where t1.a < 5; -set join_buffer_size=default; +set join_buffer_size=@save_join_buffer_size; # # Prepared statements @@ -247,7 +248,7 @@ INSERT INTO WORKS VALUES ('E4','P4',40); INSERT INTO WORKS VALUES ('E4','P5',80); -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@local_optimizer_switch; set optimizer_switch='materialization=off'; explain SELECT EMPNUM, EMPNAME @@ -264,7 +265,7 @@ WHERE PNUM IN (SELECT PNUM FROM PROJ)); -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@local_optimizer_switch; drop table STAFF,WORKS,PROJ; @@ -383,7 +384,7 @@ drop view v1; drop procedure p1; -set SESSION optimizer_switch=@save_optimizer_switch; +set SESSION optimizer_switch=@local_optimizer_switch; --echo # End of bug#46744 @@ -550,7 +551,7 @@ DROP VIEW v1,v2; DROP PROCEDURE p1; -set SESSION optimizer_switch=@save_optimizer_switch; +set SESSION optimizer_switch=@local_optimizer_switch; --echo # End of BUG#48834 @@ -966,7 +967,7 @@ --echo # LPBUG#602574: RQG: sql_select.cc:5385: bool greedy_search(JOIN*, table_map, uint, --echo # uint): Assertion `join->best_read < --echo # -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimizer_switch=@@optimizer_switch; set optimizer_switch='materialization=off'; CREATE TABLE t1 ( varchar_key varchar(1) DEFAULT NULL, @@ -1002,7 +1003,7 @@ FROM t1 RIGHT JOIN t2 ON t1.varchar_key ) ); -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimizer_switch; DROP TABLE t1, t2, t3; --echo # @@ -1144,9 +1145,11 @@ --echo # BUG#53060: LooseScan semijoin strategy does not return all rows --echo # -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimizer_switch=@@optimizer_switch; set optimizer_switch='semijoin=on,materialization=off'; set optimizer_switch='firstmatch=off,loosescan=on'; +set @tmp_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity; +set optimizer_use_condition_selectivity=1; CREATE TABLE t1 (i INTEGER); INSERT INTO t1 VALUES (1), (2), (3), (4), (5); @@ -1159,7 +1162,8 @@ DROP TABLE t1, t2; -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimizer_switch; +set @@optimizer_use_condition_selectivity=@tmp_optimizer_use_condition_selectivity; --echo # --echo # BUG#49453: re-execution of prepared statement with view @@ -1202,7 +1206,7 @@ insert into t2 values(1),(1),(1),(1); insert into t3 values(2),(2); -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimizer_switch=@@optimizer_switch; set optimizer_switch='materialization=off'; @@ -1216,7 +1220,7 @@ select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a); select * from t1 where t1.a in (select t2.a from t2 left join t3 on t2.a=t3.a); -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimizer_switch; drop table t1,t2,t3; @@ -1231,7 +1235,7 @@ INSERT INTO t2 VALUES(1),(1); INSERT INTO t3 VALUES(2),(2); -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimzer_switch=@@optimizer_switch; set optimizer_switch='semijoin=off,materialization=off'; EXPLAIN @@ -1260,7 +1264,7 @@ WHERE t1.a IN (SELECT t2.a FROM t2 LEFT JOIN (t2 AS t2inner, t3) ON t2.a=t3.a); -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimzer_switch; DROP TABLE t1,t2,t3; @@ -1286,7 +1290,7 @@ INSERT INTO t2b SELECT * FROM t2a; INSERT INTO t2c SELECT * FROM t2a; -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimzer_switch=@@optimizer_switch; set optimizer_switch='semijoin=off,materialization=on'; @@ -1308,7 +1312,7 @@ WHERE (a1, a2) IN ( SELECT b1, b2 FROM t2c WHERE b1 > '0'); -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimzer_switch; DROP TABLE t1,t2a,t2b,t2c; @@ -1333,7 +1337,7 @@ (ot2 JOIN ot3 on ot2.a=ot3.a) ON ot1.a=ot2.a AND ot1.a IN (SELECT a from it1); -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimzer_switch=@@optimizer_switch; set optimizer_switch='semijoin=on'; @@ -1353,7 +1357,7 @@ execute s; deallocate prepare s; -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimzer_switch; DROP TABLE ot1, ot2, ot3, it1; @@ -1371,7 +1375,7 @@ (1,1), (2,1), (5,4), (7,3), (8,2), (8,1), (7,3), (9,5), (4,3), (7,2), (7,7), (3,1), (5,8), (9,7); -set @save_optimizer_switch=@@optimizer_switch; +set @tmp_optimzer_switch=@@optimizer_switch; set optimizer_switch='semijoin=off,materialization=on'; EXPLAIN @@ -1391,7 +1395,7 @@ WHERE f2 IN (SELECT t1.f1 FROM t1 LEFT OUTER JOIN (t2 AS b1 JOIN t2 AS b2 ON TRUE) ON TRUE); -set optimizer_switch=@save_optimizer_switch; +set optimizer_switch=@tmp_optimzer_switch; DROP TABLE t1, t2, t3 ; @@ -2724,7 +2728,7 @@ # Any value > 2 will do SET join_cache_level = 3; set @tmp_os_mdev5059= @@optimizer_switch; -set optimizer_switch=default; +set optimizer_switch=@local_optimizer_switch; CREATE TABLE t1 (pk1 INT PRIMARY KEY, i1 INT) ENGINE=MyISAM; INSERT INTO t1 VALUES (1,4),(2,5); @@ -2936,7 +2940,58 @@ drop table t1,t2; + +--echo # +--echo # MDEV-13172: Wrong result / SELECT ... WHERE EXISTS ... (with UNIQUE Key) +--echo # + +CREATE TABLE `t1` ( + `Id` int(11) NOT NULL, + PRIMARY KEY (`Id`) +); + +INSERT INTO `t1` (`Id`) VALUES (1); + +CREATE TABLE `t2` ( + `t1_Id` int(11) NOT NULL DEFAULT 0, + `col1` int(11) DEFAULT NULL, + UNIQUE KEY `col1` (`col1`) +); + +INSERT INTO `t2` (`t1_Id`, `col1`) VALUES (1, NULL), (1, NULL); + +SELECT Id FROM t1 WHERE Id in (SELECT t1_Id FROM t2 WHERE t2.col1 IS NULL); +explain extended +SELECT Id FROM t1 WHERE Id in (SELECT t1_Id FROM t2 WHERE t2.col1 IS NULL); + +DROP TABLE t1, t2; + --echo # End of 5.5 test +--echo # +--echo # MDEV-20109: Optimizer ignores distinct key created for materialized +--echo # semi-join subquery when searching for best execution plan +--echo # +create table t1(a int); +insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); + +create table t2(a int); +insert into t2 select A.a + B.a* 10 + C.a * 100 from t1 A, t1 B, t1 C; + +create table t3 (a int); +create table t4 (a int); +insert into t3 select A.a +1000*B.a from t2 A, t1 B; +insert into t4 select floor(rand()*1000) from t2 limit 500; + +--echo # The following must not use this query plan that does a cross join: +--echo # | 1 | PRIMARY | | ALL | distinct_key | ... | 500 | | +--echo # | 1 | PRIMARY | t3 | ALL | NULL | ... | 10000 | Using where; Using join buffer (flat, BNL join) | +--echo # +--echo # Instead, it should use eq_ref on the materialized table. + +explain select * from t3 where a in (select a from t4); + +drop table t1, t2, t3, t4; + # The following command must be the last one the file set optimizer_switch=@subselect_sj_tmp; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/subselect.test mariadb-10.3-10.3.20/mysql-test/main/subselect.test --- mariadb-10.3-10.3.17/mysql-test/main/subselect.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/subselect.test 2019-11-06 16:01:57.000000000 +0000 @@ -26,7 +26,8 @@ { set join_cache_level=@join_cache_level_for_subselect_test; } - set optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +SET optimizer_switch='mrr=on,mrr_sort_keys=on,index_condition_pushdown=on'; +SET optimizer_use_condition_selectivity=1; select (select 2); explain extended select (select 2); diff -Nru mariadb-10.3-10.3.17/mysql-test/main/sum_distinct-big.result mariadb-10.3-10.3.20/mysql-test/main/sum_distinct-big.result --- mariadb-10.3-10.3.17/mysql-test/main/sum_distinct-big.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/sum_distinct-big.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,7 +1,5 @@ -DROP TABLE IF EXISTS t1, t2; set @save_tmp_table_size=@@tmp_table_size; set @save_max_heap_table_size=@@max_heap_table_size; -set @save_storage_engine=@@storage_engine; set storage_engine=MYISAM; CREATE TABLE t1 (id INTEGER); CREATE TABLE t2 (id INTEGER); @@ -126,35 +124,13 @@ DROP TABLE t2; SET @@tmp_table_size=@save_tmp_table_size; SET @@max_heap_table_size=@save_max_heap_table_size; -# -# Bug mdev-4311: COUNT(DISTINCT...) requiring a file for Unique -# (bug #68749) -# -set @save_storage_engine=@@storage_engine; -set storage_engine=INNODB; -CREATE TABLE t1 (id INTEGER) ENGINE=InnoDB; +# +# MDEV-4311: COUNT(DISTINCT...) requiring a file for UNIQUE (bug #68749) +# CREATE TABLE t2 (id INTEGER) ENGINE=InnoDB; -INSERT INTO t1 (id) VALUES (1), (1), (1),(1); -INSERT INTO t1 (id) SELECT id FROM t1; -INSERT INTO t1 (id) SELECT id FROM t1; -INSERT INTO t1 (id) SELECT id FROM t1; -INSERT INTO t1 (id) SELECT id FROM t1; -INSERT INTO t1 (id) SELECT id FROM t1; -INSERT INTO t1 SELECT id+1 FROM t1; -INSERT INTO t1 SELECT id+2 FROM t1; -INSERT INTO t1 SELECT id+4 FROM t1; -INSERT INTO t1 SELECT id+8 FROM t1; -INSERT INTO t1 SELECT id+16 FROM t1; -INSERT INTO t1 SELECT id+32 FROM t1; -INSERT INTO t1 SELECT id+64 FROM t1; -INSERT INTO t1 SELECT id+128 FROM t1; -INSERT INTO t1 SELECT id+256 FROM t1; -INSERT INTO t1 SELECT id+512 FROM t1; -INSERT INTO t1 SELECT id+1024 FROM t1; -INSERT INTO t1 SELECT id+2048 FROM t1; -INSERT INTO t1 SELECT id+4096 FROM t1; -INSERT INTO t1 SELECT id+8192 FROM t1; -INSERT INTO t2 SELECT id FROM t1 ORDER BY id*rand(); +BEGIN; +INSERT INTO t2 SELECT b.seq FROM seq_1_to_128 a, seq_1_to_16384 b +ORDER BY b.seq*rand(); INSERT INTO t2 VALUE(NULL); # With default tmp_table_size / max_heap_table_size SELECT SQL_NO_CACHE count(DISTINCT id) sm FROM t2; @@ -176,5 +152,5 @@ SELECT SQL_NO_CACHE count(DISTINCT id) sm FROM t2; sm 16384 -DROP TABLE t1,t2; -set storage_engine=@save_storage_engine; +COMMIT; +DROP TABLE t2; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/sum_distinct-big.test mariadb-10.3-10.3.20/mysql-test/main/sum_distinct-big.test --- mariadb-10.3-10.3.17/mysql-test/main/sum_distinct-big.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/sum_distinct-big.test 2019-11-06 16:01:57.000000000 +0000 @@ -4,15 +4,11 @@ --source include/big_test.inc --source include/have_innodb.inc ---disable_warnings -DROP TABLE IF EXISTS t1, t2; ---enable_warnings +--source include/have_sequence.inc set @save_tmp_table_size=@@tmp_table_size; set @save_max_heap_table_size=@@max_heap_table_size; -set @save_storage_engine=@@storage_engine; - # # Test the case when distinct values doesn't fit in memory and # filesort is used (see uniques.cc:merge_walk) @@ -94,39 +90,14 @@ SET @@tmp_table_size=@save_tmp_table_size; SET @@max_heap_table_size=@save_max_heap_table_size; ---echo # ---echo # Bug mdev-4311: COUNT(DISTINCT...) requiring a file for Unique ---echo # (bug #68749) ---echo # - -set @save_storage_engine=@@storage_engine; -set storage_engine=INNODB; - -CREATE TABLE t1 (id INTEGER) ENGINE=InnoDB; +--echo # +--echo # MDEV-4311: COUNT(DISTINCT...) requiring a file for UNIQUE (bug #68749) +--echo # CREATE TABLE t2 (id INTEGER) ENGINE=InnoDB; -INSERT INTO t1 (id) VALUES (1), (1), (1),(1); -INSERT INTO t1 (id) SELECT id FROM t1; -INSERT INTO t1 (id) SELECT id FROM t1; -INSERT INTO t1 (id) SELECT id FROM t1; -INSERT INTO t1 (id) SELECT id FROM t1; -INSERT INTO t1 (id) SELECT id FROM t1; -INSERT INTO t1 SELECT id+1 FROM t1; -INSERT INTO t1 SELECT id+2 FROM t1; -INSERT INTO t1 SELECT id+4 FROM t1; -INSERT INTO t1 SELECT id+8 FROM t1; -INSERT INTO t1 SELECT id+16 FROM t1; -INSERT INTO t1 SELECT id+32 FROM t1; -INSERT INTO t1 SELECT id+64 FROM t1; -INSERT INTO t1 SELECT id+128 FROM t1; -INSERT INTO t1 SELECT id+256 FROM t1; -INSERT INTO t1 SELECT id+512 FROM t1; -INSERT INTO t1 SELECT id+1024 FROM t1; -INSERT INTO t1 SELECT id+2048 FROM t1; -INSERT INTO t1 SELECT id+4096 FROM t1; -INSERT INTO t1 SELECT id+8192 FROM t1; - -INSERT INTO t2 SELECT id FROM t1 ORDER BY id*rand(); +BEGIN; +INSERT INTO t2 SELECT b.seq FROM seq_1_to_128 a, seq_1_to_16384 b +ORDER BY b.seq*rand(); INSERT INTO t2 VALUE(NULL); --echo # With default tmp_table_size / max_heap_table_size @@ -147,7 +118,6 @@ --echo # Back to default tmp_table_size / max_heap_table_size SELECT SQL_NO_CACHE count(DISTINCT id) sm FROM t2; +COMMIT; -DROP TABLE t1,t2; - -set storage_engine=@save_storage_engine; +DROP TABLE t2; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/system_mysql_db_fix40123.result mariadb-10.3-10.3.20/mysql-test/main/system_mysql_db_fix40123.result --- mariadb-10.3-10.3.17/mysql-test/main/system_mysql_db_fix40123.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/system_mysql_db_fix40123.result 2019-11-06 16:01:57.000000000 +0000 @@ -190,14 +190,14 @@ Table Create Table servers CREATE TABLE `servers` ( `Server_name` char(64) NOT NULL DEFAULT '', - `Host` char(64) NOT NULL DEFAULT '', + `Host` varchar(2048) NOT NULL DEFAULT '', `Db` char(64) NOT NULL DEFAULT '', `Username` char(80) NOT NULL DEFAULT '', `Password` char(64) NOT NULL DEFAULT '', `Port` int(4) NOT NULL DEFAULT 0, `Socket` char(64) NOT NULL DEFAULT '', `Wrapper` char(64) NOT NULL DEFAULT '', - `Owner` char(64) NOT NULL DEFAULT '', + `Owner` varchar(512) NOT NULL DEFAULT '', PRIMARY KEY (`Server_name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table' show create table proc; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/system_mysql_db_fix50117.test mariadb-10.3-10.3.20/mysql-test/main/system_mysql_db_fix50117.test --- mariadb-10.3-10.3.17/mysql-test/main/system_mysql_db_fix50117.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/system_mysql_db_fix50117.test 2019-11-06 16:01:57.000000000 +0000 @@ -27,13 +27,13 @@ # create system tables as in mysql-5.1.17 -CREATE TABLE IF NOT EXISTS db ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY Host (Host,Db,User), KEY User (User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Database privileges'; +CREATE TABLE IF NOT EXISTS db ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY (Host,Db,User), KEY User (User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Database privileges'; -CREATE TABLE IF NOT EXISTS host ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY Host (Host,Db) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Host privileges; Merged with database privileges'; +CREATE TABLE IF NOT EXISTS host ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY (Host,Db) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Host privileges; Merged with database privileges'; -CREATE TABLE IF NOT EXISTS user ( Host char(60) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Password char(41) character set latin1 collate latin1_bin DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Reload_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Shutdown_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Process_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, File_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_db_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Super_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Repl_slave_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Repl_client_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_user_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, ssl_type enum('','ANY','X509', 'SPECIFIED') COLLATE utf8_general_ci DEFAULT '' NOT NULL, ssl_cipher BLOB NOT NULL, x509_issuer BLOB NOT NULL, x509_subject BLOB NOT NULL, max_questions int(11) unsigned DEFAULT 0 NOT NULL, max_updates int(11) unsigned DEFAULT 0 NOT NULL, max_connections int(11) unsigned DEFAULT 0 NOT NULL, max_user_connections int(11) unsigned DEFAULT 0 NOT NULL, PRIMARY KEY Host (Host,User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Users and global privileges'; +CREATE TABLE IF NOT EXISTS user ( Host char(60) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Password char(41) character set latin1 collate latin1_bin DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Reload_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Shutdown_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Process_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, File_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_db_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Super_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Repl_slave_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Repl_client_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_user_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, ssl_type enum('','ANY','X509', 'SPECIFIED') COLLATE utf8_general_ci DEFAULT '' NOT NULL, ssl_cipher BLOB NOT NULL, x509_issuer BLOB NOT NULL, x509_subject BLOB NOT NULL, max_questions int(11) unsigned DEFAULT 0 NOT NULL, max_updates int(11) unsigned DEFAULT 0 NOT NULL, max_connections int(11) unsigned DEFAULT 0 NOT NULL, max_user_connections int(11) unsigned DEFAULT 0 NOT NULL, PRIMARY KEY (Host,User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Users and global privileges'; CREATE TABLE IF NOT EXISTS func ( name char(64) binary DEFAULT '' NOT NULL, ret tinyint(1) DEFAULT '0' NOT NULL, dl char(128) DEFAULT '' NOT NULL, type enum ('function','aggregate') COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='User defined functions'; @@ -62,19 +62,19 @@ CREATE TABLE IF NOT EXISTS help_keyword ( help_keyword_id int unsigned not null, name char(64) not null, primary key (help_keyword_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help keywords'; -CREATE TABLE IF NOT EXISTS time_zone_name ( Name char(64) NOT NULL, Time_zone_id int unsigned NOT NULL, PRIMARY KEY Name (Name) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone names'; +CREATE TABLE IF NOT EXISTS time_zone_name ( Name char(64) NOT NULL, Time_zone_id int unsigned NOT NULL, PRIMARY KEY (Name) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone names'; -CREATE TABLE IF NOT EXISTS time_zone ( Time_zone_id int unsigned NOT NULL auto_increment, Use_leap_seconds enum('Y','N') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY TzId (Time_zone_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zones'; +CREATE TABLE IF NOT EXISTS time_zone ( Time_zone_id int unsigned NOT NULL auto_increment, Use_leap_seconds enum('Y','N') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY (Time_zone_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zones'; -CREATE TABLE IF NOT EXISTS time_zone_transition ( Time_zone_id int unsigned NOT NULL, Transition_time bigint signed NOT NULL, Transition_type_id int unsigned NOT NULL, PRIMARY KEY TzIdTranTime (Time_zone_id, Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transitions'; +CREATE TABLE IF NOT EXISTS time_zone_transition ( Time_zone_id int unsigned NOT NULL, Transition_time bigint signed NOT NULL, Transition_type_id int unsigned NOT NULL, PRIMARY KEY (Time_zone_id, Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transitions'; -CREATE TABLE IF NOT EXISTS time_zone_transition_type ( Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, Offset int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types'; +CREATE TABLE IF NOT EXISTS time_zone_transition_type ( Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, Offset int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types'; -CREATE TABLE IF NOT EXISTS time_zone_leap_second ( Transition_time bigint signed NOT NULL, Correction int signed NOT NULL, PRIMARY KEY TranTime (Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Leap seconds information for time zones'; +CREATE TABLE IF NOT EXISTS time_zone_leap_second ( Transition_time bigint signed NOT NULL, Correction int signed NOT NULL, PRIMARY KEY (Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Leap seconds information for time zones'; CREATE TABLE IF NOT EXISTS proc ( db char(64) collate utf8_bin DEFAULT '' NOT NULL, name char(64) DEFAULT '' NOT NULL, type enum('FUNCTION','PROCEDURE') NOT NULL, specific_name char(64) DEFAULT '' NOT NULL, language enum('SQL') DEFAULT 'SQL' NOT NULL, sql_data_access enum('CONTAINS_SQL', 'NO_SQL', 'READS_SQL_DATA', 'MODIFIES_SQL_DATA' ) DEFAULT 'CONTAINS_SQL' NOT NULL, is_deterministic enum('YES','NO') DEFAULT 'NO' NOT NULL, security_type enum('INVOKER','DEFINER') DEFAULT 'DEFINER' NOT NULL, param_list blob NOT NULL, returns char(64) DEFAULT '' NOT NULL, body longblob NOT NULL, definer char(77) collate utf8_bin DEFAULT '' NOT NULL, created timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, modified timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', sql_mode set( 'REAL_AS_FLOAT', 'PIPES_AS_CONCAT', 'ANSI_QUOTES', 'IGNORE_SPACE', 'NOT_USED', 'ONLY_FULL_GROUP_BY', 'NO_UNSIGNED_SUBTRACTION', 'NO_DIR_IN_CREATE', 'POSTGRESQL', 'ORACLE', 'MSSQL', 'DB2', 'MAXDB', 'NO_KEY_OPTIONS', 'NO_TABLE_OPTIONS', 'NO_FIELD_OPTIONS', 'MYSQL323', 'MYSQL40', 'ANSI', 'NO_AUTO_VALUE_ON_ZERO', 'NO_BACKSLASH_ESCAPES', 'STRICT_TRANS_TABLES', 'STRICT_ALL_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'INVALID_DATES', 'ERROR_FOR_DIVISION_BY_ZERO', 'TRADITIONAL', 'NO_AUTO_CREATE_USER', 'HIGH_NOT_PRECEDENCE' ) DEFAULT '' NOT NULL, comment char(64) collate utf8_bin DEFAULT '' NOT NULL, PRIMARY KEY (db,name,type) ) engine=MyISAM character set utf8 comment='Stored Procedures'; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/system_mysql_db.result mariadb-10.3-10.3.20/mysql-test/main/system_mysql_db.result --- mariadb-10.3-10.3.17/mysql-test/main/system_mysql_db.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/system_mysql_db.result 2019-11-06 16:01:57.000000000 +0000 @@ -190,14 +190,14 @@ Table Create Table servers CREATE TABLE `servers` ( `Server_name` char(64) NOT NULL DEFAULT '', - `Host` char(64) NOT NULL DEFAULT '', + `Host` varchar(2048) NOT NULL DEFAULT '', `Db` char(64) NOT NULL DEFAULT '', `Username` char(80) NOT NULL DEFAULT '', `Password` char(64) NOT NULL DEFAULT '', `Port` int(4) NOT NULL DEFAULT 0, `Socket` char(64) NOT NULL DEFAULT '', `Wrapper` char(64) NOT NULL DEFAULT '', - `Owner` char(64) NOT NULL DEFAULT '', + `Owner` varchar(512) NOT NULL DEFAULT '', PRIMARY KEY (`Server_name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table' show create table proc; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/system_time_debug.result mariadb-10.3-10.3.20/mysql-test/main/system_time_debug.result --- mariadb-10.3-10.3.17/mysql-test/main/system_time_debug.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/system_time_debug.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,16 @@ +set @old_dbug=@@debug_dbug; +select timestampdiff(minute,now(),sysdate()) as 'must be 0', (unix_timestamp(sysdate()) - unix_timestamp()) div 60 as 'must be 0'; +must be 0 must be 0 +0 0 +set @@debug_dbug='+d,system_time_plus_one_hour'; +select timestampdiff(minute,now(),sysdate()) as 'must be 0', (unix_timestamp(sysdate()) - unix_timestamp()) div 60 as 'must be 0'; +must be 0 must be 0 +0 0 +set @@debug_dbug='+d,system_time_minus_one_hour:-d,system_time_plus_one_hour'; +select timestampdiff(minute,now(),sysdate()) as 'must be 0', (unix_timestamp(sysdate()) - unix_timestamp()) div 60 as 'must be 0'; +must be 0 must be 0 +0 0 +set @@debug_dbug=@old_dbug; +select timestampdiff(minute,now(),sysdate()) as 'must be 0', (unix_timestamp(sysdate()) - unix_timestamp()) div 60 as 'must be 0'; +must be 0 must be 0 +0 0 diff -Nru mariadb-10.3-10.3.17/mysql-test/main/system_time_debug.test mariadb-10.3-10.3.20/mysql-test/main/system_time_debug.test --- mariadb-10.3-10.3.17/mysql-test/main/system_time_debug.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/system_time_debug.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,16 @@ +source include/have_debug.inc; +# +# MDEV-20079 When setting back the system time while mysqld is running, NOW() and UNIX_TIMESTAMP() results get stuck +# +set @old_dbug=@@debug_dbug; + +# because NOW() is taken at the beginning of the query and sysdate() is the actual +# time when sysdate() was evaluated, they don't necessarily have to be equal. +# but hopefully they're less than within a minute from each other. +select timestampdiff(minute,now(),sysdate()) as 'must be 0', (unix_timestamp(sysdate()) - unix_timestamp()) div 60 as 'must be 0'; +set @@debug_dbug='+d,system_time_plus_one_hour'; +select timestampdiff(minute,now(),sysdate()) as 'must be 0', (unix_timestamp(sysdate()) - unix_timestamp()) div 60 as 'must be 0'; +set @@debug_dbug='+d,system_time_minus_one_hour:-d,system_time_plus_one_hour'; +select timestampdiff(minute,now(),sysdate()) as 'must be 0', (unix_timestamp(sysdate()) - unix_timestamp()) div 60 as 'must be 0'; +set @@debug_dbug=@old_dbug; +select timestampdiff(minute,now(),sysdate()) as 'must be 0', (unix_timestamp(sysdate()) - unix_timestamp()) div 60 as 'must be 0'; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/table_options-5867.opt mariadb-10.3-10.3.20/mysql-test/main/table_options-5867.opt --- mariadb-10.3-10.3.17/mysql-test/main/table_options-5867.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/table_options-5867.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--plugin-maturity=unknown diff -Nru mariadb-10.3-10.3.17/mysql-test/main/table_value_constr.result mariadb-10.3-10.3.20/mysql-test/main/table_value_constr.result --- mariadb-10.3-10.3.17/mysql-test/main/table_value_constr.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/table_value_constr.result 2019-11-06 16:01:57.000000000 +0000 @@ -743,21 +743,21 @@ explain extended select * from t1 where a in (values (1)); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 3 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 2 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1)) `tvc_0`) where `test`.`t1`.`a` = `tvc_0`.`1` +Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1)) `tvc_0`) where 1 explain extended select * from t1 where a in (select * from (values (1)) as tvc_0); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 2 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 3 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1)) `tvc_0`) where `test`.`t1`.`a` = `tvc_0`.`1` +Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1)) `tvc_0`) where 1 # IN-subquery with VALUES structure(s) : UNION with VALUES on the first place select * from t1 where a in (values (1) union select 2); @@ -978,21 +978,21 @@ explain extended select * from t1 where a = any (values (1),(2)); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 3 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 2 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where `test`.`t1`.`a` = `tvc_0`.`1` +Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where 1 explain extended select * from t1 where a = any (select * from (values (1),(2)) as tvc_0); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 2 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 3 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where `test`.`t1`.`a` = `tvc_0`.`1` +Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join ((values (1),(2)) `tvc_0`) where 1 # ANY-subquery with VALUES structure(s) : UNION with VALUES on the first place select * from t1 where a = any (values (1) union select 2); @@ -2586,3 +2586,16 @@ union ( values (5), (7), (1), (3), (4) order by 2 limit 2 ); ERROR 42S22: Unknown column '2' in 'order clause' +# +# MDEV-20229: view defined as select using +# CTE with named columns defined as TVC +# +create view v1 as with t(a) as (values (2), (1)) select a from t; +show create view v1; +View Create View character_set_client collation_connection +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS with t(a) as (values (2),(1))select `t`.`a` AS `a` from `t` latin1 latin1_swedish_ci +select * from v1; +a +2 +1 +drop view v1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/table_value_constr.test mariadb-10.3-10.3.20/mysql-test/main/table_value_constr.test --- mariadb-10.3-10.3.17/mysql-test/main/table_value_constr.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/table_value_constr.test 2019-11-06 16:01:57.000000000 +0000 @@ -1316,3 +1316,13 @@ ( values (5), (7), (1), (3), (4) limit 2 offset 1 ) union ( values (5), (7), (1), (3), (4) order by 2 limit 2 ); + +--echo # +--echo # MDEV-20229: view defined as select using +--echo # CTE with named columns defined as TVC +--echo # + +create view v1 as with t(a) as (values (2), (1)) select a from t; +show create view v1; +select * from v1; +drop view v1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/trigger-compat.test mariadb-10.3-10.3.20/mysql-test/main/trigger-compat.test --- mariadb-10.3-10.3.17/mysql-test/main/trigger-compat.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/trigger-compat.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,7 +2,8 @@ # supported in embedded server. So, this test should not be run on embedded # server. --- source include/not_embedded.inc +--source include/not_embedded.inc +--source include/default_charset.inc ########################################################################### # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/trigger_notembedded.test mariadb-10.3-10.3.20/mysql-test/main/trigger_notembedded.test --- mariadb-10.3-10.3.17/mysql-test/main/trigger_notembedded.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/trigger_notembedded.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,7 +2,8 @@ # supported in embedded server. So, this test should not be run on embedded # server. --- source include/not_embedded.inc +--source include/not_embedded.inc +--source include/default_charset.inc ########################################################################### # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/trigger.test mariadb-10.3-10.3.20/mysql-test/main/trigger.test --- mariadb-10.3-10.3.17/mysql-test/main/trigger.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/trigger.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,6 @@ # This test uses chmod, can't be run with root permissions -- source include/not_as_root.inc - +--source include/default_charset.inc # # Basic triggers test diff -Nru mariadb-10.3-10.3.17/mysql-test/main/truncate_badse.opt mariadb-10.3-10.3.20/mysql-test/main/truncate_badse.opt --- mariadb-10.3-10.3.17/mysql-test/main/truncate_badse.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/truncate_badse.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--plugin-maturity=unknown diff -Nru mariadb-10.3-10.3.17/mysql-test/main/truncate-stale-6500.result mariadb-10.3-10.3.20/mysql-test/main/truncate-stale-6500.result --- mariadb-10.3-10.3.17/mysql-test/main/truncate-stale-6500.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/truncate-stale-6500.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +set @save_query_cache_size=@@query_cache_size; SET GLOBAL query_cache_size=1024*1024*8; CREATE TABLE `test` ( `uniqueId` INT NOT NULL, @@ -30,4 +31,4 @@ SELECT SQL_NO_CACHE * FROM `test`; uniqueId partitionId DROP TABLE test; -SET GLOBAL query_cache_size=DEFAULT; +SET GLOBAL query_cache_size=@save_query_cache_size; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/truncate-stale-6500.test mariadb-10.3-10.3.20/mysql-test/main/truncate-stale-6500.test --- mariadb-10.3-10.3.17/mysql-test/main/truncate-stale-6500.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/truncate-stale-6500.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,7 @@ --source include/have_innodb.inc --source include/have_partition.inc +set @save_query_cache_size=@@query_cache_size; SET GLOBAL query_cache_size=1024*1024*8; CREATE TABLE `test` ( `uniqueId` INT NOT NULL, @@ -29,4 +30,4 @@ SELECT SQL_NO_CACHE * FROM `test`; DROP TABLE test; -SET GLOBAL query_cache_size=DEFAULT; +SET GLOBAL query_cache_size=@save_query_cache_size; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/type_date.result mariadb-10.3-10.3.20/mysql-test/main/type_date.result --- mariadb-10.3-10.3.17/mysql-test/main/type_date.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/type_date.result 2019-11-06 16:01:57.000000000 +0000 @@ -872,12 +872,14 @@ FROM v1 GROUP BY greatest(pk, 0, d2); group_concat(d1/(CASE 'b' WHEN 'j' THEN 'c' END)) NULL +NULL Warnings: Warning 1292 Incorrect datetime value: '1' for column `test`.`t1`.`pk` at row 1 Warning 1292 Incorrect datetime value: '2' for column `test`.`t1`.`pk` at row 1 Warning 1292 Incorrect datetime value: '1' for column `test`.`t1`.`pk` at row 1 Warning 1292 Incorrect datetime value: '1' for column `test`.`t1`.`pk` at row 1 Warning 1292 Incorrect datetime value: '2' for column `test`.`t1`.`pk` at row 2 +Warning 1292 Incorrect datetime value: '2' for column `test`.`t1`.`pk` at row 2 CREATE TABLE t2 AS SELECT greatest(pk, 0, d2) AS c1 FROM t1 LIMIT 0; SHOW CREATE TABLE t2; Table Create Table @@ -888,6 +890,37 @@ DROP VIEW v1; DROP TABLE t1; # +# MDEV-19699 Server crashes in Item_null_result::field_type upon SELECT with ROLLUP on constant table +# +CREATE TABLE t1 (d DATE) ENGINE=MyISAM; +INSERT INTO t1 VALUES ('1999-11-04'); +SELECT d FROM t1 GROUP BY d WITH ROLLUP HAVING d > '1990-01-01'; +d +1999-11-04 +DROP TABLE t1; +# +# MDEV-20431 GREATEST(int_col,date_col) returns wrong results in a view +# +CREATE TABLE t1 (pk INT NOT NULL, d DATE NOT NULL); +CREATE VIEW v1 AS SELECT * FROM t1; +INSERT INTO t1 VALUES (1,'2018-06-22'),(2,'2018-07-11'); +SELECT GREATEST(pk, d) FROM t1; +GREATEST(pk, d) +2018-06-22 +2018-07-11 +Warnings: +Warning 1292 Incorrect datetime value: '1' for column `test`.`t1`.`pk` at row 1 +Warning 1292 Incorrect datetime value: '2' for column `test`.`t1`.`pk` at row 2 +SELECT GREATEST(pk, d) FROM v1; +GREATEST(pk, d) +2018-06-22 +2018-07-11 +Warnings: +Warning 1292 Incorrect datetime value: '1' for column `test`.`t1`.`pk` at row 1 +Warning 1292 Incorrect datetime value: '2' for column `test`.`t1`.`pk` at row 2 +DROP VIEW v1; +DROP TABLE t1; +# # End of 10.1 tests # # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/type_date.test mariadb-10.3-10.3.20/mysql-test/main/type_date.test --- mariadb-10.3-10.3.17/mysql-test/main/type_date.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/type_date.test 2019-11-06 16:01:57.000000000 +0000 @@ -606,6 +606,30 @@ DROP VIEW v1; DROP TABLE t1; + +--echo # +--echo # MDEV-19699 Server crashes in Item_null_result::field_type upon SELECT with ROLLUP on constant table +--echo # + +CREATE TABLE t1 (d DATE) ENGINE=MyISAM; +INSERT INTO t1 VALUES ('1999-11-04'); +SELECT d FROM t1 GROUP BY d WITH ROLLUP HAVING d > '1990-01-01'; +DROP TABLE t1; + + +--echo # +--echo # MDEV-20431 GREATEST(int_col,date_col) returns wrong results in a view +--echo # + +CREATE TABLE t1 (pk INT NOT NULL, d DATE NOT NULL); +CREATE VIEW v1 AS SELECT * FROM t1; +INSERT INTO t1 VALUES (1,'2018-06-22'),(2,'2018-07-11'); +SELECT GREATEST(pk, d) FROM t1; +SELECT GREATEST(pk, d) FROM v1; +DROP VIEW v1; +DROP TABLE t1; + + --echo # --echo # End of 10.1 tests --echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/type_datetime.result mariadb-10.3-10.3.20/mysql-test/main/type_datetime.result --- mariadb-10.3-10.3.17/mysql-test/main/type_datetime.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/type_datetime.result 2019-11-06 16:01:57.000000000 +0000 @@ -1156,6 +1156,48 @@ 3 1976-12-14 13:21:07 DROP TABLE t1; # +# MDEV-19034 ASAN unknown-crash in get_date_time_separator with PAD_CHAR_TO_FULL_LENGTH +# +SET SQL_MODE=DEFAULT; +CREATE OR REPLACE TABLE t1 (a CHAR(11)); +CREATE OR REPLACE TABLE t2 (b DATETIME); +INSERT INTO t1 VALUES ('2010-02-19') ; +SET SQL_MODE= 'PAD_CHAR_TO_FULL_LENGTH'; +INSERT INTO t2 SELECT * FROM t1; +DROP TABLE t1, t2; +SET SQL_MODE=DEFAULT; +# +# MDEV-19699 Server crashes in Item_null_result::field_type upon SELECT with ROLLUP on constant table +# +CREATE TABLE t1 (d DATETIME) ENGINE=MyISAM; +INSERT INTO t1 VALUES ('1999-11-04'); +SELECT d FROM t1 GROUP BY d WITH ROLLUP HAVING d > '1990-01-01'; +d +1999-11-04 00:00:00 +DROP TABLE t1; +# +# MDEV-20431 GREATEST(int_col,date_col) returns wrong results in a view +# +CREATE TABLE t1 (pk INT NOT NULL, d DATETIME NOT NULL); +CREATE VIEW v1 AS SELECT * FROM t1; +INSERT INTO t1 VALUES (1,'2018-06-22 00:00:00'),(2,'2018-07-11 00:00:00'); +SELECT GREATEST(pk, d) FROM t1; +GREATEST(pk, d) +2018-06-22 00:00:00 +2018-07-11 00:00:00 +Warnings: +Warning 1292 Incorrect datetime value: '1' for column `test`.`t1`.`pk` at row 1 +Warning 1292 Incorrect datetime value: '2' for column `test`.`t1`.`pk` at row 2 +SELECT GREATEST(pk, d) FROM v1; +GREATEST(pk, d) +2018-06-22 00:00:00 +2018-07-11 00:00:00 +Warnings: +Warning 1292 Incorrect datetime value: '1' for column `test`.`t1`.`pk` at row 1 +Warning 1292 Incorrect datetime value: '2' for column `test`.`t1`.`pk` at row 2 +DROP VIEW v1; +DROP TABLE t1; +# # End of 10.1 tests # # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/type_datetime.test mariadb-10.3-10.3.20/mysql-test/main/type_datetime.test --- mariadb-10.3-10.3.17/mysql-test/main/type_datetime.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/type_datetime.test 2019-11-06 16:01:57.000000000 +0000 @@ -711,6 +711,43 @@ DROP TABLE t1; --echo # +--echo # MDEV-19034 ASAN unknown-crash in get_date_time_separator with PAD_CHAR_TO_FULL_LENGTH +--echo # + +SET SQL_MODE=DEFAULT; +CREATE OR REPLACE TABLE t1 (a CHAR(11)); +CREATE OR REPLACE TABLE t2 (b DATETIME); +INSERT INTO t1 VALUES ('2010-02-19') ; +SET SQL_MODE= 'PAD_CHAR_TO_FULL_LENGTH'; +INSERT INTO t2 SELECT * FROM t1; +DROP TABLE t1, t2; +SET SQL_MODE=DEFAULT; + + +--echo # +--echo # MDEV-19699 Server crashes in Item_null_result::field_type upon SELECT with ROLLUP on constant table +--echo # + +CREATE TABLE t1 (d DATETIME) ENGINE=MyISAM; +INSERT INTO t1 VALUES ('1999-11-04'); +SELECT d FROM t1 GROUP BY d WITH ROLLUP HAVING d > '1990-01-01'; +DROP TABLE t1; + + +--echo # +--echo # MDEV-20431 GREATEST(int_col,date_col) returns wrong results in a view +--echo # + +CREATE TABLE t1 (pk INT NOT NULL, d DATETIME NOT NULL); +CREATE VIEW v1 AS SELECT * FROM t1; +INSERT INTO t1 VALUES (1,'2018-06-22 00:00:00'),(2,'2018-07-11 00:00:00'); +SELECT GREATEST(pk, d) FROM t1; +SELECT GREATEST(pk, d) FROM v1; +DROP VIEW v1; +DROP TABLE t1; + + +--echo # --echo # End of 10.1 tests --echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/type_int.result mariadb-10.3-10.3.20/mysql-test/main/type_int.result --- mariadb-10.3-10.3.17/mysql-test/main/type_int.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/type_int.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,28 @@ # +# Start of 5.5 tests +# +# +# MDEV-15955 Assertion `field_types == 0 || field_types[field_pos] == MYSQL_TYPE_LONGLONG' failed in Protocol_text::store_longlong +# +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2); +SELECT @a := 1 FROM t1 ORDER BY STRCMP(STDDEV_SAMP(a), 'bar'); +@a := 1 +1 +SELECT COALESCE(1) FROM t1 ORDER BY STRCMP(STDDEV_SAMP(a), 'bar'); +COALESCE(1) +1 +SELECT COALESCE(@a:=1) FROM t1 ORDER BY STRCMP(STDDEV_SAMP(a), 'bar'); +COALESCE(@a:=1) +1 +SELECT COALESCE(@a) FROM t1 ORDER BY STRCMP(STDDEV_SAMP(a), 'bar'); +COALESCE(@a) +1 +DROP TABLE t1; +# +# End of 5.5 tests +# +# # Start of 10.1 tests # # @@ -236,5 +260,18 @@ DROP FUNCTION uint64; DROP FUNCTION sint64; # +# MDEV-20285 Wrong result on INSERT..SELECT when converting from SIGNED to UNSIGNED +# +CREATE TABLE t1 (a TINYINT UNSIGNED); +CREATE TABLE t2 (a TINYINT); +INSERT INTO t1 VALUES (255); +INSERT IGNORE INTO t2 SELECT a FROM t1; +Warnings: +Warning 1264 Out of range value for column 'a' at row 1 +SELECT * FROM t2; +a +127 +DROP TABLE t1, t2; +# # End of 10.3 tests # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/type_int.test mariadb-10.3-10.3.20/mysql-test/main/type_int.test --- mariadb-10.3-10.3.17/mysql-test/main/type_int.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/type_int.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,25 @@ --echo # +--echo # Start of 5.5 tests +--echo # + +--echo # +--echo # MDEV-15955 Assertion `field_types == 0 || field_types[field_pos] == MYSQL_TYPE_LONGLONG' failed in Protocol_text::store_longlong +--echo # + +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2); +SELECT @a := 1 FROM t1 ORDER BY STRCMP(STDDEV_SAMP(a), 'bar'); +SELECT COALESCE(1) FROM t1 ORDER BY STRCMP(STDDEV_SAMP(a), 'bar'); +SELECT COALESCE(@a:=1) FROM t1 ORDER BY STRCMP(STDDEV_SAMP(a), 'bar'); +SELECT COALESCE(@a) FROM t1 ORDER BY STRCMP(STDDEV_SAMP(a), 'bar'); +DROP TABLE t1; + +--echo # +--echo # End of 5.5 tests +--echo # + + +--echo # --echo # Start of 10.1 tests --echo # @@ -177,5 +198,16 @@ DROP FUNCTION sint64; --echo # +--echo # MDEV-20285 Wrong result on INSERT..SELECT when converting from SIGNED to UNSIGNED +--echo # + +CREATE TABLE t1 (a TINYINT UNSIGNED); +CREATE TABLE t2 (a TINYINT); +INSERT INTO t1 VALUES (255); +INSERT IGNORE INTO t2 SELECT a FROM t1; +SELECT * FROM t2; +DROP TABLE t1, t2; + +--echo # --echo # End of 10.3 tests --echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/type_newdecimal.result mariadb-10.3-10.3.20/mysql-test/main/type_newdecimal.result --- mariadb-10.3-10.3.17/mysql-test/main/type_newdecimal.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/type_newdecimal.result 2019-11-06 16:01:57.000000000 +0000 @@ -2038,6 +2038,70 @@ ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # +# MDEV-20495 Assertion `precision > 0' failed in decimal_bin_size upon CREATE .. SELECT with zerofilled decimal +# +CREATE TABLE t1 (d DECIMAL(1,0) ZEROFILL); +CREATE TABLE t2 AS SELECT 0 MOD d AS f FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `f` decimal(1,0) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1, t2; +CREATE TABLE t1 (d DECIMAL(1,0) UNSIGNED); +CREATE TABLE t2 AS SELECT 0 MOD d AS f FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `f` decimal(1,0) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE IF EXISTS t1,t2; +CREATE TABLE t1 (d DECIMAL(1,0) ZEROFILL); +CREATE TABLE t2 AS SELECT CAST(0 AS UNSIGNED) MOD d AS f FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `f` decimal(1,0) unsigned DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1, t2; +CREATE TABLE t1 (d DECIMAL(1,0) UNSIGNED); +CREATE TABLE t2 AS SELECT CAST(0 AS UNSIGNED) MOD d AS f FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `f` decimal(1,0) unsigned DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1,t2; +# +# MDEV-20560 Assertion `precision > 0' failed in decimal_bin_size upon SELECT with MOD short unsigned decimal +# +CREATE TABLE t1 (a DECIMAL(1,0) UNSIGNED); +INSERT INTO t1 VALUES (1.0),(2.0); +SELECT DISTINCT 1 MOD a FROM t1; +1 MOD a +0 +1 +CREATE TABLE t2 AS SELECT DISTINCT 1 MOD a AS f FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `f` decimal(1,0) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1, t2; +CREATE TABLE t1 (a DECIMAL(1,0) UNSIGNED); +INSERT INTO t1 VALUES (1.0),(2.0); +SELECT DISTINCT 1 MOD a FROM t1; +1 MOD a +0 +1 +CREATE TABLE t2 AS SELECT DISTINCT CAST(1 AS UNSIGNED) MOD a AS f FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `f` decimal(1,0) unsigned DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1, t2; +# # End of 5.5 tests # # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/type_newdecimal.test mariadb-10.3-10.3.20/mysql-test/main/type_newdecimal.test --- mariadb-10.3-10.3.17/mysql-test/main/type_newdecimal.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/type_newdecimal.test 2019-11-06 16:01:57.000000000 +0000 @@ -1628,6 +1628,49 @@ DROP TABLE t1; --echo # +--echo # MDEV-20495 Assertion `precision > 0' failed in decimal_bin_size upon CREATE .. SELECT with zerofilled decimal +--echo # + +CREATE TABLE t1 (d DECIMAL(1,0) ZEROFILL); +CREATE TABLE t2 AS SELECT 0 MOD d AS f FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t1, t2; + +CREATE TABLE t1 (d DECIMAL(1,0) UNSIGNED); +CREATE TABLE t2 AS SELECT 0 MOD d AS f FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE IF EXISTS t1,t2; + +CREATE TABLE t1 (d DECIMAL(1,0) ZEROFILL); +CREATE TABLE t2 AS SELECT CAST(0 AS UNSIGNED) MOD d AS f FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t1, t2; + +CREATE TABLE t1 (d DECIMAL(1,0) UNSIGNED); +CREATE TABLE t2 AS SELECT CAST(0 AS UNSIGNED) MOD d AS f FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t1,t2; + +--echo # +--echo # MDEV-20560 Assertion `precision > 0' failed in decimal_bin_size upon SELECT with MOD short unsigned decimal +--echo # + +CREATE TABLE t1 (a DECIMAL(1,0) UNSIGNED); +INSERT INTO t1 VALUES (1.0),(2.0); +SELECT DISTINCT 1 MOD a FROM t1; +CREATE TABLE t2 AS SELECT DISTINCT 1 MOD a AS f FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t1, t2; + +CREATE TABLE t1 (a DECIMAL(1,0) UNSIGNED); +INSERT INTO t1 VALUES (1.0),(2.0); +SELECT DISTINCT 1 MOD a FROM t1; +CREATE TABLE t2 AS SELECT DISTINCT CAST(1 AS UNSIGNED) MOD a AS f FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t1, t2; + + +--echo # --echo # End of 5.5 tests --echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/type_time_6065.test mariadb-10.3-10.3.20/mysql-test/main/type_time_6065.test --- mariadb-10.3-10.3.17/mysql-test/main/type_time_6065.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/type_time_6065.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,5 @@ +--source include/default_optimizer_switch.inc + # # MDEV-6065 MySQL Bug#13623473 "MISSING ROWS ON SELECT AND JOIN WITH TIME/DATETIME COMPARE" # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/type_varchar.opt mariadb-10.3-10.3.20/mysql-test/main/type_varchar.opt --- mariadb-10.3-10.3.17/mysql-test/main/type_varchar.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/type_varchar.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--character-set-server=latin1 --collation_server=latin1_swedish_ci diff -Nru mariadb-10.3-10.3.17/mysql-test/main/udf_query_cache.result mariadb-10.3-10.3.20/mysql-test/main/udf_query_cache.result --- mariadb-10.3-10.3.17/mysql-test/main/udf_query_cache.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/udf_query_cache.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,7 @@ drop table if exists t1; CREATE FUNCTION metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB"; create table t1 (a char); +set @save_query_cache_size=@@query_cache_size; set GLOBAL query_cache_size=1355776; reset query cache; flush status; @@ -22,4 +23,4 @@ Qcache_queries_in_cache 0 drop table t1; drop function metaphon; -set GLOBAL query_cache_size=default; +set GLOBAL query_cache_size=@save_query_cache_size; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/udf_query_cache.test mariadb-10.3-10.3.20/mysql-test/main/udf_query_cache.test --- mariadb-10.3-10.3.17/mysql-test/main/udf_query_cache.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/udf_query_cache.test 2019-11-06 16:01:57.000000000 +0000 @@ -18,6 +18,7 @@ eval CREATE FUNCTION metaphon RETURNS STRING SONAME "$UDF_EXAMPLE_SO"; create table t1 (a char); +set @save_query_cache_size=@@query_cache_size; set GLOBAL query_cache_size=1355776; reset query cache; flush status; @@ -32,5 +33,6 @@ drop table t1; drop function metaphon; -set GLOBAL query_cache_size=default; +set GLOBAL query_cache_size=@save_query_cache_size; + diff -Nru mariadb-10.3-10.3.17/mysql-test/main/union.result mariadb-10.3-10.3.20/mysql-test/main/union.result --- mariadb-10.3-10.3.17/mysql-test/main/union.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/union.result 2019-11-06 16:01:57.000000000 +0000 @@ -560,12 +560,15 @@ 2 2 3 3 4 4 +set @save_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity,@save_optimizer_switch=@@optimizer_switch; +SET optimizer_switch='outer_join_with_cache=off',@@optimizer_use_condition_selectivity=1; explain (select * from t1 where a=1 and b=10) union (select straight_join t1.a,t2.a from t1,t2 where t1.a=t2.a); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables 2 UNION t1 index PRIMARY PRIMARY 4 NULL 4 Using index 2 UNION t2 index PRIMARY PRIMARY 4 NULL 4 Using where; Using index; Using join buffer (flat, BNL join) NULL UNION RESULT ALL NULL NULL NULL NULL NULL +set @@optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity,@@optimizer_switch=@save_optimizer_switch; explain (select * from t1 where a=1) union (select * from t1 where b=1); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t1 const PRIMARY PRIMARY 4 const 1 @@ -1368,9 +1371,7 @@ `left(a,100000000)` longtext DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop tables t1,t2,t3; -SELECT @tmp_max:= @@global.max_allowed_packet; -@tmp_max:= @@global.max_allowed_packet -16777216 +SET @tmp_max= @@global.max_allowed_packet; SET @@global.max_allowed_packet=25000000; Warnings: Warning 1292 Truncated incorrect max_allowed_packet value: '25000000' diff -Nru mariadb-10.3-10.3.17/mysql-test/main/union.test mariadb-10.3-10.3.20/mysql-test/main/union.test --- mariadb-10.3-10.3.17/mysql-test/main/union.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/union.test 2019-11-06 16:01:57.000000000 +0000 @@ -339,7 +339,12 @@ (select * from t1 where a=5 and a=6) union (select * from t2 where a=1); (select t1.a,t1.b from t1,t2 where t1.a=5) union (select * from t2 where a=1); (select * from t1 where a=1) union (select t1.a,t2.a from t1,t2 where t1.a=t2.a); + +set @save_optimizer_use_condition_selectivity=@@optimizer_use_condition_selectivity,@save_optimizer_switch=@@optimizer_switch; +SET optimizer_switch='outer_join_with_cache=off',@@optimizer_use_condition_selectivity=1; explain (select * from t1 where a=1 and b=10) union (select straight_join t1.a,t2.a from t1,t2 where t1.a=t2.a); +set @@optimizer_use_condition_selectivity=@save_optimizer_use_condition_selectivity,@@optimizer_switch=@save_optimizer_switch; + explain (select * from t1 where a=1) union (select * from t1 where b=1); drop table t1,t2; create table t1 ( id int not null auto_increment, primary key (id) ,user_name text ); @@ -840,7 +845,7 @@ # exceeds mediumtext maximum length # -SELECT @tmp_max:= @@global.max_allowed_packet; +SET @tmp_max= @@global.max_allowed_packet; SET @@global.max_allowed_packet=25000000; # switching connection to allow the new max_allowed_packet take effect --connect (newconn, localhost, root,,) diff -Nru mariadb-10.3-10.3.17/mysql-test/main/upgrade.opt mariadb-10.3-10.3.20/mysql-test/main/upgrade.opt --- mariadb-10.3-10.3.17/mysql-test/main/upgrade.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/upgrade.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--character-set-server=latin1 --collation_server=latin1_swedish_ci diff -Nru mariadb-10.3-10.3.17/mysql-test/main/upgrade.test mariadb-10.3-10.3.20/mysql-test/main/upgrade.test --- mariadb-10.3-10.3.17/mysql-test/main/upgrade.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/upgrade.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,5 @@ call mtr.add_suppression("Invalid .old.. table or database name"); --- source include/not_embedded.inc +--source include/not_embedded.inc --disable_warnings drop database if exists `mysqltest1`; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/userstat-badlogin-4824.result mariadb-10.3-10.3.20/mysql-test/main/userstat-badlogin-4824.result --- mariadb-10.3-10.3.17/mysql-test/main/userstat-badlogin-4824.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/userstat-badlogin-4824.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +set @save_userstat=@@global.userstat; create user foo@localhost identified by 'foo'; flush user_statistics; set global userstat=1; @@ -18,4 +19,4 @@ user bytes_received foo 18 drop user foo@localhost; -set global userstat=0; +set global userstat=@save_userstat; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/userstat-badlogin-4824.test mariadb-10.3-10.3.20/mysql-test/main/userstat-badlogin-4824.test --- mariadb-10.3-10.3.17/mysql-test/main/userstat-badlogin-4824.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/userstat-badlogin-4824.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,6 +2,7 @@ # MDEV-4824 userstats - wrong user statistics # --source include/not_embedded.inc +set @save_userstat=@@global.userstat; create user foo@localhost identified by 'foo'; flush user_statistics; @@ -30,4 +31,4 @@ select user, bytes_received from information_schema.user_statistics where user = 'foo'; drop user foo@localhost; -set global userstat=0; +set global userstat=@save_userstat; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/userstat.opt mariadb-10.3-10.3.20/mysql-test/main/userstat.opt --- mariadb-10.3-10.3.17/mysql-test/main/userstat.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/userstat.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--disable-userstat diff -Nru mariadb-10.3-10.3.17/mysql-test/main/user_var-binlog.result mariadb-10.3-10.3.20/mysql-test/main/user_var-binlog.result --- mariadb-10.3-10.3.17/mysql-test/main/user_var-binlog.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/user_var-binlog.result 2019-11-06 16:01:57.000000000 +0000 @@ -33,7 +33,7 @@ SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=#/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; INSERT INTO t1 VALUES(@`a b`) diff -Nru mariadb-10.3-10.3.17/mysql-test/main/user_var-binlog.test mariadb-10.3-10.3.20/mysql-test/main/user_var-binlog.test --- mariadb-10.3-10.3.17/mysql-test/main/user_var-binlog.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/user_var-binlog.test 2019-11-06 16:01:57.000000000 +0000 @@ -18,6 +18,7 @@ # escaped). let $MYSQLD_DATADIR= `select @@datadir`; flush logs; +--replace_regex /collation_server=\d+/collation_server=#/ --exec $MYSQL_BINLOG --short-form $MYSQLD_DATADIR/master-bin.000001 drop table t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/variables-master.opt mariadb-10.3-10.3.20/mysql-test/main/variables-master.opt --- mariadb-10.3-10.3.17/mysql-test/main/variables-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/variables-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1 +1 @@ ---max-user-connections=1 +--max-user-connections=1 --myisam_recover_options=BACKUP,QUICK diff -Nru mariadb-10.3-10.3.17/mysql-test/main/variables-notembedded.result mariadb-10.3-10.3.20/mysql-test/main/variables-notembedded.result --- mariadb-10.3-10.3.17/mysql-test/main/variables-notembedded.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/variables-notembedded.result 2019-11-06 16:01:57.000000000 +0000 @@ -33,12 +33,12 @@ # SHOW VARIABLES like 'relay_log'; Variable_name Value -relay_log mysqld-relay-bin +relay_log XXX-relay-bin SELECT @@session.relay_log; ERROR HY000: Variable 'relay_log' is a GLOBAL variable SELECT @@global.relay_log; @@global.relay_log -mysqld-relay-bin +XXX-relay-bin SET @@session.relay_log= 'x'; ERROR HY000: Variable 'relay_log' is a read only variable SET @@global.relay_log= 'x'; @@ -46,12 +46,12 @@ # SHOW VARIABLES like 'relay_log_basename'; Variable_name Value -relay_log_basename MYSQLTEST_VARDIR/mysqld.1/data/mysqld-relay-bin +relay_log_basename MYSQLTEST_VARDIR/mysqld.1/data/XXX-relay-bin SELECT @@session.relay_log_basename; ERROR HY000: Variable 'relay_log_basename' is a GLOBAL variable SELECT @@global.relay_log_basename; @@global.relay_log_basename -MYSQLTEST_VARDIR/mysqld.1/data/mysqld-relay-bin +MYSQLTEST_VARDIR/mysqld.1/data/XXX-relay-bin SET @@session.relay_log_basename= 'x'; ERROR HY000: Variable 'relay_log_basename' is a read only variable SET @@global.relay_log_basename= 'x'; @@ -72,12 +72,12 @@ # SHOW VARIABLES like 'relay_log_index'; Variable_name Value -relay_log_index MYSQLTEST_VARDIR/mysqld.1/data/mysqld-relay-bin.index +relay_log_index MYSQLTEST_VARDIR/mysqld.1/data/XXX-relay-bin.index SELECT @@session.relay_log_index; ERROR HY000: Variable 'relay_log_index' is a GLOBAL variable SELECT @@global.relay_log_index; @@global.relay_log_index -MYSQLTEST_VARDIR/mysqld.1/data/mysqld-relay-bin.index +MYSQLTEST_VARDIR/mysqld.1/data/XXX-relay-bin.index SET @@session.relay_log_index= 'x'; ERROR HY000: Variable 'relay_log_index' is a read only variable SET @@global.relay_log_index= 'x'; @@ -152,6 +152,7 @@ # ARE NOT BEING HONORED # CREATE TABLE t1 (a MEDIUMTEXT); +set @save_max_allowed_packet=@@global.max_allowed_packet, @save_net_buffer_length=@@net_buffer_length; SET GLOBAL max_allowed_packet=2048; Warnings: Warning 1708 The value of 'max_allowed_packet' should be no less than the value of 'net_buffer_length' @@ -170,7 +171,7 @@ disconnect con1; SELECT LENGTH(a) FROM t1; LENGTH(a) -SET GLOBAL max_allowed_packet=default; -SET GLOBAL net_buffer_length=default; +SET GLOBAL max_allowed_packet=@save_max_allowed_packet; +SET GLOBAL net_buffer_length=@save_net_buffer_length; DROP TABLE t1; End of 5.1 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/variables-notembedded.test mariadb-10.3-10.3.20/mysql-test/main/variables-notembedded.test --- mariadb-10.3-10.3.17/mysql-test/main/variables-notembedded.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/variables-notembedded.test 2019-11-06 16:01:57.000000000 +0000 @@ -48,9 +48,12 @@ SET @@global.log_slave_updates= true; # --echo # +let $relay_prefix=`select concat(substring_index(@@relay_log,"-",1),"-")`; +--replace_result $relay_prefix XXX- SHOW VARIABLES like 'relay_log'; --error ER_INCORRECT_GLOBAL_LOCAL_VAR SELECT @@session.relay_log; +--replace_result $relay_prefix XXX- SELECT @@global.relay_log; --error ER_INCORRECT_GLOBAL_LOCAL_VAR SET @@session.relay_log= 'x'; @@ -58,11 +61,11 @@ SET @@global.relay_log= 'x'; # --echo # ---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $relay_prefix XXX- SHOW VARIABLES like 'relay_log_basename'; --error ER_INCORRECT_GLOBAL_LOCAL_VAR SELECT @@session.relay_log_basename; ---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $relay_prefix XXX- SELECT @@global.relay_log_basename; --error ER_INCORRECT_GLOBAL_LOCAL_VAR SET @@session.relay_log_basename= 'x'; @@ -70,9 +73,11 @@ SET @@global.relay_log_basename= 'x'; # --echo # +--replace_result $relay_prefix XXX- SHOW VARIABLES like 'log_bin_basename'; --error ER_INCORRECT_GLOBAL_LOCAL_VAR SELECT @@session.log_bin_basename; +--replace_result $relay_prefix XXX- SELECT @@global.log_bin_basename; --error ER_INCORRECT_GLOBAL_LOCAL_VAR SET @@session.log_bin_basename= 'x'; @@ -80,11 +85,11 @@ SET @@global.log_bin_basename= 'x'; # --echo # ---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $relay_prefix XXX- SHOW VARIABLES like 'relay_log_index'; --error ER_INCORRECT_GLOBAL_LOCAL_VAR SELECT @@session.relay_log_index; ---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $relay_prefix XXX- SELECT @@global.relay_log_index; --error ER_INCORRECT_GLOBAL_LOCAL_VAR SET @@session.relay_log_index= 'x'; @@ -92,9 +97,11 @@ SET @@global.relay_log_index= 'x'; # --echo # +--replace_result $relay_prefix XXX- SHOW VARIABLES like 'log_bin_index'; --error ER_INCORRECT_GLOBAL_LOCAL_VAR SELECT @@session.log_bin_index; +--replace_result $relay_prefix XXX- SELECT @@global.log_bin_index; --error ER_INCORRECT_GLOBAL_LOCAL_VAR SET @@session.log_bin_index= 'x'; @@ -151,6 +158,7 @@ CREATE TABLE t1 (a MEDIUMTEXT); +set @save_max_allowed_packet=@@global.max_allowed_packet, @save_net_buffer_length=@@net_buffer_length; SET GLOBAL max_allowed_packet=2048; SET GLOBAL net_buffer_length=4096; CONNECT (con1,localhost,root,,test); @@ -170,8 +178,8 @@ DISCONNECT con1; SELECT LENGTH(a) FROM t1; -SET GLOBAL max_allowed_packet=default; -SET GLOBAL net_buffer_length=default; +SET GLOBAL max_allowed_packet=@save_max_allowed_packet; +SET GLOBAL net_buffer_length=@save_net_buffer_length; DROP TABLE t1; --echo End of 5.1 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/main/variables.result mariadb-10.3-10.3.20/mysql-test/main/variables.result --- mariadb-10.3-10.3.17/mysql-test/main/variables.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/variables.result 2019-11-06 16:01:57.000000000 +0000 @@ -27,7 +27,8 @@ set @my_max_allowed_packet =@@global.max_allowed_packet; set @my_delay_key_write =@@global.delay_key_write; set @my_join_buffer_size =@@global.join_buffer_size; -set @my_log_warnings =@@global.log_warnings; +set @my_log_warnings =@@global.log_warnings; +set @my_local_infile =@@global.local_infile; set @`test`=1; select @test, @`test`, @TEST, @`TEST`, @"teSt"; @test @`test` @TEST @`TEST` @"teSt" @@ -522,9 +523,6 @@ set max_join_size=100; set max_sort_length=100; set global max_user_connections=100; -select @@max_user_connections; -@@max_user_connections -100 set global max_write_lock_count=100; set myisam_sort_buffer_size=100; Warnings: @@ -648,13 +646,14 @@ VARIABLE_NAME VARIABLE_VALUE MYISAM_MAX_SORT_FILE_SIZE MAX_FILE_SIZE set global myisam_max_sort_file_size=default; +set @@global.max_user_connections=10, @@local.max_join_size=1000; select @@global.max_user_connections,@@local.max_join_size; @@global.max_user_connections @@local.max_join_size -100 100 +10 1000 set @svc=@@global.max_user_connections, @svj=@@local.max_join_size; select @@global.max_user_connections,@@local.max_join_size; @@global.max_user_connections @@local.max_join_size -100 100 +10 1000 set @@global.max_user_connections=111,@@local.max_join_size=222; select @@global.max_user_connections,@@local.max_join_size; @@global.max_user_connections @@local.max_join_size @@ -666,12 +665,13 @@ set @@global.max_user_connections=@svc, @@local.max_join_size=@svj; select @@global.max_user_connections,@@local.max_join_size; @@global.max_user_connections @@local.max_join_size -100 100 +10 1000 set @a=1, @b=2; set @a=@b, @b=@a; select @a, @b; @a @b 2 1 +set @@global.max_user_connections=@my_max_user_connections; set @@global.global.key_buffer_size= 1; ERROR HY000: Unknown structured system variable or ROW routine variable 'global' set GLOBAL global.key_buffer_size= 1; @@ -1061,12 +1061,13 @@ set global net_read_timeout =@my_net_read_timeout; set global server_id =@my_server_id; set global slow_launch_time =@my_slow_launch_time; -set global default_storage_engine =@my_storage_engine; +set global default_storage_engine =@my_storage_engine; set global thread_cache_size =@my_thread_cache_size; -set global max_allowed_packet = default; +set global max_allowed_packet =@my_max_allowed_packet; set global delay_key_write =@my_delay_key_write; set global join_buffer_size =@my_join_buffer_size; set global log_warnings =@my_log_warnings; +set global local_infile =@my_local_infile; show global variables where Variable_name='table_definition_cache'; Variable_name Value table_definition_cache # @@ -1136,12 +1137,12 @@ # SHOW VARIABLES like 'back_log'; Variable_name Value -back_log 80 +back_log # SELECT @@session.back_log; ERROR HY000: Variable 'back_log' is a GLOBAL variable -SELECT @@global.back_log; -@@global.back_log -80 +SELECT @@global.back_log > 0; +@@global.back_log > 0 +1 SET @@session.back_log= 7; ERROR HY000: Variable 'back_log' is a read only variable SET @@global.back_log= 7; @@ -1492,12 +1493,12 @@ # # Bug #37168 : Missing variable - skip_name_resolve # -SELECT @@skip_name_resolve; -@@skip_name_resolve -0 +SELECT @@skip_name_resolve >= 0; +@@skip_name_resolve >= 0 +1 SHOW VARIABLES LIKE 'skip_name_resolve'; Variable_name Value -skip_name_resolve OFF +skip_name_resolve # # # Bug #43233 : Some server variables are clipped during "update," # not "check" stage @@ -1531,9 +1532,9 @@ SET @@global.max_join_size=DEFAULT; SET @@global.key_buffer_size=@kbs; SET @@global.key_cache_block_size=@kcbs; -select @@max_long_data_size; -@@max_long_data_size -16777216 +select @@max_long_data_size > 0; +@@max_long_data_size > 0 +1 # # Bug#11766424 59527: # Assert in DECIMAL_BIN_SIZE: diff -Nru mariadb-10.3-10.3.17/mysql-test/main/variables.test mariadb-10.3-10.3.20/mysql-test/main/variables.test --- mariadb-10.3-10.3.17/mysql-test/main/variables.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/variables.test 2019-11-06 16:01:57.000000000 +0000 @@ -36,7 +36,9 @@ set @my_max_allowed_packet =@@global.max_allowed_packet; set @my_delay_key_write =@@global.delay_key_write; set @my_join_buffer_size =@@global.join_buffer_size; -set @my_log_warnings =@@global.log_warnings; +set @my_log_warnings =@@global.log_warnings; +set @my_local_infile =@@global.local_infile; + # case insensitivity tests (new in 5.0) set @`test`=1; select @test, @`test`, @TEST, @`TEST`, @"teSt"; @@ -314,7 +316,6 @@ set max_join_size=100; set max_sort_length=100; set global max_user_connections=100; -select @@max_user_connections; set global max_write_lock_count=100; set myisam_sort_buffer_size=100; set global net_buffer_length=100; @@ -423,6 +424,10 @@ # # swap # + +# set some variables to play with +set @@global.max_user_connections=10, @@local.max_join_size=1000; + select @@global.max_user_connections,@@local.max_join_size; set @svc=@@global.max_user_connections, @svj=@@local.max_join_size; select @@global.max_user_connections,@@local.max_join_size; @@ -435,6 +440,7 @@ set @a=1, @b=2; set @a=@b, @b=@a; select @a, @b; +set @@global.max_user_connections=@my_max_user_connections; # # Bug#2586:Disallow global/session/local as structured var. instance names @@ -814,12 +820,13 @@ set global net_read_timeout =@my_net_read_timeout; set global server_id =@my_server_id; set global slow_launch_time =@my_slow_launch_time; -set global default_storage_engine =@my_storage_engine; +set global default_storage_engine =@my_storage_engine; set global thread_cache_size =@my_thread_cache_size; -set global max_allowed_packet = default; +set global max_allowed_packet =@my_max_allowed_packet; set global delay_key_write =@my_delay_key_write; set global join_buffer_size =@my_join_buffer_size; set global log_warnings =@my_log_warnings; +set global local_infile =@my_local_infile; # # Bug#28580 Repeatation of status variables @@ -891,10 +898,11 @@ # Additional variables fixed. # --echo # +--replace_column 2 # SHOW VARIABLES like 'back_log'; --error ER_INCORRECT_GLOBAL_LOCAL_VAR SELECT @@session.back_log; -SELECT @@global.back_log; +SELECT @@global.back_log > 0; --error ER_INCORRECT_GLOBAL_LOCAL_VAR SET @@session.back_log= 7; --error ER_INCORRECT_GLOBAL_LOCAL_VAR @@ -1208,7 +1216,8 @@ --echo # Bug #37168 : Missing variable - skip_name_resolve --echo # -SELECT @@skip_name_resolve; +SELECT @@skip_name_resolve >= 0; +--replace_column 2 # SHOW VARIABLES LIKE 'skip_name_resolve'; --echo # @@ -1258,7 +1267,7 @@ # # Bug#56976: added new start-up parameter # -select @@max_long_data_size; +select @@max_long_data_size > 0; --echo # --echo # Bug#11766424 59527: diff -Nru mariadb-10.3-10.3.17/mysql-test/main/view.result mariadb-10.3-10.3.20/mysql-test/main/view.result --- mariadb-10.3-10.3.17/mysql-test/main/view.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/view.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,3 @@ -SET @save_optimizer_switch=@@optimizer_switch; SET optimizer_switch='outer_join_with_cache=off'; create view v1 (c,d) as select a,b from t1; ERROR 42S02: Table 'test.t1' doesn't exist @@ -3717,76 +3716,76 @@ 2 CREATE VIEW v2 AS SELECT t1.a FROM t1, v1 AS a; REPLACE INTO v2(a) SELECT 1 FROM t1,t1 AS c; -SELECT * FROM v2; +SELECT * FROM v2 order by 1; a 1 -2 1 -2 1 -2 1 2 +2 +2 +2 REPLACE INTO v2(a) SELECT 3 FROM t1,t1 AS c; -SELECT * FROM v2; +SELECT * FROM v2 order by 1; a 1 -2 -3 1 -2 -3 1 -2 -3 1 -2 -3 1 -2 -3 1 -2 -3 1 -2 -3 1 -2 -3 1 2 +2 +2 +2 +2 +2 +2 +2 +2 +3 +3 +3 +3 +3 +3 +3 +3 3 INSERT INTO v2(a) SELECT 1 FROM t1,t1 AS c ON DUPLICATE KEY UPDATE `v2`.`a`= 1; -SELECT * FROM v2; +SELECT * FROM v2 order by 1; a 1 -2 -3 1 -2 -3 1 -2 -3 1 -2 -3 1 -2 -3 1 -2 -3 1 -2 -3 1 -2 -3 1 2 +2 +2 +2 +2 +2 +2 +2 +2 +3 +3 +3 +3 +3 +3 +3 +3 3 DROP VIEW v1; DROP VIEW v2; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/view.test mariadb-10.3-10.3.20/mysql-test/main/view.test --- mariadb-10.3-10.3.17/mysql-test/main/view.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/view.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,8 +1,8 @@ --source include/have_partition.inc # Save the initial number of concurrent sessions. --source include/count_sessions.inc +--source include/default_optimizer_switch.inc -SET @save_optimizer_switch=@@optimizer_switch; SET optimizer_switch='outer_join_with_cache=off'; # @@ -3664,12 +3664,12 @@ CREATE VIEW v2 AS SELECT t1.a FROM t1, v1 AS a; REPLACE INTO v2(a) SELECT 1 FROM t1,t1 AS c; -SELECT * FROM v2; +SELECT * FROM v2 order by 1; REPLACE INTO v2(a) SELECT 3 FROM t1,t1 AS c; -SELECT * FROM v2; +SELECT * FROM v2 order by 1; INSERT INTO v2(a) SELECT 1 FROM t1,t1 AS c ON DUPLICATE KEY UPDATE `v2`.`a`= 1; -SELECT * FROM v2; +SELECT * FROM v2 order by 1; DROP VIEW v1; DROP VIEW v2; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/warnings.result mariadb-10.3-10.3.20/mysql-test/main/warnings.result --- mariadb-10.3-10.3.17/mysql-test/main/warnings.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/warnings.result 2019-11-06 16:01:57.000000000 +0000 @@ -115,6 +115,7 @@ Warnings: Warning 1265 Data truncated for column 'b' at row 1 Warning 1265 Data truncated for column 'b' at row 2 +Warning 1264 Out of range value for column 'a' at row 3 Warning 1265 Data truncated for column 'b' at row 3 Warning 1048 Column 'a' cannot be null Warning 1265 Data truncated for column 'b' at row 4 diff -Nru mariadb-10.3-10.3.17/mysql-test/main/win_percentile.result mariadb-10.3-10.3.20/mysql-test/main/win_percentile.result --- mariadb-10.3-10.3.17/mysql-test/main/win_percentile.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/win_percentile.result 2019-11-06 16:01:57.000000000 +0000 @@ -36,23 +36,23 @@ Tatiana 4.0000000000 select name, percentile_disc(0.5) within group(order by score) over (partition by name) as c from t1; name c -Chun 3.0000000000 -Chun 3.0000000000 -Kaolin 4.0000000000 -Kaolin 4.0000000000 -Kaolin 4.0000000000 -Tata 4.0000000000 -Tatiana 4.0000000000 +Chun 3.0000 +Chun 3.0000 +Kaolin 4.0000 +Kaolin 4.0000 +Kaolin 4.0000 +Tata 4.0000 +Tatiana 4.0000 # no partition clause select name, percentile_disc(0.5) within group(order by score) over () from t1; name percentile_disc(0.5) within group(order by score) over () -Chun 4.0000000000 -Chun 4.0000000000 -Kaolin 4.0000000000 -Kaolin 4.0000000000 -Kaolin 4.0000000000 -Tata 4.0000000000 -Tatiana 4.0000000000 +Chun 4.0000 +Chun 4.0000 +Kaolin 4.0000 +Kaolin 4.0000 +Kaolin 4.0000 +Tata 4.0000 +Tatiana 4.0000 select name, percentile_cont(0.5) within group(order by score) over () from t1; name percentile_cont(0.5) within group(order by score) over () Chun 4.0000000000 @@ -79,13 +79,13 @@ Tatiana 4.0000000000 select * from ( select name , percentile_disc(0.5) within group ( order by score) over (partition by name ) from t1 ) as t; name percentile_disc(0.5) within group ( order by score) over (partition by name ) -Chun 3.0000000000 -Chun 3.0000000000 -Kaolin 4.0000000000 -Kaolin 4.0000000000 -Kaolin 4.0000000000 -Tata 4.0000000000 -Tatiana 4.0000000000 +Chun 3.0000 +Chun 3.0000 +Kaolin 4.0000 +Kaolin 4.0000 +Kaolin 4.0000 +Tata 4.0000 +Tatiana 4.0000 select name from t1 a where (select percentile_disc(0.5) within group (order by score) over (partition by name) from t1 b limit 1) >= 0.5; name Chun @@ -118,13 +118,13 @@ #complete query with partition column select name,cume_dist() over (partition by name order by score), percentile_disc(0.5) within group(order by score) over (partition by name) as c from t1; name cume_dist() over (partition by name order by score) c -Chun 0.5000000000 3.0000000000 -Chun 1.0000000000 3.0000000000 -Kaolin 0.3333333333 4.0000000000 -Kaolin 0.6666666667 4.0000000000 -Kaolin 1.0000000000 4.0000000000 -Tata 1.0000000000 4.0000000000 -Tatiana 1.0000000000 4.0000000000 +Chun 0.5000000000 3.0000 +Chun 1.0000000000 3.0000 +Kaolin 0.3333333333 4.0000 +Kaolin 0.6666666667 4.0000 +Kaolin 1.0000000000 4.0000 +Tata 1.0000000000 4.0000 +Tatiana 1.0000000000 4.0000 select name, percentile_cont(0.5) within group(order by score) over (partition by name) as c from t1; name c Chun 5.0000000000 @@ -136,94 +136,94 @@ Tatiana 4.0000000000 select name,cume_dist() over (partition by name order by score) as b, percentile_disc(0.1) within group(order by score) over (partition by name) as c from t1; name b c -Chun 0.5000000000 3.0000000000 -Chun 1.0000000000 3.0000000000 -Kaolin 0.3333333333 3.0000000000 -Kaolin 0.6666666667 3.0000000000 -Kaolin 1.0000000000 3.0000000000 -Tata 1.0000000000 4.0000000000 -Tatiana 1.0000000000 4.0000000000 +Chun 0.5000000000 3.0000 +Chun 1.0000000000 3.0000 +Kaolin 0.3333333333 3.0000 +Kaolin 0.6666666667 3.0000 +Kaolin 1.0000000000 3.0000 +Tata 1.0000000000 4.0000 +Tatiana 1.0000000000 4.0000 select name,cume_dist() over (partition by name order by score) as b, percentile_disc(0.2) within group(order by score) over (partition by name) as c from t1; name b c -Chun 0.5000000000 3.0000000000 -Chun 1.0000000000 3.0000000000 -Kaolin 0.3333333333 3.0000000000 -Kaolin 0.6666666667 3.0000000000 -Kaolin 1.0000000000 3.0000000000 -Tata 1.0000000000 4.0000000000 -Tatiana 1.0000000000 4.0000000000 +Chun 0.5000000000 3.0000 +Chun 1.0000000000 3.0000 +Kaolin 0.3333333333 3.0000 +Kaolin 0.6666666667 3.0000 +Kaolin 1.0000000000 3.0000 +Tata 1.0000000000 4.0000 +Tatiana 1.0000000000 4.0000 select name,cume_dist() over (partition by name order by score) as b, percentile_disc(0.3) within group(order by score) over (partition by name) as c from t1; name b c -Chun 0.5000000000 3.0000000000 -Chun 1.0000000000 3.0000000000 -Kaolin 0.3333333333 3.0000000000 -Kaolin 0.6666666667 3.0000000000 -Kaolin 1.0000000000 3.0000000000 -Tata 1.0000000000 4.0000000000 -Tatiana 1.0000000000 4.0000000000 +Chun 0.5000000000 3.0000 +Chun 1.0000000000 3.0000 +Kaolin 0.3333333333 3.0000 +Kaolin 0.6666666667 3.0000 +Kaolin 1.0000000000 3.0000 +Tata 1.0000000000 4.0000 +Tatiana 1.0000000000 4.0000 select name,cume_dist() over (partition by name order by score) as b, percentile_disc(0.4) within group(order by score) over (partition by name) as c from t1; name b c -Chun 0.5000000000 3.0000000000 -Chun 1.0000000000 3.0000000000 -Kaolin 0.3333333333 4.0000000000 -Kaolin 0.6666666667 4.0000000000 -Kaolin 1.0000000000 4.0000000000 -Tata 1.0000000000 4.0000000000 -Tatiana 1.0000000000 4.0000000000 +Chun 0.5000000000 3.0000 +Chun 1.0000000000 3.0000 +Kaolin 0.3333333333 4.0000 +Kaolin 0.6666666667 4.0000 +Kaolin 1.0000000000 4.0000 +Tata 1.0000000000 4.0000 +Tatiana 1.0000000000 4.0000 select name,cume_dist() over (partition by name order by score) as b, percentile_disc(0.5) within group(order by score) over (partition by name) as c from t1; name b c -Chun 0.5000000000 3.0000000000 -Chun 1.0000000000 3.0000000000 -Kaolin 0.3333333333 4.0000000000 -Kaolin 0.6666666667 4.0000000000 -Kaolin 1.0000000000 4.0000000000 -Tata 1.0000000000 4.0000000000 -Tatiana 1.0000000000 4.0000000000 +Chun 0.5000000000 3.0000 +Chun 1.0000000000 3.0000 +Kaolin 0.3333333333 4.0000 +Kaolin 0.6666666667 4.0000 +Kaolin 1.0000000000 4.0000 +Tata 1.0000000000 4.0000 +Tatiana 1.0000000000 4.0000 select name,cume_dist() over (partition by name order by score) as b, percentile_disc(0.6) within group(order by score) over (partition by name) as c from t1; name b c -Chun 0.5000000000 7.0000000000 -Chun 1.0000000000 7.0000000000 -Kaolin 0.3333333333 4.0000000000 -Kaolin 0.6666666667 4.0000000000 -Kaolin 1.0000000000 4.0000000000 -Tata 1.0000000000 4.0000000000 -Tatiana 1.0000000000 4.0000000000 +Chun 0.5000000000 7.0000 +Chun 1.0000000000 7.0000 +Kaolin 0.3333333333 4.0000 +Kaolin 0.6666666667 4.0000 +Kaolin 1.0000000000 4.0000 +Tata 1.0000000000 4.0000 +Tatiana 1.0000000000 4.0000 select name,cume_dist() over (partition by name order by score) as b, percentile_disc(0.7) within group(order by score) over (partition by name) as c from t1; name b c -Chun 0.5000000000 7.0000000000 -Chun 1.0000000000 7.0000000000 -Kaolin 0.3333333333 7.0000000000 -Kaolin 0.6666666667 7.0000000000 -Kaolin 1.0000000000 7.0000000000 -Tata 1.0000000000 4.0000000000 -Tatiana 1.0000000000 4.0000000000 +Chun 0.5000000000 7.0000 +Chun 1.0000000000 7.0000 +Kaolin 0.3333333333 7.0000 +Kaolin 0.6666666667 7.0000 +Kaolin 1.0000000000 7.0000 +Tata 1.0000000000 4.0000 +Tatiana 1.0000000000 4.0000 select name,cume_dist() over (partition by name order by score) as b, percentile_disc(0.8) within group(order by score) over (partition by name) as c from t1; name b c -Chun 0.5000000000 7.0000000000 -Chun 1.0000000000 7.0000000000 -Kaolin 0.3333333333 7.0000000000 -Kaolin 0.6666666667 7.0000000000 -Kaolin 1.0000000000 7.0000000000 -Tata 1.0000000000 4.0000000000 -Tatiana 1.0000000000 4.0000000000 +Chun 0.5000000000 7.0000 +Chun 1.0000000000 7.0000 +Kaolin 0.3333333333 7.0000 +Kaolin 0.6666666667 7.0000 +Kaolin 1.0000000000 7.0000 +Tata 1.0000000000 4.0000 +Tatiana 1.0000000000 4.0000 select name,cume_dist() over (partition by name order by score) as b, percentile_disc(0.9) within group(order by score) over (partition by name) as c from t1; name b c -Chun 0.5000000000 7.0000000000 -Chun 1.0000000000 7.0000000000 -Kaolin 0.3333333333 7.0000000000 -Kaolin 0.6666666667 7.0000000000 -Kaolin 1.0000000000 7.0000000000 -Tata 1.0000000000 4.0000000000 -Tatiana 1.0000000000 4.0000000000 +Chun 0.5000000000 7.0000 +Chun 1.0000000000 7.0000 +Kaolin 0.3333333333 7.0000 +Kaolin 0.6666666667 7.0000 +Kaolin 1.0000000000 7.0000 +Tata 1.0000000000 4.0000 +Tatiana 1.0000000000 4.0000 select name,cume_dist() over (partition by name order by score) as b, percentile_disc(1) within group(order by score) over (partition by name) as c from t1; name b c -Chun 0.5000000000 7.0000000000 -Chun 1.0000000000 7.0000000000 -Kaolin 0.3333333333 7.0000000000 -Kaolin 0.6666666667 7.0000000000 -Kaolin 1.0000000000 7.0000000000 -Tata 1.0000000000 4.0000000000 -Tatiana 1.0000000000 4.0000000000 +Chun 0.5000000000 7.0000 +Chun 1.0000000000 7.0000 +Kaolin 0.3333333333 7.0000 +Kaolin 0.6666666667 7.0000 +Kaolin 1.0000000000 7.0000 +Tata 1.0000000000 4.0000 +Tatiana 1.0000000000 4.0000 select median(score) over (partition by name), percentile_cont(0) within group(order by score) over (partition by name) as c from t1; median(score) over (partition by name) c 5.0000000000 3.0000000000 @@ -366,3 +366,102 @@ 2.0000000000 drop table t1; drop view v1; +# +# MDEV-20278 PERCENTILE_DISC() returns a wrong data type +# +# INT variants +CREATE TABLE t1 (name CHAR(30), star_rating INT); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 5); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 3); +INSERT INTO t1 VALUES ('Lady of the Flies', 1); +INSERT INTO t1 VALUES ('Lady of the Flies', 2); +INSERT INTO t1 VALUES ('Lady of the Flies', 5); +CREATE OR REPLACE TABLE t2 AS SELECT name, PERCENTILE_DISC(0.5) +WITHIN GROUP (ORDER BY star_rating) +OVER (PARTITION BY name) AS pc FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `name` char(30) DEFAULT NULL, + `pc` int(11) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t2, t1; +# UNSIGNED INT variants +CREATE OR REPLACE TABLE t1 (name CHAR(30), star_rating BIGINT UNSIGNED); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 0x8000000000000005); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 0x8000000000000003); +INSERT INTO t1 VALUES ('Lady of the Flies', 0x8000000000000001); +INSERT INTO t1 VALUES ('Lady of the Flies', 0x8000000000000002); +INSERT INTO t1 VALUES ('Lady of the Flies', 0x8000000000000003); +CREATE OR REPLACE TABLE t2 AS SELECT name, PERCENTILE_DISC(0.5) +WITHIN GROUP (ORDER BY star_rating) +OVER (PARTITION BY name) AS pc FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `name` char(30) DEFAULT NULL, + `pc` bigint(20) unsigned DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT name, pc, HEX(pc) FROM t2 ORDER BY name, pc; +name pc HEX(pc) +Lady of the Flies 9223372036854775810 8000000000000002 +Lady of the Flies 9223372036854775810 8000000000000002 +Lady of the Flies 9223372036854775810 8000000000000002 +Lord of the Ladybirds 9223372036854775811 8000000000000003 +Lord of the Ladybirds 9223372036854775811 8000000000000003 +DROP TABLE t2, t1; +# FLOAT variants +CREATE TABLE t1 (name CHAR(30), star_rating FLOAT); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 5); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 3); +INSERT INTO t1 VALUES ('Lady of the Flies', 1); +INSERT INTO t1 VALUES ('Lady of the Flies', 2); +INSERT INTO t1 VALUES ('Lady of the Flies', 5); +CREATE TABLE t2 AS SELECT name, PERCENTILE_DISC(0.5) +WITHIN GROUP (ORDER BY star_rating) +OVER (PARTITION BY name) AS pc FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `name` char(30) DEFAULT NULL, + `pc` float DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t2, t1; +# DECIMAL variants +CREATE OR REPLACE TABLE t1 (name CHAR(30), star_rating DECIMAL(30,2)); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 50000000000); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 30000000000); +INSERT INTO t1 VALUES ('Lady of the Flies', 10000000000); +INSERT INTO t1 VALUES ('Lady of the Flies', 20000000000); +INSERT INTO t1 VALUES ('Lady of the Flies', 50000000000); +CREATE OR REPLACE TABLE t2 AS SELECT name, PERCENTILE_DISC(0.5) +WITHIN GROUP (ORDER BY star_rating) +OVER (PARTITION BY name) AS pc FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `name` char(30) DEFAULT NULL, + `pc` decimal(30,2) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT * FROM t2 ORDER BY name, pc; +name pc +Lady of the Flies 20000000000.00 +Lady of the Flies 20000000000.00 +Lady of the Flies 20000000000.00 +Lord of the Ladybirds 30000000000.00 +Lord of the Ladybirds 30000000000.00 +DROP TABLE t2, t1; +# +# MDEV-20272 PERCENTILE_DISC() crashes on a temporal type input +# +CREATE OR REPLACE TABLE t1 (name CHAR(30), star_rating TIME); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 5); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 3); +INSERT INTO t1 VALUES ('Lady of the Flies', 1); +INSERT INTO t1 VALUES ('Lady of the Flies', 2); +INSERT INTO t1 VALUES ('Lady of the Flies', 5); +SELECT name, PERCENTILE_DISC(0.5) +WITHIN GROUP (ORDER BY star_rating) +OVER (PARTITION BY name) AS pc FROM t1; +ERROR HY000: Numeric datatype is required for percentile_disc function +DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/win_percentile.test mariadb-10.3-10.3.20/mysql-test/main/win_percentile.test --- mariadb-10.3-10.3.17/mysql-test/main/win_percentile.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/win_percentile.test 2019-11-06 16:01:57.000000000 +0000 @@ -146,3 +146,83 @@ select median(val) OVER () FROM t1; drop table t1; drop view v1; + + +--echo # +--echo # MDEV-20278 PERCENTILE_DISC() returns a wrong data type +--echo # + +--echo # INT variants + +CREATE TABLE t1 (name CHAR(30), star_rating INT); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 5); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 3); +INSERT INTO t1 VALUES ('Lady of the Flies', 1); +INSERT INTO t1 VALUES ('Lady of the Flies', 2); +INSERT INTO t1 VALUES ('Lady of the Flies', 5); +CREATE OR REPLACE TABLE t2 AS SELECT name, PERCENTILE_DISC(0.5) + WITHIN GROUP (ORDER BY star_rating) + OVER (PARTITION BY name) AS pc FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2, t1; + +--echo # UNSIGNED INT variants + +CREATE OR REPLACE TABLE t1 (name CHAR(30), star_rating BIGINT UNSIGNED); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 0x8000000000000005); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 0x8000000000000003); +INSERT INTO t1 VALUES ('Lady of the Flies', 0x8000000000000001); +INSERT INTO t1 VALUES ('Lady of the Flies', 0x8000000000000002); +INSERT INTO t1 VALUES ('Lady of the Flies', 0x8000000000000003); +CREATE OR REPLACE TABLE t2 AS SELECT name, PERCENTILE_DISC(0.5) + WITHIN GROUP (ORDER BY star_rating) + OVER (PARTITION BY name) AS pc FROM t1; +SHOW CREATE TABLE t2; +SELECT name, pc, HEX(pc) FROM t2 ORDER BY name, pc; +DROP TABLE t2, t1; + +--echo # FLOAT variants + +CREATE TABLE t1 (name CHAR(30), star_rating FLOAT); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 5); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 3); +INSERT INTO t1 VALUES ('Lady of the Flies', 1); +INSERT INTO t1 VALUES ('Lady of the Flies', 2); +INSERT INTO t1 VALUES ('Lady of the Flies', 5); +CREATE TABLE t2 AS SELECT name, PERCENTILE_DISC(0.5) + WITHIN GROUP (ORDER BY star_rating) + OVER (PARTITION BY name) AS pc FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2, t1; + +--echo # DECIMAL variants + +CREATE OR REPLACE TABLE t1 (name CHAR(30), star_rating DECIMAL(30,2)); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 50000000000); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 30000000000); +INSERT INTO t1 VALUES ('Lady of the Flies', 10000000000); +INSERT INTO t1 VALUES ('Lady of the Flies', 20000000000); +INSERT INTO t1 VALUES ('Lady of the Flies', 50000000000); +CREATE OR REPLACE TABLE t2 AS SELECT name, PERCENTILE_DISC(0.5) + WITHIN GROUP (ORDER BY star_rating) + OVER (PARTITION BY name) AS pc FROM t1; +SHOW CREATE TABLE t2; +SELECT * FROM t2 ORDER BY name, pc; +DROP TABLE t2, t1; + + +--echo # +--echo # MDEV-20272 PERCENTILE_DISC() crashes on a temporal type input +--echo # + +CREATE OR REPLACE TABLE t1 (name CHAR(30), star_rating TIME); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 5); +INSERT INTO t1 VALUES ('Lord of the Ladybirds', 3); +INSERT INTO t1 VALUES ('Lady of the Flies', 1); +INSERT INTO t1 VALUES ('Lady of the Flies', 2); +INSERT INTO t1 VALUES ('Lady of the Flies', 5); +--error ER_WRONG_TYPE_FOR_PERCENTILE_FUNC +SELECT name, PERCENTILE_DISC(0.5) + WITHIN GROUP (ORDER BY star_rating) + OVER (PARTITION BY name) AS pc FROM t1; +DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/main/win.result mariadb-10.3-10.3.20/mysql-test/main/win.result --- mariadb-10.3-10.3.17/mysql-test/main/win.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/win.result 2019-11-06 16:01:57.000000000 +0000 @@ -3654,5 +3654,40 @@ 00:00:02 NULL DROP TABLE t1; # +# MDEV-20351 Window function BIT_OR() OVER (..) return a wrong data type +# +CREATE TABLE t1 (pk INT, a INT, b BIGINT UNSIGNED); +INSERT INTO t1 VALUES (1, 0, 1), (2, 0, 18446744073709551615); +CREATE TABLE t2 AS +SELECT pk, a, bit_or(b) AS bit_or FROM t1 GROUP BY pk; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `pk` int(11) DEFAULT NULL, + `a` int(11) DEFAULT NULL, + `bit_or` bigint(21) unsigned NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT * FROM t1; +pk a b +1 0 1 +2 0 18446744073709551615 +DROP TABLE t2; +CREATE OR REPLACE TABLE t2 AS +SELECT pk, a, BIT_OR(b) OVER (PARTITION BY a ORDER BY pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS bit_or +FROM t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `pk` int(11) DEFAULT NULL, + `a` int(11) DEFAULT NULL, + `bit_or` bigint(21) unsigned NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT * FROM t2; +pk a bit_or +1 0 18446744073709551615 +2 0 18446744073709551615 +DROP TABLE t2; +DROP TABLE t1; +# # End of 10.3 tests # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/win.test mariadb-10.3-10.3.20/mysql-test/main/win.test --- mariadb-10.3-10.3.17/mysql-test/main/win.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/win.test 2019-11-06 16:01:57.000000000 +0000 @@ -2359,6 +2359,29 @@ SELECT *, LEAD(d) OVER (ORDER BY d) AS x FROM t1; DROP TABLE t1; + +--echo # +--echo # MDEV-20351 Window function BIT_OR() OVER (..) return a wrong data type +--echo # +CREATE TABLE t1 (pk INT, a INT, b BIGINT UNSIGNED); +INSERT INTO t1 VALUES (1, 0, 1), (2, 0, 18446744073709551615); + +CREATE TABLE t2 AS +SELECT pk, a, bit_or(b) AS bit_or FROM t1 GROUP BY pk; +SHOW CREATE TABLE t2; +SELECT * FROM t1; +DROP TABLE t2; + +CREATE OR REPLACE TABLE t2 AS +SELECT pk, a, BIT_OR(b) OVER (PARTITION BY a ORDER BY pk ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS bit_or + FROM t1; +SHOW CREATE TABLE t2; +SELECT * FROM t2; +DROP TABLE t2; + +DROP TABLE t1; + + --echo # --echo # End of 10.3 tests --echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/xtradb_mrr.result mariadb-10.3-10.3.20/mysql-test/main/xtradb_mrr.result --- mariadb-10.3-10.3.17/mysql-test/main/xtradb_mrr.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/xtradb_mrr.result 2019-11-06 16:01:57.000000000 +0000 @@ -742,6 +742,7 @@ drop table t1,t2; set join_cache_level=@my_save_join_cache_level; set join_buffer_size=@my_save_join_buffer_size; +set optimizer_switch=@save_optimizer_switch; # # BUG#665669: Result differences on query re-execution # diff -Nru mariadb-10.3-10.3.17/mysql-test/main/xtradb_mrr.test mariadb-10.3-10.3.20/mysql-test/main/xtradb_mrr.test --- mariadb-10.3-10.3.17/mysql-test/main/xtradb_mrr.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/main/xtradb_mrr.test 2019-11-06 16:01:57.000000000 +0000 @@ -284,6 +284,7 @@ --echo # --echo # BUG#671340: Diverging results in with mrr_sort_keys=ON|OFF and join_cache_level=5 --echo # + CREATE TABLE t1 ( pk int(11) NOT NULL AUTO_INCREMENT, col_int_key int(11) NOT NULL, @@ -346,6 +347,7 @@ (19,5,'h','h'), (20,7,'w','w'); +--source include/default_optimizer_switch.inc SELECT count(*), sum(table1.col_int_key*table2.pk) FROM t2 AS table1, t1 AS table2, t2 AS table3 @@ -366,6 +368,7 @@ drop table t1,t2; set join_cache_level=@my_save_join_cache_level; set join_buffer_size=@my_save_join_buffer_size; +set optimizer_switch=@save_optimizer_switch; --echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/mysql-test-run.pl mariadb-10.3-10.3.20/mysql-test/mysql-test-run.pl --- mariadb-10.3-10.3.17/mysql-test/mysql-test-run.pl 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/mysql-test-run.pl 2019-11-06 16:01:57.000000000 +0000 @@ -445,26 +445,36 @@ # ADD scripts to $PATH to that wsrep_sst_* can be found my ($spath) = grep { -f "$_/wsrep_sst_rsync"; } "$bindir/scripts", $path_client_bindir; mtr_error("No SST scripts") unless $spath; - $ENV{PATH}="$spath:$ENV{PATH}"; + my $separator= (IS_WINDOWS) ? ';' : ':'; + $ENV{PATH}="$spath$separator$ENV{PATH}"; # ADD mysql client library path to path so that wsrep_notify_cmd can find mysql # client for loading the tables. (Don't assume each machine has mysql install) my ($cpath) = grep { -f "$_/mysql"; } "$bindir/scripts", $path_client_bindir; mtr_error("No scritps") unless $cpath; - $ENV{PATH}="$cpath:$ENV{PATH}" unless $cpath eq $spath; + $ENV{PATH}="$cpath$separator$ENV{PATH}" unless $cpath eq $spath; # ADD my_print_defaults script path to path so that SST scripts can find it - my ($epath) = grep { -f "$_/my_print_defaults"; } "$bindir/extra", $path_client_bindir; + my $my_print_defaults_exe= + mtr_exe_maybe_exists( + "$bindir/extra/my_print_defaults", + "$path_client_bindir/my_print_defaults"); + my $epath= ""; + if ($my_print_defaults_exe ne "") { + $epath= dirname($my_print_defaults_exe); + } mtr_error("No my_print_defaults") unless $epath; - $ENV{PATH}="$epath:$ENV{PATH}" unless ($epath eq $spath) or - ($epath eq $cpath); + $ENV{PATH}="$epath$separator$ENV{PATH}" unless ($epath eq $spath) or + ($epath eq $cpath); $extra_path= $epath; - if (which("socat")) { - $ENV{MTR_GALERA_TFMT}="socat"; - } elsif (which("nc")) { - $ENV{MTR_GALERA_TFMT}="nc"; + if (!IS_WINDOWS) { + if (which("socat")) { + $ENV{MTR_GALERA_TFMT}="socat"; + } elsif (which("nc")) { + $ENV{MTR_GALERA_TFMT}="nc"; + } } # Check whether WSREP_PROVIDER environment variable is set. @@ -511,8 +521,9 @@ "$bindir/extra/mariabackup$opt_vs_config/mariabackup", "$path_client_bindir/mariabackup"); if ($mariabackup_exe ne "") { - my ($bpath) = grep { -f "$_/mariabackup"; } "$bindir/extra/mariabackup$opt_vs_config", $path_client_bindir; - $ENV{PATH}="$bpath:$ENV{PATH}" unless $bpath eq $extra_path; + my $bpath= dirname($mariabackup_exe); + my $separator= (IS_WINDOWS) ? ';' : ':'; + $ENV{PATH}="$bpath$separator$ENV{PATH}" unless $bpath eq $extra_path; $mariabackup_path= $bpath; @@ -3329,6 +3340,7 @@ # Create the bootstrap.sql file # ---------------------------------------------------------------------- my $bootstrap_sql_file= "$opt_vardir/log/bootstrap.sql"; + $ENV{'MYSQL_BOOTSTRAP_SQL_FILE'}= $bootstrap_sql_file; if (! -e $bootstrap_sql_file) { @@ -3431,7 +3443,7 @@ mtr_tofile($path_bootstrap_log, "$exe_mysqld_bootstrap " . join(" ", @$args) . "\n"); - # Create directories mysql and test + # Create directories mysql mkpath("$install_datadir/mysql"); if ( My::SafeProcess->run @@ -4615,6 +4627,7 @@ qr/InnoDB: Dumping buffer pool.*/, qr/InnoDB: Buffer pool.*/, qr/InnoDB: Warning: Writer thread is waiting this semaphore:/, + qr/InnoDB: innodb_open_files .* should not be greater than/, qr/Slave: Unknown table 't1' .* 1051/, qr/Slave SQL:.*(Internal MariaDB error code: [[:digit:]]+|Query:.*)/, qr/slave SQL thread aborted/, diff -Nru mariadb-10.3-10.3.17/mysql-test/README mariadb-10.3-10.3.20/mysql-test/README --- mariadb-10.3-10.3.17/mysql-test/README 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/README 2019-11-06 16:01:56.000000000 +0000 @@ -51,7 +51,7 @@ execution, etc.) You can create your own test cases. To create a test case, create a new -file in the t subdirectory using a text editor. The file should have a .test +file in the main subdirectory using a text editor. The file should have a .test extension. For example: # xemacs t/test_case_name.test @@ -60,7 +60,7 @@ load test data, and run some queries to manipulate it. Your test should begin by dropping the tables you are going to create and -end by dropping them again. This ensures that you can run the test over +end by dropping them again. This ensures that you can run the test over and over again. If you are using mysqltest commands in your test case, you should create @@ -81,7 +81,7 @@ # mysqltest --record --database test --result-file=r/test_case_name.result < t/test_case_name.test -When this is done, take a look at r/test_case_name.result . +When this is done, take a look at r/test_case_name.result. If the result is incorrect, you have found a bug. In this case, you should edit the test result to the correct results so that we can verify that the bug is corrected in future releases. Binary files /tmp/tmpUQq2SW/tBkmpjNdYI/mariadb-10.3-10.3.17/mysql-test/std_data/binlog_before_20574.bin and /tmp/tmpUQq2SW/jzbBb3Jpcj/mariadb-10.3-10.3.20/mysql-test/std_data/binlog_before_20574.bin differ Binary files /tmp/tmpUQq2SW/tBkmpjNdYI/mariadb-10.3-10.3.17/mysql-test/std_data/vcol_upgrade/maria100226_char_to_vchar_stored.frm and /tmp/tmpUQq2SW/jzbBb3Jpcj/mariadb-10.3-10.3.20/mysql-test/std_data/vcol_upgrade/maria100226_char_to_vchar_stored.frm differ Binary files /tmp/tmpUQq2SW/tBkmpjNdYI/mariadb-10.3-10.3.17/mysql-test/std_data/vcol_upgrade/maria100226_char_to_vchar_stored.MYD and /tmp/tmpUQq2SW/jzbBb3Jpcj/mariadb-10.3-10.3.20/mysql-test/std_data/vcol_upgrade/maria100226_char_to_vchar_stored.MYD differ Binary files /tmp/tmpUQq2SW/tBkmpjNdYI/mariadb-10.3-10.3.17/mysql-test/std_data/vcol_upgrade/maria100226_char_to_vchar_stored.MYI and /tmp/tmpUQq2SW/jzbBb3Jpcj/mariadb-10.3-10.3.20/mysql-test/std_data/vcol_upgrade/maria100226_char_to_vchar_stored.MYI differ Binary files /tmp/tmpUQq2SW/tBkmpjNdYI/mariadb-10.3-10.3.17/mysql-test/std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.frm and /tmp/tmpUQq2SW/jzbBb3Jpcj/mariadb-10.3-10.3.20/mysql-test/std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.frm differ Binary files /tmp/tmpUQq2SW/tBkmpjNdYI/mariadb-10.3-10.3.17/mysql-test/std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.MYD and /tmp/tmpUQq2SW/jzbBb3Jpcj/mariadb-10.3-10.3.20/mysql-test/std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.MYD differ Binary files /tmp/tmpUQq2SW/tBkmpjNdYI/mariadb-10.3-10.3.17/mysql-test/std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.MYI and /tmp/tmpUQq2SW/jzbBb3Jpcj/mariadb-10.3-10.3.20/mysql-test/std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.MYI differ diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/archive/discover_5438.opt mariadb-10.3-10.3.20/mysql-test/suite/archive/discover_5438.opt --- mariadb-10.3-10.3.17/mysql-test/suite/archive/discover_5438.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/archive/discover_5438.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--disable-skip-name-resolve diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/include/binlog_cache_stat.test mariadb-10.3-10.3.20/mysql-test/suite/binlog/include/binlog_cache_stat.test --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/include/binlog_cache_stat.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/include/binlog_cache_stat.test 2019-11-06 16:01:57.000000000 +0000 @@ -15,6 +15,10 @@ # transactions are committed and after when they are aborted. # +set @save_binlog_stmt_cache_size=@@global.binlog_stmt_cache_size; +set @save_binlog_cache_size=@@global.binlog_cache_size; +set @@global.binlog_stmt_cache_size=32768; +set @@global.binlog_cache_size=32768; # # Checking commit. # @@ -249,3 +253,6 @@ -- die } drop table t1, t2; + +set @@global.binlog_stmt_cache_size=@save_binlog_stmt_cache_size; +set @@global.binlog_cache_size=@save_binlog_cache_size; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/include/binlog_row_annotate.inc mariadb-10.3-10.3.20/mysql-test/suite/binlog/include/binlog_row_annotate.inc --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/include/binlog_row_annotate.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/include/binlog_row_annotate.inc 2019-11-06 16:01:57.000000000 +0000 @@ -42,6 +42,7 @@ --source include/have_binlog_format_row.inc set sql_mode=""; +let $collation_server=`select @@collation_server`; # Fix timestamp to avoid varying results SET timestamp=1000000000; @@ -124,7 +125,7 @@ --echo # - DELETE xtest1.xt1, test2.t2 FROM <...> (with one subsequent Table map) --echo ##################################################################################### - --replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ + --replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $datadir/master-bin.000001 --echo # @@ -134,7 +135,7 @@ --echo # - DELETE test1.t1, test2.t2 FROM <...> --echo ##################################################################################### - --replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ + --replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --base64-output=decode-rows --database=test1 -v -v $datadir/master-bin.000001 --echo # @@ -143,7 +144,7 @@ --echo # No Annotates should appear in this output --echo ##################################################################################### - --replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ + --replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --base64-output=decode-rows --skip-annotate-row-events -v -v $datadir/master-bin.000001 --let use_remote_mysqlbinlog= 0 @@ -160,7 +161,7 @@ --echo # - DELETE xtest1.xt1, test2.t2 FROM <...> (with one subsequent Table map) --echo ##################################################################################### ---replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ +--replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --base64-output=decode-rows -v -v --read-from-remote-server --user=root --host=localhost --port=$MASTER_MYPORT master-bin.000001 --echo # @@ -170,7 +171,7 @@ --echo # - DELETE test1.t1, test2.t2 FROM <...> --echo ##################################################################################### ---replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ +--replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --base64-output=decode-rows --database=test1 -v -v --read-from-remote-server --user=root --host=localhost --port=$MASTER_MYPORT master-bin.000001 --echo # @@ -179,7 +180,7 @@ --echo # No Annotates should appear in this output --echo ##################################################################################### ---replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ +--replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --base64-output=decode-rows --skip-annotate-row-events -v -v --read-from-remote-server --user=root --host=localhost --port=$MASTER_MYPORT master-bin.000001 # Clean-up diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/include/ctype_ucs_binlog.test mariadb-10.3-10.3.20/mysql-test/suite/binlog/include/ctype_ucs_binlog.test --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/include/ctype_ucs_binlog.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/include/ctype_ucs_binlog.test 2019-11-06 16:01:57.000000000 +0000 @@ -16,6 +16,7 @@ # escaped). flush logs; let $MYSQLD_DATADIR= `select @@datadir`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form $MYSQLD_DATADIR/master-bin.000001 drop table t2; @@ -53,7 +54,7 @@ DROP TABLE t1; FLUSH LOGS; let $MYSQLD_DATADIR= `select @@datadir`; ---replace_regex /TIMESTAMP=[0-9]*/TIMESTAMP=XXX/ /# at [0-9]*/# at #/ /(exec_time=|end_log_pos |Xid = |thread_id=|server id |table id |mapped to number )[0-9]+/\1#/ /server v [^ ]*/server v #.##.##/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /GTID [0-9]+-[0-9]+-[0-9]+/GTID #-#-#/ /Gtid list [[][0-9]+-[0-9]+-[0-9]+[\]]/Gtid list [#-#-#]/ /session[.](gtid_domain_id|server_id|gtid_seq_no)=[0-9]+/session.\1=#/ /(^#|created )[0-9]{6} [ 1][0-9]:[0-9]{2}:[0-9]{2}/\1YYMMDD HH:MM:SS/ +--replace_regex /TIMESTAMP=[0-9]*/TIMESTAMP=XXX/ /# at [0-9]*/# at #/ /(exec_time=|end_log_pos |Xid = |thread_id=|server id |table id |mapped to number )[0-9]+/\1#/ /server v [^ ]*/server v #.##.##/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /GTID [0-9]+-[0-9]+-[0-9]+/GTID #-#-#/ /Gtid list [[][0-9]+-[0-9]+-[0-9]+[\]]/Gtid list [#-#-#]/ /session[.](gtid_domain_id|server_id|gtid_seq_no)=[0-9]+/session.\1=#/ /(^#|created )[0-9]{6} [ 1][0-9]:[0-9]{2}:[0-9]{2}/\1YYMMDD HH:MM:SS/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --base64-output=decode-rows -vv $MYSQLD_DATADIR/master-bin.000003 SET TIMESTAMP=DEFAULT; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/include/drop_temp_table.test mariadb-10.3-10.3.20/mysql-test/suite/binlog/include/drop_temp_table.test --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/include/drop_temp_table.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/include/drop_temp_table.test 2019-11-06 16:01:57.000000000 +0000 @@ -150,16 +150,16 @@ --echo # Test case for DROP query. --connection default -CREATE TABLE t1 (a INT) ENGINE=INNODB; +CREATE TABLE t2 (a INT) ENGINE=INNODB; --connection con1 -CREATE TEMPORARY TABLE t1 (b BLOB) ENGINE=INNODB; +CREATE TEMPORARY TABLE t2 (b BLOB) ENGINE=INNODB; --connection default -DROP TABLE t1; +DROP TABLE t2; --connection con1 -DROP TABLE t1; +DROP TABLE t2; --connection default --exec $MYSQL_BINLOG --force-if-open $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/bug28642318.sql diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/include/mysqlbinlog_row_engine.inc mariadb-10.3-10.3.20/mysql-test/suite/binlog/include/mysqlbinlog_row_engine.inc --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/include/mysqlbinlog_row_engine.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/include/mysqlbinlog_row_engine.inc 2019-11-06 16:01:57.000000000 +0000 @@ -1651,7 +1651,7 @@ --echo # let $MYSQLD_DATADIR= `select @@datadir`; --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9-]*[.][0-9]{1,3})[0-9e+-]*[^ ]*[ ]*(.*(FLOAT|DOUBLE).*[*].)/\1... \2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ +--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9-]*[.][0-9]{1,3})[0-9e+-]*[^ ]*[ ]*(.*(FLOAT|DOUBLE).*[*].)/\1... \2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ --exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000001 --echo # @@ -1731,7 +1731,7 @@ --echo # let $MYSQLD_DATADIR= `select @@datadir`; --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9-]*[.][0-9]{1,3})[0-9e+-]*[^ ]*[ ]*(.*(FLOAT|DOUBLE).*[*].)/\1... \2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ +--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9-]*[.][0-9]{1,3})[0-9e+-]*[^ ]*[ ]*(.*(FLOAT|DOUBLE).*[*].)/\1... \2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ --exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000001 --echo # @@ -1854,7 +1854,7 @@ --echo # let $MYSQLD_DATADIR= `select @@datadir`; --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9-]*[.][0-9]{1,3})[0-9e+-]*[^ ]*[ ]*(.*(FLOAT|DOUBLE).*[*].)/\1... \2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ +--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9-]*[.][0-9]{1,3})[0-9e+-]*[^ ]*[ ]*(.*(FLOAT|DOUBLE).*[*].)/\1... \2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ --exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000001 --echo # @@ -1912,7 +1912,7 @@ --echo # let $MYSQLD_DATADIR= `select @@datadir`; --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9-]*[.][0-9]{1,3})[0-9e+-]*[^ ]*[ ]*(.*(FLOAT|DOUBLE).*[*].)/\1... \2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ +--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9-]*[.][0-9]{1,3})[0-9e+-]*[^ ]*[ ]*(.*(FLOAT|DOUBLE).*[*].)/\1... \2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ --exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000001 --echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_mixed_cache_stat.result mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_mixed_cache_stat.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_mixed_cache_stat.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_mixed_cache_stat.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,10 @@ drop table if exists t1, t2; create table t1 (a int) engine=innodb; create table t2 (a int) engine=myisam; +set @save_binlog_stmt_cache_size=@@global.binlog_stmt_cache_size; +set @save_binlog_cache_size=@@global.binlog_cache_size; +set @@global.binlog_stmt_cache_size=32768; +set @@global.binlog_cache_size=32768; **** Preparing the enviroment to check commit and its effect on status variables. **** Expected: binlog_cache_use = 0, binlog_cache_disk_use = 0. **** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. @@ -64,3 +68,5 @@ Warnings: Warning 1196 Some non-transactional changed tables couldn't be rolled back drop table t1, t2; +set @@global.binlog_stmt_cache_size=@save_binlog_stmt_cache_size; +set @@global.binlog_cache_size=@save_binlog_cache_size; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_mysqlbinlog2.result mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_mysqlbinlog2.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_mysqlbinlog2.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_mysqlbinlog2.result 2019-11-06 16:01:57.000000000 +0000 @@ -29,7 +29,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) @@ -101,7 +101,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "a") @@ -167,7 +167,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "c") @@ -212,7 +212,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) @@ -257,7 +257,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "c") @@ -284,7 +284,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "c") @@ -329,7 +329,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) @@ -372,7 +372,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) @@ -434,7 +434,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "f") @@ -464,7 +464,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "a") @@ -520,7 +520,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "f") @@ -550,7 +550,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "c") @@ -588,7 +588,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "f") @@ -615,7 +615,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) @@ -691,7 +691,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "c") @@ -729,7 +729,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "f") @@ -756,7 +756,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) @@ -798,7 +798,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) @@ -870,7 +870,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "a") @@ -935,7 +935,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "c") @@ -980,7 +980,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) @@ -1024,7 +1024,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "c") @@ -1051,7 +1051,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "c") @@ -1096,7 +1096,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) @@ -1138,7 +1138,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) @@ -1200,7 +1200,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "f") @@ -1230,7 +1230,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "a") @@ -1286,7 +1286,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "f") @@ -1315,7 +1315,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "c") @@ -1353,7 +1353,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "f") @@ -1380,7 +1380,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) @@ -1454,7 +1454,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "c") @@ -1492,7 +1492,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t1 values(null, "f") @@ -1519,7 +1519,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) @@ -1561,7 +1561,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; create table t1 (a int auto_increment not null primary key, b char(3)) diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_innodb.result 2019-11-06 16:01:57.000000000 +0000 @@ -2272,7 +2272,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C utf8 *//*!*/; -SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE TABLE t1 ( @@ -5281,7 +5281,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C utf8 *//*!*/; -SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE TABLE t1 ( @@ -5681,7 +5681,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C utf8 *//*!*/; -SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE TABLE t1 ( @@ -6319,7 +6319,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C utf8 *//*!*/; -SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE TABLE t1 ( diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_myisam.result 2019-11-06 16:01:57.000000000 +0000 @@ -2272,7 +2272,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C utf8 *//*!*/; -SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE TABLE t1 ( @@ -5304,7 +5304,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C utf8 *//*!*/; -SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE TABLE t1 ( @@ -5710,7 +5710,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C utf8 *//*!*/; -SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE TABLE t1 ( @@ -6358,7 +6358,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C utf8 *//*!*/; -SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE TABLE t1 ( diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row.result 2019-11-06 16:01:57.000000000 +0000 @@ -327,6 +327,14 @@ INSERT INTO t2 SET b=1; UPDATE t1, t2 SET t1.a=10, t2.a=20; DROP TABLE t1,t2; +# +# MDEV-20591 Wrong Number of rows in mysqlbinlog output. +# +CREATE TABLE t1(c_char_utf8 CHAR(10) , +c_varchar_utf8 char(10) , +c_text_utf8 blob ); +INSERT into t1 values("B", "B", REPEAT("#", 2000)); +drop table t1; flush logs; INSERT INTO t1dec102 VALUES (-999.99); INSERT INTO t1dec102 VALUES (0); @@ -367,7 +375,7 @@ SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE TABLE t1 (c01 BIT) @@ -5274,6 +5282,47 @@ DROP TABLE `t1`,`t2` /* generated by server */ /*!*/; # at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-317 ddl +/*!100001 SET @@session.gtid_seq_no=317*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +CREATE TABLE t1(c_char_utf8 CHAR(10) , +c_varchar_utf8 char(10) , +c_text_utf8 blob ) +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-318 +/*!100001 SET @@session.gtid_seq_no=318*//*!*/; +BEGIN +/*!*/; +# at # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows: +#Q> INSERT into t1 values("B", "B", REPEAT("#", 2000)) +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number # +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Write_rows: table id # flags: STMT_END_F +### INSERT INTO `test`.`t1` +### SET +### @1='B' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @2='B' /* STRING(10) meta=65034 nullable=1 is_null=0 */ +### @3='################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */ +# Number of rows: 1 +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +COMMIT +/*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-319 ddl +/*!100001 SET @@session.gtid_seq_no=319*//*!*/; +# at # +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0 +SET TIMESTAMP=1000000000/*!*/; +DROP TABLE `t1` /* generated by server */ +/*!*/; +# at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Rotate to master-bin.000002 pos: 4 DELIMITER ; # End of log file @@ -5287,17 +5336,17 @@ # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Start: binlog v 4, server v #.##.## created 010909 4:46:40 # at # -#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Gtid list [0-1-316] +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Gtid list [0-1-319] # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000001 # at # #010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Binlog checkpoint master-bin.000002 # at # -#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-317 +#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX GTID 0-1-320 /*!100101 SET @@session.skip_parallel_replication=0*//*!*/; /*!100001 SET @@session.gtid_domain_id=0*//*!*/; /*!100001 SET @@session.server_id=1*//*!*/; -/*!100001 SET @@session.gtid_seq_no=317*//*!*/; +/*!100001 SET @@session.gtid_seq_no=320*//*!*/; BEGIN /*!*/; # at # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_mysqlbinlog_row_trans.result 2019-11-06 16:01:57.000000000 +0000 @@ -150,7 +150,7 @@ SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE TABLE t1 ( diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_row_annotate.result mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_row_annotate.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_row_annotate.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_row_annotate.result 2019-11-06 16:01:57.000000000 +0000 @@ -120,7 +120,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE DATABASE test1 @@ -358,7 +358,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE DATABASE test1 @@ -518,7 +518,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE DATABASE test1 @@ -744,7 +744,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE DATABASE test1 @@ -982,7 +982,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE DATABASE test1 @@ -1142,7 +1142,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE DATABASE test1 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_row_cache_stat.result mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_row_cache_stat.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_row_cache_stat.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_row_cache_stat.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,10 @@ drop table if exists t1, t2; create table t1 (a int) engine=innodb; create table t2 (a int) engine=myisam; +set @save_binlog_stmt_cache_size=@@global.binlog_stmt_cache_size; +set @save_binlog_cache_size=@@global.binlog_cache_size; +set @@global.binlog_stmt_cache_size=32768; +set @@global.binlog_cache_size=32768; **** Preparing the enviroment to check commit and its effect on status variables. **** Expected: binlog_cache_use = 0, binlog_cache_disk_use = 0. **** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. @@ -64,3 +68,5 @@ Warnings: Warning 1196 Some non-transactional changed tables couldn't be rolled back drop table t1, t2; +set @@global.binlog_stmt_cache_size=@save_binlog_stmt_cache_size; +set @@global.binlog_cache_size=@save_binlog_cache_size; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_row_ctype_ucs.result mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_row_ctype_ucs.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_row_ctype_ucs.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_row_ctype_ucs.result 2019-11-06 16:01:57.000000000 +0000 @@ -26,7 +26,7 @@ SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; COMMIT @@ -96,7 +96,7 @@ SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C utf8 *//*!*/; -SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8) diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result 2019-11-06 16:01:57.000000000 +0000 @@ -88,13 +88,13 @@ RESET MASTER; # Test case for DROP query. connection default; -CREATE TABLE t1 (a INT) ENGINE=INNODB; +CREATE TABLE t2 (a INT) ENGINE=INNODB; connection con1; -CREATE TEMPORARY TABLE t1 (b BLOB) ENGINE=INNODB; +CREATE TEMPORARY TABLE t2 (b BLOB) ENGINE=INNODB; connection default; -DROP TABLE t1; +DROP TABLE t2; connection con1; -DROP TABLE t1; +DROP TABLE t2; connection default; # DROP table query fails with unknown table error without patch. # Clean up diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_row_mysqlbinlog_options.result 2019-11-06 16:01:57.000000000 +0000 @@ -54,7 +54,7 @@ SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE TABLE t1 (a INT, b INT) @@ -295,7 +295,7 @@ SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE TABLE t1 (a INT, b INT) diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_stm_cache_stat.result mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_stm_cache_stat.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_stm_cache_stat.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_stm_cache_stat.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,10 @@ drop table if exists t1, t2; create table t1 (a int) engine=innodb; create table t2 (a int) engine=myisam; +set @save_binlog_stmt_cache_size=@@global.binlog_stmt_cache_size; +set @save_binlog_cache_size=@@global.binlog_cache_size; +set @@global.binlog_stmt_cache_size=32768; +set @@global.binlog_cache_size=32768; **** Preparing the enviroment to check commit and its effect on status variables. **** Expected: binlog_cache_use = 0, binlog_cache_disk_use = 0. **** Expected: binlog_stmt_cache_use = 0, binlog_stmt_cache_disk_use = 0. @@ -64,3 +68,5 @@ Warnings: Warning 1196 Some non-transactional changed tables couldn't be rolled back drop table t1, t2; +set @@global.binlog_stmt_cache_size=@save_binlog_stmt_cache_size; +set @@global.binlog_cache_size=@save_binlog_cache_size; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result 2019-11-06 16:01:57.000000000 +0000 @@ -25,7 +25,7 @@ SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; insert into t2 values (@v) @@ -98,7 +98,7 @@ SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C utf8 *//*!*/; -SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET utf8) diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result 2019-11-06 16:01:57.000000000 +0000 @@ -116,13 +116,13 @@ RESET MASTER; # Test case for DROP query. connection default; -CREATE TABLE t1 (a INT) ENGINE=INNODB; +CREATE TABLE t2 (a INT) ENGINE=INNODB; connection con1; -CREATE TEMPORARY TABLE t1 (b BLOB) ENGINE=INNODB; +CREATE TEMPORARY TABLE t2 (b BLOB) ENGINE=INNODB; connection default; -DROP TABLE t1; +DROP TABLE t2; connection con1; -DROP TABLE t1; +DROP TABLE t2; connection default; # DROP table query fails with unknown table error without patch. # Clean up diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_unsafe.result mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_unsafe.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/binlog_unsafe.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/binlog_unsafe.result 2019-11-06 16:01:57.000000000 +0000 @@ -2675,6 +2675,8 @@ Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. CREATE... REPLACE SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are replaced. This order cannot be predicted and may differ on master and the slave INSERT INTO insert_2_keys VALUES (1, 2) ON DUPLICATE KEY UPDATE a=VALUES(a)+10, b=VALUES(b)+10; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT... ON DUPLICATE KEY UPDATE on a table with more than one UNIQUE KEY is unsafe DROP TABLE filler_table; DROP TABLE insert_table; DROP TABLE update_table; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/flashback-largebinlog.result mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/flashback-largebinlog.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/flashback-largebinlog.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/flashback-largebinlog.result 2019-11-06 16:01:57.000000000 +0000 @@ -62,7 +62,6 @@ # Cleanup. # # reset variable value to pass testcase checks -SET @@global.max_allowed_packet = 16777216; affected rows: 0 DROP TABLE t1; affected rows: 0 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/flashback.result mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/flashback.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/flashback.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/flashback.result 2019-11-06 16:01:57.000000000 +0000 @@ -64,7 +64,7 @@ SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE TABLE t1 ( @@ -426,7 +426,7 @@ SET @@session.sql_mode=1411383296/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; COMMIT diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/read_only.result mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/read_only.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/read_only.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/read_only.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,128 @@ +# +# MDEV-17863 DROP TEMPORARY TABLE creates a transaction in +# binary log on read only server +# MDEV-19074 Improved read_only mode for slaves with +# gtid_strict_mode enabled +# +create user test@localhost; +grant CREATE, DROP, INSERT, SELECT on *.* to test@localhost; +create table t1 (a int) engine=myisam; +insert into t1 values (1),(2); +reset master; +set global read_only=1; +# Ensure that optimize and analyze doesn't log to binary log +connect con1,localhost,test,,test; +insert into t1 values(3); +ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement +analyze table t1; +Table Op Msg_type Msg_text +test.t1 analyze status OK +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +repair table t1; +Table Op Msg_type Msg_text +test.t1 repair Error The MariaDB server is running with the --read-only option so it cannot execute this statement +test.t1 repair error Corrupt +optimize table t1; +ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement +# Ensure that using temporary tables is not logged +create temporary table tmp1 (a int) engine=myisam; +insert into tmp1 values (1),(2); +update tmp1 set a=10 where a=2; +delete from tmp1 where a=1; +create temporary table tmp2 select * from t1; +select * from tmp1; +a +10 +select * from tmp2; +a +1 +2 +create temporary table tmp3 like t1; +create or replace temporary table tmp3 like t1; +alter table tmp2 add column (b int); +select * from tmp2; +a b +1 NULL +2 NULL +insert into t1 select a+100 from tmp2; +ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement +drop table tmp1,tmp2,tmp3; +# Clean up test connection +disconnect con1; +connection default; +# Execute some commands as root that should not be logged +optimize table t1; +Table Op Msg_type Msg_text +test.t1 optimize status Table is already up to date +repair table t1; +Table Op Msg_type Msg_text +test.t1 repair status OK +# Changes to temporary tables created under readonly should not +# be logged +create temporary table tmp4 (a int) engine=myisam; +insert into tmp4 values (1),(2); +create temporary table tmp5 (a int) engine=myisam; +insert into tmp5 select * from tmp4; +alter table tmp5 add column (b int); +set global read_only=0; +insert into tmp4 values (3),(4); +insert into tmp5 values (10,3),(11,4); +select * from tmp4; +a +1 +2 +3 +4 +select * from tmp5; +a b +1 NULL +2 NULL +10 3 +11 4 +update tmp4 set a=10 where a=2; +delete from tmp4 where a=1; +create table t2 select * from tmp4; +alter table tmp5 add column (c int); +insert into tmp5 values (20,5,1),(21,5,2); +select * from tmp5; +a b c +1 NULL NULL +2 NULL NULL +10 3 NULL +11 4 NULL +20 5 1 +21 5 2 +insert into t1 select a+200 from tmp5; +select * from t1; +a +1 +2 +201 +202 +210 +211 +220 +221 +drop table tmp4,tmp5; +# Check what is logged. Only last create select and the insert...select's should be +# row-logged +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE `t2` ( + `a` int(11) DEFAULT NULL +) +master-bin.000001 # Annotate_rows # # create table t2 select * from tmp4 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 select a+200 from tmp5 +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +# Clean up +drop user test@localhost; +drop table t1,t2; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/read_only_statement.result mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/read_only_statement.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/r/read_only_statement.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/r/read_only_statement.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,128 @@ +# +# MDEV-17863 DROP TEMPORARY TABLE creates a transaction in +# binary log on read only server +# MDEV-19074 Improved read_only mode for slaves with +# gtid_strict_mode enabled +# +create user test@localhost; +grant CREATE, DROP, INSERT, SELECT on *.* to test@localhost; +create table t1 (a int) engine=myisam; +insert into t1 values (1),(2); +reset master; +set global read_only=1; +# Ensure that optimize and analyze doesn't log to binary log +connect con1,localhost,test,,test; +insert into t1 values(3); +ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement +analyze table t1; +Table Op Msg_type Msg_text +test.t1 analyze status OK +check table t1; +Table Op Msg_type Msg_text +test.t1 check status OK +repair table t1; +Table Op Msg_type Msg_text +test.t1 repair Error The MariaDB server is running with the --read-only option so it cannot execute this statement +test.t1 repair error Corrupt +optimize table t1; +ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement +# Ensure that using temporary tables is not logged +create temporary table tmp1 (a int) engine=myisam; +insert into tmp1 values (1),(2); +update tmp1 set a=10 where a=2; +delete from tmp1 where a=1; +create temporary table tmp2 select * from t1; +select * from tmp1; +a +10 +select * from tmp2; +a +1 +2 +create temporary table tmp3 like t1; +create or replace temporary table tmp3 like t1; +alter table tmp2 add column (b int); +select * from tmp2; +a b +1 NULL +2 NULL +insert into t1 select a+100 from tmp2; +ERROR HY000: The MariaDB server is running with the --read-only option so it cannot execute this statement +drop table tmp1,tmp2,tmp3; +# Clean up test connection +disconnect con1; +connection default; +# Execute some commands as root that should not be logged +optimize table t1; +Table Op Msg_type Msg_text +test.t1 optimize status Table is already up to date +repair table t1; +Table Op Msg_type Msg_text +test.t1 repair status OK +# Changes to temporary tables created under readonly should not +# be logged +create temporary table tmp4 (a int) engine=myisam; +insert into tmp4 values (1),(2); +create temporary table tmp5 (a int) engine=myisam; +insert into tmp5 select * from tmp4; +alter table tmp5 add column (b int); +set global read_only=0; +insert into tmp4 values (3),(4); +insert into tmp5 values (10,3),(11,4); +select * from tmp4; +a +1 +2 +3 +4 +select * from tmp5; +a b +1 NULL +2 NULL +10 3 +11 4 +update tmp4 set a=10 where a=2; +delete from tmp4 where a=1; +create table t2 select * from tmp4; +alter table tmp5 add column (c int); +insert into tmp5 values (20,5,1),(21,5,2); +select * from tmp5; +a b c +1 NULL NULL +2 NULL NULL +10 3 NULL +11 4 NULL +20 5 1 +21 5 2 +insert into t1 select a+200 from tmp5; +select * from t1; +a +1 +2 +201 +202 +210 +211 +220 +221 +drop table tmp4,tmp5; +# Check what is logged. Only last create select and the insert...select's should be +# row-logged +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TABLE `t2` ( + `a` int(11) DEFAULT NULL +) +master-bin.000001 # Annotate_rows # # create table t2 select * from tmp4 +master-bin.000001 # Table_map # # table_id: # (test.t2) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +master-bin.000001 # Gtid # # BEGIN GTID #-#-# +master-bin.000001 # Annotate_rows # # insert into t1 select a+200 from tmp5 +master-bin.000001 # Table_map # # table_id: # (test.t1) +master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F +master-bin.000001 # Query # # COMMIT +# Clean up +drop user test@localhost; +drop table t1,t2; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/binlog_innodb.opt mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/binlog_innodb.opt --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/binlog_innodb.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/binlog_innodb.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--binlog_cache_size=32768 --binlog_stmt_cache_size=32768 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/binlog_max_extension.test mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/binlog_max_extension.test --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/binlog_max_extension.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/binlog_max_extension.test 2019-11-06 16:01:57.000000000 +0000 @@ -28,6 +28,8 @@ RESET MASTER; -- let $MYSQLD_DATADIR= `select @@datadir` +-- let $log_bin_index=`select substring_index(@@log_bin_index,'/',-1)` +-- let $log_bin_basename=`select substring_index(@@log_bin_basename,'/',-1)` ############################################### # check hitting maximum file name extension: @@ -43,9 +45,9 @@ -- source include/wait_until_disconnected.inc # 2. Prepare log and index file --- copy_file $MYSQLD_DATADIR/mysqld-bin.index $MYSQLD_DATADIR/mysqld-bin.index.orig --- copy_file $MYSQLD_DATADIR/master-bin.000001 $MYSQLD_DATADIR/master-bin.2147483646 --- append_file $MYSQLD_DATADIR/mysqld-bin.index +-- copy_file $MYSQLD_DATADIR/$log_bin_index $MYSQLD_DATADIR/$log_bin_index.orig +-- copy_file $MYSQLD_DATADIR/$log_bin_basename.000001 $MYSQLD_DATADIR/$log_bin_basename.2147483646 +-- append_file $MYSQLD_DATADIR/$log_bin_index master-bin.2147483646 EOF @@ -72,12 +74,12 @@ -- source include/wait_until_disconnected.inc # 2. Undo changes to index and log files --- remove_file $MYSQLD_DATADIR/mysqld-bin.index --- copy_file $MYSQLD_DATADIR/mysqld-bin.index.orig $MYSQLD_DATADIR/mysqld-bin.index --- remove_file $MYSQLD_DATADIR/mysqld-bin.index.orig +-- remove_file $MYSQLD_DATADIR/$log_bin_index +-- copy_file $MYSQLD_DATADIR/$log_bin_index.orig $MYSQLD_DATADIR/$log_bin_index +-- remove_file $MYSQLD_DATADIR/$log_bin_index.orig --- remove_file $MYSQLD_DATADIR/master-bin.2147483646 --- remove_file $MYSQLD_DATADIR/master-bin.2147483647 +-- remove_file $MYSQLD_DATADIR/$log_bin_basename.2147483646 +-- remove_file $MYSQLD_DATADIR/$log_bin_basename.2147483647 # 3. Restart the server -- exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/binlog_mixed_cache_stat.opt mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/binlog_mixed_cache_stat.opt --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/binlog_mixed_cache_stat.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/binlog_mixed_cache_stat.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--binlog_cache_size=32768 --binlog_stmt_cache_size=32768 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/binlog_mysqlbinlog2.test mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/binlog_mysqlbinlog2.test --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/binlog_mysqlbinlog2.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/binlog_mysqlbinlog2.test 2019-11-06 16:01:57.000000000 +0000 @@ -47,35 +47,42 @@ # be time dependent (the Start events). Better than nothing. # let $MYSQLD_DATADIR= `select @@datadir`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form --base64-output=never $MYSQLD_DATADIR/master-bin.000001 --disable_query_log select "--- offset --" as ""; --enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form --offset=5 $MYSQLD_DATADIR/master-bin.000001 --disable_query_log select "--- start-position --" as ""; --enable_query_log let $start_pos= `select @binlog_start_pos + 696`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form --start-position=$start_pos $MYSQLD_DATADIR/master-bin.000001 --disable_query_log select "--- stop-position --" as ""; --enable_query_log let $stop_pos= `select @binlog_start_pos + 696`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form --stop-position=$stop_pos $MYSQLD_DATADIR/master-bin.000001 --disable_query_log select "--- start and stop positions ---" as ""; --enable_query_log let $start_pos= `select @binlog_start_pos + 696`; let $stop_pos= `select @binlog_start_pos + 857`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form --start-position=$start_pos --stop-position=$stop_pos $MYSQLD_DATADIR/master-bin.000001 --disable_query_log select "--- start-datetime --" as ""; --enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form "--start-datetime=1970-01-21 15:32:24" $MYSQLD_DATADIR/master-bin.000001 --disable_query_log select "--- stop-datetime --" as ""; --enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form "--stop-datetime=1970-01-21 15:32:24" $MYSQLD_DATADIR/master-bin.000001 --disable_query_log @@ -85,99 +92,119 @@ # This is to verify that some options apply only to first, or last binlog flush logs; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form $MYSQLD_DATADIR/master-bin.000001 $MYSQLD_DATADIR/master-bin.000002 --disable_query_log select "--- offset --" as ""; --enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form --offset=5 $MYSQLD_DATADIR/master-bin.000001 $MYSQLD_DATADIR/master-bin.000002 --disable_query_log select "--- start-position --" as ""; --enable_query_log let $start_pos= `select @binlog_start_pos + 696`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form --start-position=$start_pos $MYSQLD_DATADIR/master-bin.000001 $MYSQLD_DATADIR/master-bin.000002 --disable_query_log select "--- stop-position --" as ""; --enable_query_log let $stop_pos= `select @binlog_start_pos + 134`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form --stop-position=$stop_pos $MYSQLD_DATADIR/master-bin.000001 $MYSQLD_DATADIR/master-bin.000002 --disable_query_log select "--- start-datetime --" as ""; --enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form "--start-datetime=1970-01-21 15:32:24" $MYSQLD_DATADIR/master-bin.000001 $MYSQLD_DATADIR/master-bin.000002 --disable_query_log select "--- stop-datetime --" as ""; --enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form "--stop-datetime=1970-01-21 15:32:24" $MYSQLD_DATADIR/master-bin.000001 $MYSQLD_DATADIR/master-bin.000002 --disable_query_log select "--- Remote --" as ""; --enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 --disable_query_log select "--- offset --" as ""; --enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form --offset=5 --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 --disable_query_log select "--- start-position --" as ""; --enable_query_log let $start_pos= `select @binlog_start_pos + 696`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form --start-position=$start_pos --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 --disable_query_log select "--- stop-position --" as ""; --enable_query_log let $stop_pos= `select @binlog_start_pos + 696`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form --stop-position=$stop_pos --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 --disable_query_log select "--- start and stop positions ---" as ""; --enable_query_log let $start_pos= `select @binlog_start_pos + 696`; let $stop_pos= `select @binlog_start_pos + 812`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form --start-position=$start_pos --stop-position $stop_pos --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 --disable_query_log select "--- start-datetime --" as ""; --enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form "--start-datetime=1970-01-21 15:32:24" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 --disable_query_log select "--- stop-datetime --" as ""; --enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form "--stop-datetime=1970-01-21 15:32:24" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 --disable_query_log select "--- Remote with 2 binlogs on command line --" as ""; --enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002 --disable_query_log select "--- offset --" as ""; --enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form --offset=5 --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002 --disable_query_log select "--- start-position --" as ""; --enable_query_log let $start_pos= `select @binlog_start_pos + 696`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form --start-position=$start_pos --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002 --disable_query_log select "--- stop-position --" as ""; --enable_query_log let $stop_pos= `select @binlog_start_pos + 109`; +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form --stop-position=$stop_pos --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002 --disable_query_log select "--- start-datetime --" as ""; --enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form "--start-datetime=19700121153224" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002 --disable_query_log select "--- stop-datetime --" as ""; --enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form "--stop-datetime=1970/01/21 15@32@24" --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT master-bin.000001 master-bin.000002 --disable_query_log select "--- to-last-log --" as ""; --enable_query_log +--replace_regex /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --short-form --read-from-remote-server --user=root --host=127.0.0.1 --port=$MASTER_MYPORT --to-last-log master-bin.000001 # clean up diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row.test mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row.test --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row.test 2019-11-06 16:01:57.000000000 +0000 @@ -438,6 +438,18 @@ UPDATE t1, t2 SET t1.a=10, t2.a=20; DROP TABLE t1,t2; +--echo # +--echo # MDEV-20591 Wrong Number of rows in mysqlbinlog output. +--echo # + +CREATE TABLE t1(c_char_utf8 CHAR(10) , + c_varchar_utf8 char(10) , + c_text_utf8 blob ); + +INSERT into t1 values("B", "B", REPEAT("#", 2000)); + +drop table t1; + flush logs; let $MYSQLD_DATADIR= `select @@datadir`; @@ -455,10 +467,11 @@ flush logs; --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9]*[.][0-9]{1,3})[0-9e+-]*[^ ]*(.*(FLOAT|DOUBLE).*[*].)/\1...\2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ +--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9]*[.][0-9]{1,3})[0-9e+-]*[^ ]*(.*(FLOAT|DOUBLE).*[*].)/\1...\2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000001 --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR --replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9]*[.][0-9]{1,3})[0-9e+-]*[^ ]*(.*(FLOAT|DOUBLE).*[*].)/\1...\2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ --error 1 --exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000002 2>&1 + diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_trans.test mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_trans.test --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_trans.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/binlog_mysqlbinlog_row_trans.test 2019-11-06 16:01:57.000000000 +0000 @@ -150,7 +150,7 @@ --echo # let $MYSQLD_DATADIR= `select @@datadir`; --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ +--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000001 --echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_options.test mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_options.test --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_options.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/binlog_row_mysqlbinlog_options.test 2019-11-06 16:01:57.000000000 +0000 @@ -59,7 +59,7 @@ --echo # let $MYSQLD_DATADIR= `select @@datadir`; ---replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ +--replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --base64-output=decode-rows --rewrite-db="test1->new_test1" --rewrite-db="test3->new_test3" -v -v $MYSQLD_DATADIR/master-bin.000001 --echo # @@ -70,7 +70,7 @@ --echo # --read-from-remote-server --echo # ---replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ +--replace_regex /server id [0-9]*/server id #/ /server v [^ ]*/server v #.##.##/ /exec_time=[0-9]*/exec_time=#/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --base64-output=decode-rows --rewrite-db="test1->new_test1" --rewrite-db="test3->new_test3" -v -v --read-from-remote-server --user=root --host=localhost --port=$MASTER_MYPORT master-bin.000001 DROP DATABASE test1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/binlog_variables_log_bin.test mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/binlog_variables_log_bin.test --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/binlog_variables_log_bin.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/binlog_variables_log_bin.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,5 @@ --source include/not_embedded.inc ---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +let $log_bin_index=`select substring_index(@@log_bin_index,'/',-1)`; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $log_bin_index mysqld-bin.index --query_vertical SHOW VARIABLES LIKE 'log_bin%' diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/binlog_variables_relay_log.test mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/binlog_variables_relay_log.test --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/binlog_variables_relay_log.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/binlog_variables_relay_log.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,5 @@ --source include/not_embedded.inc ---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +let $relay_log_index=`select substring_index(@@relay_log_index,'/',-1)`; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR $relay_log_index mysqld-relay-bin.index --query_vertical SHOW VARIABLES LIKE 'relay_log%' diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/flashback-largebinlog.test mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/flashback-largebinlog.test --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/flashback-largebinlog.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/flashback-largebinlog.test 2019-11-06 16:01:57.000000000 +0000 @@ -15,6 +15,8 @@ # This is a big test. --source include/big_test.inc +# Test needs more than 4G of memory +--source include/have_64bit.inc --echo # --echo # Preparatory cleanup. @@ -98,7 +100,9 @@ --echo # Cleanup. --echo # --echo # reset variable value to pass testcase checks +--disable_query_log eval SET @@global.max_allowed_packet = $orig_max_allowed_packet; +--enable_query_log DROP TABLE t1; drop database if exists mysqltest; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/flashback.test mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/flashback.test --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/flashback.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/flashback.test 2019-11-06 16:01:57.000000000 +0000 @@ -55,7 +55,7 @@ let $MYSQLD_DATADIR= `select @@datadir`; --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ +--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000001 --echo # < CASE 1 > @@ -64,7 +64,7 @@ let $MYSQLD_DATADIR= `select @@datadir`; --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ +--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /CRC32 0x[0-9a-f]*/CRC32 XXX/ /collation_server=[0-9]+/collation_server=X/ /character_set_client=[0-9]+/character_set_client=X/ /collation_connection=[0-9]+/collation_connection=X/ --exec $MYSQL_BINLOG -B --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000001 --echo # < CASE 1 > diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/read_only.inc mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/read_only.inc --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/read_only.inc 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/read_only.inc 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,79 @@ +--echo # +--echo # MDEV-17863 DROP TEMPORARY TABLE creates a transaction in +--echo # binary log on read only server +--echo # MDEV-19074 Improved read_only mode for slaves with +--echo # gtid_strict_mode enabled +--echo # + +create user test@localhost; +grant CREATE, DROP, INSERT, SELECT on *.* to test@localhost; +create table t1 (a int) engine=myisam; +insert into t1 values (1),(2); +reset master; + +set global read_only=1; +--echo # Ensure that optimize and analyze doesn't log to binary log +connect (con1,localhost,test,,test); +--error ER_OPTION_PREVENTS_STATEMENT +insert into t1 values(3); +analyze table t1; +check table t1; +repair table t1; +--error ER_OPTION_PREVENTS_STATEMENT +optimize table t1; + +--echo # Ensure that using temporary tables is not logged +create temporary table tmp1 (a int) engine=myisam; +insert into tmp1 values (1),(2); +update tmp1 set a=10 where a=2; +delete from tmp1 where a=1; +create temporary table tmp2 select * from t1; +select * from tmp1; +select * from tmp2; +create temporary table tmp3 like t1; +create or replace temporary table tmp3 like t1; +alter table tmp2 add column (b int); +select * from tmp2; +--error ER_OPTION_PREVENTS_STATEMENT +insert into t1 select a+100 from tmp2; +drop table tmp1,tmp2,tmp3; + +--echo # Clean up test connection +disconnect con1; +connection default; + +--echo # Execute some commands as root that should not be logged +optimize table t1; +repair table t1; + +--echo # Changes to temporary tables created under readonly should not +--echo # be logged +create temporary table tmp4 (a int) engine=myisam; +insert into tmp4 values (1),(2); +create temporary table tmp5 (a int) engine=myisam; +insert into tmp5 select * from tmp4; +alter table tmp5 add column (b int); + +set global read_only=0; + +insert into tmp4 values (3),(4); +insert into tmp5 values (10,3),(11,4); +select * from tmp4; +select * from tmp5; +update tmp4 set a=10 where a=2; +delete from tmp4 where a=1; +create table t2 select * from tmp4; +alter table tmp5 add column (c int); +insert into tmp5 values (20,5,1),(21,5,2); +select * from tmp5; +insert into t1 select a+200 from tmp5; +select * from t1; +drop table tmp4,tmp5; + +--echo # Check what is logged. Only last create select and the insert...select's should be +--echo # row-logged +source include/show_binlog_events.inc; + +--echo # Clean up +drop user test@localhost; +drop table t1,t2; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/read_only_statement.test mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/read_only_statement.test --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/read_only_statement.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/read_only_statement.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,2 @@ +--source include/have_binlog_format_statement.inc +--source read_only.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/read_only.test mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/read_only.test --- mariadb-10.3-10.3.17/mysql-test/suite/binlog/t/read_only.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog/t/read_only.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,2 @@ +--source include/have_binlog_format_mixed_or_row.inc +--source read_only.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog_encryption/binlog_mdev_20574_old_binlog.result mariadb-10.3-10.3.20/mysql-test/suite/binlog_encryption/binlog_mdev_20574_old_binlog.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog_encryption/binlog_mdev_20574_old_binlog.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog_encryption/binlog_mdev_20574_old_binlog.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,27 @@ +include/master-slave.inc +[connection master] +connection slave; +include/stop_slave.inc +connection master; +include/rpl_stop_server.inc [server_number=1] +# Data in binlog +# CREATE TABLE t1 (a INT); +# INSERT INTO t1 VALUES (1),(2),(3); +# REPLACE INTO t1 VALUES (4); +include/rpl_start_server.inc [server_number=1] +connection slave; +RESET SLAVE; +RESET MASTER; +CHANGE MASTER TO master_host='127.0.0.1', master_port=SERVER_MYPORT_1, master_user='root', master_log_file='master-bin.000001', master_log_pos=4; +include/start_slave.inc +DESC t1; +Field Type Null Key Default Extra +a int(11) YES NULL +SELECT * FROM t1 ORDER BY a; +a +1 +2 +3 +4 +DROP TABLE t1; +include/rpl_end.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog_encryption/binlog_mdev_20574_old_binlog.test mariadb-10.3-10.3.20/mysql-test/suite/binlog_encryption/binlog_mdev_20574_old_binlog.test --- mariadb-10.3-10.3.17/mysql-test/suite/binlog_encryption/binlog_mdev_20574_old_binlog.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog_encryption/binlog_mdev_20574_old_binlog.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,46 @@ +# MDEV-20574 Position of events reported by mysqlbinlog is wrong with encrypted binlogs, SHOW BINLOG EVENTS reports the correct one. +# Test replicating off old master. +# Test case Desc:- When new server reads the data from old server binlog which +# does not send START_ENCRYPTION_EVENT to slave. +# We simulate old master by copying in pre-generated binlog files from earlier +# server versions with encrypted binlog. +--source include/have_binlog_format_row.inc +--source include/master-slave.inc +--source include/have_innodb.inc + +--connection slave +--source include/stop_slave.inc + +--connection master +--let $datadir= `SELECT @@datadir` + +--let $rpl_server_number= 1 +--source include/rpl_stop_server.inc + +--remove_file $datadir/master-bin.000001 +--remove_file $datadir/master-bin.state +--echo # Data in binlog +--echo # CREATE TABLE t1 (a INT); +--echo # INSERT INTO t1 VALUES (1),(2),(3); +--echo # REPLACE INTO t1 VALUES (4); + +--copy_file $MYSQL_TEST_DIR/std_data/binlog_before_20574.bin $datadir/master-bin.000001 + +--let $rpl_server_number= 1 +--source include/rpl_start_server.inc + +--source include/wait_until_connected_again.inc +--save_master_pos + +--connection slave +RESET SLAVE; +RESET MASTER; +--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1 +eval CHANGE MASTER TO master_host='127.0.0.1', master_port=$SERVER_MYPORT_1, master_user='root', master_log_file='master-bin.000001', master_log_pos=4; +--source include/start_slave.inc +--sync_with_master +DESC t1; +SELECT * FROM t1 ORDER BY a; + +DROP TABLE t1; +--source include/rpl_end.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog_encryption/binlog_row_annotate.result mariadb-10.3-10.3.20/mysql-test/suite/binlog_encryption/binlog_row_annotate.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog_encryption/binlog_row_annotate.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog_encryption/binlog_row_annotate.result 2019-11-06 16:01:57.000000000 +0000 @@ -104,6 +104,9 @@ #010909 4:46:40 server id # end_log_pos # Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup ROLLBACK/*!*/; # at # +#010909 4:46:40 server id # end_log_pos # Ignorable +# Ignorable event type 164 (Start_encryption) +# at # #010909 4:46:40 server id # end_log_pos # Gtid list [] # at # #010909 4:46:40 server id # end_log_pos # Binlog checkpoint master-bin.000001 @@ -121,7 +124,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE DATABASE test1 @@ -342,6 +345,9 @@ #010909 4:46:40 server id # end_log_pos # Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup ROLLBACK/*!*/; # at # +#010909 4:46:40 server id # end_log_pos # Ignorable +# Ignorable event type 164 (Start_encryption) +# at # #010909 4:46:40 server id # end_log_pos # Gtid list [] # at # #010909 4:46:40 server id # end_log_pos # Binlog checkpoint master-bin.000001 @@ -359,7 +365,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE DATABASE test1 @@ -502,6 +508,9 @@ #010909 4:46:40 server id # end_log_pos # Start: binlog v 4, server v #.##.## created 010909 4:46:40 at startup ROLLBACK/*!*/; # at # +#010909 4:46:40 server id # end_log_pos # Ignorable +# Ignorable event type 164 (Start_encryption) +# at # #010909 4:46:40 server id # end_log_pos # Gtid list [] # at # #010909 4:46:40 server id # end_log_pos # Binlog checkpoint master-bin.000001 @@ -519,7 +528,7 @@ SET @@session.sql_mode=0/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; /*!\C latin1 *//*!*/; -SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/; +SET @@session.character_set_client=X,@@session.collation_connection=X,@@session.collation_server=X/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; CREATE DATABASE test1 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog_encryption/multisource.result mariadb-10.3-10.3.20/mysql-test/suite/binlog_encryption/multisource.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog_encryption/multisource.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog_encryption/multisource.result 2019-11-06 16:01:57.000000000 +0000 @@ -47,6 +47,8 @@ create database db1; use db1; create table t1 (i int auto_increment, f1 varchar(16), primary key pk (i,f1)) engine=MyISAM; +Warnings: +Warning 1280 Name 'pk' ignored for PRIMARY key. insert into t1 (f1) values ('one'),('two'); connection slave; select * from db1.t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog_encryption/mysqlbinlog.result mariadb-10.3-10.3.20/mysql-test/suite/binlog_encryption/mysqlbinlog.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog_encryption/mysqlbinlog.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog_encryption/mysqlbinlog.result 2019-11-06 16:01:57.000000000 +0000 @@ -4,3 +4,4 @@ REPLACE INTO t1 VALUES (4); DROP TABLE t1; FLUSH LOGS; +FOUND 1 /Ignorable event type 164.*/ in binlog_enc.sql diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog_encryption/mysqlbinlog.test mariadb-10.3-10.3.20/mysql-test/suite/binlog_encryption/mysqlbinlog.test --- mariadb-10.3-10.3.17/mysql-test/suite/binlog_encryption/mysqlbinlog.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog_encryption/mysqlbinlog.test 2019-11-06 16:01:57.000000000 +0000 @@ -17,5 +17,8 @@ exec $MYSQL_BINLOG $local > $outfile; exec $MYSQL_BINLOG $local --force-read >> $outfile; exec $MYSQL_BINLOG $remote >> $outfile; +--let SEARCH_FILE= $outfile +--let SEARCH_PATTERN= Ignorable event type 164.* +--source include/search_pattern_in_file.inc remove_file $outfile; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog_encryption/rpl_parallel_ignored_errors.result mariadb-10.3-10.3.20/mysql-test/suite/binlog_encryption/rpl_parallel_ignored_errors.result --- mariadb-10.3-10.3.17/mysql-test/suite/binlog_encryption/rpl_parallel_ignored_errors.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog_encryption/rpl_parallel_ignored_errors.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,50 @@ +include/master-slave.inc +[connection master] +connection server_2; +include/stop_slave.inc +SET @old_parallel_threads=@@GLOBAL.slave_parallel_threads; +SET @old_parallel_mode=@@GLOBAL.slave_parallel_mode; +SET @old_dbug= @@GLOBAL.debug_dbug; +SET GLOBAL slave_parallel_mode='optimistic'; +SET GLOBAL slave_parallel_threads= 3; +CHANGE MASTER TO master_use_gtid=slave_pos; +CALL mtr.add_suppression("Commit failed due to failure of an earlier commit on which this one depends"); +include/start_slave.inc +connection server_1; +ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB; +CREATE TABLE t1 (a int PRIMARY KEY) ENGINE=InnoDB; +include/save_master_gtid.inc +connection server_2; +include/sync_with_master_gtid.inc +connect con_temp2,127.0.0.1,root,,test,$SERVER_MYPORT_2,; +BEGIN; +INSERT INTO t1 VALUES (32); +connection server_1; +INSERT INTO t1 VALUES (32); +connection server_2; +SET GLOBAL debug_dbug="+d,hold_worker_on_schedule"; +SET debug_sync="debug_sync_action SIGNAL reached_pause WAIT_FOR continue_worker"; +connection server_1; +SET gtid_seq_no=100; +INSERT INTO t1 VALUES (33); +connection server_2; +SET debug_sync='now WAIT_FOR reached_pause'; +connection server_1; +INSERT INTO t1 VALUES (34); +connection server_2; +connection con_temp2; +COMMIT; +connection server_2; +include/stop_slave.inc +include/assert.inc [table t1 should have zero rows where a>32] +SELECT * FROM t1 WHERE a>32; +a +DELETE FROM t1 WHERE a=32; +SET GLOBAL slave_parallel_threads=@old_parallel_threads; +SET GLOBAL slave_parallel_mode=@old_parallel_mode; +SET GLOBAL debug_dbug=@old_debug; +SET DEBUG_SYNC= 'RESET'; +include/start_slave.inc +connection server_1; +DROP TABLE t1; +include/rpl_end.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/binlog_encryption/rpl_parallel_ignored_errors.test mariadb-10.3-10.3.20/mysql-test/suite/binlog_encryption/rpl_parallel_ignored_errors.test --- mariadb-10.3-10.3.17/mysql-test/suite/binlog_encryption/rpl_parallel_ignored_errors.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/binlog_encryption/rpl_parallel_ignored_errors.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--source suite/rpl/include/rpl_parallel_ignored_errors.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/compat/oracle/r/column_compression.result mariadb-10.3-10.3.20/mysql-test/suite/compat/oracle/r/column_compression.result --- mariadb-10.3-10.3.17/mysql-test/suite/compat/oracle/r/column_compression.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/compat/oracle/r/column_compression.result 2019-11-06 16:01:57.000000000 +0000 @@ -515,7 +515,7 @@ SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE "t1" ( - "a" blob /*!100301 COMPRESSED*/ DEFAULT NULL + "a" blob(65535) /*!100301 COMPRESSED*/ DEFAULT NULL ) DROP TABLE t1; CREATE TABLE t1 (a TEXT COMPRESSED ASCII); @@ -547,7 +547,7 @@ SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE "t1" ( - "a" blob /*!100301 COMPRESSED*/ DEFAULT '' + "a" blob(65535) /*!100301 COMPRESSED*/ DEFAULT '' ) DROP TABLE t1; CREATE TABLE t1 (a TEXT COMPRESSED BINARY DEFAULT ''); @@ -605,7 +605,7 @@ SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE "t1" ( - "a" blob /*!100301 COMPRESSED*/ DEFAULT NULL + "a" blob(65535) /*!100301 COMPRESSED*/ DEFAULT NULL ) DROP TABLE t1; # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/compat/oracle/r/sp.result mariadb-10.3-10.3.20/mysql-test/suite/compat/oracle/r/sp.result --- mariadb-10.3-10.3.17/mysql-test/suite/compat/oracle/r/sp.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/compat/oracle/r/sp.result 2019-11-06 16:01:57.000000000 +0000 @@ -2072,7 +2072,7 @@ "tables_table_name" varchar(64) CHARACTER SET utf8 DEFAULT NULL, "tables_table_rows" bigint(21) unsigned DEFAULT NULL, "processlist_info" longtext CHARACTER SET utf8 DEFAULT NULL, - "processlist_info_binary" blob DEFAULT NULL + "processlist_info_binary" blob(65535) DEFAULT NULL ) DROP TABLE t1; DROP PROCEDURE p1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/compat/oracle/r/table_value_constr.result mariadb-10.3-10.3.20/mysql-test/suite/compat/oracle/r/table_value_constr.result --- mariadb-10.3-10.3.17/mysql-test/suite/compat/oracle/r/table_value_constr.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/compat/oracle/r/table_value_constr.result 2019-11-06 16:01:57.000000000 +0000 @@ -741,21 +741,21 @@ explain extended select * from t1 where a in (values (1)); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 3 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 2 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 select "test"."t1"."a" AS "a","test"."t1"."b" AS "b" from "test"."t1" semi join ((values (1)) "tvc_0") where "test"."t1"."a" = "tvc_0"."1" +Note 1003 select "test"."t1"."a" AS "a","test"."t1"."b" AS "b" from "test"."t1" semi join ((values (1)) "tvc_0") where 1 explain extended select * from t1 where a in (select * from (values (1)) as tvc_0); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 2 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 3 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 /* select#1 */ select "test"."t1"."a" AS "a","test"."t1"."b" AS "b" from "test"."t1" semi join ((values (1)) "tvc_0") where "test"."t1"."a" = "tvc_0"."1" +Note 1003 /* select#1 */ select "test"."t1"."a" AS "a","test"."t1"."b" AS "b" from "test"."t1" semi join ((values (1)) "tvc_0") where 1 # IN-subquery with VALUES structure(s) : UNION with VALUES on the first place select * from t1 where a in (values (1) union select 2); @@ -976,21 +976,21 @@ explain extended select * from t1 where a = any (values (1),(2)); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 3 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 2 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 select "test"."t1"."a" AS "a","test"."t1"."b" AS "b" from "test"."t1" semi join ((values (1),(2)) "tvc_0") where "test"."t1"."a" = "tvc_0"."1" +Note 1003 select "test"."t1"."a" AS "a","test"."t1"."b" AS "b" from "test"."t1" semi join ((values (1),(2)) "tvc_0") where 1 explain extended select * from t1 where a = any (select * from (values (1),(2)) as tvc_0); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 2 100.00 -1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY t1 ALL NULL NULL NULL NULL 6 100.00 +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 2 MATERIALIZED ALL NULL NULL NULL NULL 2 100.00 3 DERIVED NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: -Note 1003 /* select#1 */ select "test"."t1"."a" AS "a","test"."t1"."b" AS "b" from "test"."t1" semi join ((values (1),(2)) "tvc_0") where "test"."t1"."a" = "tvc_0"."1" +Note 1003 /* select#1 */ select "test"."t1"."a" AS "a","test"."t1"."b" AS "b" from "test"."t1" semi join ((values (1),(2)) "tvc_0") where 1 # ANY-subquery with VALUES structure(s) : UNION with VALUES on the first place select * from t1 where a = any (values (1) union select 2); diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/compat/oracle/r/type_blob.result mariadb-10.3-10.3.20/mysql-test/suite/compat/oracle/r/type_blob.result --- mariadb-10.3-10.3.17/mysql-test/suite/compat/oracle/r/type_blob.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/compat/oracle/r/type_blob.result 2019-11-06 16:01:57.000000000 +0000 @@ -6,3 +6,21 @@ "a" longblob DEFAULT NULL ) DROP TABLE t1; +# +# MDEV-20263 sql_mode=ORACLE: BLOB(65535) should not translate to LONGBLOB +# +CREATE TABLE t1 ( +c1 BLOB(100), +c2 BLOB(65535), +c3 BLOB(16777215), +c4 BLOB(16777216) +); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE "t1" ( + "c1" tinyblob DEFAULT NULL, + "c2" blob(65535) DEFAULT NULL, + "c3" mediumblob DEFAULT NULL, + "c4" longblob DEFAULT NULL +) +DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/compat/oracle/t/sp-package-mysqldump.test mariadb-10.3-10.3.20/mysql-test/suite/compat/oracle/t/sp-package-mysqldump.test --- mariadb-10.3-10.3.17/mysql-test/suite/compat/oracle/t/sp-package-mysqldump.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/compat/oracle/t/sp-package-mysqldump.test 2019-11-06 16:01:57.000000000 +0000 @@ -57,7 +57,7 @@ DELIMITER ;$$ ---exec $MYSQL_DUMP --skip-comments --routines test +--exec $MYSQL_DUMP --skip-comments --routines --default-character-set=utf8mb4 test --exec $MYSQL_DUMP --skip-comments --routines --xml test let $dump = $MYSQLTEST_VARDIR/tmp/sp-package-mysqldump.sql; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/compat/oracle/t/sp-package-security.test mariadb-10.3-10.3.20/mysql-test/suite/compat/oracle/t/sp-package-security.test --- mariadb-10.3-10.3.17/mysql-test/suite/compat/oracle/t/sp-package-security.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/compat/oracle/t/sp-package-security.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,5 @@ --source include/not_embedded.inc +--source include/default_charset.inc SET sql_mode=ORACLE; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/compat/oracle/t/sp-package.test mariadb-10.3-10.3.20/mysql-test/suite/compat/oracle/t/sp-package.test --- mariadb-10.3-10.3.17/mysql-test/suite/compat/oracle/t/sp-package.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/compat/oracle/t/sp-package.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +--source include/default_charset.inc SET sql_mode=ORACLE; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/compat/oracle/t/sp.test mariadb-10.3-10.3.20/mysql-test/suite/compat/oracle/t/sp.test --- mariadb-10.3-10.3.17/mysql-test/suite/compat/oracle/t/sp.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/compat/oracle/t/sp.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,5 @@ +--source include/default_charset.inc + SET sql_mode=ORACLE; --echo # Testing routines with no parameters diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/compat/oracle/t/type_blob.test mariadb-10.3-10.3.20/mysql-test/suite/compat/oracle/t/type_blob.test --- mariadb-10.3-10.3.17/mysql-test/suite/compat/oracle/t/type_blob.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/compat/oracle/t/type_blob.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,3 +2,16 @@ CREATE TABLE t1 (a BLOB); SHOW CREATE TABLE t1; DROP TABLE t1; + +--echo # +--echo # MDEV-20263 sql_mode=ORACLE: BLOB(65535) should not translate to LONGBLOB +--echo # + +CREATE TABLE t1 ( + c1 BLOB(100), + c2 BLOB(65535), + c3 BLOB(16777215), + c4 BLOB(16777216) +); +SHOW CREATE TABLE t1; +DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/encryption/disabled.def mariadb-10.3-10.3.20/mysql-test/suite/encryption/disabled.def --- mariadb-10.3-10.3.17/mysql-test/suite/encryption/disabled.def 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/encryption/disabled.def 2019-11-06 16:01:57.000000000 +0000 @@ -12,4 +12,3 @@ innodb_scrub : MDEV-8139 scrubbing does not work reliably innodb_scrub_background : MDEV-8139 scrubbing does not work reliably -innodb-redo-badkey : MDEV-13893/MDEV-12699 fix recovery of corrupted pages diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/encryption/my.cnf mariadb-10.3-10.3.20/mysql-test/suite/encryption/my.cnf --- mariadb-10.3-10.3.17/mysql-test/suite/encryption/my.cnf 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/encryption/my.cnf 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +!include include/default_my.cnf diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/encryption/r/file_creation.result mariadb-10.3-10.3.20/mysql-test/suite/encryption/r/file_creation.result --- mariadb-10.3-10.3.17/mysql-test/suite/encryption/r/file_creation.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/encryption/r/file_creation.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,26 @@ +SET GLOBAL innodb_encrypt_tables = ON; +SET GLOBAL innodb_encryption_threads = 1; +SET GLOBAL innodb_max_dirty_pages_pct = 99; +SHOW VARIABLES LIKE 'innodb_encrypt%'; +Variable_name Value +innodb_encrypt_log OFF +innodb_encrypt_tables ON +innodb_encrypt_temporary_tables OFF +innodb_encryption_rotate_key_age 1 +innodb_encryption_rotation_iops 100 +innodb_encryption_threads 1 +CREATE TABLE t1(f1 INT NOT NULL, f2 CHAR(255), f3 CHAR(255), +f4 CHAR(255), f5 CHAR(255))ENGINE=INNODB; +INSERT INTO t1 VALUES(1, "mysql", "mariadb", "batman", "superman"); +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +# Wait max 10 min for key encryption threads to encrypt all spaces +OPTIMIZE TABLE t1; +Table Op Msg_type Msg_text +test.t1 optimize note Table does not support optimize, doing recreate + analyze instead +test.t1 optimize status OK +ALTER TABLE t1 FORCE; +# Kill the server +DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/encryption/r/innodb-redo-badkey.result mariadb-10.3-10.3.20/mysql-test/suite/encryption/r/innodb-redo-badkey.result --- mariadb-10.3-10.3.17/mysql-test/suite/encryption/r/innodb-redo-badkey.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/encryption/r/innodb-redo-badkey.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,9 +1,10 @@ call mtr.add_suppression("Plugin 'file_key_management'"); call mtr.add_suppression("Plugin 'InnoDB' init function returned error."); -call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[0-9]+\\] in file .*test/t[1-4]\\.ibd cannot be decrypted"); +call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[0-9]+\\] in file '.*test/t[1-4]\\.ibd' cannot be decrypted"); call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]"); -call mtr.add_suppression("InnoDB: Unable to decompress .*.test.t1\\.ibd\\[page id: space=[1-9][0-9]*, page number=[0-9]+\\]"); -call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed file read of tablespace test/t1 page \\[page id: space=[1-9][0-9]*, page number=[0-9]*\\]"); +call mtr.add_suppression("InnoDB: Unable to decompress .*.test.t[12]\\.ibd\\[page id: space=[1-9][0-9]*, page number=[0-9]+\\]"); +call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed file read of tablespace test/t[12] page \\[page id: space=[1-9][0-9]*, page number=[0-9]*\\]"); +call mtr.add_suppression("InnoDB: Failed to read file '.*' at offset .*"); call mtr.add_suppression("InnoDB: Plugin initialization aborted"); call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed"); # Restart mysqld --file-key-management-filename=keys2.txt diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/encryption/r/tempfiles.result mariadb-10.3-10.3.20/mysql-test/suite/encryption/r/tempfiles.result --- mariadb-10.3-10.3.17/mysql-test/suite/encryption/r/tempfiles.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/encryption/r/tempfiles.result 2019-11-06 16:01:57.000000000 +0000 @@ -29,6 +29,7 @@ j 10 drop table t1; reset master; +set @save_binlog_cache_size=@@global.binlog_cache_size; set global binlog_cache_size=8192; connect con1, localhost, root; create table t1 (a text) engine=innodb; @@ -52,7 +53,7 @@ connection default; flush binary logs; drop table t1, t2; -set global binlog_cache_size=default; +set @@global.binlog_cache_size=@save_binlog_cache_size; select left(a, 10) from t1; left(a, 10) 1111111111 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/encryption/t/file_creation.opt mariadb-10.3-10.3.20/mysql-test/suite/encryption/t/file_creation.opt --- mariadb-10.3-10.3.17/mysql-test/suite/encryption/t/file_creation.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/encryption/t/file_creation.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--innodb-tablespaces-encryption diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/encryption/t/file_creation.test mariadb-10.3-10.3.20/mysql-test/suite/encryption/t/file_creation.test --- mariadb-10.3-10.3.17/mysql-test/suite/encryption/t/file_creation.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/encryption/t/file_creation.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,41 @@ +--source include/have_innodb.inc +--source include/have_example_key_management_plugin.inc + +# embedded does not support restart +-- source include/not_embedded.inc + +# +# MDEV-19348 MariaBackup prepare fails with InnoDB: Database page corruption +# on disk or a failed file read +# + +SET GLOBAL innodb_encrypt_tables = ON; +SET GLOBAL innodb_encryption_threads = 1; +SET GLOBAL innodb_max_dirty_pages_pct = 99; +SHOW VARIABLES LIKE 'innodb_encrypt%'; + +CREATE TABLE t1(f1 INT NOT NULL, f2 CHAR(255), f3 CHAR(255), + f4 CHAR(255), f5 CHAR(255))ENGINE=INNODB; + +INSERT INTO t1 VALUES(1, "mysql", "mariadb", "batman", "superman"); +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; +INSERT INTO t1 SELECT * FROM t1; + +--let $tables_count= `select count(*) + 1 from information_schema.tables where engine = 'InnoDB'` + +--echo # Wait max 10 min for key encryption threads to encrypt all spaces +--let $wait_timeout= 600 +--let $wait_condition=SELECT COUNT(*) >= $tables_count FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0; +--source include/wait_condition.inc + +OPTIMIZE TABLE t1; + +--source ../../suite/innodb/include/no_checkpoint_start.inc +ALTER TABLE t1 FORCE; +--let CLEANUP_IF_CHECKPOINT=DROP TABLE t1; +--source ../../suite/innodb/include/no_checkpoint_end.inc + +--source include/start_mysqld.inc +DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.opt mariadb-10.3-10.3.20/mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.opt --- mariadb-10.3-10.3.17/mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/encryption/t/innodb_encrypt_log_corruption.opt 2019-11-06 16:01:57.000000000 +0000 @@ -3,3 +3,4 @@ --loose-file-key-management --loose-file-key-management-filename=$MYSQL_TEST_DIR/std_data/logkey.txt --file-key-management-encryption-algorithm=aes_cbc +--innodb-log-file-size=5242880 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/encryption/t/innodb-redo-badkey.test mariadb-10.3-10.3.20/mysql-test/suite/encryption/t/innodb-redo-badkey.test --- mariadb-10.3-10.3.17/mysql-test/suite/encryption/t/innodb-redo-badkey.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/encryption/t/innodb-redo-badkey.test 2019-11-06 16:01:57.000000000 +0000 @@ -5,10 +5,11 @@ call mtr.add_suppression("Plugin 'file_key_management'"); call mtr.add_suppression("Plugin 'InnoDB' init function returned error."); -call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[0-9]+\\] in file .*test/t[1-4]\\.ibd cannot be decrypted"); +call mtr.add_suppression("InnoDB: The page \\[page id: space=[1-9][0-9]*, page number=[0-9]+\\] in file '.*test/t[1-4]\\.ibd' cannot be decrypted"); call mtr.add_suppression("failed to read or decrypt \\[page id: space=[1-9][0-9]*, page number=[1-9][0-9]*\\]"); -call mtr.add_suppression("InnoDB: Unable to decompress .*.test.t1\\.ibd\\[page id: space=[1-9][0-9]*, page number=[0-9]+\\]"); -call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed file read of tablespace test/t1 page \\[page id: space=[1-9][0-9]*, page number=[0-9]*\\]"); +call mtr.add_suppression("InnoDB: Unable to decompress .*.test.t[12]\\.ibd\\[page id: space=[1-9][0-9]*, page number=[0-9]+\\]"); +call mtr.add_suppression("InnoDB: Database page corruption on disk or a failed file read of tablespace test/t[12] page \\[page id: space=[1-9][0-9]*, page number=[0-9]*\\]"); +call mtr.add_suppression("InnoDB: Failed to read file '.*' at offset .*"); call mtr.add_suppression("InnoDB: Plugin initialization aborted"); call mtr.add_suppression("Plugin 'InnoDB' registration as a STORAGE ENGINE failed"); diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/encryption/t/tempfiles.test mariadb-10.3-10.3.20/mysql-test/suite/encryption/t/tempfiles.test --- mariadb-10.3-10.3.17/mysql-test/suite/encryption/t/tempfiles.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/encryption/t/tempfiles.test 2019-11-06 16:01:57.000000000 +0000 @@ -32,6 +32,7 @@ drop table t1; reset master; +set @save_binlog_cache_size=@@global.binlog_cache_size; set global binlog_cache_size=8192; connect con1, localhost, root; @@ -74,7 +75,7 @@ drop table t1, t2; -set global binlog_cache_size=default; +set @@global.binlog_cache_size=@save_binlog_cache_size; let $MYSQLD_DATADIR= `select @@datadir`; exec $MYSQL_BINLOG $MYSQLD_DATADIR/master-bin.000001 | $MYSQL; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/federated/federatedx_versioning.result mariadb-10.3-10.3.20/mysql-test/suite/federated/federatedx_versioning.result --- mariadb-10.3-10.3.17/mysql-test/suite/federated/federatedx_versioning.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/federated/federatedx_versioning.result 2019-11-06 16:01:57.000000000 +0000 @@ -96,5 +96,5 @@ id y check_row(row_start, row_end) 2 2 HISTORICAL ROW 2 22 CURRENT ROW -drop database test; -create database test; +drop view vt1; +drop tables t1, t2, t2f, tf; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/federated/federatedx_versioning.test mariadb-10.3-10.3.20/mysql-test/suite/federated/federatedx_versioning.test --- mariadb-10.3-10.3.17/mysql-test/suite/federated/federatedx_versioning.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/federated/federatedx_versioning.test 2019-11-06 16:01:57.000000000 +0000 @@ -72,6 +72,7 @@ select *, check_row(row_start, row_end) from t2 for system_time all order by y; +drop view vt1; +drop tables t1, t2, t2f, tf; + --source suite/versioning/common_finish.inc -drop database test; -create database test; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/datadict/is_routines.inc mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/datadict/is_routines.inc --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/datadict/is_routines.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/datadict/is_routines.inc 2019-11-06 16:01:57.000000000 +0000 @@ -18,6 +18,8 @@ # 2008-06-11 mleich Move t/is_routines.test to this file and # create variants for embedded/non embedded server. # + +--source include/default_charset.inc set sql_mode=""; let $engine_type = MEMORY; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/datadict/is_schemata.inc mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/datadict/is_schemata.inc --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/datadict/is_schemata.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/datadict/is_schemata.inc 2019-11-06 16:01:57.000000000 +0000 @@ -18,6 +18,7 @@ # create variants for embedded/non embedded server. # +--source include/default_charset.inc let $is_table = SCHEMATA; # The table INFORMATION_SCHEMA.SCHEMATA must exist diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/datadict/is_tables.inc mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/datadict/is_tables.inc --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/datadict/is_tables.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/datadict/is_tables.inc 2019-11-06 16:01:57.000000000 +0000 @@ -20,6 +20,8 @@ # create variants for embedded/non embedded server. # +--source include/default_charset.inc + let $engine_type = MEMORY; let $other_engine_type = MyISAM; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/datadict/is_triggers.inc mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/datadict/is_triggers.inc --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/datadict/is_triggers.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/datadict/is_triggers.inc 2019-11-06 16:01:57.000000000 +0000 @@ -19,6 +19,9 @@ # 2008-06-11 mleich Move t/is_triggers.test to this file and # create variants for embedded/non embedded server. # + +--source include/default_charset.inc +set @save_sql_mode=@@global.sql_mode; set global sql_mode=""; let $engine_type = MEMORY; @@ -265,4 +268,5 @@ # Cleanup DROP DATABASE db_datadict; -set global sql_mode=default; +set global sql_mode=@save_sql_mode; + diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/datadict/tables.inc mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/datadict/tables.inc --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/datadict/tables.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/datadict/tables.inc 2019-11-06 16:01:57.000000000 +0000 @@ -9,6 +9,8 @@ # 2008-06-04 mleich Create this script based on older scripts and new code. # +--source include/default_charset.inc + # Just have some tables within different databases. --disable_warnings DROP DATABASE IF EXISTS test1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/r/is_basics_mixed.result mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/r/is_basics_mixed.result --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/r/is_basics_mixed.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/r/is_basics_mixed.result 2019-11-06 16:01:57.000000000 +0000 @@ -337,7 +337,7 @@ SELECT * FROM information_schema.schema_privileges WHERE table_schema = 'information_schema'; GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -CREATE VIEW db_datadict.v2 AS +CREATE SQL SECURITY INVOKER VIEW db_datadict.v2 AS SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE FROM information_schema.tables WHERE table_schema = 'db_datadict'; SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/r/is_columns_mysql_embedded.result mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/r/is_columns_mysql_embedded.result --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/r/is_columns_mysql_embedded.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/r/is_columns_mysql_embedded.result 2019-11-06 16:01:57.000000000 +0000 @@ -161,8 +161,8 @@ def mysql roles_mapping Role 3 '' NO char 80 240 NULL NULL NULL utf8 utf8_bin char(80) PRI NEVER NULL def mysql roles_mapping User 2 '' NO char 80 240 NULL NULL NULL utf8 utf8_bin char(80) PRI NEVER NULL def mysql servers Db 3 '' NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) NEVER NULL -def mysql servers Host 2 '' NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) NEVER NULL -def mysql servers Owner 9 '' NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) NEVER NULL +def mysql servers Host 2 '' NO varchar 2048 6144 NULL NULL NULL utf8 utf8_general_ci varchar(2048) NEVER NULL +def mysql servers Owner 9 '' NO varchar 512 1536 NULL NULL NULL utf8 utf8_general_ci varchar(512) NEVER NULL def mysql servers Password 5 '' NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) NEVER NULL def mysql servers Port 6 0 NO int NULL NULL 10 0 NULL NULL NULL int(4) NEVER NULL def mysql servers Server_name 1 '' NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) PRI NEVER NULL @@ -501,14 +501,14 @@ 3.0000 mysql roles_mapping Role char 80 240 utf8 utf8_bin char(80) 3.0000 mysql roles_mapping Admin_option enum 1 3 utf8 utf8_general_ci enum('N','Y') 3.0000 mysql servers Server_name char 64 192 utf8 utf8_general_ci char(64) -3.0000 mysql servers Host char 64 192 utf8 utf8_general_ci char(64) +3.0000 mysql servers Host varchar 2048 6144 utf8 utf8_general_ci varchar(2048) 3.0000 mysql servers Db char 64 192 utf8 utf8_general_ci char(64) 3.0000 mysql servers Username char 80 240 utf8 utf8_general_ci char(80) 3.0000 mysql servers Password char 64 192 utf8 utf8_general_ci char(64) NULL mysql servers Port int NULL NULL NULL NULL int(4) 3.0000 mysql servers Socket char 64 192 utf8 utf8_general_ci char(64) 3.0000 mysql servers Wrapper char 64 192 utf8 utf8_general_ci char(64) -3.0000 mysql servers Owner char 64 192 utf8 utf8_general_ci char(64) +3.0000 mysql servers Owner varchar 512 1536 utf8 utf8_general_ci varchar(512) NULL mysql slow_log start_time timestamp NULL NULL NULL NULL timestamp(6) 1.0000 mysql slow_log user_host mediumtext 16777215 16777215 utf8 utf8_general_ci mediumtext NULL mysql slow_log query_time time NULL NULL NULL NULL time(6) diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/r/is_columns_mysql.result mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/r/is_columns_mysql.result --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/r/is_columns_mysql.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/r/is_columns_mysql.result 2019-11-06 16:01:57.000000000 +0000 @@ -175,8 +175,8 @@ def mysql roles_mapping Role 3 '' NO char 80 240 NULL NULL NULL utf8 utf8_bin char(80) PRI select,insert,update,references NEVER NULL def mysql roles_mapping User 2 '' NO char 80 240 NULL NULL NULL utf8 utf8_bin char(80) PRI select,insert,update,references NEVER NULL def mysql servers Db 3 '' NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NEVER NULL -def mysql servers Host 2 '' NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NEVER NULL -def mysql servers Owner 9 '' NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NEVER NULL +def mysql servers Host 2 '' NO varchar 2048 6144 NULL NULL NULL utf8 utf8_general_ci varchar(2048) select,insert,update,references NEVER NULL +def mysql servers Owner 9 '' NO varchar 512 1536 NULL NULL NULL utf8 utf8_general_ci varchar(512) select,insert,update,references NEVER NULL def mysql servers Password 5 '' NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references NEVER NULL def mysql servers Port 6 0 NO int NULL NULL 10 0 NULL NULL NULL int(4) select,insert,update,references NEVER NULL def mysql servers Server_name 1 '' NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references NEVER NULL @@ -518,14 +518,14 @@ 3.0000 mysql roles_mapping Role char 80 240 utf8 utf8_bin char(80) 3.0000 mysql roles_mapping Admin_option enum 1 3 utf8 utf8_general_ci enum('N','Y') 3.0000 mysql servers Server_name char 64 192 utf8 utf8_general_ci char(64) -3.0000 mysql servers Host char 64 192 utf8 utf8_general_ci char(64) +3.0000 mysql servers Host varchar 2048 6144 utf8 utf8_general_ci varchar(2048) 3.0000 mysql servers Db char 64 192 utf8 utf8_general_ci char(64) 3.0000 mysql servers Username char 80 240 utf8 utf8_general_ci char(80) 3.0000 mysql servers Password char 64 192 utf8 utf8_general_ci char(64) NULL mysql servers Port int NULL NULL NULL NULL int(4) 3.0000 mysql servers Socket char 64 192 utf8 utf8_general_ci char(64) 3.0000 mysql servers Wrapper char 64 192 utf8 utf8_general_ci char(64) -3.0000 mysql servers Owner char 64 192 utf8 utf8_general_ci char(64) +3.0000 mysql servers Owner varchar 512 1536 utf8 utf8_general_ci varchar(512) NULL mysql slow_log start_time timestamp NULL NULL NULL NULL timestamp(6) 1.0000 mysql slow_log user_host mediumtext 16777215 16777215 utf8 utf8_general_ci mediumtext NULL mysql slow_log query_time time NULL NULL NULL NULL time(6) diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/r/is_tables_mysql_embedded.result mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/r/is_tables_mysql_embedded.result --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/r/is_tables_mysql_embedded.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/r/is_tables_mysql_embedded.result 2019-11-06 16:01:57.000000000 +0000 @@ -516,7 +516,7 @@ TABLE_TYPE BASE TABLE ENGINE MYISAM_OR_MARIA VERSION 10 -ROW_FORMAT Fixed +ROW_FORMAT DYNAMIC_OR_PAGE TABLE_ROWS #TBLR# AVG_ROW_LENGTH #ARL# DATA_LENGTH #DL# @@ -1305,7 +1305,7 @@ TABLE_TYPE BASE TABLE ENGINE MYISAM_OR_MARIA VERSION 10 -ROW_FORMAT Fixed +ROW_FORMAT DYNAMIC_OR_PAGE TABLE_ROWS #TBLR# AVG_ROW_LENGTH #ARL# DATA_LENGTH #DL# diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/r/is_tables_mysql.result mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/r/is_tables_mysql.result --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/r/is_tables_mysql.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/r/is_tables_mysql.result 2019-11-06 16:01:57.000000000 +0000 @@ -516,7 +516,7 @@ TABLE_TYPE BASE TABLE ENGINE MYISAM_OR_MARIA VERSION 10 -ROW_FORMAT Fixed +ROW_FORMAT DYNAMIC_OR_PAGE TABLE_ROWS #TBLR# AVG_ROW_LENGTH #ARL# DATA_LENGTH #DL# diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/r/is_triggers_embedded.result mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/r/is_triggers_embedded.result --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/r/is_triggers_embedded.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/r/is_triggers_embedded.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +set @save_sql_mode=@@global.sql_mode; set global sql_mode=""; SHOW TABLES FROM information_schema LIKE 'TRIGGERS'; Tables_in_information_schema (TRIGGERS) @@ -231,4 +232,4 @@ ALTER TABLE information_schema.triggers RENAME information_schema.xtriggers; ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' DROP DATABASE db_datadict; -set global sql_mode=default; +set global sql_mode=@save_sql_mode; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/r/is_triggers.result mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/r/is_triggers.result --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/r/is_triggers.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/r/is_triggers.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +set @save_sql_mode=@@global.sql_mode; set global sql_mode=""; SHOW TABLES FROM information_schema LIKE 'TRIGGERS'; Tables_in_information_schema (TRIGGERS) @@ -234,4 +235,4 @@ ALTER TABLE information_schema.triggers RENAME information_schema.xtriggers; ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' DROP DATABASE db_datadict; -set global sql_mode=default; +set global sql_mode=@save_sql_mode; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/storedproc/storedproc_07.inc mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/storedproc/storedproc_07.inc --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/storedproc/storedproc_07.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/storedproc/storedproc_07.inc 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,6 @@ #### suite/funcs_1/storedproc/storedproc_07.inc # +--source include/default_charset.inc --source suite/funcs_1/storedproc/load_sp_tb.inc # ============================================================================== diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/storedproc/storedproc_08.inc mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/storedproc/storedproc_08.inc --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/storedproc/storedproc_08.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/storedproc/storedproc_08.inc 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,6 @@ #### suite/funcs_1/storedproc/storedproc_08.inc # +--source include/default_charset.inc --source suite/funcs_1/storedproc/load_sp_tb.inc # ============================================================================== diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/innodb_trig_03e.test mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/innodb_trig_03e.test --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/innodb_trig_03e.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/innodb_trig_03e.test 2019-11-06 16:01:57.000000000 +0000 @@ -3,6 +3,7 @@ # This test cannot be used for the embedded server because we check here # privileges. --source include/not_embedded.inc +--source include/default_charset.inc # InnoDB tables should be used # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/is_basics_mixed.test mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/is_basics_mixed.test --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/is_basics_mixed.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/is_basics_mixed.test 2019-11-06 16:01:57.000000000 +0000 @@ -281,8 +281,9 @@ # 2. This user (testuser1) is also able to GRANT the SELECT privilege # on this VIEW to another user (testuser2). # 3. The other user (testuser2) must be able to SELECT on this VIEW -# but gets a different result set than testuser1. -CREATE VIEW db_datadict.v2 AS +# but gets a different result set than testuser1, if the view +# has SQL SECURITY INVOKER. +CREATE SQL SECURITY INVOKER VIEW db_datadict.v2 AS SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE FROM information_schema.tables WHERE table_schema = 'db_datadict'; SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/is_columns_innodb.test mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/is_columns_innodb.test --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/is_columns_innodb.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/is_columns_innodb.test 2019-11-06 16:01:57.000000000 +0000 @@ -13,8 +13,9 @@ # This test cannot be used for the embedded server because we check here # privileges. --source include/not_embedded.inc - --source include/have_innodb.inc +--source include/default_charset.inc + let $engine_type= InnoDB; --source suite/funcs_1/datadict/datadict_load.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/is_columns_memory.test mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/is_columns_memory.test --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/is_columns_memory.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/is_columns_memory.test 2019-11-06 16:01:57.000000000 +0000 @@ -13,6 +13,7 @@ # This test cannot be used for the embedded server because we check here # privileges. --source include/not_embedded.inc +--source include/default_charset.inc let $engine_type= MEMORY; SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/is_columns_myisam.test mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/is_columns_myisam.test --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/is_columns_myisam.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/is_columns_myisam.test 2019-11-06 16:01:57.000000000 +0000 @@ -13,6 +13,8 @@ # --source include/not_embedded.inc +--source include/default_charset.inc + let $engine_type= MyISAM; SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION'; --source suite/funcs_1/datadict/datadict_load.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/is_columns.test mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/is_columns.test --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/is_columns.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/is_columns.test 2019-11-06 16:01:57.000000000 +0000 @@ -19,6 +19,7 @@ # This test cannot be used for the embedded server because we check here # privileges. --source include/not_embedded.inc +--source include/default_charset.inc let $engine_type = MEMORY; let $other_engine_type = MyISAM; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/is_schemata_is_mysql_test.test mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/is_schemata_is_mysql_test.test --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/is_schemata_is_mysql_test.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/is_schemata_is_mysql_test.test 2019-11-06 16:01:57.000000000 +0000 @@ -12,6 +12,7 @@ # This test cannot be used for the embedded server because we check here # privileges. --source include/not_embedded.inc +--source include/default_charset.inc --echo ################################################################################# --echo # Testcases 3.2.9.2 + 3.2.9.3: INFORMATION_SCHEMA.SCHEMATA accessible information diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/memory_trig_03e.test mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/memory_trig_03e.test --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/memory_trig_03e.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/memory_trig_03e.test 2019-11-06 16:01:57.000000000 +0000 @@ -3,6 +3,7 @@ # This test cannot be used for the embedded server because we check here # privileges. --source include/not_embedded.inc +--source include/default_charset.inc # Memory tables should be used # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/myisam_trig_03e.test mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/myisam_trig_03e.test --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/myisam_trig_03e.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/myisam_trig_03e.test 2019-11-06 16:01:57.000000000 +0000 @@ -3,6 +3,7 @@ # This test cannot be used for the embedded server because we check here # privileges. --source include/not_embedded.inc +--source include/default_charset.inc # MyISAM tables should be used # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/storedproc.test mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/storedproc.test --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_1/t/storedproc.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_1/t/storedproc.test 2019-11-06 16:01:57.000000000 +0000 @@ -9,6 +9,8 @@ # - restore global sort_buffer_size after some subtest # ############################################################################ + +--source include/default_charset.inc set sql_mode=""; # Bug#37746 - Arithmetic range ("int") is smaller than expected diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_2/charset/charset_master.test mariadb-10.3-10.3.20/mysql-test/suite/funcs_2/charset/charset_master.test --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_2/charset/charset_master.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_2/charset/charset_master.test 2019-11-06 16:01:57.000000000 +0000 @@ -11,6 +11,8 @@ # Add checking of prerequisites + minor cleanup # ################################################################################# +set @save_character_set_database= @@character_set_database; + # # # @@ -695,5 +697,9 @@ } +--echo # Cleanup +--disable_query_log DROP database test; -CREATE database test; +let $tmp=`select @save_character_set_database`; +eval CREATE database test character set $tmp; +--enable_query_log diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_2/r/innodb_charset.result mariadb-10.3-10.3.20/mysql-test/suite/funcs_2/r/innodb_charset.result --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_2/r/innodb_charset.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_2/r/innodb_charset.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +set @save_character_set_database= @@character_set_database; DROP TABLE IF EXISTS test.t1; SET NAMES armscii8; CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET armscii8 COLLATE armscii8_bin) ENGINE=InnoDB CHARACTER SET armscii8 COLLATE armscii8_bin; @@ -119154,5 +119155,4 @@ DFBE 1 DFBF 1 DROP TABLE IF EXISTS test.t1; -DROP database test; -CREATE database test; +# Cleanup diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_2/r/memory_charset.result mariadb-10.3-10.3.20/mysql-test/suite/funcs_2/r/memory_charset.result --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_2/r/memory_charset.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_2/r/memory_charset.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +set @save_character_set_database= @@character_set_database; DROP TABLE IF EXISTS test.t1; SET NAMES armscii8; CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET armscii8 COLLATE armscii8_bin) ENGINE=Memory CHARACTER SET armscii8 COLLATE armscii8_bin; @@ -119154,5 +119155,4 @@ DFBE 1 DFBF 1 DROP TABLE IF EXISTS test.t1; -DROP database test; -CREATE database test; +# Cleanup diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/funcs_2/r/myisam_charset.result mariadb-10.3-10.3.20/mysql-test/suite/funcs_2/r/myisam_charset.result --- mariadb-10.3-10.3.17/mysql-test/suite/funcs_2/r/myisam_charset.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/funcs_2/r/myisam_charset.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +set @save_character_set_database= @@character_set_database; DROP TABLE IF EXISTS test.t1; SET NAMES armscii8; CREATE TABLE test.t1 (a VARCHAR(3) CHARACTER SET armscii8 COLLATE armscii8_bin) ENGINE=MyISAM CHARACTER SET armscii8 COLLATE armscii8_bin; @@ -119154,5 +119155,4 @@ DFBE 1 DFBF 1 DROP TABLE IF EXISTS test.t1; -DROP database test; -CREATE database test; +# Cleanup diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/disabled.def mariadb-10.3-10.3.20/mysql-test/suite/galera/disabled.def --- mariadb-10.3-10.3.17/mysql-test/suite/galera/disabled.def 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/disabled.def 2019-11-06 16:01:57.000000000 +0000 @@ -10,10 +10,6 @@ # ############################################################################## -MW-286 : MDEV-19992 Galera test failure on MW-286 -MW-328A : MDEV-17847 Galera test failure on MW-328[A|B|C] -MW-328B : MDEV-17847 Galera test failure on MW-328[A|B|C] -MW-328C : MDEV-17847 Galera test failure on MW-328[A|B|C] MW-329 : MDEV-19962 Galera test failure on MW-329 MW-388: MDEV-19803 Long semaphore wait error on galera.MW-388 galera_account_management : MariaDB 10.0 does not support ALTER USER @@ -21,7 +17,6 @@ galera_as_master_gtid_change_master : Requires MySQL GTID galera_as_slave_preordered : wsrep-preordered feature not merged to MariaDB galera_as_slave_replication_bundle : MDEV-15785 OPTION_GTID_BEGIN is set in Gtid_log_event::do_apply_event() -galera_autoinc_sst_mariabackup : MDEV-19926 Galera SST tests fail galera_binlog_rows_query_log_events: MariaDB does not support binlog_rows_query_log_events galera_binlog_stmt_autoinc: MDEV-19959 Galera test failure on galera_binlog_stmt_autoinc galera_flush : MariaDB does not have global.thread_statistics @@ -29,12 +24,8 @@ galera_ist_mariabackup : MDEV-18829 test leaves port open galera_ist_progress : MDEV-15236 fails when trying to read transfer status galera_migrate : MariaDB does not support START SLAVE USER -galera_pc_ignore_sb : MDEV-15811/MDEV-17357 Test failure -galera_ssl_upgrade : MDEV-13549 Galera test failures -galera_sst_mysqldump_with_key : MDEV-16890 Galera test failure -galera_var_node_address : MDEV-17151 Galera test failure -galera_var_notify_cmd : MDEV-13549 Galera test failures -galera_var_slave_threads : MDEV-19746 Galera test failures because of wsrep_slave_threads identification -galera_sst_mariabackup_encrypt_with_key : MDEV-19926 Galera SST tests fail -galera_wan : MDEV-17259: Test failure on galera.galera_wan +galera_ssl_upgrade : MDEV-19950 Galera test failure on galera_ssl_upgrade +galera_var_node_address : MDEV-20485 Galera test failure +galera_wan : MDEV-17259 Test failure on galera.galera_wan partition : MDEV-19958 Galera test failure on galera.partition +query_cache: MDEV-15805 Test failure on galera.query_cache diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/r/GAL-382.result mariadb-10.3-10.3.20/mysql-test/suite/galera/r/GAL-382.result --- mariadb-10.3-10.3.17/mysql-test/suite/galera/r/GAL-382.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/r/GAL-382.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,7 +1,11 @@ connection node_1; create table t1 (i int, j int, k int, primary key pk(i)) engine=innodb; +Warnings: +Warning 1280 Name 'pk' ignored for PRIMARY key. insert into t1 values (1, 1, 1), (2, 2, 2), (3, 3, 3); create table t2 (i int, j int, k int, primary key pk(i, j, k), index idx(i, k, j)) engine=innodb; +Warnings: +Warning 1280 Name 'pk' ignored for PRIMARY key. replace into t2 (i, j, k) select /*!99997 */ i, k, j from t1; DROP TABLE t1; DROP TABLE t2; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/r/galera#500.result mariadb-10.3-10.3.20/mysql-test/suite/galera/r/galera#500.result --- mariadb-10.3-10.3.17/mysql-test/suite/galera/r/galera#500.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/r/galera#500.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,10 +1,14 @@ +connection node_2; SET SESSION wsrep_sync_wait = 0; SET GLOBAL wsrep_provider_options="gmcast.isolate=2"; +connection node_1; SET SESSION wsrep_sync_wait = 0; SHOW STATUS LIKE 'wsrep_cluster_status'; Variable_name Value wsrep_cluster_status non-Primary SET SESSION wsrep_sync_wait = default; SET GLOBAL wsrep_provider_options="pc.bootstrap=1"; +connection node_2; SET SESSION wsrep_on=0; +connection node_2; CALL mtr.add_suppression("WSREP: exception from gcomm, backend must be restarted: Gcomm backend termination was requested by setting gmcast.isolate=2."); diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/r/galera_events2.result mariadb-10.3-10.3.20/mysql-test/suite/galera/r/galera_events2.result --- mariadb-10.3-10.3.17/mysql-test/suite/galera/r/galera_events2.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/r/galera_events2.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,122 @@ +connection node_1; +connection node_2; +connection node_1; +CREATE TABLE event_table(a int) engine=innodb; +CREATE EVENT event_2 ON SCHEDULE EVERY 1 SECOND +ENDS NOW() + INTERVAL 6 SECOND +ON COMPLETION NOT PRESERVE +DO +INSERT INTO event_table VALUES (1); +Warnings: +Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it. +# node_1 event should be there +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2'; +EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT +def test event_2 root@localhost SQL INSERT INTO event_table VALUES (1) RECURRING NULL 1 SECOND ENABLED NOT PRESERVE +connection node_2; +# node_2 event should be there +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2'; +EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT +def test event_2 root@localhost SQL INSERT INTO event_table VALUES (1) RECURRING NULL 1 SECOND SLAVESIDE_DISABLED NOT PRESERVE +connection node_1; +SET GLOBAL event_scheduler=ON; +SHOW VARIABLES LIKE 'event_scheduler'; +Variable_name Value +event_scheduler ON +# node_1 event should be removed +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2'; +EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT +connection node_2; +# node_2 event should be removed +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2'; +EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT +connection node_1; +SET GLOBAL event_scheduler=OFF; +DROP TABLE event_table; +connection node_1; +CREATE DATABASE IF NOT EXISTS events_test; +use events_test; +CREATE USER ev_test@localhost; +GRANT ALL ON events_test.* to ev_test@localhost; +connect ev_con1,localhost,ev_test,,events_test; +CREATE EVENT one_event ON SCHEDULE EVERY 10 SECOND DO SELECT 123; +Warnings: +Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it. +SHOW EVENTS; +Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation +events_test one_event ev_test@localhost SYSTEM RECURRING NULL 10 # # NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS ORDER BY EVENT_SCHEMA, EVENT_NAME; +EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT +def events_test one_event ev_test@localhost SQL SELECT 123 RECURRING NULL 10 SECOND ENABLED NOT PRESERVE +ALTER EVENT one_event ON SCHEDULE EVERY 10 SECOND; +"The definer should be ev_test@localhost" +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; +EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT +def events_test one_event ev_test@localhost SQL SELECT 123 RECURRING NULL 10 SECOND ENABLED NOT PRESERVE +connection node_2; +use events_test; +"The definer should be ev_test@localhost" +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; +EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT +def events_test one_event ev_test@localhost SQL SELECT 123 RECURRING NULL 10 SECOND SLAVESIDE_DISABLED NOT PRESERVE +connection node_1; +disconnect ev_con1; +use test; +DROP EVENT events_test.one_event; +DROP USER ev_test@localhost; +DROP DATABASE events_test; +connection node_1; +use test; +CREATE EVENT one_event ON SCHEDULE EVERY 10 SECOND DO SELECT 123; +Warnings: +Warning 1105 Event scheduler is switched off, use SET GLOBAL event_scheduler=ON to enable it. +# node_1 Event should be enabled +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; +EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT +def test one_event root@localhost SQL SELECT 123 RECURRING NULL 10 SECOND ENABLED NOT PRESERVE +connection node_2; +use test; +# node_2 Event should be SERVERSIDE_DISABLED +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; +EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT +def test one_event root@localhost SQL SELECT 123 RECURRING NULL 10 SECOND SLAVESIDE_DISABLED NOT PRESERVE +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(1)) engine=InnoDB; +INSERT INTO t1 VALUES (1, 'a'), (2, 'a'), (3, 'a'); +SELECT * FROM t1; +f1 f2 +1 a +2 a +3 a +Shutting down server ... +connection node_1; +UPDATE t1 SET f2 = 'b' WHERE f1 > 1; +UPDATE t1 SET f2 = 'c' WHERE f1 > 2; +SELECT * FROM t1; +f1 f2 +1 a +2 b +3 c +connection node_2; +# Force SST from node_1 to node_2 +Starting server ... +SELECT * FROM t1; +f1 f2 +1 a +2 b +3 c +# node_2 Event should be SERVERSIDE_DISABLED +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; +EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT +def test one_event root@localhost SQL SELECT 123 RECURRING NULL 10 SECOND SLAVESIDE_DISABLED NOT PRESERVE +connection node_1; +SELECT * FROM t1; +f1 f2 +1 a +2 b +3 c +# node_1 Event should be ENABLED +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; +EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT +def test one_event root@localhost SQL SELECT 123 RECURRING NULL 10 SECOND ENABLED NOT PRESERVE +DROP TABLE t1; +DROP EVENT one_event; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/r/galera_gcs_fragment.result mariadb-10.3-10.3.20/mysql-test/suite/galera/r/galera_gcs_fragment.result --- mariadb-10.3-10.3.17/mysql-test/suite/galera/r/galera_gcs_fragment.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/r/galera_gcs_fragment.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,24 +1,35 @@ +connection node_1; +connection node_2; CREATE TABLE t1 (f1 INT PRIMARY KEY, f2 TEXT); +connection node_2; SET GLOBAL wsrep_cluster_address=''; +connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1; SET SESSION wsrep_sync_wait=0; SET GLOBAL wsrep_provider_options = 'dbug=d,gcs_core_after_frag_send'; +connection node_1; SET SESSION wsrep_retry_autocommit=0; INSERT INTO t1 VALUES (1, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); +connection node_1a; SET SESSION wsrep_on = 0; SET SESSION wsrep_on = 1; SET GLOBAL wsrep_provider_options = 'dbug='; +connection node_2; SET SESSION wsrep_on = 0; SET SESSION wsrep_on = 1; INSERT INTO t1 VALUES (2, "bbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); +connection node_1a; SET GLOBAL wsrep_provider_options = 'signal=gcs_core_after_frag_send'; -ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +connection node_1; +ERROR 40001: Deadlock: wsrep aborted transaction INSERT INTO t1 VALUES (3, "cccccaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); SELECT * FROM t1; f1 f2 2 bbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 3 cccccaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +connection node_2; SELECT * FROM t1; f1 f2 2 bbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 3 cccccaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +connection node_1; DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/r/galera_load_data.result mariadb-10.3-10.3.20/mysql-test/suite/galera/r/galera_load_data.result --- mariadb-10.3-10.3.17/mysql-test/suite/galera/r/galera_load_data.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/r/galera_load_data.result 2019-11-06 16:01:57.000000000 +0000 @@ -32,49 +32,15 @@ Note 1031 Storage engine InnoDB of the table `cardtest02`.`cardtest_tbl` doesn't have this option UNLOCK TABLES; use cardtest02; -show indexes from cardtest_tbl; -Table cardtest_tbl -Non_unique 0 -Key_name PRIMARY -Seq_in_index 1 -Column_name id -Collation A -Cardinality 301 -Sub_part NULL -Packed NULL -Null -Index_type BTREE -Comment -Index_comment -select table_rows, avg_row_length, data_length from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'; -table_rows 301 -avg_row_length 81 -data_length 24576 select count(*) from cardtest_tbl; -count(*) 301 +count(*) +301 connection node_2; set session wsrep_sync_wait=15; use cardtest02; -show indexes from cardtest_tbl; -Table cardtest_tbl -Non_unique 0 -Key_name PRIMARY -Seq_in_index 1 -Column_name id -Collation A -Cardinality 301 -Sub_part NULL -Packed NULL -Null -Index_type BTREE -Comment -Index_comment -select table_rows, avg_row_length, data_length from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'; -table_rows 301 -avg_row_length 81 -data_length 24576 select count(*) from cardtest_tbl; -count(*) 301 +count(*) +301 connection node_1; use test; drop database cardtest02; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/r/galera_performance_schema.result mariadb-10.3-10.3.20/mysql-test/suite/galera/r/galera_performance_schema.result --- mariadb-10.3-10.3.17/mysql-test/suite/galera/r/galera_performance_schema.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/r/galera_performance_schema.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,44 @@ +use performance_schema; +SELECT name +FROM threads +WHERE name LIKE 'thread/sql/wsrep%' +ORDER BY name; +name thread/sql/wsrep_applier_thread +name thread/sql/wsrep_rollbacker_thread +use test; +create table t1 (a int not null primary key) engine=innodb; +insert into t1 values (1),(2); +use performance_schema; +select name from mutex_instances where name like 'wait/synch/mutex/sql/LOCK_wsrep%' order by name; +name wait/synch/mutex/sql/LOCK_wsrep_config_state +name wait/synch/mutex/sql/LOCK_wsrep_desync +name wait/synch/mutex/sql/LOCK_wsrep_ready +name wait/synch/mutex/sql/LOCK_wsrep_replaying +name wait/synch/mutex/sql/LOCK_wsrep_rollback +name wait/synch/mutex/sql/LOCK_wsrep_slave_threads +name wait/synch/mutex/sql/LOCK_wsrep_sst +name wait/synch/mutex/sql/LOCK_wsrep_sst_init +select name from cond_instances where name like 'wait/synch/cond/sql/COND_wsrep%' order by name; +name wait/synch/cond/sql/COND_wsrep_ready +name wait/synch/cond/sql/COND_wsrep_replaying +name wait/synch/cond/sql/COND_wsrep_rollback +name wait/synch/cond/sql/COND_wsrep_sst +name wait/synch/cond/sql/COND_wsrep_sst_init +connection node_2; +use test; +SET SESSION wsrep_on=OFF; +CREATE TABLE t2 (f1 INTEGER) engine=innodb; +connection node_1; +use test; +CREATE TABLE t2 (f1 INTEGER) engine=innodb; +connection node_2; +SET SESSION wsrep_on=ON; +SELECT COUNT(*) FROM t1; +COUNT(*) 2 +use performance_schema; +select count(*)>=1 from file_instances where file_name like '%GRA_%.log'; +count(*)>=1 1 +CALL mtr.add_suppression("Slave SQL: Error 'Table 't2' already exists' on query"); +use test; +drop table t1; +drop table t2; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/r/galera_shutdown_nonprim.result mariadb-10.3-10.3.20/mysql-test/suite/galera/r/galera_shutdown_nonprim.result --- mariadb-10.3-10.3.17/mysql-test/suite/galera/r/galera_shutdown_nonprim.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/r/galera_shutdown_nonprim.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,9 @@ +connection node_1; +connection node_2; +connection node_1; +SET GLOBAL wsrep_provider_options = 'pc.weight=2'; +connection node_2; +SET GLOBAL wsrep_provider_options = 'gmcast.isolate = 1'; +SET SESSION wsrep_sync_wait = 0; +connection node_1; +SET GLOBAL wsrep_provider_options = 'pc.weight = 1'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/r/galera_var_node_address.result mariadb-10.3-10.3.20/mysql-test/suite/galera/r/galera_var_node_address.result --- mariadb-10.3-10.3.17/mysql-test/suite/galera/r/galera_var_node_address.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/r/galera_var_node_address.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,17 +1,20 @@ -call mtr.add_suppression("WSREP: Stray state UUID msg: .* current group state WAIT_STATE_UUID .*"); -call mtr.add_suppression("WSREP: Protocol violation. JOIN message sender .* is not in state transfer (.*). Message ignored."); -call mtr.add_suppression("WSREP: Sending JOIN failed: -[0-9]+ (Transport endpoint is not connected). Will retry in new primary component."); -SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; -VARIABLE_VALUE = 4 -1 +call mtr.add_suppression("WSREP: Stray state UUID msg: .*"); +call mtr.add_suppression("WSREP: Protocol violation. JOIN message sender .*"); +call mtr.add_suppression("WSREP: Sending JOIN failed: .*"); +flush tables; +SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; +VARIABLE_VALUE +4 connection node_1; CREATE TABLE t1 (f1 INTEGER) ENGINE=INNODB; connection node_2; +set global wsrep_sync_wait=15; INSERT INTO t1 VALUES (1); connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3; connection node_3; -SELECT COUNT(*) = 1 FROM t1; -COUNT(*) = 1 +set global wsrep_sync_wait=15; +SELECT COUNT(*) FROM t1; +COUNT(*) 1 connection node_1; DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/r/MW-328A.result mariadb-10.3-10.3.20/mysql-test/suite/galera/r/MW-328A.result --- mariadb-10.3-10.3.17/mysql-test/suite/galera/r/MW-328A.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/r/MW-328A.result 2019-11-06 16:01:57.000000000 +0000 @@ -14,14 +14,29 @@ CALL proc_update();; connection node_2; SET SESSION wsrep_retry_autocommit = 0; -have_successes -1 -have_deadlocks -1 connection node_1; connection node_1X; Got one of the listed errors connection node_1; DROP PROCEDURE proc_update; DROP TABLE t1, t2; -CALL mtr.add_suppression("conflict state 3 after post commit"); +CALL mtr.add_suppression("conflict state ABORTED after post commit"); +connection node_1; +CREATE TABLE t1 (i int primary key, j int) engine=innodb; +INSERT INTO t1 values (1,0); +BEGIN; +UPDATE t1 SET j=1 WHERE i=1; +connection node_2; +UPDATE t1 SET j=2 WHERE i=1; +connection node_1; +COMMIT; +ERROR 40001: Deadlock: wsrep aborted transaction +SELECT * FROM t1; +i j +1 2 +connection node_2; +SELECT * FROM t1; +i j +1 2 +connection node_1; +DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/r/MW-328B.result mariadb-10.3-10.3.20/mysql-test/suite/galera/r/MW-328B.result --- mariadb-10.3-10.3.17/mysql-test/suite/galera/r/MW-328B.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/r/MW-328B.result 2019-11-06 16:01:57.000000000 +0000 @@ -20,4 +20,4 @@ connection node_1; DROP PROCEDURE proc_update; DROP TABLE t1, t2; -CALL mtr.add_suppression("conflict state 3 after post commit"); +CALL mtr.add_suppression("conflict state ABORTED after post commit"); diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/r/MW-328C.result mariadb-10.3-10.3.20/mysql-test/suite/galera/r/MW-328C.result --- mariadb-10.3-10.3.17/mysql-test/suite/galera/r/MW-328C.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/r/MW-328C.result 2019-11-06 16:01:57.000000000 +0000 @@ -20,4 +20,4 @@ connection node_1; DROP PROCEDURE proc_update; DROP TABLE t1, t2; -CALL mtr.add_suppression("conflict state 3 after post commit"); +CALL mtr.add_suppression("conflict state ABORTED after post commit"); diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/r/MW-336.result mariadb-10.3-10.3.20/mysql-test/suite/galera/r/MW-336.result --- mariadb-10.3-10.3.17/mysql-test/suite/galera/r/MW-336.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/r/MW-336.result 2019-11-06 16:01:57.000000000 +0000 @@ -6,10 +6,6 @@ connection node_2; INSERT INTO t1 VALUES (1); connection node_1; -SET SESSION wsrep_sync_wait=15; -SELECT COUNT(*) FROM t1; -COUNT(*) -1 SET GLOBAL wsrep_slave_threads = 10; # Set slave threads to 10 step 2 SET GLOBAL wsrep_slave_threads = 20; @@ -43,9 +39,11 @@ INSERT INTO t1 VALUES (18); INSERT INTO t1 VALUES (19); INSERT INTO t1 VALUES (20); +INSERT INTO t1 VALUES (21); +INSERT INTO t1 VALUES (22); connection node_1; SELECT COUNT(*) FROM t1; COUNT(*) -21 +23 SET GLOBAL wsrep_slave_threads = 1; DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/r/MW-369.result mariadb-10.3-10.3.20/mysql-test/suite/galera/r/MW-369.result --- mariadb-10.3-10.3.17/mysql-test/suite/galera/r/MW-369.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/r/MW-369.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,23 +3,32 @@ CONSTRAINT fk_1 FOREIGN KEY (p_id) REFERENCES p (f1)) ; INSERT INTO p VALUES (1, 0); INSERT INTO p VALUES (2, 0); +connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1; +connection node_1; SET AUTOCOMMIT=ON; START TRANSACTION; DELETE FROM p WHERE f1 = 1; +connection node_1a; SET SESSION wsrep_sync_wait = 0; SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync'; +connection node_2; INSERT INTO c VALUES (1, 1); +connection node_1a; SET SESSION wsrep_on = 0; SET SESSION wsrep_on = 1; SET GLOBAL wsrep_provider_options = 'dbug='; SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_enter_sync'; +connection node_1; COMMIT; +connection node_1a; SET SESSION wsrep_on = 0; SET SESSION wsrep_on = 1; SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync'; SET GLOBAL wsrep_provider_options = 'signal=local_monitor_enter_sync'; SET GLOBAL wsrep_provider_options = 'dbug='; -ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +connection node_1; +ERROR 40001: Deadlock: wsrep aborted transaction +connection node_2; SELECT * FROM p; f1 f2 1 0 @@ -29,6 +38,7 @@ 1 1 DROP TABLE c; DROP TABLE p; +connection node_1; CREATE TABLE p (f1 INTEGER PRIMARY KEY, f2 INTEGER) ENGINE=INNODB; CREATE TABLE c (f1 INTEGER PRIMARY KEY, p_id INTEGER, f2 INTEGER, @@ -36,22 +46,30 @@ INSERT INTO p VALUES (1, 0); INSERT INTO p VALUES (2, 0); INSERT INTO c VALUES (1, 1, 0); +connection node_1; SET AUTOCOMMIT=ON; START TRANSACTION; UPDATE p SET f2 = 1 WHERE f1 = 1; +connection node_1a; SET SESSION wsrep_sync_wait = 0; SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync'; +connection node_2; UPDATE c SET f2 = 1 WHERE f1 = 1; +connection node_1a; SET SESSION wsrep_on = 0; SET SESSION wsrep_on = 1; SET GLOBAL wsrep_provider_options = 'dbug='; SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_enter_sync'; +connection node_1; COMMIT; +connection node_1a; SET SESSION wsrep_on = 0; SET SESSION wsrep_on = 1; SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync'; SET GLOBAL wsrep_provider_options = 'signal=local_monitor_enter_sync'; SET GLOBAL wsrep_provider_options = 'dbug='; +connection node_1; +connection node_2; SELECT * FROM p; f1 f2 1 1 @@ -61,28 +79,37 @@ 1 1 1 DROP TABLE c; DROP TABLE p; +connection node_1; CREATE TABLE p (f1 INTEGER PRIMARY KEY, f2 INTEGER) ENGINE=INNODB; CREATE TABLE c (f1 INTEGER PRIMARY KEY, p_id INTEGER, CONSTRAINT fk_1 FOREIGN KEY (p_id) REFERENCES p (f1)) ; INSERT INTO p VALUES (1, 0); INSERT INTO p VALUES (2, 0); INSERT INTO c VALUES (1, 1); +connection node_1; SET AUTOCOMMIT=ON; START TRANSACTION; UPDATE p SET f2 = 1 WHERE f1 = 1; +connection node_1a; SET SESSION wsrep_sync_wait = 0; SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync'; +connection node_2; DELETE FROM c WHERE f1 = 1; +connection node_1a; SET SESSION wsrep_on = 0; SET SESSION wsrep_on = 1; SET GLOBAL wsrep_provider_options = 'dbug='; SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_enter_sync'; +connection node_1; COMMIT; +connection node_1a; SET SESSION wsrep_on = 0; SET SESSION wsrep_on = 1; SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync'; SET GLOBAL wsrep_provider_options = 'signal=local_monitor_enter_sync'; SET GLOBAL wsrep_provider_options = 'dbug='; +connection node_1; +connection node_2; SELECT * FROM p; f1 f2 1 1 @@ -95,23 +122,31 @@ CREATE TABLE c (f1 INTEGER PRIMARY KEY, p_id INTEGER, CONSTRAINT fk_1 FOREIGN KEY (p_id) REFERENCES p (f2)) ; INSERT INTO p VALUES (1, 0); +connection node_1; SET AUTOCOMMIT=ON; START TRANSACTION; UPDATE p SET f2 = 1 WHERE f1 = 1; +connection node_1a; SET SESSION wsrep_sync_wait = 0; SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync'; +connection node_2; INSERT INTO c VALUES (1, 0);; +connection node_1a; SET SESSION wsrep_on = 0; SET SESSION wsrep_on = 1; SET GLOBAL wsrep_provider_options = 'dbug='; SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_enter_sync'; +connection node_1; COMMIT; +connection node_1a; SET SESSION wsrep_on = 0; SET SESSION wsrep_on = 1; SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync'; SET GLOBAL wsrep_provider_options = 'signal=local_monitor_enter_sync'; SET GLOBAL wsrep_provider_options = 'dbug='; -ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +connection node_1; +ERROR 40001: Deadlock: wsrep aborted transaction +connection node_2; SELECT * FROM p; f1 f2 1 0 @@ -127,23 +162,31 @@ INSERT INTO p VALUES (1, 0); INSERT INTO p VALUES (2, 0); INSERT INTO c VALUES (1, 1, 0); +connection node_1; SET AUTOCOMMIT=ON; START TRANSACTION; DELETE FROM p WHERE f1 = 1; +connection node_1a; SET SESSION wsrep_sync_wait = 0; SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync'; +connection node_2; UPDATE c SET f2 = 1 WHERE f1 = 1; +connection node_1a; SET SESSION wsrep_on = 0; SET SESSION wsrep_on = 1; SET GLOBAL wsrep_provider_options = 'dbug='; SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_enter_sync'; +connection node_1; COMMIT; +connection node_1a; SET SESSION wsrep_on = 0; SET SESSION wsrep_on = 1; SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync'; SET GLOBAL wsrep_provider_options = 'signal=local_monitor_enter_sync'; SET GLOBAL wsrep_provider_options = 'dbug='; -ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +connection node_1; +ERROR 40001: Deadlock: wsrep aborted transaction +connection node_2; SELECT * FROM p; f1 f2 1 0 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/r/MW-402.result mariadb-10.3-10.3.20/mysql-test/suite/galera/r/MW-402.result --- mariadb-10.3-10.3.17/mysql-test/suite/galera/r/MW-402.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/r/MW-402.result 2019-11-06 16:01:57.000000000 +0000 @@ -30,7 +30,7 @@ SET GLOBAL wsrep_provider_options = 'signal=local_monitor_enter_sync'; SET GLOBAL wsrep_provider_options = 'dbug='; connection node_1; -ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +ERROR 40001: Deadlock: wsrep aborted transaction connection node_2; SELECT * FROM p; f1 f2 @@ -70,7 +70,7 @@ SET GLOBAL wsrep_provider_options = 'signal=local_monitor_enter_sync'; SET GLOBAL wsrep_provider_options = 'dbug='; connection node_1; -ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +ERROR 40001: Deadlock: wsrep aborted transaction connection node_2; SELECT * FROM p; f1 f2 @@ -112,7 +112,7 @@ SET GLOBAL wsrep_provider_options = 'signal=local_monitor_enter_sync'; SET GLOBAL wsrep_provider_options = 'dbug='; connection node_1; -ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +ERROR 40001: Deadlock: wsrep aborted transaction connection node_2; SELECT * FROM p; f1 f2 @@ -145,7 +145,7 @@ SET GLOBAL wsrep_provider_options = 'signal=local_monitor_enter_sync'; SET GLOBAL wsrep_provider_options = 'dbug='; connection node_1; -ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +ERROR 40001: Deadlock: wsrep aborted transaction connection node_2; SELECT * FROM p; f1 f2 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/r/mysql-wsrep#332.result mariadb-10.3-10.3.20/mysql-test/suite/galera/r/mysql-wsrep#332.result --- mariadb-10.3-10.3.17/mysql-test/suite/galera/r/mysql-wsrep#332.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/r/mysql-wsrep#332.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,26 +1,36 @@ +connect node_1a, 127.0.0.1, root, , test, $NODE_MYPORT_1; +connection node_1; CREATE TABLE p (f1 INTEGER PRIMARY KEY, f2 INTEGER) ENGINE=INNODB; CREATE TABLE c (f1 INTEGER PRIMARY KEY, p_id INTEGER) ENGINE=INNODB; INSERT INTO p VALUES (1, 0); INSERT INTO p VALUES (2, 0); INSERT INTO c VALUES (1, 1); INSERT INTO c VALUES (2, 2); +connection node_1; SET AUTOCOMMIT=ON; START TRANSACTION; UPDATE p SET f1 = f1 + 100; +connection node_1a; SET SESSION wsrep_sync_wait = 0; SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync'; +connection node_2; ALTER TABLE c ADD FOREIGN KEY (p_id) REFERENCES p(f1); +connection node_1a; SET SESSION wsrep_on = 0; SET SESSION wsrep_on = 1; SET GLOBAL wsrep_provider_options = 'dbug='; SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_enter_sync'; +connection node_1; COMMIT; +connection node_1a; SET SESSION wsrep_on = 0; SET SESSION wsrep_on = 1; SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync'; SET GLOBAL wsrep_provider_options = 'signal=local_monitor_enter_sync'; SET GLOBAL wsrep_provider_options = 'dbug='; -ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +connection node_1; +ERROR 40001: Deadlock: wsrep aborted transaction +connection node_2; SELECT * FROM p; f1 f2 1 0 @@ -31,6 +41,7 @@ 2 2 DROP TABLE c; DROP TABLE p; +connection node_1; CREATE TABLE p1 (f1 INTEGER PRIMARY KEY, f2 INTEGER) ENGINE=INNODB; CREATE TABLE p2 (f1 INTEGER PRIMARY KEY, f2 INTEGER) ENGINE=INNODB; CREATE TABLE c (f1 INTEGER PRIMARY KEY, p_id1 INTEGER, p_id2 INTEGER) ENGINE=INNODB; @@ -38,23 +49,31 @@ INSERT INTO p2 VALUES (1, 0), (2, 0); INSERT INTO c VALUES (1, 1, 1); INSERT INTO c VALUES (2, 2, 2); +connection node_1; SET AUTOCOMMIT=ON; START TRANSACTION; UPDATE p1 SET f1 = f1 + 100; +connection node_1a; SET SESSION wsrep_sync_wait = 0; SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync'; +connection node_2; ALTER TABLE c ADD FOREIGN KEY (p_id1) REFERENCES p1(f1), ADD FOREIGN KEY (p_id2) REFERENCES p2(f1); +connection node_1a; SET SESSION wsrep_on = 0; SET SESSION wsrep_on = 1; SET GLOBAL wsrep_provider_options = 'dbug='; SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_enter_sync'; +connection node_1; COMMIT; +connection node_1a; SET SESSION wsrep_on = 0; SET SESSION wsrep_on = 1; SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync'; SET GLOBAL wsrep_provider_options = 'signal=local_monitor_enter_sync'; SET GLOBAL wsrep_provider_options = 'dbug='; -ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +connection node_1; +ERROR 40001: Deadlock: wsrep aborted transaction +connection node_2; SELECT * FROM p1; f1 f2 1 0 @@ -70,6 +89,7 @@ DROP TABLE c; DROP TABLE p1; DROP TABLE p2; +connection node_1; CREATE TABLE p1 (f1 INTEGER PRIMARY KEY, f2 INTEGER) ENGINE=INNODB; CREATE TABLE p2 (f1 INTEGER PRIMARY KEY, f2 INTEGER) ENGINE=INNODB; CREATE TABLE c (f1 INTEGER PRIMARY KEY, p_id1 INTEGER, p_id2 INTEGER) ENGINE=INNODB; @@ -77,23 +97,31 @@ INSERT INTO p2 VALUES (1, 0), (2, 0); INSERT INTO c VALUES (1, 1, 1); INSERT INTO c VALUES (2, 2, 2); +connection node_1; SET AUTOCOMMIT=ON; START TRANSACTION; UPDATE p2 SET f1 = f1 + 100; +connection node_1a; SET SESSION wsrep_sync_wait = 0; SET GLOBAL wsrep_provider_options = 'dbug=d,apply_monitor_slave_enter_sync'; +connection node_2; ALTER TABLE c ADD FOREIGN KEY (p_id1) REFERENCES p1(f1), ADD FOREIGN KEY (p_id2) REFERENCES p2(f1); +connection node_1a; SET SESSION wsrep_on = 0; SET SESSION wsrep_on = 1; SET GLOBAL wsrep_provider_options = 'dbug='; SET GLOBAL wsrep_provider_options = 'dbug=d,local_monitor_enter_sync'; +connection node_1; COMMIT; +connection node_1a; SET SESSION wsrep_on = 0; SET SESSION wsrep_on = 1; SET GLOBAL wsrep_provider_options = 'signal=apply_monitor_slave_enter_sync'; SET GLOBAL wsrep_provider_options = 'signal=local_monitor_enter_sync'; SET GLOBAL wsrep_provider_options = 'dbug='; -ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +connection node_1; +ERROR 40001: Deadlock: wsrep aborted transaction +connection node_2; SELECT * FROM p1; f1 f2 1 0 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/t/galera_events2.test mariadb-10.3-10.3.20/mysql-test/suite/galera/t/galera_events2.test --- mariadb-10.3-10.3.17/mysql-test/suite/galera/t/galera_events2.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/t/galera_events2.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,144 @@ +--source include/galera_cluster.inc + +# Save original auto_increment_offset values. +--let $node_1=node_1 +--let $node_2=node_2 +--source include/auto_increment_offset_save.inc + +# +# Test case 1: "ONE TIME" events should be dropped on slave nodes after expiring on master (event creator node) +# + +--connection node_1 + +CREATE TABLE event_table(a int) engine=innodb; + +CREATE EVENT event_2 ON SCHEDULE EVERY 1 SECOND +ENDS NOW() + INTERVAL 6 SECOND +ON COMPLETION NOT PRESERVE +DO + INSERT INTO event_table VALUES (1); + +--echo # node_1 event should be there +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2'; + +--connection node_2 +--echo # node_2 event should be there +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2'; + +--connection node_1 +SET GLOBAL event_scheduler=ON; +SHOW VARIABLES LIKE 'event_scheduler'; + +# Let event_2 reach the end of its execution interval +let $wait_condition=select count(*) = 0 from information_schema.events where event_name='event_2'; +--source include/wait_condition.inc + +--echo # node_1 event should be removed +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2'; + +--connection node_2 +--echo # node_2 event should be removed +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2'; + +--connection node_1 +SET GLOBAL event_scheduler=OFF; +DROP TABLE event_table; + +# +# Test case 2: After doing ALTER EVENT, slave nodes should have same definer as master +# + +--connection node_1 + +CREATE DATABASE IF NOT EXISTS events_test; +use events_test; +CREATE USER ev_test@localhost; +GRANT ALL ON events_test.* to ev_test@localhost; +connect (ev_con1,localhost,ev_test,,events_test); + +CREATE EVENT one_event ON SCHEDULE EVERY 10 SECOND DO SELECT 123; +--replace_column 8 # 9 # +SHOW EVENTS; +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS ORDER BY EVENT_SCHEMA, EVENT_NAME; +ALTER EVENT one_event ON SCHEDULE EVERY 10 SECOND; +--echo "The definer should be ev_test@localhost" +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; + +--connection node_2 +use events_test; +--echo "The definer should be ev_test@localhost" +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; + +--connection node_1 +--disconnect ev_con1 +use test; +DROP EVENT events_test.one_event; +DROP USER ev_test@localhost; +DROP DATABASE events_test; + +# +# Test case 3: After SST from master node (the one where event is ENABLED) , slave event status should be 'SLAVESIDE_DISABLED' +# + +--connection node_1 +use test; +CREATE EVENT one_event ON SCHEDULE EVERY 10 SECOND DO SELECT 123; + +--echo # node_1 Event should be enabled +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; + +--connection node_2 +use test; +--echo # node_2 Event should be SERVERSIDE_DISABLED +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; + +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY, f2 CHAR(1)) engine=InnoDB; +INSERT INTO t1 VALUES (1, 'a'), (2, 'a'), (3, 'a'); + +SELECT * FROM t1; + +# Initiate normal shutdown on the node 2 and wait until shutdown has been completed: + +--echo Shutting down server ... +--source include/shutdown_mysqld.inc + +--connection node_1 + +--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' +--source include/wait_condition.inc + +UPDATE t1 SET f2 = 'b' WHERE f1 > 1; +UPDATE t1 SET f2 = 'c' WHERE f1 > 2; + +SELECT * FROM t1; + +--connection node_2 + +# Remove the "grastate.dat" file (to initiate new SST) and restart node 2 + +--remove_file $MYSQLTEST_VARDIR/mysqld.2/data/grastate.dat + +--echo # Force SST from node_1 to node_2 +--let $start_mysqld_params= +--echo Starting server ... +--source include/start_mysqld.inc + +--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size' +--source include/wait_condition.inc + +# Sanity check (node 2 is running now and can perform SQL operators): + +SELECT * FROM t1; +--echo # node_2 Event should be SERVERSIDE_DISABLED +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; + +--connection node_1 +SELECT * FROM t1; +--echo # node_1 Event should be ENABLED +SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; + +DROP TABLE t1; +DROP EVENT one_event; + +--source include/auto_increment_offset_restore.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/t/galera_load_data.test mariadb-10.3-10.3.20/mysql-test/suite/galera/t/galera_load_data.test --- mariadb-10.3-10.3.17/mysql-test/suite/galera/t/galera_load_data.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/t/galera_load_data.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,5 @@ --source include/galera_cluster.inc - --connection node_1 create database cardtest02; @@ -38,23 +37,44 @@ UNLOCK TABLES; use cardtest02; ---sleep 15 ---vertical_results -show indexes from cardtest_tbl; ---vertical_results -select table_rows, avg_row_length, data_length from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'; +--let $wait_timeout=600 +--let $wait_condition = SELECT table_rows = 301 from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'; +--source include/wait_condition.inc + select count(*) from cardtest_tbl; +let $cardinality1 = `SELECT cardinality from information_schema.statistics WHERE TABLE_NAME = 'cardtest_tbl'`; +let $table_rows1 = `SELECT table_rows from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'`; +let $avg_row_length1 = `SELECT avg_row_length from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'`; +let $data_length1 = `SELECT data_length from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'`; + --connection node_2 set session wsrep_sync_wait=15; use cardtest02; ---sleep 15 ---vertical_results -show indexes from cardtest_tbl; ---vertical_results -select table_rows, avg_row_length, data_length from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'; + +--let $wait_timeout=600 +--let $wait_condition = SELECT table_rows = 301 from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'; +--source include/wait_condition.inc + select count(*) from cardtest_tbl; +if (`SELECT cardinality <> $cardinality1 from information_schema.statistics WHERE TABLE_NAME = 'cardtest_tbl'`) +{ +SELECT cardinality from information_schema.statistics WHERE TABLE_NAME = 'cardtest_tbl'; +} +if (`SELECT table_rows <> $table_rows1 from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'`) +{ +SELECT table_rows from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'; +} +if (`SELECT avg_row_length <> $avg_row_length1 from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'`) +{ +SELECT avg_row_length from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'; +} +if (`SELECT data_length <> $data_length1 from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'`) +{ +SELECT data_length from information_schema.tables WHERE TABLE_NAME = 'cardtest_tbl'; +} + --connection node_1 use test; drop database cardtest02; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/t/galera_performance_schema.test mariadb-10.3-10.3.20/mysql-test/suite/galera/t/galera_performance_schema.test --- mariadb-10.3-10.3.17/mysql-test/suite/galera/t/galera_performance_schema.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/t/galera_performance_schema.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,58 @@ +# +# Test that wsrep mutexes, condition variables, files and +# threads are shown in performance schema +# +--source include/galera_cluster.inc +--source include/have_perfschema.inc + +use performance_schema; + +--vertical_results +--disable_ps_protocol +SELECT name +FROM threads +WHERE name LIKE 'thread/sql/wsrep%' +ORDER BY name; +--enable_ps_protocol + +use test; +create table t1 (a int not null primary key) engine=innodb; +insert into t1 values (1),(2); + +use performance_schema; +select name from mutex_instances where name like 'wait/synch/mutex/sql/LOCK_wsrep%' order by name; +select name from cond_instances where name like 'wait/synch/cond/sql/COND_wsrep%' order by name; +# Whenever a node fails to apply an event on a slave node, the database server creates a +# special binary log file of the event in the data directory. The naming convention the +# node uses for the filename is GRA_*.log. +# Thus, we need to produce a applier failure + +--connection node_2 +--exec rm -rf $MYSQLTEST_VARDIR/mysqld.2/data/GRA_*.log + +# Create applier failure + +use test; +SET SESSION wsrep_on=OFF; +CREATE TABLE t2 (f1 INTEGER) engine=innodb; + +--connection node_1 +use test; +CREATE TABLE t2 (f1 INTEGER) engine=innodb; + +--connection node_2 +SET SESSION wsrep_on=ON; +SELECT COUNT(*) FROM t1; + +use performance_schema; +# +# Below we can't just count number of files as if you run this test more +# than once, test will create more files +# +select count(*)>=1 from file_instances where file_name like '%GRA_%.log'; +CALL mtr.add_suppression("Slave SQL: Error 'Table 't2' already exists' on query"); + +use test; +drop table t1; +drop table t2; + diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/t/galera_shutdown_nonprim.test mariadb-10.3-10.3.20/mysql-test/suite/galera/t/galera_shutdown_nonprim.test --- mariadb-10.3-10.3.17/mysql-test/suite/galera/t/galera_shutdown_nonprim.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/t/galera_shutdown_nonprim.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,36 @@ +# +# Check that server can be shut down in non-primary configuration. +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc + +--let $node_1 = node_1 +--let $node_2 = node_2 +--source include/auto_increment_offset_save.inc + +--connection node_1 +# Set higher weight for node_1 to keep it in primary +# while node_2 is isolated. +SET GLOBAL wsrep_provider_options = 'pc.weight=2'; + +--connection node_2 +# Isolate node_2 from the group and wait until wsrep_ready becomes OFF. +SET GLOBAL wsrep_provider_options = 'gmcast.isolate = 1'; +SET SESSION wsrep_sync_wait = 0; +--let $wait_condition = SELECT VARIABLE_VALUE = 'OFF' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready' +--source include/wait_condition.inc + +# Verify that graceful shutdown succeeds. +--source include/shutdown_mysqld.inc +--source include/start_mysqld.inc + +--let $wait_condition = SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; +--source include/wait_condition.inc + +--connection node_1 +--source include/wait_condition.inc + +# Restore original settings. +SET GLOBAL wsrep_provider_options = 'pc.weight = 1'; +--source include/auto_increment_offset_restore.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/t/galera_var_node_address.test mariadb-10.3-10.3.20/mysql-test/suite/galera/t/galera_var_node_address.test --- mariadb-10.3-10.3.17/mysql-test/suite/galera/t/galera_var_node_address.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/t/galera_var_node_address.test 2019-11-06 16:01:57.000000000 +0000 @@ -6,27 +6,27 @@ --source include/galera_cluster.inc --source include/have_innodb.inc -call mtr.add_suppression("WSREP: Stray state UUID msg: .* current group state WAIT_STATE_UUID .*"); -call mtr.add_suppression("WSREP: Protocol violation. JOIN message sender .* is not in state transfer (.*). Message ignored."); -call mtr.add_suppression("WSREP: Sending JOIN failed: -[0-9]+ (Transport endpoint is not connected). Will retry in new primary component."); +call mtr.add_suppression("WSREP: Stray state UUID msg: .*"); +call mtr.add_suppression("WSREP: Protocol violation. JOIN message sender .*"); +call mtr.add_suppression("WSREP: Sending JOIN failed: .*"); +flush tables; -SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; +--let $wait_condition = SELECT VARIABLE_VALUE = 4 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; +--source include/wait_condition.inc + +SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; --connection node_1 CREATE TABLE t1 (f1 INTEGER) ENGINE=INNODB; --connection node_2 -let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE 'test/t1'; ---source include/wait_condition.inc +set global wsrep_sync_wait=15; INSERT INTO t1 VALUES (1); --connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3 --connection node_3 -let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES WHERE NAME LIKE 'test/t1'; ---source include/wait_condition.inc -let $wait_condition= SELECT COUNT(*) = 1 FROM t1; ---source include/wait_condition.inc -SELECT COUNT(*) = 1 FROM t1; +set global wsrep_sync_wait=15; +SELECT COUNT(*) FROM t1; --connection node_1 DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/t/MW-328A.test mariadb-10.3-10.3.20/mysql-test/suite/galera/t/MW-328A.test --- mariadb-10.3-10.3.17/mysql-test/suite/galera/t/MW-328A.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/t/MW-328A.test 2019-11-06 16:01:57.000000000 +0000 @@ -3,13 +3,17 @@ # # -# Attempt to insert into t2 and check if insert actually inserted rows if -# a success was reported. +# test phase 1 is not deterministic +# +# Here we attempt to insert into t2 and check if insert actually +# inserted rows if a success was reported. +# +# However, deadlocks may or may not happen in this test execution +# it all depends on timing. # ---source include/big_test.inc --source include/galera_cluster.inc ---source include/have_innodb.inc +--source include/big_test.inc --source suite/galera/t/MW-328-header.inc --connection node_2 @@ -25,7 +29,7 @@ { TRUNCATE TABLE t2; - --error 0,1213 + --error 0,ER_LOCK_DEADLOCK INSERT IGNORE INTO t2 SELECT f2 FROM t1; if ($mysql_errno != 1213) { --inc $successes @@ -44,14 +48,31 @@ --enable_query_log + +--source suite/galera/t/MW-328-footer.inc + # -# Check that the test produced both deadlocks and successes +# Test phase 2 is deterministic +# Here we generate a sure conflict in node 1 and verify that +# insert failed in both nodes # +--connection node_1 +CREATE TABLE t1 (i int primary key, j int) engine=innodb; +INSERT INTO t1 values (1,0); ---disable_query_log ---eval SELECT $successes > 0 AS have_successes ---eval SELECT $deadlocks > 0 AS have_deadlocks ---enable_query_log +BEGIN; +UPDATE t1 SET j=1 WHERE i=1; +--connection node_2 +UPDATE t1 SET j=2 WHERE i=1; ---source suite/galera/t/MW-328-footer.inc +--connection node_1 +--error ER_LOCK_DEADLOCK +COMMIT; + +SELECT * FROM t1; +--connection node_2 +SELECT * FROM t1; +--connection node_1 + +DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/t/MW-328B.test mariadb-10.3-10.3.20/mysql-test/suite/galera/t/MW-328B.test --- mariadb-10.3-10.3.17/mysql-test/suite/galera/t/MW-328B.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/t/MW-328B.test 2019-11-06 16:01:57.000000000 +0000 @@ -7,9 +7,8 @@ # gets the deadlock error # ---source include/big_test.inc --source include/galera_cluster.inc ---source include/have_innodb.inc +--source include/big_test.inc --source suite/galera/t/MW-328-header.inc --connection node_2 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/t/MW-328C.test mariadb-10.3-10.3.20/mysql-test/suite/galera/t/MW-328C.test --- mariadb-10.3-10.3.17/mysql-test/suite/galera/t/MW-328C.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/t/MW-328C.test 2019-11-06 16:01:57.000000000 +0000 @@ -7,9 +7,8 @@ # masks all deadlock errors # ---source include/big_test.inc --source include/galera_cluster.inc ---source include/have_innodb.inc +--source include/big_test.inc --source suite/galera/t/MW-328-header.inc --connection node_2 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/t/MW-328D.test mariadb-10.3-10.3.20/mysql-test/suite/galera/t/MW-328D.test --- mariadb-10.3-10.3.17/mysql-test/suite/galera/t/MW-328D.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/t/MW-328D.test 2019-11-06 16:01:57.000000000 +0000 @@ -7,7 +7,6 @@ # --source include/galera_cluster.inc ---source include/have_innodb.inc CREATE TABLE t1 (i INT) ENGINE = InnoDB; INSERT INTO t1 (i) VALUES(1); diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/t/MW-328E.test mariadb-10.3-10.3.20/mysql-test/suite/galera/t/MW-328E.test --- mariadb-10.3-10.3.17/mysql-test/suite/galera/t/MW-328E.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/t/MW-328E.test 2019-11-06 16:01:57.000000000 +0000 @@ -7,7 +7,6 @@ # --source include/galera_cluster.inc ---source include/have_innodb.inc create table t1 (i int primary key, j int) engine=innodb; create table t2 (i int primary key, j int) engine=innodb; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/t/MW-328-footer.inc mariadb-10.3-10.3.20/mysql-test/suite/galera/t/MW-328-footer.inc --- mariadb-10.3-10.3.17/mysql-test/suite/galera/t/MW-328-footer.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/t/MW-328-footer.inc 2019-11-06 16:01:57.000000000 +0000 @@ -15,4 +15,4 @@ DROP PROCEDURE proc_update; DROP TABLE t1, t2; -CALL mtr.add_suppression("conflict state 3 after post commit"); +CALL mtr.add_suppression("conflict state ABORTED after post commit"); diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/galera/t/MW-336.test mariadb-10.3-10.3.20/mysql-test/suite/galera/t/MW-336.test --- mariadb-10.3-10.3.17/mysql-test/suite/galera/t/MW-336.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/galera/t/MW-336.test 2019-11-06 16:01:57.000000000 +0000 @@ -13,7 +13,7 @@ # ensure that the threads have actually started running --echo # Set slave threads to 10 step 1 ---let $wait_condition = SELECT COUNT(*) = 10 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; +--let $wait_condition = SELECT VARIABLE_VALUE = 10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count'; --let $wait_condition_on_error_output = SELECT COUNT(*), 10 as EXPECTED_VALUE FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; show processlist --source include/wait_condition_with_debug.inc @@ -23,20 +23,18 @@ INSERT INTO t1 VALUES (1); --connection node_1 -SET SESSION wsrep_sync_wait=15; -SELECT COUNT(*) FROM t1; - SET GLOBAL wsrep_slave_threads = 10; +# Note that above insert could be handled by one of the slave threads --echo # Set slave threads to 10 step 2 ---let $wait_condition = SELECT COUNT(*) = 10 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; ---let $wait_condition_on_error_output = SELECT COUNT(*), 10 as EXPECTED_VALUE FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; show processlist +--let $wait_condition = SELECT VARIABLE_VALUE >= 9 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count'; +--let $wait_condition_on_error_output = SELECT COUNT(*), 9 as EXPECTED_VALUE FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; show processlist --source include/wait_condition_with_debug.inc SET GLOBAL wsrep_slave_threads = 20; --echo # Set slave threads to 20 ---let $wait_condition = SELECT COUNT(*) = 20 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; +--let $wait_condition = SELECT VARIABLE_VALUE = 20 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count'; --let $wait_condition_on_error_output = SELECT COUNT(*), 20 as EXPECTED_VALUE FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; show processlist --source include/wait_condition_with_debug.inc @@ -58,7 +56,7 @@ SET GLOBAL wsrep_slave_threads = 10; SELECT COUNT(*) FROM t1; --echo # Set slave threads to 10 step 3 ---let $wait_condition = SELECT COUNT(*) = 10 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; +--let $wait_condition = SELECT VARIABLE_VALUE = 10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count'; --let $wait_condition_on_error_output = SELECT COUNT(*), 10 as EXPECTED_VALUE FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; show processlist --source include/wait_condition_with_debug.inc @@ -73,6 +71,8 @@ INSERT INTO t1 VALUES (18); INSERT INTO t1 VALUES (19); INSERT INTO t1 VALUES (20); +INSERT INTO t1 VALUES (21); +INSERT INTO t1 VALUES (22); --connection node_1 SELECT COUNT(*) FROM t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/gcol/inc/gcol_select.inc mariadb-10.3-10.3.20/mysql-test/suite/gcol/inc/gcol_select.inc --- mariadb-10.3-10.3.17/mysql-test/suite/gcol/inc/gcol_select.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/gcol/inc/gcol_select.inc 2019-11-06 16:01:57.000000000 +0000 @@ -1,17 +1,22 @@ -################################################################################ -# inc/gcol_select.inc # -# # -# Purpose: # -# Testing different SELECTs. # -# # -# # -#------------------------------------------------------------------------------# -# Original Author: Andrey Zhakov # -# Original Date: 2008-09-18 # -# Change Author: # -# Change Date: # -# Change: # -################################################################################ +############################################################################## +# inc/gcol_select.inc # +# # +# Purpose: # +# Testing different SELECTs. # +# # +# # +#----------------------------------------------------------------------------# +# Original Author: Andrey Zhakov # +# Original Date: 2008-09-18 # +# Change Author: # +# Change Date: # +# Change: # +############################################################################## + +--disable_query_log +set @local_optimizer_switch=@@optimizer_switch; +set optimizer_switch='derived_merge=off,join_cache_hashed=off'; +--enable_query_log # Table t1 is used below to test: # - Join type of ALL (sequential scan of the entire table) @@ -1161,3 +1166,7 @@ eval $query; DROP TABLE t1, t2, t3, t4; + +--disable_query_log +set @@optimizer_switch=@local_optimizer_switch; +--enable_query_log diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/gcol/r/gcol_select_innodb.result mariadb-10.3-10.3.20/mysql-test/suite/gcol/r/gcol_select_innodb.result --- mariadb-10.3-10.3.17/mysql-test/suite/gcol/r/gcol_select_innodb.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/gcol/r/gcol_select_innodb.result 2019-11-06 16:01:57.000000000 +0000 @@ -691,8 +691,8 @@ ) AND t1.i1 <= t3.i2_key; id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using join buffer (flat, BNL join) 1 PRIMARY t3 eq_ref PRIMARY PRIMARY 4 test.t4.i1 1 Using where 1 PRIMARY t2 ALL NULL NULL NULL NULL 5 Using join buffer (flat, BNL join) 2 MATERIALIZED t4 ALL NULL NULL NULL NULL 3 Using where @@ -746,8 +746,8 @@ ) AND t1.i1 <= t3.i2_key; id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using join buffer (flat, BNL join) 1 PRIMARY t3 eq_ref PRIMARY PRIMARY 4 test.t4.i1 1 Using where 1 PRIMARY t2 ALL NULL NULL NULL NULL 5 Using join buffer (flat, BNL join) 2 MATERIALIZED t4 ALL NULL NULL NULL NULL 3 Using where @@ -802,8 +802,8 @@ ) AND t1.i1 <= t3.i2_key; id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using join buffer (flat, BNL join) 1 PRIMARY t3 eq_ref PRIMARY PRIMARY 4 test.t4.i1 1 Using where 1 PRIMARY t2 ALL NULL NULL NULL NULL 5 Using join buffer (flat, BNL join) 2 MATERIALIZED t4 ALL NULL NULL NULL NULL 3 Using where @@ -866,8 +866,8 @@ ) AND t1.i1 <= t3.i2_key; id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using join buffer (flat, BNL join) 1 PRIMARY t3 eq_ref PRIMARY PRIMARY 4 test.t4.i1 1 Using where 1 PRIMARY t2 ALL NULL NULL NULL NULL 5 Using join buffer (flat, BNL join) 2 MATERIALIZED t4 ALL NULL NULL NULL NULL 3 Using where diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/gcol/r/gcol_select_myisam.result mariadb-10.3-10.3.20/mysql-test/suite/gcol/r/gcol_select_myisam.result --- mariadb-10.3-10.3.17/mysql-test/suite/gcol/r/gcol_select_myisam.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/gcol/r/gcol_select_myisam.result 2019-11-06 16:01:57.000000000 +0000 @@ -1313,8 +1313,8 @@ ) AND t1.i1 <= t3.i2_key; id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using join buffer (flat, BNL join) 1 PRIMARY t3 eq_ref PRIMARY,v_idx PRIMARY 4 test.t4.i1 1 Using where 1 PRIMARY t2 ALL NULL NULL NULL NULL 5 Using join buffer (flat, BNL join) 2 MATERIALIZED t4 ALL NULL NULL NULL NULL 3 Using where @@ -1369,8 +1369,8 @@ ) AND t1.i1 <= t3.i2_key; id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using join buffer (flat, BNL join) 1 PRIMARY t3 eq_ref PRIMARY,v_idx,v_idx2 PRIMARY 4 test.t4.i1 1 Using where 1 PRIMARY t2 ALL NULL NULL NULL NULL 5 Using join buffer (flat, BNL join) 2 MATERIALIZED t4 ALL NULL NULL NULL NULL 3 Using where @@ -1427,8 +1427,8 @@ ) AND t1.i1 <= t3.i2_key; id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using join buffer (flat, BNL join) 1 PRIMARY t3 eq_ref PRIMARY,v_idx2 PRIMARY 4 test.t4.i1 1 Using where 1 PRIMARY t2 ALL NULL NULL NULL NULL 5 Using join buffer (flat, BNL join) 2 MATERIALIZED t4 ALL NULL NULL NULL NULL 3 Using where @@ -1494,8 +1494,8 @@ ) AND t1.i1 <= t3.i2_key; id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t1 ALL NULL NULL NULL NULL 4 1 PRIMARY ALL distinct_key NULL NULL NULL 3 -1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using join buffer (flat, BNL join) 1 PRIMARY t3 eq_ref PRIMARY,v_idx PRIMARY 4 test.t4.i1 1 Using where 1 PRIMARY t2 ALL NULL NULL NULL NULL 5 Using join buffer (flat, BNL join) 2 MATERIALIZED t4 ALL NULL NULL NULL NULL 3 Using where diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/gcol/r/innodb_virtual_basic.result mariadb-10.3-10.3.20/mysql-test/suite/gcol/r/innodb_virtual_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/gcol/r/innodb_virtual_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/gcol/r/innodb_virtual_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -164,7 +164,7 @@ connection default; disconnect con1; DROP TABLE t; -CREATE TABLE t (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), h VARCHAR(10), j INT, m INT GENERATED ALWAYS AS(b + x), n VARCHAR(10), p VARCHAR(20) GENERATED ALWAYS AS(CONCAT(n, y)), x INT, y CHAR(20), z INT, INDEX idx1(c), INDEX idx2 (m), INDEX idx3(p)); +CREATE TABLE t (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), h VARCHAR(10), j INT, m INT GENERATED ALWAYS AS(b + x), n VARCHAR(10), p VARCHAR(20) GENERATED ALWAYS AS(CONCAT(n, RTRIM(y))), x INT, y CHAR(20), z INT, INDEX idx1(c), INDEX idx2 (m), INDEX idx3(p)); INSERT INTO t VALUES(1, 2, DEFAULT, "hhh", 3, DEFAULT, "nnn", DEFAULT, 4, "yyy", 5); INSERT INTO t VALUES(2, 3, DEFAULT, "hhha", 4, DEFAULT, "nnna", DEFAULT, 5, "yyya", 6); INSERT INTO t VALUES(12, 13, DEFAULT, "hhhb", 14, DEFAULT, "nnnb", DEFAULT, 15, "yyyb", 16); @@ -1235,8 +1235,8 @@ c5timek DATE GENERATED ALWAYS AS(ADDTIME(c5time_gckey,c7)) VIRTUAL, c7k TIME GENERATED ALWAYS AS(ADDTIME(c5time,c6)) VIRTUAL, c8 CHAR(10), -c9 CHAR(20)GENERATED ALWAYS AS (CONCAT(c8,c8)) VIRTUAL, -c9k CHAR(15)GENERATED ALWAYS AS (CONCAT(c8,0)) VIRTUAL, +c9 CHAR(20)GENERATED ALWAYS AS (CONCAT(RTRIM(c8),RTRIM(c8))) VIRTUAL, +c9k CHAR(15)GENERATED ALWAYS AS (CONCAT(RTRIM(c8),0)) VIRTUAL, PRIMARY KEY(c1), KEY(c3), KEY(c9(10)), diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/gcol/r/innodb_virtual_debug_purge.result mariadb-10.3-10.3.20/mysql-test/suite/gcol/r/innodb_virtual_debug_purge.result --- mariadb-10.3-10.3.17/mysql-test/suite/gcol/r/innodb_virtual_debug_purge.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/gcol/r/innodb_virtual_debug_purge.result 2019-11-06 16:01:57.000000000 +0000 @@ -204,5 +204,77 @@ disconnect truncate; connection default; DROP TABLE t1, t2; +# +# MDEV-16222 Assertion `0' failed in row_purge_remove_sec_if_poss_leaf +# on table with virtual columns and indexes +# +set @saved_dbug= @@global.debug_dbug; +set global debug_dbug= "+d,ib_purge_virtual_mdev_16222_1,ib_purge_virtual_mdev_16222_2"; +create table t1 ( +pk serial, vb tinyblob as (b) virtual, b tinyblob, +primary key(pk), index (vb(64))) +engine innodb; +insert ignore into t1 (b) values ('foo'); +select * into outfile 'load.data' from t1; +load data infile 'load.data' replace into table t1; +set debug_sync= "now WAIT_FOR latch_released"; +set global debug_dbug= "-d,ib_purge_virtual_mdev_16222_1"; +drop table t1; +set debug_sync= "now SIGNAL drop_started WAIT_FOR got_no_such_table"; +create table t1 ( +pk serial, vb tinyblob as (b) virtual, b tinyblob, +primary key(pk), index (vb(64))) +engine innodb; +insert ignore into t1 (b) values ('foo'); +select * into outfile 'load.data' from t1; +load data infile 'load.data' replace into table t1; +set debug_sync= "now WAIT_FOR got_no_such_table"; +set global debug_dbug= @saved_dbug; +drop table t1; set debug_sync=reset; SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency; +# +# MDEV-18546 ASAN heap-use-after-free +# in innobase_get_computed_value / row_purge +# +CREATE TABLE t1 ( +pk INT AUTO_INCREMENT, +b BIT(15), +v BIT(15) AS (b) VIRTUAL, +PRIMARY KEY(pk), +UNIQUE(v) +) ENGINE=InnoDB; +INSERT IGNORE INTO t1 (b) VALUES +(NULL),(b'011'),(b'000110100'), +(b'01101101010'),(b'01111001001011'),(NULL); +SET GLOBAL innodb_debug_sync = "ib_clust_v_col_before_row_allocated " + "SIGNAL before_row_allocated " + "WAIT_FOR flush_unlock"; +SET GLOBAL innodb_debug_sync = "ib_open_after_dict_open " + "SIGNAL purge_open " + "WAIT_FOR select_open"; +set @saved_dbug= @@global.debug_dbug; +set global debug_dbug= "+d,ib_purge_virtual_index_callback"; +connect purge_waiter,localhost,root; +SET debug_sync= "now WAIT_FOR before_row_allocated"; +connection default; +REPLACE INTO t1 (pk, b) SELECT pk, b FROM t1; +connection purge_waiter; +connection default; +disconnect purge_waiter; +FLUSH TABLES; +SET GLOBAL innodb_debug_sync = reset; +SET debug_sync= "now SIGNAL flush_unlock WAIT_FOR purge_open"; +SET GLOBAL innodb_debug_sync = reset; +SET debug_sync= "ib_open_after_dict_open SIGNAL select_open"; +SELECT * FROM t1; +pk b v +1 NULL NULL +2   +3 4 4 +4 j j +5 K K +6 NULL NULL +DROP TABLE t1; +SET debug_sync= reset; +set global debug_dbug= @saved_dbug; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/gcol/r/innodb_virtual_index.result mariadb-10.3-10.3.20/mysql-test/suite/gcol/r/innodb_virtual_index.result --- mariadb-10.3-10.3.17/mysql-test/suite/gcol/r/innodb_virtual_index.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/gcol/r/innodb_virtual_index.result 2019-11-06 16:01:57.000000000 +0000 @@ -54,7 +54,7 @@ c11 DATE GENERATED ALWAYS AS(addtime(c9,c8)) VIRTUAL, c11a time GENERATED ALWAYS AS(addtime(c7,c10)) VIRTUAL, c12 CHAR(1), -c13 CHAR(2)GENERATED ALWAYS AS (concat(c12,c12)) VIRTUAL, +c13 CHAR(2)GENERATED ALWAYS AS (concat(RTRIM(c12),RTRIM(c12))) VIRTUAL, c14 CHAR(4)GENERATED ALWAYS AS (concat(c13,'x')) VIRTUAL, PRIMARY KEY(c1), KEY c13(c13), diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/gcol/t/innodb_virtual_basic.test mariadb-10.3-10.3.20/mysql-test/suite/gcol/t/innodb_virtual_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/gcol/t/innodb_virtual_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/gcol/t/innodb_virtual_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -151,7 +151,7 @@ DROP TABLE t; # CREATE a more complex TABLE -CREATE TABLE t (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), h VARCHAR(10), j INT, m INT GENERATED ALWAYS AS(b + x), n VARCHAR(10), p VARCHAR(20) GENERATED ALWAYS AS(CONCAT(n, y)), x INT, y CHAR(20), z INT, INDEX idx1(c), INDEX idx2 (m), INDEX idx3(p)); +CREATE TABLE t (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), h VARCHAR(10), j INT, m INT GENERATED ALWAYS AS(b + x), n VARCHAR(10), p VARCHAR(20) GENERATED ALWAYS AS(CONCAT(n, RTRIM(y))), x INT, y CHAR(20), z INT, INDEX idx1(c), INDEX idx2 (m), INDEX idx3(p)); INSERT INTO t VALUES(1, 2, DEFAULT, "hhh", 3, DEFAULT, "nnn", DEFAULT, 4, "yyy", 5); @@ -1239,8 +1239,8 @@ c5timek DATE GENERATED ALWAYS AS(ADDTIME(c5time_gckey,c7)) VIRTUAL, c7k TIME GENERATED ALWAYS AS(ADDTIME(c5time,c6)) VIRTUAL, c8 CHAR(10), - c9 CHAR(20)GENERATED ALWAYS AS (CONCAT(c8,c8)) VIRTUAL, - c9k CHAR(15)GENERATED ALWAYS AS (CONCAT(c8,0)) VIRTUAL, + c9 CHAR(20)GENERATED ALWAYS AS (CONCAT(RTRIM(c8),RTRIM(c8))) VIRTUAL, + c9k CHAR(15)GENERATED ALWAYS AS (CONCAT(RTRIM(c8),0)) VIRTUAL, PRIMARY KEY(c1), KEY(c3), KEY(c9(10)), diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.opt mariadb-10.3-10.3.20/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.opt --- mariadb-10.3-10.3.17/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--innodb-purge-threads=1 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.test mariadb-10.3-10.3.20/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.test --- mariadb-10.3-10.3.17/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/gcol/t/innodb_virtual_debug_purge.test 2019-11-06 16:01:57.000000000 +0000 @@ -259,6 +259,118 @@ connection default; DROP TABLE t1, t2; +--echo # +--echo # MDEV-16222 Assertion `0' failed in row_purge_remove_sec_if_poss_leaf +--echo # on table with virtual columns and indexes +--echo # + +--let $datadir= `select @@datadir` +set @saved_dbug= @@global.debug_dbug; +set global debug_dbug= "+d,ib_purge_virtual_mdev_16222_1,ib_purge_virtual_mdev_16222_2"; + +create table t1 ( + pk serial, vb tinyblob as (b) virtual, b tinyblob, + primary key(pk), index (vb(64))) +engine innodb; + +insert ignore into t1 (b) values ('foo'); + +select * into outfile 'load.data' from t1; +load data infile 'load.data' replace into table t1; + +set debug_sync= "now WAIT_FOR latch_released"; +set global debug_dbug= "-d,ib_purge_virtual_mdev_16222_1"; +drop table t1; +--remove_file $datadir/test/load.data + +set debug_sync= "now SIGNAL drop_started WAIT_FOR got_no_such_table"; + +create table t1 ( + pk serial, vb tinyblob as (b) virtual, b tinyblob, + primary key(pk), index (vb(64))) +engine innodb; + +insert ignore into t1 (b) values ('foo'); + +select * into outfile 'load.data' from t1; +load data infile 'load.data' replace into table t1; + +set debug_sync= "now WAIT_FOR got_no_such_table"; + +# FIXME: Race condition here: +# 1. purge thread goes into sending got_no_such_table +# 2. test thread finishes debug_sync= "RESET" below +# 3. purge thread sends got_no_such_table +set global debug_dbug= @saved_dbug; + +# cleanup +drop table t1; +--remove_file $datadir/test/load.data + --source include/wait_until_count_sessions.inc set debug_sync=reset; SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency; + +--echo # +--echo # MDEV-18546 ASAN heap-use-after-free +--echo # in innobase_get_computed_value / row_purge +--echo # + +CREATE TABLE t1 ( + pk INT AUTO_INCREMENT, + b BIT(15), + v BIT(15) AS (b) VIRTUAL, + PRIMARY KEY(pk), + UNIQUE(v) +) ENGINE=InnoDB; +INSERT IGNORE INTO t1 (b) VALUES + (NULL),(b'011'),(b'000110100'), + (b'01101101010'),(b'01111001001011'),(NULL); + +SET GLOBAL innodb_debug_sync = "ib_clust_v_col_before_row_allocated " + "SIGNAL before_row_allocated " + "WAIT_FOR flush_unlock"; +SET GLOBAL innodb_debug_sync = "ib_open_after_dict_open " + "SIGNAL purge_open " + "WAIT_FOR select_open"; + +# In 10.2 trx_undo_roll_ptr_is_insert(t_roll_ptr) condition never pass in purge, +# so this condition is forced to pass in row_vers_old_has_index_entry +set @saved_dbug= @@global.debug_dbug; +set global debug_dbug= "+d,ib_purge_virtual_index_callback"; + +# The purge starts from REPLACE command. To avoid possible race, separate +# connection is used. +--connect(purge_waiter,localhost,root) +--send +SET debug_sync= "now WAIT_FOR before_row_allocated"; + +--connection default +REPLACE INTO t1 (pk, b) SELECT pk, b FROM t1; + +--connection purge_waiter +# Now we will definitely catch ib_clust_v_col_before_row_allocated +--reap +--connection default +--disconnect purge_waiter + +# purge hangs on the sync point. table is purged, ref_count is set to 0 +FLUSH TABLES; + +# Avoid hang on repeating purge. +# Reset Will be applied after first record is purged +SET GLOBAL innodb_debug_sync = reset; + +SET debug_sync= "now SIGNAL flush_unlock WAIT_FOR purge_open"; + +# Avoid hang on repeating purge +SET GLOBAL innodb_debug_sync = reset; + +# select unblocks purge thread +SET debug_sync= "ib_open_after_dict_open SIGNAL select_open"; +SELECT * FROM t1; + +# Cleanup +DROP TABLE t1; +SET debug_sync= reset; +set global debug_dbug= @saved_dbug; \ No newline at end of file diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/gcol/t/innodb_virtual_index.test mariadb-10.3-10.3.20/mysql-test/suite/gcol/t/innodb_virtual_index.test --- mariadb-10.3-10.3.17/mysql-test/suite/gcol/t/innodb_virtual_index.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/gcol/t/innodb_virtual_index.test 2019-11-06 16:01:57.000000000 +0000 @@ -63,7 +63,7 @@ c11 DATE GENERATED ALWAYS AS(addtime(c9,c8)) VIRTUAL, c11a time GENERATED ALWAYS AS(addtime(c7,c10)) VIRTUAL, c12 CHAR(1), - c13 CHAR(2)GENERATED ALWAYS AS (concat(c12,c12)) VIRTUAL, + c13 CHAR(2)GENERATED ALWAYS AS (concat(RTRIM(c12),RTRIM(c12))) VIRTUAL, c14 CHAR(4)GENERATED ALWAYS AS (concat(c13,'x')) VIRTUAL, PRIMARY KEY(c1), KEY c13(c13), diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/include/innodb_bulk_create_index_debug.inc mariadb-10.3-10.3.20/mysql-test/suite/innodb/include/innodb_bulk_create_index_debug.inc --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/include/innodb_bulk_create_index_debug.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/include/innodb_bulk_create_index_debug.inc 2019-11-06 16:01:57.000000000 +0000 @@ -4,17 +4,8 @@ # Not supported in embedded -- source include/not_embedded.inc - -# This test case needs to crash the server. Needs a debug server. -- source include/have_debug.inc - -# Don't test this under valgrind, memory leaks will occur. --- source include/not_valgrind.inc - -# Avoid CrashReporter popup on Mac --- source include/not_crashrep.inc - --- source include/have_innodb.inc +-- source include/have_debug_sync.inc # Create Insert Procedure DELIMITER |; @@ -62,21 +53,11 @@ SELECT COUNT(*) FROM t1; +--enable_info CREATE INDEX idx_title ON t1(title); +--disable_info ---source include/restart_mysqld.inc - -CHECK TABLE t1; - -SELECT * FROM t1 WHERE title = 'a10'; - -SELECT * FROM t1 WHERE title = 'a5000'; - -SELECT * FROM t1 WHERE title = 'a10000'; - -SELECT * FROM t1 WHERE title = 'a10010'; - -DROP TABLE t1; +RENAME TABLE t1 TO t0; -- echo # Test Blob @@ -104,16 +85,32 @@ SELECT CHAR_LENGTH(b) FROM t1; -ALTER TABLE t1 DROP COLUMN c; +--enable_info +ALTER TABLE t1 DROP COLUMN c, FORCE; +--disable_info --source include/restart_mysqld.inc -CHECK TABLE t1; +CHECK TABLE t0,t1; SELECT CHAR_LENGTH(b) FROM t1; DROP TABLE t1; +RENAME TABLE t0 to t1; + +CHECK TABLE t1; + +SELECT * FROM t1 WHERE title = 'a10'; + +SELECT * FROM t1 WHERE title = 'a5000'; + +SELECT * FROM t1 WHERE title = 'a10000'; + +SELECT * FROM t1 WHERE title = 'a10010'; + +DROP TABLE t1; + # Test Crash Recovery if ($row_format != 'COMPRESSED') @@ -140,17 +137,16 @@ CALL populate_t1(); -- enable_query_log -SET debug_dbug='+d,crash_commit_before'; - -# Write file to make mysql-test-run.pl start up the server again ---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect - ---error 2013 +connect (hang,localhost,root); +SET DEBUG_SYNC='alter_table_inplace_trans_commit SIGNAL hung WAIT_FOR ever'; +send CREATE INDEX idx_title ON t1(title); ---enable_reconnect ---source include/wait_until_connected_again.inc ---disable_reconnect +connection default; +SET DEBUG_SYNC='now WAIT_FOR hung'; +let $shutdown_timeout=0; +--source include/restart_mysqld.inc +disconnect hang; SELECT COUNT(*) FROM t1; @@ -194,17 +190,16 @@ SELECT CHAR_LENGTH(b) FROM t1; -SET debug_dbug='+d,crash_commit_before'; - -# Write file to make mysql-test-run.pl start up the server again ---exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect - ---error 2013 -ALTER TABLE t1 DROP COLUMN c; +connect (hang,localhost,root); +SET DEBUG_SYNC='alter_table_inplace_trans_commit SIGNAL hung WAIT_FOR ever'; +send +ALTER TABLE t1 DROP COLUMN c, FORCE; ---enable_reconnect ---source include/wait_until_connected_again.inc ---disable_reconnect +connection default; +SET DEBUG_SYNC='now WAIT_FOR hung'; +--source include/restart_mysqld.inc +disconnect hang; +let $shutdown_timeout=60; CHECK TABLE t1; @@ -212,10 +207,4 @@ DROP TABLE t1; -# Restore global variables -if ($row_format == 'COMPRESSED') -{ - SET GLOBAL innodb_file_per_table=default; -} - DROP PROCEDURE populate_t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/alter_algorithm,INPLACE.rdiff mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/alter_algorithm,INPLACE.rdiff --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/alter_algorithm,INPLACE.rdiff 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/alter_algorithm,INPLACE.rdiff 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,6 @@ --- alter_algorithm.result +++ alter_algorithm.reject -@@ -7,44 +7,44 @@ +@@ -7,40 +7,40 @@ INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1); SELECT @@alter_algorithm; @@alter_algorithm @@ -19,12 +19,6 @@ -info: Records: 1 Duplicates: 0 Warnings: 0 +affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 - # Make existing column NON-NULLABLE - ALTER TABLE t1 MODIFY f3 INT NOT NULL; --affected rows: 1 --info: Records: 1 Duplicates: 0 Warnings: 0 -+affected rows: 0 -+info: Records: 0 Duplicates: 0 Warnings: 0 # Drop Stored Column ALTER TABLE t1 DROP COLUMN f5; -affected rows: 1 @@ -64,7 +58,7 @@ DROP TABLE t1; affected rows: 0 CREATE TABLE t1(f1 INT PRIMARY KEY, f2 INT NOT NULL, -@@ -57,22 +57,22 @@ +@@ -53,22 +53,22 @@ FOREIGN KEY fidx(f1) REFERENCES t1(f1))ENGINE=INNODB; INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4); ALTER TABLE t1 ADD INDEX idx1(f4), page_compressed=1; @@ -97,7 +91,7 @@ DROP TABLE t2, t1; affected rows: 0 CREATE TABLE t1(f1 INT NOT NULL, -@@ -85,27 +85,27 @@ +@@ -81,27 +81,27 @@ INSERT INTO t1(f1, f2) VALUES(1, 1); # Add column at the end of the table ALTER TABLE t1 ADD COLUMN f4 char(100) default 'BIG WALL'; @@ -135,7 +129,7 @@ # Column length varies ALTER TABLE t2 CHANGE f3 f3 VARCHAR(20); affected rows: 0 -@@ -113,12 +113,12 @@ +@@ -109,12 +109,12 @@ SET foreign_key_checks = 0; affected rows: 0 ALTER TABLE t3 ADD FOREIGN KEY fidx(f2) REFERENCES t2(f1); diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/alter_algorithm,INSTANT.rdiff 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,6 @@ --- alter_algorithm.result +++ alter_algorithm.reject -@@ -7,44 +7,35 @@ +@@ -7,40 +7,32 @@ INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1); SELECT @@alter_algorithm; @@alter_algorithm @@ -17,11 +17,6 @@ -affected rows: 1 -info: Records: 1 Duplicates: 0 Warnings: 0 +Got one of the listed errors - # Make existing column NON-NULLABLE - ALTER TABLE t1 MODIFY f3 INT NOT NULL; --affected rows: 1 --info: Records: 1 Duplicates: 0 Warnings: 0 -+Got one of the listed errors # Drop Stored Column ALTER TABLE t1 DROP COLUMN f5; -affected rows: 1 @@ -55,7 +50,7 @@ DROP TABLE t1; affected rows: 0 CREATE TABLE t1(f1 INT PRIMARY KEY, f2 INT NOT NULL, -@@ -57,22 +48,17 @@ +@@ -53,22 +45,17 @@ FOREIGN KEY fidx(f1) REFERENCES t1(f1))ENGINE=INNODB; INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4); ALTER TABLE t1 ADD INDEX idx1(f4), page_compressed=1; @@ -83,7 +78,7 @@ DROP TABLE t2, t1; affected rows: 0 CREATE TABLE t1(f1 INT NOT NULL, -@@ -85,27 +71,27 @@ +@@ -81,27 +68,27 @@ INSERT INTO t1(f1, f2) VALUES(1, 1); # Add column at the end of the table ALTER TABLE t1 ADD COLUMN f4 char(100) default 'BIG WALL'; @@ -121,7 +116,7 @@ # Column length varies ALTER TABLE t2 CHANGE f3 f3 VARCHAR(20); affected rows: 0 -@@ -113,12 +99,12 @@ +@@ -109,12 +96,12 @@ SET foreign_key_checks = 0; affected rows: 0 ALTER TABLE t3 ADD FOREIGN KEY fidx(f2) REFERENCES t2(f1); diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/alter_algorithm,NOCOPY.rdiff mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/alter_algorithm,NOCOPY.rdiff --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/alter_algorithm,NOCOPY.rdiff 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/alter_algorithm,NOCOPY.rdiff 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,6 @@ --- alter_algorithm.result +++ alter_algorithm.reject -@@ -7,44 +7,35 @@ +@@ -7,40 +7,32 @@ INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1); SELECT @@alter_algorithm; @@alter_algorithm @@ -17,11 +17,6 @@ -affected rows: 1 -info: Records: 1 Duplicates: 0 Warnings: 0 +Got one of the listed errors - # Make existing column NON-NULLABLE - ALTER TABLE t1 MODIFY f3 INT NOT NULL; --affected rows: 1 --info: Records: 1 Duplicates: 0 Warnings: 0 -+Got one of the listed errors # Drop Stored Column ALTER TABLE t1 DROP COLUMN f5; -affected rows: 1 @@ -55,7 +50,7 @@ DROP TABLE t1; affected rows: 0 CREATE TABLE t1(f1 INT PRIMARY KEY, f2 INT NOT NULL, -@@ -57,22 +48,22 @@ +@@ -53,22 +45,22 @@ FOREIGN KEY fidx(f1) REFERENCES t1(f1))ENGINE=INNODB; INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4); ALTER TABLE t1 ADD INDEX idx1(f4), page_compressed=1; @@ -88,7 +83,7 @@ DROP TABLE t2, t1; affected rows: 0 CREATE TABLE t1(f1 INT NOT NULL, -@@ -85,27 +76,27 @@ +@@ -81,27 +73,27 @@ INSERT INTO t1(f1, f2) VALUES(1, 1); # Add column at the end of the table ALTER TABLE t1 ADD COLUMN f4 char(100) default 'BIG WALL'; @@ -126,7 +121,7 @@ # Column length varies ALTER TABLE t2 CHANGE f3 f3 VARCHAR(20); affected rows: 0 -@@ -113,12 +104,12 @@ +@@ -109,12 +101,12 @@ SET foreign_key_checks = 0; affected rows: 0 ALTER TABLE t3 ADD FOREIGN KEY fidx(f2) REFERENCES t2(f1); diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/alter_algorithm.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/alter_algorithm.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/alter_algorithm.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/alter_algorithm.result 2019-11-06 16:01:57.000000000 +0000 @@ -17,10 +17,6 @@ ALTER TABLE t1 MODIFY f2 INT; affected rows: 1 info: Records: 1 Duplicates: 0 Warnings: 0 -# Make existing column NON-NULLABLE -ALTER TABLE t1 MODIFY f3 INT NOT NULL; -affected rows: 1 -info: Records: 1 Duplicates: 0 Warnings: 0 # Drop Stored Column ALTER TABLE t1 DROP COLUMN f5; affected rows: 1 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/alter_copy.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/alter_copy.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/alter_copy.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/alter_copy.result 2019-11-06 16:01:57.000000000 +0000 @@ -37,7 +37,9 @@ FULLTEXT KEY `b_2` (`b`,`c`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ALTER TABLE t1 FORCE, ALGORITHM=COPY; -SET DEBUG_DBUG='+d,crash_commit_before'; +connect hang,localhost,root; +SET DEBUG_SYNC='alter_table_copy_trans_commit SIGNAL hung WAIT_FOR ever'; +# create 32 secondary indexes ALTER TABLE t ADD INDEX(b,c,d,a),ADD INDEX(b,c,a,d),ADD INDEX(b,a,c,d),ADD INDEX(b,a,d,c), ADD INDEX(b,d,a,c),ADD INDEX(b,d,c,a),ADD INDEX(a,b,c,d),ADD INDEX(a,b,d,c), ADD INDEX(a,c,b,d),ADD INDEX(a,c,d,b),ADD INDEX(a,d,b,c),ADD INDEX(a,d,c,b), @@ -47,7 +49,9 @@ ADD INDEX(a,b,c), ADD INDEX(a,c,b), ADD INDEX(a,c,d), ADD INDEX(a,d,c), ADD INDEX(a,b,d), ADD INDEX(a,d,b), ADD INDEX(b,c,d), ADD INDEX(b,d,c), ALGORITHM=COPY; -ERROR HY000: Lost connection to MySQL server during query +connection default; +SET DEBUG_SYNC='now WAIT_FOR hung'; +disconnect hang; #sql-temporary.frm #sql-temporary.ibd FTS_INDEX_1.ibd diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/auto_increment_dup.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/auto_increment_dup.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/auto_increment_dup.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/auto_increment_dup.result 2019-11-06 16:01:57.000000000 +0000 @@ -89,13 +89,14 @@ SET DEBUG_SYNC='execute_command_after_close_tables SIGNAL continue'; affected rows: 0 INSERT INTO t1(k) VALUES (2), (4), (5) ON DUPLICATE KEY UPDATE c='2'; -ERROR HY000: Lock wait timeout exceeded; try restarting transaction +affected rows: 3 +info: Records: 3 Duplicates: 0 Warnings: 0 connection con1; # # 2 duplicates # -affected rows: 3 -info: Records: 3 Duplicates: 0 Warnings: 0 +affected rows: 4 +info: Records: 3 Duplicates: 1 Warnings: 0 connection default; # # 3 rows @@ -103,19 +104,21 @@ SELECT * FROM t1 order by k; id k c 1 1 NULL -2 2 NULL -3 3 NULL -affected rows: 3 +4 2 1 +2 3 NULL +5 4 NULL +6 5 NULL +affected rows: 5 INSERT INTO t1(k) VALUES (2), (4), (5) ON DUPLICATE KEY UPDATE c='2'; -affected rows: 4 -info: Records: 3 Duplicates: 1 Warnings: 0 +affected rows: 6 +info: Records: 3 Duplicates: 3 Warnings: 0 SELECT * FROM t1 order by k; id k c 1 1 NULL -2 2 2 -3 3 NULL -7 4 NULL -8 5 NULL +4 2 2 +2 3 NULL +5 4 2 +6 5 2 affected rows: 5 disconnect con1; disconnect con2; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/auto_increment_dup,skip-log-bin.rdiff mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/auto_increment_dup,skip-log-bin.rdiff --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/auto_increment_dup,skip-log-bin.rdiff 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/auto_increment_dup,skip-log-bin.rdiff 1970-01-01 00:00:00.000000000 +0000 @@ -1,51 +0,0 @@ ---- auto_increment_dup.result -+++ auto_increment_dup,skip-log-bin.reject -@@ -89,13 +89,14 @@ - SET DEBUG_SYNC='execute_command_after_close_tables SIGNAL continue'; - affected rows: 0 - INSERT INTO t1(k) VALUES (2), (4), (5) ON DUPLICATE KEY UPDATE c='2'; --ERROR HY000: Lock wait timeout exceeded; try restarting transaction -+affected rows: 3 -+info: Records: 3 Duplicates: 0 Warnings: 0 - connection con1; - # - # 2 duplicates - # --affected rows: 3 --info: Records: 3 Duplicates: 0 Warnings: 0 -+affected rows: 4 -+info: Records: 3 Duplicates: 1 Warnings: 0 - connection default; - # - # 3 rows -@@ -103,19 +104,21 @@ - SELECT * FROM t1 order by k; - id k c - 1 1 NULL --2 2 NULL --3 3 NULL --affected rows: 3 -+4 2 1 -+2 3 NULL -+5 4 NULL -+6 5 NULL -+affected rows: 5 - INSERT INTO t1(k) VALUES (2), (4), (5) ON DUPLICATE KEY UPDATE c='2'; --affected rows: 4 --info: Records: 3 Duplicates: 1 Warnings: 0 -+affected rows: 6 -+info: Records: 3 Duplicates: 3 Warnings: 0 - SELECT * FROM t1 order by k; - id k c - 1 1 NULL --2 2 2 --3 3 NULL --7 4 NULL --8 5 NULL -+4 2 2 -+2 3 NULL -+5 4 2 -+6 5 2 - affected rows: 5 - disconnect con1; - disconnect con2; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/foreign_key.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/foreign_key.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/foreign_key.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/foreign_key.result 2019-11-06 16:01:57.000000000 +0000 @@ -176,7 +176,7 @@ # MDEV-17531 Crash in RENAME TABLE with FOREIGN KEY and FULLTEXT INDEX # CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB; -CREATE DATABASE best; +CREATE DATABASE best default character set latin1; CREATE TABLE t3 (a INT PRIMARY KEY, CONSTRAINT t2_ibfk_1 FOREIGN KEY (a) REFERENCES t1(a)) ENGINE=InnoDB; CREATE TABLE best.t2 (a INT PRIMARY KEY, b TEXT, FULLTEXT INDEX(b), diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/foreign-keys.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/foreign-keys.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/foreign-keys.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/foreign-keys.result 2019-11-06 16:01:57.000000000 +0000 @@ -161,3 +161,62 @@ 6 30 drop table t2, t1; drop user foo; +# +# MDEV-17187 table doesn't exist in engine after ALTER other tables +# with CONSTRAINTs +# +set foreign_key_checks=on; +create table t1 (id int not null primary key) engine=innodb; +create table t2 (id int not null primary key, fid int not null, +CONSTRAINT fk_fid FOREIGN KEY (fid) REFERENCES t1 (id))engine=innodb; +insert into t1 values (1), (2), (3); +insert into t2 values (1, 1), (2, 1), (3, 2); +set foreign_key_checks=off; +alter table t2 drop index fk_fid; +set foreign_key_checks=on; +delete from t1 where id=2; +ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `fk_fid` FOREIGN KEY (`fid`) REFERENCES `t1` (`id`)) +insert into t2 values(4, 99); +ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `fk_fid` FOREIGN KEY (`fid`) REFERENCES `t1` (`id`)) +select * from t1; +id +1 +2 +3 +select * from t2; +id fid +1 1 +2 1 +3 2 +set foreign_key_checks=off; +delete from t1 where id=2; +insert into t2 values(4, 99); +set foreign_key_checks=on; +select * from t1; +id +1 +3 +select * from t2; +id fid +1 1 +2 1 +3 2 +4 99 +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `id` int(11) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +show create table t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `id` int(11) NOT NULL, + `fid` int(11) NOT NULL, + PRIMARY KEY (`id`), + CONSTRAINT `fk_fid` FOREIGN KEY (`fid`) REFERENCES `t1` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +drop table t1,t2; +ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails +drop table t1,t2; +ERROR 42S02: Unknown table 'test.t2' diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/ibuf_not_empty.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/ibuf_not_empty.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/ibuf_not_empty.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/ibuf_not_empty.result 2019-11-06 16:01:57.000000000 +0000 @@ -22,4 +22,7 @@ Table Op Msg_type Msg_text test.t1 check Warning InnoDB: Index 'b' contains #### entries, should be 4096. test.t1 check error Corrupt +SET GLOBAL innodb_purge_rseg_truncate_frequency=1; +InnoDB 0 transactions not purged +SET GLOBAL innodb_fast_shutdown=0; DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/information_schema_grants.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/information_schema_grants.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/information_schema_grants.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/information_schema_grants.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,304 @@ +select plugin_name,plugin_status as 'Must be ACTIVE' from information_schema.plugins where plugin_name like 'inno%' and plugin_status!='ACTIVE'; +plugin_name Must be ACTIVE +create user select_only@localhost; +grant select on *.* to select_only@localhost; +connect select_only,localhost,select_only; +connection default; +create sql security invoker view i_buffer_page as select * from information_schema.innodb_buffer_page; +create sql security definer view d_buffer_page as select * from information_schema.innodb_buffer_page; +create sql security invoker view i_buffer_page_lru as select * from information_schema.innodb_buffer_page_lru; +create sql security definer view d_buffer_page_lru as select * from information_schema.innodb_buffer_page_lru; +create sql security invoker view i_buffer_pool_stats as select * from information_schema.innodb_buffer_pool_stats; +create sql security definer view d_buffer_pool_stats as select * from information_schema.innodb_buffer_pool_stats; +create sql security invoker view i_cmp as select * from information_schema.innodb_cmp; +create sql security definer view d_cmp as select * from information_schema.innodb_cmp; +create sql security invoker view i_cmp_per_index as select * from information_schema.innodb_cmp_per_index; +create sql security definer view d_cmp_per_index as select * from information_schema.innodb_cmp_per_index; +create sql security invoker view i_cmp_per_index_reset as select * from information_schema.innodb_cmp_per_index_reset; +create sql security definer view d_cmp_per_index_reset as select * from information_schema.innodb_cmp_per_index_reset; +create sql security invoker view i_cmp_reset as select * from information_schema.innodb_cmp_reset; +create sql security definer view d_cmp_reset as select * from information_schema.innodb_cmp_reset; +create sql security invoker view i_cmpmem as select * from information_schema.innodb_cmpmem; +create sql security definer view d_cmpmem as select * from information_schema.innodb_cmpmem; +create sql security invoker view i_cmpmem_reset as select * from information_schema.innodb_cmpmem_reset; +create sql security definer view d_cmpmem_reset as select * from information_schema.innodb_cmpmem_reset; +create sql security invoker view i_ft_being_deleted as select * from information_schema.innodb_ft_being_deleted; +create sql security definer view d_ft_being_deleted as select * from information_schema.innodb_ft_being_deleted; +create sql security invoker view i_ft_config as select * from information_schema.innodb_ft_config; +create sql security definer view d_ft_config as select * from information_schema.innodb_ft_config; +create sql security invoker view i_ft_default_stopword as select * from information_schema.innodb_ft_default_stopword; +create sql security definer view d_ft_default_stopword as select * from information_schema.innodb_ft_default_stopword; +create sql security invoker view i_ft_deleted as select * from information_schema.innodb_ft_deleted; +create sql security definer view d_ft_deleted as select * from information_schema.innodb_ft_deleted; +create sql security invoker view i_ft_index_cache as select * from information_schema.innodb_ft_index_cache; +create sql security definer view d_ft_index_cache as select * from information_schema.innodb_ft_index_cache; +create sql security invoker view i_ft_index_table as select * from information_schema.innodb_ft_index_table; +create sql security definer view d_ft_index_table as select * from information_schema.innodb_ft_index_table; +create sql security invoker view i_lock_waits as select * from information_schema.innodb_lock_waits; +create sql security definer view d_lock_waits as select * from information_schema.innodb_lock_waits; +create sql security invoker view i_locks as select * from information_schema.innodb_locks; +create sql security definer view d_locks as select * from information_schema.innodb_locks; +create sql security invoker view i_metrics as select * from information_schema.innodb_metrics; +create sql security definer view d_metrics as select * from information_schema.innodb_metrics; +create sql security invoker view i_mutexes as select * from information_schema.innodb_mutexes; +create sql security definer view d_mutexes as select * from information_schema.innodb_mutexes; +create sql security invoker view i_sys_columns as select * from information_schema.innodb_sys_columns; +create sql security definer view d_sys_columns as select * from information_schema.innodb_sys_columns; +create sql security invoker view i_sys_datafiles as select * from information_schema.innodb_sys_datafiles; +create sql security definer view d_sys_datafiles as select * from information_schema.innodb_sys_datafiles; +create sql security invoker view i_sys_fields as select * from information_schema.innodb_sys_fields; +create sql security definer view d_sys_fields as select * from information_schema.innodb_sys_fields; +create sql security invoker view i_sys_foreign as select * from information_schema.innodb_sys_foreign; +create sql security definer view d_sys_foreign as select * from information_schema.innodb_sys_foreign; +create sql security invoker view i_sys_foreign_cols as select * from information_schema.innodb_sys_foreign_cols; +create sql security definer view d_sys_foreign_cols as select * from information_schema.innodb_sys_foreign_cols; +create sql security invoker view i_sys_indexes as select * from information_schema.innodb_sys_indexes; +create sql security definer view d_sys_indexes as select * from information_schema.innodb_sys_indexes; +create sql security invoker view i_sys_semaphore_waits as select * from information_schema.innodb_sys_semaphore_waits; +create sql security definer view d_sys_semaphore_waits as select * from information_schema.innodb_sys_semaphore_waits; +create sql security invoker view i_sys_tables as select * from information_schema.innodb_sys_tables; +create sql security definer view d_sys_tables as select * from information_schema.innodb_sys_tables; +create sql security invoker view i_sys_tablespaces as select * from information_schema.innodb_sys_tablespaces; +create sql security definer view d_sys_tablespaces as select * from information_schema.innodb_sys_tablespaces; +create sql security invoker view i_sys_tablestats as select * from information_schema.innodb_sys_tablestats; +create sql security definer view d_sys_tablestats as select * from information_schema.innodb_sys_tablestats; +create sql security invoker view i_sys_virtual as select * from information_schema.innodb_sys_virtual; +create sql security definer view d_sys_virtual as select * from information_schema.innodb_sys_virtual; +create sql security invoker view i_tablespaces_encryption as select * from information_schema.innodb_tablespaces_encryption; +create sql security definer view d_tablespaces_encryption as select * from information_schema.innodb_tablespaces_encryption; +create sql security invoker view i_tablespaces_scrubbing as select * from information_schema.innodb_tablespaces_scrubbing; +create sql security definer view d_tablespaces_scrubbing as select * from information_schema.innodb_tablespaces_scrubbing; +create sql security invoker view i_trx as select * from information_schema.innodb_trx; +create sql security definer view d_trx as select * from information_schema.innodb_trx; +connection select_only; +select count(*) > -1 from information_schema.innodb_buffer_page; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_buffer_page; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_buffer_page; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_buffer_page_lru; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_buffer_page_lru; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_buffer_page_lru; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_buffer_pool_stats; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_buffer_pool_stats; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_buffer_pool_stats; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_cmp; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_cmp; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_cmp; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_cmp_per_index; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_cmp_per_index; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_cmp_per_index; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_cmp_per_index_reset; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_cmp_per_index_reset; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_cmp_per_index_reset; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_cmp_reset; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_cmp_reset; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_cmp_reset; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_cmpmem; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_cmpmem; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_cmpmem; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_cmpmem_reset; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_cmpmem_reset; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_cmpmem_reset; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_ft_being_deleted; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_ft_being_deleted; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_ft_being_deleted; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_ft_config; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_ft_config; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_ft_config; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_ft_default_stopword; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_ft_deleted; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_ft_deleted; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_ft_deleted; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_ft_index_cache; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_ft_index_cache; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_ft_index_cache; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_ft_index_table; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_ft_index_table; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_ft_index_table; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_lock_waits; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_lock_waits; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_lock_waits; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_locks; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_locks; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_locks; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_metrics; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_metrics; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_metrics; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_mutexes; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_mutexes; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_mutexes; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_sys_columns; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_sys_columns; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_sys_columns; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_sys_datafiles; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_sys_datafiles; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_sys_datafiles; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_sys_fields; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_sys_fields; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_sys_fields; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_sys_foreign; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_sys_foreign; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_sys_foreign; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_sys_foreign_cols; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_sys_foreign_cols; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_sys_foreign_cols; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_sys_indexes; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_sys_indexes; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_sys_indexes; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_sys_semaphore_waits; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_sys_semaphore_waits; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_sys_semaphore_waits; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_sys_tables; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_sys_tables; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_sys_tables; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_sys_tablespaces; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_sys_tablespaces; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_sys_tablespaces; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_sys_tablestats; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_sys_tablestats; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_sys_tablestats; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_sys_virtual; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_sys_virtual; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_sys_virtual; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_tablespaces_encryption; +ERROR 42000: Access denied; you need (at least one of) the SUPER privilege(s) for this operation +select count(*) > -1 from i_tablespaces_encryption; +ERROR 42000: Access denied; you need (at least one of) the SUPER privilege(s) for this operation +select count(*) > -1 from d_tablespaces_encryption; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_tablespaces_scrubbing; +ERROR 42000: Access denied; you need (at least one of) the SUPER privilege(s) for this operation +select count(*) > -1 from i_tablespaces_scrubbing; +ERROR 42000: Access denied; you need (at least one of) the SUPER privilege(s) for this operation +select count(*) > -1 from d_tablespaces_scrubbing; +count(*) > -1 +1 +select count(*) > -1 from information_schema.innodb_trx; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from i_trx; +ERROR 42000: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation +select count(*) > -1 from d_trx; +count(*) > -1 +1 +connection default; +drop database test; +create database test; +drop user select_only@localhost; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-alter-nullable.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-alter-nullable.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-alter-nullable.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-alter-nullable.result 2019-11-06 16:01:57.000000000 +0000 @@ -96,8 +96,8 @@ SET @old_sql_mode = @@sql_mode; SET sql_mode = ''; ALTER TABLE t1 MODIFY c INT NOT NULL; -affected rows: 0 -info: Records: 0 Duplicates: 0 Warnings: 1 +affected rows: 1 +info: Records: 1 Duplicates: 0 Warnings: 1 Warnings: Warning 1265 Data truncated for column 'c' at row 1 ALTER TABLE t2 MODIFY c INT NOT NULL; @@ -111,10 +111,9 @@ Warnings: Warning 1265 Data truncated for column 'c' at row 1 SET sql_mode = @old_sql_mode; -# MDEV-18819 FIXME: Wrong result g=NULL SELECT * FROM t1; c g -0 NULL +0 0 SELECT * FROM t2; c v 0 0 @@ -137,8 +136,8 @@ INSERT INTO t2 SET c=NULL; INSERT INTO t3 SET c=NULL; ALTER IGNORE TABLE t1 MODIFY c INT NOT NULL; -affected rows: 0 -info: Records: 0 Duplicates: 0 Warnings: 1 +affected rows: 1 +info: Records: 1 Duplicates: 0 Warnings: 1 Warnings: Warning 1265 Data truncated for column 'c' at row 1 ALTER IGNORE TABLE t2 MODIFY c INT NOT NULL; @@ -151,10 +150,9 @@ info: Records: 1 Duplicates: 0 Warnings: 1 Warnings: Warning 1265 Data truncated for column 'c' at row 1 -# MDEV-18819 FIXME: Wrong result g=NULL SELECT * FROM t1; c g -0 NULL +0 0 SELECT * FROM t2; c v 0 0 @@ -186,12 +184,11 @@ UPDATE t2 SET c=0; UPDATE t3 SET c=0; ALTER TABLE t1 MODIFY c INT NOT NULL; -affected rows: 0 -info: Records: 0 Duplicates: 0 Warnings: 0 +affected rows: 1 +info: Records: 1 Duplicates: 0 Warnings: 0 ALTER TABLE t2 MODIFY c INT NOT NULL; affected rows: 0 info: Records: 0 Duplicates: 0 Warnings: 0 -# MDEV-18819 FIXME: This should not require ALGORITHM=COPY. ALTER TABLE t3 MODIFY c INT NOT NULL; affected rows: 1 info: Records: 1 Duplicates: 0 Warnings: 0 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-alter.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-alter.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-alter.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-alter.result 2019-11-06 16:01:57.000000000 +0000 @@ -950,6 +950,7 @@ #BUG#21514135 SCHEMA MISMATCH ERROR WHEN IMPORTING TABLESPACE AFTER #DROPPING AN INDEX # +SET NAMES utf8mb4; CREATE DATABASE source_db; CREATE DATABASE dest_db; CREATE TABLE source_db.t1 ( diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-autoinc.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-autoinc.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-autoinc.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-autoinc.result 2019-11-06 16:01:57.000000000 +0000 @@ -567,7 +567,7 @@ auto_increment_increment 65535 auto_increment_offset 65535 INSERT INTO t1 VALUES (NULL),(NULL); -ERROR HY000: Failed to read auto-increment value from storage engine +ERROR 22003: Out of range value for column 'c1' at row 1 SELECT * FROM t1; c1 1 @@ -677,7 +677,7 @@ a b 1 S1 3 S2 -4 S2 +5 S2 disconnect con1; connection default; # Client 1: Insert a record with auto_increment_increment=1 @@ -688,14 +688,14 @@ `a` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `b` varchar(200) DEFAULT NULL, PRIMARY KEY (`a`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1 +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 INSERT INTO t(b) VALUES('S1'); SELECT a,b FROM t; a b 1 S1 3 S2 -4 S2 -5 S1 +5 S2 +6 S1 DROP TABLE t; # Autoincrement behaviour with mixed insert. CREATE TABLE t( @@ -733,22 +733,22 @@ `a` tinyint(4) NOT NULL AUTO_INCREMENT, `b` varchar(200) DEFAULT NULL, PRIMARY KEY (`a`) -) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=latin1 +) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=latin1 INSERT INTO t(b) VALUES('S4'); SELECT * FROM t; a b 1 S0 11 S1 -22 S3 -23 S4 28 S2 +31 S3 +32 S4 SHOW CREATE TABLE t; Table Create Table t CREATE TABLE `t` ( `a` tinyint(4) NOT NULL AUTO_INCREMENT, `b` varchar(200) DEFAULT NULL, PRIMARY KEY (`a`) -) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=latin1 +) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=latin1 DROP TABLE t; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=5; DROP TABLE IF EXISTS t1; @@ -789,7 +789,7 @@ `n` int(10) unsigned NOT NULL, `o` enum('FALSE','TRUE') DEFAULT NULL, PRIMARY KEY (`m`) -) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=latin1 +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=latin1 INSERT INTO t1 (b,c) SELECT n,o FROM t2 ; SHOW CREATE TABLE t1; Table Create Table @@ -1472,13 +1472,13 @@ i 1 301 -351 +601 SHOW CREATE TABLE t; Table Create Table t CREATE TABLE `t` ( `i` int(11) NOT NULL AUTO_INCREMENT, KEY `i` (`i`) -) ENGINE=InnoDB AUTO_INCREMENT=401 DEFAULT CHARSET=latin1 +) ENGINE=InnoDB AUTO_INCREMENT=651 DEFAULT CHARSET=latin1 DROP TABLE t; SET auto_increment_increment = DEFAULT; # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb_bug14704286.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb_bug14704286.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb_bug14704286.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb_bug14704286.result 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ -use test; -drop table if exists t1; -create table t1 (id int primary key, value int, value2 int, -value3 int, index(value,value2)) engine=innodb; -insert into t1 values -(10,10,10,10),(11,11,11,11),(12,12,12,12),(13,13,13,13),(14,14,14,14), -(15,15,15,15),(16,16,16,16),(17,17,17,17),(18,18,18,18),(19,19,19,19), -(20,20,20,20); -connect conn1, localhost, root,,; -connect conn2, localhost, root,,; -connect conn3, localhost, root,,; -connection conn1; -use test; -start transaction with consistent snapshot; -connection conn2; -use test; -CREATE PROCEDURE update_t1() -BEGIN -DECLARE i INT DEFAULT 1; -while (i <= 5000) DO -update test.t1 set value2=value2+1, value3=value3+1 where id=12; -SET i = i + 1; -END WHILE; -END| -set autocommit=0; -CALL update_t1(); -select * from t1; -id value value2 value3 -10 10 10 10 -11 11 11 11 -12 12 5012 5012 -13 13 13 13 -14 14 14 14 -15 15 15 15 -16 16 16 16 -17 17 17 17 -18 18 18 18 -19 19 19 19 -20 20 20 20 -set autocommit=1; -select * from t1; -id value value2 value3 -10 10 10 10 -11 11 11 11 -12 12 5012 5012 -13 13 13 13 -14 14 14 14 -15 15 15 15 -16 16 16 16 -17 17 17 17 -18 18 18 18 -19 19 19 19 -20 20 20 20 -connection conn1; -select * from t1 force index(value) where value=12; -connection conn3; -kill query @id; -connection conn1; -ERROR 70100: Query execution was interrupted -connection default; -disconnect conn1; -disconnect conn2; -disconnect conn3; -drop procedure if exists update_t1; -drop table if exists t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb_bug51378.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb_bug51378.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb_bug51378.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb_bug51378.result 2019-11-06 16:01:57.000000000 +0000 @@ -28,6 +28,8 @@ UNIQUE KEY `idx2` (`col1`,`col2`(31)) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 alter table bug51378 add primary key idx3(col1, col2(31)); +Warnings: +Warning 1280 Name 'idx3' ignored for PRIMARY key. SHOW CREATE TABLE bug51378; Table Create Table bug51378 CREATE TABLE `bug51378` ( diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb_bug60229.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb_bug60229.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb_bug60229.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb_bug60229.result 2019-11-06 16:01:57.000000000 +0000 @@ -4,6 +4,8 @@ NAME NVARCHAR(255) NOT NULL, CONSTRAINT PK_PERSON PRIMARY KEY (PERSON_ID, DOB) )Engine=InnoDB; +Warnings: +Warning 1280 Name 'PK_PERSON' ignored for PRIMARY key. CREATE TABLE PHOTO ( PERSON_ID VARCHAR(50) NOT NULL, DOB VARCHAR(50) NOT NULL, @@ -11,6 +13,8 @@ CONSTRAINT PK_PHOTO PRIMARY KEY (PERSON_ID, DOB), CONSTRAINT FK_PHOTO_2_PERSON FOREIGN KEY (PERSON_ID, DOB) REFERENCES PERSON (PERSON_ID, DOB) )Engine=InnoDB; +Warnings: +Warning 1280 Name 'PK_PHOTO' ignored for PRIMARY key. CREATE TABLE ADDRESS ( PERSON_ID VARCHAR(50) NOT NULL, DOB VARCHAR(50) NOT NULL, @@ -19,6 +23,8 @@ CONSTRAINT PK_ADDRESS PRIMARY KEY (PERSON_ID, DOB, ADDRESS_ID), CONSTRAINT FK_ADDRESS_2_PERSON FOREIGN KEY (PERSON_ID, DOB) REFERENCES PERSON (PERSON_ID, DOB) ON DELETE CASCADE )Engine=InnoDB; +Warnings: +Warning 1280 Name 'PK_ADDRESS' ignored for PRIMARY key. INSERT INTO PERSON VALUES("10", "11011999", "John"); INSERT INTO PHOTO VALUES("10", "11011999", "new photo"); DROP TABLE PHOTO; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb_bug68148.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb_bug68148.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb_bug68148.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb_bug68148.result 2019-11-06 16:01:57.000000000 +0000 @@ -19,7 +19,6 @@ ref_table1 ref_table2 # restart and see if we can still access the main table -SET FOREIGN_KEY_CHECKS=0; ALTER TABLE `main` ADD INDEX `idx_1` (`ref_id1`); SHOW CREATE TABLE `main`; Table Create Table diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb_bug84958.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb_bug84958.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb_bug84958.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb_bug84958.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,87 @@ +# +# Bug #84958 InnoDB's MVCC has O(N^2) behaviors +# https://bugs.mysql.com/bug.php?id=84958 +# +# Set up the test with a procedure and a function. +# +SET @saved_frequency= @@GLOBAL.innodb_purge_rseg_truncate_frequency; +SET GLOBAL innodb_purge_rseg_truncate_frequency= 1; +CREATE PROCEDURE insert_n(start int, end int) +BEGIN +DECLARE i INT DEFAULT start; +START TRANSACTION; +WHILE i <= end do +INSERT INTO t1 VALUES (1, 2, 3) ON DUPLICATE KEY UPDATE c = i; +SET i = i + 1; +END WHILE; +COMMIT; +END~~ +CREATE FUNCTION num_pages_get() +RETURNS INT +BEGIN +DECLARE ret INT; +SELECT variable_value INTO ret +FROM information_schema.global_status +WHERE variable_name = 'innodb_buffer_pool_read_requests'; +RETURN ret; +END~~ +# +# Create a table with one record in it and start an RR transaction +# +CREATE TABLE t1 (a INT, b INT, c INT, PRIMARY KEY(a,b), KEY (b,c)) +ENGINE=InnoDB; +BEGIN; +SELECT * FROM t1; +a b c +# +# Create 100 newer record versions in con2 and con3 +# +connect con2, localhost, root,,; +connection con2; +INSERT INTO t1 VALUES (1, 2, 3) ON DUPLICATE KEY UPDATE c = NULL; +CALL insert_n(1, 50);; +connect con3, localhost, root,,; +connection con3; +CALL insert_n(51, 100);; +connection con2; +connection con3; +INSERT INTO t1 VALUES (1, 2, 1) ON DUPLICATE KEY UPDATE c = NULL; +connection default; +# +# Connect to default and record how many pages were accessed +# when selecting the record using the secondary key. +# +InnoDB 4 transactions not purged +SET @num_pages_1 = num_pages_get(); +SELECT * FROM t1 force index (b); +a b c +SET @num_pages_2= num_pages_get(); +SELECT IF(@num_pages_2 - @num_pages_1 < 5000, 'OK', @num_pages_2 - @num_pages_1) num_pages_diff; +num_pages_diff +OK +# +# Commit and show the final record. +# +SELECT * FROM t1; +a b c +SELECT * FROM t1 force index (b); +a b c +COMMIT; +SELECT * FROM t1 force index (b); +a b c +1 2 NULL +SELECT * FROM t1; +a b c +1 2 NULL +CHECK TABLE t1; +Table Op Msg_type Msg_text +test.t1 check status OK +# +# Cleanup +# +disconnect con2; +disconnect con3; +SET GLOBAL innodb_purge_rseg_truncate_frequency= @saved_frequency; +DROP TABLE t1; +DROP PROCEDURE insert_n; +DROP FUNCTION num_pages_get; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb_bulk_create_index_debug.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb_bulk_create_index_debug.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb_bulk_create_index_debug.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb_bulk_create_index_debug.result 2019-11-06 16:01:57.000000000 +0000 @@ -17,21 +17,9 @@ COUNT(*) 10000 CREATE INDEX idx_title ON t1(title); -CHECK TABLE t1; -Table Op Msg_type Msg_text -test.t1 check status OK -SELECT * FROM t1 WHERE title = 'a10'; -class id title -10 10 a10 -SELECT * FROM t1 WHERE title = 'a5000'; -class id title -5000 5000 a5000 -SELECT * FROM t1 WHERE title = 'a10000'; -class id title -10000 10000 a10000 -SELECT * FROM t1 WHERE title = 'a10010'; -class id title -DROP TABLE t1; +affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 +RENAME TABLE t1 TO t0; # Test Blob CREATE TABLE t1( a INT PRIMARY KEY, @@ -48,9 +36,12 @@ 20000 40000 60000 -ALTER TABLE t1 DROP COLUMN c; -CHECK TABLE t1; +ALTER TABLE t1 DROP COLUMN c, FORCE; +affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 +CHECK TABLE t0,t1; Table Op Msg_type Msg_text +test.t0 check status OK test.t1 check status OK SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) @@ -59,14 +50,33 @@ 40000 60000 DROP TABLE t1; +RENAME TABLE t0 to t1; +CHECK TABLE t1; +Table Op Msg_type Msg_text +test.t1 check status OK +SELECT * FROM t1 WHERE title = 'a10'; +class id title +10 10 a10 +SELECT * FROM t1 WHERE title = 'a5000'; +class id title +5000 5000 a5000 +SELECT * FROM t1 WHERE title = 'a10000'; +class id title +10000 10000 a10000 +SELECT * FROM t1 WHERE title = 'a10010'; +class id title +DROP TABLE t1; CREATE TABLE t1( class INT, id INT, title VARCHAR(100) ) ENGINE=InnoDB ROW_FORMAT=REDUNDANT; -SET debug_dbug='+d,crash_commit_before'; +connect hang,localhost,root; +SET DEBUG_SYNC='alter_table_inplace_trans_commit SIGNAL hung WAIT_FOR ever'; CREATE INDEX idx_title ON t1(title); -ERROR HY000: Lost connection to MySQL server during query +connection default; +SET DEBUG_SYNC='now WAIT_FOR hung'; +disconnect hang; SELECT COUNT(*) FROM t1; COUNT(*) 10000 @@ -104,9 +114,12 @@ 20000 40000 60000 -SET debug_dbug='+d,crash_commit_before'; -ALTER TABLE t1 DROP COLUMN c; -ERROR HY000: Lost connection to MySQL server during query +connect hang,localhost,root; +SET DEBUG_SYNC='alter_table_inplace_trans_commit SIGNAL hung WAIT_FOR ever'; +ALTER TABLE t1 DROP COLUMN c, FORCE; +connection default; +SET DEBUG_SYNC='now WAIT_FOR hung'; +disconnect hang; CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK @@ -137,21 +150,9 @@ COUNT(*) 10000 CREATE INDEX idx_title ON t1(title); -CHECK TABLE t1; -Table Op Msg_type Msg_text -test.t1 check status OK -SELECT * FROM t1 WHERE title = 'a10'; -class id title -10 10 a10 -SELECT * FROM t1 WHERE title = 'a5000'; -class id title -5000 5000 a5000 -SELECT * FROM t1 WHERE title = 'a10000'; -class id title -10000 10000 a10000 -SELECT * FROM t1 WHERE title = 'a10010'; -class id title -DROP TABLE t1; +affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 +RENAME TABLE t1 TO t0; # Test Blob CREATE TABLE t1( a INT PRIMARY KEY, @@ -168,9 +169,12 @@ 20000 40000 60000 -ALTER TABLE t1 DROP COLUMN c; -CHECK TABLE t1; +ALTER TABLE t1 DROP COLUMN c, FORCE; +affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 +CHECK TABLE t0,t1; Table Op Msg_type Msg_text +test.t0 check status OK test.t1 check status OK SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) @@ -179,14 +183,33 @@ 40000 60000 DROP TABLE t1; +RENAME TABLE t0 to t1; +CHECK TABLE t1; +Table Op Msg_type Msg_text +test.t1 check status OK +SELECT * FROM t1 WHERE title = 'a10'; +class id title +10 10 a10 +SELECT * FROM t1 WHERE title = 'a5000'; +class id title +5000 5000 a5000 +SELECT * FROM t1 WHERE title = 'a10000'; +class id title +10000 10000 a10000 +SELECT * FROM t1 WHERE title = 'a10010'; +class id title +DROP TABLE t1; CREATE TABLE t1( class INT, id INT, title VARCHAR(100) ) ENGINE=InnoDB ROW_FORMAT=COMPACT; -SET debug_dbug='+d,crash_commit_before'; +connect hang,localhost,root; +SET DEBUG_SYNC='alter_table_inplace_trans_commit SIGNAL hung WAIT_FOR ever'; CREATE INDEX idx_title ON t1(title); -ERROR HY000: Lost connection to MySQL server during query +connection default; +SET DEBUG_SYNC='now WAIT_FOR hung'; +disconnect hang; SELECT COUNT(*) FROM t1; COUNT(*) 10000 @@ -224,9 +247,12 @@ 20000 40000 60000 -SET debug_dbug='+d,crash_commit_before'; -ALTER TABLE t1 DROP COLUMN c; -ERROR HY000: Lost connection to MySQL server during query +connect hang,localhost,root; +SET DEBUG_SYNC='alter_table_inplace_trans_commit SIGNAL hung WAIT_FOR ever'; +ALTER TABLE t1 DROP COLUMN c, FORCE; +connection default; +SET DEBUG_SYNC='now WAIT_FOR hung'; +disconnect hang; CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK @@ -257,21 +283,9 @@ COUNT(*) 10000 CREATE INDEX idx_title ON t1(title); -CHECK TABLE t1; -Table Op Msg_type Msg_text -test.t1 check status OK -SELECT * FROM t1 WHERE title = 'a10'; -class id title -10 10 a10 -SELECT * FROM t1 WHERE title = 'a5000'; -class id title -5000 5000 a5000 -SELECT * FROM t1 WHERE title = 'a10000'; -class id title -10000 10000 a10000 -SELECT * FROM t1 WHERE title = 'a10010'; -class id title -DROP TABLE t1; +affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 +RENAME TABLE t1 TO t0; # Test Blob CREATE TABLE t1( a INT PRIMARY KEY, @@ -288,9 +302,12 @@ 20000 40000 60000 -ALTER TABLE t1 DROP COLUMN c; -CHECK TABLE t1; +ALTER TABLE t1 DROP COLUMN c, FORCE; +affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 +CHECK TABLE t0,t1; Table Op Msg_type Msg_text +test.t0 check status OK test.t1 check status OK SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) @@ -299,14 +316,33 @@ 40000 60000 DROP TABLE t1; +RENAME TABLE t0 to t1; +CHECK TABLE t1; +Table Op Msg_type Msg_text +test.t1 check status OK +SELECT * FROM t1 WHERE title = 'a10'; +class id title +10 10 a10 +SELECT * FROM t1 WHERE title = 'a5000'; +class id title +5000 5000 a5000 +SELECT * FROM t1 WHERE title = 'a10000'; +class id title +10000 10000 a10000 +SELECT * FROM t1 WHERE title = 'a10010'; +class id title +DROP TABLE t1; CREATE TABLE t1( class INT, id INT, title VARCHAR(100) ) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; -SET debug_dbug='+d,crash_commit_before'; +connect hang,localhost,root; +SET DEBUG_SYNC='alter_table_inplace_trans_commit SIGNAL hung WAIT_FOR ever'; CREATE INDEX idx_title ON t1(title); -ERROR HY000: Lost connection to MySQL server during query +connection default; +SET DEBUG_SYNC='now WAIT_FOR hung'; +disconnect hang; SELECT COUNT(*) FROM t1; COUNT(*) 10000 @@ -344,9 +380,12 @@ 20000 40000 60000 -SET debug_dbug='+d,crash_commit_before'; -ALTER TABLE t1 DROP COLUMN c; -ERROR HY000: Lost connection to MySQL server during query +connect hang,localhost,root; +SET DEBUG_SYNC='alter_table_inplace_trans_commit SIGNAL hung WAIT_FOR ever'; +ALTER TABLE t1 DROP COLUMN c, FORCE; +connection default; +SET DEBUG_SYNC='now WAIT_FOR hung'; +disconnect hang; CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK @@ -378,21 +417,9 @@ COUNT(*) 10000 CREATE INDEX idx_title ON t1(title); -CHECK TABLE t1; -Table Op Msg_type Msg_text -test.t1 check status OK -SELECT * FROM t1 WHERE title = 'a10'; -class id title -10 10 a10 -SELECT * FROM t1 WHERE title = 'a5000'; -class id title -5000 5000 a5000 -SELECT * FROM t1 WHERE title = 'a10000'; -class id title -10000 10000 a10000 -SELECT * FROM t1 WHERE title = 'a10010'; -class id title -DROP TABLE t1; +affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 +RENAME TABLE t1 TO t0; # Test Blob SET GLOBAL innodb_file_per_table=1; CREATE TABLE t1( @@ -410,9 +437,12 @@ 20000 40000 60000 -ALTER TABLE t1 DROP COLUMN c; -CHECK TABLE t1; +ALTER TABLE t1 DROP COLUMN c, FORCE; +affected rows: 0 +info: Records: 0 Duplicates: 0 Warnings: 0 +CHECK TABLE t0,t1; Table Op Msg_type Msg_text +test.t0 check status OK test.t1 check status OK SELECT CHAR_LENGTH(b) FROM t1; CHAR_LENGTH(b) @@ -421,15 +451,34 @@ 40000 60000 DROP TABLE t1; +RENAME TABLE t0 to t1; +CHECK TABLE t1; +Table Op Msg_type Msg_text +test.t1 check status OK +SELECT * FROM t1 WHERE title = 'a10'; +class id title +10 10 a10 +SELECT * FROM t1 WHERE title = 'a5000'; +class id title +5000 5000 a5000 +SELECT * FROM t1 WHERE title = 'a10000'; +class id title +10000 10000 a10000 +SELECT * FROM t1 WHERE title = 'a10010'; +class id title +DROP TABLE t1; SET GLOBAL innodb_file_per_table=1; CREATE TABLE t1( class INT, id INT, title VARCHAR(100) ) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; -SET debug_dbug='+d,crash_commit_before'; +connect hang,localhost,root; +SET DEBUG_SYNC='alter_table_inplace_trans_commit SIGNAL hung WAIT_FOR ever'; CREATE INDEX idx_title ON t1(title); -ERROR HY000: Lost connection to MySQL server during query +connection default; +SET DEBUG_SYNC='now WAIT_FOR hung'; +disconnect hang; SELECT COUNT(*) FROM t1; COUNT(*) 10000 @@ -468,9 +517,12 @@ 20000 40000 60000 -SET debug_dbug='+d,crash_commit_before'; -ALTER TABLE t1 DROP COLUMN c; -ERROR HY000: Lost connection to MySQL server during query +connect hang,localhost,root; +SET DEBUG_SYNC='alter_table_inplace_trans_commit SIGNAL hung WAIT_FOR ever'; +ALTER TABLE t1 DROP COLUMN c, FORCE; +connection default; +SET DEBUG_SYNC='now WAIT_FOR hung'; +disconnect hang; CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK @@ -481,5 +533,4 @@ 40000 60000 DROP TABLE t1; -SET GLOBAL innodb_file_per_table=default; DROP PROCEDURE populate_t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-change-buffer-recovery.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-change-buffer-recovery.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-change-buffer-recovery.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-change-buffer-recovery.result 2019-11-06 16:01:57.000000000 +0000 @@ -2,6 +2,10 @@ # Bug#69122 - INNODB DOESN'T REDO-LOG INSERT BUFFER MERGE # OPERATION IF IT IS DONE IN-PLACE # +call mtr.add_suppression("InnoDB: innodb_read_only prevents crash recovery"); +call mtr.add_suppression("Plugin initialization aborted at srv0start\\.cc"); +call mtr.add_suppression("Plugin 'InnoDB'"); +FLUSH TABLES; CREATE TABLE t1( a INT AUTO_INCREMENT PRIMARY KEY, b CHAR(1), @@ -9,20 +13,7 @@ INDEX(b)) ENGINE=InnoDB STATS_PERSISTENT=0; SET GLOBAL innodb_change_buffering_debug = 1; -INSERT INTO t1 VALUES(0,'x',1); -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; +INSERT INTO t1 SELECT 0,'x',1 FROM seq_1_to_8192; BEGIN; SELECT b FROM t1 LIMIT 3; b @@ -38,8 +29,23 @@ ERROR HY000: Lost connection to MySQL server during query disconnect con1; connection default; -FOUND 1 /Wrote log record for ibuf update in place operation/ in my_restart.err +FOUND 1 /Wrote log record for ibuf update in place operation/ in mysqld.1.err +CHECK TABLE t1; +Table Op Msg_type Msg_text +test.t1 check Error Unknown storage engine 'InnoDB' +test.t1 check error Corrupt +FOUND 1 /innodb_read_only prevents crash recovery/ in mysqld.1.err +SELECT * FROM t1 LIMIT 1; +a b c +1 X 1 +SHOW ENGINE INNODB STATUS; +Type Name Status +InnoDB insert 0, delete mark 0 +SET GLOBAL innodb_fast_shutdown=0; CHECK TABLE t1; Table Op Msg_type Msg_text test.t1 check status OK +SHOW ENGINE INNODB STATUS; +Type Name Status +InnoDB insert 79, delete mark 1 DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-fk-warnings.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-fk-warnings.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-fk-warnings.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-fk-warnings.result 2019-11-06 16:01:57.000000000 +0000 @@ -25,7 +25,7 @@ ERROR HY000: Can't create table `test`.`t2` (errno: 150 "Foreign key constraint is incorrectly formed") show warnings; Level Code Message -Warning 150 Create table '`test`.`t2`' with foreign key constraint failed. There is no index in the referenced table where the referenced columns appear as the first columns near ' foreign key a (a) references t1(a)) engine=innodb'. +Warning 150 Create table `test`.`t2` with foreign key constraint failed. There is no index in the referenced table where the referenced columns appear as the first columns near ' foreign key a (a) references t1(a)) engine=innodb'. Error 1005 Can't create table `test`.`t2` (errno: 150 "Foreign key constraint is incorrectly formed") Warning 1215 Cannot add foreign key constraint for `t2` drop table t1; @@ -42,7 +42,7 @@ ERROR HY000: Can't create table `test`.`t2` (errno: 150 "Foreign key constraint is incorrectly formed") show warnings; Level Code Message -Warning 150 Alter table '`test`.`t2`' with foreign key constraint failed. There is no index in the referenced table where the referenced columns appear as the first columns near ' foreign key (b) references t2(b)'. +Warning 150 Alter table `test`.`t2` with foreign key constraint failed. There is no index in the referenced table where the referenced columns appear as the first columns near ' foreign key (b) references t2(b)'. Error 1005 Can't create table `test`.`t2` (errno: 150 "Foreign key constraint is incorrectly formed") Warning 1215 Cannot add foreign key constraint for `t2` drop table t2, t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-index-online-fk.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-index-online-fk.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-index-online-fk.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-index-online-fk.result 2019-11-06 16:01:57.000000000 +0000 @@ -326,6 +326,8 @@ ADD CONSTRAINT fk_1 FOREIGN KEY (a2) REFERENCES parent(b) ON DELETE SET NULL ON UPDATE CASCADE, ALGORITHM = INPLACE; +Warnings: +Warning 1280 Name 'idx' ignored for PRIMARY key. SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/fk_1 test/child test/parent 1 6 @@ -363,6 +365,8 @@ ADD CONSTRAINT fk_1 FOREIGN KEY (a2) REFERENCES parent(b) ON DELETE SET NULL ON UPDATE CASCADE, ALGORITHM = INPLACE; +Warnings: +Warning 1280 Name 'idx' ignored for PRIMARY key. SELECT * from information_schema.INNODB_SYS_FOREIGN; ID FOR_NAME REF_NAME N_COLS TYPE test/fk_1 test/child test/parent 1 6 @@ -556,6 +560,8 @@ ADD CONSTRAINT fk_new_2 FOREIGN KEY (a2) REFERENCES parent(a), ADD CONSTRAINT fk_new_3 FOREIGN KEY (a3) REFERENCES parent(a), ALGORITHM = INPLACE; +Warnings: +Warning 1280 Name 'idx' ignored for PRIMARY key. SHOW CREATE TABLE child; Table Create Table child CREATE TABLE `child` ( diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-mdev7046.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-mdev7046.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-mdev7046.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-mdev7046.result 2019-11-06 16:01:57.000000000 +0000 @@ -1 +1,3 @@ -1 +show create database test; +Database Create Database +test CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET latin1 */ diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-read-view.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-read-view.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-read-view.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-read-view.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,222 @@ +CREATE TABLE t1 (c1 INT , c2 CHAR(10), PRIMARY KEY (c1)) ENGINE = InnoDB; +INSERT INTO t1 VALUES(0, "0"); +INSERT INTO t1 VALUES(1, "1"); +INSERT INTO t1 VALUES(2, "2"); +INSERT INTO t1 VALUES(3, "3"); +CREATE TABLE t2 (c1 INT , c2 CHAR(10), PRIMARY KEY (c1)) ENGINE = InnoDB; +INSERT INTO t2 VALUES(0, "a"); +INSERT INTO t2 VALUES(1, "b"); +INSERT INTO t2 VALUES(2, "c"); +INSERT INTO t2 VALUES(3, "d"); +connect con1,localhost,root,,; +connect con2,localhost,root,,; +connection con1; +'T1' +SET AUTOCOMMIT=0; +BEGIN; +SELECT * FROM t2; +c1 c2 +0 a +1 b +2 c +3 d +connection default; +'T2' +SET AUTOCOMMIT=0; +BEGIN; +SELECT * FROM t1; +c1 c2 +0 0 +1 1 +2 2 +3 3 +connection con2; +'T3' +SET AUTOCOMMIT=0; +SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; +BEGIN; +SELECT * FROM t1; +c1 c2 +0 0 +1 1 +2 2 +3 3 +SELECT * FROM t2; +c1 c2 +0 a +1 b +2 c +3 d +connection con1; +'T1' +UPDATE t2 SET c1 = c1 + 100; +SELECT * FROM t2; +c1 c2 +100 a +101 b +102 c +103 d +COMMIT; +connection default; +'T2' +UPDATE t1 SET c1 = c1 + 100; +SELECT * FROM t1; +c1 c2 +100 0 +101 1 +102 2 +103 3 +COMMIT; +connection con2; +'T3' +SET DEBUG_SYNC='row_search_for_mysql_before_return WAIT_FOR waiting1'; +SELECT * FROM t1;; +connection default; +'T2' +SET DEBUG_SYNC='now SIGNAL waiting1'; +'Signalled T3' +connection con2; +'T3' +c1 c2 +0 0 +1 1 +2 2 +3 3 +connection con2; +'T3' +SET DEBUG_SYNC='row_search_for_mysql_before_return WAIT_FOR waiting1'; +SELECT * FROM t2;; +connection default; +'T2' +SET DEBUG_SYNC='now SIGNAL waiting1'; +'Signalled T3' +connection con2; +'T3' +c1 c2 +0 a +1 b +2 c +3 d +connection default; +disconnect con1; +disconnect con2; +connect con1,localhost,root,,; +connect con2,localhost,root,,; +connection con1; +'T1' +SET AUTOCOMMIT=0; +BEGIN; +SELECT * FROM t1; +c1 c2 +100 0 +101 1 +102 2 +103 3 +connection default; +'T2' +SET AUTOCOMMIT=0; +BEGIN; +SELECT * FROM t2; +c1 c2 +100 a +101 b +102 c +103 d +UPDATE t2 SET c1 = c1 + 100; +SELECT * FROM t2; +c1 c2 +200 a +201 b +202 c +203 d +COMMIT; +connection con2; +'T3' +SET AUTOCOMMIT=0; +SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; +BEGIN; +SELECT * FROM t1; +c1 c2 +100 0 +101 1 +102 2 +103 3 +SELECT * FROM t2; +c1 c2 +200 a +201 b +202 c +203 d +connection con1; +'T1' +UPDATE t1 SET c1 = c1 + 100; +SELECT * FROM t1; +c1 c2 +200 0 +201 1 +202 2 +203 3 +COMMIT; +connection con2; +'T3' +SET DEBUG_SYNC='row_select_wait WAIT_FOR waiting1'; +SELECT * FROM t1;; +connection con1; +'T2' +SET DEBUG_SYNC='now SIGNAL waiting1'; +'Signalled T3' +connection con2; +'T3' +c1 c2 +100 0 +101 1 +102 2 +103 3 +connection con2; +'T3' +SET DEBUG_SYNC='row_select_wait WAIT_FOR waiting1'; +SELECT * FROM t2;; +connection default; +'T2' +SET DEBUG_SYNC='now SIGNAL waiting1'; +'Signalled T3' +connection con2; +'T3' +c1 c2 +200 a +201 b +202 c +203 d +connection default; +disconnect con1; +disconnect con2; +DROP TABLE t1; +DROP TABLE t2; +# +# Bug 21433768: NON-REPEATABLE READ WITH REPEATABLE READ ISOLATION +# +connect con1,localhost,root,,; +CREATE TABLE t1(col1 INT PRIMARY KEY, col2 INT) ENGINE = InnoDB; +INSERT INTO t1 values (1, 0), (2, 0); +SELECT * FROM t1 ORDER BY col1; +col1 col2 +1 0 +2 0 +START TRANSACTION; +UPDATE t1 SET col2 = 100; +SET DEBUG_SYNC = 'after_trx_committed_in_memory SIGNAL s1 WAIT_FOR s2'; +COMMIT;; +connection default; +SET DEBUG_SYNC = 'now WAIT_FOR s1'; +UPDATE t1 SET col2 = col2 + 10 where col1 = 1; +COMMIT; +SELECT * FROM t1 ORDER BY col1; +col1 col2 +1 110 +2 100 +SET DEBUG_SYNC = 'now SIGNAL s2'; +connection con1; +disconnect con1; +connection default; +DROP TABLE t1; +SET DEBUG_SYNC= 'RESET'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb_stats_persistent.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb_stats_persistent.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb_stats_persistent.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb_stats_persistent.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,22 +1,15 @@ +SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency; +SET GLOBAL innodb_purge_rseg_truncate_frequency = 1; SET @saved_include_delete_marked = @@GLOBAL.innodb_stats_include_delete_marked; SET GLOBAL innodb_stats_include_delete_marked = ON; SET @saved_traditional = @@GLOBAL.innodb_stats_traditional; SET GLOBAL innodb_stats_traditional=false; SET @saved_modified_counter = @@GLOBAL.innodb_stats_modified_counter; SET GLOBAL innodb_stats_modified_counter=1; -CREATE TABLE t0 (id SERIAL, val INT UNSIGNED NOT NULL, KEY(val)) +CREATE TABLE t1 (id SERIAL, val INT UNSIGNED NOT NULL, KEY(val)) ENGINE=INNODB STATS_PERSISTENT=1,STATS_AUTO_RECALC=1; -CREATE TABLE t1 LIKE t0; -CREATE TABLE t2 LIKE t0; -INSERT INTO t0 (val) VALUES (4); -INSERT INTO t0 (val) SELECT 4 FROM t0; -INSERT INTO t0 (val) SELECT 4 FROM t0; -INSERT INTO t0 (val) SELECT 4 FROM t0; -INSERT INTO t0 (val) SELECT 4 FROM t0; -INSERT INTO t1 SELECT * FROM t0; -SELECT COUNT(*) FROM t1; -COUNT(*) -16 +CREATE TABLE t2 LIKE t1; +INSERT INTO t1 (val) SELECT 4 FROM seq_1_to_16; ANALYZE TABLE t1; Table Op Msg_type Msg_text test.t1 analyze status OK @@ -29,7 +22,7 @@ # DELETE must not affect statistics before COMMIT. EXPLAIN SELECT * FROM t1 WHERE val=4; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ref val val 4 const 16 Using index +1 SIMPLE t1 ref val val 4 const 1 Using index connection con1; COUNT(*) 0 @@ -48,7 +41,7 @@ 0 connection default; BEGIN; -INSERT INTO t2 SELECT * FROM t0; +INSERT INTO t2 (val) SELECT 4 FROM seq_1_to_16; # The INSERT will show up before COMMIT. EXPLAIN SELECT * FROM t2 WHERE val=4; id select_type table type possible_keys key key_len ref rows Extra @@ -65,17 +58,14 @@ EXPLAIN SELECT * FROM t2 WHERE val=4; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 ref val val 4 const 1 Using index -SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency; -SET GLOBAL innodb_purge_rseg_truncate_frequency = 1; InnoDB 0 transactions not purged -SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency; # After COMMIT and purge, the DELETE must show up. EXPLAIN SELECT * FROM t1 WHERE val=4; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref val val 4 const 1 Using index SET GLOBAL innodb_stats_include_delete_marked = OFF; BEGIN; -INSERT INTO t1 SELECT * FROM t0; +INSERT INTO t1 (val) SELECT 4 FROM seq_1_to_16; EXPLAIN SELECT * FROM t1 WHERE val=4; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref val val 4 const 16 Using index @@ -84,7 +74,7 @@ id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref val val 4 const 1 Using index BEGIN; -INSERT INTO t1 SELECT * FROM t0; +INSERT INTO t1 (val) SELECT 4 FROM seq_1_to_16; COMMIT; EXPLAIN SELECT * FROM t1 WHERE val=4; id select_type table type possible_keys key key_len ref rows Extra @@ -110,7 +100,8 @@ 16 disconnect con1; connection default; -DROP TABLE t0,t1,t2; +DROP TABLE t1,t2; SET GLOBAL innodb_stats_include_delete_marked = @saved_include_delete_marked; SET GLOBAL innodb_stats_traditional = @saved_traditional; SET GLOBAL innodb_stats_modified_counter = @saved_modified_counter; +SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-system-table-view.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-system-table-view.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-system-table-view.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-system-table-view.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,5 @@ +SET @save_frequency=@@GLOBAL.innodb_purge_rseg_truncate_frequency; +SET GLOBAL innodb_purge_rseg_truncate_frequency=1; SELECT table_id INTO @table_stats_id FROM information_schema.innodb_sys_tables WHERE name = 'mysql/innodb_table_stats'; SELECT table_id INTO @index_stats_id FROM information_schema.innodb_sys_tables @@ -108,6 +110,7 @@ ID FOR_COL_NAME REF_COL_NAME POS test/constraint_test parent_id id 0 INSERT INTO parent VALUES(1); +InnoDB 0 transactions not purged SELECT name, num_rows, ref_count FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name LIKE "%parent"; @@ -169,6 +172,7 @@ SELECT * FROM parent WHERE id IN (SELECT id FROM parent); id newid 1 9 +InnoDB 0 transactions not purged SELECT name, num_rows, ref_count FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS WHERE name LIKE "%parent"; @@ -176,3 +180,4 @@ test/parent 1 2 DROP TABLE child; DROP TABLE parent; +SET GLOBAL innodb_purge_rseg_truncate_frequency=@save_frequency; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-virtual-columns-debug.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-virtual-columns-debug.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-virtual-columns-debug.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-virtual-columns-debug.result 2019-11-06 16:01:57.000000000 +0000 @@ -6,11 +6,11 @@ DELETE FROM t1; connection default; SET debug_sync= "now WAIT_FOR delete_open"; -SET debug_sync= "ib_open_after_dict_open SIGNAL another_open"; SELECT a FROM t1; a NULL NULL +SET debug_sync= "now SIGNAL another_open"; connection con1; disconnect con1; connection default; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-virtual-columns.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-virtual-columns.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/innodb-virtual-columns.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/innodb-virtual-columns.result 2019-11-06 16:01:57.000000000 +0000 @@ -6,6 +6,8 @@ admit_term char(4) NOT NULL DEFAULT '', CONSTRAINT gso_grad_supr_pky PRIMARY KEY (uw_id, term) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; +Warnings: +Warning 1280 Name 'gso_grad_supr_pky' ignored for PRIMARY key. INSERT INTO `gso_grad_supr` VALUES ('1031',2,'CSM','','1009'); INSERT INTO `gso_grad_supr` VALUES ('1035',2,'CSM','ACAD','1009'); CREATE TABLE IF NOT EXISTS grad_degree ( @@ -23,6 +25,8 @@ deg_as_of_term char(4) NOT NULL COMMENT 'In most cases also end term', CONSTRAINT grad_degree_stu_plan_admit_pky PRIMARY KEY (student_id, plan, admit_term) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; +Warnings: +Warning 1280 Name 'grad_degree_stu_plan_admit_pky' ignored for PRIMARY key. SHOW CREATE TABLE grad_degree; Table Create Table grad_degree CREATE TABLE `grad_degree` ( @@ -129,6 +133,8 @@ deg_as_of_term char(4) NOT NULL COMMENT 'In most cases also end term', CONSTRAINT grad_degree_stu_plan_admit_pky PRIMARY KEY (student_id, plan, admit_term) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; +Warnings: +Warning 1280 Name 'grad_degree_stu_plan_admit_pky' ignored for PRIMARY key. SHOW CREATE TABLE grad_degree; Table Create Table grad_degree CREATE TABLE `grad_degree` ( @@ -263,6 +269,8 @@ deg_as_of_term char(4) NOT NULL COMMENT 'In most cases also end term', CONSTRAINT grad_degree_stu_plan_admit_pky PRIMARY KEY (student_id, plan, admit_term) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; +Warnings: +Warning 1280 Name 'grad_degree_stu_plan_admit_pky' ignored for PRIMARY key. SHOW CREATE TABLE grad_degree; Table Create Table grad_degree CREATE TABLE `grad_degree` ( diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/instant_alter_bugs.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/instant_alter_bugs.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/instant_alter_bugs.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/instant_alter_bugs.result 2019-11-06 16:01:57.000000000 +0000 @@ -128,6 +128,10 @@ pk f1 f2 f3 f4 f5 f6 f7 f8 filler HANDLER h CLOSE; DROP TABLE t1; +# +# MDEV-19630 ALTER TABLE ... ADD COLUMN damages foreign keys +# which are pointed to the table being altered +# CREATE TABLE t1(f1 int not null, primary key(f1))engine=innodb; CREATE TABLE t2(f1 INT AUTO_INCREMENT NOT NULL, f2 INT NOT NULL, status ENUM ('a', 'b', 'c'), INDEX idx1(f2), @@ -154,3 +158,14 @@ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ALTER TABLE t2 CHANGE status status VARCHAR(20) DEFAULT NULL; DROP TABLE t2, t1; +# +# MDEV-20938 Double free of dict_foreign_t during instant ALTER TABLE +# +CREATE TABLE t1 (id INT UNSIGNED PRIMARY KEY) ENGINE=InnoDB; +CREATE TABLE t2 (a INT UNSIGNED PRIMARY KEY, b INT UNSIGNED UNIQUE, +FOREIGN KEY fk1 (b) REFERENCES t1 (id)) ENGINE=InnoDB; +ALTER TABLE t2 +DROP FOREIGN KEY fk1, +CHANGE b d INT UNSIGNED, +ADD c INT; +DROP TABLE t2, t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/instant_alter.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/instant_alter.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/instant_alter.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/instant_alter.result 2019-11-06 16:01:57.000000000 +0000 @@ -491,6 +491,29 @@ COMMIT; InnoDB 0 transactions not purged DROP TABLE t1; +CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB ROW_FORMAT=REDUNDANT; +INSERT INTO t1 VALUES (7); +ALTER TABLE t1 ADD COLUMN c INT NOT NULL DEFAULT 0; +ALTER TABLE t1 ADD INDEX (c); +BEGIN; +DELETE FROM t1; +INSERT INTO t1 VALUES (4,0),(7,77); +COMMIT; +BEGIN; +DELETE FROM t1 WHERE a=7; +UPDATE t1 SET a=7; +COMMIT; +SELECT * FROM t1 FORCE INDEX(PRIMARY); +a c +7 0 +SELECT * FROM t1 FORCE INDEX(c); +a c +7 0 +DELETE FROM t1; +CHECK TABLE t1; +Table Op Msg_type Msg_text +test.t1 check status OK +DROP TABLE t1; CREATE TABLE t1 (id INT PRIMARY KEY, c2 INT UNIQUE, c3 POINT NOT NULL DEFAULT ST_GeomFromText('POINT(3 4)'), @@ -927,6 +950,29 @@ COMMIT; InnoDB 0 transactions not purged DROP TABLE t1; +CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB ROW_FORMAT=COMPACT; +INSERT INTO t1 VALUES (7); +ALTER TABLE t1 ADD COLUMN c INT NOT NULL DEFAULT 0; +ALTER TABLE t1 ADD INDEX (c); +BEGIN; +DELETE FROM t1; +INSERT INTO t1 VALUES (4,0),(7,77); +COMMIT; +BEGIN; +DELETE FROM t1 WHERE a=7; +UPDATE t1 SET a=7; +COMMIT; +SELECT * FROM t1 FORCE INDEX(PRIMARY); +a c +7 0 +SELECT * FROM t1 FORCE INDEX(c); +a c +7 0 +DELETE FROM t1; +CHECK TABLE t1; +Table Op Msg_type Msg_text +test.t1 check status OK +DROP TABLE t1; CREATE TABLE t1 (id INT PRIMARY KEY, c2 INT UNIQUE, c3 POINT NOT NULL DEFAULT ST_GeomFromText('POINT(3 4)'), @@ -1363,10 +1409,33 @@ COMMIT; InnoDB 0 transactions not purged DROP TABLE t1; +CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; +INSERT INTO t1 VALUES (7); +ALTER TABLE t1 ADD COLUMN c INT NOT NULL DEFAULT 0; +ALTER TABLE t1 ADD INDEX (c); +BEGIN; +DELETE FROM t1; +INSERT INTO t1 VALUES (4,0),(7,77); +COMMIT; +BEGIN; +DELETE FROM t1 WHERE a=7; +UPDATE t1 SET a=7; +COMMIT; +SELECT * FROM t1 FORCE INDEX(PRIMARY); +a c +7 0 +SELECT * FROM t1 FORCE INDEX(c); +a c +7 0 +DELETE FROM t1; +CHECK TABLE t1; +Table Op Msg_type Msg_text +test.t1 check status OK +DROP TABLE t1; disconnect analyze; SELECT variable_value-@old_instant instants FROM information_schema.global_status WHERE variable_name = 'innodb_instant_alter_column'; instants -51 +54 SET GLOBAL innodb_purge_rseg_truncate_frequency= @saved_frequency; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/purge_secondary_mdev-16222.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/purge_secondary_mdev-16222.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/purge_secondary_mdev-16222.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/purge_secondary_mdev-16222.result 1970-01-01 00:00:00.000000000 +0000 @@ -1,30 +0,0 @@ -# -# MDEV-16222 Assertion `0' failed in row_purge_remove_sec_if_poss_leaf on table with virtual columns and indexes -# -set @saved_frequency= @@global.innodb_purge_rseg_truncate_frequency; -set global innodb_purge_rseg_truncate_frequency= 1; -set @saved_dbug= @@global.debug_dbug; -set global debug_dbug= "+d,ib_purge_virtual_mdev_16222_1,ib_purge_virtual_mdev_16222_2"; -create table t1 ( -pk serial, vb tinyblob as (b) virtual, b tinyblob, -primary key(pk), index (vb(64))) -engine innodb; -insert ignore into t1 (b) values ('foo'); -select * into outfile 'load.data' from t1; -load data infile 'load.data' replace into table t1; -set debug_sync= "now WAIT_FOR latch_released"; -set global debug_dbug= "-d,ib_purge_virtual_mdev_16222_1"; -drop table t1; -set debug_sync= "now SIGNAL drop_started WAIT_FOR got_no_such_table"; -create table t1 ( -pk serial, vb tinyblob as (b) virtual, b tinyblob, -primary key(pk), index (vb(64))) -engine innodb; -insert ignore into t1 (b) values ('foo'); -select * into outfile 'load.data' from t1; -load data infile 'load.data' replace into table t1; -set debug_sync= "now WAIT_FOR got_no_such_table"; -set global debug_dbug= @saved_dbug; -drop table t1; -set global innodb_purge_rseg_truncate_frequency= @saved_frequency; -set debug_sync= "RESET"; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/recovery_shutdown.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/recovery_shutdown.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/recovery_shutdown.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/recovery_shutdown.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,5 @@ FLUSH TABLES; +call mtr.add_suppression("Found 1 prepared XA transactions"); # # MDEV-13797 InnoDB may hang if shutdown is initiated soon after startup # while rolling back recovered incomplete transactions @@ -8,10 +9,12 @@ COMMIT; connect con$c,localhost,root,,; CREATE TABLE t8 (a SERIAL, b INT UNIQUE, c INT UNIQUE) ENGINE=InnoDB; -BEGIN; +XA START 'x'; INSERT INTO t8 (a) SELECT NULL FROM t; UPDATE t8 SET a=a+100, b=a; DELETE FROM t8; +XA END 'x'; +XA PREPARE 'x'; connect con$c,localhost,root,,; CREATE TABLE t7 (a SERIAL, b INT UNIQUE, c INT UNIQUE) ENGINE=InnoDB; BEGIN; @@ -63,4 +66,7 @@ SET GLOBAL innodb_flush_log_at_trx_commit=1; CREATE TABLE u(a SERIAL) ENGINE=INNODB; FLUSH TABLES; +XA RECOVER; +formatID gtrid_length bqual_length data +1 1 0 x DROP TABLE t,u; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/stat_tables.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/stat_tables.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/stat_tables.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/stat_tables.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,15 @@ +rename table mysql.table_stats to mysql.table_stats_save; +flush tables; +set use_stat_tables= PREFERABLY; +create table t1 (a int) engine=InnoDB; +start transaction; +insert t1 values (1); +insert t1 values (2); +commit; +select * from t1; +a +1 +2 +drop table t1; +rename table mysql.table_stats_save to mysql.table_stats; +flush tables; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/temporary_table_optimization.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/temporary_table_optimization.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/temporary_table_optimization.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/temporary_table_optimization.result 2019-11-06 16:01:57.000000000 +0000 @@ -112,7 +112,7 @@ drop table t1; drop procedure populate_t1; create temporary table t1 (t1_i int, t1_f float) engine = innodb; -insert into t1 values (1, 1.1), (2, 2.2), (3, 2.2), (4, 4.4); +insert into t1 values (1, 1.1), (2, 2.5), (3, 2.5), (4, 4.4); explain select * from t1 where t1_i = 1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where @@ -124,22 +124,22 @@ t1_i t1_f 1 1.1 alter table t1 add unique index sec_index(t1_f); -ERROR 23000: Duplicate entry '2.2' for key 'sec_index' +ERROR 23000: Duplicate entry '2.5' for key 'sec_index' alter table t1 add index sec_index(t1_f); -explain select * from t1 where t1_f > 2.2; +explain select * from t1 where t1_f >= 2.5; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL sec_index NULL NULL NULL 4 Using where -select * from t1 where t1_f > 2.2; +select * from t1 where t1_f >= 2.5; t1_i t1_f -2 2.2 -3 2.2 +2 2.5 +3 2.5 4 4.4 alter table t1 add column (t1_c char(10)); select * from t1; t1_i t1_f t1_c 1 1.1 NULL -2 2.2 NULL -3 2.2 NULL +2 2.5 NULL +3 2.5 NULL 4 4.4 NULL insert into t1 values (5, 5.5, 'krunal'); alter table t1 drop column t1_f; @@ -150,7 +150,7 @@ `t1_c` char(10) DEFAULT NULL, UNIQUE KEY `pri_index` (`t1_i`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 -select * from t1 where t1_f > 2.2; +select * from t1 where t1_f >= 2.5; ERROR 42S22: Unknown column 't1_f' in 'where clause' alter table t1 add index sec_index2(t1_c), algorithm=inplace; ERROR 0A000: ALGORITHM=INPLACE is not supported for this operation. Try ALGORITHM=COPY diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/trx_id_future.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/trx_id_future.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/trx_id_future.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/trx_id_future.result 2019-11-06 16:01:57.000000000 +0000 @@ -2,12 +2,17 @@ # Bug #20445525 ADD A CONSISTENCY CHECK AGAINST DB_TRX_ID BEING # IN THE FUTURE # +SET GLOBAL innodb_purge_rseg_truncate_frequency=1; CREATE TABLE t1(a INT) row_format=redundant engine=innoDB; INSERT INTO t1 VALUES(1); +InnoDB 0 transactions not purged NOT FOUND /\[Warning\] InnoDB: A transaction id in a record of table `test`\.`t1` is newer than the system-wide maximum/ in mysqld.1.err call mtr.add_suppression("\\[Warning\\] InnoDB: A transaction id in a record of table `test`\\.`t1` is newer than the system-wide maximum"); +SET @save_count = @@max_error_count; +SET max_error_count = 1; SELECT * FROM t1; a Warnings: Warning 1642 InnoDB: Transaction id in a record of table `test`.`t1` is newer than system-wide maximum. +SET max_error_count = @save_count; DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/undo_truncate_recover.result mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/undo_truncate_recover.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/r/undo_truncate_recover.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/r/undo_truncate_recover.result 2019-11-06 16:01:57.000000000 +0000 @@ -9,8 +9,8 @@ update t1 set c = 'InnoDB'; set global debug_dbug = '+d,ib_undo_trunc'; commit; +drop table t1; call mtr.add_suppression("InnoDB: innodb_undo_tablespaces=0 disables dedicated undo log tablespaces"); call mtr.add_suppression("InnoDB: The redo log transaction size "); SET GLOBAL innodb_fast_shutdown=0; FOUND 1 /ib_undo_trunc/ in mysqld.1.err -drop table t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/alter_algorithm.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/alter_algorithm.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/alter_algorithm.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/alter_algorithm.test 2019-11-06 16:01:57.000000000 +0000 @@ -31,10 +31,6 @@ --error $error_code ALTER TABLE t1 MODIFY f2 INT; ---echo # Make existing column NON-NULLABLE ---error $error_code -ALTER TABLE t1 MODIFY f3 INT NOT NULL; - --echo # Drop Stored Column --error $error_code ALTER TABLE t1 DROP COLUMN f5; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/alter_copy.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/alter_copy.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/alter_copy.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/alter_copy.test 2019-11-06 16:01:57.000000000 +0000 @@ -37,11 +37,11 @@ SHOW CREATE TABLE t1; ALTER TABLE t1 FORCE, ALGORITHM=COPY; -# crash right after the last write_row(), before the first commit of ALTER TABLE ---source include/expect_crash.inc +# kill right after the last write_row(), before the first commit of ALTER TABLE +connect (hang,localhost,root); -SET DEBUG_DBUG='+d,crash_commit_before'; ---error 2013 +SET DEBUG_SYNC='alter_table_copy_trans_commit SIGNAL hung WAIT_FOR ever'; +send # create 32 secondary indexes ALTER TABLE t ADD INDEX(b,c,d,a),ADD INDEX(b,c,a,d),ADD INDEX(b,a,c,d),ADD INDEX(b,a,d,c), ADD INDEX(b,d,a,c),ADD INDEX(b,d,c,a),ADD INDEX(a,b,c,d),ADD INDEX(a,b,d,c), @@ -53,8 +53,13 @@ ADD INDEX(a,b,d), ADD INDEX(a,d,b), ADD INDEX(b,c,d), ADD INDEX(b,d,c), ALGORITHM=COPY; +connection default; +SET DEBUG_SYNC='now WAIT_FOR hung'; +let $shutdown_timeout=0; --let $restart_parameters= --innodb-force-recovery=3 ---source include/start_mysqld.inc +--source include/restart_mysqld.inc +disconnect hang; +let $shutdown_timeout=; let $datadir=`select @@datadir`; --replace_regex /#sql-[0-9a-f_]*/#sql-temporary/ /FTS_[0-9a-f]*_[0-9a-f]*/FTS/ --list_files $datadir/test diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/auto_increment_dup.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/auto_increment_dup.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/auto_increment_dup.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/auto_increment_dup.test 2019-11-06 16:01:57.000000000 +0000 @@ -8,8 +8,6 @@ --source include/have_debug_sync.inc --source include/innodb_binlog.inc -let $stmt= `SELECT @@GLOBAL.log_bin`; - set global transaction isolation level repeatable read; CREATE TABLE t1( @@ -84,13 +82,7 @@ --reap SET DEBUG_SYNC='execute_command_after_close_tables SIGNAL continue'; -if ($stmt) { ---error ER_LOCK_WAIT_TIMEOUT -INSERT INTO t1(k) VALUES (2), (4), (5) ON DUPLICATE KEY UPDATE c='2'; -} -if (!$stmt) { INSERT INTO t1(k) VALUES (2), (4), (5) ON DUPLICATE KEY UPDATE c='2'; -} --connection con1 --echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/foreign-keys.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/foreign-keys.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/foreign-keys.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/foreign-keys.test 2019-11-06 16:01:57.000000000 +0000 @@ -204,3 +204,49 @@ select * from t2; drop table t2, t1; drop user foo; + +--echo # +--echo # MDEV-17187 table doesn't exist in engine after ALTER other tables +--echo # with CONSTRAINTs +--echo # + +set foreign_key_checks=on; +create table t1 (id int not null primary key) engine=innodb; +create table t2 (id int not null primary key, fid int not null, +CONSTRAINT fk_fid FOREIGN KEY (fid) REFERENCES t1 (id))engine=innodb; + +insert into t1 values (1), (2), (3); +insert into t2 values (1, 1), (2, 1), (3, 2); + +set foreign_key_checks=off; +alter table t2 drop index fk_fid; +set foreign_key_checks=on; + +--error ER_ROW_IS_REFERENCED_2 +delete from t1 where id=2; +--error ER_NO_REFERENCED_ROW_2 +insert into t2 values(4, 99); + +select * from t1; +select * from t2; + +set foreign_key_checks=off; +delete from t1 where id=2; +insert into t2 values(4, 99); +set foreign_key_checks=on; + +select * from t1; +select * from t2; + +show create table t1; +show create table t2; + +# Optional: test DROP TABLE without any prior ha_innobase::open(). +# This was tested manually, but it would cause --embedded to skip the test, +# and the restart would significantly increase the running time. +# --source include/restart_mysqld.inc + +--error ER_ROW_IS_REFERENCED_2 +drop table t1,t2; +--error ER_BAD_TABLE_ERROR +drop table t1,t2; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/foreign_key.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/foreign_key.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/foreign_key.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/foreign_key.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,6 @@ --source include/have_innodb.inc --source include/count_sessions.inc +--source include/default_charset.inc --echo # --echo # Bug #19027905 ASSERT RET.SECOND DICT_CREATE_FOREIGN_CONSTRAINTS_LOW @@ -155,7 +156,7 @@ --enable_query_log CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB; -CREATE DATABASE best; +CREATE DATABASE best default character set latin1; CREATE TABLE t3 (a INT PRIMARY KEY, CONSTRAINT t2_ibfk_1 FOREIGN KEY (a) REFERENCES t1(a)) ENGINE=InnoDB; CREATE TABLE best.t2 (a INT PRIMARY KEY, b TEXT, FULLTEXT INDEX(b), diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/ibuf_not_empty.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/ibuf_not_empty.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/ibuf_not_empty.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/ibuf_not_empty.test 2019-11-06 16:01:57.000000000 +0000 @@ -42,9 +42,35 @@ INSERT INTO t1 SELECT 0,b,c FROM t1; INSERT INTO t1 SELECT 0,b,c FROM t1; INSERT INTO t1 SELECT 0,b,c FROM t1; +let MYSQLD_DATADIR=`select @@datadir`; +let PAGE_SIZE=`select @@innodb_page_size`; ---let $restart_parameters= --innodb-force-recovery=6 ---source include/restart_mysqld.inc +--source include/shutdown_mysqld.inc + +# Corrupt the change buffer bitmap, to claim that pages are clean +perl; +do "$ENV{MTR_SUITE_DIR}/include/crc32.pl"; +my $file = "$ENV{MYSQLD_DATADIR}/test/t1.ibd"; +open(FILE, "+<$file") || die "Unable to open $file"; +binmode FILE; +my $ps= $ENV{PAGE_SIZE}; +my $page; +sysseek(FILE, $ps, 0) || die "Unable to seek $file\n"; +die "Unable to read $file" unless sysread(FILE, $page, $ps) == $ps; +# Clean the change buffer bitmap. +substr($page,38,$ps - 38 - 8) = chr(0) x ($ps - 38 - 8); +my $polynomial = 0x82f63b78; # CRC-32C +my $ck= pack("N",mycrc32(substr($page, 4, 22), 0, $polynomial) ^ + mycrc32(substr($page, 38, $ps - 38 - 8), 0, $polynomial)); +substr($page,0,4)=$ck; +substr($page,$ps-8,4)=$ck; +sysseek(FILE, $ps, 0) || die "Unable to rewind $file\n"; +syswrite(FILE, $page, $ps)==$ps || die "Unable to write $file\n"; +close(FILE) || die "Unable to close $file"; +EOF + +--let $restart_parameters= --innodb-force-recovery=6 --innodb-change-buffer-dump +--source include/start_mysqld.inc --replace_regex /contains \d+ entries/contains #### entries/ check table t1; @@ -52,5 +78,13 @@ --let $restart_parameters= --source include/restart_mysqld.inc +# Ensure that the slow shutdown will not time out due to running purge. +SET GLOBAL innodb_purge_rseg_truncate_frequency=1; +--source include/wait_all_purged.inc +# The change buffer merge for the injected corruption must complete +# without exceeding the 60-second shutdown_server timeout. +SET GLOBAL innodb_fast_shutdown=0; +--source include/restart_mysqld.inc + # Cleanup DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/information_schema_grants.opt mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/information_schema_grants.opt --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/information_schema_grants.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/information_schema_grants.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,33 @@ +--enable-plugin-innodb-trx +--enable-plugin-innodb-locks +--enable-plugin-innodb-lock-waits +--enable-plugin-innodb-cmp +--enable-plugin-innodb-cmp-reset +--enable-plugin-innodb-cmpmem +--enable-plugin-innodb-cmpmem-reset +--enable-plugin-innodb-cmp-per-index +--enable-plugin-innodb-cmp-per-index-reset +--enable-plugin-innodb-buffer-page +--enable-plugin-innodb-buffer-page-lru +--enable-plugin-innodb-buffer-pool-stats +--enable-plugin-innodb-metrics +--enable-plugin-innodb-ft-default-stopword +--enable-plugin-innodb-ft-deleted +--enable-plugin-innodb-ft-being-deleted +--enable-plugin-innodb-ft-config +--enable-plugin-innodb-ft-index-cache +--enable-plugin-innodb-ft-index-table +--enable-plugin-innodb-sys-tables +--enable-plugin-innodb-sys-tablestats +--enable-plugin-innodb-sys-indexes +--enable-plugin-innodb-sys-columns +--enable-plugin-innodb-sys-fields +--enable-plugin-innodb-sys-foreign +--enable-plugin-innodb-sys-foreign-cols +--enable-plugin-innodb-sys-tablespaces +--enable-plugin-innodb-sys-datafiles +--enable-plugin-innodb-sys-virtual +--enable-plugin-innodb-mutexes +--enable-plugin-innodb-sys-semaphore-waits +--enable-plugin-innodb-tablespaces-encryption +--enable-plugin-innodb-tablespaces-scrubbing diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/information_schema_grants.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/information_schema_grants.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/information_schema_grants.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/information_schema_grants.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,311 @@ +source include/have_innodb.inc; +source include/not_embedded.inc; + +# make sure we've enabled everything: +select plugin_name,plugin_status as 'Must be ACTIVE' from information_schema.plugins where plugin_name like 'inno%' and plugin_status!='ACTIVE'; + +create user select_only@localhost; +grant select on *.* to select_only@localhost; + +connect select_only,localhost,select_only; +connection default; + +create sql security invoker view i_buffer_page as select * from information_schema.innodb_buffer_page; +create sql security definer view d_buffer_page as select * from information_schema.innodb_buffer_page; + +create sql security invoker view i_buffer_page_lru as select * from information_schema.innodb_buffer_page_lru; +create sql security definer view d_buffer_page_lru as select * from information_schema.innodb_buffer_page_lru; + +create sql security invoker view i_buffer_pool_stats as select * from information_schema.innodb_buffer_pool_stats; +create sql security definer view d_buffer_pool_stats as select * from information_schema.innodb_buffer_pool_stats; + +create sql security invoker view i_cmp as select * from information_schema.innodb_cmp; +create sql security definer view d_cmp as select * from information_schema.innodb_cmp; + +create sql security invoker view i_cmp_per_index as select * from information_schema.innodb_cmp_per_index; +create sql security definer view d_cmp_per_index as select * from information_schema.innodb_cmp_per_index; + +create sql security invoker view i_cmp_per_index_reset as select * from information_schema.innodb_cmp_per_index_reset; +create sql security definer view d_cmp_per_index_reset as select * from information_schema.innodb_cmp_per_index_reset; + +create sql security invoker view i_cmp_reset as select * from information_schema.innodb_cmp_reset; +create sql security definer view d_cmp_reset as select * from information_schema.innodb_cmp_reset; + +create sql security invoker view i_cmpmem as select * from information_schema.innodb_cmpmem; +create sql security definer view d_cmpmem as select * from information_schema.innodb_cmpmem; + +create sql security invoker view i_cmpmem_reset as select * from information_schema.innodb_cmpmem_reset; +create sql security definer view d_cmpmem_reset as select * from information_schema.innodb_cmpmem_reset; + +create sql security invoker view i_ft_being_deleted as select * from information_schema.innodb_ft_being_deleted; +create sql security definer view d_ft_being_deleted as select * from information_schema.innodb_ft_being_deleted; + +create sql security invoker view i_ft_config as select * from information_schema.innodb_ft_config; +create sql security definer view d_ft_config as select * from information_schema.innodb_ft_config; + +create sql security invoker view i_ft_default_stopword as select * from information_schema.innodb_ft_default_stopword; +create sql security definer view d_ft_default_stopword as select * from information_schema.innodb_ft_default_stopword; + +create sql security invoker view i_ft_deleted as select * from information_schema.innodb_ft_deleted; +create sql security definer view d_ft_deleted as select * from information_schema.innodb_ft_deleted; + +create sql security invoker view i_ft_index_cache as select * from information_schema.innodb_ft_index_cache; +create sql security definer view d_ft_index_cache as select * from information_schema.innodb_ft_index_cache; + +create sql security invoker view i_ft_index_table as select * from information_schema.innodb_ft_index_table; +create sql security definer view d_ft_index_table as select * from information_schema.innodb_ft_index_table; + +create sql security invoker view i_lock_waits as select * from information_schema.innodb_lock_waits; +create sql security definer view d_lock_waits as select * from information_schema.innodb_lock_waits; + +create sql security invoker view i_locks as select * from information_schema.innodb_locks; +create sql security definer view d_locks as select * from information_schema.innodb_locks; + +create sql security invoker view i_metrics as select * from information_schema.innodb_metrics; +create sql security definer view d_metrics as select * from information_schema.innodb_metrics; + +create sql security invoker view i_mutexes as select * from information_schema.innodb_mutexes; +create sql security definer view d_mutexes as select * from information_schema.innodb_mutexes; + +create sql security invoker view i_sys_columns as select * from information_schema.innodb_sys_columns; +create sql security definer view d_sys_columns as select * from information_schema.innodb_sys_columns; + +create sql security invoker view i_sys_datafiles as select * from information_schema.innodb_sys_datafiles; +create sql security definer view d_sys_datafiles as select * from information_schema.innodb_sys_datafiles; + +create sql security invoker view i_sys_fields as select * from information_schema.innodb_sys_fields; +create sql security definer view d_sys_fields as select * from information_schema.innodb_sys_fields; + +create sql security invoker view i_sys_foreign as select * from information_schema.innodb_sys_foreign; +create sql security definer view d_sys_foreign as select * from information_schema.innodb_sys_foreign; + +create sql security invoker view i_sys_foreign_cols as select * from information_schema.innodb_sys_foreign_cols; +create sql security definer view d_sys_foreign_cols as select * from information_schema.innodb_sys_foreign_cols; + +create sql security invoker view i_sys_indexes as select * from information_schema.innodb_sys_indexes; +create sql security definer view d_sys_indexes as select * from information_schema.innodb_sys_indexes; + +create sql security invoker view i_sys_semaphore_waits as select * from information_schema.innodb_sys_semaphore_waits; +create sql security definer view d_sys_semaphore_waits as select * from information_schema.innodb_sys_semaphore_waits; + +create sql security invoker view i_sys_tables as select * from information_schema.innodb_sys_tables; +create sql security definer view d_sys_tables as select * from information_schema.innodb_sys_tables; + +create sql security invoker view i_sys_tablespaces as select * from information_schema.innodb_sys_tablespaces; +create sql security definer view d_sys_tablespaces as select * from information_schema.innodb_sys_tablespaces; + +create sql security invoker view i_sys_tablestats as select * from information_schema.innodb_sys_tablestats; +create sql security definer view d_sys_tablestats as select * from information_schema.innodb_sys_tablestats; + +create sql security invoker view i_sys_virtual as select * from information_schema.innodb_sys_virtual; +create sql security definer view d_sys_virtual as select * from information_schema.innodb_sys_virtual; + +create sql security invoker view i_tablespaces_encryption as select * from information_schema.innodb_tablespaces_encryption; +create sql security definer view d_tablespaces_encryption as select * from information_schema.innodb_tablespaces_encryption; + +create sql security invoker view i_tablespaces_scrubbing as select * from information_schema.innodb_tablespaces_scrubbing; +create sql security definer view d_tablespaces_scrubbing as select * from information_schema.innodb_tablespaces_scrubbing; + +create sql security invoker view i_trx as select * from information_schema.innodb_trx; +create sql security definer view d_trx as select * from information_schema.innodb_trx; + +connection select_only; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_buffer_page; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_buffer_page; +select count(*) > -1 from d_buffer_page; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_buffer_page_lru; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_buffer_page_lru; +select count(*) > -1 from d_buffer_page_lru; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_buffer_pool_stats; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_buffer_pool_stats; +select count(*) > -1 from d_buffer_pool_stats; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_cmp; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_cmp; +select count(*) > -1 from d_cmp; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_cmp_per_index; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_cmp_per_index; +select count(*) > -1 from d_cmp_per_index; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_cmp_per_index_reset; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_cmp_per_index_reset; +select count(*) > -1 from d_cmp_per_index_reset; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_cmp_reset; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_cmp_reset; +select count(*) > -1 from d_cmp_reset; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_cmpmem; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_cmpmem; +select count(*) > -1 from d_cmpmem; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_cmpmem_reset; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_cmpmem_reset; +select count(*) > -1 from d_cmpmem_reset; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_ft_being_deleted; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_ft_being_deleted; +select count(*) > -1 from d_ft_being_deleted; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_ft_config; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_ft_config; +select count(*) > -1 from d_ft_config; + +# non-privileged table +select count(*) > -1 from information_schema.innodb_ft_default_stopword; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_ft_deleted; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_ft_deleted; +select count(*) > -1 from d_ft_deleted; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_ft_index_cache; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_ft_index_cache; +select count(*) > -1 from d_ft_index_cache; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_ft_index_table; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_ft_index_table; +select count(*) > -1 from d_ft_index_table; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_lock_waits; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_lock_waits; +select count(*) > -1 from d_lock_waits; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_locks; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_locks; +select count(*) > -1 from d_locks; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_metrics; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_metrics; +select count(*) > -1 from d_metrics; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_mutexes; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_mutexes; +select count(*) > -1 from d_mutexes; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_sys_columns; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_sys_columns; +select count(*) > -1 from d_sys_columns; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_sys_datafiles; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_sys_datafiles; +select count(*) > -1 from d_sys_datafiles; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_sys_fields; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_sys_fields; +select count(*) > -1 from d_sys_fields; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_sys_foreign; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_sys_foreign; +select count(*) > -1 from d_sys_foreign; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_sys_foreign_cols; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_sys_foreign_cols; +select count(*) > -1 from d_sys_foreign_cols; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_sys_indexes; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_sys_indexes; +select count(*) > -1 from d_sys_indexes; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_sys_semaphore_waits; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_sys_semaphore_waits; +select count(*) > -1 from d_sys_semaphore_waits; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_sys_tables; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_sys_tables; +select count(*) > -1 from d_sys_tables; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_sys_tablespaces; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_sys_tablespaces; +select count(*) > -1 from d_sys_tablespaces; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_sys_tablestats; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_sys_tablestats; +select count(*) > -1 from d_sys_tablestats; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_sys_virtual; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_sys_virtual; +select count(*) > -1 from d_sys_virtual; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_tablespaces_encryption; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_tablespaces_encryption; +select count(*) > -1 from d_tablespaces_encryption; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_tablespaces_scrubbing; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_tablespaces_scrubbing; +select count(*) > -1 from d_tablespaces_scrubbing; + +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from information_schema.innodb_trx; +--error ER_SPECIFIC_ACCESS_DENIED_ERROR +select count(*) > -1 from i_trx; +select count(*) > -1 from d_trx; + +connection default; +drop database test; +create database test; +drop user select_only@localhost; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-alter-nullable.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-alter-nullable.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-alter-nullable.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-alter-nullable.test 2019-11-06 16:01:57.000000000 +0000 @@ -104,7 +104,6 @@ ALTER TABLE t3 MODIFY c INT NOT NULL; --disable_info SET sql_mode = @old_sql_mode; ---echo # MDEV-18819 FIXME: Wrong result g=NULL SELECT * FROM t1; SELECT * FROM t2; SELECT * FROM t3; @@ -123,7 +122,6 @@ ALTER IGNORE TABLE t2 MODIFY c INT NOT NULL; ALTER IGNORE TABLE t3 MODIFY c INT NOT NULL; --disable_info ---echo # MDEV-18819 FIXME: Wrong result g=NULL SELECT * FROM t1; SELECT * FROM t2; SELECT * FROM t3; @@ -151,7 +149,6 @@ --enable_info ALTER TABLE t1 MODIFY c INT NOT NULL; ALTER TABLE t2 MODIFY c INT NOT NULL; ---echo # MDEV-18819 FIXME: This should not require ALGORITHM=COPY. ALTER TABLE t3 MODIFY c INT NOT NULL; --disable_info SELECT * FROM t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-alter.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-alter.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-alter.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-alter.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,5 @@ --source include/have_innodb.inc +--source include/default_charset.inc SET NAMES utf8mb4; @@ -585,6 +586,9 @@ let $source_db = source_db; let $dest_db = dest_db; +--source include/default_charset.inc +SET NAMES utf8mb4; + eval CREATE DATABASE $source_db; eval CREATE DATABASE $dest_db; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-autoinc.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-autoinc.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-autoinc.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-autoinc.test 2019-11-06 16:01:57.000000000 +0000 @@ -349,7 +349,7 @@ SELECT * FROM t1; SET @@SESSION.AUTO_INCREMENT_INCREMENT=1152921504606846976, @@SESSION.AUTO_INCREMENT_OFFSET=1152921504606846976; SHOW VARIABLES LIKE "auto_inc%"; ---error 1467 +--error HA_ERR_AUTOINC_ERANGE INSERT INTO t1 VALUES (NULL),(NULL); SELECT * FROM t1; DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb_bug14704286.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb_bug14704286.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb_bug14704286.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb_bug14704286.test 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ ---source include/have_innodb.inc - -# -# create test-bed to run test -# -use test; ---disable_warnings -drop table if exists t1; ---enable_warnings -create table t1 (id int primary key, value int, value2 int, -value3 int, index(value,value2)) engine=innodb; - -insert into t1 values -(10,10,10,10),(11,11,11,11),(12,12,12,12),(13,13,13,13),(14,14,14,14), -(15,15,15,15),(16,16,16,16),(17,17,17,17),(18,18,18,18),(19,19,19,19), -(20,20,20,20); -let $ID= `SELECT @id := CONNECTION_ID()`; - -# -# we need multiple connections as we need to keep one connection -# active with trx requesting consistent read. -# -connect (conn1, localhost, root,,); -connect (conn2, localhost, root,,); -connect (conn3, localhost, root,,); - -# -# start trx with consistent read -# -connection conn1; -use test; - -start transaction with consistent snapshot; - -# -# update table such that secondary index is updated. -# -connection conn2; -use test; -delimiter |; -CREATE PROCEDURE update_t1() -BEGIN - DECLARE i INT DEFAULT 1; - while (i <= 5000) DO - update test.t1 set value2=value2+1, value3=value3+1 where id=12; - SET i = i + 1; - END WHILE; -END| - -delimiter ;| -set autocommit=0; -CALL update_t1(); -select * from t1; -set autocommit=1; -select * from t1; - -# -# Now try to fire select query from connection-1 enforcing -# use of secondary index. -# -connection conn1; -let $ID= `SELECT @id := CONNECTION_ID()`; -#--error ER_QUERY_INTERRUPTED ---send -select * from t1 force index(value) where value=12; - -# -# select is going to take good time so let's kill query. -# -connection conn3; -let $wait_condition= - select * from information_schema.processlist where state = 'Sending data' and - info = 'select * from t1 force index(value) where value=12'; ---source include/wait_condition.inc -let $ignore= `SELECT @id := $ID`; -kill query @id; - -# -# reap the value of connection-1 -# -connection conn1; ---error ER_QUERY_INTERRUPTED -reap; - -# -# clean test-bed. -# -connection default; -disconnect conn1; -disconnect conn2; -disconnect conn3; -drop procedure if exists update_t1; -drop table if exists t1; - - diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb_bug68148.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb_bug68148.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb_bug68148.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb_bug68148.test 2019-11-06 16:01:57.000000000 +0000 @@ -31,8 +31,6 @@ --echo # restart and see if we can still access the main table --source include/restart_mysqld.inc -# This is required to access the table -SET FOREIGN_KEY_CHECKS=0; ALTER TABLE `main` ADD INDEX `idx_1` (`ref_id1`); SHOW CREATE TABLE `main`; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb_bug84958.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb_bug84958.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb_bug84958.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb_bug84958.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,93 @@ +--echo # +--echo # Bug #84958 InnoDB's MVCC has O(N^2) behaviors +--echo # https://bugs.mysql.com/bug.php?id=84958 +--echo # +--echo # Set up the test with a procedure and a function. +--echo # + +--source include/have_innodb.inc +SET @saved_frequency= @@GLOBAL.innodb_purge_rseg_truncate_frequency; +SET GLOBAL innodb_purge_rseg_truncate_frequency= 1; + +DELIMITER ~~; +CREATE PROCEDURE insert_n(start int, end int) +BEGIN + DECLARE i INT DEFAULT start; + START TRANSACTION; + WHILE i <= end do + INSERT INTO t1 VALUES (1, 2, 3) ON DUPLICATE KEY UPDATE c = i; + SET i = i + 1; + END WHILE; + COMMIT; +END~~ + +CREATE FUNCTION num_pages_get() +RETURNS INT +BEGIN + DECLARE ret INT; + SELECT variable_value INTO ret + FROM information_schema.global_status + WHERE variable_name = 'innodb_buffer_pool_read_requests'; + RETURN ret; +END~~ +DELIMITER ;~~ + +--echo # +--echo # Create a table with one record in it and start an RR transaction +--echo # +CREATE TABLE t1 (a INT, b INT, c INT, PRIMARY KEY(a,b), KEY (b,c)) +ENGINE=InnoDB; +BEGIN; +SELECT * FROM t1; + +--echo # +--echo # Create 100 newer record versions in con2 and con3 +--echo # +connect (con2, localhost, root,,); +connection con2; +INSERT INTO t1 VALUES (1, 2, 3) ON DUPLICATE KEY UPDATE c = NULL; +--send CALL insert_n(1, 50); + +connect (con3, localhost, root,,); +connection con3; +--send CALL insert_n(51, 100); + +connection con2; +reap; +connection con3; +reap; +INSERT INTO t1 VALUES (1, 2, 1) ON DUPLICATE KEY UPDATE c = NULL; + +connection default; + +--echo # +--echo # Connect to default and record how many pages were accessed +--echo # when selecting the record using the secondary key. +--echo # +--let $wait_all_purged=4 +--source include/wait_all_purged.inc +SET @num_pages_1 = num_pages_get(); +SELECT * FROM t1 force index (b); +SET @num_pages_2= num_pages_get(); + +SELECT IF(@num_pages_2 - @num_pages_1 < 5000, 'OK', @num_pages_2 - @num_pages_1) num_pages_diff; + +--echo # +--echo # Commit and show the final record. +--echo # +SELECT * FROM t1; +SELECT * FROM t1 force index (b); +COMMIT; +SELECT * FROM t1 force index (b); +SELECT * FROM t1; +CHECK TABLE t1; + +--echo # +--echo # Cleanup +--echo # +disconnect con2; +disconnect con3; +SET GLOBAL innodb_purge_rseg_truncate_frequency= @saved_frequency; +DROP TABLE t1; +DROP PROCEDURE insert_n; +DROP FUNCTION num_pages_get; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb_bulk_create_index_flush.opt mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb_bulk_create_index_flush.opt --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb_bulk_create_index_flush.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb_bulk_create_index_flush.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--innodb-log-optimize-ddl \ No newline at end of file diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-change-buffer-recovery-master.opt mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-change-buffer-recovery-master.opt --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-change-buffer-recovery-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-change-buffer-recovery-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1,2 +1 @@ ---log-error=$MYSQLTEST_VARDIR/tmp/my_restart.err --innodb_buffer_pool_size=24M diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-change-buffer-recovery.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-change-buffer-recovery.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-change-buffer-recovery.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-change-buffer-recovery.test 2019-11-06 16:01:57.000000000 +0000 @@ -11,6 +11,12 @@ --source include/not_valgrind.inc # This test is slow on buildbot. --source include/big_test.inc +--source include/have_sequence.inc + +call mtr.add_suppression("InnoDB: innodb_read_only prevents crash recovery"); +call mtr.add_suppression("Plugin initialization aborted at srv0start\\.cc"); +call mtr.add_suppression("Plugin 'InnoDB'"); +FLUSH TABLES; CREATE TABLE t1( a INT AUTO_INCREMENT PRIMARY KEY, @@ -27,25 +33,12 @@ # change buffering is possible, so that the change buffer will be used # whenever possible. SET GLOBAL innodb_change_buffering_debug = 1; -let SEARCH_FILE = $MYSQLTEST_VARDIR/tmp/my_restart.err; +let SEARCH_FILE = $MYSQLTEST_VARDIR/log/mysqld.1.err; # Create enough rows for the table, so that the change buffer will be # used for modifying the secondary index page. There must be multiple # index pages, because changes to the root page are never buffered. -INSERT INTO t1 VALUES(0,'x',1); -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; -INSERT INTO t1 SELECT 0,b,c FROM t1; +INSERT INTO t1 SELECT 0,'x',1 FROM seq_1_to_8192; BEGIN; SELECT b FROM t1 LIMIT 3; @@ -63,10 +56,26 @@ SELECT b FROM t1 LIMIT 3; disconnect con1; connection default; - let SEARCH_PATTERN=Wrote log record for ibuf update in place operation; --source include/search_pattern_in_file.inc + +--let $restart_parameters= --innodb-read-only --source include/start_mysqld.inc +CHECK TABLE t1; +--source include/shutdown_mysqld.inc +let SEARCH_PATTERN=innodb_read_only prevents crash recovery; +--source include/search_pattern_in_file.inc +--let $restart_parameters= --innodb-force-recovery=5 +--source include/start_mysqld.inc +SELECT * FROM t1 LIMIT 1; +replace_regex /.*operations:.* (insert.*), delete \d.*discarded .*/\1/; +SHOW ENGINE INNODB STATUS; +# Slow shutdown will not merge the changes due to innodb_force_recovery=5. +SET GLOBAL innodb_fast_shutdown=0; +--let $restart_parameters= +--source include/restart_mysqld.inc CHECK TABLE t1; +replace_regex /.*operations:.* (insert.*), delete \d.*discarded .*/\1/; +SHOW ENGINE INNODB STATUS; DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-fkcheck.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-fkcheck.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-fkcheck.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-fkcheck.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,5 @@ --source include/have_innodb.inc +--source include/default_charset.inc # # MDEV-10083: Orphan ibd file when playing with foreign keys diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb_force_recovery.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb_force_recovery.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb_force_recovery.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb_force_recovery.test 2019-11-06 16:01:57.000000000 +0000 @@ -20,6 +20,7 @@ --echo # Restart the server with innodb_force_recovery as 4. --let $restart_parameters= --innodb-force-recovery=4 --source include/restart_mysqld.inc +let $status=`SHOW ENGINE INNODB STATUS`; select * from t1; @@ -59,6 +60,7 @@ --echo # Restart the server with innodb_force_recovery as 5. --let $restart_parameters= --innodb-force-recovery=5 --source include/restart_mysqld.inc +let $status=`SHOW ENGINE INNODB STATUS`; select * from t2; @@ -99,6 +101,7 @@ --echo # Restart the server with innodb_force_recovery as 6. --let $restart_parameters= --innodb-force-recovery=6 --source include/restart_mysqld.inc +let $status=`SHOW ENGINE INNODB STATUS`; select * from t2; @@ -136,6 +139,7 @@ --echo # Restart the server with innodb_force_recovery=2 --let $restart_parameters= --innodb-force-recovery=2 --source include/restart_mysqld.inc +let $status=`SHOW ENGINE INNODB STATUS`; select * from t2; begin; @@ -153,6 +157,7 @@ --echo # Restart the server with innodb_force_recovery=3 --let $restart_parameters= --innodb-force-recovery=3 --source include/start_mysqld.inc +let $status=`SHOW ENGINE INNODB STATUS`; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; select * from t2; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-get-fk.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-get-fk.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-get-fk.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-get-fk.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,7 @@ --- source include/have_innodb.inc +--source include/have_innodb.inc +--source include/default_charset.inc # need to restart server --- source include/not_embedded.inc +--source include/not_embedded.inc CREATE SCHEMA `repro`; CREATE TABLE `repro`.`crew` ( diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-mdev7046.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-mdev7046.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-mdev7046.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-mdev7046.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,6 +2,7 @@ --source include/have_partition.inc # Test causes OS error printout --source include/not_windows.inc +--source include/default_charset.inc --disable_query_log --disable_result_log @@ -30,7 +31,10 @@ show warnings; drop table t1; -DROP DATABASE test;CREATE DATABASE test;USE test; +drop database test; +create database test; +use test; + SET @@session.storage_engine=MYISAM; --error 0,1,1103 CREATE TABLE t1(id INT,purchased DATE)PARTITION BY RANGE(YEAR(purchased)) SUBPARTITION BY HASH(TO_DAYS(purchased)) SUBPARTITIONS 2 (PARTITION p0 VALUES LESS THAN MAXVALUE (SUBPARTITION sp0 DATA DIRECTORY='/tmp/not-existing' INDEX DIRECTORY='/tmp/not-existing',SUBPARTITION sp1)); @@ -40,9 +44,12 @@ drop table t1; +drop database test; +create database test; +use test; + --enable_query_log --enable_result_log --enable_warnings -# make sure that we have at least some ouput to avoid mtr warning ---echo 1 +show create database test; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-read-view.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-read-view.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-read-view.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-read-view.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,208 @@ +# DEBUG_SYNC must be compiled in. +--source include/have_debug_sync.inc +--source include/have_debug.inc + +# We need to test the use case: +# a. Create a transaction T1 that will be promoted to RW. +# b. Create a transaction T2 that will be promoted to RW. +# a. Create a RO transaction T3 +# d. T3 does a select - creates a read view that doesn't include T1 and T2 +# e. T1 & T2 do some updates - this promotes T1 & T2 to RW transactions +# f. T1 & T2 Commit +# g. T3 Does a select - it should not see the changes of T1 & T2 + +--source include/have_innodb.inc +--source include/count_sessions.inc + +CREATE TABLE t1 (c1 INT , c2 CHAR(10), PRIMARY KEY (c1)) ENGINE = InnoDB; +INSERT INTO t1 VALUES(0, "0"); +INSERT INTO t1 VALUES(1, "1"); +INSERT INTO t1 VALUES(2, "2"); +INSERT INTO t1 VALUES(3, "3"); + +CREATE TABLE t2 (c1 INT , c2 CHAR(10), PRIMARY KEY (c1)) ENGINE = InnoDB; +INSERT INTO t2 VALUES(0, "a"); +INSERT INTO t2 VALUES(1, "b"); +INSERT INTO t2 VALUES(2, "c"); +INSERT INTO t2 VALUES(3, "d"); + +--connect (con1,localhost,root,,) +--connect (con2,localhost,root,,) + +connection con1; +--echo 'T1' +SET AUTOCOMMIT=0; +BEGIN; +SELECT * FROM t2; + +connection default; +--echo 'T2' +SET AUTOCOMMIT=0; +BEGIN; +SELECT * FROM t1; + +connection con2; +--echo 'T3' +SET AUTOCOMMIT=0; +SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; +BEGIN; +SELECT * FROM t1; +SELECT * FROM t2; + +connection con1; +--echo 'T1' +UPDATE t2 SET c1 = c1 + 100; +SELECT * FROM t2; +COMMIT; + +connection default; +--echo 'T2' +UPDATE t1 SET c1 = c1 + 100; +SELECT * FROM t1; +COMMIT; + +connection con2; +--echo 'T3' +SET DEBUG_SYNC='row_search_for_mysql_before_return WAIT_FOR waiting1'; +--send SELECT * FROM t1; + +connection default; +--echo 'T2' +SET DEBUG_SYNC='now SIGNAL waiting1'; +--echo 'Signalled T3' + +connection con2; +--echo 'T3' +reap; + +connection con2; +--echo 'T3' +SET DEBUG_SYNC='row_search_for_mysql_before_return WAIT_FOR waiting1'; +--send SELECT * FROM t2; + +connection default; +--echo 'T2' +SET DEBUG_SYNC='now SIGNAL waiting1'; +--echo 'Signalled T3' + +connection con2; +--echo 'T3' +reap; + +connection default; +disconnect con1; +disconnect con2; + +# We need to test the use case: +# a. Create a transaction T1 that will be promoted to RW. +# b. Create a transaction T2 that will be promoted to RW. +# c. T2 does some updates - this promotes T2 to RW transactions +# d. T2 Commits +# e. Create a RO transaction T3 +# f. T3 does a select - creates a read view that doesn't include T1 +# g. T1 does some updates - this promotes T1 to RW transactions +# h. T1 Commits +# i. T3 Does a select - it should not see the changes made by T1 but should +# see the changes by T2 + +--connect (con1,localhost,root,,) +--connect (con2,localhost,root,,) + +connection con1; +--echo 'T1' +SET AUTOCOMMIT=0; +BEGIN; +SELECT * FROM t1; + +connection default; +--echo 'T2' +SET AUTOCOMMIT=0; +BEGIN; +SELECT * FROM t2; +UPDATE t2 SET c1 = c1 + 100; +SELECT * FROM t2; +COMMIT; + +connection con2; +--echo 'T3' +SET AUTOCOMMIT=0; +SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; +BEGIN; +SELECT * FROM t1; +SELECT * FROM t2; + +connection con1; +--echo 'T1' +UPDATE t1 SET c1 = c1 + 100; +SELECT * FROM t1; +COMMIT; + +connection con2; +--echo 'T3' +SET DEBUG_SYNC='row_select_wait WAIT_FOR waiting1'; +--send SELECT * FROM t1; + +connection con1; +--echo 'T2' +SET DEBUG_SYNC='now SIGNAL waiting1'; +--echo 'Signalled T3' + +connection con2; +--echo 'T3' +reap; + +connection con2; +--echo 'T3' +SET DEBUG_SYNC='row_select_wait WAIT_FOR waiting1'; +--send SELECT * FROM t2; + +connection default; +--echo 'T2' +SET DEBUG_SYNC='now SIGNAL waiting1'; +--echo 'Signalled T3' + +connection con2; +--echo 'T3' +reap; + +connection default; +disconnect con1; +disconnect con2; + +DROP TABLE t1; +DROP TABLE t2; + +--echo # +--echo # Bug 21433768: NON-REPEATABLE READ WITH REPEATABLE READ ISOLATION +--echo # + +--connect (con1,localhost,root,,) + +CREATE TABLE t1(col1 INT PRIMARY KEY, col2 INT) ENGINE = InnoDB; +INSERT INTO t1 values (1, 0), (2, 0); +SELECT * FROM t1 ORDER BY col1; + +START TRANSACTION; +UPDATE t1 SET col2 = 100; +SET DEBUG_SYNC = 'after_trx_committed_in_memory SIGNAL s1 WAIT_FOR s2'; +--send COMMIT; + +connection default; +SET DEBUG_SYNC = 'now WAIT_FOR s1'; +UPDATE t1 SET col2 = col2 + 10 where col1 = 1; +COMMIT; + +SELECT * FROM t1 ORDER BY col1; +SET DEBUG_SYNC = 'now SIGNAL s2'; + +connection con1; +reap; +disconnect con1; + +connection default; + +DROP TABLE t1; + +# Clean up resources used in this test case. +SET DEBUG_SYNC= 'RESET'; +--source include/wait_until_count_sessions.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb_stats_persistent.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb_stats_persistent.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb_stats_persistent.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb_stats_persistent.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,8 @@ --source include/have_innodb.inc ---source include/big_test.inc +--source include/have_sequence.inc +SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency; +SET GLOBAL innodb_purge_rseg_truncate_frequency = 1; SET @saved_include_delete_marked = @@GLOBAL.innodb_stats_include_delete_marked; SET GLOBAL innodb_stats_include_delete_marked = ON; SET @saved_traditional = @@GLOBAL.innodb_stats_traditional; @@ -8,19 +10,11 @@ SET @saved_modified_counter = @@GLOBAL.innodb_stats_modified_counter; SET GLOBAL innodb_stats_modified_counter=1; -CREATE TABLE t0 (id SERIAL, val INT UNSIGNED NOT NULL, KEY(val)) +CREATE TABLE t1 (id SERIAL, val INT UNSIGNED NOT NULL, KEY(val)) ENGINE=INNODB STATS_PERSISTENT=1,STATS_AUTO_RECALC=1; -CREATE TABLE t1 LIKE t0; -CREATE TABLE t2 LIKE t0; +CREATE TABLE t2 LIKE t1; -INSERT INTO t0 (val) VALUES (4); -INSERT INTO t0 (val) SELECT 4 FROM t0; -INSERT INTO t0 (val) SELECT 4 FROM t0; -INSERT INTO t0 (val) SELECT 4 FROM t0; -INSERT INTO t0 (val) SELECT 4 FROM t0; - -INSERT INTO t1 SELECT * FROM t0; -SELECT COUNT(*) FROM t1; +INSERT INTO t1 (val) SELECT 4 FROM seq_1_to_16; ANALYZE TABLE t1; connect(con1, localhost, root,,); @@ -46,7 +40,7 @@ connection default; BEGIN; -INSERT INTO t2 SELECT * FROM t0; +INSERT INTO t2 (val) SELECT 4 FROM seq_1_to_16; --echo # The INSERT will show up before COMMIT. EXPLAIN SELECT * FROM t2 WHERE val=4; @@ -57,21 +51,18 @@ connection con1; EXPLAIN SELECT * FROM t2 WHERE val=4; -SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency; -SET GLOBAL innodb_purge_rseg_truncate_frequency = 1; --source include/wait_all_purged.inc -SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency; --echo # After COMMIT and purge, the DELETE must show up. EXPLAIN SELECT * FROM t1 WHERE val=4; SET GLOBAL innodb_stats_include_delete_marked = OFF; BEGIN; -INSERT INTO t1 SELECT * FROM t0; +INSERT INTO t1 (val) SELECT 4 FROM seq_1_to_16; EXPLAIN SELECT * FROM t1 WHERE val=4; ROLLBACK; EXPLAIN SELECT * FROM t1 WHERE val=4; BEGIN; -INSERT INTO t1 SELECT * FROM t0; +INSERT INTO t1 (val) SELECT 4 FROM seq_1_to_16; COMMIT; EXPLAIN SELECT * FROM t1 WHERE val=4; BEGIN; @@ -89,7 +80,8 @@ connection default; -DROP TABLE t0,t1,t2; +DROP TABLE t1,t2; SET GLOBAL innodb_stats_include_delete_marked = @saved_include_delete_marked; SET GLOBAL innodb_stats_traditional = @saved_traditional; SET GLOBAL innodb_stats_modified_counter = @saved_modified_counter; +SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-system-table-view.opt mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-system-table-view.opt --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-system-table-view.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-system-table-view.opt 2019-11-06 16:01:57.000000000 +0000 @@ -8,3 +8,5 @@ --innodb-sys-fields --innodb-sys-foreign --innodb-sys-foreign-cols +--character_set_server="latin1" +--collation_server="latin1_swedish_ci" diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-system-table-view.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-system-table-view.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-system-table-view.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-system-table-view.test 2019-11-06 16:01:57.000000000 +0000 @@ -4,6 +4,8 @@ --source include/innodb_page_size_small.inc +SET @save_frequency=@@GLOBAL.innodb_purge_rseg_truncate_frequency; +SET GLOBAL innodb_purge_rseg_truncate_frequency=1; LET $MYSQLD_DATADIR = `select @@datadir`; LET $INNODB_PAGE_SIZE = `select @@innodb_page_size`; @@ -70,6 +72,8 @@ # INNODB_SYS_TABLESTATS INSERT INTO parent VALUES(1); +--source include/wait_all_purged.inc + --sorted_result SELECT name, num_rows, ref_count FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS @@ -126,6 +130,8 @@ --sorted_result SELECT * FROM parent WHERE id IN (SELECT id FROM parent); +--source include/wait_all_purged.inc + --sorted_result SELECT name, num_rows, ref_count FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS @@ -134,3 +140,4 @@ DROP TABLE child; DROP TABLE parent; +SET GLOBAL innodb_purge_rseg_truncate_frequency=@save_frequency; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-virtual-columns-debug.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-virtual-columns-debug.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-virtual-columns-debug.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-virtual-columns-debug.test 2019-11-06 16:01:57.000000000 +0000 @@ -15,8 +15,8 @@ DELETE FROM t1; --connection default SET debug_sync= "now WAIT_FOR delete_open"; -SET debug_sync= "ib_open_after_dict_open SIGNAL another_open"; SELECT a FROM t1; +SET debug_sync= "now SIGNAL another_open"; --connection con1 --reap diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-wl5522-debug.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-wl5522-debug.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/innodb-wl5522-debug.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/innodb-wl5522-debug.test 2019-11-06 16:01:57.000000000 +0000 @@ -13,7 +13,8 @@ # Avoid CrashReporter popup on Mac --source include/not_crashrep.inc --- source include/have_innodb.inc +--source include/have_innodb.inc +--source include/default_charset.inc call mtr.add_suppression("InnoDB: Operating system error number .* in a file operation."); call mtr.add_suppression("InnoDB: The error means the system cannot find the path specified."); diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/instant_alter_bugs.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/instant_alter_bugs.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/instant_alter_bugs.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/instant_alter_bugs.test 2019-11-06 16:01:57.000000000 +0000 @@ -135,8 +135,10 @@ HANDLER h CLOSE; DROP TABLE t1; -# MDEV-19630 ALTER TABLE ... ADD COLUMN damages foreign keys which are pointed -# to the table being altered +--echo # +--echo # MDEV-19630 ALTER TABLE ... ADD COLUMN damages foreign keys +--echo # which are pointed to the table being altered +--echo # CREATE TABLE t1(f1 int not null, primary key(f1))engine=innodb; CREATE TABLE t2(f1 INT AUTO_INCREMENT NOT NULL, f2 INT NOT NULL, status ENUM ('a', 'b', 'c'), INDEX idx1(f2), @@ -154,3 +156,16 @@ --let $datadir= `select @@datadir` --remove_file $datadir/test/load.data + +--echo # +--echo # MDEV-20938 Double free of dict_foreign_t during instant ALTER TABLE +--echo # + +CREATE TABLE t1 (id INT UNSIGNED PRIMARY KEY) ENGINE=InnoDB; +CREATE TABLE t2 (a INT UNSIGNED PRIMARY KEY, b INT UNSIGNED UNIQUE, + FOREIGN KEY fk1 (b) REFERENCES t1 (id)) ENGINE=InnoDB; +ALTER TABLE t2 + DROP FOREIGN KEY fk1, + CHANGE b d INT UNSIGNED, + ADD c INT; +DROP TABLE t2, t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/instant_alter.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/instant_alter.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/instant_alter.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/instant_alter.test 2019-11-06 16:01:57.000000000 +0000 @@ -365,6 +365,30 @@ --source include/wait_all_purged.inc DROP TABLE t1; +# +# MDEV-20066 Wrong value on instantly added column after DELETE and UPDATE +# + +eval CREATE TABLE t1(a INT PRIMARY KEY) $engine; +INSERT INTO t1 VALUES (7); + +ALTER TABLE t1 ADD COLUMN c INT NOT NULL DEFAULT 0; +ALTER TABLE t1 ADD INDEX (c); + +BEGIN; +DELETE FROM t1; +INSERT INTO t1 VALUES (4,0),(7,77); +COMMIT; +BEGIN; +DELETE FROM t1 WHERE a=7; +UPDATE t1 SET a=7; +COMMIT; +SELECT * FROM t1 FORCE INDEX(PRIMARY); +SELECT * FROM t1 FORCE INDEX(c); +DELETE FROM t1; +CHECK TABLE t1; +DROP TABLE t1; + dec $format; } disconnect analyze; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/log_alter_table.opt mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/log_alter_table.opt --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/log_alter_table.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/log_alter_table.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--innodb-log-optimize-ddl diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/purge_secondary_mdev-16222.opt mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/purge_secondary_mdev-16222.opt --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/purge_secondary_mdev-16222.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/purge_secondary_mdev-16222.opt 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ ---innodb-purge-threads=1 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/purge_secondary_mdev-16222.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/purge_secondary_mdev-16222.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/purge_secondary_mdev-16222.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/purge_secondary_mdev-16222.test 1970-01-01 00:00:00.000000000 +0000 @@ -1,53 +0,0 @@ ---source include/have_debug.inc ---source include/have_innodb.inc - ---echo # ---echo # MDEV-16222 Assertion `0' failed in row_purge_remove_sec_if_poss_leaf on table with virtual columns and indexes ---echo # - ---let $datadir= `select @@datadir` -set @saved_frequency= @@global.innodb_purge_rseg_truncate_frequency; -set global innodb_purge_rseg_truncate_frequency= 1; -set @saved_dbug= @@global.debug_dbug; -set global debug_dbug= "+d,ib_purge_virtual_mdev_16222_1,ib_purge_virtual_mdev_16222_2"; - -create table t1 ( - pk serial, vb tinyblob as (b) virtual, b tinyblob, - primary key(pk), index (vb(64))) -engine innodb; - -insert ignore into t1 (b) values ('foo'); - -select * into outfile 'load.data' from t1; -load data infile 'load.data' replace into table t1; - -set debug_sync= "now WAIT_FOR latch_released"; -set global debug_dbug= "-d,ib_purge_virtual_mdev_16222_1"; -drop table t1; ---remove_file $datadir/test/load.data - -set debug_sync= "now SIGNAL drop_started WAIT_FOR got_no_such_table"; - -create table t1 ( - pk serial, vb tinyblob as (b) virtual, b tinyblob, - primary key(pk), index (vb(64))) -engine innodb; - -insert ignore into t1 (b) values ('foo'); - -select * into outfile 'load.data' from t1; -load data infile 'load.data' replace into table t1; - -set debug_sync= "now WAIT_FOR got_no_such_table"; -# FIXME: Racing condition here: -# 1. purge thread goes into sending got_no_such_table -# 2. test thread finishes debug_sync= "RESET" below -# 3. purge thread sends got_no_such_table -set global debug_dbug= @saved_dbug; - -# cleanup -drop table t1; ---remove_file $datadir/test/load.data - -set global innodb_purge_rseg_truncate_frequency= @saved_frequency; -set debug_sync= "RESET"; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/recovery_shutdown.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/recovery_shutdown.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/recovery_shutdown.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/recovery_shutdown.test 2019-11-06 16:01:57.000000000 +0000 @@ -3,6 +3,7 @@ # Flush any open myisam tables from previous tests FLUSH TABLES; +call mtr.add_suppression("Found 1 prepared XA transactions"); --echo # --echo # MDEV-13797 InnoDB may hang if shutdown is initiated soon after startup @@ -23,6 +24,15 @@ COMMIT; let $c = $trx; +connect (con$c,localhost,root,,); +eval CREATE TABLE t$c (a SERIAL, b INT UNIQUE, c INT UNIQUE) ENGINE=InnoDB; +XA START 'x'; +eval INSERT INTO t$c (a) SELECT NULL FROM t; +eval UPDATE t$c SET a=a+$size, b=a; +eval DELETE FROM t$c; +XA END 'x'; +XA PREPARE 'x'; +dec $c; while ($c) { connect (con$c,localhost,root,,); @@ -53,12 +63,17 @@ # Perform a slow shutdown in order to roll back all recovered transactions # and to avoid locking conflicts with the DROP TABLE below. +XA RECOVER; --disable_query_log SET GLOBAL innodb_fast_shutdown=0; --source include/restart_mysqld.inc --disable_query_log let $c = $trx; +disconnect con$c; +XA ROLLBACK 'x'; +eval DROP TABLE t$c; +dec $c; while ($c) { disconnect con$c; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/stat_tables.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/stat_tables.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/stat_tables.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/stat_tables.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,17 @@ +source include/have_innodb.inc; + +# +# MDEV-20354 All but last insert ignored in InnoDB tables when table locked +# +rename table mysql.table_stats to mysql.table_stats_save; +flush tables; +set use_stat_tables= PREFERABLY; +create table t1 (a int) engine=InnoDB; +start transaction; +insert t1 values (1); +insert t1 values (2); +commit; +select * from t1; +drop table t1; +rename table mysql.table_stats_save to mysql.table_stats; +flush tables; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/temporary_table_optimization.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/temporary_table_optimization.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/temporary_table_optimization.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/temporary_table_optimization.test 2019-11-06 16:01:57.000000000 +0000 @@ -100,7 +100,7 @@ # 3. Alter of temp-table. # create temporary table t1 (t1_i int, t1_f float) engine = innodb; -insert into t1 values (1, 1.1), (2, 2.2), (3, 2.2), (4, 4.4); +insert into t1 values (1, 1.1), (2, 2.5), (3, 2.5), (4, 4.4); # explain select * from t1 where t1_i = 1; alter table t1 add unique index pri_index(t1_i); @@ -110,8 +110,8 @@ --error ER_DUP_ENTRY alter table t1 add unique index sec_index(t1_f); alter table t1 add index sec_index(t1_f); -explain select * from t1 where t1_f > 2.2; -select * from t1 where t1_f > 2.2; +explain select * from t1 where t1_f >= 2.5; +select * from t1 where t1_f >= 2.5; # alter table t1 add column (t1_c char(10)); select * from t1; @@ -120,7 +120,7 @@ alter table t1 drop column t1_f; show create table t1; --error ER_BAD_FIELD_ERROR -select * from t1 where t1_f > 2.2; +select * from t1 where t1_f >= 2.5; # --error ER_ALTER_OPERATION_NOT_SUPPORTED alter table t1 add index sec_index2(t1_c), algorithm=inplace; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/trx_id_future.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/trx_id_future.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/trx_id_future.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/trx_id_future.test 2019-11-06 16:01:57.000000000 +0000 @@ -3,17 +3,17 @@ --echo # IN THE FUTURE --echo # ---source include/not_debug.inc --source include/have_innodb.inc --source include/not_embedded.inc +SET GLOBAL innodb_purge_rseg_truncate_frequency=1; let PAGE_SIZE=`select @@innodb_page_size`; CREATE TABLE t1(a INT) row_format=redundant engine=innoDB; INSERT INTO t1 VALUES(1); let MYSQLD_DATADIR=`select @@datadir`; - +--source include/wait_all_purged.inc --source include/shutdown_mysqld.inc perl; @@ -46,6 +46,8 @@ close(FILE) || die "Unable to close $file"; EOF +# Debug assertions would fail due to the injected corruption. +--let $restart_parameters= --loose-skip-debug-assert --source include/start_mysqld.inc let SEARCH_FILE= $MYSQLTEST_VARDIR/log/mysqld.1.err; @@ -54,5 +56,9 @@ call mtr.add_suppression("\\[Warning\\] InnoDB: A transaction id in a record of table `test`\\.`t1` is newer than the system-wide maximum"); +# A debug assertion would cause a duplicated message to be output. +SET @save_count = @@max_error_count; +SET max_error_count = 1; SELECT * FROM t1; +SET max_error_count = @save_count; DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/undo_truncate_recover.opt mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/undo_truncate_recover.opt --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/undo_truncate_recover.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/undo_truncate_recover.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--innodb-purge-threads=1 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/undo_truncate_recover.test mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/undo_truncate_recover.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb/t/undo_truncate_recover.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb/t/undo_truncate_recover.test 2019-11-06 16:01:57.000000000 +0000 @@ -34,6 +34,7 @@ update t1 set c = 'InnoDB'; eval set global debug_dbug = '+d,$SEARCH_PATTERN'; commit; +drop table t1; call mtr.add_suppression("InnoDB: innodb_undo_tablespaces=0 disables dedicated undo log tablespaces"); # FIXME: remove this work-around, and generate less log! call mtr.add_suppression("InnoDB: The redo log transaction size "); @@ -43,5 +44,3 @@ # FIXME: remove this work-around, and generate less log! --let $restart_parameters= --innodb-buffer-pool-size=16m --innodb-undo-tablespaces=1 --source include/start_mysqld.inc - -drop table t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb_fts/r/concurrent_insert.result mariadb-10.3-10.3.20/mysql-test/suite/innodb_fts/r/concurrent_insert.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb_fts/r/concurrent_insert.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb_fts/r/concurrent_insert.result 2019-11-06 16:01:57.000000000 +0000 @@ -9,3 +9,26 @@ connection default; SET DEBUG_SYNC = 'RESET'; DROP TABLE t1; +# +# MDEV-19529 InnoDB hang on DROP FULLTEXT INDEX +# +CREATE TABLE t1(f1 CHAR(100), FULLTEXT(f1))ENGINE=InnoDB; +INSERT INTO t1 VALUES('test'); +CREATE TABLE t2 (f1 char(100), FULLTEXT idx1(f1))ENGINE=InnoDB; +INSERT INTO t2 VALUES('mariadb'); +connection default; +SET GLOBAL debug_dbug ='+d,fts_instrument_sync_request,ib_optimize_wq_hang'; +SET DEBUG_SYNC= 'fts_instrument_sync_request + SIGNAL drop_index_start WAIT_FOR sync_op'; +INSERT INTO t1 VALUES('Keyword'); +connect con1,localhost,root,,,; +SET DEBUG_SYNC='now WAIT_FOR drop_index_start'; +SET DEBUG_SYNC= 'norebuild_fts_drop SIGNAL sync_op WAIT_FOR fts_drop_index'; +ALTER TABLE t2 drop index idx1; +connection default; +set DEBUG_SYNC= 'now SIGNAL fts_drop_index'; +connection con1; +SET global DEBUG_DBUG=RESET; +drop table t1, t2; +connection default; +set DEBUG_SYNC=RESET; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb_fts/r/crash_recovery.result mariadb-10.3-10.3.20/mysql-test/suite/innodb_fts/r/crash_recovery.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb_fts/r/crash_recovery.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb_fts/r/crash_recovery.result 2019-11-06 16:01:57.000000000 +0000 @@ -41,9 +41,11 @@ ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'), ('MySQL vs. YourSQL','In the following database comparison ...'), ('MySQL Security','When configured properly, MySQL ...'); +connect dml, localhost, root,,; BEGIN; INSERT INTO articles (title,body) VALUES ('MySQL Tutorial','DBMS stands for DataBase ...'); +connection default; # Make durable the AUTO_INCREMENT in the above incomplete transaction. connect flush_redo_log,localhost,root,,; SET GLOBAL innodb_flush_log_at_trx_commit=1; @@ -52,6 +54,7 @@ ROLLBACK; disconnect flush_redo_log; connection default; +disconnect dml; INSERT INTO articles (title,body) VALUES ('MySQL Tutorial','DBMS stands for DataBase ...'); SELECT * FROM articles @@ -79,9 +82,39 @@ (4, 11, '1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'), (5, 6, 'MySQL vs. YourSQL','In the following database comparison ...'), (7, 4, 'MySQL Security','When configured properly, MySQL ...'); +connect dml, localhost, root,,; BEGIN; INSERT INTO articles VALUES (100, 200, 'MySQL Tutorial','DBMS stands for DataBase ...'); +connect dml2, localhost, root,,; +# +# MDEV-19073 FTS row mismatch after crash recovery +# +CREATE TABLE mdev19073(id SERIAL, title VARCHAR(200), body TEXT, +FULLTEXT(title,body)) ENGINE=InnoDB; +INSERT INTO mdev19073 (title, body) VALUES +('MySQL Tutorial', 'DBMS stands for Database...'); +CREATE FULLTEXT INDEX idx ON mdev19073(title, body); +CREATE TABLE mdev19073_2 LIKE mdev19073; +INSERT INTO mdev19073_2 (title, body) VALUES +('MySQL Tutorial', 'DBMS stands for Database...'); +INSERT INTO mdev19073 (title, body) VALUES +('MariaDB Tutorial', 'DB means Database ...'); +INSERT INTO mdev19073_2 (title, body) VALUES +('MariaDB Tutorial', 'DB means Database ...'); +SELECT * FROM mdev19073 WHERE MATCH (title, body) +AGAINST ('Database' IN NATURAL LANGUAGE MODE); +id title body +1 MySQL Tutorial DBMS stands for Database... +2 MariaDB Tutorial DB means Database ... +SELECT * FROM mdev19073_2 WHERE MATCH (title, body) +AGAINST ('Database' IN NATURAL LANGUAGE MODE); +id title body +1 MySQL Tutorial DBMS stands for Database... +2 MariaDB Tutorial DB means Database ... +connection default; +disconnect dml; +disconnect dml2; INSERT INTO articles VALUES (8, 12, 'MySQL Tutorial','DBMS stands for DataBase ...'); SELECT * FROM articles WHERE MATCH (title, body) AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE); @@ -90,3 +123,14 @@ 1 10 MySQL Tutorial DBMS stands for DataBase ... 8 12 MySQL Tutorial DBMS stands for DataBase ... DROP TABLE articles; +SELECT * FROM mdev19073 WHERE MATCH (title, body) +AGAINST ('Database' IN NATURAL LANGUAGE MODE); +id title body +1 MySQL Tutorial DBMS stands for Database... +2 MariaDB Tutorial DB means Database ... +SELECT * FROM mdev19073_2 WHERE MATCH (title, body) +AGAINST ('Database' IN NATURAL LANGUAGE MODE); +id title body +1 MySQL Tutorial DBMS stands for Database... +2 MariaDB Tutorial DB means Database ... +DROP TABLE mdev19073, mdev19073_2; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb_fts/r/fulltext_table_evict.result mariadb-10.3-10.3.20/mysql-test/suite/innodb_fts/r/fulltext_table_evict.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb_fts/r/fulltext_table_evict.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb_fts/r/fulltext_table_evict.result 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ -# -# Bug Bug #27304661 MYSQL CRASH DOING SYNC INDEX ] -# [FATAL] INNODB: SEMAPHORE WAIT HAS LASTED > 600 -# -CREATE TABLE t1 ( -id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, -f1 TEXT(500), -FULLTEXT idx (f1) -) ENGINE=InnoDB; -insert into t1 (f1) values ('fjdhfsjhf'),('dhjfhjshfj'),('dhjafjhfj'); -set @save_table_definition_cache=@@global.table_definition_cache; -set @save_table_open_cache=@@global.table_open_cache; -set global table_definition_cache=400; -set global table_open_cache= 1024; -SET @save_dbug = @@GLOBAL.debug_dbug; -SET GLOBAL DEBUG_DBUG="+d,crash_if_fts_table_is_evicted"; -set @@global.table_definition_cache=@save_table_definition_cache; -set @@global.table_open_cache=@save_table_open_cache; -drop table t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb_fts/r/innodb_fts_misc.result mariadb-10.3-10.3.20/mysql-test/suite/innodb_fts/r/innodb_fts_misc.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb_fts/r/innodb_fts_misc.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb_fts/r/innodb_fts_misc.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,3 @@ -drop table if exists t1; CREATE TABLE t1 ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, a VARCHAR(200), @@ -409,7 +408,6 @@ id 105 DROP TABLE t1; -drop table if exists t50; set names utf8; "----------Test1---------" create table t50 (s1 varchar(60) character set utf8 collate utf8_bin) engine = innodb; @@ -648,9 +646,6 @@ ŁŁŁŁ LLLL ŁŁŁŁ ŁŁŁŁ -DROP TABLE if EXISTS t2; -Warnings: -Note 1051 Unknown table 'test.t2' CREATE TABLE t2 (s1 VARCHAR(60) CHARACTER SET UTF8 COLLATE UTF8_POLISH_CI) ENGINE = InnoDB; CREATE FULLTEXT INDEX i ON t2 ( s1); INSERT INTO t2 VALUES @@ -700,19 +695,26 @@ DROP TABLE t1; "----------Test27---------" CREATE TABLE t1 (id INT,char_column VARCHAR(60)); +CREATE TABLE t2 (FTS_DOC_ID BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, a TEXT)ENGINE=InnoDB; +ALTER TABLE t2 DROP a; SET @@autocommit=0; CREATE FULLTEXT INDEX i ON t1 (char_column); INSERT INTO t1 values (1,'aaa'); -"restart server..." -# Restart the server ---source include/restart_mysqld.inc -DELETE FROM t1 WHERE MATCH(char_column) AGAINST ('bbb') -SET @@autocommit=1; -DROP TABLE t1; +CREATE TABLE mdev20987_1(f1 INT NOT NULL, PRIMARY KEY(f1))ENGINE=InnoDB; +CREATE TABLE mdev20987_2(f1 INT NOT NULL, f2 CHAR(100), +FULLTEXT(f2), +FOREIGN KEY(f1) REFERENCES mdev20987_1(f1))ENGINE=InnoDB; +INSERT INTO mdev20987_1 VALUES(1); +INSERT INTO mdev20987_2 VALUES(1, 'mariadb'); +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `FTS_DOC_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`FTS_DOC_ID`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +DELETE FROM t1 WHERE MATCH(char_column) AGAINST ('bbb'); +DROP TABLE t1, t2, mdev20987_2, mdev20987_1; "----------Test28---------" -drop table if exists `fts_test`; -Warnings: -Note 1051 Unknown table 'test.fts_test' create table `fts_test`(`a` text,fulltext key(`a`))engine=innodb; set session autocommit=0; insert into `fts_test` values (''); @@ -902,9 +904,6 @@ 2 How To Use MySQL Well After you went through a ... 3 Optimizing MySQL In this tutorial we will show ... DROP TABLE articles; -drop table if exists t1; -Warnings: -Note 1051 Unknown table 'test.t1' create table t1 (FTS_DOC_ID bigint unsigned auto_increment not null primary key, title varchar(200),body text,fulltext(title,body)) engine=innodb; insert into t1 set body='test'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb_fts/t/concurrent_insert.test mariadb-10.3-10.3.20/mysql-test/suite/innodb_fts/t/concurrent_insert.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb_fts/t/concurrent_insert.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb_fts/t/concurrent_insert.test 2019-11-06 16:01:57.000000000 +0000 @@ -18,3 +18,34 @@ SET DEBUG_SYNC = 'RESET'; DROP TABLE t1; + +--echo # +--echo # MDEV-19529 InnoDB hang on DROP FULLTEXT INDEX +--echo # + +CREATE TABLE t1(f1 CHAR(100), FULLTEXT(f1))ENGINE=InnoDB; +INSERT INTO t1 VALUES('test'); +CREATE TABLE t2 (f1 char(100), FULLTEXT idx1(f1))ENGINE=InnoDB; +INSERT INTO t2 VALUES('mariadb'); + +connection default; +SET GLOBAL debug_dbug ='+d,fts_instrument_sync_request,ib_optimize_wq_hang'; +SET DEBUG_SYNC= 'fts_instrument_sync_request + SIGNAL drop_index_start WAIT_FOR sync_op'; +send INSERT INTO t1 VALUES('Keyword'); + +connect(con1,localhost,root,,,); +SET DEBUG_SYNC='now WAIT_FOR drop_index_start'; +SET DEBUG_SYNC= 'norebuild_fts_drop SIGNAL sync_op WAIT_FOR fts_drop_index'; +send ALTER TABLE t2 drop index idx1; + +connection default; +reap; +set DEBUG_SYNC= 'now SIGNAL fts_drop_index'; + +connection con1; +reap; +SET global DEBUG_DBUG=RESET; +drop table t1, t2; +connection default; +set DEBUG_SYNC=RESET; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb_fts/t/crash_recovery.test mariadb-10.3-10.3.20/mysql-test/suite/innodb_fts/t/crash_recovery.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb_fts/t/crash_recovery.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb_fts/t/crash_recovery.test 2019-11-06 16:01:57.000000000 +0000 @@ -6,6 +6,7 @@ --source include/have_innodb.inc # The embedded server tests do not support restarting. --source include/not_embedded.inc +--source include/maybe_debug.inc FLUSH TABLES; # Following are test for crash recovery on FTS index, the first scenario @@ -73,10 +74,12 @@ ('MySQL vs. YourSQL','In the following database comparison ...'), ('MySQL Security','When configured properly, MySQL ...'); +connect(dml, localhost, root,,); BEGIN; INSERT INTO articles (title,body) VALUES ('MySQL Tutorial','DBMS stands for DataBase ...'); +connection default; --echo # Make durable the AUTO_INCREMENT in the above incomplete transaction. --connect (flush_redo_log,localhost,root,,) @@ -89,6 +92,8 @@ --source include/restart_mysqld.inc +disconnect dml; + # This insert will re-initialize the Doc ID counter, it should not crash INSERT INTO articles (title,body) VALUES ('MySQL Tutorial','DBMS stands for DataBase ...'); @@ -121,6 +126,7 @@ (5, 6, 'MySQL vs. YourSQL','In the following database comparison ...'), (7, 4, 'MySQL Security','When configured properly, MySQL ...'); +connect(dml, localhost, root,,); BEGIN; # Below we do not depend on the durability of the AUTO_INCREMENT sequence, @@ -128,7 +134,49 @@ INSERT INTO articles VALUES (100, 200, 'MySQL Tutorial','DBMS stands for DataBase ...'); +connect(dml2, localhost, root,,); + +--echo # +--echo # MDEV-19073 FTS row mismatch after crash recovery +--echo # + +CREATE TABLE mdev19073(id SERIAL, title VARCHAR(200), body TEXT, + FULLTEXT(title,body)) ENGINE=InnoDB; +INSERT INTO mdev19073 (title, body) VALUES + ('MySQL Tutorial', 'DBMS stands for Database...'); +CREATE FULLTEXT INDEX idx ON mdev19073(title, body); +CREATE TABLE mdev19073_2 LIKE mdev19073; +if ($have_debug) +{ +--disable_query_log +SET @saved_dbug = @@debug_dbug; +SET DEBUG_DBUG = '+d,fts_instrument_sync_debug'; +--enable_query_log +} +INSERT INTO mdev19073_2 (title, body) VALUES + ('MySQL Tutorial', 'DBMS stands for Database...'); +if ($have_debug) +{ +--disable_query_log +SET DEBUG_DBUG = @saved_dbug; +--enable_query_log +} + +INSERT INTO mdev19073 (title, body) VALUES + ('MariaDB Tutorial', 'DB means Database ...'); +INSERT INTO mdev19073_2 (title, body) VALUES + ('MariaDB Tutorial', 'DB means Database ...'); + +# Should return 2 rows +SELECT * FROM mdev19073 WHERE MATCH (title, body) +AGAINST ('Database' IN NATURAL LANGUAGE MODE); +SELECT * FROM mdev19073_2 WHERE MATCH (title, body) +AGAINST ('Database' IN NATURAL LANGUAGE MODE); + +connection default; --source include/restart_mysqld.inc +disconnect dml; +disconnect dml2; # This would re-initialize the FTS index and do the re-tokenization # of above records @@ -138,3 +186,10 @@ AGAINST ('Tutorial' IN NATURAL LANGUAGE MODE); DROP TABLE articles; + +# Should return 2 rows +SELECT * FROM mdev19073 WHERE MATCH (title, body) +AGAINST ('Database' IN NATURAL LANGUAGE MODE); +SELECT * FROM mdev19073_2 WHERE MATCH (title, body) +AGAINST ('Database' IN NATURAL LANGUAGE MODE); +DROP TABLE mdev19073, mdev19073_2; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb_fts/t/fulltext_table_evict.test mariadb-10.3-10.3.20/mysql-test/suite/innodb_fts/t/fulltext_table_evict.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb_fts/t/fulltext_table_evict.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb_fts/t/fulltext_table_evict.test 1970-01-01 00:00:00.000000000 +0000 @@ -1,48 +0,0 @@ ---source include/have_innodb.inc ---source include/have_debug.inc ---source include/big_test.inc - ---echo # ---echo # Bug Bug #27304661 MYSQL CRASH DOING SYNC INDEX ] ---echo # [FATAL] INNODB: SEMAPHORE WAIT HAS LASTED > 600 ---echo # - -CREATE TABLE t1 ( - id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, - f1 TEXT(500), - FULLTEXT idx (f1) - ) ENGINE=InnoDB; -insert into t1 (f1) values ('fjdhfsjhf'),('dhjfhjshfj'),('dhjafjhfj'); - ---source include/restart_mysqld.inc - -set @save_table_definition_cache=@@global.table_definition_cache; -set @save_table_open_cache=@@global.table_open_cache; - -set global table_definition_cache=400; -set global table_open_cache= 1024; - -SET @save_dbug = @@GLOBAL.debug_dbug; -SET GLOBAL DEBUG_DBUG="+d,crash_if_fts_table_is_evicted"; -#Create 1000 tables, try the best to evict t1 . - ---disable_query_log -let $loop=1000; -while($loop) -{ - eval create table t_$loop(id int, name text(100), fulltext idxt_$loop(name) )engine=innodb; - dec $loop; -} - -let $loop=1000; -while($loop) -{ - eval drop table t_$loop; - dec $loop; -} - -SET GLOBAL DEBUG_DBUG = @save_dbug; ---enable_query_log -set @@global.table_definition_cache=@save_table_definition_cache; -set @@global.table_open_cache=@save_table_open_cache; -drop table t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb_fts/t/innodb_fts_misc.test mariadb-10.3-10.3.20/mysql-test/suite/innodb_fts/t/innodb_fts_misc.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb_fts/t/innodb_fts_misc.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb_fts/t/innodb_fts_misc.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,14 +1,12 @@ -#------------------------------------------------------------------------------ +#----------------------------------------------------------------------------- # Test With alter/create/drop index -#------------------------------------------------------------------------------ +#----------------------------------------------------------------------------- + --source include/have_innodb.inc +--source include/default_charset.inc let collation=UTF8_UNICODE_CI; --source include/have_collation.inc ---disable_warnings -drop table if exists t1; ---enable_warnings - # Create FTS table CREATE TABLE t1 ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, @@ -401,10 +399,6 @@ #------------------------------------------------------------------------------ # More FTS test from peter's testing #------------------------------------------------------------------------------ ---disable_warnings -drop table if exists t50; ---enable_warnings - set names utf8; @@ -606,7 +600,6 @@ INSERT INTO t1 VALUES ('a'),('b'),('c'),('d'),('ŁŁŁŁ'),('LLLL'),(NULL),('ŁŁŁŁ ŁŁŁŁ'),('LLLLLLLL'); SELECT * FROM t1 WHERE MATCH(s1) AGAINST ('LLLL' COLLATE UTF8_UNICODE_520_CI); -DROP TABLE if EXISTS t2; CREATE TABLE t2 (s1 VARCHAR(60) CHARACTER SET UTF8 COLLATE UTF8_POLISH_CI) ENGINE = InnoDB; CREATE FULLTEXT INDEX i ON t2 ( s1); INSERT INTO t2 VALUES @@ -668,18 +661,24 @@ --echo "----------Test27---------" #27 Crash after server restart CREATE TABLE t1 (id INT,char_column VARCHAR(60)); +CREATE TABLE t2 (FTS_DOC_ID BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, a TEXT)ENGINE=InnoDB; +ALTER TABLE t2 DROP a; SET @@autocommit=0; CREATE FULLTEXT INDEX i ON t1 (char_column); INSERT INTO t1 values (1,'aaa'); -echo "restart server..." -# Restart the server + +CREATE TABLE mdev20987_1(f1 INT NOT NULL, PRIMARY KEY(f1))ENGINE=InnoDB; +CREATE TABLE mdev20987_2(f1 INT NOT NULL, f2 CHAR(100), + FULLTEXT(f2), + FOREIGN KEY(f1) REFERENCES mdev20987_1(f1))ENGINE=InnoDB; +INSERT INTO mdev20987_1 VALUES(1); +INSERT INTO mdev20987_2 VALUES(1, 'mariadb'); --source include/restart_mysqld.inc +SHOW CREATE TABLE t2; DELETE FROM t1 WHERE MATCH(char_column) AGAINST ('bbb'); -SET @@autocommit=1; -DROP TABLE t1; +DROP TABLE t1, t2, mdev20987_2, mdev20987_1; --echo "----------Test28---------" -drop table if exists `fts_test`; create table `fts_test`(`a` text,fulltext key(`a`))engine=innodb; set session autocommit=0; insert into `fts_test` values (''); @@ -868,8 +867,6 @@ # Test for Bug 13940669 - 64901: INNODB: ASSERTION FAILURE IN # THREAD 34387022112 IN FILE REM0CMP.CC LINE 5 -drop table if exists t1; - create table t1 (FTS_DOC_ID bigint unsigned auto_increment not null primary key, title varchar(200),body text,fulltext(title,body)) engine=innodb; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb_gis/r/1.result mariadb-10.3-10.3.20/mysql-test/suite/innodb_gis/r/1.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb_gis/r/1.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb_gis/r/1.result 2019-11-06 16:01:57.000000000 +0000 @@ -796,11 +796,15 @@ drop function fn3; create table t1(pt POINT); alter table t1 add primary key pti(pt); +Warnings: +Warning 1280 Name 'pti' ignored for PRIMARY key. drop table t1; create table t1(pt GEOMETRY); alter table t1 add primary key pti(pt); ERROR 42000: BLOB/TEXT column 'pt' used in key specification without a key length alter table t1 add primary key pti(pt(20)); +Warnings: +Warning 1280 Name 'pti' ignored for PRIMARY key. drop table t1; create table t1 select ST_GeomFromText('point(1 1)'); desc t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb_gis/r/gis.result mariadb-10.3-10.3.20/mysql-test/suite/innodb_gis/r/gis.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb_gis/r/gis.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb_gis/r/gis.result 2019-11-06 16:01:57.000000000 +0000 @@ -792,11 +792,15 @@ drop function fn3; create table t1(pt POINT); alter table t1 add primary key pti(pt); +Warnings: +Warning 1280 Name 'pti' ignored for PRIMARY key. drop table t1; create table t1(pt GEOMETRY); alter table t1 add primary key pti(pt); ERROR 42000: BLOB/TEXT column 'pt' used in key specification without a key length alter table t1 add primary key pti(pt(20)); +Warnings: +Warning 1280 Name 'pti' ignored for PRIMARY key. drop table t1; create table t1 select ST_GeomFromText('point(1 1)'); desc t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb_gis/r/point_basic.result mariadb-10.3-10.3.20/mysql-test/suite/innodb_gis/r/point_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb_gis/r/point_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb_gis/r/point_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1524,7 +1524,7 @@ ERROR HY000: Can't create table `test`.`child` (errno: 150 "Foreign key constraint is incorrectly formed") show warnings; Level Code Message -Warning 150 Alter table '`test`.`child`' with foreign key constraint failed. There is no index in the referenced table where the referenced columns appear as the first columns near 'FOREIGN KEY(p) REFERENCES parent(p)'. +Warning 150 Alter table `test`.`child` with foreign key constraint failed. There is no index in the referenced table where the referenced columns appear as the first columns near 'FOREIGN KEY(p) REFERENCES parent(p)'. Error 1005 Can't create table `test`.`child` (errno: 150 "Foreign key constraint is incorrectly formed") Warning 1215 Cannot add foreign key constraint for `child` ALTER TABLE parent DROP INDEX idx1; @@ -1532,7 +1532,7 @@ Got one of the listed errors show warnings; Level Code Message -Warning 150 Alter table '`test`.`child`' with foreign key constraint failed. There is no index in the referenced table where the referenced columns appear as the first columns near 'FOREIGN KEY(p) REFERENCES parent(p)'. +Warning 150 Alter table `test`.`child` with foreign key constraint failed. There is no index in the referenced table where the referenced columns appear as the first columns near 'FOREIGN KEY(p) REFERENCES parent(p)'. Error 1005 Can't create table `test`.`child` (errno: 150 "Foreign key constraint is incorrectly formed") Warning 1215 Cannot add foreign key constraint for `child` ALTER TABLE child DROP INDEX idx2; @@ -1540,7 +1540,7 @@ Got one of the listed errors show warnings; Level Code Message -Warning 150 Alter table '`test`.`child`' with foreign key constraint failed. There is only prefix index in the referenced table where the referenced columns appear as the first columns near 'FOREIGN KEY(p) REFERENCES parent(p)'. +Warning 150 Alter table `test`.`child` with foreign key constraint failed. There is only prefix index in the referenced table where the referenced columns appear as the first columns near 'FOREIGN KEY(p) REFERENCES parent(p)'. Error 1005 Can't create table `test`.`child` (errno: 150 "Foreign key constraint is incorrectly formed") Warning 1215 Cannot add foreign key constraint for `child` DROP TABLE child, parent; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb_gis/r/rtree_compress2.result mariadb-10.3-10.3.20/mysql-test/suite/innodb_gis/r/rtree_compress2.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb_gis/r/rtree_compress2.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb_gis/r/rtree_compress2.result 2019-11-06 16:01:57.000000000 +0000 @@ -8,7 +8,9 @@ set i = i + 1; end while; end| +begin; CALL insert_t1(70000); +commit; check table t1; Table Op Msg_type Msg_text test.t1 check status OK diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb_gis/t/rtree_compress2.test mariadb-10.3-10.3.20/mysql-test/suite/innodb_gis/t/rtree_compress2.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb_gis/t/rtree_compress2.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb_gis/t/rtree_compress2.test 2019-11-06 16:01:57.000000000 +0000 @@ -27,7 +27,9 @@ delimiter ;| # Test level 3 rtree. +begin; CALL insert_t1(70000); +commit; --let $shutdown_timeout=0 --source include/restart_mysqld.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb_gis/t/update_root.test mariadb-10.3-10.3.20/mysql-test/suite/innodb_gis/t/update_root.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb_gis/t/update_root.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb_gis/t/update_root.test 2019-11-06 16:01:57.000000000 +0000 @@ -8,6 +8,8 @@ --source include/have_debug.inc --source include/big_test.inc --source include/not_valgrind.inc +--source include/have_64bit.inc + # Create table with R-tree index. create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb_zip/r/page_size.result mariadb-10.3-10.3.20/mysql-test/suite/innodb_zip/r/page_size.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb_zip/r/page_size.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb_zip/r/page_size.result 2019-11-06 16:01:57.000000000 +0000 @@ -515,6 +515,8 @@ KEY pk(sk01,sk02,sk03,sk04,sk05,sk06,sk07,sk08, sk09,sk10,sk11,sk12,sk13,sk14,sk15,sk16)) ROW_FORMAT=Redundant ENGINE=InnoDB; +Warnings: +Warning 1280 Name 'pk' ignored for PRIMARY key. SET @r = repeat('a', 48); INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r, @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r); @@ -546,6 +548,8 @@ KEY pk(sk01,sk02,sk03,sk04,sk05,sk06,sk07,sk08, sk09,sk10,sk11,sk12,sk13,sk14,sk15,sk16)) ROW_FORMAT=Compressed KEY_BLOCK_SIZE=4 ENGINE=InnoDB; +Warnings: +Warning 1280 Name 'pk' ignored for PRIMARY key. SET @r = repeat('a', 48); INSERT INTO t1 VALUES(@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r, @r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r,@r); diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb_zip/r/prefix_index_liftedlimit.result mariadb-10.3-10.3.20/mysql-test/suite/innodb_zip/r/prefix_index_liftedlimit.result --- mariadb-10.3-10.3.17/mysql-test/suite/innodb_zip/r/prefix_index_liftedlimit.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb_zip/r/prefix_index_liftedlimit.result 2019-11-06 16:01:57.000000000 +0000 @@ -1070,6 +1070,8 @@ col_1_varchar VARCHAR (4000) , col_2_varchar VARCHAR (4000) , PRIMARY KEY `prefix_primary` (col_1_varchar(3072)) ) ROW_FORMAT=DYNAMIC, engine = innodb; +Warnings: +Warning 1280 Name 'prefix_primary' ignored for PRIMARY key. INSERT INTO worklog5743 VALUES(REPEAT("a", 4000) , REPEAT("o", 4000)); CREATE INDEX prefix_idx ON worklog5743(col_1_varchar (3072)); INSERT INTO worklog5743 VALUES(REPEAT("b", 4000) , REPEAT("p", 4000)); @@ -1101,6 +1103,8 @@ col_1_varchar VARCHAR (4000) , col_2_varchar VARCHAR (4000) , PRIMARY KEY `prefix_primary` (col_1_varchar(3072)) ) ROW_FORMAT=DYNAMIC, engine = innodb; +Warnings: +Warning 1280 Name 'prefix_primary' ignored for PRIMARY key. INSERT INTO worklog5743 VALUES(REPEAT("a", 4000) , REPEAT("o", 4000)); CREATE INDEX prefix_idx ON worklog5743(col_1_varchar (3072)); INSERT INTO worklog5743 VALUES(REPEAT("b", 4000) , REPEAT("p", 4000)); diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test mariadb-10.3-10.3.20/mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test --- mariadb-10.3-10.3.17/mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/innodb_zip/t/wl5522_debug_zip.test 2019-11-06 16:01:57.000000000 +0000 @@ -10,7 +10,8 @@ # Avoid CrashReporter popup on Mac --source include/not_crashrep.inc --- source include/innodb_page_size_small.inc +--source include/innodb_page_size_small.inc +--source include/default_charset.inc call mtr.add_suppression("InnoDB: Tablespace for table .* is set as discarded."); call mtr.add_suppression("InnoDB: Cannot calculate statistics for table .* because the .ibd file is missing. Please refer to .* for how to resolve the issue."); diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/json/r/json_no_table.result mariadb-10.3-10.3.20/mysql-test/suite/json/r/json_no_table.result --- mariadb-10.3-10.3.17/mysql-test/suite/json/r/json_no_table.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/json/r/json_no_table.result 2019-11-06 16:01:57.000000000 +0000 @@ -2396,7 +2396,7 @@ {"a": true, "b": false, "c": null} select json_valid( json_object( '"a"', 1 ) ); json_valid( json_object( '"a"', 1 ) ) -0 +1 select json_object( REPEAT('a', 64 * 1024), 1 ); json_object( REPEAT('a', 64 * 1024), 1 ) {"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa": 1} diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/maria/icp.result mariadb-10.3-10.3.20/mysql-test/suite/maria/icp.result --- mariadb-10.3-10.3.17/mysql-test/suite/maria/icp.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/maria/icp.result 2019-11-06 16:01:57.000000000 +0000 @@ -167,7 +167,7 @@ ORDER BY ts DESC LIMIT 2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 2 Using where +1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 4 Using where DROP TABLE t1; # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/maria/icp.test mariadb-10.3-10.3.20/mysql-test/suite/maria/icp.test --- mariadb-10.3-10.3.17/mysql-test/suite/maria/icp.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/maria/icp.test 2019-11-06 16:01:57.000000000 +0000 @@ -3,6 +3,7 @@ # --source include/have_maria.inc +--source include/default_optimizer_switch.inc set @save_storage_engine= @@storage_engine; set storage_engine=Maria; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/maria/lock.result mariadb-10.3-10.3.20/mysql-test/suite/maria/lock.result --- mariadb-10.3-10.3.17/mysql-test/suite/maria/lock.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/maria/lock.result 2019-11-06 16:01:57.000000000 +0000 @@ -109,6 +109,39 @@ ERROR 23000: Duplicate entry 'foo' for key 'f1' ALTER TABLE t1 ADD KEY (f2); DROP TABLE t1; +# +# MDEV-10748 Server crashes in ha_maria::implicit_commit upon ALTER TABLE +# +CREATE TABLE t1 (a INT, b INT) ENGINE=Aria; +SELECT * FROM t1; +a b +CREATE TABLE t2 (c INT) ENGINE=Aria; +LOCK TABLE t2 READ, t1 WRITE; +ALTER TABLE t1 CHANGE b a INT; +ERROR 42S21: Duplicate column name 'a' +UNLOCK TABLES; +DROP TABLE t1, t2; +# +# MDEV-10748 Server crashes in ha_maria::implicit_commit upon ALTER TABLE +# +CREATE TABLE t1 (a INT) ENGINE=Aria; +CREATE TABLE t2 (b INT) ENGINE=Aria; +LOCK TABLES t1 WRITE, t2 AS t2a WRITE, t2 WRITE; +ALTER TABLE t2 CHANGE b c VARBINARY(30000), ALGORITHM=COPY; +UNLOCK TABLES; +DROP TABLE t1, t2; +# More complex test, from RQG +CREATE TABLE t1 (a INT) ENGINE=Aria; +CREATE TABLE t2 (b INT) ENGINE=Aria; +CREATE OR REPLACE VIEW v2 AS SELECT * FROM t2 ; +LOCK TABLES t1 WRITE, t2 AS t2a WRITE, v2 WRITE CONCURRENT, t2 WRITE; +ALTER TABLE t1 FORCE; +ALTER TABLE t2 CHANGE b c VARBINARY(30000), ALGORITHM=INPLACE; +ERROR 0A000: ALGORITHM=INPLACE is not supported for this operation. Try ALGORITHM=COPY +ALTER TABLE t2 CHANGE b c VARBINARY(30000), ALGORITHM=COPY; +UNLOCK TABLES; +DROP VIEW v2; +DROP TABLE t1, t2; # End of 10.2 tests # # MDEV-14669 Assertion `file->trn == trn' failed in ha_maria::start_stmt diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/maria/lock.test mariadb-10.3-10.3.20/mysql-test/suite/maria/lock.test --- mariadb-10.3-10.3.17/mysql-test/suite/maria/lock.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/maria/lock.test 2019-11-06 16:01:57.000000000 +0000 @@ -118,6 +118,52 @@ ALTER TABLE t1 ADD KEY (f2); DROP TABLE t1; + +--echo # +--echo # MDEV-10748 Server crashes in ha_maria::implicit_commit upon ALTER TABLE +--echo # + +CREATE TABLE t1 (a INT, b INT) ENGINE=Aria; +SELECT * FROM t1; +CREATE TABLE t2 (c INT) ENGINE=Aria; + +LOCK TABLE t2 READ, t1 WRITE; +--error ER_DUP_FIELDNAME +ALTER TABLE t1 CHANGE b a INT; + +# Cleanup +UNLOCK TABLES; +DROP TABLE t1, t2; + +--echo # +--echo # MDEV-10748 Server crashes in ha_maria::implicit_commit upon ALTER TABLE +--echo # + +CREATE TABLE t1 (a INT) ENGINE=Aria; +CREATE TABLE t2 (b INT) ENGINE=Aria; + +LOCK TABLES t1 WRITE, t2 AS t2a WRITE, t2 WRITE; +ALTER TABLE t2 CHANGE b c VARBINARY(30000), ALGORITHM=COPY; +UNLOCK TABLES; +DROP TABLE t1, t2; + +--echo # More complex test, from RQG + +CREATE TABLE t1 (a INT) ENGINE=Aria; +CREATE TABLE t2 (b INT) ENGINE=Aria; +CREATE OR REPLACE VIEW v2 AS SELECT * FROM t2 ; + +LOCK TABLES t1 WRITE, t2 AS t2a WRITE, v2 WRITE CONCURRENT, t2 WRITE; + +ALTER TABLE t1 FORCE; +--error ER_ALTER_OPERATION_NOT_SUPPORTED +ALTER TABLE t2 CHANGE b c VARBINARY(30000), ALGORITHM=INPLACE; +ALTER TABLE t2 CHANGE b c VARBINARY(30000), ALGORITHM=COPY; + +UNLOCK TABLES; +DROP VIEW v2; +DROP TABLE t1, t2; + --echo # End of 10.2 tests --echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/maria/maria3.result mariadb-10.3-10.3.20/mysql-test/suite/maria/maria3.result --- mariadb-10.3-10.3.17/mysql-test/suite/maria/maria3.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/maria/maria3.result 2019-11-06 16:01:57.000000000 +0000 @@ -300,28 +300,29 @@ Table Op Msg_type Msg_text test.t1 check status OK drop table t1; -select lower(variable_name) as Variable_name, Variable_value as Value from information_schema.session_variables where variable_name like "aria%" and variable_name not like "aria_used_for_temp_tables" order by 1; +select lower(variable_name) as Variable_name, Variable_value as Value from information_schema.session_variables where variable_name like "aria%" order by 1; Variable_name Value -aria_block_size 8192 -aria_checkpoint_interval 30 -aria_checkpoint_log_activity 1048576 -aria_encrypt_tables OFF -aria_force_start_after_recovery_failures 0 -aria_group_commit none -aria_group_commit_interval 0 -aria_log_file_size 4294959104 -aria_log_purge_type immediate -aria_max_sort_file_size 9223372036853727232 -aria_pagecache_age_threshold 300 -aria_pagecache_buffer_size 8388608 -aria_pagecache_division_limit 100 -aria_pagecache_file_hash_size 512 -aria_page_checksum OFF -aria_recover_options BACKUP,QUICK -aria_repair_threads 1 -aria_sort_buffer_size 268434432 -aria_stats_method nulls_unequal -aria_sync_log_dir NEWFILE +aria_block_size # +aria_checkpoint_interval # +aria_checkpoint_log_activity # +aria_encrypt_tables # +aria_force_start_after_recovery_failures # +aria_group_commit # +aria_group_commit_interval # +aria_log_file_size # +aria_log_purge_type # +aria_max_sort_file_size # +aria_pagecache_age_threshold # +aria_pagecache_buffer_size # +aria_pagecache_division_limit # +aria_pagecache_file_hash_size # +aria_page_checksum # +aria_recover_options # +aria_repair_threads # +aria_sort_buffer_size # +aria_stats_method # +aria_sync_log_dir # +aria_used_for_temp_tables # show status like 'aria%'; Variable_name Value Aria_pagecache_blocks_not_flushed # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/maria/maria3.test mariadb-10.3-10.3.20/mysql-test/suite/maria/maria3.test --- mariadb-10.3-10.3.17/mysql-test/suite/maria/maria3.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/maria/maria3.test 2019-11-06 16:01:57.000000000 +0000 @@ -258,9 +258,8 @@ check table t1 extended; drop table t1; -# Fix if we are using safemalloc ---replace_result 8388572 8388600 134217692 134217720 -select lower(variable_name) as Variable_name, Variable_value as Value from information_schema.session_variables where variable_name like "aria%" and variable_name not like "aria_used_for_temp_tables" order by 1; +--replace_column 2 # +select lower(variable_name) as Variable_name, Variable_value as Value from information_schema.session_variables where variable_name like "aria%" order by 1; --replace_column 2 # show status like 'aria%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/maria/maria-big.test mariadb-10.3-10.3.20/mysql-test/suite/maria/maria-big.test --- mariadb-10.3-10.3.17/mysql-test/suite/maria/maria-big.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/maria/maria-big.test 2019-11-06 16:01:57.000000000 +0000 @@ -69,6 +69,6 @@ --disable_result_log --disable_query_log set global aria_log_file_size=default; -set global max_allowed_packet=default; +eval set global max_allowed_packet= $default_max_allowed_packet; --enable_result_log --enable_query_log diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/maria/maria-gis-recovery.test mariadb-10.3-10.3.20/mysql-test/suite/maria/maria-gis-recovery.test --- mariadb-10.3-10.3.17/mysql-test/suite/maria/maria-gis-recovery.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/maria/maria-gis-recovery.test 2019-11-06 16:01:57.000000000 +0000 @@ -5,6 +5,7 @@ --source include/have_debug.inc --source include/have_maria.inc --source include/have_geometry.inc +--source include/default_charset.inc set global aria_log_file_size=4294967295; let $MARIA_LOG=../../tmp; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/maria/maria-no-logging.test mariadb-10.3-10.3.20/mysql-test/suite/maria/maria-no-logging.test --- mariadb-10.3-10.3.17/mysql-test/suite/maria/maria-no-logging.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/maria/maria-no-logging.test 2019-11-06 16:01:57.000000000 +0000 @@ -3,6 +3,7 @@ --source include/have_maria.inc # can't restart server in embedded --source include/not_embedded.inc +--source include/default_charset.inc set global aria_log_file_size=4294959104; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/maria/maria-recover.test mariadb-10.3-10.3.20/mysql-test/suite/maria/maria-recover.test --- mariadb-10.3-10.3.17/mysql-test/suite/maria/maria-recover.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/maria/maria-recover.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,7 @@ # Test of the --aria-recover-options option. --source include/have_maria.inc +--source include/default_charset.inc --disable_query_log # Note: \\. matches a single period. We use '.' as directory separator to diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/maria/maria-recovery.test mariadb-10.3-10.3.20/mysql-test/suite/maria/maria-recovery.test --- mariadb-10.3-10.3.17/mysql-test/suite/maria/maria-recovery.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/maria/maria-recovery.test 2019-11-06 16:01:57.000000000 +0000 @@ -4,6 +4,7 @@ # Binary must be compiled with debug for crash to occur --source include/have_debug.inc --source include/have_maria.inc +--source include/default_charset.inc set global aria_log_file_size=4294959104; let $MARIA_LOG=../../tmp; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/maria/partition.result mariadb-10.3-10.3.20/mysql-test/suite/maria/partition.result --- mariadb-10.3-10.3.17/mysql-test/suite/maria/partition.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/maria/partition.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,4 @@ +CREATE TABLE t (a INT, KEY(a)) ENGINE=Aria PARTITION BY KEY(a) PARTITIONS 2; +SELECT * FROM t PARTITION (p1); +a +DROP TABLE t; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/maria/partition.test mariadb-10.3-10.3.20/mysql-test/suite/maria/partition.test --- mariadb-10.3-10.3.17/mysql-test/suite/maria/partition.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/maria/partition.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,11 @@ +--source include/have_partition.inc + +# +# MDEV-19254 +# Server crashes in maria_status / ha_maria::info upon SELECT with partition +# pruning +# + +CREATE TABLE t (a INT, KEY(a)) ENGINE=Aria PARTITION BY KEY(a) PARTITIONS 2; +SELECT * FROM t PARTITION (p1); +DROP TABLE t; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/mariabackup/big_innodb_log.result mariadb-10.3-10.3.20/mysql-test/suite/mariabackup/big_innodb_log.result --- mariadb-10.3-10.3.17/mysql-test/suite/mariabackup/big_innodb_log.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/mariabackup/big_innodb_log.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,30 @@ +# Kill the server +CREATE TABLE t(i INT) ENGINE InnoDB; +INSERT INTO t VALUES +(0), (1), (2), (3), (4), (5), (6), (7), (8), (9), +(0), (1), (2), (3), (4), (5), (6), (7), (8), (9), +(0), (1), (2), (3), (4), (5), (6), (7), (8), (9), +(0), (1), (2), (3), (4), (5), (6), (7), (8), (9), +(0), (1), (2), (3), (4), (5), (6), (7), (8), (9), +(0), (1), (2), (3), (4), (5), (6), (7), (8), (9), +(0), (1), (2), (3), (4), (5), (6), (7), (8), (9), +(0), (1), (2), (3), (4), (5), (6), (7), (8), (9), +(0), (1), (2), (3), (4), (5), (6), (7), (8), (9), +(0), (1), (2), (3), (4), (5), (6), (7), (8), (9); +# xtrabackup backup, execute the following query after test.t is copied: +# BEGIN NOT ATOMIC INSERT INTO test.t SELECT * FROM test.t; UPDATE test.t SET i = 10 WHERE i = 0; DELETE FROM test.t WHERE i = 1; END +SELECT count(*) FROM t WHERE i = 0; +count(*) +0 +# xtrabackup prepare +# shutdown server +# remove datadir +# xtrabackup move back +# restart server +SELECT count(*) FROM t WHERE i = 0; +count(*) +0 +Ok +Ok +DROP TABLE t; +# Kill the server diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/mariabackup/big_innodb_log.test mariadb-10.3-10.3.20/mysql-test/suite/mariabackup/big_innodb_log.test --- mariadb-10.3-10.3.17/mysql-test/suite/mariabackup/big_innodb_log.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/mariabackup/big_innodb_log.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,88 @@ +# The general reason why innodb redo log file is limited by 512G is that +# log_block_convert_lsn_to_no() returns value limited by 1G. But there is no +# need to have unique log block numbers in log group. This test forces innodb +# to generate redo log files with non-unique log block numbers and tests +# recovery process with such numbers. +--source include/have_innodb.inc +--source include/have_debug.inc + +--let MYSQLD_DATADIR= `select @@datadir` +let $MYSQLD_BOOTSTRAP_CMD= $MYSQLD_BOOTSTRAP_CMD --datadir=$MYSQLD_DATADIR --debug-dbug=+d,innodb_small_log_block_no_limit; + +--source include/kill_mysqld.inc +--rmdir $MYSQLD_DATADIR +--mkdir $MYSQLD_DATADIR +--mkdir $MYSQLD_DATADIR/mysql +--mkdir $MYSQLD_DATADIR/test +--exec $MYSQLD_BOOTSTRAP_CMD < $MYSQL_BOOTSTRAP_SQL_FILE >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1 +let $old_restart_parameters=$restart_parameters; +let $restart_parameters= $old_restart_parameters --debug-dbug=+d,innodb_small_log_block_no_limit; +--source include/start_mysqld.inc + +CREATE TABLE t(i INT) ENGINE InnoDB; +INSERT INTO t VALUES + (0), (1), (2), (3), (4), (5), (6), (7), (8), (9), + (0), (1), (2), (3), (4), (5), (6), (7), (8), (9), + (0), (1), (2), (3), (4), (5), (6), (7), (8), (9), + (0), (1), (2), (3), (4), (5), (6), (7), (8), (9), + (0), (1), (2), (3), (4), (5), (6), (7), (8), (9), + (0), (1), (2), (3), (4), (5), (6), (7), (8), (9), + (0), (1), (2), (3), (4), (5), (6), (7), (8), (9), + (0), (1), (2), (3), (4), (5), (6), (7), (8), (9), + (0), (1), (2), (3), (4), (5), (6), (7), (8), (9), + (0), (1), (2), (3), (4), (5), (6), (7), (8), (9); + +--let after_copy_test_t=BEGIN NOT ATOMIC INSERT INTO test.t SELECT * FROM test.t; UPDATE test.t SET i = 10 WHERE i = 0; DELETE FROM test.t WHERE i = 1; END + +--echo # xtrabackup backup, execute the following query after test.t is copied: +--echo # $after_copy_test_t +let $targetdir=$MYSQLTEST_VARDIR/tmp/backup; + +--disable_result_log +exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --parallel=10 --target-dir=$targetdir --dbug=+d,mariabackup_events,innodb_small_log_block_no_limit; +--enable_result_log + +--let $total_before=`SELECT count(*) FROM t` +SELECT count(*) FROM t WHERE i = 0; +--let $updated_before=`SELECT count(*) FROM t WHERE i = 10` + +echo # xtrabackup prepare; +--disable_result_log +exec $XTRABACKUP --prepare --target-dir=$targetdir --dbug=+d,innodb_small_log_block_no_limit; +--source include/restart_and_restore.inc +--enable_result_log + +--let $total_after=`SELECT count(*) FROM t` +SELECT count(*) FROM t WHERE i = 0; +--let $updated_after=`SELECT count(*) FROM t WHERE i = 10` + +if ($total_before == $total_after) { +--echo Ok +} +if ($total_before != $total_after) { +--echo Failed +} +if ($updated_before == $updated_after) { +--echo Ok +} +if ($updated_before != $updated_after) { +--echo Failed +} + +DROP TABLE t; +rmdir $targetdir; +--source include/kill_mysqld.inc +--rmdir $MYSQLD_DATADIR + +perl; +use lib "lib"; +use My::Handles { suppress_init_messages => 1 }; +use My::File::Path; +my $install_db_dir = ($ENV{MTR_PARALLEL} == 1) ? + "$ENV{'MYSQLTEST_VARDIR'}/install.db" : + "$ENV{'MYSQLTEST_VARDIR'}/../install.db"; +copytree($install_db_dir, $ENV{'MYSQLD_DATADIR'}); +EOF + +--let $restart_parameters= $old_restart_parameters +--source include/start_mysqld.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/mariabackup/extra_lsndir_stream.result mariadb-10.3-10.3.20/mysql-test/suite/mariabackup/extra_lsndir_stream.result --- mariadb-10.3-10.3.17/mysql-test/suite/mariabackup/extra_lsndir_stream.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/mariabackup/extra_lsndir_stream.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,2 @@ +xtrabackup_checkpoints +xtrabackup_info diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/mariabackup/extra_lsndir_stream.test mariadb-10.3-10.3.20/mysql-test/suite/mariabackup/extra_lsndir_stream.test --- mariadb-10.3-10.3.17/mysql-test/suite/mariabackup/extra_lsndir_stream.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/mariabackup/extra_lsndir_stream.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,7 @@ +let $extra_lsndir=$MYSQLTEST_VARDIR/tmp/extra_lsndir; +mkdir $extra_lsndir; +--disable_result_log +exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --stream=xbstream --extra-lsndir=$extra_lsndir > /dev/null; +--enable_result_log +list_files $extra_lsndir; +rmdir $extra_lsndir; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/mariabackup/mdev-18438.result mariadb-10.3-10.3.20/mysql-test/suite/mariabackup/mdev-18438.result --- mariadb-10.3-10.3.17/mysql-test/suite/mariabackup/mdev-18438.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/mariabackup/mdev-18438.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +stream.xb diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/mariabackup/mdev-18438.test mariadb-10.3-10.3.20/mysql-test/suite/mariabackup/mdev-18438.test --- mariadb-10.3-10.3.17/mysql-test/suite/mariabackup/mdev-18438.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/mariabackup/mdev-18438.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,11 @@ +let $basedir=$MYSQLTEST_VARDIR/tmp/mdev-18438; +mkdir $basedir; +exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup --extra-lsndir=$basedir/extra_lsndir --stream=xbstream > $basedir/stream.xb; +mkdir $basedir/backup; +rmdir $basedir/extra_lsndir; +--disable_result_log +exec $XBSTREAM -x -C $basedir/backup < $basedir/stream.xb; +--enable_result_log +rmdir $basedir/backup; +list_files $basedir; +rmdir $basedir; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/mariabackup/partial.test mariadb-10.3-10.3.20/mysql-test/suite/mariabackup/partial.test --- mariadb-10.3-10.3.17/mysql-test/suite/mariabackup/partial.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/mariabackup/partial.test 2019-11-06 16:01:57.000000000 +0000 @@ -12,7 +12,7 @@ echo # xtrabackup backup; -let $targetdir=$MYSQLTEST_VARDIR/tmp/backup; +let targetdir=$MYSQLTEST_VARDIR/tmp/backup; --disable_result_log exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --backup "--tables=test.*1" --target-dir=$targetdir; --enable_result_log @@ -25,13 +25,27 @@ write_file $targetdir/test/junk.frm; EOF +let server_cnf=$targetdir/server.cnf; +copy_file $MYSQLTEST_VARDIR/my.cnf $server_cnf; + +# Emulate server config file turnes on binary logs +perl; +my $binlog_path="$ENV{'targetdir'}/mysqld-bin"; +my $config_path=$ENV{'server_cnf'}; +open(my $fd, '>>', "$config_path"); +print $fd "\n[mysqld]\n"; +print $fd "log-bin=$binlog_path\n"; +close $fd; +EOF echo # xtrabackup prepare; --disable_result_log -exec $XTRABACKUP --defaults-file=$MYSQLTEST_VARDIR/my.cnf --defaults-group-suffix=.1 --prepare --export --target-dir=$targetdir; +exec $XTRABACKUP --defaults-file=$server_cnf --defaults-group-suffix=.1 --prepare --export --target-dir=$targetdir; --enable_result_log list_files $targetdir/test *.cfg; +# There must not be binary logs created on --prepare step +list_files $targetdir/ mysqld-bin.*; let $MYSQLD_DATADIR= `select @@datadir`; ALTER TABLE t1 DISCARD TABLESPACE; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/multi_source/disabled.def mariadb-10.3-10.3.20/mysql-test/suite/multi_source/disabled.def --- mariadb-10.3-10.3.17/mysql-test/suite/multi_source/disabled.def 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/multi_source/disabled.def 2019-11-06 16:01:57.000000000 +0000 @@ -1 +0,0 @@ -mdev-8874 : MDEV-20101 Assertion failure diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/multi_source/multisource.result mariadb-10.3-10.3.20/mysql-test/suite/multi_source/multisource.result --- mariadb-10.3-10.3.17/mysql-test/suite/multi_source/multisource.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/multi_source/multisource.result 2019-11-06 16:01:57.000000000 +0000 @@ -47,6 +47,8 @@ create database db1; use db1; create table t1 (i int auto_increment, f1 varchar(16), primary key pk (i,f1)) engine=MyISAM; +Warnings: +Warning 1280 Name 'pk' ignored for PRIMARY key. insert into t1 (f1) values ('one'),('two'); connection slave; select * from db1.t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/part_exch_qa_4.inc mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/part_exch_qa_4.inc --- mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/part_exch_qa_4.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/part_exch_qa_4.inc 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,5 @@ +--source include/default_charset.inc + CREATE DATABASE test_2; USE test; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/part_exch_qa_8.inc mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/part_exch_qa_8.inc --- mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/part_exch_qa_8.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/part_exch_qa_8.inc 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,5 @@ +--source include/default_charset.inc + CREATE USER test2@localhost; --source include/not_embedded.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/partition_crash_add.inc mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/partition_crash_add.inc --- mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/partition_crash_add.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/partition_crash_add.inc 2019-11-06 16:01:57.000000000 +0000 @@ -1,33 +1,34 @@ # To be used with partition mgm commands like # ALTER TABLE t1 ADD PARTITION (LIST/RANGE PARTITIONING). --echo # Crash testing ADD PARTITION +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,crash_add_partition_1"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_add_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_2"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_add_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_3"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_add_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_4"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_add_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_5"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_add_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_6"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_add_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_7"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_add_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_8"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_add_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_9"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_add_partition_9"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_10"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_add_partition_10"; +SET SESSION debug_dbug=@save_dbug; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/partition_crash_change.inc mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/partition_crash_change.inc --- mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/partition_crash_change.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/partition_crash_change.inc 2019-11-06 16:01:57.000000000 +0000 @@ -2,39 +2,40 @@ # ALTER TABLE t1 COALESCE/REBUILD/REORGANIZE PARTITION. --echo # Test change partition (REORGANIZE/REBUILD/COALESCE --echo # or ADD HASH PARTITION). +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,crash_change_partition_1"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_change_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_2"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_change_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_3"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_change_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_4"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_change_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_5"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_change_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_6"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_change_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_7"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_change_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_8"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_change_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_9"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_change_partition_9"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_10"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_change_partition_10"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_11"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_change_partition_11"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_12"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_change_partition_12"; +SET SESSION debug_dbug=@save_dbug; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/partition_crash_drop.inc mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/partition_crash_drop.inc --- mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/partition_crash_drop.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/partition_crash_drop.inc 2019-11-06 16:01:57.000000000 +0000 @@ -1,30 +1,31 @@ # To be used with partition mgm commands like # ALTER TABLE t1 DROP PARTITION. --echo # Test DROP PARTITION +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_1"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_drop_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_2"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_drop_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_3"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_drop_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_4"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_drop_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_5"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_drop_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_6"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_drop_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_7"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_drop_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_8"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_drop_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_9"; --source suite/parts/inc/partition_crash.inc -SET SESSION debug_dbug="-d,crash_drop_partition_9"; +SET SESSION debug_dbug=@save_dbug; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/partition_crash_exchange.inc mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/partition_crash_exchange.inc --- mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/partition_crash_exchange.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/partition_crash_exchange.inc 2019-11-06 16:01:57.000000000 +0000 @@ -1,29 +1,30 @@ # To be used with WL#4445: EXCHANGE PARTITION WITH TABLE. +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_1"; --source suite/parts/inc/partition_crash_t2.inc -SET SESSION debug_dbug="-d,exchange_partition_abort_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_2"; --source suite/parts/inc/partition_crash_t2.inc -SET SESSION debug_dbug="-d,exchange_partition_abort_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_3"; --source suite/parts/inc/partition_crash_t2.inc -SET SESSION debug_dbug="-d,exchange_partition_abort_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_4"; --source suite/parts/inc/partition_crash_t2.inc -SET SESSION debug_dbug="-d,exchange_partition_abort_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_5"; --source suite/parts/inc/partition_crash_t2.inc -SET SESSION debug_dbug="-d,exchange_partition_abort_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_6"; --source suite/parts/inc/partition_crash_t2.inc -SET SESSION debug_dbug="-d,exchange_partition_abort_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_7"; --source suite/parts/inc/partition_crash_t2.inc -SET SESSION debug_dbug="-d,exchange_partition_abort_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_8"; --source suite/parts/inc/partition_crash_t2.inc -SET SESSION debug_dbug="-d,exchange_partition_abort_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_9"; --source suite/parts/inc/partition_crash_t2.inc -SET SESSION debug_dbug="-d,exchange_partition_abort_9"; +SET SESSION debug_dbug=@save_dbug; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/partition_fail_add.inc mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/partition_fail_add.inc --- mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/partition_fail_add.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/partition_fail_add.inc 2019-11-06 16:01:57.000000000 +0000 @@ -1,33 +1,34 @@ # To be used with partition mgm commands like # ALTER TABLE t1 ADD PARTITION (LIST/RANGE PARTITIONING). --echo # Error recovery testing ADD PARTITION +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,fail_add_partition_1"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_add_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_2"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_add_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_3"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_add_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_4"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_add_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_5"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_add_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_6"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_add_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_7"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_add_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_8"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_add_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_9"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_add_partition_9"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_10"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_add_partition_10"; +SET SESSION debug_dbug=@save_dbug; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/partition_fail_change.inc mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/partition_fail_change.inc --- mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/partition_fail_change.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/partition_fail_change.inc 2019-11-06 16:01:57.000000000 +0000 @@ -2,39 +2,40 @@ # ALTER TABLE t1 COALESCE/REBUILD/REORGANIZE PARTITION. --echo # Error recovery change partition (REORGANIZE/REBUILD/COALESCE --echo # or ADD HASH PARTITION). +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,fail_change_partition_1"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_change_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_2"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_change_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_3"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_change_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_4"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_change_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_5"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_change_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_6"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_change_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_7"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_change_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_8"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_change_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_9"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_change_partition_9"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_10"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_change_partition_10"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_11"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_change_partition_11"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_12"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_change_partition_12"; +SET SESSION debug_dbug=@save_dbug; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/partition_fail_drop.inc mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/partition_fail_drop.inc --- mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/partition_fail_drop.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/partition_fail_drop.inc 2019-11-06 16:01:57.000000000 +0000 @@ -1,30 +1,31 @@ # To be used with partition mgm commands like # ALTER TABLE t1 DROP PARTITION. --echo # Error recovery DROP PARTITION +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_1"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_drop_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_2"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_drop_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_3"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_drop_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_4"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_drop_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_5"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_drop_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_6"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_drop_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_7"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_drop_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_8"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_drop_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_9"; --source suite/parts/inc/partition_fail.inc -SET SESSION debug_dbug="-d,fail_drop_partition_9"; +SET SESSION debug_dbug=@save_dbug; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/partition_fail_exchange.inc mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/partition_fail_exchange.inc --- mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/partition_fail_exchange.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/partition_fail_exchange.inc 2019-11-06 16:01:57.000000000 +0000 @@ -1,27 +1,28 @@ +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_1"; --source suite/parts/inc/partition_fail_t2.inc -SET SESSION debug_dbug="-d,exchange_partition_fail_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_2"; --source suite/parts/inc/partition_fail_t2.inc -SET SESSION debug_dbug="-d,exchange_partition_fail_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_3"; --source suite/parts/inc/partition_fail_t2.inc -SET SESSION debug_dbug="-d,exchange_partition_fail_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_4"; --source suite/parts/inc/partition_fail_t2.inc -SET SESSION debug_dbug="-d,exchange_partition_fail_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_5"; --source suite/parts/inc/partition_fail_t2.inc -SET SESSION debug_dbug="-d,exchange_partition_fail_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_6"; --source suite/parts/inc/partition_fail_t2.inc -SET SESSION debug_dbug="-d,exchange_partition_fail_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_7"; --source suite/parts/inc/partition_fail_t2.inc -SET SESSION debug_dbug="-d,exchange_partition_fail_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_8"; --source suite/parts/inc/partition_fail_t2.inc -SET SESSION debug_dbug="-d,exchange_partition_fail_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_9"; --source suite/parts/inc/partition_fail_t2.inc -SET SESSION debug_dbug="-d,exchange_partition_fail_9"; +SET SESSION debug_dbug=@save_dbug; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/partition_mgm.inc mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/partition_mgm.inc --- mariadb-10.3-10.3.17/mysql-test/suite/parts/inc/partition_mgm.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/inc/partition_mgm.inc 2019-11-06 16:01:57.000000000 +0000 @@ -16,6 +16,7 @@ # Original Author: mattiasj # # Original Date: 2008-06-27 # ################################################################################ +--source include/default_charset.inc --enable_abort_on_error let $old_db= `SELECT DATABASE()`; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/r/alter_data_directory_innodb.result mariadb-10.3-10.3.20/mysql-test/suite/parts/r/alter_data_directory_innodb.result --- mariadb-10.3-10.3.17/mysql-test/suite/parts/r/alter_data_directory_innodb.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/r/alter_data_directory_innodb.result 2019-11-06 16:01:57.000000000 +0000 @@ -18,6 +18,8 @@ (PARTITION `p1` DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here' ENGINE = InnoDB, PARTITION `p2` DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here' ENGINE = InnoDB) ALTER TABLE t ADD PRIMARY KEY pk(a), ALGORITHM=INPLACE; +Warnings: +Warning 1280 Name 'pk' ignored for PRIMARY key. SHOW CREATE TABLE t; Table Create Table t CREATE TABLE `t` ( @@ -39,6 +41,8 @@ SET @TMP = @@GLOBAL.INNODB_FILE_PER_TABLE; SET GLOBAL INNODB_FILE_PER_TABLE=OFF; ALTER TABLE t ADD PRIMARY KEY pk(a), ALGORITHM=INPLACE; +Warnings: +Warning 1280 Name 'pk' ignored for PRIMARY key. SHOW CREATE TABLE t; Table Create Table t CREATE TABLE `t` ( @@ -53,6 +57,9 @@ PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' ENGINE = INNODB, PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' ENGINE = INNODB ); +Warnings: +Warning 1982 option ignored for InnoDB partition +Warning 1982 option ignored for InnoDB partition SHOW CREATE TABLE t; Table Create Table t CREATE TABLE `t` ( diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/r/partition_debug_innodb.result mariadb-10.3-10.3.20/mysql-test/suite/parts/r/partition_debug_innodb.result --- mariadb-10.3-10.3.17/mysql-test/suite/parts/r/partition_debug_innodb.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/r/partition_debug_innodb.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,3 @@ -DROP TABLE IF EXISTS t1; call mtr.add_suppression("InnoDB: Warning: allocated tablespace .*, old maximum was"); call mtr.add_suppression("InnoDB: Error: table .* does not exist in the InnoDB internal"); call mtr.add_suppression("InnoDB: Warning: MySQL is trying to drop table "); @@ -12,6 +11,7 @@ call mtr.add_suppression("Attempting backtrace. You can use the following information to find out"); flush tables; # Crash testing ADD PARTITION +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,crash_add_partition_1"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -79,7 +79,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_2"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -149,7 +149,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_3"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -219,7 +219,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_4"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -289,7 +289,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_5"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -360,7 +360,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_6"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -431,7 +431,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_7"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -502,7 +502,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_8"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -575,7 +575,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_9"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -646,7 +646,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_9"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_10"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -717,8 +717,9 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_10"; +SET SESSION debug_dbug=@save_dbug; # Error recovery testing ADD PARTITION +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,fail_add_partition_1"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -843,7 +844,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_2"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -968,7 +969,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_3"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -1093,7 +1094,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_4"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -1218,7 +1219,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_5"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -1343,7 +1344,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_6"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -1468,7 +1469,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_7"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -1593,7 +1594,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_8"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -1722,7 +1723,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_9"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -1851,7 +1852,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_9"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_10"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -1980,8 +1981,9 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_10"; +SET SESSION debug_dbug=@save_dbug; # Test DROP PARTITION +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_1"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -2048,7 +2050,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_2"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -2117,7 +2119,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_3"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -2186,7 +2188,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_4"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -2249,7 +2251,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_5"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -2312,7 +2314,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_6"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -2375,7 +2377,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_7"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -2436,7 +2438,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_8"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -2496,7 +2498,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_9"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -2556,8 +2558,9 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_9"; +SET SESSION debug_dbug=@save_dbug; # Error recovery DROP PARTITION +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_1"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -2680,7 +2683,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_2"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -2803,7 +2806,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_3"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -2926,7 +2929,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_4"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -3037,7 +3040,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_5"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -3148,7 +3151,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_6"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -3259,7 +3262,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_7"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -3370,7 +3373,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_8"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -3481,7 +3484,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_9"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -3592,9 +3595,10 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_9"; +SET SESSION debug_dbug=@save_dbug; # Test change partition (REORGANIZE/REBUILD/COALESCE # or ADD HASH PARTITION). +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,crash_change_partition_1"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -3663,7 +3667,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_2"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -3734,7 +3738,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_3"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -3805,7 +3809,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_4"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -3878,7 +3882,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_5"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -3951,7 +3955,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_6"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -4024,7 +4028,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_7"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -4099,7 +4103,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_8"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -4174,7 +4178,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_9"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -4247,7 +4251,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_9"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_10"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -4320,7 +4324,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_10"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_11"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -4392,7 +4396,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_11"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_12"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -4464,9 +4468,10 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_12"; +SET SESSION debug_dbug=@save_dbug; # Error recovery change partition (REORGANIZE/REBUILD/COALESCE # or ADD HASH PARTITION). +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,fail_change_partition_1"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -4593,7 +4598,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_2"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -4720,7 +4725,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_3"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -4847,7 +4852,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_4"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -4974,7 +4979,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_5"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -5101,7 +5106,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_6"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -5228,7 +5233,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_7"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -5359,7 +5364,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_8"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -5490,7 +5495,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_9"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -5621,7 +5626,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_9"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_10"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -5752,7 +5757,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_10"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_11"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -5883,7 +5888,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_11"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_12"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'InnoDB' @@ -6014,13 +6019,14 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_12"; +SET SESSION debug_dbug=@save_dbug; # # WL#4445: EXCHANGE PARTITION WITH TABLE # Verify ddl_log and InnoDB in case of crashing. call mtr.add_suppression("InnoDB: Warning: allocated tablespace .*, old maximum was "); call mtr.add_suppression("Attempting backtrace. You can use the following information to find out"); call mtr.add_suppression("table .* does not exist in the InnoDB internal"); +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_1"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = InnoDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6128,7 +6134,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_2"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = InnoDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6236,7 +6242,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_3"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = InnoDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6344,7 +6350,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_4"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = InnoDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6452,7 +6458,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_5"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = InnoDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6560,7 +6566,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_6"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = InnoDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6668,7 +6674,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_7"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = InnoDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6776,7 +6782,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_8"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = InnoDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6884,7 +6890,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_9"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = InnoDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6992,7 +6998,8 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_9"; +SET SESSION debug_dbug=@save_dbug; +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_1"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = InnoDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -7092,7 +7099,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_2"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = InnoDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -7192,7 +7199,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_3"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = InnoDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -7292,7 +7299,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_4"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = InnoDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -7392,7 +7399,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_5"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = InnoDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -7492,7 +7499,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_6"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = InnoDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -7592,7 +7599,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_7"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = InnoDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -7692,7 +7699,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_8"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = InnoDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -7792,7 +7799,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_9"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = InnoDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -7892,4 +7899,4 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_9"; +SET SESSION debug_dbug=@save_dbug; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/r/partition_debug_myisam.result mariadb-10.3-10.3.20/mysql-test/suite/parts/r/partition_debug_myisam.result --- mariadb-10.3-10.3.17/mysql-test/suite/parts/r/partition_debug_myisam.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/r/partition_debug_myisam.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,3 @@ -DROP TABLE IF EXISTS t1; # Test crash and failure recovery in fast_alter_partition_table. # # Bug#53676: Unexpected errors and possible table corruption on @@ -9,6 +8,7 @@ call mtr.add_suppression("Attempting backtrace. You can use the following information to find out"); flush tables; # Crash testing ADD PARTITION +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,crash_add_partition_1"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -82,7 +82,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_2"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -158,7 +158,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_3"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -234,7 +234,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_4"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -310,7 +310,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_5"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -388,7 +388,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_6"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -466,7 +466,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_7"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -544,7 +544,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_8"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -625,7 +625,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_9"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -704,7 +704,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_9"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_10"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -783,8 +783,9 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_10"; +SET SESSION debug_dbug=@save_dbug; # Error recovery testing ADD PARTITION +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,fail_add_partition_1"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -917,7 +918,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_2"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -1050,7 +1051,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_3"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -1183,7 +1184,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_4"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -1316,7 +1317,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_5"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -1449,7 +1450,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_6"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -1582,7 +1583,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_7"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -1715,7 +1716,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_8"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -1854,7 +1855,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_9"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -1993,7 +1994,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_9"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_10"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -2132,8 +2133,9 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_10"; +SET SESSION debug_dbug=@save_dbug; # Test DROP PARTITION +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_1"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -2206,7 +2208,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_2"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -2281,7 +2283,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_3"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -2356,7 +2358,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_4"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -2424,7 +2426,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_5"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -2492,7 +2494,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_6"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -2560,7 +2562,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_7"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -2626,7 +2628,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_8"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -2690,7 +2692,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_9"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -2754,8 +2756,9 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_9"; +SET SESSION debug_dbug=@save_dbug; # Error recovery DROP PARTITION +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_1"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -2886,7 +2889,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_2"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -3017,7 +3020,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_3"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -3148,7 +3151,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_4"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -3265,7 +3268,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_5"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -3382,7 +3385,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_6"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -3499,7 +3502,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_7"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -3616,7 +3619,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_8"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -3733,7 +3736,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_9"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -3850,9 +3853,10 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_9"; +SET SESSION debug_dbug=@save_dbug; # Test change partition (REORGANIZE/REBUILD/COALESCE # or ADD HASH PARTITION). +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,crash_change_partition_1"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -3927,7 +3931,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_2"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -4004,7 +4008,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_3"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -4081,7 +4085,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_4"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -4162,7 +4166,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_5"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -4243,7 +4247,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_6"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -4324,7 +4328,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_7"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -4408,7 +4412,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_8"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -4492,7 +4496,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_9"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -4574,7 +4578,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_9"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_10"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -4656,7 +4660,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_10"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_11"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -4736,7 +4740,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_11"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_12"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -4816,9 +4820,10 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_12"; +SET SESSION debug_dbug=@save_dbug; # Error recovery change partition (REORGANIZE/REBUILD/COALESCE # or ADD HASH PARTITION). +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,fail_change_partition_1"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -4953,7 +4958,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_2"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -5088,7 +5093,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_3"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -5223,7 +5228,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_4"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -5358,7 +5363,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_5"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -5493,7 +5498,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_6"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -5628,7 +5633,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_7"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -5769,7 +5774,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_8"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -5910,7 +5915,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_9"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -6051,7 +6056,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_9"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_10"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -6192,7 +6197,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_10"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_11"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -6333,7 +6338,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_11"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_12"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'MyISAM' @@ -6474,4 +6479,4 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_12"; +SET SESSION debug_dbug=@save_dbug; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/r/partition_debug.result mariadb-10.3-10.3.20/mysql-test/suite/parts/r/partition_debug.result --- mariadb-10.3-10.3.17/mysql-test/suite/parts/r/partition_debug.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/r/partition_debug.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,3 @@ -DROP TABLE IF EXISTS t1; # # Bug#13737949: CRASH IN HA_PARTITION::INDEX_INIT # Bug#18694052: SERVER CRASH IN HA_PARTITION::INIT_RECORD_PRIORITY_QUEUE @@ -7,10 +6,11 @@ PARTITION BY HASH (a) PARTITIONS 3; INSERT INTO t1 VALUES (1, "1"), (2, "2"), (3, "3"), (4, "Four"), (5, "Five"), (6, "Six"), (7, "Seven"), (8, "Eight"), (9, "Nine"); +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,ha_partition_fail_index_init"; SELECT * FROM t1 WHERE b = "Seven"; ERROR HY000: Table has no partition for value 0 -SET SESSION debug_dbug="-d,ha_partition_fail_index_init"; +SET SESSION debug_dbug=@save_dbug; SELECT * FROM t1 WHERE b = "Seven"; a b 7 Seven @@ -20,6 +20,7 @@ # Verify ddl_log in case of crashing. call mtr.add_suppression("Attempting backtrace. You can use the following information to find out"); call mtr.add_suppression('InnoDB: The log sequence numbers [0-9]+ and [0-9]+ in ibdata files do not match the log sequence number [0-9]+ in the ib_logfiles!'); +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_1"; CREATE TABLE t2 (a INT, b VARCHAR(64)); INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -134,7 +135,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_2"; CREATE TABLE t2 (a INT, b VARCHAR(64)); INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -249,7 +250,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_3"; CREATE TABLE t2 (a INT, b VARCHAR(64)); INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -364,7 +365,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_4"; CREATE TABLE t2 (a INT, b VARCHAR(64)); INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -479,7 +480,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_5"; CREATE TABLE t2 (a INT, b VARCHAR(64)); INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -594,7 +595,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_6"; CREATE TABLE t2 (a INT, b VARCHAR(64)); INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -709,7 +710,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_7"; CREATE TABLE t2 (a INT, b VARCHAR(64)); INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -824,7 +825,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_8"; CREATE TABLE t2 (a INT, b VARCHAR(64)); INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -939,7 +940,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_9"; CREATE TABLE t2 (a INT, b VARCHAR(64)); INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -1054,7 +1055,8 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_9"; +SET SESSION debug_dbug=@save_dbug; +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_1"; CREATE TABLE t2 (a INT, b VARCHAR(64)); INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -1158,7 +1160,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_2"; CREATE TABLE t2 (a INT, b VARCHAR(64)); INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -1262,7 +1264,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_3"; CREATE TABLE t2 (a INT, b VARCHAR(64)); INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -1366,7 +1368,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_4"; CREATE TABLE t2 (a INT, b VARCHAR(64)); INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -1470,7 +1472,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_5"; CREATE TABLE t2 (a INT, b VARCHAR(64)); INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -1574,7 +1576,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_6"; CREATE TABLE t2 (a INT, b VARCHAR(64)); INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -1678,7 +1680,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_7"; CREATE TABLE t2 (a INT, b VARCHAR(64)); INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -1782,7 +1784,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_8"; CREATE TABLE t2 (a INT, b VARCHAR(64)); INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -1886,7 +1888,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_9"; CREATE TABLE t2 (a INT, b VARCHAR(64)); INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -1990,4 +1992,4 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_9"; +SET SESSION debug_dbug=@save_dbug; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/r/reorganize_partition_innodb.result mariadb-10.3-10.3.20/mysql-test/suite/parts/r/reorganize_partition_innodb.result --- mariadb-10.3-10.3.17/mysql-test/suite/parts/r/reorganize_partition_innodb.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/r/reorganize_partition_innodb.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,160 @@ +# +# MDEV-15953 Alter InnoDB Partitioned Table Moves Files (which were originally not in the datadir) to the datadir +# +CREATE TABLE t ( +a INT NOT NULL +) ENGINE=INNODB +PARTITION BY HASH (a) ( +PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here/' ENGINE = INNODB, +PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here/' ENGINE = INNODB +); +INSERT INTO t VALUES (1); +SHOW CREATE TABLE t; +Table Create Table +t CREATE TABLE `t` ( + `a` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 + PARTITION BY HASH (`a`) +(PARTITION `p1` DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here' ENGINE = InnoDB, + PARTITION `p2` DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here' ENGINE = InnoDB) +ALTER TABLE t ADD PRIMARY KEY pk(a), ALGORITHM=INPLACE; +Warnings: +Warning 1280 Name 'pk' ignored for PRIMARY key. +SHOW CREATE TABLE t; +Table Create Table +t CREATE TABLE `t` ( + `a` int(11) NOT NULL, + PRIMARY KEY (`a`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 + PARTITION BY HASH (`a`) +(PARTITION `p1` DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here' ENGINE = InnoDB, + PARTITION `p2` DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here' ENGINE = InnoDB) +ALTER TABLE t DROP PRIMARY KEY, ALGORITHM=COPY; +SHOW CREATE TABLE t; +Table Create Table +t CREATE TABLE `t` ( + `a` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 + PARTITION BY HASH (`a`) +(PARTITION `p1` DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here' ENGINE = InnoDB, + PARTITION `p2` DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here' ENGINE = InnoDB) +SET @TMP = @@GLOBAL.INNODB_FILE_PER_TABLE; +SET GLOBAL INNODB_FILE_PER_TABLE=OFF; +ALTER TABLE t ADD PRIMARY KEY pk(a), ALGORITHM=INPLACE; +Warnings: +Warning 1280 Name 'pk' ignored for PRIMARY key. +SHOW CREATE TABLE t; +Table Create Table +t CREATE TABLE `t` ( + `a` int(11) NOT NULL, + PRIMARY KEY (`a`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 + PARTITION BY HASH (`a`) +(PARTITION `p1` DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here' ENGINE = InnoDB, + PARTITION `p2` DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here' ENGINE = InnoDB) +SET GLOBAL INNODB_FILE_PER_TABLE=@TMP; +ALTER TABLE t REORGANIZE PARTITION p1,p2 INTO ( +PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' ENGINE = INNODB, +PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' ENGINE = INNODB +); +Warnings: +Warning 1982 option ignored for InnoDB partition +Warning 1982 option ignored for InnoDB partition +SHOW CREATE TABLE t; +Table Create Table +t CREATE TABLE `t` ( + `a` int(11) NOT NULL, + PRIMARY KEY (`a`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 + PARTITION BY HASH (`a`) +(PARTITION `p1` DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here' ENGINE = InnoDB, + PARTITION `p2` DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here' ENGINE = InnoDB) +ALTER TABLE t REORGANIZE PARTITION p1,p2 INTO ( +PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/', +PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' +); +Warnings: +Warning 1982 option ignored for InnoDB partition +Warning 1982 option ignored for InnoDB partition +SHOW CREATE TABLE t; +Table Create Table +t CREATE TABLE `t` ( + `a` int(11) NOT NULL, + PRIMARY KEY (`a`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 + PARTITION BY HASH (`a`) +(PARTITION `p1` DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here' ENGINE = InnoDB, + PARTITION `p2` DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here' ENGINE = InnoDB) +ALTER TABLE t REORGANIZE PARTITION p1,p2 INTO ( +PARTITION p1 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' ENGINE = INNODB, +PARTITION p2 INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' ENGINE = INNODB +); +Warnings: +Warning 1982 option ignored for InnoDB partition +Warning 1982 option ignored for InnoDB partition +SHOW CREATE TABLE t; +Table Create Table +t CREATE TABLE `t` ( + `a` int(11) NOT NULL, + PRIMARY KEY (`a`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 + PARTITION BY HASH (`a`) +(PARTITION `p1` DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here' ENGINE = InnoDB, + PARTITION `p2` DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here' ENGINE = InnoDB) +DROP TABLE t; +SET @strict = @@innodb_strict_mode; +SET innodb_strict_mode=OFF; +CREATE TABLE t ( +a INT NOT NULL +) ENGINE=INNODB +PARTITION BY RANGE (a) +SUBPARTITION BY HASH (a) +SUBPARTITIONS 2 +( +PARTITION p1 VALUES LESS THAN (7) +DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here/' + INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here/' + ENGINE = INNODB, +PARTITION p2 VALUES LESS THAN MAXVALUE +DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here/' + INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_here/' + ENGINE = INNODB +); +Warnings: +Warning 1618 option ignored +Warning 1618 option ignored +Warning 1618 option ignored +Warning 1618 option ignored +SET innodb_strict_mode=@strict; +ALTER TABLE t +REORGANIZE PARTITION p1,p2 INTO +( +PARTITION p1 VALUES LESS THAN (7) +DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' + INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' + ENGINE = INNODB, +PARTITION p2 VALUES LESS THAN MAXVALUE +DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' + INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' + ENGINE = INNODB +); +Warnings: +Warning 1982 option ignored for InnoDB partition +Warning 1982 option ignored for InnoDB partition +Warning 1982 option ignored for InnoDB partition +Warning 1982 option ignored for InnoDB partition +Warning 1982 option ignored for InnoDB partition +Warning 1982 option ignored for InnoDB partition +Warning 1982 option ignored for InnoDB partition +Warning 1982 option ignored for InnoDB partition +SHOW CREATE TABLE t; +Table Create Table +t CREATE TABLE `t` ( + `a` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 + PARTITION BY RANGE (`a`) +SUBPARTITION BY HASH (`a`) +SUBPARTITIONS 2 +(PARTITION `p1` VALUES LESS THAN (7) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' ENGINE = InnoDB, + PARTITION `p2` VALUES LESS THAN MAXVALUE DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' ENGINE = InnoDB) +DROP TABLE t; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/t/partition_debug_innodb.test mariadb-10.3-10.3.20/mysql-test/suite/parts/t/partition_debug_innodb.test --- mariadb-10.3-10.3.17/mysql-test/suite/parts/t/partition_debug_innodb.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/t/partition_debug_innodb.test 2019-11-06 16:01:57.000000000 +0000 @@ -9,10 +9,6 @@ # Crash tests don't work with embedded --source include/not_embedded.inc ---disable_warnings -DROP TABLE IF EXISTS t1; ---enable_warnings - --let $DATADIR= `SELECT @@datadir;` # Waiting for wl#6723 @@ -34,6 +30,7 @@ ALTER TABLE t1 ADD INDEX new_b_index (b); ALTER TABLE t1 DROP INDEX new_b_index; +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug = "+d,ha_partition_fail_final_add_index"; --error ER_NO_PARTITION_FOR_GIVEN_VALUE @@ -49,7 +46,7 @@ --sorted_result SELECT * FROM t1; -SET SESSION debug_dbug = "-d,ha_partition_fail_final_add_index"; +SET SESSION debug_dbug = @save_dbug; SHOW CREATE TABLE t1; DROP TABLE t1; } diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/t/partition_debug_myisam.test mariadb-10.3-10.3.20/mysql-test/suite/parts/t/partition_debug_myisam.test --- mariadb-10.3-10.3.17/mysql-test/suite/parts/t/partition_debug_myisam.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/t/partition_debug_myisam.test 2019-11-06 16:01:57.000000000 +0000 @@ -6,10 +6,6 @@ --source include/not_valgrind.inc --source include/not_embedded.inc ---disable_warnings -DROP TABLE IF EXISTS t1; ---enable_warnings - --let $DATADIR= `SELECT @@datadir;` let $engine= 'MyISAM'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/t/partition_debug.test mariadb-10.3-10.3.20/mysql-test/suite/parts/t/partition_debug.test --- mariadb-10.3-10.3.17/mysql-test/suite/parts/t/partition_debug.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/t/partition_debug.test 2019-11-06 16:01:57.000000000 +0000 @@ -8,10 +8,6 @@ # Crash tests don't work with embedded --source include/not_embedded.inc ---disable_warnings -DROP TABLE IF EXISTS t1; ---enable_warnings - # Partitioning test that require debug features --echo # @@ -22,10 +18,11 @@ PARTITION BY HASH (a) PARTITIONS 3; INSERT INTO t1 VALUES (1, "1"), (2, "2"), (3, "3"), (4, "Four"), (5, "Five"), (6, "Six"), (7, "Seven"), (8, "Eight"), (9, "Nine"); +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,ha_partition_fail_index_init"; --error ER_NO_PARTITION_FOR_GIVEN_VALUE SELECT * FROM t1 WHERE b = "Seven"; -SET SESSION debug_dbug="-d,ha_partition_fail_index_init"; +SET SESSION debug_dbug=@save_dbug; SELECT * FROM t1 WHERE b = "Seven"; DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/parts/t/reorganize_partition_innodb.test mariadb-10.3-10.3.20/mysql-test/suite/parts/t/reorganize_partition_innodb.test --- mariadb-10.3-10.3.17/mysql-test/suite/parts/t/reorganize_partition_innodb.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/parts/t/reorganize_partition_innodb.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,103 @@ +--source include/have_innodb.inc +--source include/have_partition.inc + +--echo # +--echo # MDEV-15953 Alter InnoDB Partitioned Table Moves Files (which were originally not in the datadir) to the datadir +--echo # + +mkdir $MYSQLTEST_VARDIR/tmp/partitions_here; + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval CREATE TABLE t ( + a INT NOT NULL + ) ENGINE=INNODB +PARTITION BY HASH (a) ( + PARTITION p1 DATA DIRECTORY = '$MYSQLTEST_VARDIR/tmp/partitions_here/' ENGINE = INNODB, + PARTITION p2 DATA DIRECTORY = '$MYSQLTEST_VARDIR/tmp/partitions_here/' ENGINE = INNODB +); +INSERT INTO t VALUES (1); + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +SHOW CREATE TABLE t; +ALTER TABLE t ADD PRIMARY KEY pk(a), ALGORITHM=INPLACE; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +SHOW CREATE TABLE t; +ALTER TABLE t DROP PRIMARY KEY, ALGORITHM=COPY; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +SHOW CREATE TABLE t; +SET @TMP = @@GLOBAL.INNODB_FILE_PER_TABLE; +SET GLOBAL INNODB_FILE_PER_TABLE=OFF; +ALTER TABLE t ADD PRIMARY KEY pk(a), ALGORITHM=INPLACE; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +SHOW CREATE TABLE t; +SET GLOBAL INNODB_FILE_PER_TABLE=@TMP; + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval ALTER TABLE t REORGANIZE PARTITION p1,p2 INTO ( + PARTITION p1 DATA DIRECTORY = '$MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' ENGINE = INNODB, + PARTITION p2 DATA DIRECTORY = '$MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' ENGINE = INNODB +); +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +SHOW CREATE TABLE t; + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval ALTER TABLE t REORGANIZE PARTITION p1,p2 INTO ( + PARTITION p1 DATA DIRECTORY = '$MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/', + PARTITION p2 DATA DIRECTORY = '$MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' +); +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +SHOW CREATE TABLE t; + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval ALTER TABLE t REORGANIZE PARTITION p1,p2 INTO ( + PARTITION p1 INDEX DIRECTORY = '$MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' ENGINE = INNODB, + PARTITION p2 INDEX DIRECTORY = '$MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' ENGINE = INNODB +); +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +SHOW CREATE TABLE t; + +DROP TABLE t; + +SET @strict = @@innodb_strict_mode; +SET innodb_strict_mode=OFF; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval CREATE TABLE t ( + a INT NOT NULL + ) ENGINE=INNODB +PARTITION BY RANGE (a) + SUBPARTITION BY HASH (a) + SUBPARTITIONS 2 + ( + PARTITION p1 VALUES LESS THAN (7) + DATA DIRECTORY = '$MYSQLTEST_VARDIR/tmp/partitions_here/' + INDEX DIRECTORY = '$MYSQLTEST_VARDIR/tmp/partitions_here/' + ENGINE = INNODB, + PARTITION p2 VALUES LESS THAN MAXVALUE + DATA DIRECTORY = '$MYSQLTEST_VARDIR/tmp/partitions_here/' + INDEX DIRECTORY = '$MYSQLTEST_VARDIR/tmp/partitions_here/' + ENGINE = INNODB + ); +SET innodb_strict_mode=@strict; + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval ALTER TABLE t +REORGANIZE PARTITION p1,p2 INTO +( + PARTITION p1 VALUES LESS THAN (7) + DATA DIRECTORY = '$MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' + INDEX DIRECTORY = '$MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' + ENGINE = INNODB, + PARTITION p2 VALUES LESS THAN MAXVALUE + DATA DIRECTORY = '$MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' + INDEX DIRECTORY = '$MYSQLTEST_VARDIR/tmp/partitions_somewhere_else/' + ENGINE = INNODB +); + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +SHOW CREATE TABLE t; + +DROP TABLE t; + +rmdir $MYSQLTEST_VARDIR/tmp/partitions_here/test; +rmdir $MYSQLTEST_VARDIR/tmp/partitions_here; + diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/include/hostcache_set_state.inc mariadb-10.3-10.3.20/mysql-test/suite/perfschema/include/hostcache_set_state.inc --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/include/hostcache_set_state.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/include/hostcache_set_state.inc 2019-11-06 16:01:57.000000000 +0000 @@ -9,10 +9,10 @@ # Print critical setup -select @@global.debug; -select @@global.max_connect_errors; -select @@global.max_user_connections; -select @@global.max_connections; +#select @@global.debug; +#select @@global.max_connect_errors; +#select @@global.max_user_connections; +#select @@global.max_connections; # Make sure there are no remaining records that can change the test outcome @@ -20,4 +20,3 @@ select `User`, `Host` from mysql.`user` where `user` like '192.%'; select `User`, `Host` from mysql.`user` where `user` like '2001:%'; select `User`, `Host` from mysql.`user` where `user` like 'santa.claus.%'; - diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/include/stage_setup.inc mariadb-10.3-10.3.20/mysql-test/suite/perfschema/include/stage_setup.inc --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/include/stage_setup.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/include/stage_setup.inc 2019-11-06 16:01:57.000000000 +0000 @@ -121,10 +121,12 @@ where thread_id = my_thread_id and nesting_event_id = my_statement_id order by event_id asc; + # Ignore query cache as it may not be enabled select username, event_name, nesting_event_type from performance_schema.events_stages_history where thread_id = my_thread_id - and nesting_event_id = my_statement_id + and nesting_event_id = my_statement_id and + event_name not like "%query cache%" order by event_id asc; end; else diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_again_allow.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_again_allow.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_again_allow.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_again_allow.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_again_deny.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_again_deny.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_again_deny.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_again_deny.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_bad_allow.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_bad_allow.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_bad_allow.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_bad_allow.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_bad_deny.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_bad_deny.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_bad_deny.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_bad_deny.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_good_allow.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_good_allow.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_good_allow.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_good_allow.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_good_deny.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_good_deny.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_good_deny.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_good_deny.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_noname_allow.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_noname_allow.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_noname_allow.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_noname_allow.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_noname_deny.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_noname_deny.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_noname_deny.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_addrinfo_noname_deny.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_auth_plugin.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_auth_plugin.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_auth_plugin.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_auth_plugin.result 2019-11-06 16:01:57.000000000 +0000 @@ -2,18 +2,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_blocked.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_blocked.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_blocked.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_blocked.result 2019-11-06 16:01:57.000000000 +0000 @@ -2,18 +2,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_format.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_format.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_format.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_format.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_max_con.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_max_con.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_max_con.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_max_con.result 2019-11-06 16:01:57.000000000 +0000 @@ -2,18 +2,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -1024 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_nameinfo_again_allow.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_nameinfo_again_allow.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_nameinfo_again_allow.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_nameinfo_again_allow.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_nameinfo_again_deny.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_nameinfo_again_deny.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_nameinfo_again_deny.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_nameinfo_again_deny.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_nameinfo_noname_allow.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_nameinfo_noname_allow.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_nameinfo_noname_allow.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_nameinfo_noname_allow.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_nameinfo_noname_deny.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_nameinfo_noname_deny.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_nameinfo_noname_deny.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_nameinfo_noname_deny.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_passwd.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_passwd.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_passwd.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_passwd.result 2019-11-06 16:01:57.000000000 +0000 @@ -2,18 +2,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_ssl.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_ssl.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv4_ssl.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv4_ssl.result 2019-11-06 16:01:57.000000000 +0000 @@ -2,18 +2,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_again_allow.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_again_allow.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_again_allow.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_again_allow.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_again_deny.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_again_deny.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_again_deny.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_again_deny.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_bad_allow.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_bad_allow.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_bad_allow.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_bad_allow.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_bad_deny.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_bad_deny.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_bad_deny.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_bad_deny.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_good_allow.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_good_allow.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_good_allow.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_good_allow.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_good_deny.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_good_deny.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_good_deny.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_good_deny.result 2019-11-06 16:01:57.000000000 +0000 @@ -2,18 +2,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_noname_allow.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_noname_allow.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_noname_allow.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_noname_allow.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_noname_deny.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_noname_deny.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_noname_deny.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_addrinfo_noname_deny.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_auth_plugin.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_auth_plugin.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_auth_plugin.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_auth_plugin.result 2019-11-06 16:01:57.000000000 +0000 @@ -2,18 +2,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_blocked.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_blocked.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_blocked.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_blocked.result 2019-11-06 16:01:57.000000000 +0000 @@ -2,18 +2,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_max_con.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_max_con.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_max_con.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_max_con.result 2019-11-06 16:01:57.000000000 +0000 @@ -2,18 +2,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -1024 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; @@ -22,8 +10,8 @@ User Host select `User`, `Host` from mysql.`user` where `user` like 'santa.claus.%'; User Host -select @@global.max_connections into @saved_max_connections; -select @@global.max_user_connections into @saved_max_user_connections; +SET @saved_max_connections=@@global.max_connections; +SET @saved_max_user_connections=@@global.max_user_connections; create user 'quota'@'santa.claus.ipv6.example.com'; grant select on test.* to 'quota'@'santa.claus.ipv6.example.com'; grant usage on *.* to 'quota'@'santa.claus.ipv6.example.com' diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_nameinfo_again_allow.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_nameinfo_again_allow.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_nameinfo_again_allow.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_nameinfo_again_allow.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_nameinfo_again_deny.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_nameinfo_again_deny.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_nameinfo_again_deny.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_nameinfo_again_deny.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_nameinfo_noname_allow.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_nameinfo_noname_allow.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_nameinfo_noname_allow.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_nameinfo_noname_allow.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_nameinfo_noname_deny.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_nameinfo_noname_deny.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_nameinfo_noname_deny.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_nameinfo_noname_deny.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,18 +3,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_passwd.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_passwd.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_passwd.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_passwd.result 2019-11-06 16:01:57.000000000 +0000 @@ -2,18 +2,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_ssl.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_ssl.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_ipv6_ssl.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_ipv6_ssl.result 2019-11-06 16:01:57.000000000 +0000 @@ -2,18 +2,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_peer_addr.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_peer_addr.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/hostcache_peer_addr.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/hostcache_peer_addr.result 2019-11-06 16:01:57.000000000 +0000 @@ -2,18 +2,6 @@ flush hosts; flush user_resources; flush privileges; -select @@global.debug; -@@global.debug - -select @@global.max_connect_errors; -@@global.max_connect_errors -100 -select @@global.max_user_connections; -@@global.max_user_connections -0 -select @@global.max_connections; -@@global.max_connections -151 select `User`, `Host` from mysql.`user` where `host` like '%\\%%'; User Host select `User`, `Host` from mysql.`user` where `user` like '192.%'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/misc.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/misc.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/misc.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/misc.result 2019-11-06 16:01:57.000000000 +0000 @@ -134,3 +134,19 @@ select * from t1 3 insert into t1 select RAND()*10000 from t1 6 drop table t1; +# +# MDEV-17896 Assertion `pfs->get_refcount() > 0' failed +# in release_table_share +# +SELECT COUNT(*)<@@performance_schema_max_table_instances FROM +performance_schema.objects_summary_global_by_type WHERE OBJECT_TYPE='TABLE'; +COUNT(*)<@@performance_schema_max_table_instances +1 +CREATE TABLE t0(a INT); +SELECT * FROM t0; +a +DROP TEMPORARY TABLE IF EXISTS t0; +Warnings: +Note 1051 Unknown table 'test.t0' +FLUSH TABLE t0; +DROP TABLE t0; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/query_cache.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/query_cache.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/query_cache.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/query_cache.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +set @save_query_cache_size=@@query_cache_size; drop table if exists t1; create table t1 (a int not null); insert into t1 values (1), (2), (3); @@ -63,6 +64,6 @@ show status like "Qcache_hits"; Variable_name Value Qcache_hits 1 -SET GLOBAL query_cache_size= default; +SET GLOBAL query_cache_size=@save_query_cache_size; drop table t1; flush status; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/stage_mdl_global.result mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/stage_mdl_global.result --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/r/stage_mdl_global.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/r/stage_mdl_global.result 2019-11-06 16:01:57.000000000 +0000 @@ -9,7 +9,6 @@ username event_name nesting_event_type username event_name nesting_event_type user1 stage/sql/Init STATEMENT -user1 stage/sql/Waiting for query cache lock STATEMENT user1 stage/sql/Init STATEMENT user1 stage/sql/Query end STATEMENT user1 stage/sql/Commit STATEMENT diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_again_allow.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_again_allow.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_again_allow.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_again_allow.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,3 @@ - # # Tests for the performance_schema host_cache. # @@ -9,6 +8,7 @@ --source include/not_embedded.inc --source include/have_debug.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] Host name 'santa.claus.ipv4.example.com' could not be resolved: # Temporary failure in name resolution diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_again_deny.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_again_deny.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_again_deny.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_again_deny.test 2019-11-06 16:01:57.000000000 +0000 @@ -9,6 +9,7 @@ --source include/not_embedded.inc --source include/have_debug.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] Host name 'santa.claus.ipv4.example.com' could not be resolved: # Temporary failure in name resolution diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_bad_allow.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_bad_allow.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_bad_allow.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_bad_allow.test 2019-11-06 16:01:57.000000000 +0000 @@ -9,6 +9,7 @@ --source include/not_embedded.inc --source include/have_debug.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] Hostname 'santa.claus.ipv4.example.com' does not resolve to '192.0.2.4'. # [Note] Hostname 'santa.claus.ipv4.example.com' has the following IP addresses: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_bad_deny.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_bad_deny.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_bad_deny.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_bad_deny.test 2019-11-06 16:01:57.000000000 +0000 @@ -9,6 +9,7 @@ --source include/not_embedded.inc --source include/have_debug.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] Hostname 'santa.claus.ipv4.example.com' does not resolve to '192.0.2.4'. # [Note] Hostname 'santa.claus.ipv4.example.com' has the following IP addresses: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_good_allow.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_good_allow.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_good_allow.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_good_allow.test 2019-11-06 16:01:57.000000000 +0000 @@ -9,6 +9,7 @@ --source include/not_embedded.inc --source include/have_debug.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] IP address '192.0.2.4' could not be resolved: # no reverse address mapping. diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_good_deny.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_good_deny.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_good_deny.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_good_deny.test 2019-11-06 16:01:57.000000000 +0000 @@ -9,6 +9,7 @@ --source include/not_embedded.inc --source include/have_debug.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] IP address '192.0.2.4' could not be resolved: # no reverse address mapping. diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_noname_allow.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_noname_allow.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_noname_allow.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_noname_allow.test 2019-11-06 16:01:57.000000000 +0000 @@ -9,6 +9,7 @@ --source include/not_embedded.inc --source include/have_debug.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] Host name 'santa.claus.ipv4.example.com' could not be resolved: # Name or service not known diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_noname_deny.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_noname_deny.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_noname_deny.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_noname_deny.test 2019-11-06 16:01:57.000000000 +0000 @@ -9,6 +9,7 @@ --source include/not_embedded.inc --source include/have_debug.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] Host name 'santa.claus.ipv4.example.com' could not be resolved: # Name or service not known diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_auth_plugin.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_auth_plugin.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_auth_plugin.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_auth_plugin.test 2019-11-06 16:01:57.000000000 +0000 @@ -12,6 +12,7 @@ --source include/have_debug.inc --source include/have_perfschema.inc --source include/have_plugin_auth.inc +--source include/have_hostname_cache.inc # Enforce a clean state --source ../include/wait_for_pfs_thread_count.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_blocked.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_blocked.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_blocked.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_blocked.test 2019-11-06 16:01:57.000000000 +0000 @@ -11,6 +11,7 @@ --source include/not_embedded.inc --source include/have_debug.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # Enforce a clean state --source ../include/wait_for_pfs_thread_count.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_format.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_format.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_format.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_format.test 2019-11-06 16:01:57.000000000 +0000 @@ -8,6 +8,7 @@ --source include/not_embedded.inc --source include/have_debug.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] IP address '192.0.2.4' could not be resolved: # Name or service not known diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_max_con.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_max_con.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_max_con.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_max_con.test 2019-11-06 16:01:57.000000000 +0000 @@ -11,6 +11,7 @@ --source include/not_embedded.inc --source include/have_debug.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # Enforce a clean state --source ../include/wait_for_pfs_thread_count.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_nameinfo_again_allow.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_nameinfo_again_allow.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_nameinfo_again_allow.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_nameinfo_again_allow.test 2019-11-06 16:01:57.000000000 +0000 @@ -9,6 +9,7 @@ --source include/not_embedded.inc --source include/have_debug.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] IP address '192.0.2.4' could not be resolved: # Temporary failure in name resolution diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_nameinfo_again_deny.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_nameinfo_again_deny.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_nameinfo_again_deny.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_nameinfo_again_deny.test 2019-11-06 16:01:57.000000000 +0000 @@ -9,6 +9,7 @@ --source include/not_embedded.inc --source include/have_debug.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] IP address '192.0.2.4' could not be resolved: # Temporary failure in name resolution diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_nameinfo_noname_allow.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_nameinfo_noname_allow.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_nameinfo_noname_allow.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_nameinfo_noname_allow.test 2019-11-06 16:01:57.000000000 +0000 @@ -9,6 +9,7 @@ --source include/not_embedded.inc --source include/have_debug.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] IP address '192.0.2.4' could not be resolved: # no reverse address mapping. diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_nameinfo_noname_deny.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_nameinfo_noname_deny.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_nameinfo_noname_deny.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_nameinfo_noname_deny.test 2019-11-06 16:01:57.000000000 +0000 @@ -9,6 +9,7 @@ --source include/not_embedded.inc --source include/have_debug.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] IP address '192.0.2.4' could not be resolved: # no reverse address mapping. diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_passwd.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_passwd.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_passwd.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_passwd.test 2019-11-06 16:01:57.000000000 +0000 @@ -8,6 +8,7 @@ --source include/not_embedded.inc --source include/have_debug.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # Enforce a clean state --source ../include/wait_for_pfs_thread_count.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_ssl.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_ssl.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv4_ssl.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv4_ssl.test 2019-11-06 16:01:57.000000000 +0000 @@ -8,6 +8,7 @@ --source include/not_embedded.inc --source include/have_debug.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # Enforce a clean state --source ../include/wait_for_pfs_thread_count.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_again_allow-master.opt mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_again_allow-master.opt --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_again_allow-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_again_allow-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1 +1,2 @@ +--disable-skip-name-resolve --bind-address=:: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_again_allow.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_again_allow.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_again_allow.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_again_allow.test 2019-11-06 16:01:57.000000000 +0000 @@ -10,6 +10,7 @@ --source include/have_debug.inc --source include/check_ipv6.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] Host name 'santa.claus.ipv6.example.com' could not be resolved: # Temporary failure in name resolution diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_again_deny-master.opt mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_again_deny-master.opt --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_again_deny-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_again_deny-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1 +1,2 @@ +--disable-skip-name-resolve --bind-address=:: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_again_deny.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_again_deny.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_again_deny.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_again_deny.test 2019-11-06 16:01:57.000000000 +0000 @@ -10,6 +10,7 @@ --source include/have_debug.inc --source include/check_ipv6.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] Host name 'santa.claus.ipv6.example.com' could not be resolved: # Temporary failure in name resolution diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_bad_allow-master.opt mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_bad_allow-master.opt --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_bad_allow-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_bad_allow-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1 +1,2 @@ +--disable-skip-name-resolve --bind-address=:: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_bad_allow.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_bad_allow.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_bad_allow.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_bad_allow.test 2019-11-06 16:01:57.000000000 +0000 @@ -10,6 +10,7 @@ --source include/have_debug.inc --source include/check_ipv6.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] Hostname 'santa.claus.ipv6.example.com' does not resolve to '2001:db8::6:6'. # [Note] Hostname 'santa.claus.ipv6.example.com' has the following IP addresses: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_bad_deny-master.opt mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_bad_deny-master.opt --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_bad_deny-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_bad_deny-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1 +1,2 @@ +--disable-skip-name-resolve --bind-address=:: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_bad_deny.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_bad_deny.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_bad_deny.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_bad_deny.test 2019-11-06 16:01:57.000000000 +0000 @@ -10,6 +10,7 @@ --source include/have_debug.inc --source include/check_ipv6.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] Hostname 'santa.claus.ipv6.example.com' does not resolve to '2001:db8::6:6'. # [Note] Hostname 'santa.claus.ipv6.example.com' has the following IP addresses: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_good_allow-master.opt mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_good_allow-master.opt --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_good_allow-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_good_allow-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1 +1,2 @@ +--disable-skip-name-resolve --bind-address=:: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_good_allow.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_good_allow.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_good_allow.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_good_allow.test 2019-11-06 16:01:57.000000000 +0000 @@ -10,6 +10,7 @@ --source include/have_debug.inc --source include/check_ipv6.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] IP address '192.0.2.4' could not be resolved: # no reverse address mapping. diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_good_deny-master.opt mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_good_deny-master.opt --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_good_deny-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_good_deny-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1 +1,2 @@ +--disable-skip-name-resolve --bind-address=:: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_good_deny.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_good_deny.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_good_deny.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_good_deny.test 2019-11-06 16:01:57.000000000 +0000 @@ -10,6 +10,7 @@ --source include/have_debug.inc --source include/check_ipv6.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # Enforce a clean state --source ../include/wait_for_pfs_thread_count.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_allow-master.opt mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_allow-master.opt --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_allow-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_allow-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1 +1,2 @@ +--disable-skip-name-resolve --bind-address=:: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_allow.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_allow.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_allow.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_allow.test 2019-11-06 16:01:57.000000000 +0000 @@ -10,6 +10,7 @@ --source include/have_debug.inc --source include/check_ipv6.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] Host name 'santa.claus.ipv6.example.com' could not be resolved: # Name or service not known diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_deny-master.opt mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_deny-master.opt --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_deny-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_deny-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1 +1,2 @@ +--disable-skip-name-resolve --bind-address=:: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_deny.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_deny.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_deny.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_addrinfo_noname_deny.test 2019-11-06 16:01:57.000000000 +0000 @@ -10,6 +10,7 @@ --source include/have_debug.inc --source include/check_ipv6.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] Host name 'santa.claus.ipv6.example.com' could not be resolved: # Name or service not known diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_auth_plugin-master.opt mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_auth_plugin-master.opt --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_auth_plugin-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_auth_plugin-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1 +1,2 @@ +--disable-skip-name-resolve --bind-address=:: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_auth_plugin.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_auth_plugin.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_auth_plugin.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_auth_plugin.test 2019-11-06 16:01:57.000000000 +0000 @@ -12,6 +12,7 @@ --source include/have_debug.inc --source include/check_ipv6.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc --source include/have_plugin_auth.inc # Enforce a clean state diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_blocked-master.opt mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_blocked-master.opt --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_blocked-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_blocked-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1 +1,2 @@ +--disable-skip-name-resolve --bind-address=:: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_max_con-master.opt mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_max_con-master.opt --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_max_con-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_max_con-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1,2 +1,3 @@ +--disable-skip-name-resolve --bind-address=:: --max-user-connections=1024 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_max_con.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_max_con.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_max_con.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_max_con.test 2019-11-06 16:01:57.000000000 +0000 @@ -12,13 +12,14 @@ --source include/have_debug.inc --source include/check_ipv6.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # Enforce a clean state --source ../include/wait_for_pfs_thread_count.inc --source ../include/hostcache_set_state.inc -select @@global.max_connections into @saved_max_connections; -select @@global.max_user_connections into @saved_max_user_connections; +SET @saved_max_connections=@@global.max_connections; +SET @saved_max_user_connections=@@global.max_user_connections; create user 'quota'@'santa.claus.ipv6.example.com'; grant select on test.* to 'quota'@'santa.claus.ipv6.example.com'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_again_allow-master.opt mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_again_allow-master.opt --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_again_allow-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_again_allow-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1 +1,2 @@ +--disable-skip-name-resolve --bind-address=:: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_again_allow.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_again_allow.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_again_allow.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_again_allow.test 2019-11-06 16:01:57.000000000 +0000 @@ -10,6 +10,7 @@ --source include/have_debug.inc --source include/check_ipv6.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] IP address '2001:db8::6:6' could not be resolved: # Temporary failure in name resolution diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_again_deny-master.opt mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_again_deny-master.opt --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_again_deny-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_again_deny-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1 +1,2 @@ +--disable-skip-name-resolve --bind-address=:: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_again_deny.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_again_deny.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_again_deny.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_again_deny.test 2019-11-06 16:01:57.000000000 +0000 @@ -10,6 +10,7 @@ --source include/have_debug.inc --source include/check_ipv6.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] IP address '2001:db8::6:6' could not be resolved: # Temporary failure in name resolution diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_noname_allow-master.opt mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_noname_allow-master.opt --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_noname_allow-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_noname_allow-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1 +1,2 @@ +--disable-skip-name-resolve --bind-address=:: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_noname_allow.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_noname_allow.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_noname_allow.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_noname_allow.test 2019-11-06 16:01:57.000000000 +0000 @@ -10,6 +10,7 @@ --source include/have_debug.inc --source include/check_ipv6.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] IP address '2001:db8::6:6' could not be resolved: # Name or service not known diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_noname_deny-master.opt mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_noname_deny-master.opt --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_noname_deny-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_noname_deny-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1 +1,2 @@ +--disable-skip-name-resolve --bind-address=:: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_noname_deny.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_noname_deny.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_noname_deny.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_nameinfo_noname_deny.test 2019-11-06 16:01:57.000000000 +0000 @@ -10,6 +10,7 @@ --source include/have_debug.inc --source include/check_ipv6.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # [Warning] IP address '2001:db8::6:6' could not be resolved: # Name or service not known diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_passwd-master.opt mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_passwd-master.opt --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_passwd-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_passwd-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1 +1,2 @@ +--disable-skip-name-resolve --bind-address=:: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_passwd.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_passwd.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_passwd.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_passwd.test 2019-11-06 16:01:57.000000000 +0000 @@ -9,6 +9,7 @@ --source include/have_debug.inc --source include/check_ipv6.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # Enforce a clean state --source ../include/wait_for_pfs_thread_count.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_ssl-master.opt mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_ssl-master.opt --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_ssl-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_ssl-master.opt 2019-11-06 16:01:57.000000000 +0000 @@ -1 +1,2 @@ +--disable-skip-name-resolve --bind-address=:: diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_ssl.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_ssl.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_ipv6_ssl.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_ipv6_ssl.test 2019-11-06 16:01:57.000000000 +0000 @@ -9,6 +9,7 @@ --source include/have_debug.inc --source include/check_ipv6.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # Enforce a clean state --source ../include/wait_for_pfs_thread_count.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_peer_addr.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_peer_addr.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/hostcache_peer_addr.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/hostcache_peer_addr.test 2019-11-06 16:01:57.000000000 +0000 @@ -8,6 +8,7 @@ --source include/not_embedded.inc --source include/have_debug.inc --source include/have_perfschema.inc +--source include/have_hostname_cache.inc # Enforce a clean state --source ../include/wait_for_pfs_thread_count.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/misc.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/misc.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/misc.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/misc.test 2019-11-06 16:01:57.000000000 +0000 @@ -222,3 +222,51 @@ select sql_text, rows_examined from performance_schema.events_statements_history; drop table t1; +--echo # +--echo # MDEV-17896 Assertion `pfs->get_refcount() > 0' failed +--echo # in release_table_share +--echo # + +# There must be at least one available slot in PFS table_share_array for +# this test to be meaningful. If there are no free slots we must +# restart mysqld, it is the only way to reset PFS table_share_array +let $query= SELECT COUNT(*)<@@performance_schema_max_table_instances FROM + performance_schema.objects_summary_global_by_type WHERE OBJECT_TYPE='TABLE'; + +let $free_slots_available= `$query`; + +if (!$free_slots_available) +{ + source include/restart_mysqld.inc; +} +eval $query; + +CREATE TABLE t0(a INT); + +# TABLE_SHARE must be cached in the table definition cache. +SELECT * FROM t0; + +# Dropping t0 using DROP TEMPORARY frees up a slot in table_share_array, +# but the persistent table is not correctly dropped, i.e. TABLE_SHARE::m_psi +# still points to that slot in table_share_array. +DROP TEMPORARY TABLE IF EXISTS t0; + +# Try re-using each and every slot in PFS table_share_array. If bug is +# there, we re-use t0 slot. +# The newly created table that re-uses the t0 slot ends up +# resetting the PFS_table_share refcount. +let $i= `SELECT @@performance_schema_max_table_instances`; +disable_query_log; +while ($i) +{ + # Memory engine is here to reduce disk IO + eval CREATE TABLE t$i(a INT) ENGINE=MEMORY; + eval DROP TABLE t$i; + dec $i; +} +enable_query_log; + +# FLUSH TABLE crashes the server when PFS_table_share is found with +# an unexpected refcount. +FLUSH TABLE t0; +DROP TABLE t0; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/query_cache.test mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/query_cache.test --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/query_cache.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/query_cache.test 2019-11-06 16:01:57.000000000 +0000 @@ -7,6 +7,8 @@ --source include/not_embedded.inc --source include/have_perfschema.inc +set @save_query_cache_size=@@query_cache_size; + --disable_warnings drop table if exists t1; --enable_warnings @@ -50,7 +52,7 @@ show status like "Qcache_inserts"; show status like "Qcache_hits"; -SET GLOBAL query_cache_size= default; +SET GLOBAL query_cache_size=@save_query_cache_size; drop table t1; flush status; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/stage_mdl_global-master.opt mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/stage_mdl_global-master.opt --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/stage_mdl_global-master.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/stage_mdl_global-master.opt 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ ---query_cache_type=1 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/stage_mdl_global.opt mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/stage_mdl_global.opt --- mariadb-10.3-10.3.17/mysql-test/suite/perfschema/t/stage_mdl_global.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/perfschema/t/stage_mdl_global.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,2 @@ +--query-cache-size=1048576 +--query-cache-type=OFF diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/plugins/r/qc_info_priv.result mariadb-10.3-10.3.20/mysql-test/suite/plugins/r/qc_info_priv.result --- mariadb-10.3-10.3.17/mysql-test/suite/plugins/r/qc_info_priv.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/plugins/r/qc_info_priv.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +set @save_query_cache_size=@@global.query_cache_size; set global query_cache_type=ON; set local query_cache_type=ON; set global query_cache_size=1355776; @@ -43,5 +44,5 @@ connection default; drop user mysqltest; drop table t1; -set global query_cache_size= default; +set @@global.query_cache_size=@save_query_cache_size; set global query_cache_type=default; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/plugins/r/qc_info.result mariadb-10.3-10.3.20/mysql-test/suite/plugins/r/qc_info.result --- mariadb-10.3-10.3.17/mysql-test/suite/plugins/r/qc_info.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/plugins/r/qc_info.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +set @save_query_cache_size=@@global.query_cache_size; set global query_cache_type=ON; set local query_cache_type=ON; set global query_cache_size=1355776; @@ -55,3 +56,4 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'query_cache_info' at line 1 flush query_cache_info; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'query_cache_info' at line 1 +set @@global.query_cache_size=@save_query_cache_size; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/plugins/t/feedback_plugin_load.test mariadb-10.3-10.3.20/mysql-test/suite/plugins/t/feedback_plugin_load.test --- mariadb-10.3-10.3.17/mysql-test/suite/plugins/t/feedback_plugin_load.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/plugins/t/feedback_plugin_load.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,6 +2,10 @@ { --skip Feedback plugin is not active } +if (`select @@feedback_url = ""`) +{ + --skip Feedback plugin is not active +} select plugin_status from information_schema.plugins where plugin_name='feedback'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/plugins/t/qc_info_init.inc mariadb-10.3-10.3.20/mysql-test/suite/plugins/t/qc_info_init.inc --- mariadb-10.3-10.3.17/mysql-test/suite/plugins/t/qc_info_init.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/plugins/t/qc_info_init.inc 2019-11-06 16:01:57.000000000 +0000 @@ -32,4 +32,3 @@ --sorted_result --replace_column 5 # 19 # 23 # select * from information_schema.query_cache_info; - diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/plugins/t/qc_info_priv.test mariadb-10.3-10.3.20/mysql-test/suite/plugins/t/qc_info_priv.test --- mariadb-10.3-10.3.17/mysql-test/suite/plugins/t/qc_info_priv.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/plugins/t/qc_info_priv.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,4 @@ +set @save_query_cache_size=@@global.query_cache_size; --source include/not_embedded.inc --source qc_info_init.inc @@ -11,5 +12,5 @@ drop user mysqltest; drop table t1; -set global query_cache_size= default; +set @@global.query_cache_size=@save_query_cache_size; set global query_cache_type=default; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/plugins/t/qc_info.test mariadb-10.3-10.3.20/mysql-test/suite/plugins/t/qc_info.test --- mariadb-10.3-10.3.17/mysql-test/suite/plugins/t/qc_info.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/plugins/t/qc_info.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,5 @@ +set @save_query_cache_size=@@global.query_cache_size; +--source include/default_charset.inc --source qc_info_init.inc # test that hits are correctly incremented @@ -21,3 +23,4 @@ --error ER_PARSE_ERROR flush query_cache_info; +set @@global.query_cache_size=@save_query_cache_size; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/roles/acl_statistics.opt mariadb-10.3-10.3.20/mysql-test/suite/roles/acl_statistics.opt --- mariadb-10.3-10.3.17/mysql-test/suite/roles/acl_statistics.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/roles/acl_statistics.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--disable-skip-name-resolve diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/roles/definer.test mariadb-10.3-10.3.20/mysql-test/suite/roles/definer.test --- mariadb-10.3-10.3.17/mysql-test/suite/roles/definer.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/roles/definer.test 2019-11-06 16:01:57.000000000 +0000 @@ -4,7 +4,9 @@ # create event # mysqldump dumping the definer -source include/not_embedded.inc; +--source include/not_embedded.inc +--source include/default_charset.inc + let MYSQLD_DATADIR=`select @@datadir`; create database mysqltest1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/roles/show_create_database-10463.test mariadb-10.3-10.3.20/mysql-test/suite/roles/show_create_database-10463.test --- mariadb-10.3-10.3.17/mysql-test/suite/roles/show_create_database-10463.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/roles/show_create_database-10463.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,5 @@ -source include/not_embedded.inc; +--source include/not_embedded.inc +--source include/default_charset.inc drop database if exists db; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/disabled.def mariadb-10.3-10.3.20/mysql-test/suite/rpl/disabled.def --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/disabled.def 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/disabled.def 2019-11-06 16:01:57.000000000 +0000 @@ -17,3 +17,4 @@ rpl_row_index_choice : MDEV-11666 rpl_parallel2 : fails after MDEV-16172 rpl_semi_sync_after_sync : fails after MDEV-16172 +rpl_slave_grp_exec: MDEV-10514 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/include/rpl_binlog_errors.inc mariadb-10.3-10.3.20/mysql-test/suite/rpl/include/rpl_binlog_errors.inc --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/include/rpl_binlog_errors.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/include/rpl_binlog_errors.inc 2019-11-06 16:01:57.000000000 +0000 @@ -431,5 +431,7 @@ -- source include/stop_slave_sql.inc RESET SLAVE; RESET MASTER; +--remove_file $load_file +--remove_file $load_file2 --let $rpl_only_running_threads= 1 --source include/rpl_end.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/include/rpl_parallel_ignored_errors.inc mariadb-10.3-10.3.20/mysql-test/suite/rpl/include/rpl_parallel_ignored_errors.inc --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/include/rpl_parallel_ignored_errors.inc 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/include/rpl_parallel_ignored_errors.inc 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,112 @@ +# ==== Purpose ==== +# +# Test verifies that, in parallel replication, transaction failure notification +# is propagated to all the workers. Workers should abort the execution of +# transaction event groups, whose event positions are higher than the failing +# transaction group. +# +# ==== Implementation ==== +# +# Steps: +# 0 - Create a table t1 on master which has a primary key. Enable parallel +# replication on slave with slave_parallel_mode='optimistic' and +# slave_parallel_threads=3. +# 1 - On slave start a transaction and execute a local INSERT statement +# which will insert value 32. This is done to block the INSERT coming +# from master. +# 2 - On master execute an INSERT statement with value 32, so that it is +# blocked on slave. +# 3 - On slave enable a debug sync point such that it holds the worker thread +# execution as soon as work is scheduled to it. +# 4 - INSERT value 33 on master. It will be held on slave by other worker +# thread due to debug simulation. +# 5 - INSERT value 34 on master. +# 6 - On slave, enusre that INSERT 34 has reached a state where it waits for +# its prior transactions to commit. +# 7 - Commit the local INSERT 32 on slave server so that first worker will +# error out. +# 8 - Now send a continue signal to second worker processing 33. It should +# wakeup and propagate the error to INSERT 34. +# 9 - Upon slave stop due to error, check that no rows are found after the +# failed INSERT 32. +# +# ==== References ==== +# +# MDEV-20645: Replication consistency is broken as workers miss the error +# notification from an earlier failed group. +# + +--source include/have_innodb.inc +--source include/have_debug.inc +--source include/have_debug_sync.inc +--source include/have_binlog_format_statement.inc +--source include/master-slave.inc + +--enable_connect_log +--connection server_2 +--source include/stop_slave.inc +SET @old_parallel_threads=@@GLOBAL.slave_parallel_threads; +SET @old_parallel_mode=@@GLOBAL.slave_parallel_mode; +SET @old_dbug= @@GLOBAL.debug_dbug; +SET GLOBAL slave_parallel_mode='optimistic'; +SET GLOBAL slave_parallel_threads= 3; +CHANGE MASTER TO master_use_gtid=slave_pos; +CALL mtr.add_suppression("Commit failed due to failure of an earlier commit on which this one depends"); +--source include/start_slave.inc + +--connection server_1 +ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB; +CREATE TABLE t1 (a int PRIMARY KEY) ENGINE=InnoDB; +--source include/save_master_gtid.inc + +--connection server_2 +--source include/sync_with_master_gtid.inc + +--connect (con_temp2,127.0.0.1,root,,test,$SERVER_MYPORT_2,) +BEGIN; +INSERT INTO t1 VALUES (32); + +--connection server_1 +INSERT INTO t1 VALUES (32); + +--connection server_2 +--let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist WHERE info like "INSERT INTO t1 VALUES (32)" +--source include/wait_condition.inc +SET GLOBAL debug_dbug="+d,hold_worker_on_schedule"; +SET debug_sync="debug_sync_action SIGNAL reached_pause WAIT_FOR continue_worker"; + +--connection server_1 +SET gtid_seq_no=100; +INSERT INTO t1 VALUES (33); + +--connection server_2 +SET debug_sync='now WAIT_FOR reached_pause'; + +--connection server_1 +INSERT INTO t1 VALUES (34); + +--connection server_2 +--let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist WHERE state like "Waiting for prior transaction to commit" +--source include/wait_condition.inc +--connection con_temp2 +COMMIT; + +# Clean up. +--connection server_2 +--source include/stop_slave.inc +--let $assert_cond= COUNT(*) = 0 FROM t1 WHERE a>32 +--let $assert_text= table t1 should have zero rows where a>32 +--source include/assert.inc +SELECT * FROM t1 WHERE a>32; +DELETE FROM t1 WHERE a=32; + +SET GLOBAL slave_parallel_threads=@old_parallel_threads; +SET GLOBAL slave_parallel_mode=@old_parallel_mode; +SET GLOBAL debug_dbug=@old_debug; +SET DEBUG_SYNC= 'RESET'; +--source include/start_slave.inc + +--connection server_1 +DROP TABLE t1; +--disable_connect_log +--source include/rpl_end.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/mdev_17588.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/mdev_17588.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/mdev_17588.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/mdev_17588.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,18 +1,16 @@ include/master-slave.inc [connection master] +connection slave; +include/stop_slave.inc +CHANGE MASTER TO master_use_gtid=slave_pos; +include/start_slave.inc connection master; create table t1 (a int) engine=innodb; create table t2 (a int); create table t3 (a int) engine=innodb; -include/save_master_gtid.inc connection slave; -include/wait_for_slave_sql_error.inc [errno=1286] -Last_Error = 'Error 'Unknown storage engine 'innodb'' on query. Default database: 'test'. Query: 'create table t1 (a int) engine=innodb'' -STOP SLAVE IO_THREAD; -include/wait_for_slave_to_stop.inc -SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; -include/start_slave.inc -include/sync_with_master_gtid.inc +include/wait_for_slave_sql_error_and_skip.inc [errno=1286] +# Asserted this: Status should be 'Slave has read all relay log...' show tables; Tables_in_test t2 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_000011.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_000011.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_000011.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_000011.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,15 +1,13 @@ include/master-slave.inc [connection master] +connection slave; +connection master; create table t1 (n int); insert into t1 values(1); connection slave; -show global status like 'com_insert'; -Variable_name Value -Com_insert 1 +# Com_insert = 1 stop slave; -show global status like 'com_insert'; -Variable_name Value -Com_insert 1 +# Com_insert = 1 include/wait_for_slave_to_stop.inc start slave; include/wait_for_slave_to_start.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_blackhole.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_blackhole.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_blackhole.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_blackhole.result 2019-11-06 16:01:57.000000000 +0000 @@ -42,6 +42,8 @@ >>> Something was written to binary log <<< connection master; ALTER TABLE t1 ADD PRIMARY KEY pk_t1 (a,b); +Warnings: +Warning 1280 Name 'pk_t1' ignored for PRIMARY key. connection slave; connection master; INSERT INTO t1 VALUES (1,2,1),(2,2,2),(3,2,3),(4,2,4); diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_blackhole_row_annotate.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_blackhole_row_annotate.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_blackhole_row_annotate.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_blackhole_row_annotate.result 2019-11-06 16:01:57.000000000 +0000 @@ -47,6 +47,8 @@ >>> Something was written to binary log <<< connection master; ALTER TABLE t1 ADD PRIMARY KEY pk_t1 (a,b); +Warnings: +Warning 1280 Name 'pk_t1' ignored for PRIMARY key. connection slave; connection master; INSERT INTO t1 VALUES (1,2,1),(2,2,2),(3,2,3),(4,2,4); diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_create_or_replace_fail.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_create_or_replace_fail.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_create_or_replace_fail.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_create_or_replace_fail.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,20 @@ +include/master-slave.inc +[connection master] +CREATE TEMPORARY TABLE t1 (a INT NOT NULL); +LOAD DATA INFILE 'x' INTO TABLE x; +ERROR 42S02: Table 'test.x' doesn't exist +CREATE OR REPLACE TEMPORARY TABLE t1 (x INT) PARTITION BY HASH(x); +ERROR HY000: Cannot create temporary table with partitions +"************** DROP TEMPORARY TABLE Should be present in Binary log **************" +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE TEMPORARY TABLE t1 (a INT NOT NULL) +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; CREATE OR REPLACE TEMPORARY TABLE t1 (x INT) PARTITION BY HASH(x) +CREATE TABLE t1 (b INT); +INSERT INTO t1 VALUES (NULL); +connection slave; +connection master; +DROP TABLE t1; +include/rpl_end.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_extra_col_master_innodb.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_extra_col_master_innodb.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_extra_col_master_innodb.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_extra_col_master_innodb.result 2019-11-06 16:01:57.000000000 +0000 @@ -468,7 +468,7 @@ connection slave; include/wait_for_slave_sql_error_and_skip.inc [errno=1677] -Last_SQL_Error = 'Column 2 of table 'test.t10' cannot be converted from type 'double' to type 'char(5)'' +Last_SQL_Error = 'Column 2 of table 'test.t10' cannot be converted from type 'double' to type 'char(5 octets) character set latin1'' *** Drop t10 *** connection master; @@ -510,7 +510,7 @@ connection slave; include/wait_for_slave_sql_error_and_skip.inc [errno=1677] -Last_SQL_Error = 'Column 2 of table 'test.t11' cannot be converted from type 'tinyblob' to type 'varchar(254)'' +Last_SQL_Error = 'Column 2 of table 'test.t11' cannot be converted from type 'blob' to type 'varchar(254 octets) character set latin1'' *** Drop t11 *** connection master; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_extra_col_master_myisam.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_extra_col_master_myisam.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_extra_col_master_myisam.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_extra_col_master_myisam.result 2019-11-06 16:01:57.000000000 +0000 @@ -468,7 +468,7 @@ connection slave; include/wait_for_slave_sql_error_and_skip.inc [errno=1677] -Last_SQL_Error = 'Column 2 of table 'test.t10' cannot be converted from type 'double' to type 'char(5)'' +Last_SQL_Error = 'Column 2 of table 'test.t10' cannot be converted from type 'double' to type 'char(5 octets) character set latin1'' *** Drop t10 *** connection master; @@ -510,7 +510,7 @@ connection slave; include/wait_for_slave_sql_error_and_skip.inc [errno=1677] -Last_SQL_Error = 'Column 2 of table 'test.t11' cannot be converted from type 'tinyblob' to type 'varchar(254)'' +Last_SQL_Error = 'Column 2 of table 'test.t11' cannot be converted from type 'blob' to type 'varchar(254 octets) character set latin1'' *** Drop t11 *** connection master; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_extra_col_slave_innodb.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_extra_col_slave_innodb.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_extra_col_slave_innodb.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_extra_col_slave_innodb.result 2019-11-06 16:01:57.000000000 +0000 @@ -64,7 +64,7 @@ connection slave; START SLAVE; include/wait_for_slave_sql_error.inc [errno=1677] -Last_SQL_Error = 'Column 2 of table 'test.t2' cannot be converted from type 'char(10)' to type 'char(5)'' +Last_SQL_Error = 'Column 2 of table 'test.t2' cannot be converted from type 'char(10 octets)' to type 'char(5 octets) character set latin1'' STOP SLAVE; RESET SLAVE; SELECT * FROM t2 ORDER BY a; @@ -102,7 +102,7 @@ ******************************************** connection slave; include/wait_for_slave_sql_error_and_skip.inc [errno=1677] -Last_SQL_Error = 'Column 0 of table 'test.t3' cannot be converted from type 'tinyblob' to type 'int(11)'' +Last_SQL_Error = 'Column 0 of table 'test.t3' cannot be converted from type 'blob' to type 'int(11)'' *** Drop t3 *** connection master; DROP TABLE t3; @@ -160,7 +160,7 @@ ******************************************** connection slave; include/wait_for_slave_sql_error_and_skip.inc [errno=1677] -Last_SQL_Error = 'Column 1 of table 'test.t5' cannot be converted from type 'varchar(6)' to type 'char(5)'' +Last_SQL_Error = 'Column 1 of table 'test.t5' cannot be converted from type 'varchar(6 octets)' to type 'char(5 octets) character set latin1'' *** Drop t5 *** connection master; DROP TABLE t5; @@ -188,7 +188,7 @@ ******************************************** connection slave; include/wait_for_slave_sql_error.inc [errno=1677] -Last_SQL_Error = 'Column 1 of table 'test.t6' cannot be converted from type 'varchar(6)' to type 'char(5)'' +Last_SQL_Error = 'Column 1 of table 'test.t6' cannot be converted from type 'varchar(6 octets)' to type 'char(5 octets) character set latin1'' *** Drop t6 *** include/rpl_reset.inc connection master; @@ -310,7 +310,7 @@ ******************************************** connection slave; include/wait_for_slave_sql_error_and_skip.inc [errno=1677] -Last_SQL_Error = 'Column 2 of table 'test.t10' cannot be converted from type 'char(5)' to type 'double'' +Last_SQL_Error = 'Column 2 of table 'test.t10' cannot be converted from type 'char(5 octets)' to type 'double'' *** Drop t10 *** connection master; DROP TABLE t10; @@ -338,7 +338,7 @@ ******************************************** connection slave; include/wait_for_slave_sql_error_and_skip.inc [errno=1677] -Last_SQL_Error = 'Column 2 of table 'test.t11' cannot be converted from type 'varchar(254)' to type 'int(11)'' +Last_SQL_Error = 'Column 2 of table 'test.t11' cannot be converted from type 'varchar(254 octets)' to type 'int(11)'' *** Drop t11 *** connection master; DROP TABLE t11; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_extra_col_slave_myisam.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_extra_col_slave_myisam.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_extra_col_slave_myisam.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_extra_col_slave_myisam.result 2019-11-06 16:01:57.000000000 +0000 @@ -64,7 +64,7 @@ connection slave; START SLAVE; include/wait_for_slave_sql_error.inc [errno=1677] -Last_SQL_Error = 'Column 2 of table 'test.t2' cannot be converted from type 'char(10)' to type 'char(5)'' +Last_SQL_Error = 'Column 2 of table 'test.t2' cannot be converted from type 'char(10 octets)' to type 'char(5 octets) character set latin1'' STOP SLAVE; RESET SLAVE; SELECT * FROM t2 ORDER BY a; @@ -102,7 +102,7 @@ ******************************************** connection slave; include/wait_for_slave_sql_error_and_skip.inc [errno=1677] -Last_SQL_Error = 'Column 0 of table 'test.t3' cannot be converted from type 'tinyblob' to type 'int(11)'' +Last_SQL_Error = 'Column 0 of table 'test.t3' cannot be converted from type 'blob' to type 'int(11)'' *** Drop t3 *** connection master; DROP TABLE t3; @@ -160,7 +160,7 @@ ******************************************** connection slave; include/wait_for_slave_sql_error_and_skip.inc [errno=1677] -Last_SQL_Error = 'Column 1 of table 'test.t5' cannot be converted from type 'varchar(6)' to type 'char(5)'' +Last_SQL_Error = 'Column 1 of table 'test.t5' cannot be converted from type 'varchar(6 octets)' to type 'char(5 octets) character set latin1'' *** Drop t5 *** connection master; DROP TABLE t5; @@ -188,7 +188,7 @@ ******************************************** connection slave; include/wait_for_slave_sql_error.inc [errno=1677] -Last_SQL_Error = 'Column 1 of table 'test.t6' cannot be converted from type 'varchar(6)' to type 'char(5)'' +Last_SQL_Error = 'Column 1 of table 'test.t6' cannot be converted from type 'varchar(6 octets)' to type 'char(5 octets) character set latin1'' *** Drop t6 *** include/rpl_reset.inc connection master; @@ -310,7 +310,7 @@ ******************************************** connection slave; include/wait_for_slave_sql_error_and_skip.inc [errno=1677] -Last_SQL_Error = 'Column 2 of table 'test.t10' cannot be converted from type 'char(5)' to type 'double'' +Last_SQL_Error = 'Column 2 of table 'test.t10' cannot be converted from type 'char(5 octets)' to type 'double'' *** Drop t10 *** connection master; DROP TABLE t10; @@ -338,7 +338,7 @@ ******************************************** connection slave; include/wait_for_slave_sql_error_and_skip.inc [errno=1677] -Last_SQL_Error = 'Column 2 of table 'test.t11' cannot be converted from type 'varchar(254)' to type 'int(11)'' +Last_SQL_Error = 'Column 2 of table 'test.t11' cannot be converted from type 'varchar(254 octets)' to type 'int(11)'' *** Drop t11 *** connection master; DROP TABLE t11; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_failed_drop_tbl_binlog.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_failed_drop_tbl_binlog.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_failed_drop_tbl_binlog.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_failed_drop_tbl_binlog.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,32 @@ +include/master-slave.inc +[connection master] +create table t1 (a int) engine=innodb; +create table t2 (b longblob) engine=innodb; +create table t3 (c int) engine=innodb; +insert into t2 values (repeat('b',1024*1024)); +insert into t2 select * from t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +set debug_sync='rm_table_no_locks_before_delete_table SIGNAL nogo WAIT_FOR go EXECUTE 2'; +drop table t1, t2, t3; +connect foo,localhost,root; +set debug_sync='now SIGNAL go'; +kill query CONNECTION_ID; +connection master; +ERROR 70100: Query execution was interrupted +"Tables t2 and t3 should be listed" +SHOW TABLES; +Tables_in_test +t2 +t3 +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Gtid # # GTID #-#-# +master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */ +connection slave; +drop table t2, t3; +connection master; +set debug_sync='RESET'; +drop table t2, t3; +include/rpl_end.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_gtid_delete_domain.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_gtid_delete_domain.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_gtid_delete_domain.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_gtid_delete_domain.result 2019-11-06 16:01:57.000000000 +0000 @@ -41,7 +41,7 @@ .. con='slave' warn='1' qlog='1' rlog='1' aborterr='1' ...==== BEGIN include/wait_for_slave_param.inc [Slave_IO_Running] ==== ... con='slave' warn='1' qlog='1' rlog='1' aborterr='1' -Waiting until 'Slave_IO_Running' = 'Yes' [timeout='300', $slave_error_param='Last_IO_Errno'] +Waiting until 'Slave_IO_Running' = 'Yes' [$slave_error_param='Last_IO_Errno'] [connection slave] ...==== END include/wait_for_slave_param.inc [Slave_IO_Running] ==== ... con='slave' warn='1' qlog='1' rlog='1' aborterr='1' @@ -52,7 +52,7 @@ .. con='slave' warn='1' qlog='1' rlog='1' aborterr='1' ...==== BEGIN include/wait_for_slave_param.inc [Slave_SQL_Running] ==== ... con='slave' warn='1' qlog='1' rlog='1' aborterr='1' -Waiting until 'Slave_SQL_Running' = 'Yes' [timeout='300', $slave_error_param='1'] +Waiting until 'Slave_SQL_Running' = 'Yes' [$slave_error_param='1'] [connection slave] ...==== END include/wait_for_slave_param.inc [Slave_SQL_Running] ==== ... con='slave' warn='1' qlog='1' rlog='1' aborterr='1' diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_ip_mix2.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_ip_mix2.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_ip_mix2.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_ip_mix2.result 2019-11-06 16:01:57.000000000 +0000 @@ -64,3 +64,5 @@ change master to master_host='0:0:0:0:0:0:0:1'; Master-Host: 0:0:0:0:0:0:0:1 CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_USER='root'; +connection slave; +reset slave all; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_ip_mix.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_ip_mix.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_ip_mix.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_ip_mix.result 2019-11-06 16:01:57.000000000 +0000 @@ -64,3 +64,5 @@ change master to master_host='0:0:0:0:0:0:0:1'; Master-Host: 0:0:0:0:0:0:0:1 CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_USER='root'; +connection slave; +reset slave all; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_known_bugs_detection.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_known_bugs_detection.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_known_bugs_detection.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_known_bugs_detection.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,31 +1,5 @@ call mtr.add_suppression("Unsafe statement written to the binary log using statement format"); include/master-slave.inc -[connection master] -call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT."); -CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY AUTO_INCREMENT, b INT, -UNIQUE(b)); -connection slave; -connection master; -INSERT INTO t1(b) VALUES(1),(1),(2) ON DUPLICATE KEY UPDATE t1.b=10; -SELECT * FROM t1; -a b -1 10 -2 2 -connection slave; -call mtr.add_suppression("Slave SQL.*suffer.*http:..bugs.mysql.com.bug.php.id=24432"); -include/wait_for_slave_sql_error.inc [errno=1105] -Last_SQL_Error = 'Error 'master may suffer from http://bugs.mysql.com/bug.php?id=24432 so slave stops; check error log on slave for more info' on query. Default database: 'test'. Query: 'INSERT INTO t1(b) VALUES(1),(1),(2) ON DUPLICATE KEY UPDATE t1.b=10'' -SELECT * FROM t1; -a b -stop slave; -include/wait_for_slave_to_stop.inc -reset slave; -connection master; -reset master; -drop table t1; -connection slave; -start slave; -include/wait_for_slave_to_start.inc connection master; CREATE TABLE t1 ( id bigint(20) unsigned NOT NULL auto_increment, diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_mdev_17614.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_mdev_17614.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_mdev_17614.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_mdev_17614.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,129 @@ +include/master-slave.inc +[connection master] +call mtr.add_suppression("Unsafe statement written to the binary log using statement format"); +CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY , b INT, +UNIQUE(b), c int) engine=innodb; +connection slave; +connection master; +INSERT INTO t1 VALUES (1, 1, 1); +BEGIN; +INSERT INTO t1 VALUES (2, 1, 2) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT... ON DUPLICATE KEY UPDATE on a table with more than one UNIQUE KEY is unsafe +connection master1; +INSERT INTO t1 VALUES(2, 2, 3) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT... ON DUPLICATE KEY UPDATE on a table with more than one UNIQUE KEY is unsafe +connection master; +COMMIT; +SELECT * FROM t1; +a b c +1 1 2 +2 2 3 +connection slave; +include/wait_for_slave_sql_error.inc [errno=1062] +Last_SQL_Error = 'Error 'Duplicate entry '1' for key 'b'' on query. Default database: 'test'. Query: 'INSERT INTO t1 VALUES (2, 1, 2) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c)'' +#Different value from server +SELECT * FROM t1; +a b c +1 1 1 +2 2 3 +stop slave; +include/wait_for_slave_to_stop.inc +reset slave; +connection master; +reset master; +drop table t1; +connection slave; +start slave; +include/wait_for_slave_to_start.inc +connection master; +CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY auto_increment, b INT, +UNIQUE(b), c int) engine=innodb; +connection slave; +connection master; +INSERT INTO t1 VALUES (default, 1, 1); +BEGIN; +INSERT INTO t1 VALUES (default, 1, 2) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c); +connection master1; +INSERT INTO t1 VALUES(default, 2, 3) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c); +connection master; +COMMIT; +SELECT * FROM t1; +a b c +1 1 2 +3 2 3 +connection slave; +#same data as master +SELECT * FROM t1; +a b c +1 1 2 +3 2 3 +connection master; +drop table t1; +connection slave; +connection master; +CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b INT, +UNIQUE(b), c int, d int ) engine=innodb; +connection slave; +connection master; +INSERT INTO t1 VALUES (1, 1, 1, 1); +BEGIN; +INSERT INTO t1 VALUES (2, NULL, 2, 2) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT... ON DUPLICATE KEY UPDATE on a table with more than one UNIQUE KEY is unsafe +connection master1; +INSERT INTO t1 VALUES(3, NULL, 2, 3) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c); +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT... ON DUPLICATE KEY UPDATE on a table with more than one UNIQUE KEY is unsafe +connection master; +COMMIT; +SELECT * FROM t1; +a b c d +1 1 1 1 +2 NULL 2 2 +3 NULL 2 3 +connection slave; +#same data as master +SELECT * FROM t1; +a b c d +1 1 1 1 +2 NULL 2 2 +3 NULL 2 3 +connection master; +drop table t1; +connection slave; +connection master; +CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY auto_increment, b INT, +UNIQUE(b), c int) engine=innodb; +connection slave; +connection master; +INSERT INTO t1 VALUES (1, 1, 1); +BEGIN; +INSERT INTO t1 VALUES (2, 1, 2) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c); +connection master1; +INSERT INTO t1 VALUES(2, 2, 3) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c); +connection master; +COMMIT; +SELECT * FROM t1; +a b c +1 1 2 +2 2 3 +connection slave; +include/wait_for_slave_sql_error.inc [errno=1062] +Last_SQL_Error = 'Error 'Duplicate entry '1' for key 'b'' on query. Default database: 'test'. Query: 'INSERT INTO t1 VALUES (2, 1, 2) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c)'' +#Different value from server +SELECT * FROM t1; +a b c +1 1 1 +2 2 3 +stop slave; +include/wait_for_slave_to_stop.inc +reset slave; +connection master; +reset master; +drop table t1; +connection slave; +start slave; +include/wait_for_slave_to_start.inc +include/rpl_end.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_parallel_ignored_errors.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_parallel_ignored_errors.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_parallel_ignored_errors.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_parallel_ignored_errors.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,50 @@ +include/master-slave.inc +[connection master] +connection server_2; +include/stop_slave.inc +SET @old_parallel_threads=@@GLOBAL.slave_parallel_threads; +SET @old_parallel_mode=@@GLOBAL.slave_parallel_mode; +SET @old_dbug= @@GLOBAL.debug_dbug; +SET GLOBAL slave_parallel_mode='optimistic'; +SET GLOBAL slave_parallel_threads= 3; +CHANGE MASTER TO master_use_gtid=slave_pos; +CALL mtr.add_suppression("Commit failed due to failure of an earlier commit on which this one depends"); +include/start_slave.inc +connection server_1; +ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB; +CREATE TABLE t1 (a int PRIMARY KEY) ENGINE=InnoDB; +include/save_master_gtid.inc +connection server_2; +include/sync_with_master_gtid.inc +connect con_temp2,127.0.0.1,root,,test,$SERVER_MYPORT_2,; +BEGIN; +INSERT INTO t1 VALUES (32); +connection server_1; +INSERT INTO t1 VALUES (32); +connection server_2; +SET GLOBAL debug_dbug="+d,hold_worker_on_schedule"; +SET debug_sync="debug_sync_action SIGNAL reached_pause WAIT_FOR continue_worker"; +connection server_1; +SET gtid_seq_no=100; +INSERT INTO t1 VALUES (33); +connection server_2; +SET debug_sync='now WAIT_FOR reached_pause'; +connection server_1; +INSERT INTO t1 VALUES (34); +connection server_2; +connection con_temp2; +COMMIT; +connection server_2; +include/stop_slave.inc +include/assert.inc [table t1 should have zero rows where a>32] +SELECT * FROM t1 WHERE a>32; +a +DELETE FROM t1 WHERE a=32; +SET GLOBAL slave_parallel_threads=@old_parallel_threads; +SET GLOBAL slave_parallel_mode=@old_parallel_mode; +SET GLOBAL debug_dbug=@old_debug; +SET DEBUG_SYNC= 'RESET'; +include/start_slave.inc +connection server_1; +DROP TABLE t1; +include/rpl_end.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_read_only2.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_read_only2.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_read_only2.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_read_only2.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,53 @@ +include/master-slave.inc +[connection master] +# +# Ensure that read-only slave logs temporary table statements under statement based +# replication. This is related to MDEV-17863. +# +connection slave; +set global read_only=1; +connection master; +create table t1(a int) engine=MyISAM; +create temporary table tmp1 (a int) engine=MyISAM; +insert into t1 values(1); +insert into tmp1 values (2); +insert into t1 select * from tmp1; +insert into t1 values(3); +select * from t1; +a +1 +2 +3 +analyze table t1; +Table Op Msg_type Msg_text +test.t1 analyze status OK +drop table t1; +drop temporary table tmp1; +connection slave; +include/show_binlog_events.inc +Log_name Pos Event_type Server_id End_log_pos Info +slave-bin.000001 # Gtid # # GTID #-#-# +slave-bin.000001 # Query # # use `test`; create table t1(a int) engine=MyISAM +slave-bin.000001 # Gtid # # GTID #-#-# +slave-bin.000001 # Query # # use `test`; create temporary table tmp1 (a int) engine=MyISAM +slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Query # # use `test`; insert into t1 values(1) +slave-bin.000001 # Query # # COMMIT +slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Query # # use `test`; insert into tmp1 values (2) +slave-bin.000001 # Query # # COMMIT +slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Query # # use `test`; insert into t1 select * from tmp1 +slave-bin.000001 # Query # # COMMIT +slave-bin.000001 # Gtid # # BEGIN GTID #-#-# +slave-bin.000001 # Query # # use `test`; insert into t1 values(3) +slave-bin.000001 # Query # # COMMIT +slave-bin.000001 # Gtid # # GTID #-#-# +slave-bin.000001 # Query # # use `test`; analyze table t1 +slave-bin.000001 # Gtid # # GTID #-#-# +slave-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS `t1` /* generated by server */ +slave-bin.000001 # Gtid # # GTID #-#-# +slave-bin.000001 # Query # # DROP TEMPORARY TABLE IF EXISTS `test`.`tmp1` /* generated by server */ +set global read_only=0; +connection master; +include/rpl_end.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_rotate_logs.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_rotate_logs.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_rotate_logs.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_rotate_logs.result 2019-11-06 16:01:57.000000000 +0000 @@ -128,4 +128,6 @@ ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Could not find target log purge master logs before now(); End of 5.0 tests +#cleanup include/stop_slave.inc +reset slave all; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result 2019-11-06 16:01:57.000000000 +0000 @@ -560,7 +560,7 @@ INSERT INTO t5 VALUES (2, repeat(_utf8'a', 255), 2); connection slave; include/wait_for_slave_sql_error.inc [errno=1677] -Last_SQL_Error = 'Column 1 of table 'test.t5' cannot be converted from type 'char(255)' to type 'char(16)'' +Last_SQL_Error = 'Column 1 of table 'test.t5' cannot be converted from type 'char(765 octets)' to type 'char(48 octets) character set utf8'' include/rpl_reset.inc [expecting slave to stop] connection master; @@ -568,7 +568,7 @@ INSERT INTO t6 VALUES (2, repeat(_utf8'a', 255), 2); connection slave; include/wait_for_slave_sql_error.inc [errno=1677] -Last_SQL_Error = 'Column 1 of table 'test.t6' cannot be converted from type 'char(255)' to type 'char(128)'' +Last_SQL_Error = 'Column 1 of table 'test.t6' cannot be converted from type 'char(765 octets)' to type 'char(384 octets) character set utf8'' include/rpl_reset.inc [expecting slave to replicate correctly] connection master; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result 2019-11-06 16:01:57.000000000 +0000 @@ -565,7 +565,7 @@ INSERT INTO t5 VALUES (2, repeat(_utf8'a', 255), 2); connection slave; include/wait_for_slave_sql_error.inc [errno=1677] -Last_SQL_Error = 'Column 1 of table 'test.t5' cannot be converted from type 'char(255)' to type 'char(16)'' +Last_SQL_Error = 'Column 1 of table 'test.t5' cannot be converted from type 'char(765 octets)' to type 'char(48 octets) character set utf8'' include/rpl_reset.inc [expecting slave to stop] connection master; @@ -573,7 +573,7 @@ INSERT INTO t6 VALUES (2, repeat(_utf8'a', 255), 2); connection slave; include/wait_for_slave_sql_error.inc [errno=1677] -Last_SQL_Error = 'Column 1 of table 'test.t6' cannot be converted from type 'char(255)' to type 'char(128)'' +Last_SQL_Error = 'Column 1 of table 'test.t6' cannot be converted from type 'char(765 octets)' to type 'char(384 octets) character set utf8'' include/rpl_reset.inc [expecting slave to replicate correctly] connection master; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_row_colSize.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_row_colSize.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_row_colSize.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_row_colSize.result 2019-11-06 16:01:57.000000000 +0000 @@ -185,7 +185,7 @@ connection slave; START SLAVE; include/wait_for_slave_sql_error.inc [errno=1677] -Last_SQL_Error = 'Column 0 of table 'test.t1' cannot be converted from type 'char(20)' to type 'char(10)'' +Last_SQL_Error = 'Column 0 of table 'test.t1' cannot be converted from type 'char(20 octets)' to type 'char(10 octets) character set latin1'' SELECT COUNT(*) FROM t1; COUNT(*) 0 @@ -264,7 +264,7 @@ connection slave; START SLAVE; include/wait_for_slave_sql_error.inc [errno=1677] -Last_SQL_Error = 'Column 0 of table 'test.t1' cannot be converted from type 'varchar(2000)' to type 'varchar(100)'' +Last_SQL_Error = 'Column 0 of table 'test.t1' cannot be converted from type 'varchar(2000 octets)' to type 'varchar(100 octets) character set latin1'' SELECT COUNT(*) FROM t1; COUNT(*) 0 @@ -287,7 +287,7 @@ connection slave; START SLAVE; include/wait_for_slave_sql_error.inc [errno=1677] -Last_SQL_Error = 'Column 0 of table 'test.t1' cannot be converted from type 'varchar(200)' to type 'varchar(10)'' +Last_SQL_Error = 'Column 0 of table 'test.t1' cannot be converted from type 'varchar(200 octets)' to type 'varchar(10 octets) character set latin1'' SELECT COUNT(*) FROM t1; COUNT(*) 0 @@ -310,7 +310,7 @@ connection slave; START SLAVE; include/wait_for_slave_sql_error.inc [errno=1677] -Last_SQL_Error = 'Column 0 of table 'test.t1' cannot be converted from type 'varchar(2000)' to type 'varchar(1000)'' +Last_SQL_Error = 'Column 0 of table 'test.t1' cannot be converted from type 'varchar(2000 octets)' to type 'varchar(1000 octets) character set latin1'' SELECT COUNT(*) FROM t1; COUNT(*) 0 @@ -334,7 +334,7 @@ connection slave; START SLAVE; include/wait_for_slave_sql_error.inc [errno=1677] -Last_SQL_Error = 'Column 0 of table 'test.t1' cannot be converted from type 'tinyblob' to type 'tinyblob'' +Last_SQL_Error = 'Column 0 of table 'test.t1' cannot be converted from type 'longblob' to type 'tinyblob'' SELECT COUNT(*) FROM t1; COUNT(*) 0 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_row_find_row_debug.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_row_find_row_debug.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_row_find_row_debug.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_row_find_row_debug.result 2019-11-06 16:01:57.000000000 +0000 @@ -15,7 +15,8 @@ DROP TABLE t1; connection slave; # Check if any note related to long DELETE_ROWS and UPDATE_ROWS appears in the error log -Occurrences: update=1, delete=1 +FOUND 1 /The slave is applying a ROW event on behalf of an UPDATE statement on table t1 and is currently taking a considerable amount/ in mysqld.2.err +FOUND 1 /The slave is applying a ROW event on behalf of a DELETE statement on table t1 and is currently taking a considerable amount/ in mysqld.2.err include/stop_slave.inc SET GLOBAL debug_dbug = ''; SET GLOBAL log_warnings = 2; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_row_type_conv_err_msg.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_row_type_conv_err_msg.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_row_type_conv_err_msg.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_row_type_conv_err_msg.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,164 @@ +include/master-slave.inc +[connection master] +#################################################################### +# Test Case1: Improved error message with charset information +#################################################################### +connection master; +SET SQL_LOG_BIN=0; +CREATE TABLE t1 (c1 VARCHAR(1) CHARACTER SET 'utf8mb3'); +SET SQL_LOG_BIN=1; +connection slave; +CREATE TABLE t1 (c1 VARCHAR(1) CHARACTER SET 'utf8mb4'); +connection master; +INSERT INTO t1 VALUES ('a'); +connection slave; +include/wait_for_slave_sql_error.inc [errno=1677] +FOUND 1 /\'varchar\(3 octets\)\' to type \'varchar\(4 octets\) character set utf8mb4\'/ in mysqld.2.err +connection master; +DROP TABLE t1; +connection slave; +DROP TABLE t1; +include/rpl_reset.inc +#################################################################### +# Test Case2: Improved error message with charset information for CHAR +# type +#################################################################### +connection master; +SET SQL_LOG_BIN=0; +CREATE TABLE t1 (c1 CHAR(1) CHARACTER SET 'utf8mb3'); +SET SQL_LOG_BIN=1; +connection slave; +CREATE TABLE t1 (c1 CHAR(1) CHARACTER SET 'utf8mb4'); +connection master; +INSERT INTO t1 VALUES ('a'); +connection slave; +include/wait_for_slave_sql_error.inc [errno=1677] +FOUND 1 /\'char\(3 octets\)\' to type \'char\(4 octets\) character set utf8mb4\'/ in mysqld.2.err +connection master; +DROP TABLE t1; +connection slave; +DROP TABLE t1; +include/rpl_reset.inc +#################################################################### +# Test Case3: For BLOB type fileds, when type conversion failed on +# slave, the errormessage had incorrect type names. +#################################################################### +connection master; +SET SQL_LOG_BIN=0; +CREATE TABLE t1 (c1 LONGBLOB); +SET SQL_LOG_BIN=1; +connection slave; +CREATE TABLE t1 (c1 TINYBLOB); +connection master; +INSERT INTO t1 VALUES ('a'); +connection slave; +include/wait_for_slave_sql_error.inc [errno=1677] +FOUND 1 /\'longblob\' to type \'tinyblob\'/ in mysqld.2.err +connection master; +DROP TABLE t1; +connection slave; +DROP TABLE t1; +include/rpl_reset.inc +#################################################################### +# Test Case4: Verifies varbinary to binary type conversion failure +# specific error message. +#################################################################### +connection master; +SET SQL_LOG_BIN=0; +CREATE TABLE t1 (c1 VARBINARY(10)); +SET SQL_LOG_BIN=1; +connection slave; +CREATE TABLE t1 (c1 BINARY(10)); +connection master; +INSERT INTO t1 VALUES ('a'); +connection slave; +include/wait_for_slave_sql_error.inc [errno=1677] +FOUND 1 /\'varbinary\(10\)\' to type \'binary\(10\)\'/ in mysqld.2.err +connection master; +DROP TABLE t1; +connection slave; +DROP TABLE t1; +include/rpl_reset.inc +#################################################################### +# Test Case5: Verifies binary to varbinary type conversion failure +# specific error message. +#################################################################### +connection master; +SET SQL_LOG_BIN=0; +CREATE TABLE t1 (c1 BINARY(10)); +SET SQL_LOG_BIN=1; +connection slave; +CREATE TABLE t1 (c1 VARBINARY(10)); +connection master; +INSERT INTO t1 VALUES ('a'); +connection slave; +include/wait_for_slave_sql_error.inc [errno=1677] +FOUND 1 /\'binary\(10\)\' to type \'varbinary\(10\)\'/ in mysqld.2.err +connection master; +DROP TABLE t1; +connection slave; +DROP TABLE t1; +include/rpl_reset.inc +#################################################################### +# Test Case6: Verifies binary to binary type conversion failure +# specific error message. +#################################################################### +connection master; +SET SQL_LOG_BIN=0; +CREATE TABLE t1 (c1 BINARY(1)); +SET SQL_LOG_BIN=1; +connection slave; +CREATE TABLE t1 (c1 BINARY(10)); +connection master; +INSERT INTO t1 VALUES ('a'); +connection slave; +include/wait_for_slave_sql_error.inc [errno=1677] +FOUND 1 /\'binary\(1\)\' to type \'binary\(10\)\'/ in mysqld.2.err +connection master; +DROP TABLE t1; +connection slave; +DROP TABLE t1; +include/rpl_reset.inc +#################################################################### +# Test Case7: Verifies char to blob type conversion failure +# specific error message. BLOB field on slave has no +# associated character set hence the master side field +# is also considered as binary. +#################################################################### +connection master; +SET SQL_LOG_BIN=0; +CREATE TABLE t1 (c1 CHAR(1)); +SET SQL_LOG_BIN=1; +connection slave; +CREATE TABLE t1 (c1 BLOB); +connection master; +INSERT INTO t1 VALUES ('a'); +connection slave; +include/wait_for_slave_sql_error.inc [errno=1677] +FOUND 1 /\'binary\(1\)\' to type \'blob\'/ in mysqld.2.err +connection master; +DROP TABLE t1; +connection slave; +DROP TABLE t1; +include/rpl_reset.inc +#################################################################### +# Test Case8: Verifies char to text type conversion failure +# specific error message. +#################################################################### +connection master; +SET SQL_LOG_BIN=0; +CREATE TABLE t1 (c1 CHAR(1)); +SET SQL_LOG_BIN=1; +connection slave; +CREATE TABLE t1 (c1 TEXT); +connection master; +INSERT INTO t1 VALUES ('a'); +connection slave; +include/wait_for_slave_sql_error.inc [errno=1677] +FOUND 1 /\'char\(1 octets\)\' to type \'text\'/ in mysqld.2.err +connection master; +DROP TABLE t1; +connection slave; +DROP TABLE t1; +include/rpl_reset.inc +include/rpl_end.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_semi_sync_slave_reply_fail.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_semi_sync_slave_reply_fail.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_semi_sync_slave_reply_fail.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_semi_sync_slave_reply_fail.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,40 @@ +include/master-slave.inc +[connection master] +connection slave; +include/stop_slave.inc +connection master; +call mtr.add_suppression("Timeout waiting for reply of binlog*"); +set global rpl_semi_sync_master_enabled = ON; +SET @@GLOBAL.rpl_semi_sync_master_timeout=100; +create table t1 (i int); +connection slave; +set global rpl_semi_sync_slave_enabled = ON; +CALL mtr.add_suppression("Semi-sync slave net_flush*"); +SET @save_debug= @@global.debug; +SET GLOBAL debug_dbug="+d,semislave_failed_net_flush"; +include/start_slave.inc +connection master; +connection slave; +"Assert that the net_fulsh() reply failed is present in slave error log. +FOUND 1 /Semi-sync slave net_flush\(\) reply failed/ in mysqld.2.err +"Assert that Slave IO thread is up and running." +SHOW STATUS LIKE 'Slave_running'; +Variable_name Value +Slave_running ON +Slave_IO_Running= Yes +"Clear the network failure simulation." +SET GLOBAL debug_dbug= @save_debug; +connection master; +insert into t1 values (10); +connection slave; +connection slave; +# Compare the tables on master and slave. +include/diff_tables.inc [master:t1, slave:t1] +connection master; +drop table t1; +connection slave; +set global rpl_semi_sync_slave_enabled = OFF; +connection master; +set global rpl_semi_sync_master_enabled = OFF; +SET @@GLOBAL.rpl_semi_sync_master_timeout = 10000; +include/rpl_end.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_skip_error.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_skip_error.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_skip_error.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_skip_error.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,7 @@ include/master-slave.inc [connection master] +connection slave; +connection master; ==== Test Without sql_mode=strict_trans_tables ==== create table t1 (n int not null primary key); connection slave; @@ -105,9 +107,7 @@ `data` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 -show global status like 'slave_skipped_errors'; -Variable_name Value -Slave_skipped_errors 4 +# Slave_skipped_errros = 4 connection master; INSERT INTO t2 VALUES(1, 1); INSERT INTO t2 VALUES(2, 1); @@ -119,9 +119,7 @@ UPDATE t2 SET id= id + 3, data = 2; connection slave; -show global status like 'slave_skipped_errors'; -Variable_name Value -Slave_skipped_errors 5 +# Slave_skipped_errros = 5 **** We cannot execute a select as there are differences in the **** behavior between STMT and RBR. ==== Clean Up ==== diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_sync_with_innodb_thd_conc.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_sync_with_innodb_thd_conc.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_sync_with_innodb_thd_conc.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_sync_with_innodb_thd_conc.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,18 @@ +include/master-slave.inc +[connection master] +connection slave; +SET @old_innodb_thread_concurrency := @@innodb_thread_concurrency; +SET @old_innodb_thread_sleep_delay := @@innodb_thread_sleep_delay; +SET GLOBAL innodb_thread_concurrency = 100; +connection master; +CREATE TABLE t(f INT) ENGINE=INNODB; +INSERT INTO t VALUES (10); +connection slave; +include/diff_tables.inc [master:t, slave:t] +"===== Clean up=======" +connection master; +DROP TABLE t; +connection slave; +SET GLOBAL innodb_thread_concurrency = @old_innodb_thread_concurrency; +SET GLOBAL innodb_thread_sleep_delay = @old_innodb_thread_sleep_delay; +include/rpl_end.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_unsafe_statements.result mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_unsafe_statements.result --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/r/rpl_unsafe_statements.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/r/rpl_unsafe_statements.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,6 @@ include/master-slave.inc [connection master] +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); CREATE TABLE t1(id INT AUTO_INCREMENT, i INT, PRIMARY KEY (id)) ENGINE=INNODB; CREATE TABLE t2(id INT AUTO_INCREMENT, i INT, PRIMARY KEY (id)) ENGINE=INNODB; CREATE TRIGGER trig1 AFTER INSERT ON t1 @@ -49,9 +50,13 @@ DROP TABLE t1; CREATE TABLE t1(i INT, j INT, UNIQUE KEY(i), UNIQUE KEY(j)) ENGINE=INNODB; INSERT INTO t1 (i,j) VALUES (1,2) ON DUPLICATE KEY UPDATE j=j+1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT... ON DUPLICATE KEY UPDATE on a table with more than one UNIQUE KEY is unsafe START TRANSACTION; LOCK TABLES t1 WRITE; INSERT INTO t1 (i,j) VALUES (1,2) ON DUPLICATE KEY UPDATE j=j+1; +Warnings: +Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT... ON DUPLICATE KEY UPDATE on a table with more than one UNIQUE KEY is unsafe UNLOCK TABLES; COMMIT; connection slave; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/mdev_17588.test mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/mdev_17588.test --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/mdev_17588.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/mdev_17588.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,23 +1,28 @@ --source include/master-slave.inc --source include/have_innodb.inc +--connection slave +--source include/stop_slave.inc +CHANGE MASTER TO master_use_gtid=slave_pos; +--source include/start_slave.inc + --connection master create table t1 (a int) engine=innodb; create table t2 (a int); create table t3 (a int) engine=innodb; ---source include/save_master_gtid.inc +--save_master_pos --connection slave # Using ER_UNKNOWN_STORAGE_ENGINE wont work let $slave_sql_errno= 1286; ---source include/wait_for_slave_sql_error.inc ---let $status_items= Last_Error ---source include/show_slave_status.inc -STOP SLAVE IO_THREAD; -source include/wait_for_slave_to_stop.inc; -SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; ---source include/start_slave.inc ---source include/sync_with_master_gtid.inc +--source include/wait_for_slave_sql_error_and_skip.inc +--sync_with_master + +--let $assert_text= Status should be 'Slave has read all relay log...' +--let $assert_cond= "[SHOW SLAVE STATUS, Slave_SQL_Running_State, 1]" +#Like "Slave has read all relay log%" +--source include/rpl_assert.inc + show tables; show create table t2; --error ER_NO_SUCH_TABLE diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_000011.test mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_000011.test --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_000011.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_000011.test 2019-11-06 16:01:57.000000000 +0000 @@ -5,19 +5,19 @@ # source include/master-slave.inc; - +--connection slave +let $initial_com_insert= query_get_value(show global status like "Com_insert", Value, 1); +--connection master create table t1 (n int); insert into t1 values(1); -sync_slave_with_master; -show global status like 'com_insert'; +sync_slave_with_master; +let $current_com_insert= query_get_value(show global status like "Com_insert", Value, 1); +--let $delta_com_insert= `select $current_com_insert - $initial_com_insert from dual` +--echo # Com_insert = $delta_com_insert stop slave; -# Temporary work-around for bug MDEV-8301. There is a small window during -# thread exit where the local status values of a thread are counted twice -# in the global status. Remove this wait_condition.inc once MDEV-8301 is -# fixed. ---let $wait_condition= SELECT variable_value=1 FROM information_schema.global_status WHERE variable_name="Com_insert"; ---source include/wait_condition.inc -show global status like 'com_insert'; +let $current_com_insert= query_get_value(show global status like "Com_insert", Value, 1); +--let $delta_com_insert= `select $current_com_insert - $initial_com_insert from dual` +--echo # Com_insert = $delta_com_insert --source include/wait_for_slave_to_stop.inc start slave; --source include/wait_for_slave_to_start.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_create_or_replace_fail.test mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_create_or_replace_fail.test --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_create_or_replace_fail.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_create_or_replace_fail.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,56 @@ +# ==== Purpose ==== +# +# Test verifies that failed CREATE OR REPLACE TEMPORARY TABLE statement which +# dropped the table but failed at a later stage of creation of temporary table +# is written to binarylog in row based replication. +# +# ==== Implementation ==== +# +# Steps: +# 0 - Have mixed based replication mode. +# 1 - Create a temporary table. It will be replicated as mixed replication +# mode is in use. +# 2 - Execute an unsafe statement which will switch current statement +# binlog format to 'ROW'. i.e If binlog_format=MIXED, there are open +# temporary tables, and an unsafe statement is executed, then subsequent +# statements are logged in row format. +# 3 - Execute a CREATE OR REPLACE TEMPORARY TABLE statement which tries to +# create partitions on temporary table. Since it is not supported it will +# fail. +# 4 - Check the binary log output to ensure that the failed statement is +# written to the binary log. +# 5 - Slave should be up and running and in sync with master. +# +# ==== References ==== +# +# MDEV-18930: Failed CREATE OR REPLACE TEMPORARY not written into binary log +# makes data on master and slave diverge +# + +--source include/have_partition.inc +--source include/have_binlog_format_mixed.inc +--source include/master-slave.inc + +CREATE TEMPORARY TABLE t1 (a INT NOT NULL); + +# Execute an unsafe statement which switches replication mode internally from +# "STATEMENT" to "ROW". +--error ER_NO_SUCH_TABLE +LOAD DATA INFILE 'x' INTO TABLE x; + +--error ER_PARTITION_NO_TEMPORARY +CREATE OR REPLACE TEMPORARY TABLE t1 (x INT) PARTITION BY HASH(x); + +--echo "************** DROP TEMPORARY TABLE Should be present in Binary log **************" +--source include/show_binlog_events.inc + +CREATE TABLE t1 (b INT); +INSERT INTO t1 VALUES (NULL); +--sync_slave_with_master + +# Cleanup +--connection master +DROP TABLE t1; + +--source include/rpl_end.inc + diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_failed_drop_tbl_binlog.test mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_failed_drop_tbl_binlog.test --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_failed_drop_tbl_binlog.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_failed_drop_tbl_binlog.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,64 @@ +# ==== Purpose ==== +# +# Check that when the execution of a DROP TABLE command with single table +# fails it should not be written to the binary log. Also test that when the +# execution of DROP TABLE command with multiple tables fails the command +# should be written into the binary log. +# +# ==== Implementation ==== +# +# Steps: +# 0 - Create tables named t1, t2, t3 +# 1 - Execute DROP TABLE t1,t2,t3 command. +# 2 - Kill the DROP TABLE command while it is trying to drop table 't2'. +# 3 - Verify that tables t2,t3 are present after the DROP command execution +# was interrupted. +# 4 - Check that table 't1' is present in binary log as part of DROP +# command. +# +# ==== References ==== +# +# MDEV-20348: DROP TABLE IF EXISTS killed on master but was replicated. +# + +--source include/have_innodb.inc +--source include/have_debug_sync.inc +--source include/have_binlog_format_statement.inc +--source include/master-slave.inc + +create table t1 (a int) engine=innodb; +create table t2 (b longblob) engine=innodb; +create table t3 (c int) engine=innodb; +insert into t2 values (repeat('b',1024*1024)); +insert into t2 select * from t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +insert into t2 select * from t2; +let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1); + +let $id=`select connection_id()`; +set debug_sync='rm_table_no_locks_before_delete_table SIGNAL nogo WAIT_FOR go EXECUTE 2'; +send drop table t1, t2, t3; + +connect foo,localhost,root; +set debug_sync='now SIGNAL go'; +let $wait_condition=select 1 from information_schema.processlist where state like 'debug sync point:%'; +source include/wait_condition.inc; +--replace_result $id CONNECTION_ID +eval kill query $id; + +connection master; +error ER_QUERY_INTERRUPTED; +reap; + +--echo "Tables t2 and t3 should be listed" +SHOW TABLES; +--source include/show_binlog_events.inc +--sync_slave_with_master +drop table t2, t3; + +connection master; +set debug_sync='RESET'; +drop table t2, t3; + +source include/rpl_end.inc; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_ip_mix2.test mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_ip_mix2.test --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_ip_mix2.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_ip_mix2.test 2019-11-06 16:01:57.000000000 +0000 @@ -45,3 +45,5 @@ # clean up CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_USER='root'; +connection slave; +reset slave all; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_ip_mix.test mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_ip_mix.test --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_ip_mix.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_ip_mix.test 2019-11-06 16:01:57.000000000 +0000 @@ -44,3 +44,5 @@ # clean up CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_USER='root'; +--connection slave +reset slave all; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_known_bugs_detection.test mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_known_bugs_detection.test --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_known_bugs_detection.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_known_bugs_detection.test 2019-11-06 16:01:57.000000000 +0000 @@ -14,45 +14,6 @@ source include/master-slave.inc; -call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT."); - -# -# This is to test that slave properly detects if -# master may suffer from: -# BUG#24432 "INSERT... ON DUPLICATE KEY UPDATE skips auto_increment values" -# (i.e. on master, INSERT ON DUPLICATE KEY UPDATE is used and manipulates -# an auto_increment column, and is binlogged statement-based). -# - -# testcase with INSERT VALUES -CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY AUTO_INCREMENT, b INT, -UNIQUE(b)); -sync_slave_with_master; -connection master; -INSERT INTO t1(b) VALUES(1),(1),(2) ON DUPLICATE KEY UPDATE t1.b=10; -SELECT * FROM t1; -connection slave; - -# show the error message -#1105 = ER_UNKNOWN_ERROR ---let $slave_sql_errno= 1105 ---let $show_slave_sql_error= 1 -call mtr.add_suppression("Slave SQL.*suffer.*http:..bugs.mysql.com.bug.php.id=24432"); ---source include/wait_for_slave_sql_error.inc -# show that it was not replicated -SELECT * FROM t1; - -# restart replication for the next testcase -stop slave; ---source include/wait_for_slave_to_stop.inc -reset slave; -connection master; -reset master; -drop table t1; -connection slave; -start slave; ---source include/wait_for_slave_to_start.inc - # testcase with INSERT SELECT connection master; CREATE TABLE t1 ( diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_mdev_17614.test mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_mdev_17614.test --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_mdev_17614.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_mdev_17614.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,121 @@ +source include/have_debug.inc; +source include/have_innodb.inc; +-- source include/have_binlog_format_statement.inc +source include/master-slave.inc; +# MDEV-17614 +# INSERT on dup key update is replication unsafe +# There can be three case +# 1. 2 unique key, Replication is unsafe. +# 2. 2 unique key , with one auto increment key, Safe to replicate because Innodb will acquire gap lock +# 3. n no of unique keys (n>1) but insert is only in 1 unique key +# 4. 2 unique key , with one auto increment key(but user gives auto inc value), unsafe to replicate + +# Case 1 +call mtr.add_suppression("Unsafe statement written to the binary log using statement format"); +CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY , b INT, +UNIQUE(b), c int) engine=innodb; +sync_slave_with_master; +connection master; +INSERT INTO t1 VALUES (1, 1, 1); +BEGIN; +INSERT INTO t1 VALUES (2, 1, 2) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c); + --connection master1 + INSERT INTO t1 VALUES(2, 2, 3) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c); +--connection master +COMMIT; +SELECT * FROM t1; +--connection slave +# show the error message +--let $slave_sql_errno= 1062 +--let $show_slave_sql_error= 1 +--source include/wait_for_slave_sql_error.inc +--echo #Different value from server +SELECT * FROM t1; + +# restart replication for the next testcase +stop slave; +--source include/wait_for_slave_to_stop.inc +reset slave; +connection master; +reset master; +drop table t1; +connection slave; +start slave; +--source include/wait_for_slave_to_start.inc +# Case 2 +--connection master +CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY auto_increment, b INT, +UNIQUE(b), c int) engine=innodb; +sync_slave_with_master; +connection master; +INSERT INTO t1 VALUES (default, 1, 1); +BEGIN; +INSERT INTO t1 VALUES (default, 1, 2) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c); + --connection master1 + INSERT INTO t1 VALUES(default, 2, 3) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c); +--connection master +COMMIT; +SELECT * FROM t1; +--sync_slave_with_master +--echo #same data as master +SELECT * FROM t1; + +connection master; +drop table t1; +--sync_slave_with_master + +# Case 3 +--connection master +CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b INT, +UNIQUE(b), c int, d int ) engine=innodb; +sync_slave_with_master; +connection master; +INSERT INTO t1 VALUES (1, 1, 1, 1); +BEGIN; +INSERT INTO t1 VALUES (2, NULL, 2, 2) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c); + --connection master1 + INSERT INTO t1 VALUES(3, NULL, 2, 3) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c); +--connection master +COMMIT; +SELECT * FROM t1; +--sync_slave_with_master +--echo #same data as master +SELECT * FROM t1; +connection master; +drop table t1; +--sync_slave_with_master + +# Case 4 +--connection master +CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY auto_increment, b INT, +UNIQUE(b), c int) engine=innodb; +sync_slave_with_master; +connection master; +INSERT INTO t1 VALUES (1, 1, 1); +BEGIN; +INSERT INTO t1 VALUES (2, 1, 2) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c); + --connection master1 + INSERT INTO t1 VALUES(2, 2, 3) ON DUPLICATE KEY UPDATE b=VALUES(b), c=VALUES(c); +--connection master +COMMIT; +SELECT * FROM t1; +--connection slave +# show the error message +--let $slave_sql_errno= 1062 +--let $show_slave_sql_error= 1 +--source include/wait_for_slave_sql_error.inc +--echo #Different value from server +SELECT * FROM t1; + +# restart replication for the next testcase +stop slave; +--source include/wait_for_slave_to_stop.inc +reset slave; +connection master; +reset master; +drop table t1; +connection slave; +start slave; +--source include/wait_for_slave_to_start.inc + +--source include/rpl_end.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_parallel_ignored_errors.test mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_parallel_ignored_errors.test --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_parallel_ignored_errors.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_parallel_ignored_errors.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--source include/rpl_parallel_ignored_errors.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_read_only2.test mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_read_only2.test --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_read_only2.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_read_only2.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,30 @@ +--source include/have_binlog_format_statement.inc +--source include/master-slave.inc + +--echo # +--echo # Ensure that read-only slave logs temporary table statements under statement based +--echo # replication. This is related to MDEV-17863. +--echo # + +connection slave; +set global read_only=1; + +connection master; + +create table t1(a int) engine=MyISAM; +create temporary table tmp1 (a int) engine=MyISAM; +insert into t1 values(1); +insert into tmp1 values (2); +insert into t1 select * from tmp1; +insert into t1 values(3); +select * from t1; +analyze table t1; +drop table t1; +drop temporary table tmp1; + +sync_slave_with_master; +--source include/show_binlog_events.inc +set global read_only=0; +connection master; + +--source include/rpl_end.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_rotate_logs.test mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_rotate_logs.test --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_rotate_logs.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_rotate_logs.test 2019-11-06 16:01:57.000000000 +0000 @@ -193,4 +193,8 @@ purge master logs before now(); --echo End of 5.0 tests +--echo #cleanup + +--remove_file $MYSQLD_SLAVE_DATADIR/master.info --source include/stop_slave.inc +reset slave all; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_row_find_row_debug.test mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_row_find_row_debug.test --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_row_find_row_debug.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_row_find_row_debug.test 2019-11-06 16:01:57.000000000 +0000 @@ -42,16 +42,11 @@ --sync_slave_with_master --echo # Check if any note related to long DELETE_ROWS and UPDATE_ROWS appears in the error log -perl; - use strict; - my $log_error= $ENV{'LOG_ERROR'} or die "LOG_ERROR not set"; - open(FILE, "$log_error") or die("Unable to open $log_error: $!\n"); - my $upd_count = () = grep(/The slave is applying a ROW event on behalf of an UPDATE statement on table t1 and is currently taking a considerable amount/g,); - seek(FILE, 0, 0) or die "Can't seek to beginning of file: $!"; - my $del_count = () = grep(/The slave is applying a ROW event on behalf of a DELETE statement on table t1 and is currently taking a considerable amount/g,); - print "Occurrences: update=$upd_count, delete=$del_count\n"; - close(FILE); -EOF +--let SEARCH_FILE=$log_error_ +--let SEARCH_PATTERN=The slave is applying a ROW event on behalf of an UPDATE statement on table t1 and is currently taking a considerable amount +--source include/search_pattern_in_file.inc +--let SEARCH_PATTERN=The slave is applying a ROW event on behalf of a DELETE statement on table t1 and is currently taking a considerable amount +--source include/search_pattern_in_file.inc # cleanup --source include/stop_slave.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_row_type_conv_err_msg.test mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_row_type_conv_err_msg.test --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_row_type_conv_err_msg.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_row_type_conv_err_msg.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,356 @@ +# ==== Purpose ==== +# +# Test verifies that when slave side type conversion fails in row based +# replication, more informative error message is displayed. It also verifies +# that in the case of blob fields appropriate type name is displayed in error +# message. +# +# ==== Implementation ==== +# +# Steps: +# Test case1: +# 1. Create a table on master with VARCHAR filed and charset +# 'utf8mb3'. +# 2. Create a table on slave with VARCHAR field and charset +# 'utf8mb4'. +# 3. Insert a tuple on master. +# 4. Verify that slave provides more informative error message with +# respect to difference in charsets. +# Test case2: Repeat same steps as above for CHAR field +# Test case3: +# 1. Create a table on master with LONGBLOB field. +# 2. Create a table on slave with TINYBLOB field. +# 3. Insert a tuple on master. +# 4. Verify that error message displayed on slave clearly states type +# conversion failure from 'longblob' to 'tinyblob'. +# 5. Also verify that error message doesn't show additional details +# of charset when not required. +# Test Case4: Verifies varbinary to binary type conversion failure specific +# error message. +# Test Case5: Verifies binary to varbinary type conversion failure specific +# error message. +# Test Case6: Verifies binary to binary type conversion failure specific +# error message. +# Test Case7: Verifies char to blob type conversion failure specific +# error message. +# Test Case8: Verifies char to text type conversion failure specific +# error message. +# ==== References ==== +# +# MDEV-19925: Column ... cannot be converted from type 'varchar(20)' to type +# 'varchar(20)' +# + +--source include/have_binlog_format_row.inc +# Inorder to grep a specific error pattern in error log a fresh error log +# needs to be generated. +--source include/force_restart.inc +--source include/master-slave.inc + +--echo #################################################################### +--echo # Test Case1: Improved error message with charset information +--echo #################################################################### +--connection master +SET SQL_LOG_BIN=0; +CREATE TABLE t1 (c1 VARCHAR(1) CHARACTER SET 'utf8mb3'); +SET SQL_LOG_BIN=1; + +--connection slave +CREATE TABLE t1 (c1 VARCHAR(1) CHARACTER SET 'utf8mb4'); + +--connection master +INSERT INTO t1 VALUES ('a'); + +--connection slave +--let $slave_sql_errno= 1677 +--source include/wait_for_slave_sql_error.inc + +# Check error log for correct messages. +let $log_error_= `SELECT @@GLOBAL.log_error`; +if(!$log_error_) +{ + # MySQL Server on windows is started with --console and thus + # does not know the location of its .err log, use default location + let $log_error_ = $MYSQLTEST_VARDIR/log/mysqld.2.err; +} + +# Error msg before: Column 0 of table 'test.t1' cannot be converted from type 'varchar(3)' to type 'varchar(1)' +# Error msg after : Column 0 of table 'test.t1' cannot be converted from type 'varchar(3 octets)' to type 'varchar(4 octets) character set utf8mb4' +--let SEARCH_FILE=$log_error_ +--let SEARCH_PATTERN=\'varchar\(3 octets\)\' to type \'varchar\(4 octets\) character set utf8mb4\' +--source include/search_pattern_in_file.inc + +--connection master +DROP TABLE t1; +--connection slave +DROP TABLE t1; +--let $rpl_only_running_threads= 1 +--source include/rpl_reset.inc + +--echo #################################################################### +--echo # Test Case2: Improved error message with charset information for CHAR +--echo # type +--echo #################################################################### +--connection master +SET SQL_LOG_BIN=0; +CREATE TABLE t1 (c1 CHAR(1) CHARACTER SET 'utf8mb3'); +SET SQL_LOG_BIN=1; + +--connection slave +CREATE TABLE t1 (c1 CHAR(1) CHARACTER SET 'utf8mb4'); + +--connection master +INSERT INTO t1 VALUES ('a'); + +--connection slave +--let $slave_sql_errno= 1677 +--source include/wait_for_slave_sql_error.inc + +# Error msg before: Column 0 of table 'test.t1' cannot be converted from type 'char(0)' to type 'char(1)' +# Error msg after : Column 0 of table 'test.t1' cannot be converted from type 'char(3 octets)' to type 'char(4 octets) character set utf8mb4)' +--let SEARCH_FILE=$log_error_ +--let SEARCH_PATTERN=\'char\(3 octets\)\' to type \'char\(4 octets\) character set utf8mb4\' +--source include/search_pattern_in_file.inc + +--connection master +DROP TABLE t1; +--connection slave +DROP TABLE t1; +--let $rpl_only_running_threads= 1 +--source include/rpl_reset.inc + +--echo #################################################################### +--echo # Test Case3: For BLOB type fileds, when type conversion failed on +--echo # slave, the errormessage had incorrect type names. +--echo #################################################################### +--connection master +SET SQL_LOG_BIN=0; +CREATE TABLE t1 (c1 LONGBLOB); +SET SQL_LOG_BIN=1; + +--connection slave +CREATE TABLE t1 (c1 TINYBLOB); + +--connection master +INSERT INTO t1 VALUES ('a'); + +--connection slave +--let $slave_sql_errno= 1677 +--source include/wait_for_slave_sql_error.inc + +# Error msg before: Column 0 of table 'test.t1' cannot be converted from type 'tinyblob' to type 'tinyblob' +# Error msg after : Column 0 of table 'test.t1' cannot be converted from type 'longblob' to type 'tinyblob' +--let SEARCH_FILE=$log_error_ +--let SEARCH_PATTERN=\'longblob\' to type \'tinyblob\' +--source include/search_pattern_in_file.inc + +--connection master +DROP TABLE t1; +--connection slave +DROP TABLE t1; +--let $rpl_only_running_threads= 1 +--source include/rpl_reset.inc + +--echo #################################################################### +--echo # Test Case4: Verifies varbinary to binary type conversion failure +--echo # specific error message. +--echo #################################################################### +--connection master +SET SQL_LOG_BIN=0; +CREATE TABLE t1 (c1 VARBINARY(10)); +SET SQL_LOG_BIN=1; + +--connection slave +CREATE TABLE t1 (c1 BINARY(10)); + +--connection master +INSERT INTO t1 VALUES ('a'); + +--connection slave +--let $slave_sql_errno= 1677 +--source include/wait_for_slave_sql_error.inc + +# Check error log for correct messages. +let $log_error_= `SELECT @@GLOBAL.log_error`; +if(!$log_error_) +{ + # MySQL Server on windows is started with --console and thus + # does not know the location of its .err log, use default location + let $log_error_ = $MYSQLTEST_VARDIR/log/mysqld.2.err; +} + +# Expected Error : Column 0 of table 'test.t1' cannot be converted from type 'varbinary(10)' to type 'binary(10)' +--let SEARCH_FILE=$log_error_ +--let SEARCH_PATTERN=\'varbinary\(10\)\' to type \'binary\(10\)\' +--source include/search_pattern_in_file.inc + +--connection master +DROP TABLE t1; +--connection slave +DROP TABLE t1; +--let $rpl_only_running_threads= 1 +--source include/rpl_reset.inc + +--echo #################################################################### +--echo # Test Case5: Verifies binary to varbinary type conversion failure +--echo # specific error message. +--echo #################################################################### +--connection master +SET SQL_LOG_BIN=0; +CREATE TABLE t1 (c1 BINARY(10)); +SET SQL_LOG_BIN=1; + +--connection slave +CREATE TABLE t1 (c1 VARBINARY(10)); + +--connection master +INSERT INTO t1 VALUES ('a'); + +--connection slave +--let $slave_sql_errno= 1677 +--source include/wait_for_slave_sql_error.inc + +# Check error log for correct messages. +let $log_error_= `SELECT @@GLOBAL.log_error`; +if(!$log_error_) +{ + # MySQL Server on windows is started with --console and thus + # does not know the location of its .err log, use default location + let $log_error_ = $MYSQLTEST_VARDIR/log/mysqld.2.err; +} + +# Expected Error : Column 0 of table 'test.t1' cannot be converted from type 'binary(10)' to type 'varbinary(10)' +--let SEARCH_FILE=$log_error_ +--let SEARCH_PATTERN=\'binary\(10\)\' to type \'varbinary\(10\)\' +--source include/search_pattern_in_file.inc + +--connection master +DROP TABLE t1; +--connection slave +DROP TABLE t1; +--let $rpl_only_running_threads= 1 +--source include/rpl_reset.inc + +--echo #################################################################### +--echo # Test Case6: Verifies binary to binary type conversion failure +--echo # specific error message. +--echo #################################################################### +--connection master +SET SQL_LOG_BIN=0; +CREATE TABLE t1 (c1 BINARY(1)); +SET SQL_LOG_BIN=1; + +--connection slave +CREATE TABLE t1 (c1 BINARY(10)); + +--connection master +INSERT INTO t1 VALUES ('a'); + +--connection slave +--let $slave_sql_errno= 1677 +--source include/wait_for_slave_sql_error.inc + +# Check error log for correct messages. +let $log_error_= `SELECT @@GLOBAL.log_error`; +if(!$log_error_) +{ + # MySQL Server on windows is started with --console and thus + # does not know the location of its .err log, use default location + let $log_error_ = $MYSQLTEST_VARDIR/log/mysqld.2.err; +} + +# Expected Error : Column 0 of table 'test.t1' cannot be converted from type 'binary(1)' to type 'binary(10)' +--let SEARCH_FILE=$log_error_ +--let SEARCH_PATTERN=\'binary\(1\)\' to type \'binary\(10\)\' +--source include/search_pattern_in_file.inc + +--connection master +DROP TABLE t1; +--connection slave +DROP TABLE t1; +--let $rpl_only_running_threads= 1 +--source include/rpl_reset.inc + +--echo #################################################################### +--echo # Test Case7: Verifies char to blob type conversion failure +--echo # specific error message. BLOB field on slave has no +--echo # associated character set hence the master side field +--echo # is also considered as binary. +--echo #################################################################### +--connection master +SET SQL_LOG_BIN=0; +CREATE TABLE t1 (c1 CHAR(1)); +SET SQL_LOG_BIN=1; + +--connection slave +CREATE TABLE t1 (c1 BLOB); + +--connection master +INSERT INTO t1 VALUES ('a'); + +--connection slave +--let $slave_sql_errno= 1677 +--source include/wait_for_slave_sql_error.inc + +# Check error log for correct messages. +let $log_error_= `SELECT @@GLOBAL.log_error`; +if(!$log_error_) +{ + # MySQL Server on windows is started with --console and thus + # does not know the location of its .err log, use default location + let $log_error_ = $MYSQLTEST_VARDIR/log/mysqld.2.err; +} + +# Expected Error : Column 0 of table 'test.t1' cannot be converted from type 'binary(1)' to type 'binary(10)' +--let SEARCH_FILE=$log_error_ +--let SEARCH_PATTERN=\'binary\(1\)\' to type \'blob\' +--source include/search_pattern_in_file.inc + +--connection master +DROP TABLE t1; +--connection slave +DROP TABLE t1; +--let $rpl_only_running_threads= 1 +--source include/rpl_reset.inc + +--echo #################################################################### +--echo # Test Case8: Verifies char to text type conversion failure +--echo # specific error message. +--echo #################################################################### +--connection master +SET SQL_LOG_BIN=0; +CREATE TABLE t1 (c1 CHAR(1)); +SET SQL_LOG_BIN=1; + +--connection slave +CREATE TABLE t1 (c1 TEXT); + +--connection master +INSERT INTO t1 VALUES ('a'); + +--connection slave +--let $slave_sql_errno= 1677 +--source include/wait_for_slave_sql_error.inc + +# Check error log for correct messages. +let $log_error_= `SELECT @@GLOBAL.log_error`; +if(!$log_error_) +{ + # MySQL Server on windows is started with --console and thus + # does not know the location of its .err log, use default location + let $log_error_ = $MYSQLTEST_VARDIR/log/mysqld.2.err; +} + +# Expected Error : Column 0 of table 'test.t1' cannot be converted from type 'binary(1)' to type 'binary(10)' +--let SEARCH_FILE=$log_error_ +--let SEARCH_PATTERN=\'char\(1 octets\)\' to type \'text\' +--source include/search_pattern_in_file.inc + +--connection master +DROP TABLE t1; +--connection slave +DROP TABLE t1; +--let $rpl_only_running_threads= 1 +--source include/rpl_reset.inc + +--source include/rpl_end.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_semi_sync_slave_reply_fail.test mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_semi_sync_slave_reply_fail.test --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_semi_sync_slave_reply_fail.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_semi_sync_slave_reply_fail.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,87 @@ +# ==== Purpose ==== +# +# Test verifies that slave IO thread doesn't report an error, when slave fails +# to send an acknowledgment to master with semi sync replication in use. +# +# ==== Implementation ==== +# +# Steps: +# 0 - Have semi synchronous replication in use. +# 1 - Enable a debug simulation point which simulates network flush failure +# at the time of slave reply operation. +# 2 - Do some operation on master and wait for it to be replicated. Master +# will timeout waiting for reply from slave. +# 3 - Check the slave error log for appropriate error message regarding +# net_flush operation failure. +# 4 - Remove the debug simulation and do some more DML operations on master +# and wait for them to be replicated. +# 5 - Slave will be able to replicate and data is consistent on both master +# and slave. Semi sync will be automatically turned on. +# +# ==== References ==== +# +# MDEV-20217: Semi_sync: Last_IO_Error: Fatal error: Failed to run +# 'after_queue_event' hook +# +--source include/have_debug.inc +--source include/master-slave.inc + +--connection slave +--source include/stop_slave.inc + +--connection master +call mtr.add_suppression("Timeout waiting for reply of binlog*"); +--let $sav_timeout_master=`SELECT @@GLOBAL.rpl_semi_sync_master_timeout` +set global rpl_semi_sync_master_enabled = ON; +SET @@GLOBAL.rpl_semi_sync_master_timeout=100; +create table t1 (i int); + +--connection slave +set global rpl_semi_sync_slave_enabled = ON; +CALL mtr.add_suppression("Semi-sync slave net_flush*"); +SET @save_debug= @@global.debug; +SET GLOBAL debug_dbug="+d,semislave_failed_net_flush"; +--source include/start_slave.inc + +--connection master +--sync_slave_with_master + +# Check error log for correct messages. +let $log_error_= `SELECT @@GLOBAL.log_error`; +if(!$log_error_) +{ + # MySQL Server on windows is started with --console and thus + # does not know the location of its .err log, use default location + let $log_error_ = $MYSQLTEST_VARDIR/log/mysqld.2.err; +} +--echo "Assert that the net_fulsh() reply failed is present in slave error log. +--let SEARCH_FILE=$log_error_ +--let SEARCH_PATTERN=Semi-sync slave net_flush\(\) reply failed +--source include/search_pattern_in_file.inc + +--echo "Assert that Slave IO thread is up and running." +SHOW STATUS LIKE 'Slave_running'; +let $status= query_get_value("show slave status", Slave_IO_Running, 1); +echo Slave_IO_Running= $status; + +--echo "Clear the network failure simulation." +SET GLOBAL debug_dbug= @save_debug; + +--connection master +insert into t1 values (10); +--sync_slave_with_master + +--connection slave +--echo # Compare the tables on master and slave. +--let $diff_tables= master:t1, slave:t1 +--source include/diff_tables.inc + +--connection master +drop table t1; +--sync_slave_with_master +set global rpl_semi_sync_slave_enabled = OFF; + +--connection master +set global rpl_semi_sync_master_enabled = OFF; +--eval SET @@GLOBAL.rpl_semi_sync_master_timeout = $sav_timeout_master +--source include/rpl_end.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_skip_error.test mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_skip_error.test --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_skip_error.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_skip_error.test 2019-11-06 16:01:57.000000000 +0000 @@ -26,6 +26,10 @@ source include/have_innodb.inc; source include/master-slave.inc; +--connection slave +let $initial_skipped_error= query_get_value(show global status like "Slave_skipped_errors", Value, 1); + +connection master; --echo ==== Test Without sql_mode=strict_trans_tables ==== create table t1 (n int not null primary key); @@ -133,8 +137,9 @@ CREATE TABLE t2(id INT NOT NULL PRIMARY KEY, data INT) Engine=MyIsam; SHOW CREATE TABLE t2; -show global status like 'slave_skipped_errors'; - +let $current_skipped_error= query_get_value(show global status like "Slave_skipped_errors", Value, 1); +--let $delta_skipped_error= `select $current_skipped_error - $initial_skipped_error from dual` +--echo # Slave_skipped_errros = $delta_skipped_error connection master; INSERT INTO t2 VALUES(1, 1); @@ -151,7 +156,10 @@ let $error= query_get_value("SHOW SLAVE STATUS", Last_SQL_Error, 1); echo $error; -show global status like 'slave_skipped_errors'; + +let $current_skipped_error= query_get_value(show global status like "Slave_skipped_errors", Value, 1); +--let $delta_skipped_error= `select $current_skipped_error - $initial_skipped_error from dual` +--echo # Slave_skipped_errros = $delta_skipped_error --echo **** We cannot execute a select as there are differences in the --echo **** behavior between STMT and RBR. diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_sync_with_innodb_thd_conc.test mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_sync_with_innodb_thd_conc.test --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_sync_with_innodb_thd_conc.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_sync_with_innodb_thd_conc.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,41 @@ +# ==== Purpose ==== +# +# Test verifies that replication shouldn't hang when number of active threads +# on the slave server are less than the allowed innodb_thread_concurrency value. +# +# ==== Implementation ==== +# +# Steps: +# 0 - Have master slave replication setup with engine being Innodb. +# 1 - Configure innodb_thread_concurrency = 100. +# 2 - Do some DML on master and sync the slave with master. +# 3 - Ensure replication doesn't hang. +# +# ==== References ==== +# +# MDEV-20247: Replication hangs with "preparing" and never starts +# + +--source include/master-slave.inc +--source include/have_innodb.inc + +--connection slave +SET @old_innodb_thread_concurrency := @@innodb_thread_concurrency; +SET @old_innodb_thread_sleep_delay := @@innodb_thread_sleep_delay; +SET GLOBAL innodb_thread_concurrency = 100; + +--connection master +CREATE TABLE t(f INT) ENGINE=INNODB; +INSERT INTO t VALUES (10); +--sync_slave_with_master + +--let $diff_tables=master:t, slave:t +--source include/diff_tables.inc + +--echo "===== Clean up=======" +--connection master +DROP TABLE t; +--sync_slave_with_master +SET GLOBAL innodb_thread_concurrency = @old_innodb_thread_concurrency; +SET GLOBAL innodb_thread_sleep_delay = @old_innodb_thread_sleep_delay; +--source include/rpl_end.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_unsafe_statements.test mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_unsafe_statements.test --- mariadb-10.3-10.3.17/mysql-test/suite/rpl/t/rpl_unsafe_statements.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/rpl/t/rpl_unsafe_statements.test 2019-11-06 16:01:57.000000000 +0000 @@ -24,7 +24,7 @@ --source include/have_innodb.inc --source include/have_binlog_format_mixed.inc --source include/master-slave.inc - +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); # Case-1: BINLOG_STMT_UNSAFE_AUTOINC_COLUMNS # Statement is unsafe because it invokes a trigger or a # stored function that inserts into an AUTO_INCREMENT column. diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sql_sequence/other.result mariadb-10.3-10.3.20/mysql-test/suite/sql_sequence/other.result --- mariadb-10.3-10.3.17/mysql-test/suite/sql_sequence/other.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sql_sequence/other.result 2019-11-06 16:01:57.000000000 +0000 @@ -209,4 +209,95 @@ ERROR HY000: Storage engine SEQUENCE of the table `test`.`s` doesn't have this option DROP SEQUENCE s; DROP TABLE t1; +# +# MDEV-20074: Lost connection on update trigger +# +# INSERT & table +create sequence s1 increment by 1 start with 1; +create table t1 (p_id integer, p_name varchar(128), p_first_name varchar(128)); +create table t2 (a_id integer default nextval(s1), a_p_name varchar(128), a_p_first_name varchar(128), t timestamp default current_timestamp); +insert into t1 values +(1, 'Luo','Frank'),(2, 'Xe','Emma'),(3, 'Li','Anna'),(4, 'Lun','Serg'),(5, 'Xu','Nils'),(6, 'Ja','Ute'),(7, 'Jin','Mike'),(8, 'Lio','Carl'),(9, 'Lang','Kevin'),(10, 'Ling','Lisa'),(11, 'Fang','Frank'),(12, 'Feng','Emma'),(13, 'Tuo','Anna'),(14, 'Tua','Serg'),(15, 'Moa','Nils'),(16, 'Hua','Ute'),(17, 'Xufa','Mike'),(18, 'Lulu','Carl'),(19, 'Hoho','Kevin'),(20, 'Tata','Lisa'); +CREATE TRIGGER tr_upd +BEFORE UPDATE on t1 +FOR EACH ROW +BEGIN +INSERT INTO t2(a_p_name, a_p_first_name) VALUES(old.p_name, old.p_first_name); +END; +$$ +update t1 set p_first_name='Yunxi' where p_id=1; +drop sequence s1; +drop table t1,t2; +# INSERT & view +create sequence s1 increment by 1 start with 1; +create table t1 (p_id integer, p_name varchar(128), p_first_name varchar(128)); +create table t2 (a_id integer default nextval(s1), a_p_name varchar(128), a_p_first_name varchar(128), t timestamp default current_timestamp); +create view v2 as select * from t2; +insert into t1 values +(1, 'Luo','Frank'),(2, 'Xe','Emma'),(3, 'Li','Anna'),(4, 'Lun','Serg'),(5, 'Xu','Nils'),(6, 'Ja','Ute'),(7, 'Jin','Mike'),(8, 'Lio','Carl'),(9, 'Lang','Kevin'),(10, 'Ling','Lisa'),(11, 'Fang','Frank'),(12, 'Feng','Emma'),(13, 'Tuo','Anna'),(14, 'Tua','Serg'),(15, 'Moa','Nils'),(16, 'Hua','Ute'),(17, 'Xufa','Mike'),(18, 'Lulu','Carl'),(19, 'Hoho','Kevin'),(20, 'Tata','Lisa'); +CREATE TRIGGER tr_upd +BEFORE UPDATE on t1 +FOR EACH ROW +BEGIN +INSERT INTO v2(a_p_name, a_p_first_name) VALUES(old.p_name, old.p_first_name); +END; +$$ +update t1 set p_first_name='Yunxi' where p_id=1; +drop view v2; +drop table t1,t2; +drop sequence s1; +# INSERT SELECT & view +create sequence s1 increment by 1 start with 1; +create table t1 (p_id integer, p_name varchar(128), p_first_name varchar(128)); +create table t2 (a_id integer default nextval(s1), a_p_name varchar(128), a_p_first_name varchar(128), t timestamp default current_timestamp); +create view v2 as select * from t2; +insert into t1 values +(1, 'Luo','Frank'),(2, 'Xe','Emma'),(3, 'Li','Anna'),(4, 'Lun','Serg'),(5, 'Xu','Nils'),(6, 'Ja','Ute'),(7, 'Jin','Mike'),(8, 'Lio','Carl'),(9, 'Lang','Kevin'),(10, 'Ling','Lisa'),(11, 'Fang','Frank'),(12, 'Feng','Emma'),(13, 'Tuo','Anna'),(14, 'Tua','Serg'),(15, 'Moa','Nils'),(16, 'Hua','Ute'),(17, 'Xufa','Mike'),(18, 'Lulu','Carl'),(19, 'Hoho','Kevin'),(20, 'Tata','Lisa'); +CREATE TRIGGER tr_upd +BEFORE UPDATE on t1 +FOR EACH ROW +BEGIN +INSERT INTO v2(a_p_name, a_p_first_name) SELECT old.p_name, old.p_first_name; +END; +$$ +update t1 set p_first_name='Yunxi' where p_id=1; +drop view v2; +drop table t1,t2; +drop sequence s1; +# REPLACE & view +create sequence s1 increment by 1 start with 1; +create table t1 (p_id integer, p_name varchar(128), p_first_name varchar(128)); +create table t2 (a_id integer default nextval(s1), a_p_name varchar(128), a_p_first_name varchar(128), t timestamp default current_timestamp); +create view v2 as select * from t2; +insert into t1 values +(1, 'Luo','Frank'),(2, 'Xe','Emma'),(3, 'Li','Anna'),(4, 'Lun','Serg'),(5, 'Xu','Nils'),(6, 'Ja','Ute'),(7, 'Jin','Mike'),(8, 'Lio','Carl'),(9, 'Lang','Kevin'),(10, 'Ling','Lisa'),(11, 'Fang','Frank'),(12, 'Feng','Emma'),(13, 'Tuo','Anna'),(14, 'Tua','Serg'),(15, 'Moa','Nils'),(16, 'Hua','Ute'),(17, 'Xufa','Mike'),(18, 'Lulu','Carl'),(19, 'Hoho','Kevin'),(20, 'Tata','Lisa'); +CREATE TRIGGER tr_upd +BEFORE UPDATE on t1 +FOR EACH ROW +BEGIN +REPLACE INTO v2(a_p_name, a_p_first_name) VALUES(old.p_name, old.p_first_name); +END; +$$ +update t1 set p_first_name='Yunxi' where p_id=1; +drop view v2; +drop table t1,t2; +drop sequence s1; +# REPLACE SELECT & view +create sequence s1 increment by 1 start with 1; +create table t1 (p_id integer, p_name varchar(128), p_first_name varchar(128)); +create table t2 (a_id integer default nextval(s1), a_p_name varchar(128), a_p_first_name varchar(128), t timestamp default current_timestamp); +create view v2 as select * from t2; +insert into t1 values +(1, 'Luo','Frank'),(2, 'Xe','Emma'),(3, 'Li','Anna'),(4, 'Lun','Serg'),(5, 'Xu','Nils'),(6, 'Ja','Ute'),(7, 'Jin','Mike'),(8, 'Lio','Carl'),(9, 'Lang','Kevin'),(10, 'Ling','Lisa'),(11, 'Fang','Frank'),(12, 'Feng','Emma'),(13, 'Tuo','Anna'),(14, 'Tua','Serg'),(15, 'Moa','Nils'),(16, 'Hua','Ute'),(17, 'Xufa','Mike'),(18, 'Lulu','Carl'),(19, 'Hoho','Kevin'),(20, 'Tata','Lisa'); +CREATE TRIGGER tr_upd +BEFORE UPDATE on t1 +FOR EACH ROW +BEGIN +REPLACE INTO v2(a_p_name, a_p_first_name) SELECT old.p_name, old.p_first_name; +END; +$$ +update t1 set p_first_name='Yunxi' where p_id=1; +drop view v2; +drop table t1,t2; +drop sequence s1; # End of 10.3 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sql_sequence/other.test mariadb-10.3-10.3.20/mysql-test/suite/sql_sequence/other.test --- mariadb-10.3-10.3.17/mysql-test/suite/sql_sequence/other.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sql_sequence/other.test 2019-11-06 16:01:57.000000000 +0000 @@ -179,4 +179,140 @@ DROP TABLE t1; +--echo # +--echo # MDEV-20074: Lost connection on update trigger +--echo # + +--echo # INSERT & table +create sequence s1 increment by 1 start with 1; +create table t1 (p_id integer, p_name varchar(128), p_first_name varchar(128)); +create table t2 (a_id integer default nextval(s1), a_p_name varchar(128), a_p_first_name varchar(128), t timestamp default current_timestamp); + +insert into t1 values +(1, 'Luo','Frank'),(2, 'Xe','Emma'),(3, 'Li','Anna'),(4, 'Lun','Serg'),(5, 'Xu','Nils'),(6, 'Ja','Ute'),(7, 'Jin','Mike'),(8, 'Lio','Carl'),(9, 'Lang','Kevin'),(10, 'Ling','Lisa'),(11, 'Fang','Frank'),(12, 'Feng','Emma'),(13, 'Tuo','Anna'),(14, 'Tua','Serg'),(15, 'Moa','Nils'),(16, 'Hua','Ute'),(17, 'Xufa','Mike'),(18, 'Lulu','Carl'),(19, 'Hoho','Kevin'),(20, 'Tata','Lisa'); + +DELIMITER $$; + +CREATE TRIGGER tr_upd +BEFORE UPDATE on t1 +FOR EACH ROW +BEGIN +INSERT INTO t2(a_p_name, a_p_first_name) VALUES(old.p_name, old.p_first_name); +END; +$$ +DELIMITER ;$$ + +update t1 set p_first_name='Yunxi' where p_id=1; + +drop sequence s1; +drop table t1,t2; + + +--echo # INSERT & view +create sequence s1 increment by 1 start with 1; +create table t1 (p_id integer, p_name varchar(128), p_first_name varchar(128)); +create table t2 (a_id integer default nextval(s1), a_p_name varchar(128), a_p_first_name varchar(128), t timestamp default current_timestamp); +create view v2 as select * from t2; + +insert into t1 values +(1, 'Luo','Frank'),(2, 'Xe','Emma'),(3, 'Li','Anna'),(4, 'Lun','Serg'),(5, 'Xu','Nils'),(6, 'Ja','Ute'),(7, 'Jin','Mike'),(8, 'Lio','Carl'),(9, 'Lang','Kevin'),(10, 'Ling','Lisa'),(11, 'Fang','Frank'),(12, 'Feng','Emma'),(13, 'Tuo','Anna'),(14, 'Tua','Serg'),(15, 'Moa','Nils'),(16, 'Hua','Ute'),(17, 'Xufa','Mike'),(18, 'Lulu','Carl'),(19, 'Hoho','Kevin'),(20, 'Tata','Lisa'); + +DELIMITER $$; + +CREATE TRIGGER tr_upd +BEFORE UPDATE on t1 +FOR EACH ROW +BEGIN +INSERT INTO v2(a_p_name, a_p_first_name) VALUES(old.p_name, old.p_first_name); +END; +$$ +DELIMITER ;$$ + +update t1 set p_first_name='Yunxi' where p_id=1; + +drop view v2; +drop table t1,t2; +drop sequence s1; + + +--echo # INSERT SELECT & view +create sequence s1 increment by 1 start with 1; +create table t1 (p_id integer, p_name varchar(128), p_first_name varchar(128)); +create table t2 (a_id integer default nextval(s1), a_p_name varchar(128), a_p_first_name varchar(128), t timestamp default current_timestamp); +create view v2 as select * from t2; + +insert into t1 values +(1, 'Luo','Frank'),(2, 'Xe','Emma'),(3, 'Li','Anna'),(4, 'Lun','Serg'),(5, 'Xu','Nils'),(6, 'Ja','Ute'),(7, 'Jin','Mike'),(8, 'Lio','Carl'),(9, 'Lang','Kevin'),(10, 'Ling','Lisa'),(11, 'Fang','Frank'),(12, 'Feng','Emma'),(13, 'Tuo','Anna'),(14, 'Tua','Serg'),(15, 'Moa','Nils'),(16, 'Hua','Ute'),(17, 'Xufa','Mike'),(18, 'Lulu','Carl'),(19, 'Hoho','Kevin'),(20, 'Tata','Lisa'); + +DELIMITER $$; + +CREATE TRIGGER tr_upd +BEFORE UPDATE on t1 +FOR EACH ROW +BEGIN +INSERT INTO v2(a_p_name, a_p_first_name) SELECT old.p_name, old.p_first_name; +END; +$$ +DELIMITER ;$$ + +update t1 set p_first_name='Yunxi' where p_id=1; + +drop view v2; +drop table t1,t2; +drop sequence s1; + + +--echo # REPLACE & view +create sequence s1 increment by 1 start with 1; +create table t1 (p_id integer, p_name varchar(128), p_first_name varchar(128)); +create table t2 (a_id integer default nextval(s1), a_p_name varchar(128), a_p_first_name varchar(128), t timestamp default current_timestamp); +create view v2 as select * from t2; + +insert into t1 values +(1, 'Luo','Frank'),(2, 'Xe','Emma'),(3, 'Li','Anna'),(4, 'Lun','Serg'),(5, 'Xu','Nils'),(6, 'Ja','Ute'),(7, 'Jin','Mike'),(8, 'Lio','Carl'),(9, 'Lang','Kevin'),(10, 'Ling','Lisa'),(11, 'Fang','Frank'),(12, 'Feng','Emma'),(13, 'Tuo','Anna'),(14, 'Tua','Serg'),(15, 'Moa','Nils'),(16, 'Hua','Ute'),(17, 'Xufa','Mike'),(18, 'Lulu','Carl'),(19, 'Hoho','Kevin'),(20, 'Tata','Lisa'); + +DELIMITER $$; + +CREATE TRIGGER tr_upd +BEFORE UPDATE on t1 +FOR EACH ROW +BEGIN +REPLACE INTO v2(a_p_name, a_p_first_name) VALUES(old.p_name, old.p_first_name); +END; +$$ +DELIMITER ;$$ + +update t1 set p_first_name='Yunxi' where p_id=1; + +drop view v2; +drop table t1,t2; +drop sequence s1; + + +--echo # REPLACE SELECT & view +create sequence s1 increment by 1 start with 1; +create table t1 (p_id integer, p_name varchar(128), p_first_name varchar(128)); +create table t2 (a_id integer default nextval(s1), a_p_name varchar(128), a_p_first_name varchar(128), t timestamp default current_timestamp); +create view v2 as select * from t2; + +insert into t1 values +(1, 'Luo','Frank'),(2, 'Xe','Emma'),(3, 'Li','Anna'),(4, 'Lun','Serg'),(5, 'Xu','Nils'),(6, 'Ja','Ute'),(7, 'Jin','Mike'),(8, 'Lio','Carl'),(9, 'Lang','Kevin'),(10, 'Ling','Lisa'),(11, 'Fang','Frank'),(12, 'Feng','Emma'),(13, 'Tuo','Anna'),(14, 'Tua','Serg'),(15, 'Moa','Nils'),(16, 'Hua','Ute'),(17, 'Xufa','Mike'),(18, 'Lulu','Carl'),(19, 'Hoho','Kevin'),(20, 'Tata','Lisa'); + +DELIMITER $$; + +CREATE TRIGGER tr_upd +BEFORE UPDATE on t1 +FOR EACH ROW +BEGIN +REPLACE INTO v2(a_p_name, a_p_first_name) SELECT old.p_name, old.p_first_name; +END; +$$ +DELIMITER ;$$ + +update t1 set p_first_name='Yunxi' where p_id=1; + +drop view v2; +drop table t1,t2; +drop sequence s1; + --echo # End of 10.3 tests diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/inc/sysvars_server.inc mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/inc/sysvars_server.inc --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/inc/sysvars_server.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/inc/sysvars_server.inc 2019-11-06 16:01:57.000000000 +0000 @@ -12,59 +12,23 @@ # global_value_origin=SQL set global div_precision_increment=5; ---replace_regex /^\/\S+/PATH/ ---replace_result $MASTER_MYPORT MASTER_MYPORT 392192 299008 -select * from information_schema.system_variables - where variable_name not like 'aria%' and - variable_name not like 'debug%' and - variable_name not like 'wsrep%' and - variable_name not in ( - 'in_predicate_conversion_threshold', - 'have_openssl', - 'have_symlink', - 'hostname', - 'large_files_support', 'log_tc_size', - 'lower_case_file_system', - 'lower_case_table_names', - 'open_files_limit', - 'plugin_maturity', - 'rand_seed1', - 'rand_seed2', - 'system_time_zone', - 'version_comment', - 'version_source_revision', - 'version_compile_machine', 'version_compile_os', - 'version_malloc_library', 'version_ssl_library', 'version' - ) - order by variable_name; +# Don't show values or origin as they may have been changed by the test +# or different recompilation. Remove variables that are depending on +# configuration options -# now various metadata but no values, for variables where -# values change often -select VARIABLE_NAME, VARIABLE_SCOPE, VARIABLE_TYPE, VARIABLE_COMMENT, - NUMERIC_MIN_VALUE, NUMERIC_MAX_VALUE, NUMERIC_BLOCK_SIZE, - ENUM_VALUE_LIST, READ_ONLY, COMMAND_LINE_ARGUMENT +--replace_regex /^\/\S+/PATH/ +select VARIABLE_NAME,VARIABLE_SCOPE,VARIABLE_TYPE,VARIABLE_COMMENT,NUMERIC_MIN_VALUE,NUMERIC_MAX_VALUE,NUMERIC_BLOCK_SIZE,ENUM_VALUE_LIST,READ_ONLY,COMMAND_LINE_ARGUMENT from information_schema.system_variables - where variable_name in ( - 'have_openssl', - 'have_symlink', - 'hostname', - 'large_files_support', - 'lower_case_file_system', - 'lower_case_table_names', - 'open_files_limit', - 'rand_seed1', - 'rand_seed2', - 'system_time_zone', - 'version_comment', - 'version_source_revision', - 'version_compile_machine', 'version_compile_os', - 'version_malloc_library', 'version_ssl_library', 'version' + where variable_name not like 'debug%' and + variable_name not like 'wsrep%' and + variable_name not like 's3%' and + variable_name not in ( + 'log_tc_size' ) order by variable_name; # yet less data: no values, no blocks size, no min/max value. -select VARIABLE_NAME, GLOBAL_VALUE_ORIGIN, VARIABLE_SCOPE, VARIABLE_TYPE, - VARIABLE_COMMENT, ENUM_VALUE_LIST, READ_ONLY, COMMAND_LINE_ARGUMENT +select VARIABLE_NAME, GLOBAL_VALUE_ORIGIN, VARIABLE_SCOPE, VARIABLE_TYPE, VARIABLE_COMMENT, ENUM_VALUE_LIST, READ_ONLY, COMMAND_LINE_ARGUMENT from information_schema.system_variables where variable_name in ( 'log_tc_size' diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/aria_pagecache_buffer_size_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/aria_pagecache_buffer_size_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/aria_pagecache_buffer_size_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/aria_pagecache_buffer_size_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,20 +1,20 @@ -select @@global.aria_pagecache_buffer_size; -@@global.aria_pagecache_buffer_size -8388608 +select @@global.aria_pagecache_buffer_size > 0; +@@global.aria_pagecache_buffer_size > 0 +1 select @@session.aria_pagecache_buffer_size; ERROR HY000: Variable 'aria_pagecache_buffer_size' is a GLOBAL variable show global variables like 'aria_pagecache_buffer_size'; Variable_name Value -aria_pagecache_buffer_size 8388608 +aria_pagecache_buffer_size # show session variables like 'aria_pagecache_buffer_size'; Variable_name Value -aria_pagecache_buffer_size 8388608 +aria_pagecache_buffer_size # select * from information_schema.global_variables where variable_name='aria_pagecache_buffer_size'; VARIABLE_NAME VARIABLE_VALUE -ARIA_PAGECACHE_BUFFER_SIZE 8388608 +ARIA_PAGECACHE_BUFFER_SIZE # select * from information_schema.session_variables where variable_name='aria_pagecache_buffer_size'; VARIABLE_NAME VARIABLE_VALUE -ARIA_PAGECACHE_BUFFER_SIZE 8388608 +ARIA_PAGECACHE_BUFFER_SIZE # set global aria_pagecache_buffer_size=1; ERROR HY000: Variable 'aria_pagecache_buffer_size' is a read only variable set session aria_pagecache_buffer_size=1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/aria_recover_options_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/aria_recover_options_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/aria_recover_options_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/aria_recover_options_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,5 @@ SET @start_global_value = @@global.aria_recover_options; +set @@global.aria_recover_options=default; select @@global.aria_recover_options; @@global.aria_recover_options BACKUP,QUICK diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/binlog_cache_size_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/binlog_cache_size_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/binlog_cache_size_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/binlog_cache_size_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,7 @@ SET @start_value = @@global.binlog_cache_size; -SELECT @start_value; -@start_value +set @@global.binlog_cache_size= default; +SELECT @@global.binlog_cache_size; +@@global.binlog_cache_size 32768 '#--------------------FN_DYNVARS_006_01------------------------#' SET @@global.binlog_cache_size = 100; @@ -11,7 +12,7 @@ @@global.binlog_cache_size 32768 '#---------------------FN_DYNVARS_006_02-------------------------#' -SET @@global.binlog_cache_size = @start_value; +SET @@global.binlog_cache_size = default; SELECT @@global.binlog_cache_size = 32768; @@global.binlog_cache_size = 32768 1 @@ -101,6 +102,3 @@ SELECT binlog_cache_size = @@session.binlog_cache_size; ERROR 42S22: Unknown column 'binlog_cache_size' in 'field list' SET @@global.binlog_cache_size = @start_value; -SELECT @@global.binlog_cache_size; -@@global.binlog_cache_size -32768 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/binlog_stmt_cache_size_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/binlog_stmt_cache_size_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/binlog_stmt_cache_size_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/binlog_stmt_cache_size_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,7 @@ SET @start_value = @@global.binlog_stmt_cache_size; -SELECT @start_value; -@start_value +set @@global.binlog_stmt_cache_size=default; +SELECT @@global.binlog_stmt_cache_size; +@@global.binlog_stmt_cache_size 32768 '#--------------------FN_DYNVARS_006_01------------------------#' SET @@global.binlog_stmt_cache_size = 100; @@ -11,7 +12,7 @@ @@global.binlog_stmt_cache_size 32768 '#---------------------FN_DYNVARS_006_02-------------------------#' -SET @@global.binlog_stmt_cache_size = @start_value; +SET @@global.binlog_stmt_cache_size = default; SELECT @@global.binlog_stmt_cache_size = 32768; @@global.binlog_stmt_cache_size = 32768 1 @@ -101,6 +102,3 @@ SELECT binlog_stmt_cache_size = @@session.binlog_stmt_cache_size; ERROR 42S22: Unknown column 'binlog_stmt_cache_size' in 'field list' SET @@global.binlog_stmt_cache_size = @start_value; -SELECT @@global.binlog_stmt_cache_size; -@@global.binlog_stmt_cache_size -32768 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/character_set_client_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/character_set_client_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/character_set_client_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/character_set_client_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,7 +1,5 @@ SET @global_start_value = @@global.character_set_client; -SELECT @global_start_value; -@global_start_value -latin1 +SET @@global.character_set_client=@@character_set_client; SET @session_start_value = @@character_set_client; SELECT @session_start_value; @session_start_value @@ -30,14 +28,14 @@ '#--------------------FN_DYNVARS_010_02-------------------------#' SET @@character_set_client = latin5; SET @@character_set_client = DEFAULT; -SELECT @@character_set_client AS DEFAULT_VALUE; -DEFAULT_VALUE -utf8 +SELECT @@character_set_client = @@global.character_set_client; +@@character_set_client = @@global.character_set_client +1 SET @@global.character_set_client = latin5; SET @@global.character_set_client = DEFAULT; -SELECT @@global.character_set_client; -@@global.character_set_client -latin1 +SELECT @@global.character_set_client= @global_start_value; +@@global.character_set_client= @global_start_value +1 '#--------------------FN_DYNVARS_010_03-------------------------#' SET @@session.character_set_client = utf8; SELECT @@session.character_set_client; @@ -500,10 +498,4 @@ res 1 SET @@global.character_set_client = @global_start_value; -SELECT @@global.character_set_client; -@@global.character_set_client -latin1 SET @@session.character_set_client = @session_start_value; -SELECT @@session.character_set_client; -@@session.character_set_client -latin1 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/character_set_connection_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/character_set_connection_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/character_set_connection_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/character_set_connection_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,7 +1,6 @@ SET @global_start_value = @@global.character_set_connection; -SELECT @global_start_value; -@global_start_value -latin1 +SET @save_character_set_client=@@global.character_set_client; +SET @@global.character_set_client=@@character_set_client; SET @session_start_value = @@character_set_connection; SELECT @session_start_value; @session_start_value @@ -30,14 +29,14 @@ '#--------------------FN_DYNVARS_011_02-------------------------#' SET @@character_set_connection = latin5; SET @@character_set_connection = DEFAULT; -SELECT @@character_set_connection AS DEFAULT_VALUE; -DEFAULT_VALUE -utf8 +SELECT @@character_set_connection = @@global.character_set_connection; +@@character_set_connection = @@global.character_set_connection +1 SET @@global.character_set_connection = latin5; SET @@global.character_set_connection = DEFAULT; -SELECT @@global.character_set_connection; -@@global.character_set_connection -latin1 +SELECT @@global.character_set_connection = @global_start_value; +@@global.character_set_connection = @global_start_value +1 '#--------------------FN_DYNVARS_011_03-------------------------#' SET @@session.character_set_connection = utf8; SELECT @@session.character_set_connection; @@ -494,10 +493,4 @@ res 1 SET @@global.character_set_connection = @global_start_value; -SELECT @@global.character_set_connection; -@@global.character_set_connection -latin1 -SET @@session.character_set_connection = @session_start_value; -SELECT @@session.character_set_connection; -@@session.character_set_connection -latin1 +SET @@global.character_set_client = @save_character_set_client; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/character_set_database_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/character_set_database_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/character_set_database_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/character_set_database_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,7 @@ SET @global_start_value = @@global.character_set_database; -SELECT @global_start_value; -@global_start_value +SET @@global.character_set_database=@@character_set_client; +SELECT @@global.character_set_database; +@@global.character_set_database latin1 SET @session_start_value = @@character_set_database; SELECT @session_start_value; @@ -494,10 +495,4 @@ res 1 SET @@global.character_set_database = @global_start_value; -SELECT @@global.character_set_database; -@@global.character_set_database -latin1 SET @@session.character_set_database = @session_start_value; -SELECT @@session.character_set_database; -@@session.character_set_database -latin1 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/character_set_results_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/character_set_results_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/character_set_results_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/character_set_results_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,7 @@ SET @global_start_value = @@global.character_set_results; -SELECT @global_start_value; -@global_start_value +SET @@global.character_set_results=@@character_set_client; +SELECT @@global.character_set_results; +@@global.character_set_results latin1 SET @session_start_value = @@character_set_results; SELECT @session_start_value; @@ -30,14 +31,14 @@ '#--------------------FN_DYNVARS_013_02-------------------------#' SET @@character_set_results = latin5; SET @@character_set_results = DEFAULT; -SELECT @@character_set_results AS DEFAULT_VALUE; -DEFAULT_VALUE -utf8 +SELECT @@character_set_results = @@global.character_set_results; +@@character_set_results = @@global.character_set_results +1 SET @@global.character_set_results = latin5; SET @@global.character_set_results = DEFAULT; -SELECT @@global.character_set_results; -@@global.character_set_results -latin1 +SELECT @@global.character_set_results= @global_start_value; +@@global.character_set_results= @global_start_value +1 '#--------------------FN_DYNVARS_013_03-------------------------#' SET @@session.character_set_results = utf8; SELECT @@session.character_set_results; @@ -496,10 +497,4 @@ res 1 SET @@global.character_set_results = @global_start_value; -SELECT @@global.character_set_results; -@@global.character_set_results -latin1 SET @@session.character_set_results = @session_start_value; -SELECT @@session.character_set_results; -@@session.character_set_results -latin1 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/character_set_server_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/character_set_server_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/character_set_server_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/character_set_server_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,7 @@ SET @global_start_value = @@global.character_set_server; -SELECT @global_start_value; -@global_start_value +SET @@global.character_set_server=@@character_set_client; +SELECT @@global.character_set_server; +@@global.character_set_server latin1 SET @session_start_value = @@character_set_server; SELECT @session_start_value; @@ -32,14 +33,14 @@ '#--------------------FN_DYNVARS_009_02-------------------------#' SET @@character_set_server = latin5; SET @@character_set_server = DEFAULT; -SELECT @@character_set_server AS DEFAULT_VALUE; -DEFAULT_VALUE -utf8 +SELECT @@character_set_server = @@global.character_set_server; +@@character_set_server = @@global.character_set_server +1 SET @@global.character_set_server = latin5; SET @@global.character_set_server = DEFAULT; -SELECT @@global.character_set_server; -@@global.character_set_server -latin1 +SELECT @@global.character_set_server = @global_start_value; +@@global.character_set_server = @global_start_value +1 '#--------------------FN_DYNVARS_009_03-------------------------#' SET @@session.character_set_server = utf8; SELECT @@session.character_set_server; @@ -488,10 +489,4 @@ res 1 SET @@global.character_set_server = @global_start_value; -SELECT @@global.character_set_server; -@@global.character_set_server -latin1 SET @@session.character_set_server = @session_start_value; -SELECT @@session.character_set_server; -@@session.character_set_server -latin1 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/character_set_server_func.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/character_set_server_func.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/character_set_server_func.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/character_set_server_func.result 2019-11-06 16:01:57.000000000 +0000 @@ -13,7 +13,10 @@ disconnect con1; '#--------------------FN_DYNVARS_009_02-------------------------#' connection default; -'---global character_set_server should not effects current connection---' +'--global character_set_server should not effects current connection--' +select @@character_set_database=@@character_set_connection; +@@character_set_database=@@character_set_connection +1 SET @@global.character_set_server = utf8; CREATE DATABASE db1; USE db1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/collation_connection_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/collation_connection_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/collation_connection_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/collation_connection_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,7 @@ SET @global_start_value = @@global.collation_connection; -SELECT @global_start_value; -@global_start_value +SET @@global.collation_connection=@@collation_connection; +SELECT @@global.collation_connection; +@@global.collation_connection latin1_swedish_ci SET @session_start_value = @@collation_connection; SELECT @session_start_value; @@ -30,14 +31,14 @@ '#--------------------FN_DYNVARS_015_02-------------------------#' SET @@collation_connection = latin1_bin; SET @@collation_connection = DEFAULT; -SELECT @@collation_connection AS DEFAULT_VALUE; -DEFAULT_VALUE -utf8_unicode_ci +SELECT @@collation_connection = @@global.collation_connection; +@@collation_connection = @@global.collation_connection +1 SET @@global.collation_connection = latin1_bin; SET @@global.collation_connection = DEFAULT; -SELECT @@global.collation_connection; -@@global.collation_connection -latin1_swedish_ci +SELECT @@global.collation_connection = @global_start_value; +@@global.collation_connection = @global_start_value +1 '#--------------------FN_DYNVARS_015_03-------------------------#' SET @@session.collation_connection = utf8_polish_ci; SELECT @@session.collation_connection; @@ -1222,10 +1223,4 @@ res 1 SET @@global.collation_connection = @global_start_value; -SELECT @@global.collation_connection; -@@global.collation_connection -latin1_swedish_ci SET @@session.collation_connection = @session_start_value; -SELECT @@session.collation_connection; -@@session.collation_connection -latin1_swedish_ci diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/collation_database_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/collation_database_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/collation_database_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/collation_database_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,7 @@ SET @global_start_value = @@global.collation_database; -SELECT @global_start_value; -@global_start_value +SET @@global.collation_database=@@collation_server; +SELECT @@global.collation_database; +@@global.collation_database latin1_swedish_ci SET @session_start_value = @@collation_database; SELECT @session_start_value; @@ -25,6 +26,7 @@ SELECT session collation_database; ERROR 42S22: Unknown column 'session' in 'field list' SET global collation_database=utf8_unicode_ci; +set global collation_database=@@collation_server; SELECT global collation_database; ERROR 42S22: Unknown column 'global' in 'field list' '#--------------------FN_DYNVARS_016_02-------------------------#' @@ -33,14 +35,14 @@ SELECT DEFAULT_COLLATION_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME=DATABASE(); DEFAULT_COLLATION_NAME latin1_swedish_ci -SELECT @@collation_database AS DEFAULT_VALUE; -DEFAULT_VALUE -latin1_swedish_ci +SELECT @@collation_database = @@global.collation_database; +@@collation_database = @@global.collation_database +1 SET @@global.collation_database = latin1_bin; SET @@global.collation_database = DEFAULT; -SELECT @@global.collation_database; -@@global.collation_database -latin1_swedish_ci +SELECT length(@@global.collation_database) > 0; +length(@@global.collation_database) > 0 +1 '#--------------------FN_DYNVARS_016_03-------------------------#' SET @@session.collation_database = utf8_polish_ci; SELECT @@session.collation_database; @@ -1224,10 +1226,4 @@ res 1 SET @@global.collation_database = @global_start_value; -SELECT @@global.collation_database; -@@global.collation_database -latin1_swedish_ci SET @@session.collation_database = @session_start_value; -SELECT @@session.collation_database; -@@session.collation_database -latin1_swedish_ci diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/collation_database_func.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/collation_database_func.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/collation_database_func.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/collation_database_func.result 2019-11-06 16:01:57.000000000 +0000 @@ -15,9 +15,6 @@ '#--------------------FN_DYNVARS_011_02-------------------------#' connection default; DROP TABLE IF EXISTS t1,t2; -SELECT @@character_set_server,@@collation_server; -@@character_set_server @@collation_server -latin1 latin1_swedish_ci '--check if setting collation_database update character_set_database--' SET @@session.collation_database = utf8_spanish_ci; SELECT @@collation_database, @@character_set_database; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/collation_server_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/collation_server_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/collation_server_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/collation_server_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,7 +1,5 @@ SET @global_start_value = @@global.collation_server; -SELECT @global_start_value; -@global_start_value -latin1_swedish_ci +SET @@global.collation_server= @@collation_server; SET @session_start_value = @@collation_server; SELECT @session_start_value; @session_start_value @@ -30,14 +28,14 @@ '#--------------------FN_DYNVARS_014_02-------------------------#' SET @@collation_server = latin1_bin; SET @@collation_server = DEFAULT; -SELECT @@collation_server AS DEFAULT_VALUE; -DEFAULT_VALUE -utf8_unicode_ci +SELECT @@collation_server= @@global.collation_server; +@@collation_server= @@global.collation_server +1 SET @@global.collation_server = latin1_bin; SET @@global.collation_server = DEFAULT; -SELECT @@global.collation_server; -@@global.collation_server -latin1_swedish_ci +SELECT @@global.collation_server = @global_start_value; +@@global.collation_server = @global_start_value +1 '#--------------------FN_DYNVARS_014_03-------------------------#' SET @@session.collation_server = utf8_polish_ci; SELECT @@session.collation_server; @@ -1221,10 +1219,4 @@ res 1 SET @@global.collation_server = @global_start_value; -SELECT @@global.collation_server; -@@global.collation_server -latin1_swedish_ci SET @@session.collation_server = @session_start_value; -SELECT @@session.collation_server; -@@session.collation_server -latin1_swedish_ci diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/delayed_insert_limit_func.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/delayed_insert_limit_func.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/delayed_insert_limit_func.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/delayed_insert_limit_func.result 2019-11-06 16:01:57.000000000 +0000 @@ -52,14 +52,12 @@ INSERT DELAYED INTO t1 VALUES('40','1','1'); INSERT DELAYED INTO t1 VALUES('41','1','1'); INSERT DELAYED INTO t1 VALUES('42','1','1'); -INSERT DELAYED INTO t1 VALUES('43','1','1');| +INSERT DELAYED INTO t1 VALUES('43','1','1'); connection con0; SELECT COUNT(*) FROM t1; connection default; ** Wait till con0 is blocked ** UNLOCK TABLES; -connection con1; -Asynchronous "reap" result connection con0; Asynchronous "reap" result The next result suffers from @@ -85,7 +83,6 @@ INSERT INTO t1 VALUES('6'); LOCK TABLE v1 READ; connection con1; -Asynchronous execute INSERT DELAYED INTO t1 VALUES('7'); INSERT DELAYED INTO t1 VALUES('8'); INSERT DELAYED INTO t1 VALUES('9'); @@ -101,23 +98,22 @@ INSERT DELAYED INTO t1 VALUES('19'); INSERT DELAYED INTO t1 VALUES('20'); INSERT DELAYED INTO t1 VALUES('21'); -INSERT DELAYED INTO t1 VALUES('22');| +INSERT DELAYED INTO t1 VALUES('22'); connection con0; Asynchronous execute -SELECT COUNT(*) BETWEEN 6 AND 22 FROM t1; +SELECT COUNT(*) FROM t1; connection default; ** Wait till con0 is blocked ** UNLOCK TABLES; -connection con1; connection con0; Asynchronous "reap" result -COUNT(*) BETWEEN 6 AND 22 -1 +COUNT(*) +22 connection default; Checking if the delayed insert gives the same result afterwards -SELECT COUNT(*) BETWEEN 6 AND 22 FROM t1; -COUNT(*) BETWEEN 6 AND 22 -1 +SELECT COUNT(*) FROM t1; +COUNT(*) +22 connection default; DROP TABLE t1; DROP VIEW v1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/expire_logs_days_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/expire_logs_days_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/expire_logs_days_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/expire_logs_days_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,18 +1,15 @@ SET @start_value = @@global.expire_logs_days; -SELECT @start_value; -@start_value -0 '#--------------------FN_DYNVARS_029_01------------------------#' SET @@global.expire_logs_days = 99; SET @@global.expire_logs_days = DEFAULT; -SELECT @@global.expire_logs_days; -@@global.expire_logs_days -0 -'#---------------------FN_DYNVARS_029_02-------------------------#' -SET @@global.expire_logs_days = @start_value; SELECT @@global.expire_logs_days = 0; @@global.expire_logs_days = 0 1 +'#---------------------FN_DYNVARS_029_02-------------------------#' +SET @@global.expire_logs_days = @start_value; +SELECT @@global.expire_logs_days = @start_value; +@@global.expire_logs_days = @start_value +1 '#--------------------FN_DYNVARS_029_03------------------------#' SET @@global.expire_logs_days = 0; SELECT @@global.expire_logs_days; @@ -120,6 +117,3 @@ SELECT expire_logs_days = @@session.expire_logs_days; ERROR 42S22: Unknown column 'expire_logs_days' in 'field list' SET @@global.expire_logs_days = @start_value; -SELECT @@global.expire_logs_days; -@@global.expire_logs_days -0 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/general_log_file_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/general_log_file_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/general_log_file_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/general_log_file_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,12 +1,12 @@ SET @start_value = @@global.general_log_file; -SELECT @start_value; -@start_value -test.log +SELECT length(@start_value) > 0; +length(@start_value) > 0 +1 '#---------------------FN_DYNVARS_004_01-------------------------#' SET @@global.general_log_file = DEFAULT; -SELECT @@global.general_log_file; -@@global.general_log_file -mysqld.log +SELECT length(@@global.general_log_file) > 0; +length(@@global.general_log_file) > 0 +1 '#--------------------FN_DYNVARS_004_02------------------------#' SET @@global.general_log_file = mytest.log; ERROR 42000: Incorrect argument type to variable 'general_log_file' diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/histogram_size_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/histogram_size_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/histogram_size_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/histogram_size_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,11 +1,8 @@ SET @start_global_value = @@global.histogram_size; -SELECT @start_global_value; -@start_global_value -0 SET @start_session_value = @@session.histogram_size; -SELECT @start_session_value; -@start_session_value -0 +SELECT @start_global_value = @start_session_value; +@start_global_value = @start_session_value +1 '#--------------------FN_DYNVARS_053_01-------------------------#' SET @@global.histogram_size = DEFAULT; SELECT @@global.histogram_size; @@ -127,10 +124,4 @@ @@local.histogram_size = @@session.histogram_size 1 SET @@global.histogram_size = @start_global_value; -SELECT @@global.histogram_size; -@@global.histogram_size -0 SET @@session.histogram_size = @start_session_value; -SELECT @@session.histogram_size; -@@session.histogram_size -0 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/innodb_adaptive_hash_index_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/innodb_adaptive_hash_index_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/innodb_adaptive_hash_index_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/innodb_adaptive_hash_index_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,28 +1,22 @@ SET @start_global_value = @@global.innodb_adaptive_hash_index; -SELECT @start_global_value; -@start_global_value -1 Valid values are 'ON' and 'OFF' select @@global.innodb_adaptive_hash_index in (0, 1); @@global.innodb_adaptive_hash_index in (0, 1) 1 -select @@global.innodb_adaptive_hash_index; -@@global.innodb_adaptive_hash_index -1 select @@session.innodb_adaptive_hash_index; ERROR HY000: Variable 'innodb_adaptive_hash_index' is a GLOBAL variable show global variables like 'innodb_adaptive_hash_index'; Variable_name Value -innodb_adaptive_hash_index ON +innodb_adaptive_hash_index # show session variables like 'innodb_adaptive_hash_index'; Variable_name Value -innodb_adaptive_hash_index ON -select * from information_schema.global_variables where variable_name='innodb_adaptive_hash_index'; -VARIABLE_NAME VARIABLE_VALUE -INNODB_ADAPTIVE_HASH_INDEX ON -select * from information_schema.session_variables where variable_name='innodb_adaptive_hash_index'; -VARIABLE_NAME VARIABLE_VALUE -INNODB_ADAPTIVE_HASH_INDEX ON +innodb_adaptive_hash_index # +select variable_name from information_schema.global_variables where variable_name='innodb_adaptive_hash_index'; +variable_name +INNODB_ADAPTIVE_HASH_INDEX +select variable_name from information_schema.session_variables where variable_name='innodb_adaptive_hash_index'; +variable_name +INNODB_ADAPTIVE_HASH_INDEX set global innodb_adaptive_hash_index='OFF'; select @@global.innodb_adaptive_hash_index; @@global.innodb_adaptive_hash_index @@ -87,6 +81,3 @@ set global innodb_adaptive_hash_index='AUTO'; ERROR 42000: Variable 'innodb_adaptive_hash_index' can't be set to the value of 'AUTO' SET @@global.innodb_adaptive_hash_index = @start_global_value; -SELECT @@global.innodb_adaptive_hash_index; -@@global.innodb_adaptive_hash_index -1 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/innodb_change_buffering_debug_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/innodb_change_buffering_debug_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/innodb_change_buffering_debug_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/innodb_change_buffering_debug_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -55,6 +55,12 @@ Warning 1292 Truncated incorrect innodb_change_buffering_debug value: '-2' set global innodb_change_buffering_debug=1e1; ERROR 42000: Incorrect argument type to variable 'innodb_change_buffering_debug' +set global innodb_change_buffering_debug=2; +Warnings: +Warning 1292 Truncated incorrect innodb_change_buffering_debug value: '2' +select @@global.innodb_change_buffering_debug; +@@global.innodb_change_buffering_debug +1 SET @@global.innodb_change_buffering_debug = @start_global_value; SELECT @@global.innodb_change_buffering_debug; @@global.innodb_change_buffering_debug diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/innodb_log_optimize_ddl_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/innodb_log_optimize_ddl_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/innodb_log_optimize_ddl_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/innodb_log_optimize_ddl_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -5,9 +5,6 @@ SELECT COUNT(@@SESSION.innodb_log_optimize_ddl); ERROR HY000: Variable 'innodb_log_optimize_ddl' is a GLOBAL variable Expected error 'Variable is a GLOBAL variable' -SELECT @@GLOBAL.innodb_log_optimize_ddl; -@@GLOBAL.innodb_log_optimize_ddl -1 SELECT @@GLOBAL.innodb_log_optimize_ddl INTO @innodb_log_optimize_ddl_save; SET @@GLOBAL.innodb_log_optimize_ddl = ON; SET @@GLOBAL.innodb_log_optimize_ddl = OFF; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/innodb_max_dirty_pages_pct_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/innodb_max_dirty_pages_pct_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/innodb_max_dirty_pages_pct_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/innodb_max_dirty_pages_pct_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,5 @@ +SET @save_innodb_max_dirty_pages_pct=@@global.innodb_max_dirty_pages_pct; +set @@global.innodb_max_dirty_pages_pct=75; SET @global_start_value = @@global.innodb_max_dirty_pages_pct; SELECT @global_start_value; @global_start_value @@ -170,3 +172,4 @@ SELECT @@global.innodb_max_dirty_pages_pct_lwm; @@global.innodb_max_dirty_pages_pct_lwm 0.000000 +SET @@global.innodb_max_dirty_pages_pct=@save_innodb_max_dirty_pages_pct; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/innodb_max_dirty_pages_pct_lwm_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/innodb_max_dirty_pages_pct_lwm_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/innodb_max_dirty_pages_pct_lwm_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/innodb_max_dirty_pages_pct_lwm_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,5 @@ +SET @save_innodb_max_dirty_pages_pct=@@global.innodb_max_dirty_pages_pct; +set @@global.innodb_max_dirty_pages_pct=75; SET @pct_lwm_start_value = @@global.innodb_max_dirty_pages_pct_lwm; SELECT @pct_lwm_start_value; @pct_lwm_start_value @@ -129,3 +131,4 @@ SELECT @@global.innodb_max_dirty_pages_pct_lwm; @@global.innodb_max_dirty_pages_pct_lwm 0.000000 +SET @@global.innodb_max_dirty_pages_pct=@save_innodb_max_dirty_pages_pct; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/join_buffer_size_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/join_buffer_size_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/join_buffer_size_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/join_buffer_size_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,20 +1,14 @@ SET @start_global_value = @@global.join_buffer_size; -SELECT @start_global_value; -@start_global_value -262144 SET @start_session_value = @@session.join_buffer_size; -SELECT @start_session_value; -@start_session_value -262144 '#--------------------FN_DYNVARS_053_01-------------------------#' SET @@global.join_buffer_size = DEFAULT; -SELECT @@global.join_buffer_size; -@@global.join_buffer_size -262144 +SELECT @@global.join_buffer_size > 0; +@@global.join_buffer_size > 0 +1 SET @@session.join_buffer_size = DEFAULT; -SELECT @@session.join_buffer_size; -@@session.join_buffer_size -262144 +SELECT @@session.join_buffer_size > 0; +@@session.join_buffer_size > 0 +1 '#--------------------FN_DYNVARS_053_03-------------------------#' SET @@global.join_buffer_size = 8200; Warnings: @@ -170,10 +164,4 @@ SELECT join_buffer_size = @@session.join_buffer_size; ERROR 42S22: Unknown column 'join_buffer_size' in 'field list' SET @@global.join_buffer_size = @start_global_value; -SELECT @@global.join_buffer_size; -@@global.join_buffer_size -262144 SET @@session.join_buffer_size = @start_session_value; -SELECT @@session.join_buffer_size; -@@session.join_buffer_size -262144 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/join_buffer_space_limit_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/join_buffer_space_limit_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/join_buffer_space_limit_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/join_buffer_space_limit_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,22 +1,16 @@ SET @start_global_value = @@global.join_buffer_space_limit; -select @@global.join_buffer_space_limit; -@@global.join_buffer_space_limit -2097152 -select @@session.join_buffer_space_limit; -@@session.join_buffer_space_limit -2097152 show global variables like 'join_buffer_space_limit'; Variable_name Value -join_buffer_space_limit 2097152 +join_buffer_space_limit # show session variables like 'join_buffer_space_limit'; Variable_name Value -join_buffer_space_limit 2097152 +join_buffer_space_limit # select * from information_schema.global_variables where variable_name='join_buffer_space_limit'; VARIABLE_NAME VARIABLE_VALUE -JOIN_BUFFER_SPACE_LIMIT 2097152 +JOIN_BUFFER_SPACE_LIMIT # select * from information_schema.session_variables where variable_name='join_buffer_space_limit'; VARIABLE_NAME VARIABLE_VALUE -JOIN_BUFFER_SPACE_LIMIT 2097152 +JOIN_BUFFER_SPACE_LIMIT # set global join_buffer_space_limit=10; Warnings: Warning 1292 Truncated incorrect join_buffer_space_limit value: '10' diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/join_cache_level_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/join_cache_level_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/join_cache_level_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/join_cache_level_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,22 +1,16 @@ SET @start_global_value = @@global.join_cache_level; -select @@global.join_cache_level; -@@global.join_cache_level -2 -select @@session.join_cache_level; -@@session.join_cache_level -2 show global variables like 'join_cache_level'; Variable_name Value -join_cache_level 2 +join_cache_level # show session variables like 'join_cache_level'; Variable_name Value -join_cache_level 2 +join_cache_level # select * from information_schema.global_variables where variable_name='join_cache_level'; VARIABLE_NAME VARIABLE_VALUE -JOIN_CACHE_LEVEL 2 +JOIN_CACHE_LEVEL # select * from information_schema.session_variables where variable_name='join_cache_level'; VARIABLE_NAME VARIABLE_VALUE -JOIN_CACHE_LEVEL 2 +JOIN_CACHE_LEVEL # set global join_cache_level=4; select @@global.join_cache_level; @@global.join_cache_level diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/log_slow_verbosity_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/log_slow_verbosity_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/log_slow_verbosity_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/log_slow_verbosity_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,10 +1,8 @@ SET @start_global_value = @@global.log_slow_verbosity; -select @@global.log_slow_verbosity; -@@global.log_slow_verbosity - -select @@session.log_slow_verbosity; -@@session.log_slow_verbosity - +select @@global.log_slow_verbosity = @@session.log_slow_verbosity; +@@global.log_slow_verbosity = @@session.log_slow_verbosity +1 +SET @@global.log_slow_verbosity="",@@session.log_slow_verbosity=""; show global variables like 'log_slow_verbosity'; Variable_name Value log_slow_verbosity diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/long_query_time_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/long_query_time_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/long_query_time_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/long_query_time_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,30 +1,15 @@ SET @start_global_value = @@global.long_query_time; -SELECT @start_global_value; -@start_global_value -10 SET @start_session_value = @@session.long_query_time; -SELECT @start_session_value; -@start_session_value -10 '#--------------------FN_DYNVARS_068_01-------------------------#' SET @@global.long_query_time = 100; SET @@global.long_query_time = DEFAULT; -SELECT @@global.long_query_time; -@@global.long_query_time -10.000000 -SET @@session.long_query_time = 200; -SET @@session.long_query_time = DEFAULT; -SELECT @@session.long_query_time; -@@session.long_query_time -10.000000 -'#--------------------FN_DYNVARS_068_02-------------------------#' -SET @@global.long_query_time = DEFAULT; -SELECT @@global.long_query_time = 10; -@@global.long_query_time = 10 +SELECT @@global.long_query_time >= 0; +@@global.long_query_time >= 0 1 +SET @@session.long_query_time = 200; SET @@session.long_query_time = DEFAULT; -SELECT @@session.long_query_time = 10; -@@session.long_query_time = 10 +SELECT @@session.long_query_time >= 0; +@@session.long_query_time >= 0 1 '#--------------------FN_DYNVARS_068_03-------------------------#' SET @@global.long_query_time = 0; @@ -157,10 +142,3 @@ SELECT long_query_time = @@session.long_query_time; ERROR 42S22: Unknown column 'long_query_time' in 'field list' SET @@global.long_query_time = @start_global_value; -SELECT @@global.long_query_time; -@@global.long_query_time -10.000000 -SET @@session.long_query_time = @start_session_value; -SELECT @@session.long_query_time; -@@session.long_query_time -10.000000 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/max_allowed_packet_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/max_allowed_packet_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/max_allowed_packet_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/max_allowed_packet_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,7 +1,4 @@ SET @start_global_value = @@global.max_allowed_packet; -SELECT @start_global_value; -@start_global_value -16777216 SET @@global.max_allowed_packet = DEFAULT; connect conn1, localhost, root,,; '#--------------------FN_DYNVARS_070_01-------------------------#' @@ -197,9 +194,3 @@ ERROR 42S22: Unknown column 'max_allowed_packet' in 'field list' connection default; SET @@global.max_allowed_packet = @start_global_value; -SELECT @@global.max_allowed_packet; -@@global.max_allowed_packet -16777216 -SELECT @@session.max_allowed_packet; -@@session.max_allowed_packet -16777216 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/max_allowed_packet_func.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/max_allowed_packet_func.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/max_allowed_packet_func.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/max_allowed_packet_func.result 2019-11-06 16:01:57.000000000 +0000 @@ -12,14 +12,14 @@ ## Setting value of max_allowed packet and net_buffer_length to 1024 ## SET @@session.max_allowed_packet = 1024; ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value -SELECT @@session.max_allowed_packet; -@@session.max_allowed_packet -16777216 +SELECT @@session.max_allowed_packet > 0; +@@session.max_allowed_packet > 0 +1 SET @@session.net_buffer_length = 1024; ERROR HY000: SESSION variable 'net_buffer_length' is read-only. Use SET GLOBAL to assign the value -SELECT @@session.net_buffer_length; -@@session.net_buffer_length -16384 +SELECT @@session.net_buffer_length > 0; +@@session.net_buffer_length > 0 +1 '#--------------------FN_DYNVARS_070_02-------------------------#' ## Setting value of max_allowed packet and net_buffer_length to 1024 ## SET @@global.max_allowed_packet = 1024; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/max_connect_errors_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/max_connect_errors_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/max_connect_errors_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/max_connect_errors_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,18 +1,15 @@ SET @start_value = @@global.max_connect_errors; -SELECT @start_value; -@start_value -100 +SELECT @start_value >= 0; +@start_value >= 0 +1 '#--------------------FN_DYNVARS_073_01------------------------#' SET @@global.max_connect_errors = 5000; SET @@global.max_connect_errors = DEFAULT; -SELECT @@global.max_connect_errors; -@@global.max_connect_errors -100 '#---------------------FN_DYNVARS_073_02-------------------------#' SET @@global.max_connect_errors = @start_value; -SELECT @@global.max_connect_errors = 10; -@@global.max_connect_errors = 10 -0 +SELECT @@global.max_connect_errors = @start_value; +@@global.max_connect_errors = @start_value +1 '#--------------------FN_DYNVARS_073_03------------------------#' SET @@global.max_connect_errors = 4096; SELECT @@global.max_connect_errors; @@ -125,6 +122,3 @@ SELECT max_connect_errors = @@session.max_connect_errors; ERROR 42S22: Unknown column 'max_connect_errors' in 'field list' SET @@global.max_connect_errors = @start_value; -SELECT @@global.max_connect_errors; -@@global.max_connect_errors -100 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/max_connections_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/max_connections_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/max_connections_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/max_connections_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,17 +1,17 @@ SET @start_value = @@global.max_connections; -SELECT @start_value; -@start_value -151 +SELECT @start_value > 0; +@start_value > 0 +1 '#--------------------FN_DYNVARS_074_01------------------------#' -SET @@global.max_connections = 5000; +SET @@global.max_connections = @start_value+1; SET @@global.max_connections = DEFAULT; -SELECT @@global.max_connections; -@@global.max_connections -151 +SELECT @@global.max_connections <> @start_value+1; +@@global.max_connections <> @start_value+1 +1 '#---------------------FN_DYNVARS_074_02-------------------------#' SET @@global.max_connections = @start_value; -SELECT @@global.max_connections = 151; -@@global.max_connections = 151 +SELECT @@global.max_connections = @start_value; +@@global.max_connections = @start_value 1 '#--------------------FN_DYNVARS_074_03------------------------#' SET @@global.max_connections = 100000; @@ -131,6 +131,3 @@ SELECT max_connections = @@session.max_connections; ERROR 42S22: Unknown column 'max_connections' in 'field list' SET @@global.max_connections = @start_value; -SELECT @@global.max_connections; -@@global.max_connections -151 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/max_heap_table_size_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/max_heap_table_size_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/max_heap_table_size_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/max_heap_table_size_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,34 +1,22 @@ SET @start_global_value = @@global.max_heap_table_size; -SELECT @start_global_value; -@start_global_value -1048576 SET @start_session_value = @@session.max_heap_table_size; -SELECT @start_session_value; -@start_session_value -1048576 +SELECT @start_session_value = @start_global_value; +@start_session_value = @start_global_value +1 '#--------------------FN_DYNVARS_077_01-------------------------#' SET @@global.max_heap_table_size = 1677721610; Warnings: Warning 1292 Truncated incorrect max_heap_table_size value: '1677721610' SET @@global.max_heap_table_size = DEFAULT; -SELECT @@global.max_heap_table_size; -@@global.max_heap_table_size -16777216 +SELECT @@global.max_heap_table_size > 0; +@@global.max_heap_table_size > 0 +1 SET @@session.max_heap_table_size = 1677721610; Warnings: Warning 1292 Truncated incorrect max_heap_table_size value: '1677721610' SET @@session.max_heap_table_size = DEFAULT; -SELECT @@session.max_heap_table_size; -@@session.max_heap_table_size -16777216 -'#--------------------FN_DYNVARS_077_02-------------------------#' -SET @@global.max_heap_table_size = DEFAULT; -SELECT @@global.max_heap_table_size = 16777216; -@@global.max_heap_table_size = 16777216 -1 -SET @@session.max_heap_table_size = DEFAULT; -SELECT @@session.max_heap_table_size = 16777216; -@@session.max_heap_table_size = 16777216 +SELECT @@session.max_heap_table_size > 0; +@@session.max_heap_table_size > 0 1 '#--------------------FN_DYNVARS_077_03-------------------------#' SET @@global.max_heap_table_size = 16384; @@ -210,10 +198,3 @@ SELECT max_heap_table_size = @@session.max_heap_table_size; ERROR 42S22: Unknown column 'max_heap_table_size' in 'field list' SET @@global.max_heap_table_size = @start_global_value; -SELECT @@global.max_heap_table_size; -@@global.max_heap_table_size -1048576 -SET @@session.max_heap_table_size = @start_session_value; -SELECT @@session.max_heap_table_size; -@@session.max_heap_table_size -1048576 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/max_seeks_for_key_func.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/max_seeks_for_key_func.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/max_seeks_for_key_func.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/max_seeks_for_key_func.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,5 @@ +set @@global.optimizer_switch=@@local.optimizer_switch; +set @@global.join_cache_level=@@local.join_cache_level; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY, @@ -7,12 +9,6 @@ '#--------------------FN_DYNVARS_084_01-------------------------#' CONNECT test_con1,localhost,root,,; connection test_con1; -SELECT @@global.max_seeks_for_key = 10; -@@global.max_seeks_for_key = 10 -0 -SELECT @@session.max_seeks_for_key = 10; -@@session.max_seeks_for_key = 10 -0 SET @@global.max_seeks_for_key = 20; SELECT @@global.max_seeks_for_key; @@global.max_seeks_for_key @@ -82,3 +78,5 @@ disconnect test_con2; DROP TABLE t1; SET @@global.max_seeks_for_key= @start_value; +SET @@global.optimizer_switch= @save_optimizer_switch; +SET @@global.join_cache_level= @save_join_cache_level; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/myisam_sort_buffer_size_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/myisam_sort_buffer_size_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/myisam_sort_buffer_size_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/myisam_sort_buffer_size_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,34 +1,23 @@ SET @start_global_value = @@global.myisam_sort_buffer_size ; -SELECT @start_global_value; -@start_global_value -134216704 -SET @start_session_value = @@session.myisam_sort_buffer_size ; -SELECT @start_session_value; -@start_session_value -134216704 +SELECT @@session.myisam_sort_buffer_size = @@global.myisam_sort_buffer_size; +@@session.myisam_sort_buffer_size = @@global.myisam_sort_buffer_size +1 +SET @@global.myisam_sort_buffer_size= default; +SET @default_myisam_sort_buffer_size= @@global.myisam_sort_buffer_size; '#--------------------FN_DYNVARS_005_01-------------------------#' SET @@global.myisam_sort_buffer_size = 100; Warnings: Warning 1292 Truncated incorrect myisam_sort_buffer_size value: '100' SET @@global.myisam_sort_buffer_size = DEFAULT; -SELECT @@global.myisam_sort_buffer_size ; -@@global.myisam_sort_buffer_size -134216704 +SELECT @@global.myisam_sort_buffer_size = @default_myisam_sort_buffer_size; +@@global.myisam_sort_buffer_size = @default_myisam_sort_buffer_size +1 SET @@session.myisam_sort_buffer_size = 200; Warnings: Warning 1292 Truncated incorrect myisam_sort_buffer_size value: '200' SET @@session.myisam_sort_buffer_size = DEFAULT; -SELECT @@session.myisam_sort_buffer_size ; -@@session.myisam_sort_buffer_size -134216704 -'#--------------------FN_DYNVARS_005_02-------------------------#' -SET @@global.myisam_sort_buffer_size = DEFAULT; -SELECT @@global.myisam_sort_buffer_size = 134216704; -@@global.myisam_sort_buffer_size = 134216704 -1 -SET @@session.myisam_sort_buffer_size = DEFAULT; -SELECT @@session.myisam_sort_buffer_size = 134216704; -@@session.myisam_sort_buffer_size = 134216704 +SELECT @@session.myisam_sort_buffer_size = @default_myisam_sort_buffer_size; +@@session.myisam_sort_buffer_size = @default_myisam_sort_buffer_size 1 '#--------------------FN_DYNVARS_005_03-------------------------#' SET @@global.myisam_sort_buffer_size = 4; @@ -185,10 +174,3 @@ SELECT myisam_sort_buffer_size = @@session.myisam_sort_buffer_size ; ERROR 42S22: Unknown column 'myisam_sort_buffer_size' in 'field list' SET @@global.myisam_sort_buffer_size = @start_global_value; -SELECT @@global.myisam_sort_buffer_size ; -@@global.myisam_sort_buffer_size -134216704 -SET @@session.myisam_sort_buffer_size = @start_session_value; -SELECT @@session.myisam_sort_buffer_size ; -@@session.myisam_sort_buffer_size -134216704 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/optimizer_switch_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/optimizer_switch_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/optimizer_switch_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/optimizer_switch_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,7 +1,4 @@ -SET @start_global_value = @@global.optimizer_switch; -SELECT @start_global_value; -@start_global_value -index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on +set @@global.optimizer_switch=@@optimizer_switch; select @@global.optimizer_switch; @@global.optimizer_switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on @@ -66,7 +63,4 @@ ERROR 42000: Variable 'optimizer_switch' can't be set to the value of 'index_merge' set session optimizer_switch="foobar"; ERROR 42000: Variable 'optimizer_switch' can't be set to the value of 'foobar' -SET @@global.optimizer_switch = @start_global_value; -SELECT @@global.optimizer_switch; -@@global.optimizer_switch -index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on +SET @@global.optimizer_switch = @save_optimizer_switch; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/optimizer_use_condition_selectivity_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/optimizer_use_condition_selectivity_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/optimizer_use_condition_selectivity_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/optimizer_use_condition_selectivity_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,33 +1,6 @@ SET @start_global_value = @@global.optimizer_use_condition_selectivity; -SELECT @start_global_value; -@start_global_value -1 SET @start_session_value = @@session.optimizer_use_condition_selectivity; -SELECT @start_session_value; -@start_session_value -1 -'#--------------------FN_DYNVARS_115_01-------------------------#' -SET @@global.optimizer_use_condition_selectivity = DEFAULT; -SELECT @@global.optimizer_use_condition_selectivity; -@@global.optimizer_use_condition_selectivity -1 -SET @@session.optimizer_use_condition_selectivity = DEFAULT; -SELECT @@session.optimizer_use_condition_selectivity; -@@session.optimizer_use_condition_selectivity -1 -'#--------------------FN_DYNVARS_115_02-------------------------#' -SET @@global.optimizer_use_condition_selectivity = DEFAULT; -SELECT @@global.optimizer_use_condition_selectivity = 1; -@@global.optimizer_use_condition_selectivity = 1 -1 -SET @@session.optimizer_use_condition_selectivity = DEFAULT; -SELECT @@session.optimizer_use_condition_selectivity = 1; -@@session.optimizer_use_condition_selectivity = 1 -1 '#--------------------FN_DYNVARS_115_03-------------------------#' -SELECT @@global.optimizer_use_condition_selectivity; -@@global.optimizer_use_condition_selectivity -1 SET @@global.optimizer_use_condition_selectivity = 0; Warnings: Warning 1292 Truncated incorrect optimizer_use_condition_selectiv value: '0' @@ -61,9 +34,6 @@ @@global.optimizer_use_condition_selectivity 5 '#--------------------FN_DYNVARS_115_04-------------------------#' -SELECT @@session.optimizer_use_condition_selectivity; -@@session.optimizer_use_condition_selectivity -1 SET @@session.optimizer_use_condition_selectivity = 0; Warnings: Warning 1292 Truncated incorrect optimizer_use_condition_selectiv value: '0' @@ -132,10 +102,3 @@ @@local.optimizer_use_condition_selectivity = @@session.optimizer_use_condition_selectivity 1 SET @@global.optimizer_use_condition_selectivity = @start_global_value; -SELECT @@global.optimizer_use_condition_selectivity; -@@global.optimizer_use_condition_selectivity -1 -SET @@session.optimizer_use_condition_selectivity = @start_session_value; -SELECT @@session.optimizer_use_condition_selectivity; -@@session.optimizer_use_condition_selectivity -1 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/relay_log_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/relay_log_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/relay_log_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/relay_log_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,20 +1,20 @@ select @@global.relay_log; @@global.relay_log -mysqld-relay-bin +RELAY_LOG select @@session.relay_log; ERROR HY000: Variable 'relay_log' is a GLOBAL variable show global variables like 'relay_log'; Variable_name Value -relay_log mysqld-relay-bin +relay_log RELAY_LOG show session variables like 'relay_log'; Variable_name Value -relay_log mysqld-relay-bin +relay_log RELAY_LOG select * from information_schema.global_variables where variable_name='relay_log'; VARIABLE_NAME VARIABLE_VALUE -RELAY_LOG mysqld-relay-bin +RELAY_LOG RELAY_LOG select * from information_schema.session_variables where variable_name='relay_log'; VARIABLE_NAME VARIABLE_VALUE -RELAY_LOG mysqld-relay-bin +RELAY_LOG RELAY_LOG set global relay_log=1; ERROR HY000: Variable 'relay_log' is a read only variable set session relay_log=1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/replicate_ignore_table_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/replicate_ignore_table_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/replicate_ignore_table_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/replicate_ignore_table_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -46,3 +46,13 @@ # Cleanup. SET @@GLOBAL.replicate_ignore_table = @save_replicate_ignore_table; +# +# MDEV-20101 Assertion failure on select @@global.'m2'.replicate_ignore_table +# +SET NAMES latin1; +SELECT @@global.'m2'.replicate_ignore_table; +@@global.'m2'.replicate_ignore_table +NULL +Warnings: +Warning 1617 There is no master connection 'm2' +Warning 1617 There is no master connection 'm2' diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/slow_query_log_file_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/slow_query_log_file_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/slow_query_log_file_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/slow_query_log_file_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,9 +1,9 @@ SET @start_value = @@global.slow_query_log_file; '#---------------------FN_DYNVARS_004_01-------------------------#' SET @@global.slow_query_log_file = DEFAULT; -SELECT @@global.slow_query_log_file; -@@global.slow_query_log_file -mysqld-slow.log +SELECT length(@@global.slow_query_log_file) > 0; +length(@@global.slow_query_log_file) > 0 +1 '#--------------------FN_DYNVARS_004_02------------------------#' SET @@global.slow_query_log_file = mytest.log; ERROR 42000: Incorrect argument type to variable 'slow_query_log_file' diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/sync_binlog_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/sync_binlog_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/sync_binlog_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/sync_binlog_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,18 +1,4 @@ SET @start_value = @@global.sync_binlog; -SELECT @start_value; -@start_value -0 -'#--------------------FN_DYNVARS_168_01------------------------#' -SET @@global.sync_binlog = 99; -SET @@global.sync_binlog = DEFAULT; -SELECT @@global.sync_binlog; -@@global.sync_binlog -0 -'#---------------------FN_DYNVARS_168_02-------------------------#' -SET @@global.sync_binlog = @start_value; -SELECT @@global.sync_binlog = 0; -@@global.sync_binlog = 0 -1 '#--------------------FN_DYNVARS_168_03------------------------#' SET @@global.sync_binlog = 0; SELECT @@global.sync_binlog; @@ -105,6 +91,3 @@ SELECT sync_binlog = @@session.sync_binlog; ERROR 42S22: Unknown column 'sync_binlog' in 'field list' SET @@global.sync_binlog = @start_value; -SELECT @@global.sync_binlog; -@@global.sync_binlog -0 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/sysvars_aria.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/sysvars_aria.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/sysvars_aria.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/sysvars_aria.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,10 +1,8 @@ -select * from information_schema.system_variables +select VARIABLE_NAME, SESSION_VALUE, DEFAULT_VALUE, VARIABLE_SCOPE, VARIABLE_TYPE, VARIABLE_COMMENT, NUMERIC_MIN_VALUE, NUMERIC_MAX_VALUE, NUMERIC_BLOCK_SIZE, ENUM_VALUE_LIST, READ_ONLY, COMMAND_LINE_ARGUMENT from information_schema.system_variables where variable_name like 'aria%' order by variable_name; VARIABLE_NAME ARIA_BLOCK_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 8192 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 8192 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -17,8 +15,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ARIA_CHECKPOINT_INTERVAL SESSION_VALUE NULL -GLOBAL_VALUE 30 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 30 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -31,8 +27,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ARIA_CHECKPOINT_LOG_ACTIVITY SESSION_VALUE NULL -GLOBAL_VALUE 1048576 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 1048576 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -45,8 +39,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ARIA_ENCRYPT_TABLES SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -59,8 +51,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME ARIA_FORCE_START_AFTER_RECOVERY_FAILURES SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -73,8 +63,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ARIA_GROUP_COMMIT SESSION_VALUE NULL -GLOBAL_VALUE none -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE none VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM @@ -87,8 +75,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ARIA_GROUP_COMMIT_INTERVAL SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -101,8 +87,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ARIA_LOG_FILE_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 104857600 -GLOBAL_VALUE_ORIGIN CONFIG DEFAULT_VALUE 1073741824 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -115,8 +99,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ARIA_LOG_PURGE_TYPE SESSION_VALUE NULL -GLOBAL_VALUE immediate -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE immediate VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM @@ -129,8 +111,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ARIA_MAX_SORT_FILE_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 9223372036853727232 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 9223372036853727232 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -143,8 +123,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ARIA_PAGECACHE_AGE_THRESHOLD SESSION_VALUE NULL -GLOBAL_VALUE 300 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 300 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -157,8 +135,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ARIA_PAGECACHE_BUFFER_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 8388608 -GLOBAL_VALUE_ORIGIN CONFIG DEFAULT_VALUE 134217728 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -171,8 +147,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ARIA_PAGECACHE_DIVISION_LIMIT SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 100 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -185,8 +159,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ARIA_PAGECACHE_FILE_HASH_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 512 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 512 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -199,8 +171,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ARIA_PAGE_CHECKSUM SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -213,8 +183,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ARIA_RECOVER_OPTIONS SESSION_VALUE NULL -GLOBAL_VALUE BACKUP,QUICK -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE BACKUP,QUICK VARIABLE_SCOPE GLOBAL VARIABLE_TYPE SET @@ -227,8 +195,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME ARIA_REPAIR_THREADS SESSION_VALUE 1 -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 1 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED @@ -241,8 +207,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ARIA_SORT_BUFFER_SIZE SESSION_VALUE 268434432 -GLOBAL_VALUE 268434432 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 268434432 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED @@ -255,8 +219,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ARIA_STATS_METHOD SESSION_VALUE nulls_unequal -GLOBAL_VALUE nulls_unequal -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE nulls_unequal VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM @@ -269,8 +231,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ARIA_SYNC_LOG_DIR SESSION_VALUE NULL -GLOBAL_VALUE NEWFILE -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE NEWFILE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM @@ -283,8 +243,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ARIA_USED_FOR_TEMP_TABLES SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/sysvars_debug.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/sysvars_debug.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/sysvars_debug.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/sysvars_debug.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,5 @@ select * from information_schema.system_variables where variable_name like 'debug%' - or variable_name = 'in_predicate_conversion_threshold' order by variable_name; VARIABLE_NAME DEBUG SESSION_VALUE @@ -86,17 +85,3 @@ ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT NULL -VARIABLE_NAME IN_PREDICATE_CONVERSION_THRESHOLD -SESSION_VALUE 1000 -GLOBAL_VALUE 1000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1000 -VARIABLE_SCOPE SESSION -VARIABLE_TYPE INT UNSIGNED -VARIABLE_COMMENT The minimum number of scalar elements in the value list of IN predicate that triggers its conversion to IN subquery -NUMERIC_MIN_VALUE 0 -NUMERIC_MAX_VALUE 4294967295 -NUMERIC_BLOCK_SIZE 1 -ENUM_VALUE_LIST NULL -READ_ONLY NO -COMMAND_LINE_ARGUMENT OPTIONAL diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff 2019-11-06 16:01:57.000000000 +0000 @@ -1,553 +1,272 @@ ---- suite/sys_vars/r/sysvars_innodb.result 2017-09-14 10:37:46.000000000 +0000 -+++ suite/sys_vars/r/sysvars_innodb,32bit.reject 2017-09-26 13:13:23.685012523 +0000 -@@ -56,7 +56,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 8 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Number of InnoDB Adaptive Hash Index Partitions (default 8) - NUMERIC_MIN_VALUE 1 - NUMERIC_MAX_VALUE 512 -@@ -70,7 +70,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 150000 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT The upper limit of the sleep delay in usec. Value of 0 disables it. - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 1000000 -@@ -84,7 +84,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 64 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Data file autoextend increment in megabytes - NUMERIC_MIN_VALUE 1 - NUMERIC_MAX_VALUE 1000 -@@ -98,7 +98,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT -+VARIABLE_TYPE INT - VARIABLE_COMMENT The AUTOINC lock modes supported by InnoDB: 0 => Old style AUTOINC locking (for backward compatibility); 1 => New style AUTOINC locking; 2 => No AUTOINC locking (unsafe for SBR) - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 2 -@@ -182,10 +182,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 134217728 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Size of a single memory chunk within each buffer pool instance for resizing buffer pool. Online buffer pool resizing happens at this granularity. 0 means disable resizing buffer pool. - NUMERIC_MIN_VALUE 1048576 --NUMERIC_MAX_VALUE 9223372036854775807 -+NUMERIC_MAX_VALUE 2147483647 - NUMERIC_BLOCK_SIZE 1048576 - ENUM_VALUE_LIST NULL - READ_ONLY YES -@@ -224,7 +224,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 25 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Dump only the hottest N% of each buffer pool, defaults to 25 - NUMERIC_MIN_VALUE 1 - NUMERIC_MAX_VALUE 100 -@@ -266,7 +266,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Number of buffer pool instances, set to higher value on high-end machines to increase scalability - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 64 -@@ -336,7 +336,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT A number between [0, 100] that tells how oftern buffer pool dump status in percentages should be printed. E.g. 10 means that buffer pool dump status is printed when every 10% of number of buffer pool pages are dumped. Default is 0 (only start and end status is printed). - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 100 -@@ -448,7 +448,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Helps in performance tuning in heavily concurrent environments. - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 1000 -@@ -490,7 +490,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 5 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT If the compression failure rate of a table is greater than this number more padding is added to the pages to reduce the failures. A value of zero implies no padding - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 100 -@@ -518,7 +518,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 50 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Percentage of empty space on a data page that can be reserved to make the page compressible. - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 75 -@@ -532,10 +532,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 5000 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Number of times a thread is allowed to enter InnoDB within the same SQL query after it has once got the ticket - NUMERIC_MIN_VALUE 1 --NUMERIC_MAX_VALUE 18446744073709551615 -+NUMERIC_MAX_VALUE 4294967295 - NUMERIC_BLOCK_SIZE 0 - ENUM_VALUE_LIST NULL - READ_ONLY NO -@@ -798,7 +798,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 120 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Number of pages reserved in doublewrite buffer for batch flushing - NUMERIC_MIN_VALUE 1 - NUMERIC_MAX_VALUE 127 -@@ -896,7 +896,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 600 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Maximum number of seconds that semaphore times out in InnoDB. - NUMERIC_MIN_VALUE 1 - NUMERIC_MAX_VALUE 4294967295 -@@ -938,7 +938,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Make the first page of the given tablespace dirty. - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 4294967295 -@@ -952,7 +952,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 30 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Number of iterations over which the background flushing is averaged. - NUMERIC_MIN_VALUE 1 - NUMERIC_MAX_VALUE 1000 -@@ -980,7 +980,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Controls the durability/speed trade-off for commits. Set to 0 (write and flush redo log to disk only once per second), 1 (flush to disk at each commit), 2 (write to log at commit but flush to disk only once per second) or 3 (flush to disk at prepare and at commit, slower and usually redundant). 1 and 3 guarantees that after a crash, committed transactions will not be lost and will be consistent with the binlog and other transactional engines. 2 can get inconsistent and lose transactions if there is a power failure or kernel crash but not if mysqld crashes. 0 has no guarantees in case of crash. 0 and 2 can be faster than 1 or 3. - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 3 -@@ -1008,7 +1008,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Set to 0 (don't flush neighbors from buffer pool), 1 (flush contiguous neighbors from buffer pool) or 2 (flush neighbors from buffer pool), when flushing a block - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 2 -@@ -1064,7 +1064,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Helps to save your data in case the disk image of the database becomes corrupt. - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 6 -@@ -1092,7 +1092,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 8000000 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT InnoDB Fulltext search cache size in bytes - NUMERIC_MIN_VALUE 1600000 - NUMERIC_MAX_VALUE 80000000 -@@ -1134,7 +1134,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 84 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT InnoDB Fulltext search maximum token size in characters - NUMERIC_MIN_VALUE 10 - NUMERIC_MAX_VALUE 84 -@@ -1148,7 +1148,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 3 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT InnoDB Fulltext search minimum token size in characters - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 16 -@@ -1162,7 +1162,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 2000 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT InnoDB Fulltext search number of words to optimize for each optimize table call - NUMERIC_MIN_VALUE 1000 - NUMERIC_MAX_VALUE 10000 -@@ -1176,10 +1176,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 2000000000 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT InnoDB Fulltext search query result cache limit in bytes - NUMERIC_MIN_VALUE 1000000 --NUMERIC_MAX_VALUE 18446744073709551615 -+NUMERIC_MAX_VALUE 4294967295 - NUMERIC_BLOCK_SIZE 0 - ENUM_VALUE_LIST NULL - READ_ONLY NO -@@ -1204,7 +1204,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 2 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT InnoDB Fulltext search parallel sort degree, will round up to nearest power of 2 number - NUMERIC_MIN_VALUE 1 - NUMERIC_MAX_VALUE 16 -@@ -1218,7 +1218,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 640000000 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Total memory allocated for InnoDB Fulltext Search cache - NUMERIC_MIN_VALUE 32000000 - NUMERIC_MAX_VALUE 1600000000 -@@ -1246,7 +1246,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 100 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Up to what percentage of dirty pages should be flushed when innodb finds it has spare resources to do so. - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 100 -@@ -1274,10 +1274,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 200 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Number of IOPs the server can do. Tunes the background IO rate - NUMERIC_MIN_VALUE 100 --NUMERIC_MAX_VALUE 18446744073709551615 -+NUMERIC_MAX_VALUE 4294967295 - NUMERIC_BLOCK_SIZE 0 - ENUM_VALUE_LIST NULL - READ_ONLY NO -@@ -1286,12 +1286,12 @@ - SESSION_VALUE NULL - GLOBAL_VALUE 2000 - GLOBAL_VALUE_ORIGIN COMPILE-TIME --DEFAULT_VALUE 18446744073709551615 -+DEFAULT_VALUE 4294967295 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Limit to which innodb_io_capacity can be inflated. - NUMERIC_MIN_VALUE 100 --NUMERIC_MAX_VALUE 18446744073709551615 -+NUMERIC_MAX_VALUE 4294967295 - NUMERIC_BLOCK_SIZE 0 - ENUM_VALUE_LIST NULL - READ_ONLY NO -@@ -1344,7 +1344,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 50 - VARIABLE_SCOPE SESSION --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Timeout in seconds an InnoDB transaction may wait for a lock before being rolled back. Values above 100000000 disable the timeout. - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 1073741824 -@@ -1358,10 +1358,10 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE 16777216 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT The size of the buffer which InnoDB uses to write log to the log files on disk. - NUMERIC_MIN_VALUE 262144 --NUMERIC_MAX_VALUE 9223372036854775807 -+NUMERIC_MAX_VALUE 2147483647 - NUMERIC_BLOCK_SIZE 1024 - ENUM_VALUE_LIST NULL - READ_ONLY YES -@@ -1414,7 +1414,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE 2 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Number of log files in the log group. InnoDB writes to the files in a circular fashion. - NUMERIC_MIN_VALUE 1 - NUMERIC_MAX_VALUE 100 -@@ -1470,7 +1470,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 8192 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Redo log write ahead unit size to avoid read-on-write, it should match the OS cache block IO size - NUMERIC_MIN_VALUE 512 - NUMERIC_MAX_VALUE 16384 -@@ -1484,10 +1484,10 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE 1024 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT How deep to scan LRU to keep it clean - NUMERIC_MIN_VALUE 100 --NUMERIC_MAX_VALUE 18446744073709551615 -+NUMERIC_MAX_VALUE 4294967295 - NUMERIC_BLOCK_SIZE 0 - ENUM_VALUE_LIST NULL - READ_ONLY NO -@@ -1540,10 +1540,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Desired maximum length of the purge queue (0 = no limit) - NUMERIC_MIN_VALUE 0 --NUMERIC_MAX_VALUE 18446744073709551615 -+NUMERIC_MAX_VALUE 4294967295 - NUMERIC_BLOCK_SIZE 0 - ENUM_VALUE_LIST NULL - READ_ONLY NO -@@ -1554,7 +1554,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Maximum delay of user threads in micro-seconds - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 10000000 -@@ -1694,10 +1694,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT How many files at the maximum InnoDB keeps open at the same time. - NUMERIC_MIN_VALUE 0 --NUMERIC_MAX_VALUE 9223372036854775807 -+NUMERIC_MAX_VALUE 2147483647 - NUMERIC_BLOCK_SIZE 0 - ENUM_VALUE_LIST NULL - READ_ONLY YES -@@ -1722,7 +1722,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 4 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Page cleaner threads can be from 1 to 64. Default is 4. - NUMERIC_MIN_VALUE 1 - NUMERIC_MAX_VALUE 64 -@@ -1750,7 +1750,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 16 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Number of rw_locks protecting buffer pool page_hash. Rounded up to the next power of 2 - NUMERIC_MIN_VALUE 1 - NUMERIC_MAX_VALUE 1024 -@@ -1764,7 +1764,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 16384 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Page size to use for all InnoDB tablespaces. - NUMERIC_MIN_VALUE 4096 - NUMERIC_MAX_VALUE 65536 -@@ -1806,7 +1806,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 300 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Number of UNDO log pages to purge in one batch from the history list. - NUMERIC_MIN_VALUE 1 - NUMERIC_MAX_VALUE 5000 -@@ -1820,7 +1820,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 128 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Dictates rate at which UNDO records are purged. Value N means purge rollback segment(s) on every Nth iteration of purge invocation - NUMERIC_MIN_VALUE 1 - NUMERIC_MAX_VALUE 128 -@@ -1834,7 +1834,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 4 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Purge threads can be from 1 to 32. Default is 4. - NUMERIC_MIN_VALUE 1 - NUMERIC_MAX_VALUE 32 -@@ -1862,7 +1862,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 56 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Number of pages that must be accessed sequentially for InnoDB to trigger a readahead. - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 64 -@@ -1876,7 +1876,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE 4 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Number of background read I/O threads in InnoDB. - NUMERIC_MIN_VALUE 1 - NUMERIC_MAX_VALUE 64 -@@ -1904,10 +1904,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Replication thread delay (ms) on the slave server if innodb_thread_concurrency is reached (0 by default) - NUMERIC_MIN_VALUE 0 --NUMERIC_MAX_VALUE 18446744073709551615 -+NUMERIC_MAX_VALUE 4294967295 - NUMERIC_BLOCK_SIZE 0 - ENUM_VALUE_LIST NULL - READ_ONLY NO -@@ -1932,7 +1932,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 128 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Number of undo logs to use (deprecated). - NUMERIC_MIN_VALUE 1 - NUMERIC_MAX_VALUE 128 -@@ -1946,7 +1946,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT An InnoDB page number. - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 4294967295 -@@ -2002,7 +2002,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1048576 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Memory buffer size for index creation - NUMERIC_MIN_VALUE 65536 - NUMERIC_MAX_VALUE 67108864 -@@ -2212,7 +2212,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Size of the mutex/lock wait array. - NUMERIC_MIN_VALUE 1 - NUMERIC_MAX_VALUE 1024 -@@ -2240,10 +2240,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 30 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Count of spin-loop rounds in InnoDB mutexes (30 by default) - NUMERIC_MIN_VALUE 0 --NUMERIC_MAX_VALUE 18446744073709551615 -+NUMERIC_MAX_VALUE 4294967295 - NUMERIC_BLOCK_SIZE 0 - ENUM_VALUE_LIST NULL - READ_ONLY NO -@@ -2282,7 +2282,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Helps in performance tuning in heavily concurrent environments. Sets the maximum number of threads allowed inside InnoDB. Value 0 will disable the thread throttling. - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 1000 -@@ -2296,7 +2296,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 10000 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Time of innodb thread sleeping before joining InnoDB queue (usec). Value 0 disable a sleep - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 1000000 -@@ -2366,7 +2366,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 128 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Number of undo logs to use. - NUMERIC_MIN_VALUE 1 - NUMERIC_MAX_VALUE 128 -@@ -2394,7 +2394,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Number of undo tablespaces to use. - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 127 -@@ -2422,7 +2422,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE 4 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Number of background write I/O threads in InnoDB. - NUMERIC_MIN_VALUE 1 - NUMERIC_MAX_VALUE 64 +52c52 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +64c64 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +76c76 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +88c88 +< VARIABLE_TYPE BIGINT +--- +> VARIABLE_TYPE INT +160c160 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +163c163 +< NUMERIC_MAX_VALUE 9223372036854775807 +--- +> NUMERIC_MAX_VALUE 2147483647 +196c196 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +232c232 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +292c292 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +388c388 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +424c424 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +448c448 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +460c460 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +463c463 +< NUMERIC_MAX_VALUE 18446744073709551615 +--- +> NUMERIC_MAX_VALUE 4294967295 +688c688 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +784c784 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +832c832 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +844c844 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +868c868 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +892c892 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +940c940 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +964c964 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1000c1000 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1012c1012 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1024c1024 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1036c1036 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1039c1039 +< NUMERIC_MAX_VALUE 18446744073709551615 +--- +> NUMERIC_MAX_VALUE 4294967295 +1060c1060 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1072c1072 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1096c1096 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1120c1120 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1123c1123 +< NUMERIC_MAX_VALUE 18446744073709551615 +--- +> NUMERIC_MAX_VALUE 4294967295 +1130c1130 +< DEFAULT_VALUE 18446744073709551615 +--- +> DEFAULT_VALUE 4294967295 +1132c1132 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1135c1135 +< NUMERIC_MAX_VALUE 18446744073709551615 +--- +> NUMERIC_MAX_VALUE 4294967295 +1192c1192 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1204c1204 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1207c1207 +< NUMERIC_MAX_VALUE 9223372036854775807 +--- +> NUMERIC_MAX_VALUE 2147483647 +1252c1252 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1300c1300 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1312c1312 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1315c1315 +< NUMERIC_MAX_VALUE 18446744073709551615 +--- +> NUMERIC_MAX_VALUE 4294967295 +1360c1360 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1363c1363 +< NUMERIC_MAX_VALUE 18446744073709551615 +--- +> NUMERIC_MAX_VALUE 4294967295 +1372c1372 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1492c1492 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1495c1495 +< NUMERIC_MAX_VALUE 9223372036854775807 +--- +> NUMERIC_MAX_VALUE 2147483647 +1516c1516 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1540c1540 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1552c1552 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1588c1588 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1600c1600 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1612c1612 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1636c1636 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1648c1648 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1672c1672 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1675c1675 +< NUMERIC_MAX_VALUE 18446744073709551615 +--- +> NUMERIC_MAX_VALUE 4294967295 +1696c1696 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1708c1708 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1756c1756 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1936c1936 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1960c1960 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +1963c1963 +< NUMERIC_MAX_VALUE 18446744073709551615 +--- +> NUMERIC_MAX_VALUE 4294967295 +1996c1996 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +2008c2008 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +2068c2068 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +2092c2092 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED +2116c2116 +< VARIABLE_TYPE BIGINT UNSIGNED +--- +> VARIABLE_TYPE INT UNSIGNED diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/sysvars_innodb.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/sysvars_innodb.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/sysvars_innodb.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/sysvars_innodb.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,17 +1,16 @@ -select * from information_schema.system_variables +select VARIABLE_NAME, SESSION_VALUE, DEFAULT_VALUE, VARIABLE_SCOPE, VARIABLE_TYPE, VARIABLE_COMMENT, NUMERIC_MIN_VALUE, NUMERIC_MAX_VALUE, NUMERIC_BLOCK_SIZE, ENUM_VALUE_LIST, READ_ONLY, COMMAND_LINE_ARGUMENT from information_schema.system_variables where variable_name like 'innodb%' and variable_name not in ( 'innodb_version', # always the same as the server version 'innodb_disallow_writes', # only available WITH_WSREP 'innodb_numa_interleave', # only available WITH_NUMA 'innodb_sched_priority_cleaner', # linux only +'innodb_evict_tables_on_commit_debug', # one may want to override this 'innodb_use_native_aio', # default value depends on OS 'innodb_buffer_pool_load_pages_abort') # debug build only, and is only for testing order by variable_name; VARIABLE_NAME INNODB_ADAPTIVE_FLUSHING SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -24,8 +23,6 @@ COMMAND_LINE_ARGUMENT NONE VARIABLE_NAME INNODB_ADAPTIVE_FLUSHING_LWM SESSION_VALUE NULL -GLOBAL_VALUE 10.000000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 10.000000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE DOUBLE @@ -38,8 +35,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_ADAPTIVE_HASH_INDEX SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -52,8 +47,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_ADAPTIVE_HASH_INDEX_PARTS SESSION_VALUE NULL -GLOBAL_VALUE 8 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 8 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -66,8 +59,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_ADAPTIVE_MAX_SLEEP_DELAY SESSION_VALUE NULL -GLOBAL_VALUE 150000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 150000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -80,8 +71,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_AUTOEXTEND_INCREMENT SESSION_VALUE NULL -GLOBAL_VALUE 64 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 64 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -94,8 +83,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_AUTOINC_LOCK_MODE SESSION_VALUE NULL -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT @@ -108,8 +95,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_BACKGROUND_DROP_LIST_EMPTY SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -122,8 +107,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_BACKGROUND_SCRUB_DATA_CHECK_INTERVAL SESSION_VALUE NULL -GLOBAL_VALUE 3600 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 3600 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -136,8 +119,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_BACKGROUND_SCRUB_DATA_COMPRESSED SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -150,8 +131,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_BACKGROUND_SCRUB_DATA_INTERVAL SESSION_VALUE NULL -GLOBAL_VALUE 604800 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 604800 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -164,8 +143,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_BACKGROUND_SCRUB_DATA_UNCOMPRESSED SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -178,8 +155,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_BUFFER_POOL_CHUNK_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 8388608 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 134217728 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -192,8 +167,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_BUFFER_POOL_DUMP_AT_SHUTDOWN SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -206,8 +179,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_BUFFER_POOL_DUMP_NOW SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -220,8 +191,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_BUFFER_POOL_DUMP_PCT SESSION_VALUE NULL -GLOBAL_VALUE 25 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 25 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -234,8 +203,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_BUFFER_POOL_EVICT SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR @@ -248,8 +215,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_BUFFER_POOL_FILENAME SESSION_VALUE NULL -GLOBAL_VALUE ib_buffer_pool -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ib_buffer_pool VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR @@ -262,8 +227,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_BUFFER_POOL_INSTANCES SESSION_VALUE NULL -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -276,8 +239,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_BUFFER_POOL_LOAD_ABORT SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -290,8 +251,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_BUFFER_POOL_LOAD_AT_STARTUP SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -304,8 +263,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_BUFFER_POOL_LOAD_NOW SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -318,8 +275,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_BUFFER_POOL_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 8388608 -GLOBAL_VALUE_ORIGIN CONFIG DEFAULT_VALUE 134217728 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -332,8 +287,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_BUF_DUMP_STATUS_FREQUENCY SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -346,8 +299,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_BUF_FLUSH_LIST_NOW SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -360,8 +311,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_CHANGE_BUFFERING SESSION_VALUE NULL -GLOBAL_VALUE all -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE all VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM @@ -374,22 +323,30 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_CHANGE_BUFFERING_DEBUG SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED -VARIABLE_COMMENT Debug flags for InnoDB change buffering (0=none, 2=crash at merge) +VARIABLE_COMMENT Debug flags for InnoDB change buffering (0=none, 1=try to buffer) NUMERIC_MIN_VALUE 0 -NUMERIC_MAX_VALUE 2 +NUMERIC_MAX_VALUE 1 NUMERIC_BLOCK_SIZE 0 ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME INNODB_CHANGE_BUFFER_DUMP +SESSION_VALUE NULL +DEFAULT_VALUE OFF +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BOOLEAN +VARIABLE_COMMENT Dump the change buffer at startup. +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST OFF,ON +READ_ONLY YES +COMMAND_LINE_ARGUMENT NONE VARIABLE_NAME INNODB_CHANGE_BUFFER_MAX_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 25 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 25 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -402,8 +359,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_CHECKSUMS SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -416,8 +371,6 @@ COMMAND_LINE_ARGUMENT NONE VARIABLE_NAME INNODB_CHECKSUM_ALGORITHM SESSION_VALUE NULL -GLOBAL_VALUE crc32 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE crc32 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM @@ -430,8 +383,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_CMP_PER_INDEX_ENABLED SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -444,8 +395,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_COMMIT_CONCURRENCY SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -458,8 +407,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_COMPRESSION_ALGORITHM SESSION_VALUE NULL -GLOBAL_VALUE zlib -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE zlib VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM @@ -472,8 +419,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_COMPRESSION_DEFAULT SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN @@ -486,8 +431,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_COMPRESSION_FAILURE_THRESHOLD_PCT SESSION_VALUE NULL -GLOBAL_VALUE 5 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 5 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -500,8 +443,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_COMPRESSION_LEVEL SESSION_VALUE NULL -GLOBAL_VALUE 6 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 6 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -514,8 +455,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_COMPRESSION_PAD_PCT_MAX SESSION_VALUE NULL -GLOBAL_VALUE 50 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 50 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -528,8 +467,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_CONCURRENCY_TICKETS SESSION_VALUE NULL -GLOBAL_VALUE 5000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 5000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -542,8 +479,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_DATA_FILE_PATH SESSION_VALUE NULL -GLOBAL_VALUE ibdata1:12M:autoextend -GLOBAL_VALUE_ORIGIN CONFIG DEFAULT_VALUE ibdata1:12M:autoextend VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR @@ -556,8 +491,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_DATA_FILE_SIZE_DEBUG SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -570,8 +503,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_DATA_HOME_DIR SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR @@ -584,8 +515,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_DEADLOCK_DETECT SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -598,8 +527,6 @@ COMMAND_LINE_ARGUMENT NONE VARIABLE_NAME INNODB_DEBUG_FORCE_SCRUBBING SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -610,10 +537,20 @@ ENUM_VALUE_LIST OFF,ON READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME INNODB_DEBUG_SYNC +SESSION_VALUE NULL +DEFAULT_VALUE +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE VARCHAR +VARIABLE_COMMENT debug_sync for innodb purge threads. Use it to set up sync points for all purge threads at once. The commands will be applied sequentially at the beginning of purging the next undo record. +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT NONE VARIABLE_NAME INNODB_DEFAULT_ENCRYPTION_KEY_ID SESSION_VALUE 1 -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 1 VARIABLE_SCOPE SESSION VARIABLE_TYPE INT UNSIGNED @@ -626,8 +563,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_DEFAULT_ROW_FORMAT SESSION_VALUE NULL -GLOBAL_VALUE dynamic -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE dynamic VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM @@ -640,8 +575,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_DEFRAGMENT SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -654,8 +587,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_DEFRAGMENT_FILL_FACTOR SESSION_VALUE NULL -GLOBAL_VALUE 0.900000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0.900000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE DOUBLE @@ -668,8 +599,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_DEFRAGMENT_FILL_FACTOR_N_RECS SESSION_VALUE NULL -GLOBAL_VALUE 20 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 20 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -682,8 +611,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_DEFRAGMENT_FREQUENCY SESSION_VALUE NULL -GLOBAL_VALUE 40 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 40 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -696,8 +623,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_DEFRAGMENT_N_PAGES SESSION_VALUE NULL -GLOBAL_VALUE 7 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 7 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -710,8 +635,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_DEFRAGMENT_STATS_ACCURACY SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -724,8 +647,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_DICT_STATS_DISABLED_DEBUG SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -738,8 +659,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_DISABLE_BACKGROUND_MERGE SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -752,8 +671,6 @@ COMMAND_LINE_ARGUMENT NONE VARIABLE_NAME INNODB_DISABLE_RESIZE_BUFFER_POOL_DEBUG SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -766,8 +683,6 @@ COMMAND_LINE_ARGUMENT NONE VARIABLE_NAME INNODB_DISABLE_SORT_FILE_CACHE SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -780,8 +695,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_DOUBLEWRITE SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -794,8 +707,6 @@ COMMAND_LINE_ARGUMENT NONE VARIABLE_NAME INNODB_DOUBLEWRITE_BATCH_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 120 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 120 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -808,8 +719,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_ENCRYPTION_ROTATE_KEY_AGE SESSION_VALUE NULL -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -822,8 +731,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_ENCRYPTION_ROTATION_IOPS SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 100 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -836,8 +743,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_ENCRYPTION_THREADS SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -850,8 +755,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_ENCRYPT_LOG SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -864,8 +767,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_ENCRYPT_TABLES SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM @@ -878,8 +779,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_ENCRYPT_TEMPORARY_TABLES SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -892,8 +791,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_FAST_SHUTDOWN SESSION_VALUE NULL -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -906,8 +803,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_FATAL_SEMAPHORE_WAIT_THRESHOLD SESSION_VALUE NULL -GLOBAL_VALUE 600 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 600 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -920,8 +815,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_FILE_FORMAT SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR @@ -934,8 +827,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_FILE_PER_TABLE SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -948,8 +839,6 @@ COMMAND_LINE_ARGUMENT NONE VARIABLE_NAME INNODB_FILL_FACTOR SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 100 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -962,8 +851,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_FIL_MAKE_PAGE_DIRTY_DEBUG SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -976,8 +863,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_FLUSHING_AVG_LOOPS SESSION_VALUE NULL -GLOBAL_VALUE 30 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 30 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -990,8 +875,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_FLUSH_LOG_AT_TIMEOUT SESSION_VALUE NULL -GLOBAL_VALUE 3 -GLOBAL_VALUE_ORIGIN CONFIG DEFAULT_VALUE 1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -1004,8 +887,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_FLUSH_LOG_AT_TRX_COMMIT SESSION_VALUE NULL -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1018,8 +899,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_FLUSH_METHOD SESSION_VALUE NULL -GLOBAL_VALUE fsync -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE fsync VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM @@ -1032,8 +911,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_FLUSH_NEIGHBORS SESSION_VALUE NULL -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1046,8 +923,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_FLUSH_SYNC SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -1060,8 +935,6 @@ COMMAND_LINE_ARGUMENT NONE VARIABLE_NAME INNODB_FORCE_LOAD_CORRUPTED SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -1074,8 +947,6 @@ COMMAND_LINE_ARGUMENT NONE VARIABLE_NAME INNODB_FORCE_PRIMARY_KEY SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -1088,8 +959,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_FORCE_RECOVERY SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1102,8 +971,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_FT_AUX_TABLE SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR @@ -1116,8 +983,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_FT_CACHE_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 8000000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 8000000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1130,8 +995,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_FT_ENABLE_DIAG_PRINT SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -1144,8 +1007,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_FT_ENABLE_STOPWORD SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN @@ -1158,8 +1019,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_FT_MAX_TOKEN_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 84 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 84 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1172,8 +1031,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_FT_MIN_TOKEN_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 3 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 3 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1186,8 +1043,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_FT_NUM_WORD_OPTIMIZE SESSION_VALUE NULL -GLOBAL_VALUE 2000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 2000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1200,8 +1055,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_FT_RESULT_CACHE_LIMIT SESSION_VALUE NULL -GLOBAL_VALUE 2000000000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 2000000000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1214,8 +1067,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_FT_SERVER_STOPWORD_TABLE SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR @@ -1228,8 +1079,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_FT_SORT_PLL_DEGREE SESSION_VALUE NULL -GLOBAL_VALUE 2 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 2 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1242,8 +1091,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_FT_TOTAL_CACHE_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 640000000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 640000000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1256,8 +1103,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_FT_USER_STOPWORD_TABLE SESSION_VALUE -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE VARIABLE_SCOPE SESSION VARIABLE_TYPE VARCHAR @@ -1270,8 +1115,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_IDLE_FLUSH_PCT SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 100 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1284,8 +1127,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_IMMEDIATE_SCRUB_DATA_UNCOMPRESSED SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -1298,8 +1139,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_IO_CAPACITY SESSION_VALUE NULL -GLOBAL_VALUE 200 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 200 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1312,8 +1151,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_IO_CAPACITY_MAX SESSION_VALUE NULL -GLOBAL_VALUE 2000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 18446744073709551615 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1326,8 +1163,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_LARGE_PREFIX SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR @@ -1340,8 +1175,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -1354,8 +1187,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_LOCKS_UNSAFE_FOR_BINLOG SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -1368,8 +1199,6 @@ COMMAND_LINE_ARGUMENT NONE VARIABLE_NAME INNODB_LOCK_SCHEDULE_ALGORITHM SESSION_VALUE NULL -GLOBAL_VALUE fcfs -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE fcfs VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM @@ -1382,8 +1211,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_LOCK_WAIT_TIMEOUT SESSION_VALUE 50 -GLOBAL_VALUE 50 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 50 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED @@ -1396,8 +1223,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_LOG_BUFFER_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 1048576 -GLOBAL_VALUE_ORIGIN CONFIG DEFAULT_VALUE 16777216 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1410,8 +1235,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_LOG_CHECKPOINT_NOW SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -1424,8 +1247,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_LOG_CHECKSUMS SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -1438,8 +1259,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_LOG_COMPRESSED_PAGES SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -1452,8 +1271,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_LOG_FILES_IN_GROUP SESSION_VALUE NULL -GLOBAL_VALUE 2 -GLOBAL_VALUE_ORIGIN CONFIG DEFAULT_VALUE 2 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1466,22 +1283,18 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_LOG_FILE_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 5242880 -GLOBAL_VALUE_ORIGIN CONFIG DEFAULT_VALUE 50331648 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Size of each log file in a log group. NUMERIC_MIN_VALUE 1048576 -NUMERIC_MAX_VALUE 549755813888 +NUMERIC_MAX_VALUE 17592186044415 NUMERIC_BLOCK_SIZE 65536 ENUM_VALUE_LIST NULL READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_LOG_GROUP_HOME_DIR SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR @@ -1494,8 +1307,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_LOG_OPTIMIZE_DDL SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -1508,8 +1319,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_LOG_WRITE_AHEAD_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 8192 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 8192 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1522,8 +1331,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_LRU_SCAN_DEPTH SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN CONFIG DEFAULT_VALUE 1024 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1536,8 +1343,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_MASTER_THREAD_DISABLED_DEBUG SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -1550,8 +1355,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_MAX_DIRTY_PAGES_PCT SESSION_VALUE NULL -GLOBAL_VALUE 75.000000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 75.000000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE DOUBLE @@ -1564,8 +1367,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_MAX_DIRTY_PAGES_PCT_LWM SESSION_VALUE NULL -GLOBAL_VALUE 0.000000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0.000000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE DOUBLE @@ -1578,8 +1379,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_MAX_PURGE_LAG SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1592,8 +1391,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_MAX_PURGE_LAG_DELAY SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1606,8 +1403,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_MAX_UNDO_LOG_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 10485760 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 10485760 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1620,8 +1415,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_MERGE_THRESHOLD_SET_ALL_DEBUG SESSION_VALUE NULL -GLOBAL_VALUE 50 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 50 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -1634,8 +1427,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_MONITOR_DISABLE SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR @@ -1648,8 +1439,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_MONITOR_ENABLE SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR @@ -1662,8 +1451,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_MONITOR_RESET SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR @@ -1676,8 +1463,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_MONITOR_RESET_ALL SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR @@ -1690,8 +1475,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_OLD_BLOCKS_PCT SESSION_VALUE NULL -GLOBAL_VALUE 37 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 37 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -1704,8 +1487,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_OLD_BLOCKS_TIME SESSION_VALUE NULL -GLOBAL_VALUE 1000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 1000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -1718,8 +1499,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_ONLINE_ALTER_LOG_MAX_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 134217728 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 134217728 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1732,8 +1511,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_OPEN_FILES SESSION_VALUE NULL -GLOBAL_VALUE 300 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1746,8 +1523,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_OPTIMIZE_FULLTEXT_ONLY SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -1760,8 +1535,6 @@ COMMAND_LINE_ARGUMENT NONE VARIABLE_NAME INNODB_PAGE_CLEANERS SESSION_VALUE NULL -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 4 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1774,8 +1547,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_PAGE_CLEANER_DISABLED_DEBUG SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -1788,8 +1559,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_PAGE_HASH_LOCKS SESSION_VALUE NULL -GLOBAL_VALUE 16 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 16 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1802,8 +1571,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_PAGE_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 16384 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 16384 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1816,8 +1583,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_PREFIX_INDEX_CLUSTER_OPTIMIZATION SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -1830,8 +1595,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_PRINT_ALL_DEADLOCKS SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -1844,8 +1607,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_PURGE_BATCH_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 300 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 300 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1858,8 +1619,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_PURGE_RSEG_TRUNCATE_FREQUENCY SESSION_VALUE NULL -GLOBAL_VALUE 128 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 128 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1872,8 +1631,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_PURGE_THREADS SESSION_VALUE NULL -GLOBAL_VALUE 4 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 4 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1886,8 +1643,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_RANDOM_READ_AHEAD SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -1900,8 +1655,6 @@ COMMAND_LINE_ARGUMENT NONE VARIABLE_NAME INNODB_READ_AHEAD_THRESHOLD SESSION_VALUE NULL -GLOBAL_VALUE 56 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 56 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1914,8 +1667,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_READ_IO_THREADS SESSION_VALUE NULL -GLOBAL_VALUE 2 -GLOBAL_VALUE_ORIGIN CONFIG DEFAULT_VALUE 4 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1928,8 +1679,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_READ_ONLY SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -1942,8 +1691,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_REPLICATION_DELAY SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1956,8 +1703,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_ROLLBACK_ON_TIMEOUT SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -1970,8 +1715,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_ROLLBACK_SEGMENTS SESSION_VALUE NULL -GLOBAL_VALUE 128 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 128 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1984,8 +1727,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_SAVED_PAGE_NUMBER_DEBUG SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -1998,8 +1739,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_SCRUB_LOG SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -2012,8 +1751,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_SCRUB_LOG_SPEED SESSION_VALUE NULL -GLOBAL_VALUE 256 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 256 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -2026,8 +1763,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_SIMULATE_COMP_FAILURES SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -2040,8 +1775,6 @@ COMMAND_LINE_ARGUMENT NONE VARIABLE_NAME INNODB_SORT_BUFFER_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 1048576 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 1048576 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -2054,8 +1787,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_SPIN_WAIT_DELAY SESSION_VALUE NULL -GLOBAL_VALUE 4 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 4 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -2068,8 +1799,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_STATS_AUTO_RECALC SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -2082,8 +1811,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_STATS_INCLUDE_DELETE_MARKED SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -2096,8 +1823,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_STATS_METHOD SESSION_VALUE NULL -GLOBAL_VALUE nulls_equal -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE nulls_equal VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM @@ -2110,8 +1835,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_STATS_MODIFIED_COUNTER SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -2124,8 +1847,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_STATS_ON_METADATA SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -2138,8 +1859,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_STATS_PERSISTENT SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN CONFIG DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -2152,8 +1871,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_STATS_PERSISTENT_SAMPLE_PAGES SESSION_VALUE NULL -GLOBAL_VALUE 20 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 20 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -2166,8 +1883,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_STATS_SAMPLE_PAGES SESSION_VALUE NULL -GLOBAL_VALUE 8 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 8 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -2180,8 +1895,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_STATS_TRADITIONAL SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -2194,8 +1907,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_STATS_TRANSIENT_SAMPLE_PAGES SESSION_VALUE NULL -GLOBAL_VALUE 8 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 8 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -2208,8 +1919,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_STATUS_OUTPUT SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -2222,8 +1931,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_STATUS_OUTPUT_LOCKS SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -2236,8 +1943,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_STRICT_MODE SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN @@ -2250,8 +1955,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_SYNC_ARRAY_SIZE SESSION_VALUE NULL -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -2264,8 +1967,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_SYNC_DEBUG SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -2278,8 +1979,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_SYNC_SPIN_LOOPS SESSION_VALUE NULL -GLOBAL_VALUE 30 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 30 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -2292,8 +1991,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_TABLE_LOCKS SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN @@ -2306,8 +2003,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_TEMP_DATA_FILE_PATH SESSION_VALUE NULL -GLOBAL_VALUE ibtmp1:12M:autoextend -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ibtmp1:12M:autoextend VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR @@ -2320,8 +2015,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_THREAD_CONCURRENCY SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -2334,8 +2027,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_THREAD_SLEEP_DELAY SESSION_VALUE NULL -GLOBAL_VALUE 10000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 10000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -2348,8 +2039,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_TMPDIR SESSION_VALUE -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE VARIABLE_SCOPE SESSION VARIABLE_TYPE VARCHAR @@ -2362,8 +2051,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_TRX_PURGE_VIEW_UPDATE_ONLY_DEBUG SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -2376,8 +2063,6 @@ COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME INNODB_TRX_RSEG_N_SLOTS_DEBUG SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED @@ -2390,8 +2075,6 @@ COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME INNODB_UNDO_DIRECTORY SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR @@ -2404,8 +2087,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_UNDO_LOGS SESSION_VALUE NULL -GLOBAL_VALUE 128 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 128 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -2418,8 +2099,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_UNDO_LOG_TRUNCATE SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -2432,8 +2111,6 @@ COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME INNODB_UNDO_TABLESPACES SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED @@ -2446,8 +2123,6 @@ COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INNODB_USE_ATOMIC_WRITES SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN @@ -2460,8 +2135,6 @@ COMMAND_LINE_ARGUMENT NONE VARIABLE_NAME INNODB_WRITE_IO_THREADS SESSION_VALUE NULL -GLOBAL_VALUE 2 -GLOBAL_VALUE_ORIGIN CONFIG DEFAULT_VALUE 4 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/sysvars_server_embedded,32bit.rdiff 2019-11-06 16:01:57.000000000 +0000 @@ -1,33 +1,136 @@ ---- sysvars_server_embedded.result 2017-11-17 17:00:22.462630239 +0100 -+++ sysvars_server_embedded,32bit.reject 2017-11-17 19:09:55.472258411 +0100 -@@ -58,7 +58,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE 1 +--- sysvars_server_embedded.result 2019-09-02 17:28:33.630863762 +0300 ++++ sysvars_server_embedded,32bit.reject 2019-09-02 17:50:30.619590080 +0300 +@@ -25,7 +25,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME ARIA_BLOCK_SIZE + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT Block size to be used for Aria index pages. + NUMERIC_MIN_VALUE 1024 + NUMERIC_MAX_VALUE 32768 +@@ -35,7 +35,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME ARIA_CHECKPOINT_INTERVAL + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT Interval between tries to do an automatic checkpoints. In seconds; 0 means 'no automatic checkpoints' which makes sense only for testing. + NUMERIC_MIN_VALUE 0 + NUMERIC_MAX_VALUE 4294967295 +@@ -45,7 +45,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME ARIA_CHECKPOINT_LOG_ACTIVITY + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT Number of bytes that the transaction log has to grow between checkpoints before a new checkpoint is written to the log. + NUMERIC_MIN_VALUE 0 + NUMERIC_MAX_VALUE 4294967295 +@@ -65,7 +65,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME ARIA_FORCE_START_AFTER_RECOVERY_FAILURES + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT Number of consecutive log recovery failures after which logs will be automatically deleted to cure the problem; 0 (the default) disables the feature. + NUMERIC_MIN_VALUE 0 + NUMERIC_MAX_VALUE 255 +@@ -85,7 +85,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME ARIA_GROUP_COMMIT_INTERVAL + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT Interval between commite in microseconds (1/1000000c). 0 stands for no waiting for other threads to come and do a commit in "hard" mode and no sync()/commit at all in "soft" mode. Option has only an effect if aria_group_commit is used + NUMERIC_MIN_VALUE 0 + NUMERIC_MAX_VALUE 4294967295 +@@ -95,7 +95,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME ARIA_LOG_FILE_SIZE + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT Limit for transaction log size + NUMERIC_MIN_VALUE 8388608 + NUMERIC_MAX_VALUE 4294967295 +@@ -125,10 +125,10 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME ARIA_PAGECACHE_AGE_THRESHOLD + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT This characterizes the number of hits a hot block has to be untouched until it is considered aged enough to be downgraded to a warm block. This specifies the percentage ratio of that number of hits to the total number of blocks in the page cache. + NUMERIC_MIN_VALUE 100 +-NUMERIC_MAX_VALUE 18446744073709551615 ++NUMERIC_MAX_VALUE 4294967295 + NUMERIC_BLOCK_SIZE 100 + ENUM_VALUE_LIST NULL + READ_ONLY NO +@@ -145,7 +145,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME ARIA_PAGECACHE_DIVISION_LIMIT + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT The minimum percentage of warm blocks in key cache + NUMERIC_MIN_VALUE 1 + NUMERIC_MAX_VALUE 100 +@@ -155,7 +155,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME ARIA_PAGECACHE_FILE_HASH_SIZE + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT Number of hash buckets for open and changed files. If you have a lot of Aria files open you should increase this for faster flush of changes. A good value is probably 1/10 of number of possible open Aria files. + NUMERIC_MIN_VALUE 128 + NUMERIC_MAX_VALUE 16384 +@@ -185,7 +185,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME ARIA_REPAIR_THREADS + VARIABLE_SCOPE SESSION +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT Number of threads to use when repairing Aria tables. The value of 1 disables parallel repair. + NUMERIC_MIN_VALUE 1 + NUMERIC_MAX_VALUE 128 +@@ -198,7 +198,7 @@ + VARIABLE_TYPE BIGINT UNSIGNED + VARIABLE_COMMENT The buffer that is allocated when sorting the index when doing a REPAIR or when creating indexes with CREATE INDEX or ALTER TABLE. + NUMERIC_MIN_VALUE 4096 +-NUMERIC_MAX_VALUE 18446744073709551615 ++NUMERIC_MAX_VALUE 4294967295 + NUMERIC_BLOCK_SIZE 1 + ENUM_VALUE_LIST NULL + READ_ONLY NO +@@ -255,7 +255,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME AUTO_INCREMENT_INCREMENT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Auto-increment columns are incremented by this NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 65535 -@@ -72,7 +72,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1 +@@ -265,7 +265,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME AUTO_INCREMENT_OFFSET VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Offset added to Auto-increment columns. Used when auto-increment-increment != 1 NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 65535 -@@ -86,7 +86,7 @@ - GLOBAL_VALUE_ORIGIN AUTO - DEFAULT_VALUE 150 +@@ -275,7 +275,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME BACK_LOG VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of outstanding connection requests MariaDB can have. This comes into play when the main MariaDB thread gets very many connection requests in a very short time NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 65535 -@@ -159,7 +159,7 @@ +@@ -328,7 +328,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the transactional cache for updates to transactional engines for the binary log. If you often use transactions containing many statements, you can increase this to get more performance NUMERIC_MIN_VALUE 4096 @@ -36,9 +139,9 @@ NUMERIC_BLOCK_SIZE 4096 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -184,10 +184,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 +@@ -345,20 +345,20 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME BINLOG_COMMIT_WAIT_COUNT VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED @@ -49,9 +152,8 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -198,10 +198,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 100000 + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME BINLOG_COMMIT_WAIT_USEC VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED @@ -62,7 +164,7 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -229,7 +229,7 @@ +@@ -378,7 +378,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of file cache for the binary log NUMERIC_MIN_VALUE 8192 @@ -71,7 +173,7 @@ NUMERIC_BLOCK_SIZE 4096 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -285,7 +285,7 @@ +@@ -418,7 +418,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the statement cache for updates to non-transactional engines for the binary log. If you often use statements updating a great number of rows, you can increase this to get more performance. NUMERIC_MIN_VALUE 4096 @@ -80,7 +182,7 @@ NUMERIC_BLOCK_SIZE 4096 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -299,7 +299,7 @@ +@@ -428,7 +428,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Size of tree cache used in bulk insert optimisation. Note that this is a limit per thread! NUMERIC_MIN_VALUE 0 @@ -89,151 +191,151 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -562,7 +562,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE 10 +@@ -615,7 +615,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME CONNECT_TIMEOUT VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of seconds the mysqld server is waiting for a connect packet before responding with 'Bad handshake' NUMERIC_MIN_VALUE 2 NUMERIC_MAX_VALUE 31536000 -@@ -618,7 +618,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 15 +@@ -665,7 +665,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME DEADLOCK_SEARCH_DEPTH_LONG VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Long search depth for the two-step deadlock detection NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 33 -@@ -632,7 +632,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 4 +@@ -675,7 +675,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME DEADLOCK_SEARCH_DEPTH_SHORT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Short search depth for the two-step deadlock detection NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 32 -@@ -646,7 +646,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 50000000 +@@ -685,7 +685,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME DEADLOCK_TIMEOUT_LONG VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Long timeout for the two-step deadlock detection (in microseconds) NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 4294967295 -@@ -660,7 +660,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 10000 +@@ -695,7 +695,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME DEADLOCK_TIMEOUT_SHORT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Short timeout for the two-step deadlock detection (in microseconds) NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 4294967295 -@@ -716,7 +716,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 +@@ -735,7 +735,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME DEFAULT_WEEK_FORMAT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The default week format used by WEEK() functions NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 7 -@@ -730,7 +730,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 100 +@@ -745,7 +745,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME DELAYED_INSERT_LIMIT VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT After inserting delayed_insert_limit rows, the INSERT DELAYED handler will check if there are any SELECT statements pending. If so, it allows these to execute before continuing. NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 4294967295 -@@ -744,7 +744,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 300 +@@ -755,7 +755,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME DELAYED_INSERT_TIMEOUT VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT How long a INSERT DELAYED thread should wait for INSERT statements before terminating NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 31536000 -@@ -758,7 +758,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1000 +@@ -765,7 +765,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME DELAYED_QUEUE_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT What size queue (in rows) should be allocated for handling INSERT DELAYED. If the queue becomes full, any client that does INSERT DELAYED will wait until there is room in the queue again NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 4294967295 -@@ -786,7 +786,7 @@ - GLOBAL_VALUE_ORIGIN SQL - DEFAULT_VALUE 4 +@@ -785,7 +785,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME DIV_PRECISION_INCREMENT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Precision of the result of '/' operator will be increased on that value NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 38 -@@ -884,7 +884,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 +@@ -865,7 +865,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME EXPIRE_LOGS_DAYS VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT If non-zero, binary logs will be purged after expire_logs_days days; possible purges happen at startup and at binary log rotation NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 99 -@@ -926,7 +926,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1 +@@ -895,7 +895,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME EXTRA_MAX_CONNECTIONS VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of connections on extra-port NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 100000 -@@ -968,7 +968,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 +@@ -925,7 +925,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME FLUSH_TIME VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT A dedicated thread is created to flush all tables at the given interval NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 31536000 -@@ -1010,7 +1010,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 84 +@@ -955,7 +955,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME FT_MAX_WORD_LEN VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The maximum length of the word to be included in a FULLTEXT index. Note: FULLTEXT indexes must be rebuilt after changing this variable NUMERIC_MIN_VALUE 10 NUMERIC_MAX_VALUE 84 -@@ -1024,7 +1024,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 4 +@@ -965,7 +965,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME FT_MIN_WORD_LEN VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The minimum length of the word to be included in a FULLTEXT index. Note: FULLTEXT indexes must be rebuilt after changing this variable NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 84 -@@ -1038,7 +1038,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 20 +@@ -975,7 +975,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME FT_QUERY_EXPANSION_LIMIT VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Number of best matches to use for query expansion NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 1000 -@@ -1097,7 +1097,7 @@ +@@ -1018,7 +1018,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The maximum length of the result of function GROUP_CONCAT() NUMERIC_MIN_VALUE 4 @@ -242,47 +344,34 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -1248,7 +1248,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 +@@ -1145,7 +1145,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME HISTOGRAM_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Number of bytes used for a histogram. If set to 0, no histograms are created by ANALYZE. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 255 -@@ -1276,7 +1276,7 @@ - GLOBAL_VALUE_ORIGIN AUTO - DEFAULT_VALUE 128 +@@ -1175,7 +1175,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME HOST_CACHE_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT How many host names should be cached to avoid resolving. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 65536 -@@ -1430,7 +1430,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 28800 +@@ -1285,7 +1285,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME INTERACTIVE_TIMEOUT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of seconds the server waits for activity on an interactive connection before closing it NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 31536000 -@@ -1444,10 +1444,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1000 - VARIABLE_SCOPE SESSION --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT The minimum number of scalar elements in the value list of IN predicate that triggers its conversion to IN subquery - NUMERIC_MIN_VALUE 0 --NUMERIC_MAX_VALUE 18446744073709551615 -+NUMERIC_MAX_VALUE 4294967295 - NUMERIC_BLOCK_SIZE 1 - ENUM_VALUE_LIST NULL - READ_ONLY NO -@@ -1475,7 +1475,7 @@ +@@ -1308,7 +1308,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the buffer that is used for joins NUMERIC_MIN_VALUE 128 @@ -291,16 +380,16 @@ NUMERIC_BLOCK_SIZE 128 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -1500,7 +1500,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 2 +@@ -1325,7 +1325,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME JOIN_CACHE_LEVEL VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Controls what join operations can be executed with join buffers. Odd numbers are used for plain join buffers while even numbers are used for linked buffers NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 8 -@@ -1531,7 +1531,7 @@ +@@ -1348,7 +1348,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the buffer used for index blocks for MyISAM tables. Increase this to get better index handling (for all reads and multiple writes) to as much as you can afford NUMERIC_MIN_VALUE 0 @@ -309,52 +398,43 @@ NUMERIC_BLOCK_SIZE 4096 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -1738,7 +1738,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 86400 +@@ -1505,7 +1505,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME LOCK_WAIT_TIMEOUT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Timeout in seconds to wait for a lock before returning an error. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 31536000 -@@ -1906,7 +1906,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1 +@@ -1625,7 +1625,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME LOG_SLOW_RATE_LIMIT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Write to slow log every #th slow query. Set to 1 to log everything. Increase it to reduce the size of the slow or the performance impact of slow logging NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 4294967295 -@@ -1948,7 +1948,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 2 +@@ -1655,7 +1655,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME LOG_WARNINGS VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Log some not critical warnings to the general log file.Value can be between 0 and 11. Higher values mean more verbosity NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 4294967295 -@@ -1990,7 +1990,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 16777216 +@@ -1705,7 +1705,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME MAX_ALLOWED_PACKET VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Max packet length to send to or receive from the server NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 1073741824 -@@ -2000,14 +2000,14 @@ - COMMAND_LINE_ARGUMENT REQUIRED - VARIABLE_NAME MAX_BINLOG_CACHE_SIZE - SESSION_VALUE NULL --GLOBAL_VALUE 18446744073709547520 -+GLOBAL_VALUE 4294963200 - GLOBAL_VALUE_ORIGIN COMPILE-TIME --DEFAULT_VALUE 18446744073709547520 -+DEFAULT_VALUE 4294963200 - VARIABLE_SCOPE GLOBAL +@@ -1718,14 +1718,14 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Sets the total size of the transactional cache NUMERIC_MIN_VALUE 4096 @@ -363,25 +443,15 @@ NUMERIC_BLOCK_SIZE 4096 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -2018,7 +2018,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1073741824 + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_BINLOG_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Binary log will be rotated automatically when the size exceeds this value. NUMERIC_MIN_VALUE 4096 NUMERIC_MAX_VALUE 1073741824 -@@ -2028,14 +2028,14 @@ - COMMAND_LINE_ARGUMENT REQUIRED - VARIABLE_NAME MAX_BINLOG_STMT_CACHE_SIZE - SESSION_VALUE NULL --GLOBAL_VALUE 18446744073709547520 -+GLOBAL_VALUE 4294963200 - GLOBAL_VALUE_ORIGIN COMPILE-TIME --DEFAULT_VALUE 18446744073709547520 -+DEFAULT_VALUE 4294963200 - VARIABLE_SCOPE GLOBAL +@@ -1738,14 +1738,14 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Sets the total size of the statement cache NUMERIC_MIN_VALUE 4096 @@ -390,43 +460,42 @@ NUMERIC_BLOCK_SIZE 4096 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -2046,7 +2046,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 151 + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_CONNECTIONS VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of simultaneous clients allowed - NUMERIC_MIN_VALUE 1 + NUMERIC_MIN_VALUE 10 NUMERIC_MAX_VALUE 100000 -@@ -2060,7 +2060,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 100 +@@ -1755,7 +1755,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_CONNECT_ERRORS VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT If there is more than this number of interrupted connections from a host this host will be blocked from further connections NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 4294967295 -@@ -2074,7 +2074,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 20 +@@ -1765,7 +1765,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_DELAYED_THREADS VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Don't start more than this number of threads to handle INSERT DELAYED statements. If set to zero INSERT DELAYED will be not used NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 16384 -@@ -2102,7 +2102,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 64 +@@ -1785,7 +1785,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_ERROR_COUNT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Max number of errors/warnings to store for a statement NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 65535 -@@ -2119,7 +2119,7 @@ +@@ -1798,14 +1798,14 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Don't allow creation of heap tables bigger than this NUMERIC_MIN_VALUE 16384 @@ -435,135 +504,125 @@ NUMERIC_BLOCK_SIZE 1024 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -2130,7 +2130,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 20 + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_INSERT_DELAYED_THREADS VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Don't start more than this number of threads to handle INSERT DELAYED statements. If set to zero INSERT DELAYED will be not used NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 16384 -@@ -2158,7 +2158,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1024 +@@ -1825,7 +1825,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_LENGTH_FOR_SORT_DATA VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Max number of bytes in sorted records NUMERIC_MIN_VALUE 4 NUMERIC_MAX_VALUE 8388608 -@@ -2172,7 +2172,7 @@ - GLOBAL_VALUE_ORIGIN AUTO - DEFAULT_VALUE 1048576 +@@ -1835,7 +1835,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_LONG_DATA_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The maximum BLOB length to send to server from mysql_send_long_data API. Deprecated option; use max_allowed_packet instead. NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 4294967295 -@@ -2186,7 +2186,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 16382 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Maximum number of prepared statements in the server - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 1048576 -@@ -2200,7 +2200,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 4294967295 +@@ -1855,7 +1855,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_RECURSIVE_ITERATIONS VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of iterations when executing recursive queries NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 4294967295 -@@ -2214,7 +2214,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 4294967295 +@@ -1865,7 +1865,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME MAX_SEEKS_FOR_KEY VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Limit assumed max number of seeks when looking up rows based on a key NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 4294967295 -@@ -2242,7 +2242,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1024 +@@ -1885,7 +1885,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_SORT_LENGTH VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of bytes to use when sorting BLOB or TEXT values (only the first max_sort_length bytes of each value are used; the rest are ignored) NUMERIC_MIN_VALUE 4 NUMERIC_MAX_VALUE 8388608 -@@ -2256,7 +2256,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 +@@ -1895,7 +1895,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_SP_RECURSION_DEPTH VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum stored procedure recursion depth NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 255 -@@ -2284,7 +2284,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 32 +@@ -1915,7 +1915,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_TMP_TABLES VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Unused, will be removed. NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 4294967295 -@@ -2312,7 +2312,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 4294967295 +@@ -1935,7 +1935,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_WRITE_LOCK_COUNT VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT After this many write locks, allow some read locks to run in between NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 4294967295 -@@ -2326,7 +2326,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1024 +@@ -1945,7 +1945,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME METADATA_LOCKS_CACHE_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Unused NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 1048576 -@@ -2340,7 +2340,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 8 +@@ -1955,7 +1955,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME METADATA_LOCKS_HASH_INSTANCES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Unused NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 1024 -@@ -2354,7 +2354,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 +@@ -1965,7 +1965,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MIN_EXAMINED_ROW_LIMIT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Don't write queries to slow log that examine fewer rows than that NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 4294967295 -@@ -2368,7 +2368,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 262144 +@@ -1975,7 +1975,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MRR_BUFFER_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Size of buffer to use when using MRR with range access NUMERIC_MIN_VALUE 8192 NUMERIC_MAX_VALUE 2147483647 -@@ -2382,10 +2382,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 256 +@@ -1985,17 +1985,17 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MULTI_RANGE_COUNT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED @@ -574,46 +633,24 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -2396,7 +2396,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1024 + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MYISAM_BLOCK_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Block size to be used for MyISAM index pages NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 16384 -@@ -2410,7 +2410,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 6 +@@ -2005,7 +2005,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MYISAM_DATA_POINTER_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Default pointer size to be used for MyISAM tables NUMERIC_MIN_VALUE 2 NUMERIC_MAX_VALUE 7 -@@ -2420,9 +2420,9 @@ - COMMAND_LINE_ARGUMENT REQUIRED - VARIABLE_NAME MYISAM_MAX_SORT_FILE_SIZE - SESSION_VALUE NULL --GLOBAL_VALUE 9223372036853727232 -+GLOBAL_VALUE 2146435072 - GLOBAL_VALUE_ORIGIN COMPILE-TIME --DEFAULT_VALUE 9223372036853727232 -+DEFAULT_VALUE 2146435072 - VARIABLE_SCOPE GLOBAL - VARIABLE_TYPE BIGINT UNSIGNED - VARIABLE_COMMENT Don't use the fast sort index method to created index if the temporary file would get bigger than this -@@ -2434,14 +2434,14 @@ - COMMAND_LINE_ARGUMENT REQUIRED - VARIABLE_NAME MYISAM_MMAP_SIZE - SESSION_VALUE NULL --GLOBAL_VALUE 18446744073709551615 -+GLOBAL_VALUE 4294967295 - GLOBAL_VALUE_ORIGIN COMPILE-TIME --DEFAULT_VALUE 18446744073709551615 -+DEFAULT_VALUE 4294967295 - VARIABLE_SCOPE GLOBAL +@@ -2028,7 +2028,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Restricts the total memory used for memory mapping of MySQL tables NUMERIC_MIN_VALUE 7 @@ -622,9 +659,9 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY YES -@@ -2466,10 +2466,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1 +@@ -2045,10 +2045,10 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME MYISAM_REPAIR_THREADS VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED @@ -635,7 +672,7 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -2483,7 +2483,7 @@ +@@ -2058,7 +2058,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The buffer that is allocated when sorting the index when doing a REPAIR or when creating indexes with CREATE INDEX or ALTER TABLE NUMERIC_MIN_VALUE 4096 @@ -644,412 +681,421 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -2536,7 +2536,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 16384 +@@ -2095,7 +2095,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME NET_BUFFER_LENGTH VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Buffer length for TCP/IP and socket communication NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 1048576 -@@ -2550,7 +2550,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 30 +@@ -2105,7 +2105,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME NET_READ_TIMEOUT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Number of seconds to wait for more data from a connection before aborting the read NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 31536000 -@@ -2564,7 +2564,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 10 +@@ -2115,7 +2115,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME NET_RETRY_COUNT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT If a read on a communication port is interrupted, retry this many times before giving up NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 4294967295 -@@ -2578,7 +2578,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 60 +@@ -2125,7 +2125,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME NET_WRITE_TIMEOUT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Number of seconds to wait for a block to be written to a connection before aborting the write NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 31536000 -@@ -2648,7 +2648,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1 +@@ -2175,7 +2175,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME OPEN_FILES_LIMIT + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT If this is not 0, then mysqld will use this value to reserve file descriptors to use with setrlimit(). If this value is 0 or autoset then mysqld will reserve max_connections*5 or max_connections + table_cache*2 (whichever is larger) number of file descriptors + NUMERIC_MIN_VALUE 0 + NUMERIC_MAX_VALUE 4294967295 +@@ -2185,7 +2185,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME OPTIMIZER_PRUNE_LEVEL VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Controls the heuristic(s) applied during query optimization to prune less-promising partial plans from the optimizer search space. Meaning: 0 - do not apply any heuristic, thus perform exhaustive search; 1 - prune plans based on number of retrieved rows NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 1 -@@ -2662,7 +2662,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 62 +@@ -2195,7 +2195,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME OPTIMIZER_SEARCH_DEPTH VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum depth of search performed by the query optimizer. Values larger than the number of relations in a query result in better query plans, but take longer to compile a query. Values smaller than the number of tables in a relation result in faster optimization, but may produce very bad query plans. If set to 0, the system will automatically pick a reasonable value. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 62 -@@ -2676,7 +2676,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 100 +@@ -2205,7 +2205,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME OPTIMIZER_SELECTIVITY_SAMPLING_LIMIT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Controls number of record samples to check condition selectivity NUMERIC_MIN_VALUE 10 NUMERIC_MAX_VALUE 4294967295 -@@ -2704,7 +2704,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1 +@@ -2225,7 +2225,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME OPTIMIZER_USE_CONDITION_SELECTIVITY VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Controls selectivity of which conditions the optimizer takes into account to calculate cardinality of a partial join when it searches for the best execution plan Meaning: 1 - use selectivity of index backed range conditions to calculate the cardinality of a partial join if the last joined table is accessed by full table scan or an index scan, 2 - use selectivity of index backed range conditions to calculate the cardinality of a partial join in any case, 3 - additionally always use selectivity of range conditions that are not backed by any index to calculate the cardinality of a partial join, 4 - use histograms to calculate selectivity of range conditions that are not backed by any index to calculate the cardinality of a partial join.5 - additionally use selectivity of certain non-range predicates calculated on record samples NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 5 -@@ -2732,7 +2732,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2245,7 +2245,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME PERFORMANCE_SCHEMA_ACCOUNTS_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of instrumented user@host accounts. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -2746,7 +2746,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2255,7 +2255,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_DIGESTS_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Size of the statement digest. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 200 -@@ -2760,7 +2760,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2265,7 +2265,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_LONG_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Number of rows in EVENTS_STAGES_HISTORY_LONG. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -2774,7 +2774,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2275,7 +2275,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Number of rows per thread in EVENTS_STAGES_HISTORY. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1024 -@@ -2788,7 +2788,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2285,7 +2285,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_LONG_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Number of rows in EVENTS_STATEMENTS_HISTORY_LONG. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -2802,7 +2802,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2295,7 +2295,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Number of rows per thread in EVENTS_STATEMENTS_HISTORY. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1024 -@@ -2816,7 +2816,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2305,7 +2305,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Number of rows in EVENTS_WAITS_HISTORY_LONG. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -2830,7 +2830,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2315,7 +2315,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Number of rows per thread in EVENTS_WAITS_HISTORY. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1024 -@@ -2844,7 +2844,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2325,7 +2325,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_HOSTS_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of instrumented hosts. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -2858,7 +2858,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 80 +@@ -2335,7 +2335,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_COND_CLASSES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of condition instruments. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 256 -@@ -2872,7 +2872,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2345,7 +2345,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_COND_INSTANCES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of instrumented condition objects. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -2886,7 +2886,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1024 +@@ -2355,7 +2355,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_DIGEST_LENGTH VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum length considered for digest text, when stored in performance_schema tables. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 1048576 -@@ -2900,7 +2900,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 50 +@@ -2365,7 +2365,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_FILE_CLASSES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of file instruments. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 256 -@@ -2914,7 +2914,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 32768 +@@ -2375,7 +2375,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_FILE_HANDLES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of opened instrumented files. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 1048576 -@@ -2928,7 +2928,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2385,7 +2385,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_FILE_INSTANCES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of instrumented files. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -2942,7 +2942,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 200 +@@ -2395,7 +2395,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_MUTEX_CLASSES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of mutex instruments. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 256 -@@ -2956,7 +2956,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2405,7 +2405,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_MUTEX_INSTANCES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of instrumented MUTEX objects. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 104857600 -@@ -2970,7 +2970,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 40 +@@ -2415,7 +2415,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_RWLOCK_CLASSES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of rwlock instruments. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 256 -@@ -2984,7 +2984,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2425,7 +2425,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_RWLOCK_INSTANCES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of instrumented RWLOCK objects. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 104857600 -@@ -2998,7 +2998,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 10 +@@ -2435,7 +2435,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_SOCKET_CLASSES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of socket instruments. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 256 -@@ -3012,7 +3012,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2445,7 +2445,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_SOCKET_INSTANCES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of opened instrumented sockets. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -3026,7 +3026,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 160 +@@ -2455,7 +2455,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_STAGE_CLASSES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of stage instruments. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 256 -@@ -3040,7 +3040,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 191 +@@ -2465,7 +2465,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_STATEMENT_CLASSES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of statement instruments. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 256 -@@ -3054,7 +3054,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2475,7 +2475,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_TABLE_HANDLES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of opened instrumented tables. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -3068,7 +3068,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2485,7 +2485,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_TABLE_INSTANCES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of instrumented tables. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -3082,7 +3082,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 50 +@@ -2495,7 +2495,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_THREAD_CLASSES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of thread instruments. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 256 -@@ -3096,7 +3096,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2505,7 +2505,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_THREAD_INSTANCES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of instrumented threads. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -3110,7 +3110,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2515,7 +2515,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_SESSION_CONNECT_ATTRS_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Size of session attribute string buffer per thread. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -3124,7 +3124,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 100 +@@ -2525,7 +2525,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_SETUP_ACTORS_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of rows in SETUP_ACTORS. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 1024 -@@ -3138,7 +3138,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 100 +@@ -2535,7 +2535,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_SETUP_OBJECTS_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of rows in SETUP_OBJECTS. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 1048576 -@@ -3152,7 +3152,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2545,7 +2545,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_USERS_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of instrumented users. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -3222,7 +3222,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 32768 +@@ -2595,7 +2595,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PRELOAD_BUFFER_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The size of the buffer that is allocated when preloading indexes NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 1073741824 -@@ -3250,7 +3250,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 15 +@@ -2615,7 +2615,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME PROFILING_HISTORY_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Number of statements about which profiling information is maintained. If set to 0, no profiles are stored. See SHOW PROFILES. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 100 -@@ -3264,7 +3264,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 5 +@@ -2625,7 +2625,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PROGRESS_REPORT_TIME VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Seconds between sending progress reports to the client for time-consuming statements. Set to 0 to disable progress reporting. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 4294967295 -@@ -3348,7 +3348,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 16384 +@@ -2685,7 +2685,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME QUERY_ALLOC_BLOCK_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Allocation block size for query parsing and execution NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 4294967295 -@@ -3362,7 +3362,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1048576 +@@ -2695,7 +2695,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME QUERY_CACHE_LIMIT VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Don't cache results that are bigger than this NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 4294967295 -@@ -3376,7 +3376,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 4096 +@@ -2705,7 +2705,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME QUERY_CACHE_MIN_RES_UNIT VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The minimum size for blocks allocated by the query cache NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 4294967295 -@@ -3393,7 +3393,7 @@ +@@ -2718,7 +2718,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The memory allocated to store results from old queries NUMERIC_MIN_VALUE 0 @@ -1058,45 +1104,62 @@ NUMERIC_BLOCK_SIZE 1024 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -3446,7 +3446,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 24576 +@@ -2755,7 +2755,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME QUERY_PREALLOC_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Persistent buffer for query parsing and execution NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 4294967295 -@@ -3460,7 +3460,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 4096 +@@ -2768,7 +2768,7 @@ + VARIABLE_TYPE BIGINT UNSIGNED + VARIABLE_COMMENT Sets the internal state of the RAND() generator for replication purposes + NUMERIC_MIN_VALUE 0 +-NUMERIC_MAX_VALUE 18446744073709551615 ++NUMERIC_MAX_VALUE 4294967295 + NUMERIC_BLOCK_SIZE 1 + ENUM_VALUE_LIST NULL + READ_ONLY NO +@@ -2778,14 +2778,14 @@ + VARIABLE_TYPE BIGINT UNSIGNED + VARIABLE_COMMENT Sets the internal state of the RAND() generator for replication purposes + NUMERIC_MIN_VALUE 0 +-NUMERIC_MAX_VALUE 18446744073709551615 ++NUMERIC_MAX_VALUE 4294967295 + NUMERIC_BLOCK_SIZE 1 + ENUM_VALUE_LIST NULL + READ_ONLY NO + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME RANGE_ALLOC_BLOCK_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Allocation block size for storing ranges during optimization NUMERIC_MIN_VALUE 4096 NUMERIC_MAX_VALUE 4294967295 -@@ -3474,7 +3474,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 131072 +@@ -2795,7 +2795,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME READ_BUFFER_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Each thread that does a sequential scan allocates a buffer of this size for each table it scans. If you do many sequential scans, you may want to increase this value NUMERIC_MIN_VALUE 8192 NUMERIC_MAX_VALUE 2147483647 -@@ -3502,7 +3502,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 262144 +@@ -2815,7 +2815,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME READ_RND_BUFFER_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT When reading rows in sorted order after a sort, the rows are read through this buffer to avoid a disk seeks NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 2147483647 -@@ -3516,10 +3516,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 8388608 +@@ -2825,10 +2825,10 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME ROWID_MERGE_BUFF_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED @@ -1107,34 +1170,34 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -3558,7 +3558,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE 1 +@@ -2865,7 +2865,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME SERVER_ID VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Uniquely identifies the server instance in the community of replication partners NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 4294967295 -@@ -3656,7 +3656,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1073741824 +@@ -2935,7 +2935,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME SLAVE_MAX_ALLOWED_PACKET VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The maximum packet length to sent successfully from the master to slave. NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 1073741824 -@@ -3670,7 +3670,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 2 +@@ -2945,7 +2945,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME SLOW_LAUNCH_TIME VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT If creating the thread takes longer than this value (in seconds), the Slow_launch_threads counter will be incremented NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 31536000 -@@ -3729,7 +3729,7 @@ +@@ -2988,7 +2988,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Each thread that needs to do a sort allocates a buffer of this size NUMERIC_MIN_VALUE 1024 @@ -1143,63 +1206,52 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -4020,7 +4020,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 256 +@@ -3195,7 +3195,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME STORED_PROGRAM_CACHE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The soft upper limit for number of cached stored routines for one connection. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 524288 -@@ -4090,7 +4090,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 400 +@@ -3275,7 +3275,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME TABLE_DEFINITION_CACHE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of cached table definitions NUMERIC_MIN_VALUE 400 - NUMERIC_MAX_VALUE 524288 -@@ -4104,7 +4104,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 2000 + NUMERIC_MAX_VALUE 2097152 +@@ -3285,7 +3285,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME TABLE_OPEN_CACHE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of cached open tables - NUMERIC_MIN_VALUE 1 + NUMERIC_MIN_VALUE 10 NUMERIC_MAX_VALUE 1048576 -@@ -4174,7 +4174,7 @@ - GLOBAL_VALUE_ORIGIN AUTO - DEFAULT_VALUE 256 +@@ -3335,7 +3335,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME THREAD_CACHE_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT How many threads we should keep in a cache for reuse. These are freed after 5 minutes of idle time NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 16384 -@@ -4188,7 +4188,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 10 +@@ -3345,7 +3345,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME THREAD_CONCURRENCY VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Permits the application to give the threads system a hint for the desired number of threads that should be run at the same time.This variable has no effect, and is deprecated. It will be removed in a future release. NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 512 -@@ -4295,15 +4295,15 @@ - READ_ONLY YES - COMMAND_LINE_ARGUMENT REQUIRED - VARIABLE_NAME TMP_DISK_TABLE_SIZE --SESSION_VALUE 18446744073709551615 --GLOBAL_VALUE 18446744073709551615 -+SESSION_VALUE 4294967295 -+GLOBAL_VALUE 4294967295 - GLOBAL_VALUE_ORIGIN COMPILE-TIME --DEFAULT_VALUE 18446744073709551615 -+DEFAULT_VALUE 4294967295 - VARIABLE_SCOPE SESSION +@@ -3428,7 +3428,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Max size for data for an internal temporary on-disk MyISAM or Aria table. NUMERIC_MIN_VALUE 1024 @@ -1208,7 +1260,7 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -4317,7 +4317,7 @@ +@@ -3438,7 +3438,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT If an internal in-memory temporary table exceeds this size, MariaDB will automatically convert it to an on-disk MyISAM or Aria table. Same as tmp_table_size. NUMERIC_MIN_VALUE 1024 @@ -1217,7 +1269,7 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -4331,7 +4331,7 @@ +@@ -3448,14 +3448,14 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Alias for tmp_memory_table_size. If an internal in-memory temporary table exceeds this size, MariaDB will automatically convert it to an on-disk MyISAM or Aria table. NUMERIC_MIN_VALUE 1024 @@ -1226,61 +1278,33 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -4342,7 +4342,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 8192 + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME TRANSACTION_ALLOC_BLOCK_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Allocation block size for transactions to be stored in binary log NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 134217728 -@@ -4356,7 +4356,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 4096 +@@ -3465,7 +3465,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME TRANSACTION_PREALLOC_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Persistent buffer for transactions to be stored in binary log NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 134217728 -@@ -4454,7 +4454,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 28800 +@@ -3605,7 +3605,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME WAIT_TIMEOUT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of seconds the server waits for activity on a connection before closing it NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 31536000 -@@ -4559,7 +4559,7 @@ - COMMAND_LINE_ARGUMENT OPTIONAL - VARIABLE_NAME OPEN_FILES_LIMIT - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT If this is not 0, then mysqld will use this value to reserve file descriptors to use with setrlimit(). If this value is 0 or autoset then mysqld will reserve max_connections*5 or max_connections + table_cache*2 (whichever is larger) number of file descriptors - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 4294967295 -@@ -4572,7 +4572,7 @@ - VARIABLE_TYPE BIGINT UNSIGNED - VARIABLE_COMMENT Sets the internal state of the RAND() generator for replication purposes - NUMERIC_MIN_VALUE 0 --NUMERIC_MAX_VALUE 18446744073709551615 -+NUMERIC_MAX_VALUE 4294967295 - NUMERIC_BLOCK_SIZE 1 - ENUM_VALUE_LIST NULL - READ_ONLY NO -@@ -4582,7 +4582,7 @@ - VARIABLE_TYPE BIGINT UNSIGNED - VARIABLE_COMMENT Sets the internal state of the RAND() generator for replication purposes - NUMERIC_MIN_VALUE 0 --NUMERIC_MAX_VALUE 18446744073709551615 -+NUMERIC_MAX_VALUE 4294967295 - NUMERIC_BLOCK_SIZE 1 - ENUM_VALUE_LIST NULL - READ_ONLY NO -@@ -4677,7 +4677,7 @@ +@@ -3632,7 +3632,7 @@ VARIABLE_NAME LOG_TC_SIZE GLOBAL_VALUE_ORIGIN AUTO VARIABLE_SCOPE GLOBAL diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,34 +3,16 @@ set pseudo_thread_id=10; set sql_mode=ansi_quotes; set global div_precision_increment=5; -select * from information_schema.system_variables -where variable_name not like 'aria%' and -variable_name not like 'debug%' and +select VARIABLE_NAME,VARIABLE_SCOPE,VARIABLE_TYPE,VARIABLE_COMMENT,NUMERIC_MIN_VALUE,NUMERIC_MAX_VALUE,NUMERIC_BLOCK_SIZE,ENUM_VALUE_LIST,READ_ONLY,COMMAND_LINE_ARGUMENT +from information_schema.system_variables +where variable_name not like 'debug%' and variable_name not like 'wsrep%' and +variable_name not like 's3%' and variable_name not in ( -'in_predicate_conversion_threshold', -'have_openssl', -'have_symlink', -'hostname', -'large_files_support', 'log_tc_size', -'lower_case_file_system', -'lower_case_table_names', -'open_files_limit', -'plugin_maturity', -'rand_seed1', -'rand_seed2', -'system_time_zone', -'version_comment', -'version_source_revision', -'version_compile_machine', 'version_compile_os', -'version_malloc_library', 'version_ssl_library', 'version' +'log_tc_size' ) order by variable_name; VARIABLE_NAME ALTER_ALGORITHM -SESSION_VALUE DEFAULT -GLOBAL_VALUE DEFAULT -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE DEFAULT VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Specify the alter table algorithm @@ -40,11 +22,217 @@ ENUM_VALUE_LIST DEFAULT,COPY,INPLACE,NOCOPY,INSTANT READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL +VARIABLE_NAME ARIA_BLOCK_SIZE +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Block size to be used for Aria index pages. +NUMERIC_MIN_VALUE 1024 +NUMERIC_MAX_VALUE 32768 +NUMERIC_BLOCK_SIZE 1024 +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_CHECKPOINT_INTERVAL +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Interval between tries to do an automatic checkpoints. In seconds; 0 means 'no automatic checkpoints' which makes sense only for testing. +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 4294967295 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_CHECKPOINT_LOG_ACTIVITY +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Number of bytes that the transaction log has to grow between checkpoints before a new checkpoint is written to the log. +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 4294967295 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_ENCRYPT_TABLES +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BOOLEAN +VARIABLE_COMMENT Encrypt tables (only for tables with ROW_FORMAT=PAGE (default) and not FIXED/DYNAMIC) +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST OFF,ON +READ_ONLY NO +COMMAND_LINE_ARGUMENT OPTIONAL +VARIABLE_NAME ARIA_FORCE_START_AFTER_RECOVERY_FAILURES +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Number of consecutive log recovery failures after which logs will be automatically deleted to cure the problem; 0 (the default) disables the feature. +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 255 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_GROUP_COMMIT +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE ENUM +VARIABLE_COMMENT Specifies Aria group commit mode. Possible values are "none" (no group commit), "hard" (with waiting to actual commit), "soft" (no wait for commit (DANGEROUS!!!)) +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST none,hard,soft +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_GROUP_COMMIT_INTERVAL +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Interval between commite in microseconds (1/1000000c). 0 stands for no waiting for other threads to come and do a commit in "hard" mode and no sync()/commit at all in "soft" mode. Option has only an effect if aria_group_commit is used +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 4294967295 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_LOG_FILE_SIZE +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Limit for transaction log size +NUMERIC_MIN_VALUE 8388608 +NUMERIC_MAX_VALUE 4294967295 +NUMERIC_BLOCK_SIZE 8192 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_LOG_PURGE_TYPE +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE ENUM +VARIABLE_COMMENT Specifies how Aria transactional log will be purged +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST immediate,external,at_flush +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_MAX_SORT_FILE_SIZE +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Don't use the fast sort index method to created index if the temporary file would get bigger than this. +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 9223372036854775807 +NUMERIC_BLOCK_SIZE 1048576 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_PAGECACHE_AGE_THRESHOLD +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT This characterizes the number of hits a hot block has to be untouched until it is considered aged enough to be downgraded to a warm block. This specifies the percentage ratio of that number of hits to the total number of blocks in the page cache. +NUMERIC_MIN_VALUE 100 +NUMERIC_MAX_VALUE 18446744073709551615 +NUMERIC_BLOCK_SIZE 100 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_PAGECACHE_BUFFER_SIZE +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT The size of the buffer used for index blocks for Aria tables. Increase this to get better index handling (for all reads and multiple writes) to as much as you can afford. +NUMERIC_MIN_VALUE 131072 +NUMERIC_MAX_VALUE 18446744073709551615 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_PAGECACHE_DIVISION_LIMIT +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT The minimum percentage of warm blocks in key cache +NUMERIC_MIN_VALUE 1 +NUMERIC_MAX_VALUE 100 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_PAGECACHE_FILE_HASH_SIZE +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Number of hash buckets for open and changed files. If you have a lot of Aria files open you should increase this for faster flush of changes. A good value is probably 1/10 of number of possible open Aria files. +NUMERIC_MIN_VALUE 128 +NUMERIC_MAX_VALUE 16384 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_PAGE_CHECKSUM +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BOOLEAN +VARIABLE_COMMENT Maintain page checksums (can be overridden per table with PAGE_CHECKSUM clause in CREATE TABLE) +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST OFF,ON +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_RECOVER_OPTIONS +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE SET +VARIABLE_COMMENT Specifies how corrupted tables should be automatically repaired +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST NORMAL,BACKUP,FORCE,QUICK,OFF +READ_ONLY NO +COMMAND_LINE_ARGUMENT OPTIONAL +VARIABLE_NAME ARIA_REPAIR_THREADS +VARIABLE_SCOPE SESSION +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Number of threads to use when repairing Aria tables. The value of 1 disables parallel repair. +NUMERIC_MIN_VALUE 1 +NUMERIC_MAX_VALUE 128 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_SORT_BUFFER_SIZE +VARIABLE_SCOPE SESSION +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT The buffer that is allocated when sorting the index when doing a REPAIR or when creating indexes with CREATE INDEX or ALTER TABLE. +NUMERIC_MIN_VALUE 4096 +NUMERIC_MAX_VALUE 18446744073709551615 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_STATS_METHOD +VARIABLE_SCOPE SESSION +VARIABLE_TYPE ENUM +VARIABLE_COMMENT Specifies how Aria index statistics collection code should treat NULLs +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST nulls_unequal,nulls_equal,nulls_ignored +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_SYNC_LOG_DIR +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE ENUM +VARIABLE_COMMENT Controls syncing directory after log file growth and new file creation +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST NEVER,NEWFILE,ALWAYS +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_USED_FOR_TEMP_TABLES +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BOOLEAN +VARIABLE_COMMENT Whether temporary tables should be MyISAM or Aria +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST OFF,ON +READ_ONLY YES +COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME AUTOCOMMIT -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1, the default, all queries are committed immediately. If set to 0, they are only committed upon a COMMIT statement, or rolled back with a ROLLBACK statement. If autocommit is set to 0, and then changed to 1, all open transactions are immediately committed. @@ -55,10 +243,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME AUTOMATIC_SP_PRIVILEGES -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Creating and dropping stored procedures alters ACLs @@ -69,10 +253,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME AUTO_INCREMENT_INCREMENT -SESSION_VALUE 1 -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 1 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Auto-increment columns are incremented by this @@ -83,10 +263,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME AUTO_INCREMENT_OFFSET -SESSION_VALUE 1 -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Offset added to Auto-increment columns. Used when auto-increment-increment != 1 @@ -97,10 +273,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME BACK_LOG -SESSION_VALUE NULL -GLOBAL_VALUE 80 -GLOBAL_VALUE_ORIGIN AUTO -DEFAULT_VALUE 150 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of outstanding connection requests MariaDB can have. This comes into play when the main MariaDB thread gets very many connection requests in a very short time @@ -111,10 +283,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BASEDIR -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Path to installation directory. All paths are usually resolved relative to this @@ -125,10 +293,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BIG_TABLES -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Old variable, which if set to 1, allows large result sets by saving all temporary sets to disk, avoiding 'table full' errors. No longer needed, as the server now handles this automatically. sql_big_tables is a synonym. @@ -139,10 +303,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME BIND_ADDRESS -SESSION_VALUE NULL -GLOBAL_VALUE 127.0.0.1 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT IP address to bind to. @@ -153,10 +313,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BINLOG_ANNOTATE_ROW_EVENTS -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Tells the master to annotate RBR events with the statement that caused these events @@ -167,10 +323,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME BINLOG_CACHE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 32768 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 32768 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the transactional cache for updates to transactional engines for the binary log. If you often use transactions containing many statements, you can increase this to get more performance @@ -181,10 +333,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BINLOG_CHECKSUM -SESSION_VALUE NULL -GLOBAL_VALUE CRC32 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE CRC32 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT Type of BINLOG_CHECKSUM_ALG. Include checksum for log events in the binary log @@ -195,10 +343,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BINLOG_COMMIT_WAIT_COUNT -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT If non-zero, binlog write will wait at most binlog_commit_wait_usec microseconds for at least this many commits to queue up for group commit to the binlog. This can reduce I/O on the binlog and provide increased opportunity for parallel apply on the slave, but too high a value will decrease commit throughput. @@ -209,10 +353,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BINLOG_COMMIT_WAIT_USEC -SESSION_VALUE NULL -GLOBAL_VALUE 100000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 100000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum time, in microseconds, to wait for more commits to queue up for binlog group commit. Only takes effect if the value of binlog_commit_wait_count is non-zero. @@ -223,10 +363,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BINLOG_DIRECT_NON_TRANSACTIONAL_UPDATES -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Causes updates to non-transactional engines using statement format to be written directly to binary log. Before using this option make sure that there are no dependencies between transactional and non-transactional tables such as in the statement INSERT INTO t_myisam SELECT * FROM t_innodb; otherwise, slaves may diverge from the master. @@ -237,10 +373,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME BINLOG_FILE_CACHE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 16384 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 16384 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of file cache for the binary log @@ -251,10 +383,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BINLOG_FORMAT -SESSION_VALUE MIXED -GLOBAL_VALUE MIXED -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE MIXED VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT What form of binary logging the master will use: either ROW for row-based binary logging, STATEMENT for statement-based binary logging, or MIXED. MIXED is statement-based binary logging except for those statements where only row-based is correct: those which involve user-defined functions (i.e. UDFs) or the UUID() function; for those, row-based binary logging is automatically used. @@ -265,10 +393,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BINLOG_OPTIMIZE_THREAD_SCHEDULING -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Run fast part of group commit in a single thread, to optimize kernel thread scheduling. On by default. Disable to run each transaction in group commit in its own thread, which can be slower at very high concurrency. This option is mostly for testing one algorithm versus the other, and it should not normally be necessary to change it. @@ -279,10 +403,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BINLOG_ROW_IMAGE -SESSION_VALUE FULL -GLOBAL_VALUE FULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE FULL VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Controls whether rows should be logged in 'FULL', 'NOBLOB' or 'MINIMAL' formats. 'FULL', means that all columns in the before and after image are logged. 'NOBLOB', means that mysqld avoids logging blob columns whenever possible (eg, blob column was not changed or is not part of primary key). 'MINIMAL', means that a PK equivalent (PK columns or full row if there is no PK in the table) is logged in the before image, and only changed columns are logged in the after image. (Default: FULL). @@ -293,10 +413,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BINLOG_STMT_CACHE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 32768 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 32768 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the statement cache for updates to non-transactional engines for the binary log. If you often use statements updating a great number of rows, you can increase this to get more performance. @@ -307,10 +423,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BULK_INSERT_BUFFER_SIZE -SESSION_VALUE 8388608 -GLOBAL_VALUE 8388608 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 8388608 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Size of tree cache used in bulk insert optimisation. Note that this is a limit per thread! @@ -321,10 +433,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME CHARACTER_SETS_DIR -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Directory where character sets are @@ -335,10 +443,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME CHARACTER_SET_CLIENT -SESSION_VALUE latin1 -GLOBAL_VALUE latin1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE latin1 VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The character set for statements that arrive from the client @@ -349,10 +453,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME CHARACTER_SET_CONNECTION -SESSION_VALUE latin1 -GLOBAL_VALUE latin1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE latin1 VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The character set used for literals that do not have a character set introducer and for number-to-string conversion @@ -363,10 +463,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME CHARACTER_SET_DATABASE -SESSION_VALUE latin1 -GLOBAL_VALUE latin1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE latin1 VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The character set used by the default database @@ -377,10 +473,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME CHARACTER_SET_FILESYSTEM -SESSION_VALUE binary -GLOBAL_VALUE binary -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE binary VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The filesystem character set @@ -391,10 +483,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME CHARACTER_SET_RESULTS -SESSION_VALUE latin1 -GLOBAL_VALUE latin1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE latin1 VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The character set used for returning query results to the client @@ -405,10 +493,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME CHARACTER_SET_SERVER -SESSION_VALUE latin1 -GLOBAL_VALUE latin1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE latin1 VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The default character set @@ -419,10 +503,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME CHARACTER_SET_SYSTEM -SESSION_VALUE NULL -GLOBAL_VALUE utf8 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT The character set used by the server for storing identifiers @@ -433,10 +513,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME CHECK_CONSTRAINT_CHECKS -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT check_constraint_checks @@ -447,10 +523,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME COLLATION_CONNECTION -SESSION_VALUE latin1_swedish_ci -GLOBAL_VALUE latin1_swedish_ci -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE latin1_swedish_ci VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The collation of the connection character set @@ -461,10 +533,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME COLLATION_DATABASE -SESSION_VALUE latin1_swedish_ci -GLOBAL_VALUE latin1_swedish_ci -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE latin1_swedish_ci VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The collation of the database character set @@ -475,10 +543,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME COLLATION_SERVER -SESSION_VALUE latin1_swedish_ci -GLOBAL_VALUE latin1_swedish_ci -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE latin1_swedish_ci VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The server default collation @@ -489,10 +553,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME COLUMN_COMPRESSION_THRESHOLD -SESSION_VALUE 100 -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 100 VARIABLE_SCOPE SESSION VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Minimum column data length eligible for compression @@ -503,10 +563,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME COLUMN_COMPRESSION_ZLIB_LEVEL -SESSION_VALUE 6 -GLOBAL_VALUE 6 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 6 VARIABLE_SCOPE SESSION VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT zlib compression level (1 gives best speed, 9 gives best compression) @@ -517,10 +573,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME COLUMN_COMPRESSION_ZLIB_STRATEGY -SESSION_VALUE DEFAULT_STRATEGY -GLOBAL_VALUE DEFAULT_STRATEGY -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE DEFAULT_STRATEGY VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The strategy parameter is used to tune the compression algorithm. Use the value DEFAULT_STRATEGY for normal data, FILTERED for data produced by a filter (or predictor), HUFFMAN_ONLY to force Huffman encoding only (no string match), or RLE to limit match distances to one (run-length encoding). Filtered data consists mostly of small values with a somewhat random distribution. In this case, the compression algorithm is tuned to compress them better. The effect of FILTERED is to force more Huffman coding and less string matching; it is somewhat intermediate between DEFAULT_STRATEGY and HUFFMAN_ONLY. RLE is designed to be almost as fast as HUFFMAN_ONLY, but give better compression for PNG image data. The strategy parameter only affects the compression ratio but not the correctness of the compressed output even if it is not set appropriately. FIXED prevents the use of dynamic Huffman codes, allowing for a simpler decoder for special applications. @@ -531,10 +583,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME COLUMN_COMPRESSION_ZLIB_WRAP -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Generate zlib header and trailer and compute adler32 check value. It can be used with storage engines that don't provide data integrity verification to detect data corruption. @@ -545,10 +593,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME COMPLETION_TYPE -SESSION_VALUE NO_CHAIN -GLOBAL_VALUE NO_CHAIN -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NO_CHAIN VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The transaction completion type @@ -559,10 +603,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME CONCURRENT_INSERT -SESSION_VALUE NULL -GLOBAL_VALUE AUTO -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE AUTO VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT Use concurrent insert with MyISAM @@ -573,10 +613,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME CONNECT_TIMEOUT -SESSION_VALUE NULL -GLOBAL_VALUE 60 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 10 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of seconds the mysqld server is waiting for a connect packet before responding with 'Bad handshake' @@ -587,10 +623,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME CORE_FILE -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT write a core-file on crashes @@ -601,10 +633,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME DATADIR -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE PATH VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Path to the database root directory @@ -615,10 +643,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DATETIME_FORMAT -SESSION_VALUE NULL -GLOBAL_VALUE %Y-%m-%d %H:%i:%s -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE %Y-%m-%d %H:%i:%s VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The DATETIME format (ignored) @@ -629,10 +653,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DATE_FORMAT -SESSION_VALUE NULL -GLOBAL_VALUE %Y-%m-%d -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE %Y-%m-%d VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The DATE format (ignored) @@ -643,10 +663,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DEADLOCK_SEARCH_DEPTH_LONG -SESSION_VALUE 15 -GLOBAL_VALUE 15 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 15 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Long search depth for the two-step deadlock detection @@ -657,10 +673,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DEADLOCK_SEARCH_DEPTH_SHORT -SESSION_VALUE 4 -GLOBAL_VALUE 4 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 4 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Short search depth for the two-step deadlock detection @@ -671,10 +683,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DEADLOCK_TIMEOUT_LONG -SESSION_VALUE 50000000 -GLOBAL_VALUE 50000000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 50000000 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Long timeout for the two-step deadlock detection (in microseconds) @@ -685,10 +693,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DEADLOCK_TIMEOUT_SHORT -SESSION_VALUE 10000 -GLOBAL_VALUE 10000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 10000 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Short timeout for the two-step deadlock detection (in microseconds) @@ -699,10 +703,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DEFAULT_REGEX_FLAGS -SESSION_VALUE -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE SESSION VARIABLE_TYPE SET VARIABLE_COMMENT Default flags for the regex library @@ -713,10 +713,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DEFAULT_STORAGE_ENGINE -SESSION_VALUE MyISAM -GLOBAL_VALUE MyISAM -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE MyISAM VARIABLE_SCOPE SESSION VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The default storage engine for new tables @@ -727,10 +723,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME DEFAULT_TMP_STORAGE_ENGINE -SESSION_VALUE -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE SESSION VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The default storage engine for user-created temporary tables @@ -741,10 +733,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME DEFAULT_WEEK_FORMAT -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The default week format used by WEEK() functions @@ -755,10 +743,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DELAYED_INSERT_LIMIT -SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 100 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT After inserting delayed_insert_limit rows, the INSERT DELAYED handler will check if there are any SELECT statements pending. If so, it allows these to execute before continuing. @@ -769,10 +753,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DELAYED_INSERT_TIMEOUT -SESSION_VALUE NULL -GLOBAL_VALUE 300 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 300 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT How long a INSERT DELAYED thread should wait for INSERT statements before terminating @@ -783,10 +763,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DELAYED_QUEUE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 1000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT What size queue (in rows) should be allocated for handling INSERT DELAYED. If the queue becomes full, any client that does INSERT DELAYED will wait until there is room in the queue again @@ -797,10 +773,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DELAY_KEY_WRITE -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT Specifies how MyISAM tables handles CREATE TABLE DELAY_KEY_WRITE. If set to ON, the default, any DELAY KEY WRITEs are honored. The key buffer is then flushed only when the table closes, speeding up writes. MyISAM tables should be automatically checked upon startup in this case, and --external locking should not be used, as it can lead to index corruption. If set to OFF, DELAY KEY WRITEs are ignored, while if set to ALL, all new opened tables are treated as if created with DELAY KEY WRITEs enabled. @@ -811,10 +783,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME DIV_PRECISION_INCREMENT -SESSION_VALUE 4 -GLOBAL_VALUE 5 -GLOBAL_VALUE_ORIGIN SQL -DEFAULT_VALUE 4 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Precision of the result of '/' operator will be increased on that value @@ -825,10 +793,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ENCRYPT_BINLOG -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Encrypt binary logs (including relay logs) @@ -839,10 +803,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME ENCRYPT_TMP_DISK_TABLES -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Encrypt temporary on-disk tables (created as part of query execution) @@ -853,10 +813,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME ENCRYPT_TMP_FILES -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Encrypt temporary files (created for filesort, binary log cache, etc) @@ -867,10 +823,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME ENFORCE_STORAGE_ENGINE -SESSION_VALUE -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE SESSION VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Force the use of a storage engine for new tables @@ -881,10 +833,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME EQ_RANGE_INDEX_DIVE_LIMIT -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The optimizer will use existing index statistics instead of doing index dives for equality ranges if the number of equality ranges for the index is larger than or equal to this number. If set to 0, index dives are always used. @@ -895,10 +843,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ERROR_COUNT -SESSION_VALUE 0 -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of errors that resulted from the last statement that generated messages @@ -909,10 +853,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME EXPENSIVE_SUBQUERY_LIMIT -SESSION_VALUE 100 -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 100 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The maximum number of rows a subquery may examine in order to be executed during optimization and used for constant optimization @@ -923,10 +863,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME EXPIRE_LOGS_DAYS -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT If non-zero, binary logs will be purged after expire_logs_days days; possible purges happen at startup and at binary log rotation @@ -937,10 +873,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME EXPLICIT_DEFAULTS_FOR_TIMESTAMP -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT This option causes CREATE TABLE to create all TIMESTAMP columns as NULL with DEFAULT NULL attribute, Without this option, TIMESTAMP columns are NOT NULL and have implicit DEFAULT clauses. @@ -951,10 +883,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME EXTERNAL_USER -SESSION_VALUE -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The external user account used when logging in @@ -965,10 +893,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME EXTRA_MAX_CONNECTIONS -SESSION_VALUE NULL -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of connections on extra-port @@ -979,10 +903,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME EXTRA_PORT -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Extra port number to use for tcp connections in a one-thread-per-connection manner. 0 means don't use another port @@ -993,10 +913,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME FLUSH -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Flush MyISAM tables to disk between SQL commands @@ -1007,10 +923,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME FLUSH_TIME -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT A dedicated thread is created to flush all tables at the given interval @@ -1021,10 +933,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME FOREIGN_KEY_CHECKS -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1 (the default) foreign key constraints (including ON UPDATE and ON DELETE behavior) InnoDB tables are checked, while if set to 0, they are not checked. 0 is not recommended for normal use, though it can be useful in situations where you know the data is consistent, but want to reload data in a different order from that that specified by parent/child relationships. Setting this variable to 1 does not retrospectively check for inconsistencies introduced while set to 0. @@ -1035,10 +943,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME FT_BOOLEAN_SYNTAX -SESSION_VALUE NULL -GLOBAL_VALUE + -><()~*:""&| -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE + -><()~*:""&| VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT List of operators for MATCH ... AGAINST ( ... IN BOOLEAN MODE) @@ -1049,10 +953,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME FT_MAX_WORD_LEN -SESSION_VALUE NULL -GLOBAL_VALUE 84 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 84 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The maximum length of the word to be included in a FULLTEXT index. Note: FULLTEXT indexes must be rebuilt after changing this variable @@ -1063,10 +963,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME FT_MIN_WORD_LEN -SESSION_VALUE NULL -GLOBAL_VALUE 4 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 4 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The minimum length of the word to be included in a FULLTEXT index. Note: FULLTEXT indexes must be rebuilt after changing this variable @@ -1077,10 +973,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME FT_QUERY_EXPANSION_LIMIT -SESSION_VALUE NULL -GLOBAL_VALUE 20 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 20 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Number of best matches to use for query expansion @@ -1091,10 +983,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME FT_STOPWORD_FILE -SESSION_VALUE NULL -GLOBAL_VALUE (built-in) -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Use stopwords from this file instead of built-in list @@ -1105,10 +993,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME GENERAL_LOG -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Log connections and queries to a table or log file. Defaults logging to a file 'hostname'.log or a table mysql.general_logif --log-output=TABLE is used. @@ -1119,10 +1003,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME GENERAL_LOG_FILE -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Log connections and queries to given file @@ -1133,10 +1013,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME GROUP_CONCAT_MAX_LEN -SESSION_VALUE 1048576 -GLOBAL_VALUE 1048576 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1048576 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The maximum length of the result of function GROUP_CONCAT() @@ -1147,10 +1023,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME GTID_DOMAIN_ID -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Used with global transaction ID to identify logically independent replication streams. When events can propagate through multiple parallel paths (for example multiple masters), each independent source server must use a distinct domain_id. For simple tree-shaped replication topologies, it can be left at its default, 0. @@ -1161,10 +1033,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME GTID_SEQ_NO -SESSION_VALUE 0 -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Internal server usage, for replication with global transaction id. When set, next event group logged to the binary log will use this sequence number, not generate a new one, thus allowing to preserve master's GTID in slave's binlog. @@ -1175,10 +1043,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME HAVE_COMPRESS -SESSION_VALUE NULL -GLOBAL_VALUE YES -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT If the zlib compression library is accessible to the server, this will be set to YES, otherwise it will be NO. The COMPRESS() and UNCOMPRESS() functions will only be available if set to YES. @@ -1189,10 +1053,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME HAVE_CRYPT -SESSION_VALUE NULL -GLOBAL_VALUE YES -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT If the crypt() system call is available this variable will be set to YES, otherwise it will be set to NO. If set to NO, the ENCRYPT() function cannot be used. @@ -1203,10 +1063,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME HAVE_DYNAMIC_LOADING -SESSION_VALUE NULL -GLOBAL_VALUE YES -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT If the server supports dynamic loading of plugins, will be set to YES, otherwise will be set to NO. @@ -1217,10 +1073,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME HAVE_GEOMETRY -SESSION_VALUE NULL -GLOBAL_VALUE YES -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT If the server supports spatial data types, will be set to YES, otherwise will be set to NO. @@ -1230,11 +1082,17 @@ ENUM_VALUE_LIST NULL READ_ONLY YES COMMAND_LINE_ARGUMENT NULL +VARIABLE_NAME HAVE_OPENSSL +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE VARCHAR +VARIABLE_COMMENT Comparing have_openssl with have_ssl will indicate whether YaSSL or openssl was used. If YaSSL, have_ssl will be YES, but have_openssl will be NO. +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME HAVE_PROFILING -SESSION_VALUE NULL -GLOBAL_VALUE YES -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT If statement profiling is available, will be set to YES, otherwise will be set to NO. See SHOW PROFILES and SHOW PROFILE. @@ -1245,10 +1103,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME HAVE_QUERY_CACHE -SESSION_VALUE NULL -GLOBAL_VALUE YES -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT If the server supports the query cache, will be set to YES, otherwise will be set to NO. @@ -1259,10 +1113,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME HAVE_RTREE_KEYS -SESSION_VALUE NULL -GLOBAL_VALUE YES -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT If RTREE indexes (used for spatial indexes) are available, will be set to YES, otherwise will be set to NO. @@ -1273,10 +1123,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME HAVE_SSL -SESSION_VALUE NULL -GLOBAL_VALUE NO -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT If the server supports secure connections, will be set to YES, otherwise will be set to NO. If set to DISABLED, the server was compiled with TLS support, but was not started with TLS support (see the mysqld options). See also have_openssl. @@ -1286,11 +1132,17 @@ ENUM_VALUE_LIST NULL READ_ONLY YES COMMAND_LINE_ARGUMENT NULL +VARIABLE_NAME HAVE_SYMLINK +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE VARCHAR +VARIABLE_COMMENT If symbolic link support is enabled, will be set to YES, otherwise will be set to NO. Required for the INDEX DIRECTORY and DATA DIRECTORY table options (see CREATE TABLE) and Windows symlink support. Will be set to DISABLED if the server is started with the --skip-symbolic-links option. +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME HISTOGRAM_SIZE -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Number of bytes used for a histogram. If set to 0, no histograms are created by ANALYZE. @@ -1301,10 +1153,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME HISTOGRAM_TYPE -SESSION_VALUE SINGLE_PREC_HB -GLOBAL_VALUE SINGLE_PREC_HB -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE SINGLE_PREC_HB VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Specifies type of the histograms created by ANALYZE. Possible values are: SINGLE_PREC_HB - single precision height-balanced, DOUBLE_PREC_HB - double precision height-balanced. @@ -1314,11 +1162,17 @@ ENUM_VALUE_LIST SINGLE_PREC_HB,DOUBLE_PREC_HB READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME HOSTNAME +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE VARCHAR +VARIABLE_COMMENT Server host name +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME HOST_CACHE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 279 -GLOBAL_VALUE_ORIGIN AUTO -DEFAULT_VALUE 128 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT How many host names should be cached to avoid resolving. @@ -1329,10 +1183,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME IDENTITY -SESSION_VALUE 0 -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Synonym for the last_insert_id variable @@ -1343,10 +1193,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME IDLE_READONLY_TRANSACTION_TIMEOUT -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of seconds the server waits for read-only idle transaction @@ -1357,10 +1203,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME IDLE_TRANSACTION_TIMEOUT -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of seconds the server waits for idle transaction @@ -1371,10 +1213,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME IDLE_WRITE_TRANSACTION_TIMEOUT -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of seconds the server waits for write idle transaction @@ -1385,10 +1223,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME IGNORE_BUILTIN_INNODB -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Disable initialization of builtin InnoDB plugin @@ -1399,10 +1233,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME IGNORE_DB_DIRS -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Specifies a directory to add to the ignore list when collecting database names from the datadir. Put a blank argument to reset the list accumulated so far. @@ -1413,10 +1243,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INIT_CONNECT -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Command(s) that are executed for each new connection (unless the user has SUPER privilege) @@ -1427,10 +1253,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INIT_FILE -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Read SQL commands from this file at startup @@ -1441,10 +1263,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INIT_SLAVE -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Command(s) that are executed by a slave server each time the SQL thread starts @@ -1455,10 +1273,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INSERT_ID -SESSION_VALUE 0 -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The value to be used by the following INSERT or ALTER TABLE statement when inserting an AUTO_INCREMENT value @@ -1469,10 +1283,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME INTERACTIVE_TIMEOUT -SESSION_VALUE 28800 -GLOBAL_VALUE 28800 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 28800 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of seconds the server waits for activity on an interactive connection before closing it @@ -1482,11 +1292,17 @@ ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME IN_PREDICATE_CONVERSION_THRESHOLD +VARIABLE_SCOPE SESSION +VARIABLE_TYPE INT UNSIGNED +VARIABLE_COMMENT The minimum number of scalar elements in the value list of IN predicate that triggers its conversion to IN subquery. Set to 0 to disable the conversion. +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 4294967295 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME IN_TRANSACTION -SESSION_VALUE 0 -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Whether there is an active transaction @@ -1497,10 +1313,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME JOIN_BUFFER_SIZE -SESSION_VALUE 262144 -GLOBAL_VALUE 262144 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 262144 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the buffer that is used for joins @@ -1511,10 +1323,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME JOIN_BUFFER_SPACE_LIMIT -SESSION_VALUE 2097152 -GLOBAL_VALUE 2097152 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 2097152 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The limit of the space for all join buffers used by a query @@ -1525,10 +1333,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME JOIN_CACHE_LEVEL -SESSION_VALUE 2 -GLOBAL_VALUE 2 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 2 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Controls what join operations can be executed with join buffers. Odd numbers are used for plain join buffers while even numbers are used for linked buffers @@ -1539,10 +1343,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME KEEP_FILES_ON_CREATE -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Don't overwrite stale .MYD and .MYI even if no directory is specified @@ -1553,10 +1353,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME KEY_BUFFER_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 1048576 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 134217728 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the buffer used for index blocks for MyISAM tables. Increase this to get better index handling (for all reads and multiple writes) to as much as you can afford @@ -1567,10 +1363,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME KEY_CACHE_AGE_THRESHOLD -SESSION_VALUE NULL -GLOBAL_VALUE 300 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 300 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT This characterizes the number of hits a hot block has to be untouched until it is considered aged enough to be downgraded to a warm block. This specifies the percentage ratio of that number of hits to the total number of blocks in key cache @@ -1581,10 +1373,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME KEY_CACHE_BLOCK_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 1024 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1024 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The default size of key cache blocks @@ -1595,10 +1383,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME KEY_CACHE_DIVISION_LIMIT -SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 100 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The minimum percentage of warm blocks in key cache @@ -1609,10 +1393,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME KEY_CACHE_FILE_HASH_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 512 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 512 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Number of hash buckets for open and changed files. If you have a lot of MyISAM files open you should increase this for faster flush of changes. A good value is probably 1/10 of number of possible open MyISAM files. @@ -1623,10 +1403,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME KEY_CACHE_SEGMENTS -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of segments in a key cache @@ -1636,11 +1412,17 @@ ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME LARGE_FILES_SUPPORT +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BOOLEAN +VARIABLE_COMMENT Whether mysqld was compiled with options for large file support +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST OFF,ON +READ_ONLY YES +COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LARGE_PAGES -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Enable support for large pages @@ -1651,10 +1433,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LARGE_PAGE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT If large page support is enabled, this shows the size of memory pages @@ -1665,10 +1443,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LAST_INSERT_ID -SESSION_VALUE 0 -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The value to be returned from LAST_INSERT_ID() @@ -1679,10 +1453,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LC_MESSAGES -SESSION_VALUE en_US -GLOBAL_VALUE en_US -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE en_US VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Set the language used for the error messages @@ -1693,10 +1463,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LC_MESSAGES_DIR -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Directory where error messages are @@ -1707,10 +1473,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LC_TIME_NAMES -SESSION_VALUE en_US -GLOBAL_VALUE en_US -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE en_US VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Set the language used for the month names and the days of the week @@ -1721,10 +1483,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LICENSE -SESSION_VALUE NULL -GLOBAL_VALUE GPL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The type of license the server has @@ -1735,10 +1493,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LOCAL_INFILE -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Enable LOAD DATA LOCAL INFILE @@ -1749,10 +1503,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOCKED_IN_MEMORY -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Whether mysqld was locked in memory with --memlock @@ -1763,10 +1513,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LOCK_WAIT_TIMEOUT -SESSION_VALUE 86400 -GLOBAL_VALUE 86400 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 86400 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Timeout in seconds to wait for a lock before returning an error. @@ -1777,10 +1523,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LOG_BIN -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Whether the binary log is enabled @@ -1791,10 +1533,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LOG_BIN_COMPRESS -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Whether the binary log can be compressed @@ -1805,10 +1543,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOG_BIN_COMPRESS_MIN_LEN -SESSION_VALUE NULL -GLOBAL_VALUE 256 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 256 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Minimum length of sql statement(in statement mode) or record(in row mode)that can be compressed. @@ -1819,10 +1553,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOG_BIN_TRUST_FUNCTION_CREATORS -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to FALSE (the default), then when --log-bin is used, creation of a stored function (or trigger) is allowed only to users having the SUPER privilege and only if this stored function (trigger) may not break binary logging. Note that if ALL connections to this server ALWAYS use row-based binary logging, the security issues do not exist and the binary logging cannot break, so you can safely set this to TRUE @@ -1833,10 +1563,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOG_DISABLED_STATEMENTS -SESSION_VALUE sp -GLOBAL_VALUE sp -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE sp VARIABLE_SCOPE SESSION VARIABLE_TYPE SET VARIABLE_COMMENT Don't log certain types of statements to general log @@ -1847,10 +1573,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LOG_ERROR -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Log errors to file (instead of stdout). If file name is not specified then 'datadir'/'log-basename'.err or the 'pid-file' path with extension .err is used @@ -1861,10 +1583,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOG_OUTPUT -SESSION_VALUE NULL -GLOBAL_VALUE FILE -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE FILE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE SET VARIABLE_COMMENT How logs should be written @@ -1875,10 +1593,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LOG_QUERIES_NOT_USING_INDEXES -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Log queries that are executed without benefit of any index to the slow log if it is open. Same as log_slow_filter='not_using_index' @@ -1889,10 +1603,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOG_SLOW_ADMIN_STATEMENTS -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Log slow OPTIMIZE, ANALYZE, ALTER and other administrative statements to the slow log if it is open. Resets or sets the option 'admin' in log_slow_disabled_statements @@ -1903,10 +1613,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOG_SLOW_DISABLED_STATEMENTS -SESSION_VALUE sp -GLOBAL_VALUE sp -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE sp VARIABLE_SCOPE SESSION VARIABLE_TYPE SET VARIABLE_COMMENT Don't log certain types of statements to slow log @@ -1917,10 +1623,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LOG_SLOW_FILTER -SESSION_VALUE admin,filesort,filesort_on_disk,filesort_priority_queue,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk -GLOBAL_VALUE admin,filesort,filesort_on_disk,filesort_priority_queue,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE admin,filesort,filesort_on_disk,filesort_priority_queue,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk VARIABLE_SCOPE SESSION VARIABLE_TYPE SET VARIABLE_COMMENT Log only certain types of queries to the slow log. If variable empty alll kind of queries are logged. All types are bound by slow_query_time, except 'not_using_index' which is always logged if enabled @@ -1931,10 +1633,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LOG_SLOW_RATE_LIMIT -SESSION_VALUE 1 -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Write to slow log every #th slow query. Set to 1 to log everything. Increase it to reduce the size of the slow or the performance impact of slow logging @@ -1945,10 +1643,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LOG_SLOW_SLAVE_STATEMENTS -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Log slow statements executed by slave thread to the slow log if it is open. Resets or sets the option 'slave' in log_slow_disabled_statements @@ -1959,10 +1653,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOG_SLOW_VERBOSITY -SESSION_VALUE -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE SESSION VARIABLE_TYPE SET VARIABLE_COMMENT Verbosity level for the slow log @@ -1973,10 +1663,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LOG_WARNINGS -SESSION_VALUE 2 -GLOBAL_VALUE 2 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 2 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Log some not critical warnings to the general log file.Value can be between 0 and 11. Higher values mean more verbosity @@ -1987,10 +1673,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LONG_QUERY_TIME -SESSION_VALUE 10.000000 -GLOBAL_VALUE 10.000000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 10.000000 VARIABLE_SCOPE SESSION VARIABLE_TYPE DOUBLE VARIABLE_COMMENT Log all queries that have taken more than long_query_time seconds to execute to the slow query log file. The argument will be treated as a decimal value with microsecond precision @@ -2000,11 +1682,27 @@ ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME LOWER_CASE_FILE_SYSTEM +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BOOLEAN +VARIABLE_COMMENT Case sensitivity of file names on the file system where the data directory is located +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST OFF,ON +READ_ONLY YES +COMMAND_LINE_ARGUMENT NULL +VARIABLE_NAME LOWER_CASE_TABLE_NAMES +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE INT UNSIGNED +VARIABLE_COMMENT If set to 1 table names are stored in lowercase on disk and table names will be case-insensitive. Should be set to 2 if you are using a case insensitive file system +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 2 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOW_PRIORITY_UPDATES -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT INSERT/DELETE/UPDATE has lower priority than selects @@ -2015,10 +1713,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME MAX_ALLOWED_PACKET -SESSION_VALUE 16777216 -GLOBAL_VALUE 16777216 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 16777216 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Max packet length to send to or receive from the server @@ -2029,10 +1723,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_BINLOG_CACHE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 18446744073709547520 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 18446744073709547520 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Sets the total size of the transactional cache @@ -2043,10 +1733,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_BINLOG_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 1073741824 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1073741824 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Binary log will be rotated automatically when the size exceeds this value. @@ -2057,10 +1743,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_BINLOG_STMT_CACHE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 18446744073709547520 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 18446744073709547520 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Sets the total size of the statement cache @@ -2071,10 +1753,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_CONNECTIONS -SESSION_VALUE NULL -GLOBAL_VALUE 151 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 151 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of simultaneous clients allowed @@ -2085,10 +1763,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_CONNECT_ERRORS -SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 100 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT If there is more than this number of interrupted connections from a host this host will be blocked from further connections @@ -2099,10 +1773,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_DELAYED_THREADS -SESSION_VALUE 20 -GLOBAL_VALUE 20 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 20 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Don't start more than this number of threads to handle INSERT DELAYED statements. If set to zero INSERT DELAYED will be not used @@ -2113,10 +1783,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_DIGEST_LENGTH -SESSION_VALUE NULL -GLOBAL_VALUE 1024 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1024 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum length considered for digest text. @@ -2127,10 +1793,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_ERROR_COUNT -SESSION_VALUE 64 -GLOBAL_VALUE 64 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 64 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Max number of errors/warnings to store for a statement @@ -2141,10 +1803,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_HEAP_TABLE_SIZE -SESSION_VALUE 1048576 -GLOBAL_VALUE 1048576 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 16777216 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Don't allow creation of heap tables bigger than this @@ -2155,10 +1813,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_INSERT_DELAYED_THREADS -SESSION_VALUE 20 -GLOBAL_VALUE 20 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 20 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Don't start more than this number of threads to handle INSERT DELAYED statements. If set to zero INSERT DELAYED will be not used @@ -2169,10 +1823,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME MAX_JOIN_SIZE -SESSION_VALUE 18446744073709551615 -GLOBAL_VALUE 18446744073709551615 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 18446744073709551615 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Joins that are probably going to read more than max_join_size records return an error @@ -2183,10 +1833,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_LENGTH_FOR_SORT_DATA -SESSION_VALUE 1024 -GLOBAL_VALUE 1024 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1024 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Max number of bytes in sorted records @@ -2197,10 +1843,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_LONG_DATA_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 16777216 -GLOBAL_VALUE_ORIGIN AUTO -DEFAULT_VALUE 1048576 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The maximum BLOB length to send to server from mysql_send_long_data API. Deprecated option; use max_allowed_packet instead. @@ -2211,10 +1853,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_PREPARED_STMT_COUNT -SESSION_VALUE NULL -GLOBAL_VALUE 16382 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 16382 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of prepared statements in the server @@ -2225,10 +1863,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_RECURSIVE_ITERATIONS -SESSION_VALUE 4294967295 -GLOBAL_VALUE 4294967295 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 4294967295 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of iterations when executing recursive queries @@ -2239,10 +1873,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME MAX_SEEKS_FOR_KEY -SESSION_VALUE 4294967295 -GLOBAL_VALUE 4294967295 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 4294967295 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Limit assumed max number of seeks when looking up rows based on a key @@ -2253,10 +1883,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_SESSION_MEM_USED -SESSION_VALUE 9223372036854775807 -GLOBAL_VALUE 9223372036854775807 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 9223372036854775807 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Amount of memory a single user session is allowed to allocate. This limits the value of the session variable MEM_USED @@ -2267,10 +1893,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_SORT_LENGTH -SESSION_VALUE 1024 -GLOBAL_VALUE 1024 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1024 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of bytes to use when sorting BLOB or TEXT values (only the first max_sort_length bytes of each value are used; the rest are ignored) @@ -2281,10 +1903,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_SP_RECURSION_DEPTH -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum stored procedure recursion depth @@ -2295,10 +1913,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME MAX_STATEMENT_TIME -SESSION_VALUE 0.000000 -GLOBAL_VALUE 0.000000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0.000000 VARIABLE_SCOPE SESSION VARIABLE_TYPE DOUBLE VARIABLE_COMMENT A query that has taken more than max_statement_time seconds will be aborted. The argument will be treated as a decimal value with microsecond precision. A value of 0 (default) means no timeout @@ -2309,10 +1923,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_TMP_TABLES -SESSION_VALUE 32 -GLOBAL_VALUE 32 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 32 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Unused, will be removed. @@ -2323,10 +1933,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_USER_CONNECTIONS -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE INT VARIABLE_COMMENT The maximum number of active connections for a single user (0 = no limit) @@ -2337,10 +1943,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_WRITE_LOCK_COUNT -SESSION_VALUE NULL -GLOBAL_VALUE 4294967295 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 4294967295 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT After this many write locks, allow some read locks to run in between @@ -2351,10 +1953,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME METADATA_LOCKS_CACHE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 1024 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1024 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Unused @@ -2365,10 +1963,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME METADATA_LOCKS_HASH_INSTANCES -SESSION_VALUE NULL -GLOBAL_VALUE 8 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 8 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Unused @@ -2379,10 +1973,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MIN_EXAMINED_ROW_LIMIT -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Don't write queries to slow log that examine fewer rows than that @@ -2393,10 +1983,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MRR_BUFFER_SIZE -SESSION_VALUE 262144 -GLOBAL_VALUE 262144 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 262144 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Size of buffer to use when using MRR with range access @@ -2407,10 +1993,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MULTI_RANGE_COUNT -SESSION_VALUE 256 -GLOBAL_VALUE 256 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 256 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Ignored. Use mrr_buffer_size instead @@ -2421,10 +2003,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MYISAM_BLOCK_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 1024 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1024 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Block size to be used for MyISAM index pages @@ -2435,10 +2013,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MYISAM_DATA_POINTER_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 6 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 6 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Default pointer size to be used for MyISAM tables @@ -2449,10 +2023,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MYISAM_MAX_SORT_FILE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 9223372036853727232 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 9223372036853727232 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Don't use the fast sort index method to created index if the temporary file would get bigger than this @@ -2463,10 +2033,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MYISAM_MMAP_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 18446744073709551615 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 18446744073709551615 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Restricts the total memory used for memory mapping of MySQL tables @@ -2477,10 +2043,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MYISAM_RECOVER_OPTIONS -SESSION_VALUE NULL -GLOBAL_VALUE BACKUP,QUICK -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE BACKUP,QUICK VARIABLE_SCOPE GLOBAL VARIABLE_TYPE SET VARIABLE_COMMENT Specifies how corrupted tables should be automatically repaired @@ -2491,10 +2053,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME MYISAM_REPAIR_THREADS -SESSION_VALUE 1 -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT If larger than 1, when repairing a MyISAM table all indexes will be created in parallel, with one thread per index. The value of 1 disables parallel repair @@ -2505,10 +2063,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MYISAM_SORT_BUFFER_SIZE -SESSION_VALUE 134216704 -GLOBAL_VALUE 134216704 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 134216704 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The buffer that is allocated when sorting the index when doing a REPAIR or when creating indexes with CREATE INDEX or ALTER TABLE @@ -2519,10 +2073,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MYISAM_STATS_METHOD -SESSION_VALUE NULLS_UNEQUAL -GLOBAL_VALUE NULLS_UNEQUAL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULLS_UNEQUAL VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Specifies how MyISAM index statistics collection code should treat NULLs. Possible values of name are NULLS_UNEQUAL (default behavior for 4.1 and later), NULLS_EQUAL (emulate 4.0 behavior), and NULLS_IGNORED @@ -2533,10 +2083,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MYISAM_USE_MMAP -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Use memory mapping for reading and writing MyISAM tables @@ -2547,10 +2093,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NONE VARIABLE_NAME MYSQL56_TEMPORAL_FORMAT -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Use MySQL-5.6 (instead of MariaDB-5.3) format for TIME, DATETIME, TIMESTAMP columns. @@ -2561,10 +2103,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME NET_BUFFER_LENGTH -SESSION_VALUE 16384 -GLOBAL_VALUE 16384 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 16384 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Buffer length for TCP/IP and socket communication @@ -2575,10 +2113,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME NET_READ_TIMEOUT -SESSION_VALUE 30 -GLOBAL_VALUE 30 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 30 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Number of seconds to wait for more data from a connection before aborting the read @@ -2589,10 +2123,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME NET_RETRY_COUNT -SESSION_VALUE 10 -GLOBAL_VALUE 10 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 10 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT If a read on a communication port is interrupted, retry this many times before giving up @@ -2603,10 +2133,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME NET_WRITE_TIMEOUT -SESSION_VALUE 60 -GLOBAL_VALUE 60 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 60 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Number of seconds to wait for a block to be written to a connection before aborting the write @@ -2617,10 +2143,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME OLD -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Use compatible behavior from previous MariaDB version. See also --old-mode @@ -2631,10 +2153,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME OLD_ALTER_TABLE -SESSION_VALUE DEFAULT -GLOBAL_VALUE DEFAULT -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE DEFAULT VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Alias for alter_algorithm. Deprecated. Use --alter-algorithm instead. @@ -2645,10 +2163,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME OLD_MODE -SESSION_VALUE -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE SESSION VARIABLE_TYPE SET VARIABLE_COMMENT Used to emulate old behavior from earlier MariaDB or MySQL versions @@ -2659,10 +2173,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME OLD_PASSWORDS -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Use old password encryption method (needed for 4.0 and older clients) @@ -2672,11 +2182,17 @@ ENUM_VALUE_LIST OFF,ON READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL +VARIABLE_NAME OPEN_FILES_LIMIT +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT If this is not 0, then mysqld will use this value to reserve file descriptors to use with setrlimit(). If this value is 0 or autoset then mysqld will reserve max_connections*5 or max_connections + table_cache*2 (whichever is larger) number of file descriptors +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 4294967295 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME OPTIMIZER_PRUNE_LEVEL -SESSION_VALUE 1 -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Controls the heuristic(s) applied during query optimization to prune less-promising partial plans from the optimizer search space. Meaning: 0 - do not apply any heuristic, thus perform exhaustive search; 1 - prune plans based on number of retrieved rows @@ -2687,10 +2203,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME OPTIMIZER_SEARCH_DEPTH -SESSION_VALUE 62 -GLOBAL_VALUE 62 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 62 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum depth of search performed by the query optimizer. Values larger than the number of relations in a query result in better query plans, but take longer to compile a query. Values smaller than the number of tables in a relation result in faster optimization, but may produce very bad query plans. If set to 0, the system will automatically pick a reasonable value. @@ -2701,10 +2213,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME OPTIMIZER_SELECTIVITY_SAMPLING_LIMIT -SESSION_VALUE 100 -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 100 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Controls number of record samples to check condition selectivity @@ -2715,10 +2223,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME OPTIMIZER_SWITCH -SESSION_VALUE index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on -GLOBAL_VALUE index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on VARIABLE_SCOPE SESSION VARIABLE_TYPE FLAGSET VARIABLE_COMMENT Fine-tune the optimizer behavior @@ -2729,10 +2233,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME OPTIMIZER_USE_CONDITION_SELECTIVITY -SESSION_VALUE 1 -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Controls selectivity of which conditions the optimizer takes into account to calculate cardinality of a partial join when it searches for the best execution plan Meaning: 1 - use selectivity of index backed range conditions to calculate the cardinality of a partial join if the last joined table is accessed by full table scan or an index scan, 2 - use selectivity of index backed range conditions to calculate the cardinality of a partial join in any case, 3 - additionally always use selectivity of range conditions that are not backed by any index to calculate the cardinality of a partial join, 4 - use histograms to calculate selectivity of range conditions that are not backed by any index to calculate the cardinality of a partial join.5 - additionally use selectivity of certain non-range predicates calculated on record samples @@ -2743,10 +2243,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Enable the performance schema. @@ -2757,10 +2253,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME PERFORMANCE_SCHEMA_ACCOUNTS_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of instrumented user@host accounts. Use 0 to disable, -1 for automated sizing. @@ -2771,10 +2263,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_DIGESTS_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 200 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Size of the statement digest. Use 0 to disable, -1 for automated sizing. @@ -2785,10 +2273,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_LONG_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 1000 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Number of rows in EVENTS_STAGES_HISTORY_LONG. Use 0 to disable, -1 for automated sizing. @@ -2799,10 +2283,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 10 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Number of rows per thread in EVENTS_STAGES_HISTORY. Use 0 to disable, -1 for automated sizing. @@ -2813,10 +2293,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_LONG_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 1000 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Number of rows in EVENTS_STATEMENTS_HISTORY_LONG. Use 0 to disable, -1 for automated sizing. @@ -2827,10 +2303,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 10 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Number of rows per thread in EVENTS_STATEMENTS_HISTORY. Use 0 to disable, -1 for automated sizing. @@ -2841,10 +2313,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 10000 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Number of rows in EVENTS_WAITS_HISTORY_LONG. Use 0 to disable, -1 for automated sizing. @@ -2855,10 +2323,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 10 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Number of rows per thread in EVENTS_WAITS_HISTORY. Use 0 to disable, -1 for automated sizing. @@ -2869,10 +2333,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_HOSTS_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of instrumented hosts. Use 0 to disable, -1 for automated sizing. @@ -2883,10 +2343,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_COND_CLASSES -SESSION_VALUE NULL -GLOBAL_VALUE 80 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 80 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of condition instruments. @@ -2897,10 +2353,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_COND_INSTANCES -SESSION_VALUE NULL -GLOBAL_VALUE 1000 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of instrumented condition objects. Use 0 to disable, -1 for automated sizing. @@ -2911,10 +2363,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_DIGEST_LENGTH -SESSION_VALUE NULL -GLOBAL_VALUE 1024 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1024 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum length considered for digest text, when stored in performance_schema tables. @@ -2925,10 +2373,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_FILE_CLASSES -SESSION_VALUE NULL -GLOBAL_VALUE 50 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 50 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of file instruments. @@ -2939,10 +2383,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_FILE_HANDLES -SESSION_VALUE NULL -GLOBAL_VALUE 32768 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 32768 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of opened instrumented files. @@ -2953,10 +2393,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_FILE_INSTANCES -SESSION_VALUE NULL -GLOBAL_VALUE 10000 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of instrumented files. Use 0 to disable, -1 for automated sizing. @@ -2967,10 +2403,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_MUTEX_CLASSES -SESSION_VALUE NULL -GLOBAL_VALUE 200 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 200 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of mutex instruments. @@ -2981,10 +2413,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_MUTEX_INSTANCES -SESSION_VALUE NULL -GLOBAL_VALUE 5000 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of instrumented MUTEX objects. Use 0 to disable, -1 for automated sizing. @@ -2995,10 +2423,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_RWLOCK_CLASSES -SESSION_VALUE NULL -GLOBAL_VALUE 40 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 40 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of rwlock instruments. @@ -3009,10 +2433,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_RWLOCK_INSTANCES -SESSION_VALUE NULL -GLOBAL_VALUE 5000 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of instrumented RWLOCK objects. Use 0 to disable, -1 for automated sizing. @@ -3023,10 +2443,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_SOCKET_CLASSES -SESSION_VALUE NULL -GLOBAL_VALUE 10 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 10 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of socket instruments. @@ -3037,10 +2453,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_SOCKET_INSTANCES -SESSION_VALUE NULL -GLOBAL_VALUE 1000 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of opened instrumented sockets. Use 0 to disable, -1 for automated sizing. @@ -3051,10 +2463,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_STAGE_CLASSES -SESSION_VALUE NULL -GLOBAL_VALUE 160 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 160 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of stage instruments. @@ -3065,10 +2473,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_STATEMENT_CLASSES -SESSION_VALUE NULL -GLOBAL_VALUE 200 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 200 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of statement instruments. @@ -3079,10 +2483,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_TABLE_HANDLES -SESSION_VALUE NULL -GLOBAL_VALUE 1000 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of opened instrumented tables. Use 0 to disable, -1 for automated sizing. @@ -3093,10 +2493,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_TABLE_INSTANCES -SESSION_VALUE NULL -GLOBAL_VALUE 500 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of instrumented tables. Use 0 to disable, -1 for automated sizing. @@ -3107,10 +2503,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_THREAD_CLASSES -SESSION_VALUE NULL -GLOBAL_VALUE 50 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 50 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of thread instruments. @@ -3121,10 +2513,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_THREAD_INSTANCES -SESSION_VALUE NULL -GLOBAL_VALUE 200 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of instrumented threads. Use 0 to disable, -1 for automated sizing. @@ -3135,10 +2523,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_SESSION_CONNECT_ATTRS_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 2048 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Size of session attribute string buffer per thread. Use 0 to disable, -1 for automated sizing. @@ -3149,10 +2533,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_SETUP_ACTORS_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 100 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of rows in SETUP_ACTORS. @@ -3163,10 +2543,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_SETUP_OBJECTS_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 100 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of rows in SETUP_OBJECTS. @@ -3177,10 +2553,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_USERS_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of instrumented users. Use 0 to disable, -1 for automated sizing. @@ -3191,10 +2563,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PID_FILE -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Pid file used by safe_mysqld @@ -3205,10 +2573,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PLUGIN_DIR -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Directory for plugins @@ -3218,11 +2582,17 @@ ENUM_VALUE_LIST NULL READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME PLUGIN_MATURITY +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE ENUM +VARIABLE_COMMENT The lowest desirable plugin maturity. Plugins less mature than that will not be installed or loaded +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST unknown,experimental,alpha,beta,gamma,stable +READ_ONLY YES +COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PORT -SESSION_VALUE NULL -GLOBAL_VALUE MASTER_MYPORT -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Port number to use for connection or 0 to default to, my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default (3306), whatever comes first @@ -3233,10 +2603,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PRELOAD_BUFFER_SIZE -SESSION_VALUE 32768 -GLOBAL_VALUE 32768 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 32768 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the buffer that is allocated when preloading indexes @@ -3247,10 +2613,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PROFILING -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1 (0 is default), statement profiling will be enabled. See SHOW PROFILES and SHOW PROFILE. @@ -3261,10 +2623,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME PROFILING_HISTORY_SIZE -SESSION_VALUE 15 -GLOBAL_VALUE 15 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 15 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Number of statements about which profiling information is maintained. If set to 0, no profiles are stored. See SHOW PROFILES. @@ -3275,10 +2633,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PROGRESS_REPORT_TIME -SESSION_VALUE 5 -GLOBAL_VALUE 5 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 5 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Seconds between sending progress reports to the client for time-consuming statements. Set to 0 to disable progress reporting. @@ -3289,10 +2643,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PROTOCOL_VERSION -SESSION_VALUE NULL -GLOBAL_VALUE 10 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The version of the client/server protocol used by the MariaDB server @@ -3303,10 +2653,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME PROXY_PROTOCOL_NETWORKS -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Enable proxy protocol for these source networks. The syntax is a comma separated list of IPv4 and IPv6 networks. If the network doesn't contain mask, it is considered to be a single host. "*" represents all networks and must the only directive on the line. String "localhost" represents non-TCP local connections (Unix domain socket, Windows named pipe or shared memory). @@ -3317,10 +2663,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PROXY_USER -SESSION_VALUE -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The proxy user account name used when logging in @@ -3331,10 +2673,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME PSEUDO_SLAVE_MODE -SESSION_VALUE OFF -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT SET pseudo_slave_mode= 0,1 are commands that mysqlbinlog adds to beginning and end of binary log dumps. While zero value indeed disables, the actual enabling of the slave applier execution mode is done implicitly when a Format_description_event is sent through the session. @@ -3345,10 +2683,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME PSEUDO_THREAD_ID -SESSION_VALUE 10 -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT This variable is for internal server use @@ -3359,10 +2693,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME QUERY_ALLOC_BLOCK_SIZE -SESSION_VALUE 16384 -GLOBAL_VALUE 16384 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 16384 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Allocation block size for query parsing and execution @@ -3373,10 +2703,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME QUERY_CACHE_LIMIT -SESSION_VALUE NULL -GLOBAL_VALUE 1048576 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1048576 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Don't cache results that are bigger than this @@ -3387,10 +2713,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME QUERY_CACHE_MIN_RES_UNIT -SESSION_VALUE NULL -GLOBAL_VALUE 4096 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 4096 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The minimum size for blocks allocated by the query cache @@ -3401,10 +2723,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME QUERY_CACHE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 1048576 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1048576 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The memory allocated to store results from old queries @@ -3415,10 +2733,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME QUERY_CACHE_STRIP_COMMENTS -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Strip all comments from a query before storing it in the query cache @@ -3429,10 +2743,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME QUERY_CACHE_TYPE -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT OFF = Don't cache or retrieve results. ON = Cache all results except SELECT SQL_NO_CACHE ... queries. DEMAND = Cache only SELECT SQL_CACHE ... queries @@ -3443,10 +2753,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME QUERY_CACHE_WLOCK_INVALIDATE -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Invalidate queries in query cache on LOCK for write @@ -3457,10 +2763,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME QUERY_PREALLOC_SIZE -SESSION_VALUE 24576 -GLOBAL_VALUE 24576 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 24576 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Persistent buffer for query parsing and execution @@ -3470,11 +2772,27 @@ ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME RAND_SEED1 +VARIABLE_SCOPE SESSION ONLY +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Sets the internal state of the RAND() generator for replication purposes +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 18446744073709551615 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT NULL +VARIABLE_NAME RAND_SEED2 +VARIABLE_SCOPE SESSION ONLY +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Sets the internal state of the RAND() generator for replication purposes +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 18446744073709551615 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME RANGE_ALLOC_BLOCK_SIZE -SESSION_VALUE 4096 -GLOBAL_VALUE 4096 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 4096 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Allocation block size for storing ranges during optimization @@ -3485,10 +2803,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME READ_BUFFER_SIZE -SESSION_VALUE 131072 -GLOBAL_VALUE 131072 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 131072 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Each thread that does a sequential scan allocates a buffer of this size for each table it scans. If you do many sequential scans, you may want to increase this value @@ -3499,10 +2813,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME READ_ONLY -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Make all non-temporary tables read-only, with the exception for replication (slave) threads and users with the SUPER privilege @@ -3513,10 +2823,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME READ_RND_BUFFER_SIZE -SESSION_VALUE 262144 -GLOBAL_VALUE 262144 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 262144 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT When reading rows in sorted order after a sort, the rows are read through this buffer to avoid a disk seeks @@ -3527,10 +2833,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ROWID_MERGE_BUFF_SIZE -SESSION_VALUE 8388608 -GLOBAL_VALUE 8388608 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 8388608 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the buffers used [NOT] IN evaluation via partial matching @@ -3541,10 +2843,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SECURE_AUTH -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Disallow authentication for accounts that have old (pre-4.1) passwords @@ -3555,10 +2853,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SECURE_FILE_PRIV -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Limit LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE() to files within specified directory @@ -3569,10 +2863,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SECURE_TIMESTAMP -SESSION_VALUE NULL -GLOBAL_VALUE NO -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NO VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT Restricts direct setting of a session timestamp. Possible levels are: YES - timestamp cannot deviate from the system clock, REPLICATION - replication thread can adjust timestamp to match the master's, SUPER - a user with this privilege and a replication thread can adjust timestamp, NO - historical behavior, anyone can modify session timestamp @@ -3583,10 +2873,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SERVER_ID -SESSION_VALUE 1 -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 1 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Uniquely identifies the server instance in the community of replication partners @@ -3597,10 +2883,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SKIP_EXTERNAL_LOCKING -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Don't use system (external) locking @@ -3611,10 +2893,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SKIP_NAME_RESOLVE -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Don't resolve hostnames. All hostnames are IP's or 'localhost'. @@ -3625,10 +2903,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SKIP_NETWORKING -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Don't allow connection with TCP/IP @@ -3639,10 +2913,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SKIP_REPLICATION -SESSION_VALUE OFF -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Changes are logged into the binary log with the @@skip_replication flag set. Such events will not be replicated by slaves that run with --replicate-events-marked-for-skip set different from its default of REPLICATE. See Selectively skipping replication of binlog events for more information. @@ -3653,10 +2923,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SKIP_SHOW_DATABASE -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Don't allow 'SHOW DATABASE' commands @@ -3667,10 +2933,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SLAVE_COMPRESSED_PROTOCOL -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Use compression on master/slave protocol @@ -3681,10 +2943,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SLAVE_MAX_ALLOWED_PACKET -SESSION_VALUE NULL -GLOBAL_VALUE 1073741824 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1073741824 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The maximum packet length to sent successfully from the master to slave. @@ -3695,10 +2953,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SLOW_LAUNCH_TIME -SESSION_VALUE NULL -GLOBAL_VALUE 2 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 2 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT If creating the thread takes longer than this value (in seconds), the Slow_launch_threads counter will be incremented @@ -3709,10 +2963,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SLOW_QUERY_LOG -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Log slow queries to a table or log file. Defaults logging to a file 'hostname'-slow.log or a table mysql.slow_log if --log-output=TABLE is used. Must be enabled to activate other slow log options. @@ -3723,10 +2973,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SLOW_QUERY_LOG_FILE -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Log slow queries to given log file. Defaults logging to 'hostname'-slow.log. Must be enabled to activate other slow log options @@ -3737,10 +2983,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SOCKET -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Socket file to use for connection @@ -3751,10 +2993,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SORT_BUFFER_SIZE -SESSION_VALUE 262144 -GLOBAL_VALUE 262144 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 2097152 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Each thread that needs to do a sort allocates a buffer of this size @@ -3765,10 +3003,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SQL_AUTO_IS_NULL -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1, the query SELECT * FROM table_name WHERE auto_increment_column IS NULL will return an auto-increment that has just been successfully inserted, the same as the LAST_INSERT_ID() function. Some ODBC programs make use of this IS NULL comparison. @@ -3779,10 +3013,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SQL_BIG_SELECTS -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 0, MariaDB will not perform large SELECTs. See max_join_size for details. If max_join_size is set to anything but DEFAULT, sql_big_selects is automatically set to 0. If sql_big_selects is again set, max_join_size will be ignored. @@ -3793,10 +3023,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SQL_BUFFER_RESULT -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1 (0 is default), results from SELECT statements are always placed into temporary tables. This can help the server when it takes a long time to send the results to the client by allowing the table locks to be freed early. @@ -3807,10 +3033,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SQL_LOG_BIN -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 0 (1 is the default), no logging to the binary log is done for the client. Only clients with the SUPER privilege can update this variable. Can have unintended consequences if set globally, see SET SQL_LOG_BIN. Starting MariaDB 10.1.7, this variable does not affect the replication of events in a Galera cluster. @@ -3821,10 +3043,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SQL_LOG_OFF -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1 (0 is the default), no logging to the general query log is done for the client. Only clients with the SUPER privilege can update this variable. @@ -3835,10 +3053,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SQL_MODE -SESSION_VALUE ANSI_QUOTES -GLOBAL_VALUE STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION VARIABLE_SCOPE SESSION VARIABLE_TYPE SET VARIABLE_COMMENT Sets the sql mode @@ -3849,10 +3063,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SQL_NOTES -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1, the default, warning_count is incremented each time a Note warning is encountered. If set to 0, Note warnings are not recorded. mysqldump has outputs to set this variable to 0 so that no unnecessary increments occur when data is reloaded. @@ -3863,10 +3073,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SQL_QUOTE_SHOW_CREATE -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1, the default, the server will quote identifiers for SHOW CREATE DATABASE, SHOW CREATE TABLE and SHOW CREATE VIEW statements. Quoting is disabled if set to 0. Enable to ensure replications works when identifiers require quoting. @@ -3877,10 +3083,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SQL_SAFE_UPDATES -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1, UPDATEs and DELETEs need either a key in the WHERE clause, or a LIMIT clause, or else they will aborted. Prevents the common mistake of accidentally deleting or updating every row in a table. @@ -3891,10 +3093,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SQL_SELECT_LIMIT -SESSION_VALUE 18446744073709551615 -GLOBAL_VALUE 18446744073709551615 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 18446744073709551615 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The maximum number of rows to return from SELECT statements @@ -3905,10 +3103,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SQL_WARNINGS -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1, single-row INSERTs will produce a string containing warning information if a warning occurs. @@ -3919,10 +3113,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SSL_CA -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT CA file in PEM format (check OpenSSL docs, implies --ssl) @@ -3933,10 +3123,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SSL_CAPATH -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT CA directory (check OpenSSL docs, implies --ssl) @@ -3947,10 +3133,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SSL_CERT -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT X509 cert in PEM format (implies --ssl) @@ -3961,10 +3143,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SSL_CIPHER -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT SSL cipher to use (implies --ssl) @@ -3975,10 +3153,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SSL_CRL -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT CRL file in PEM format (check OpenSSL docs, implies --ssl) @@ -3989,10 +3163,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SSL_CRLPATH -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT CRL directory (check OpenSSL docs, implies --ssl) @@ -4003,10 +3173,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SSL_KEY -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT X509 key in PEM format (implies --ssl) @@ -4017,10 +3183,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME STANDARD_COMPLIANT_CTE -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Allow only CTEs compliant to SQL standard @@ -4031,10 +3193,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME STORAGE_ENGINE -SESSION_VALUE MyISAM -GLOBAL_VALUE MyISAM -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE MyISAM VARIABLE_SCOPE SESSION VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Alias for @@default_storage_engine. Deprecated @@ -4045,10 +3203,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME STORED_PROGRAM_CACHE -SESSION_VALUE NULL -GLOBAL_VALUE 256 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 256 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The soft upper limit for number of cached stored routines for one connection. @@ -4059,10 +3213,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME STRICT_PASSWORD_VALIDATION -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT When password validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash) @@ -4073,10 +3223,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SYNC_BINLOG -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Synchronously flush binary log to disk after every #th event. Use 0 (default) to disable synchronous flushing @@ -4087,10 +3233,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SYNC_FRM -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Sync .frm files to disk on creation @@ -4101,10 +3243,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SYNC_MASTER_INFO -SESSION_VALUE NULL -GLOBAL_VALUE 10000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 10000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Synchronously flush master info to disk after every #th event. Use 0 to disable synchronous flushing @@ -4114,11 +3252,17 @@ ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME SYSTEM_TIME_ZONE +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE VARCHAR +VARIABLE_COMMENT The server system time zone +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SYSTEM_VERSIONING_ALTER_HISTORY -SESSION_VALUE ERROR -GLOBAL_VALUE ERROR -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ERROR VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Versioning ALTER TABLE mode. ERROR: Fail ALTER with error; KEEP: Keep historical system rows and subject them to ALTER @@ -4129,10 +3273,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SYSTEM_VERSIONING_ASOF -SESSION_VALUE DEFAULT -GLOBAL_VALUE DEFAULT -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE DEFAULT VARIABLE_SCOPE SESSION VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Default value for the FOR SYSTEM_TIME AS OF clause @@ -4143,10 +3283,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME TABLE_DEFINITION_CACHE -SESSION_VALUE NULL -GLOBAL_VALUE 400 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 400 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of cached table definitions @@ -4157,10 +3293,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TABLE_OPEN_CACHE -SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 2000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of cached open tables @@ -4171,10 +3303,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TABLE_OPEN_CACHE_INSTANCES -SESSION_VALUE NULL -GLOBAL_VALUE 8 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 8 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of table cache instances @@ -4185,10 +3313,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TCP_KEEPALIVE_INTERVAL -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT VARIABLE_COMMENT The interval, in seconds, between when successive keep-alive packets are sent if no acknowledgement is received.If set to 0, system dependent default is used. @@ -4199,10 +3323,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TCP_KEEPALIVE_PROBES -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT VARIABLE_COMMENT The number of unacknowledged probes to send before considering the connection dead and notifying the application layer.If set to 0, system dependent default is used. @@ -4213,10 +3333,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TCP_KEEPALIVE_TIME -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT VARIABLE_COMMENT Timeout, in milliseconds, with no activity until the first TCP keep-alive packet is sent.If set to 0, system dependent default is used. @@ -4227,10 +3343,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME THREAD_CACHE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 151 -GLOBAL_VALUE_ORIGIN AUTO -DEFAULT_VALUE 256 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT How many threads we should keep in a cache for reuse. These are freed after 5 minutes of idle time @@ -4241,10 +3353,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME THREAD_CONCURRENCY -SESSION_VALUE NULL -GLOBAL_VALUE 10 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 10 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Permits the application to give the threads system a hint for the desired number of threads that should be run at the same time.This variable has no effect, and is deprecated. It will be removed in a future release. @@ -4255,10 +3363,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME THREAD_HANDLING -SESSION_VALUE NULL -GLOBAL_VALUE no-threads -GLOBAL_VALUE_ORIGIN AUTO -DEFAULT_VALUE one-thread-per-connection VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT Define threads usage for handling queries @@ -4269,10 +3373,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME THREAD_STACK -SESSION_VALUE NULL -GLOBAL_VALUE 299008 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 299008 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The stack size for each thread @@ -4283,10 +3383,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TIMED_MUTEXES -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Specify whether to time mutexes. Deprecated, has no effect. @@ -4297,10 +3393,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME TIMESTAMP -SESSION_VALUE 1409578823.000000 -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0.000000 VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE DOUBLE VARIABLE_COMMENT Set the time for this client @@ -4311,10 +3403,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME TIME_FORMAT -SESSION_VALUE NULL -GLOBAL_VALUE %H:%i:%s -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE %H:%i:%s VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The TIME format (ignored) @@ -4325,10 +3413,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TIME_ZONE -SESSION_VALUE +00:00 -GLOBAL_VALUE SYSTEM -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE SYSTEM VARIABLE_SCOPE SESSION VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The current time zone, used to initialize the time zone for a client when it connects. Set to SYSTEM by default, in which the client uses the system time zone value. @@ -4339,10 +3423,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME TMPDIR -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Path for temporary files. Several paths may be specified, separated by a colon (:), in this case they are used in a round-robin fashion @@ -4353,10 +3433,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TMP_DISK_TABLE_SIZE -SESSION_VALUE 18446744073709551615 -GLOBAL_VALUE 18446744073709551615 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 18446744073709551615 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Max size for data for an internal temporary on-disk MyISAM or Aria table. @@ -4367,10 +3443,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TMP_MEMORY_TABLE_SIZE -SESSION_VALUE 16777216 -GLOBAL_VALUE 16777216 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 16777216 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT If an internal in-memory temporary table exceeds this size, MariaDB will automatically convert it to an on-disk MyISAM or Aria table. Same as tmp_table_size. @@ -4381,10 +3453,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TMP_TABLE_SIZE -SESSION_VALUE 16777216 -GLOBAL_VALUE 16777216 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 16777216 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Alias for tmp_memory_table_size. If an internal in-memory temporary table exceeds this size, MariaDB will automatically convert it to an on-disk MyISAM or Aria table. @@ -4395,10 +3463,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TRANSACTION_ALLOC_BLOCK_SIZE -SESSION_VALUE 8192 -GLOBAL_VALUE 8192 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 8192 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Allocation block size for transactions to be stored in binary log @@ -4409,10 +3473,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TRANSACTION_PREALLOC_SIZE -SESSION_VALUE 4096 -GLOBAL_VALUE 4096 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 4096 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Persistent buffer for transactions to be stored in binary log @@ -4423,10 +3483,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TX_ISOLATION -SESSION_VALUE REPEATABLE-READ -GLOBAL_VALUE REPEATABLE-READ -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE REPEATABLE-READ VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Default transaction isolation level @@ -4437,10 +3493,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME TX_READ_ONLY -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Default transaction access mode. If set to OFF, the default, access is read/write. If set to ON, access is read-only. The SET TRANSACTION statement can also change the value of this variable. See SET TRANSACTION and START TRANSACTION. @@ -4451,10 +3503,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME UNIQUE_CHECKS -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1, the default, secondary indexes in InnoDB tables are performed. If set to 0, storage engines can (but are not required to) assume that duplicate keys are not present in input data. Set to 0 to speed up imports of large tables to InnoDB. The storage engine will still issue a duplicate key error if it detects one, even if set to 0. @@ -4465,10 +3513,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME UPDATABLE_VIEWS_WITH_LIMIT -SESSION_VALUE YES -GLOBAL_VALUE YES -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE YES VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT YES = Don't issue an error message (warning only) if a VIEW without presence of a key of the underlying table is used in queries with a LIMIT clause for updating. NO = Prohibit update of a VIEW, which does not contain a key of the underlying table and the query uses a LIMIT clause (usually get from GUI tools) @@ -4479,10 +3523,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME USERSTAT -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Enables statistics gathering for USER_STATISTICS, CLIENT_STATISTICS, INDEX_STATISTICS and TABLE_STATISTICS tables in the INFORMATION_SCHEMA @@ -4493,10 +3533,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME USE_STAT_TABLES -SESSION_VALUE NEVER -GLOBAL_VALUE NEVER -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NEVER VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Specifies how to use system statistics tables @@ -4506,155 +3542,6 @@ ENUM_VALUE_LIST NEVER,COMPLEMENTARY,PREFERABLY READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED -VARIABLE_NAME WAIT_TIMEOUT -SESSION_VALUE 28800 -GLOBAL_VALUE 28800 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 28800 -VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED -VARIABLE_COMMENT The number of seconds the server waits for activity on a connection before closing it -NUMERIC_MIN_VALUE 1 -NUMERIC_MAX_VALUE 31536000 -NUMERIC_BLOCK_SIZE 1 -ENUM_VALUE_LIST NULL -READ_ONLY NO -COMMAND_LINE_ARGUMENT REQUIRED -VARIABLE_NAME WARNING_COUNT -SESSION_VALUE 0 -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL -VARIABLE_SCOPE SESSION ONLY -VARIABLE_TYPE BIGINT UNSIGNED -VARIABLE_COMMENT The number of errors, warnings, and notes that resulted from the last statement that generated messages -NUMERIC_MIN_VALUE 0 -NUMERIC_MAX_VALUE 18446744073709551615 -NUMERIC_BLOCK_SIZE 1 -ENUM_VALUE_LIST NULL -READ_ONLY YES -COMMAND_LINE_ARGUMENT NULL -select VARIABLE_NAME, VARIABLE_SCOPE, VARIABLE_TYPE, VARIABLE_COMMENT, -NUMERIC_MIN_VALUE, NUMERIC_MAX_VALUE, NUMERIC_BLOCK_SIZE, -ENUM_VALUE_LIST, READ_ONLY, COMMAND_LINE_ARGUMENT -from information_schema.system_variables -where variable_name in ( -'have_openssl', -'have_symlink', -'hostname', -'large_files_support', -'lower_case_file_system', -'lower_case_table_names', -'open_files_limit', -'rand_seed1', -'rand_seed2', -'system_time_zone', -'version_comment', -'version_source_revision', -'version_compile_machine', 'version_compile_os', -'version_malloc_library', 'version_ssl_library', 'version' - ) -order by variable_name; -VARIABLE_NAME HAVE_OPENSSL -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE VARCHAR -VARIABLE_COMMENT Comparing have_openssl with have_ssl will indicate whether YaSSL or openssl was used. If YaSSL, have_ssl will be YES, but have_openssl will be NO. -NUMERIC_MIN_VALUE NULL -NUMERIC_MAX_VALUE NULL -NUMERIC_BLOCK_SIZE NULL -ENUM_VALUE_LIST NULL -READ_ONLY YES -COMMAND_LINE_ARGUMENT NULL -VARIABLE_NAME HAVE_SYMLINK -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE VARCHAR -VARIABLE_COMMENT If symbolic link support is enabled, will be set to YES, otherwise will be set to NO. Required for the INDEX DIRECTORY and DATA DIRECTORY table options (see CREATE TABLE) and Windows symlink support. Will be set to DISABLED if the server is started with the --skip-symbolic-links option. -NUMERIC_MIN_VALUE NULL -NUMERIC_MAX_VALUE NULL -NUMERIC_BLOCK_SIZE NULL -ENUM_VALUE_LIST NULL -READ_ONLY YES -COMMAND_LINE_ARGUMENT NULL -VARIABLE_NAME HOSTNAME -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE VARCHAR -VARIABLE_COMMENT Server host name -NUMERIC_MIN_VALUE NULL -NUMERIC_MAX_VALUE NULL -NUMERIC_BLOCK_SIZE NULL -ENUM_VALUE_LIST NULL -READ_ONLY YES -COMMAND_LINE_ARGUMENT NULL -VARIABLE_NAME LARGE_FILES_SUPPORT -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BOOLEAN -VARIABLE_COMMENT Whether mysqld was compiled with options for large file support -NUMERIC_MIN_VALUE NULL -NUMERIC_MAX_VALUE NULL -NUMERIC_BLOCK_SIZE NULL -ENUM_VALUE_LIST OFF,ON -READ_ONLY YES -COMMAND_LINE_ARGUMENT NULL -VARIABLE_NAME LOWER_CASE_FILE_SYSTEM -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BOOLEAN -VARIABLE_COMMENT Case sensitivity of file names on the file system where the data directory is located -NUMERIC_MIN_VALUE NULL -NUMERIC_MAX_VALUE NULL -NUMERIC_BLOCK_SIZE NULL -ENUM_VALUE_LIST OFF,ON -READ_ONLY YES -COMMAND_LINE_ARGUMENT NULL -VARIABLE_NAME LOWER_CASE_TABLE_NAMES -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE INT UNSIGNED -VARIABLE_COMMENT If set to 1 table names are stored in lowercase on disk and table names will be case-insensitive. Should be set to 2 if you are using a case insensitive file system -NUMERIC_MIN_VALUE 0 -NUMERIC_MAX_VALUE 2 -NUMERIC_BLOCK_SIZE 1 -ENUM_VALUE_LIST NULL -READ_ONLY YES -COMMAND_LINE_ARGUMENT OPTIONAL -VARIABLE_NAME OPEN_FILES_LIMIT -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED -VARIABLE_COMMENT If this is not 0, then mysqld will use this value to reserve file descriptors to use with setrlimit(). If this value is 0 or autoset then mysqld will reserve max_connections*5 or max_connections + table_cache*2 (whichever is larger) number of file descriptors -NUMERIC_MIN_VALUE 0 -NUMERIC_MAX_VALUE 4294967295 -NUMERIC_BLOCK_SIZE 1 -ENUM_VALUE_LIST NULL -READ_ONLY YES -COMMAND_LINE_ARGUMENT REQUIRED -VARIABLE_NAME RAND_SEED1 -VARIABLE_SCOPE SESSION ONLY -VARIABLE_TYPE BIGINT UNSIGNED -VARIABLE_COMMENT Sets the internal state of the RAND() generator for replication purposes -NUMERIC_MIN_VALUE 0 -NUMERIC_MAX_VALUE 18446744073709551615 -NUMERIC_BLOCK_SIZE 1 -ENUM_VALUE_LIST NULL -READ_ONLY NO -COMMAND_LINE_ARGUMENT NULL -VARIABLE_NAME RAND_SEED2 -VARIABLE_SCOPE SESSION ONLY -VARIABLE_TYPE BIGINT UNSIGNED -VARIABLE_COMMENT Sets the internal state of the RAND() generator for replication purposes -NUMERIC_MIN_VALUE 0 -NUMERIC_MAX_VALUE 18446744073709551615 -NUMERIC_BLOCK_SIZE 1 -ENUM_VALUE_LIST NULL -READ_ONLY NO -COMMAND_LINE_ARGUMENT NULL -VARIABLE_NAME SYSTEM_TIME_ZONE -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE VARCHAR -VARIABLE_COMMENT The server system time zone -NUMERIC_MIN_VALUE NULL -NUMERIC_MAX_VALUE NULL -NUMERIC_BLOCK_SIZE NULL -ENUM_VALUE_LIST NULL -READ_ONLY YES -COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME VERSION VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR @@ -4725,8 +3612,27 @@ ENUM_VALUE_LIST NULL READ_ONLY YES COMMAND_LINE_ARGUMENT NULL -select VARIABLE_NAME, GLOBAL_VALUE_ORIGIN, VARIABLE_SCOPE, VARIABLE_TYPE, -VARIABLE_COMMENT, ENUM_VALUE_LIST, READ_ONLY, COMMAND_LINE_ARGUMENT +VARIABLE_NAME WAIT_TIMEOUT +VARIABLE_SCOPE SESSION +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT The number of seconds the server waits for activity on a connection before closing it +NUMERIC_MIN_VALUE 1 +NUMERIC_MAX_VALUE 31536000 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME WARNING_COUNT +VARIABLE_SCOPE SESSION ONLY +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT The number of errors, warnings, and notes that resulted from the last statement that generated messages +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 18446744073709551615 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT NULL +select VARIABLE_NAME, GLOBAL_VALUE_ORIGIN, VARIABLE_SCOPE, VARIABLE_TYPE, VARIABLE_COMMENT, ENUM_VALUE_LIST, READ_ONLY, COMMAND_LINE_ARGUMENT from information_schema.system_variables where variable_name in ( 'log_tc_size' diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/sysvars_server_notembedded,32bit.rdiff mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/sysvars_server_notembedded,32bit.rdiff --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/sysvars_server_notembedded,32bit.rdiff 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/sysvars_server_notembedded,32bit.rdiff 2019-11-06 16:01:57.000000000 +0000 @@ -1,33 +1,136 @@ ---- sysvars_server_notembedded.result 2017-12-15 20:57:40.174654761 +0200 -+++ sysvars_server_notembedded,32bit.reject 2017-12-15 21:02:20.476044700 +0200 -@@ -58,7 +58,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE 1 +--- sysvars_server_notembedded.result 2019-09-02 17:27:55.739188565 +0300 ++++ sysvars_server_notembedded.reject 2019-09-02 17:55:08.525327501 +0300 +@@ -25,7 +25,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME ARIA_BLOCK_SIZE + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT Block size to be used for Aria index pages. + NUMERIC_MIN_VALUE 1024 + NUMERIC_MAX_VALUE 32768 +@@ -35,7 +35,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME ARIA_CHECKPOINT_INTERVAL + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT Interval between tries to do an automatic checkpoints. In seconds; 0 means 'no automatic checkpoints' which makes sense only for testing. + NUMERIC_MIN_VALUE 0 + NUMERIC_MAX_VALUE 4294967295 +@@ -45,7 +45,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME ARIA_CHECKPOINT_LOG_ACTIVITY + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT Number of bytes that the transaction log has to grow between checkpoints before a new checkpoint is written to the log. + NUMERIC_MIN_VALUE 0 + NUMERIC_MAX_VALUE 4294967295 +@@ -65,7 +65,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME ARIA_FORCE_START_AFTER_RECOVERY_FAILURES + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT Number of consecutive log recovery failures after which logs will be automatically deleted to cure the problem; 0 (the default) disables the feature. + NUMERIC_MIN_VALUE 0 + NUMERIC_MAX_VALUE 255 +@@ -85,7 +85,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME ARIA_GROUP_COMMIT_INTERVAL + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT Interval between commite in microseconds (1/1000000c). 0 stands for no waiting for other threads to come and do a commit in "hard" mode and no sync()/commit at all in "soft" mode. Option has only an effect if aria_group_commit is used + NUMERIC_MIN_VALUE 0 + NUMERIC_MAX_VALUE 4294967295 +@@ -95,7 +95,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME ARIA_LOG_FILE_SIZE + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT Limit for transaction log size + NUMERIC_MIN_VALUE 8388608 + NUMERIC_MAX_VALUE 4294967295 +@@ -125,10 +125,10 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME ARIA_PAGECACHE_AGE_THRESHOLD + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT This characterizes the number of hits a hot block has to be untouched until it is considered aged enough to be downgraded to a warm block. This specifies the percentage ratio of that number of hits to the total number of blocks in the page cache. + NUMERIC_MIN_VALUE 100 +-NUMERIC_MAX_VALUE 18446744073709551615 ++NUMERIC_MAX_VALUE 4294967295 + NUMERIC_BLOCK_SIZE 100 + ENUM_VALUE_LIST NULL + READ_ONLY NO +@@ -145,7 +145,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME ARIA_PAGECACHE_DIVISION_LIMIT + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT The minimum percentage of warm blocks in key cache + NUMERIC_MIN_VALUE 1 + NUMERIC_MAX_VALUE 100 +@@ -155,7 +155,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME ARIA_PAGECACHE_FILE_HASH_SIZE + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT Number of hash buckets for open and changed files. If you have a lot of Aria files open you should increase this for faster flush of changes. A good value is probably 1/10 of number of possible open Aria files. + NUMERIC_MIN_VALUE 128 + NUMERIC_MAX_VALUE 16384 +@@ -185,7 +185,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME ARIA_REPAIR_THREADS + VARIABLE_SCOPE SESSION +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT Number of threads to use when repairing Aria tables. The value of 1 disables parallel repair. + NUMERIC_MIN_VALUE 1 + NUMERIC_MAX_VALUE 128 +@@ -198,7 +198,7 @@ + VARIABLE_TYPE BIGINT UNSIGNED + VARIABLE_COMMENT The buffer that is allocated when sorting the index when doing a REPAIR or when creating indexes with CREATE INDEX or ALTER TABLE. + NUMERIC_MIN_VALUE 4096 +-NUMERIC_MAX_VALUE 18446744073709551615 ++NUMERIC_MAX_VALUE 4294967295 + NUMERIC_BLOCK_SIZE 1 + ENUM_VALUE_LIST NULL + READ_ONLY NO +@@ -255,7 +255,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME AUTO_INCREMENT_INCREMENT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Auto-increment columns are incremented by this NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 65535 -@@ -72,7 +72,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1 +@@ -265,7 +265,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME AUTO_INCREMENT_OFFSET VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Offset added to Auto-increment columns. Used when auto-increment-increment != 1 NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 65535 -@@ -86,7 +86,7 @@ - GLOBAL_VALUE_ORIGIN AUTO - DEFAULT_VALUE 150 +@@ -275,7 +275,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME BACK_LOG VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of outstanding connection requests MariaDB can have. This comes into play when the main MariaDB thread gets very many connection requests in a very short time NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 65535 -@@ -159,7 +159,7 @@ +@@ -328,7 +328,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the transactional cache for updates to transactional engines for the binary log. If you often use transactions containing many statements, you can increase this to get more performance NUMERIC_MIN_VALUE 4096 @@ -36,9 +139,9 @@ NUMERIC_BLOCK_SIZE 4096 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -184,10 +184,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 +@@ -345,20 +345,20 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME BINLOG_COMMIT_WAIT_COUNT VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED @@ -49,9 +152,8 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -198,10 +198,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 100000 + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME BINLOG_COMMIT_WAIT_USEC VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED @@ -62,7 +164,7 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -229,7 +229,7 @@ +@@ -378,7 +378,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of file cache for the binary log NUMERIC_MIN_VALUE 8192 @@ -71,7 +173,7 @@ NUMERIC_BLOCK_SIZE 4096 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -285,7 +285,7 @@ +@@ -418,7 +418,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the statement cache for updates to non-transactional engines for the binary log. If you often use statements updating a great number of rows, you can increase this to get more performance. NUMERIC_MIN_VALUE 4096 @@ -80,7 +182,7 @@ NUMERIC_BLOCK_SIZE 4096 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -299,7 +299,7 @@ +@@ -428,7 +428,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Size of tree cache used in bulk insert optimisation. Note that this is a limit per thread! NUMERIC_MIN_VALUE 0 @@ -89,151 +191,151 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -562,7 +562,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE 10 +@@ -615,7 +615,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME CONNECT_TIMEOUT VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of seconds the mysqld server is waiting for a connect packet before responding with 'Bad handshake' NUMERIC_MIN_VALUE 2 NUMERIC_MAX_VALUE 31536000 -@@ -618,7 +618,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 15 +@@ -665,7 +665,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME DEADLOCK_SEARCH_DEPTH_LONG VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Long search depth for the two-step deadlock detection NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 33 -@@ -632,7 +632,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 4 +@@ -675,7 +675,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME DEADLOCK_SEARCH_DEPTH_SHORT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Short search depth for the two-step deadlock detection NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 32 -@@ -646,7 +646,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 50000000 +@@ -685,7 +685,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME DEADLOCK_TIMEOUT_LONG VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Long timeout for the two-step deadlock detection (in microseconds) NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 4294967295 -@@ -660,7 +660,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 10000 +@@ -695,7 +695,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME DEADLOCK_TIMEOUT_SHORT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Short timeout for the two-step deadlock detection (in microseconds) NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 4294967295 -@@ -730,7 +730,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 +@@ -745,7 +745,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME DEFAULT_WEEK_FORMAT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The default week format used by WEEK() functions NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 7 -@@ -744,7 +744,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 100 +@@ -755,7 +755,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME DELAYED_INSERT_LIMIT VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT After inserting delayed_insert_limit rows, the INSERT DELAYED handler will check if there are any SELECT statements pending. If so, it allows these to execute before continuing. NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 4294967295 -@@ -758,7 +758,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 300 +@@ -765,7 +765,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME DELAYED_INSERT_TIMEOUT VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT How long a INSERT DELAYED thread should wait for INSERT statements before terminating NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 31536000 -@@ -772,7 +772,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1000 +@@ -775,7 +775,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME DELAYED_QUEUE_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT What size queue (in rows) should be allocated for handling INSERT DELAYED. If the queue becomes full, any client that does INSERT DELAYED will wait until there is room in the queue again NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 4294967295 -@@ -800,7 +800,7 @@ - GLOBAL_VALUE_ORIGIN SQL - DEFAULT_VALUE 4 +@@ -795,7 +795,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME DIV_PRECISION_INCREMENT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Precision of the result of '/' operator will be increased on that value NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 38 -@@ -912,7 +912,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 +@@ -885,7 +885,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME EXPIRE_LOGS_DAYS VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT If non-zero, binary logs will be purged after expire_logs_days days; possible purges happen at startup and at binary log rotation NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 99 -@@ -954,7 +954,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1 +@@ -915,7 +915,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME EXTRA_MAX_CONNECTIONS VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of connections on extra-port NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 100000 -@@ -996,7 +996,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 +@@ -945,7 +945,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME FLUSH_TIME VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT A dedicated thread is created to flush all tables at the given interval NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 31536000 -@@ -1038,7 +1038,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 84 +@@ -975,7 +975,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME FT_MAX_WORD_LEN VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The maximum length of the word to be included in a FULLTEXT index. Note: FULLTEXT indexes must be rebuilt after changing this variable NUMERIC_MIN_VALUE 10 NUMERIC_MAX_VALUE 84 -@@ -1052,7 +1052,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 4 +@@ -985,7 +985,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME FT_MIN_WORD_LEN VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The minimum length of the word to be included in a FULLTEXT index. Note: FULLTEXT indexes must be rebuilt after changing this variable NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 84 -@@ -1066,7 +1066,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 20 +@@ -995,7 +995,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME FT_QUERY_EXPANSION_LIMIT VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Number of best matches to use for query expansion NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 1000 -@@ -1125,7 +1125,7 @@ +@@ -1038,7 +1038,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The maximum length of the result of function GROUP_CONCAT() NUMERIC_MIN_VALUE 4 @@ -242,47 +344,34 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -1374,7 +1374,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 +@@ -1235,7 +1235,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME HISTOGRAM_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Number of bytes used for a histogram. If set to 0, no histograms are created by ANALYZE. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 255 -@@ -1402,7 +1402,7 @@ - GLOBAL_VALUE_ORIGIN AUTO - DEFAULT_VALUE 128 +@@ -1265,7 +1265,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME HOST_CACHE_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT How many host names should be cached to avoid resolving. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 65536 -@@ -1556,7 +1556,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 28800 +@@ -1375,7 +1375,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME INTERACTIVE_TIMEOUT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of seconds the server waits for activity on an interactive connection before closing it NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 31536000 -@@ -1570,10 +1570,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1000 - VARIABLE_SCOPE SESSION --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT The minimum number of scalar elements in the value list of IN predicate that triggers its conversion to IN subquery - NUMERIC_MIN_VALUE 0 --NUMERIC_MAX_VALUE 18446744073709551615 -+NUMERIC_MAX_VALUE 4294967295 - NUMERIC_BLOCK_SIZE 1 - ENUM_VALUE_LIST NULL - READ_ONLY NO -@@ -1601,7 +1601,7 @@ +@@ -1398,7 +1398,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the buffer that is used for joins NUMERIC_MIN_VALUE 128 @@ -291,16 +380,16 @@ NUMERIC_BLOCK_SIZE 128 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -1626,7 +1626,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 2 +@@ -1415,7 +1415,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME JOIN_CACHE_LEVEL VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Controls what join operations can be executed with join buffers. Odd numbers are used for plain join buffers while even numbers are used for linked buffers NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 8 -@@ -1657,7 +1657,7 @@ +@@ -1438,7 +1438,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the buffer used for index blocks for MyISAM tables. Increase this to get better index handling (for all reads and multiple writes) to as much as you can afford NUMERIC_MIN_VALUE 0 @@ -309,52 +398,43 @@ NUMERIC_BLOCK_SIZE 4096 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -1878,7 +1878,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 86400 +@@ -1605,7 +1605,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME LOCK_WAIT_TIMEOUT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Timeout in seconds to wait for a lock before returning an error. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 31536000 -@@ -2088,7 +2088,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1 +@@ -1755,7 +1755,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME LOG_SLOW_RATE_LIMIT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Write to slow log every #th slow query. Set to 1 to log everything. Increase it to reduce the size of the slow or the performance impact of slow logging NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 4294967295 -@@ -2130,7 +2130,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 2 +@@ -1785,7 +1785,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME LOG_WARNINGS VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Log some not critical warnings to the general log file.Value can be between 0 and 11. Higher values mean more verbosity NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 4294967295 -@@ -2186,7 +2186,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 16777216 +@@ -1845,7 +1845,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME MAX_ALLOWED_PACKET VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Max packet length to send to or receive from the server NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 1073741824 -@@ -2196,14 +2196,14 @@ - COMMAND_LINE_ARGUMENT REQUIRED - VARIABLE_NAME MAX_BINLOG_CACHE_SIZE - SESSION_VALUE NULL --GLOBAL_VALUE 18446744073709547520 -+GLOBAL_VALUE 4294963200 - GLOBAL_VALUE_ORIGIN COMPILE-TIME --DEFAULT_VALUE 18446744073709547520 -+DEFAULT_VALUE 4294963200 - VARIABLE_SCOPE GLOBAL +@@ -1858,14 +1858,14 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Sets the total size of the transactional cache NUMERIC_MIN_VALUE 4096 @@ -363,25 +443,15 @@ NUMERIC_BLOCK_SIZE 4096 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -2214,7 +2214,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1073741824 + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_BINLOG_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Binary log will be rotated automatically when the size exceeds this value. NUMERIC_MIN_VALUE 4096 NUMERIC_MAX_VALUE 1073741824 -@@ -2224,14 +2224,14 @@ - COMMAND_LINE_ARGUMENT REQUIRED - VARIABLE_NAME MAX_BINLOG_STMT_CACHE_SIZE - SESSION_VALUE NULL --GLOBAL_VALUE 18446744073709547520 -+GLOBAL_VALUE 4294963200 - GLOBAL_VALUE_ORIGIN COMPILE-TIME --DEFAULT_VALUE 18446744073709547520 -+DEFAULT_VALUE 4294963200 - VARIABLE_SCOPE GLOBAL +@@ -1878,14 +1878,14 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Sets the total size of the statement cache NUMERIC_MIN_VALUE 4096 @@ -390,43 +460,42 @@ NUMERIC_BLOCK_SIZE 4096 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -2242,7 +2242,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 151 + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_CONNECTIONS VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of simultaneous clients allowed - NUMERIC_MIN_VALUE 1 + NUMERIC_MIN_VALUE 10 NUMERIC_MAX_VALUE 100000 -@@ -2256,7 +2256,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 100 +@@ -1895,7 +1895,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_CONNECT_ERRORS VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT If there is more than this number of interrupted connections from a host this host will be blocked from further connections NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 4294967295 -@@ -2270,7 +2270,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 20 +@@ -1905,7 +1905,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_DELAYED_THREADS VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Don't start more than this number of threads to handle INSERT DELAYED statements. If set to zero INSERT DELAYED will be not used NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 16384 -@@ -2298,7 +2298,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 64 +@@ -1925,7 +1925,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_ERROR_COUNT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Max number of errors/warnings to store for a statement NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 65535 -@@ -2315,7 +2315,7 @@ +@@ -1938,14 +1938,14 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Don't allow creation of heap tables bigger than this NUMERIC_MIN_VALUE 16384 @@ -435,135 +504,125 @@ NUMERIC_BLOCK_SIZE 1024 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -2326,7 +2326,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 20 + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_INSERT_DELAYED_THREADS VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Don't start more than this number of threads to handle INSERT DELAYED statements. If set to zero INSERT DELAYED will be not used NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 16384 -@@ -2354,7 +2354,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1024 +@@ -1965,7 +1965,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_LENGTH_FOR_SORT_DATA VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Max number of bytes in sorted records NUMERIC_MIN_VALUE 4 NUMERIC_MAX_VALUE 8388608 -@@ -2368,7 +2368,7 @@ - GLOBAL_VALUE_ORIGIN AUTO - DEFAULT_VALUE 1048576 +@@ -1975,7 +1975,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_LONG_DATA_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The maximum BLOB length to send to server from mysql_send_long_data API. Deprecated option; use max_allowed_packet instead. NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 4294967295 -@@ -2382,7 +2382,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 16382 - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Maximum number of prepared statements in the server - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 1048576 -@@ -2396,7 +2396,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 4294967295 +@@ -1995,7 +1995,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_RECURSIVE_ITERATIONS VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of iterations when executing recursive queries NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 4294967295 -@@ -2424,7 +2424,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 4294967295 +@@ -2015,7 +2015,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_SEEKS_FOR_KEY VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Limit assumed max number of seeks when looking up rows based on a key NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 4294967295 -@@ -2452,7 +2452,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1024 +@@ -2035,7 +2035,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_SORT_LENGTH VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of bytes to use when sorting BLOB or TEXT values (only the first max_sort_length bytes of each value are used; the rest are ignored) NUMERIC_MIN_VALUE 4 NUMERIC_MAX_VALUE 8388608 -@@ -2466,7 +2466,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 +@@ -2045,7 +2045,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_SP_RECURSION_DEPTH VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum stored procedure recursion depth NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 255 -@@ -2494,7 +2494,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 32 +@@ -2065,7 +2065,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_TMP_TABLES VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Unused, will be removed. NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 4294967295 -@@ -2522,7 +2522,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 4294967295 +@@ -2085,7 +2085,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MAX_WRITE_LOCK_COUNT VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT After this many write locks, allow some read locks to run in between NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 4294967295 -@@ -2536,7 +2536,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1024 +@@ -2095,7 +2095,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME METADATA_LOCKS_CACHE_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Unused NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 1048576 -@@ -2550,7 +2550,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 8 +@@ -2105,7 +2105,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME METADATA_LOCKS_HASH_INSTANCES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Unused NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 1024 -@@ -2564,7 +2564,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 +@@ -2115,7 +2115,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MIN_EXAMINED_ROW_LIMIT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Don't write queries to slow log that examine fewer rows than that NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 4294967295 -@@ -2578,7 +2578,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 262144 +@@ -2125,7 +2125,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MRR_BUFFER_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Size of buffer to use when using MRR with range access NUMERIC_MIN_VALUE 8192 NUMERIC_MAX_VALUE 2147483647 -@@ -2592,10 +2592,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 256 +@@ -2135,17 +2135,17 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MULTI_RANGE_COUNT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED @@ -574,46 +633,24 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -2606,7 +2606,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1024 + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MYISAM_BLOCK_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Block size to be used for MyISAM index pages NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 16384 -@@ -2620,7 +2620,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 6 +@@ -2155,7 +2155,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME MYISAM_DATA_POINTER_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Default pointer size to be used for MyISAM tables NUMERIC_MIN_VALUE 2 NUMERIC_MAX_VALUE 7 -@@ -2630,9 +2630,9 @@ - COMMAND_LINE_ARGUMENT REQUIRED - VARIABLE_NAME MYISAM_MAX_SORT_FILE_SIZE - SESSION_VALUE NULL --GLOBAL_VALUE 9223372036853727232 -+GLOBAL_VALUE 2146435072 - GLOBAL_VALUE_ORIGIN COMPILE-TIME --DEFAULT_VALUE 9223372036853727232 -+DEFAULT_VALUE 2146435072 - VARIABLE_SCOPE GLOBAL - VARIABLE_TYPE BIGINT UNSIGNED - VARIABLE_COMMENT Don't use the fast sort index method to created index if the temporary file would get bigger than this -@@ -2644,14 +2644,14 @@ - COMMAND_LINE_ARGUMENT REQUIRED - VARIABLE_NAME MYISAM_MMAP_SIZE - SESSION_VALUE NULL --GLOBAL_VALUE 18446744073709551615 -+GLOBAL_VALUE 4294967295 - GLOBAL_VALUE_ORIGIN COMPILE-TIME --DEFAULT_VALUE 18446744073709551615 -+DEFAULT_VALUE 4294967295 - VARIABLE_SCOPE GLOBAL +@@ -2178,7 +2178,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Restricts the total memory used for memory mapping of MySQL tables NUMERIC_MIN_VALUE 7 @@ -622,9 +659,9 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY YES -@@ -2676,10 +2676,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1 +@@ -2195,10 +2195,10 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME MYISAM_REPAIR_THREADS VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED @@ -635,7 +672,7 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -2693,7 +2693,7 @@ +@@ -2208,7 +2208,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The buffer that is allocated when sorting the index when doing a REPAIR or when creating indexes with CREATE INDEX or ALTER TABLE NUMERIC_MIN_VALUE 4096 @@ -644,412 +681,421 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -2746,7 +2746,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 16384 +@@ -2245,7 +2245,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME NET_BUFFER_LENGTH VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Buffer length for TCP/IP and socket communication NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 1048576 -@@ -2760,7 +2760,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 30 +@@ -2255,7 +2255,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME NET_READ_TIMEOUT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Number of seconds to wait for more data from a connection before aborting the read NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 31536000 -@@ -2774,7 +2774,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 10 +@@ -2265,7 +2265,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME NET_RETRY_COUNT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT If a read on a communication port is interrupted, retry this many times before giving up NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 4294967295 -@@ -2788,7 +2788,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 60 +@@ -2275,7 +2275,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME NET_WRITE_TIMEOUT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Number of seconds to wait for a block to be written to a connection before aborting the write NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 31536000 -@@ -2858,7 +2858,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1 +@@ -2325,7 +2325,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME OPEN_FILES_LIMIT + VARIABLE_SCOPE GLOBAL +-VARIABLE_TYPE BIGINT UNSIGNED ++VARIABLE_TYPE INT UNSIGNED + VARIABLE_COMMENT If this is not 0, then mysqld will use this value to reserve file descriptors to use with setrlimit(). If this value is 0 or autoset then mysqld will reserve max_connections*5 or max_connections + table_cache*2 (whichever is larger) number of file descriptors + NUMERIC_MIN_VALUE 0 + NUMERIC_MAX_VALUE 4294967295 +@@ -2335,7 +2335,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME OPTIMIZER_PRUNE_LEVEL VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Controls the heuristic(s) applied during query optimization to prune less-promising partial plans from the optimizer search space. Meaning: 0 - do not apply any heuristic, thus perform exhaustive search; 1 - prune plans based on number of retrieved rows NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 1 -@@ -2872,7 +2872,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 62 +@@ -2345,7 +2345,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME OPTIMIZER_SEARCH_DEPTH VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum depth of search performed by the query optimizer. Values larger than the number of relations in a query result in better query plans, but take longer to compile a query. Values smaller than the number of tables in a relation result in faster optimization, but may produce very bad query plans. If set to 0, the system will automatically pick a reasonable value. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 62 -@@ -2886,7 +2886,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 100 +@@ -2355,7 +2355,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME OPTIMIZER_SELECTIVITY_SAMPLING_LIMIT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Controls number of record samples to check condition selectivity NUMERIC_MIN_VALUE 10 NUMERIC_MAX_VALUE 4294967295 -@@ -2914,7 +2914,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1 +@@ -2375,7 +2375,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME OPTIMIZER_USE_CONDITION_SELECTIVITY VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Controls selectivity of which conditions the optimizer takes into account to calculate cardinality of a partial join when it searches for the best execution plan Meaning: 1 - use selectivity of index backed range conditions to calculate the cardinality of a partial join if the last joined table is accessed by full table scan or an index scan, 2 - use selectivity of index backed range conditions to calculate the cardinality of a partial join in any case, 3 - additionally always use selectivity of range conditions that are not backed by any index to calculate the cardinality of a partial join, 4 - use histograms to calculate selectivity of range conditions that are not backed by any index to calculate the cardinality of a partial join.5 - additionally use selectivity of certain non-range predicates calculated on record samples NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 5 -@@ -2942,7 +2942,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2395,7 +2395,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME PERFORMANCE_SCHEMA_ACCOUNTS_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of instrumented user@host accounts. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -2956,7 +2956,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2405,7 +2405,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_DIGESTS_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Size of the statement digest. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 200 -@@ -2970,7 +2970,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2415,7 +2415,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_LONG_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Number of rows in EVENTS_STAGES_HISTORY_LONG. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -2984,7 +2984,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2425,7 +2425,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Number of rows per thread in EVENTS_STAGES_HISTORY. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1024 -@@ -2998,7 +2998,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2435,7 +2435,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_LONG_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Number of rows in EVENTS_STATEMENTS_HISTORY_LONG. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -3012,7 +3012,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2445,7 +2445,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Number of rows per thread in EVENTS_STATEMENTS_HISTORY. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1024 -@@ -3026,7 +3026,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2455,7 +2455,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Number of rows in EVENTS_WAITS_HISTORY_LONG. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -3040,7 +3040,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2465,7 +2465,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Number of rows per thread in EVENTS_WAITS_HISTORY. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1024 -@@ -3054,7 +3054,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2475,7 +2475,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_HOSTS_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of instrumented hosts. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -3068,7 +3068,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 80 +@@ -2485,7 +2485,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_COND_CLASSES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of condition instruments. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 256 -@@ -3082,7 +3082,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2495,7 +2495,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_COND_INSTANCES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of instrumented condition objects. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -3096,7 +3096,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1024 +@@ -2505,7 +2505,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_DIGEST_LENGTH VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum length considered for digest text, when stored in performance_schema tables. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 1048576 -@@ -3110,7 +3110,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 50 +@@ -2515,7 +2515,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_FILE_CLASSES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of file instruments. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 256 -@@ -3124,7 +3124,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 32768 +@@ -2525,7 +2525,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_FILE_HANDLES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of opened instrumented files. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 1048576 -@@ -3138,7 +3138,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2535,7 +2535,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_FILE_INSTANCES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of instrumented files. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -3152,7 +3152,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 200 +@@ -2545,7 +2545,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_MUTEX_CLASSES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of mutex instruments. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 256 -@@ -3166,7 +3166,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2555,7 +2555,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_MUTEX_INSTANCES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of instrumented MUTEX objects. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 104857600 -@@ -3180,7 +3180,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 40 +@@ -2565,7 +2565,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_RWLOCK_CLASSES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of rwlock instruments. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 256 -@@ -3194,7 +3194,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2575,7 +2575,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_RWLOCK_INSTANCES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of instrumented RWLOCK objects. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 104857600 -@@ -3208,7 +3208,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 10 +@@ -2585,7 +2585,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_SOCKET_CLASSES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of socket instruments. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 256 -@@ -3222,7 +3222,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2595,7 +2595,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_SOCKET_INSTANCES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of opened instrumented sockets. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -3236,7 +3236,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 160 +@@ -2605,7 +2605,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_STAGE_CLASSES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of stage instruments. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 256 -@@ -3250,7 +3250,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 191 +@@ -2615,7 +2615,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_STATEMENT_CLASSES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of statement instruments. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 256 -@@ -3264,7 +3264,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2625,7 +2625,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_TABLE_HANDLES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of opened instrumented tables. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -3278,7 +3278,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2635,7 +2635,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_TABLE_INSTANCES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of instrumented tables. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -3292,7 +3292,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 50 +@@ -2645,7 +2645,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_THREAD_CLASSES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of thread instruments. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 256 -@@ -3306,7 +3306,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2655,7 +2655,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_THREAD_INSTANCES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of instrumented threads. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -3320,7 +3320,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2665,7 +2665,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_SESSION_CONNECT_ATTRS_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Size of session attribute string buffer per thread. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -3334,7 +3334,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 100 +@@ -2675,7 +2675,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_SETUP_ACTORS_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of rows in SETUP_ACTORS. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 1024 -@@ -3348,7 +3348,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 100 +@@ -2685,7 +2685,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_SETUP_OBJECTS_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of rows in SETUP_OBJECTS. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 1048576 -@@ -3362,7 +3362,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE -1 +@@ -2695,7 +2695,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PERFORMANCE_SCHEMA_USERS_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT +VARIABLE_TYPE INT VARIABLE_COMMENT Maximum number of instrumented users. Use 0 to disable, -1 for automated sizing. NUMERIC_MIN_VALUE -1 NUMERIC_MAX_VALUE 1048576 -@@ -3432,7 +3432,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 32768 +@@ -2745,7 +2745,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PRELOAD_BUFFER_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The size of the buffer that is allocated when preloading indexes NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 1073741824 -@@ -3460,7 +3460,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 15 +@@ -2765,7 +2765,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME PROFILING_HISTORY_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Number of statements about which profiling information is maintained. If set to 0, no profiles are stored. See SHOW PROFILES. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 100 -@@ -3474,7 +3474,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 5 +@@ -2775,7 +2775,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME PROGRESS_REPORT_TIME VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Seconds between sending progress reports to the client for time-consuming statements. Set to 0 to disable progress reporting. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 4294967295 -@@ -3558,7 +3558,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 16384 +@@ -2835,7 +2835,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME QUERY_ALLOC_BLOCK_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Allocation block size for query parsing and execution NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 4294967295 -@@ -3572,7 +3572,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1048576 +@@ -2845,7 +2845,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME QUERY_CACHE_LIMIT VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Don't cache results that are bigger than this NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 4294967295 -@@ -3586,7 +3586,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 4096 +@@ -2855,7 +2855,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME QUERY_CACHE_MIN_RES_UNIT VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The minimum size for blocks allocated by the query cache NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 4294967295 -@@ -3603,7 +3603,7 @@ +@@ -2868,7 +2868,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The memory allocated to store results from old queries NUMERIC_MIN_VALUE 0 @@ -1058,25 +1104,42 @@ NUMERIC_BLOCK_SIZE 1024 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -3656,7 +3656,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 24576 +@@ -2905,7 +2905,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME QUERY_PREALLOC_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Persistent buffer for query parsing and execution NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 4294967295 -@@ -3670,7 +3670,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 4096 +@@ -2918,7 +2918,7 @@ + VARIABLE_TYPE BIGINT UNSIGNED + VARIABLE_COMMENT Sets the internal state of the RAND() generator for replication purposes + NUMERIC_MIN_VALUE 0 +-NUMERIC_MAX_VALUE 18446744073709551615 ++NUMERIC_MAX_VALUE 4294967295 + NUMERIC_BLOCK_SIZE 1 + ENUM_VALUE_LIST NULL + READ_ONLY NO +@@ -2928,14 +2928,14 @@ + VARIABLE_TYPE BIGINT UNSIGNED + VARIABLE_COMMENT Sets the internal state of the RAND() generator for replication purposes + NUMERIC_MIN_VALUE 0 +-NUMERIC_MAX_VALUE 18446744073709551615 ++NUMERIC_MAX_VALUE 4294967295 + NUMERIC_BLOCK_SIZE 1 + ENUM_VALUE_LIST NULL + READ_ONLY NO + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME RANGE_ALLOC_BLOCK_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Allocation block size for storing ranges during optimization NUMERIC_MIN_VALUE 4096 NUMERIC_MAX_VALUE 4294967295 -@@ -3687,7 +3687,7 @@ +@@ -2948,14 +2948,14 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum speed(KB/s) to read binlog from master (0 = no limit) NUMERIC_MIN_VALUE 0 @@ -1085,27 +1148,26 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -3698,7 +3698,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 131072 + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME READ_BUFFER_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Each thread that does a sequential scan allocates a buffer of this size for each table it scans. If you do many sequential scans, you may want to increase this value NUMERIC_MIN_VALUE 8192 NUMERIC_MAX_VALUE 2147483647 -@@ -3726,7 +3726,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 262144 +@@ -2975,7 +2975,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME READ_RND_BUFFER_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT When reading rows in sorted order after a sort, the rows are read through this buffer to avoid a disk seeks NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 2147483647 -@@ -4006,10 +4006,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 8388608 +@@ -3175,10 +3175,10 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME ROWID_MERGE_BUFF_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED @@ -1116,9 +1178,9 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -4034,10 +4034,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 10000 +@@ -3195,20 +3195,20 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME RPL_SEMI_SYNC_MASTER_TIMEOUT VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED @@ -1129,9 +1191,8 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -4048,10 +4048,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 32 + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME RPL_SEMI_SYNC_MASTER_TRACE_LEVEL VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED @@ -1142,9 +1203,9 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -4132,10 +4132,10 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 32 +@@ -3265,10 +3265,10 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME RPL_SEMI_SYNC_SLAVE_TRACE_LEVEL VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED @@ -1155,88 +1216,88 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -4174,7 +4174,7 @@ - GLOBAL_VALUE_ORIGIN CONFIG - DEFAULT_VALUE 1 +@@ -3305,7 +3305,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME SERVER_ID VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Uniquely identifies the server instance in the community of replication partners NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 4294967295 -@@ -4356,7 +4356,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 +@@ -3435,7 +3435,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME SLAVE_DOMAIN_PARALLEL_THREADS VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of parallel threads to use on slave for events in a single replication domain. When using multiple domains, this can be used to limit a single domain from grabbing all threads and thus stalling other domains. The default of 0 means to allow a domain to grab as many threads as it wants, up to the value of slave_parallel_threads. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 16383 -@@ -4398,7 +4398,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 1073741824 +@@ -3465,7 +3465,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME SLAVE_MAX_ALLOWED_PACKET VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The maximum packet length to sent successfully from the master to slave. NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 1073741824 -@@ -4426,7 +4426,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 131072 +@@ -3485,7 +3485,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME SLAVE_PARALLEL_MAX_QUEUED VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Limit on how much memory SQL threads should use per parallel replication thread when reading ahead in the relay log looking for opportunities for parallel replication. Only used when --slave-parallel-threads > 0. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 2147483647 -@@ -4454,7 +4454,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 +@@ -3505,7 +3505,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME SLAVE_PARALLEL_THREADS VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT If non-zero, number of threads to spawn to apply in parallel events on the slave that were group-committed on the master or were logged with GTID in different replication domains. Note that these threads are in addition to the IO and SQL threads, which are always created by a replication slave NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 16383 -@@ -4468,7 +4468,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 +@@ -3515,7 +3515,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME SLAVE_PARALLEL_WORKERS VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Alias for slave_parallel_threads NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 16383 -@@ -4524,7 +4524,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 10 +@@ -3555,7 +3555,7 @@ + COMMAND_LINE_ARGUMENT OPTIONAL + VARIABLE_NAME SLAVE_TRANSACTION_RETRIES VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Number of times the slave SQL thread will retry a transaction in case it failed with a deadlock, elapsed lock wait timeout or listed in slave_transaction_retry_errors, before giving up and stopping NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 4294967295 -@@ -4552,7 +4552,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 0 +@@ -3575,7 +3575,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME SLAVE_TRANSACTION_RETRY_INTERVAL VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Interval of the slave SQL thread will retry a transaction in case it failed with a deadlock or elapsed lock wait timeout or listed in slave_transaction_retry_errors NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 3600 -@@ -4580,7 +4580,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 2 +@@ -3595,7 +3595,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME SLOW_LAUNCH_TIME VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT If creating the thread takes longer than this value (in seconds), the Slow_launch_threads counter will be incremented NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 31536000 -@@ -4639,7 +4639,7 @@ +@@ -3638,7 +3638,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Each thread that needs to do a sort allocates a buffer of this size NUMERIC_MIN_VALUE 1024 @@ -1245,63 +1306,52 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -4944,7 +4944,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 256 +@@ -3855,7 +3855,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME STORED_PROGRAM_CACHE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The soft upper limit for number of cached stored routines for one connection. NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 524288 -@@ -5042,7 +5042,7 @@ - GLOBAL_VALUE_ORIGIN AUTO - DEFAULT_VALUE 400 +@@ -3955,7 +3955,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME TABLE_DEFINITION_CACHE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of cached table definitions NUMERIC_MIN_VALUE 400 - NUMERIC_MAX_VALUE 524288 -@@ -5056,7 +5056,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 2000 + NUMERIC_MAX_VALUE 2097152 +@@ -3965,7 +3965,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME TABLE_OPEN_CACHE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of cached open tables - NUMERIC_MIN_VALUE 1 + NUMERIC_MIN_VALUE 10 NUMERIC_MAX_VALUE 1048576 -@@ -5126,7 +5126,7 @@ - GLOBAL_VALUE_ORIGIN AUTO - DEFAULT_VALUE 256 +@@ -4015,7 +4015,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME THREAD_CACHE_SIZE VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT How many threads we should keep in a cache for reuse. These are freed after 5 minutes of idle time NUMERIC_MIN_VALUE 0 NUMERIC_MAX_VALUE 16384 -@@ -5140,7 +5140,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 10 +@@ -4025,7 +4025,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME THREAD_CONCURRENCY VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Permits the application to give the threads system a hint for the desired number of threads that should be run at the same time.This variable has no effect, and is deprecated. It will be removed in a future release. NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 512 -@@ -5345,15 +5345,15 @@ - READ_ONLY YES - COMMAND_LINE_ARGUMENT REQUIRED - VARIABLE_NAME TMP_DISK_TABLE_SIZE --SESSION_VALUE 18446744073709551615 --GLOBAL_VALUE 18446744073709551615 -+SESSION_VALUE 4294967295 -+GLOBAL_VALUE 4294967295 - GLOBAL_VALUE_ORIGIN COMPILE-TIME --DEFAULT_VALUE 18446744073709551615 -+DEFAULT_VALUE 4294967295 - VARIABLE_SCOPE SESSION +@@ -4178,7 +4178,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Max size for data for an internal temporary on-disk MyISAM or Aria table. NUMERIC_MIN_VALUE 1024 @@ -1310,7 +1360,7 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -5367,7 +5367,7 @@ +@@ -4188,7 +4188,7 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT If an internal in-memory temporary table exceeds this size, MariaDB will automatically convert it to an on-disk MyISAM or Aria table. Same as tmp_table_size. NUMERIC_MIN_VALUE 1024 @@ -1319,7 +1369,7 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -5381,7 +5381,7 @@ +@@ -4198,14 +4198,14 @@ VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Alias for tmp_memory_table_size. If an internal in-memory temporary table exceeds this size, MariaDB will automatically convert it to an on-disk MyISAM or Aria table. NUMERIC_MIN_VALUE 1024 @@ -1328,61 +1378,33 @@ NUMERIC_BLOCK_SIZE 1 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -5392,7 +5392,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 8192 + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME TRANSACTION_ALLOC_BLOCK_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Allocation block size for transactions to be stored in binary log NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 134217728 -@@ -5406,7 +5406,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 4096 +@@ -4215,7 +4215,7 @@ + COMMAND_LINE_ARGUMENT REQUIRED + VARIABLE_NAME TRANSACTION_PREALLOC_SIZE VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Persistent buffer for transactions to be stored in binary log NUMERIC_MIN_VALUE 1024 NUMERIC_MAX_VALUE 134217728 -@@ -5504,7 +5504,7 @@ - GLOBAL_VALUE_ORIGIN COMPILE-TIME - DEFAULT_VALUE 28800 +@@ -4355,7 +4355,7 @@ + COMMAND_LINE_ARGUMENT NULL + VARIABLE_NAME WAIT_TIMEOUT VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of seconds the server waits for activity on a connection before closing it NUMERIC_MIN_VALUE 1 NUMERIC_MAX_VALUE 31536000 -@@ -5609,7 +5609,7 @@ - COMMAND_LINE_ARGUMENT OPTIONAL - VARIABLE_NAME OPEN_FILES_LIMIT - VARIABLE_SCOPE GLOBAL --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT If this is not 0, then mysqld will use this value to reserve file descriptors to use with setrlimit(). If this value is 0 or autoset then mysqld will reserve max_connections*5 or max_connections + table_cache*2 (whichever is larger) number of file descriptors - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 4294967295 -@@ -5622,7 +5622,7 @@ - VARIABLE_TYPE BIGINT UNSIGNED - VARIABLE_COMMENT Sets the internal state of the RAND() generator for replication purposes - NUMERIC_MIN_VALUE 0 --NUMERIC_MAX_VALUE 18446744073709551615 -+NUMERIC_MAX_VALUE 4294967295 - NUMERIC_BLOCK_SIZE 1 - ENUM_VALUE_LIST NULL - READ_ONLY NO -@@ -5632,7 +5632,7 @@ - VARIABLE_TYPE BIGINT UNSIGNED - VARIABLE_COMMENT Sets the internal state of the RAND() generator for replication purposes - NUMERIC_MIN_VALUE 0 --NUMERIC_MAX_VALUE 18446744073709551615 -+NUMERIC_MAX_VALUE 4294967295 - NUMERIC_BLOCK_SIZE 1 - ENUM_VALUE_LIST NULL - READ_ONLY NO -@@ -5727,7 +5727,7 @@ +@@ -4382,7 +4382,7 @@ VARIABLE_NAME LOG_TC_SIZE GLOBAL_VALUE_ORIGIN AUTO VARIABLE_SCOPE GLOBAL diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result 2019-11-06 16:01:57.000000000 +0000 @@ -3,34 +3,16 @@ set pseudo_thread_id=10; set sql_mode=ansi_quotes; set global div_precision_increment=5; -select * from information_schema.system_variables -where variable_name not like 'aria%' and -variable_name not like 'debug%' and +select VARIABLE_NAME,VARIABLE_SCOPE,VARIABLE_TYPE,VARIABLE_COMMENT,NUMERIC_MIN_VALUE,NUMERIC_MAX_VALUE,NUMERIC_BLOCK_SIZE,ENUM_VALUE_LIST,READ_ONLY,COMMAND_LINE_ARGUMENT +from information_schema.system_variables +where variable_name not like 'debug%' and variable_name not like 'wsrep%' and +variable_name not like 's3%' and variable_name not in ( -'in_predicate_conversion_threshold', -'have_openssl', -'have_symlink', -'hostname', -'large_files_support', 'log_tc_size', -'lower_case_file_system', -'lower_case_table_names', -'open_files_limit', -'plugin_maturity', -'rand_seed1', -'rand_seed2', -'system_time_zone', -'version_comment', -'version_source_revision', -'version_compile_machine', 'version_compile_os', -'version_malloc_library', 'version_ssl_library', 'version' +'log_tc_size' ) order by variable_name; VARIABLE_NAME ALTER_ALGORITHM -SESSION_VALUE DEFAULT -GLOBAL_VALUE DEFAULT -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE DEFAULT VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Specify the alter table algorithm @@ -40,11 +22,217 @@ ENUM_VALUE_LIST DEFAULT,COPY,INPLACE,NOCOPY,INSTANT READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL +VARIABLE_NAME ARIA_BLOCK_SIZE +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Block size to be used for Aria index pages. +NUMERIC_MIN_VALUE 1024 +NUMERIC_MAX_VALUE 32768 +NUMERIC_BLOCK_SIZE 1024 +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_CHECKPOINT_INTERVAL +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Interval between tries to do an automatic checkpoints. In seconds; 0 means 'no automatic checkpoints' which makes sense only for testing. +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 4294967295 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_CHECKPOINT_LOG_ACTIVITY +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Number of bytes that the transaction log has to grow between checkpoints before a new checkpoint is written to the log. +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 4294967295 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_ENCRYPT_TABLES +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BOOLEAN +VARIABLE_COMMENT Encrypt tables (only for tables with ROW_FORMAT=PAGE (default) and not FIXED/DYNAMIC) +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST OFF,ON +READ_ONLY NO +COMMAND_LINE_ARGUMENT OPTIONAL +VARIABLE_NAME ARIA_FORCE_START_AFTER_RECOVERY_FAILURES +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Number of consecutive log recovery failures after which logs will be automatically deleted to cure the problem; 0 (the default) disables the feature. +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 255 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_GROUP_COMMIT +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE ENUM +VARIABLE_COMMENT Specifies Aria group commit mode. Possible values are "none" (no group commit), "hard" (with waiting to actual commit), "soft" (no wait for commit (DANGEROUS!!!)) +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST none,hard,soft +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_GROUP_COMMIT_INTERVAL +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Interval between commite in microseconds (1/1000000c). 0 stands for no waiting for other threads to come and do a commit in "hard" mode and no sync()/commit at all in "soft" mode. Option has only an effect if aria_group_commit is used +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 4294967295 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_LOG_FILE_SIZE +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Limit for transaction log size +NUMERIC_MIN_VALUE 8388608 +NUMERIC_MAX_VALUE 4294967295 +NUMERIC_BLOCK_SIZE 8192 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_LOG_PURGE_TYPE +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE ENUM +VARIABLE_COMMENT Specifies how Aria transactional log will be purged +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST immediate,external,at_flush +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_MAX_SORT_FILE_SIZE +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Don't use the fast sort index method to created index if the temporary file would get bigger than this. +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 9223372036854775807 +NUMERIC_BLOCK_SIZE 1048576 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_PAGECACHE_AGE_THRESHOLD +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT This characterizes the number of hits a hot block has to be untouched until it is considered aged enough to be downgraded to a warm block. This specifies the percentage ratio of that number of hits to the total number of blocks in the page cache. +NUMERIC_MIN_VALUE 100 +NUMERIC_MAX_VALUE 18446744073709551615 +NUMERIC_BLOCK_SIZE 100 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_PAGECACHE_BUFFER_SIZE +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT The size of the buffer used for index blocks for Aria tables. Increase this to get better index handling (for all reads and multiple writes) to as much as you can afford. +NUMERIC_MIN_VALUE 131072 +NUMERIC_MAX_VALUE 18446744073709551615 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_PAGECACHE_DIVISION_LIMIT +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT The minimum percentage of warm blocks in key cache +NUMERIC_MIN_VALUE 1 +NUMERIC_MAX_VALUE 100 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_PAGECACHE_FILE_HASH_SIZE +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Number of hash buckets for open and changed files. If you have a lot of Aria files open you should increase this for faster flush of changes. A good value is probably 1/10 of number of possible open Aria files. +NUMERIC_MIN_VALUE 128 +NUMERIC_MAX_VALUE 16384 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_PAGE_CHECKSUM +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BOOLEAN +VARIABLE_COMMENT Maintain page checksums (can be overridden per table with PAGE_CHECKSUM clause in CREATE TABLE) +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST OFF,ON +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_RECOVER_OPTIONS +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE SET +VARIABLE_COMMENT Specifies how corrupted tables should be automatically repaired +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST NORMAL,BACKUP,FORCE,QUICK,OFF +READ_ONLY NO +COMMAND_LINE_ARGUMENT OPTIONAL +VARIABLE_NAME ARIA_REPAIR_THREADS +VARIABLE_SCOPE SESSION +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Number of threads to use when repairing Aria tables. The value of 1 disables parallel repair. +NUMERIC_MIN_VALUE 1 +NUMERIC_MAX_VALUE 128 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_SORT_BUFFER_SIZE +VARIABLE_SCOPE SESSION +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT The buffer that is allocated when sorting the index when doing a REPAIR or when creating indexes with CREATE INDEX or ALTER TABLE. +NUMERIC_MIN_VALUE 4096 +NUMERIC_MAX_VALUE 18446744073709551615 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_STATS_METHOD +VARIABLE_SCOPE SESSION +VARIABLE_TYPE ENUM +VARIABLE_COMMENT Specifies how Aria index statistics collection code should treat NULLs +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST nulls_unequal,nulls_equal,nulls_ignored +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_SYNC_LOG_DIR +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE ENUM +VARIABLE_COMMENT Controls syncing directory after log file growth and new file creation +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST NEVER,NEWFILE,ALWAYS +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME ARIA_USED_FOR_TEMP_TABLES +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BOOLEAN +VARIABLE_COMMENT Whether temporary tables should be MyISAM or Aria +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST OFF,ON +READ_ONLY YES +COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME AUTOCOMMIT -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1, the default, all queries are committed immediately. If set to 0, they are only committed upon a COMMIT statement, or rolled back with a ROLLBACK statement. If autocommit is set to 0, and then changed to 1, all open transactions are immediately committed. @@ -55,10 +243,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME AUTOMATIC_SP_PRIVILEGES -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Creating and dropping stored procedures alters ACLs @@ -69,10 +253,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME AUTO_INCREMENT_INCREMENT -SESSION_VALUE 1 -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 1 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Auto-increment columns are incremented by this @@ -83,10 +263,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME AUTO_INCREMENT_OFFSET -SESSION_VALUE 1 -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Offset added to Auto-increment columns. Used when auto-increment-increment != 1 @@ -97,10 +273,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME BACK_LOG -SESSION_VALUE NULL -GLOBAL_VALUE 80 -GLOBAL_VALUE_ORIGIN AUTO -DEFAULT_VALUE 150 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of outstanding connection requests MariaDB can have. This comes into play when the main MariaDB thread gets very many connection requests in a very short time @@ -111,10 +283,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BASEDIR -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Path to installation directory. All paths are usually resolved relative to this @@ -125,10 +293,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BIG_TABLES -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Old variable, which if set to 1, allows large result sets by saving all temporary sets to disk, avoiding 'table full' errors. No longer needed, as the server now handles this automatically. sql_big_tables is a synonym. @@ -139,10 +303,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME BIND_ADDRESS -SESSION_VALUE NULL -GLOBAL_VALUE 127.0.0.1 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT IP address to bind to. @@ -153,10 +313,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BINLOG_ANNOTATE_ROW_EVENTS -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Tells the master to annotate RBR events with the statement that caused these events @@ -167,10 +323,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME BINLOG_CACHE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 32768 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 32768 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the transactional cache for updates to transactional engines for the binary log. If you often use transactions containing many statements, you can increase this to get more performance @@ -181,10 +333,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BINLOG_CHECKSUM -SESSION_VALUE NULL -GLOBAL_VALUE CRC32 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE CRC32 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT Type of BINLOG_CHECKSUM_ALG. Include checksum for log events in the binary log @@ -195,10 +343,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BINLOG_COMMIT_WAIT_COUNT -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT If non-zero, binlog write will wait at most binlog_commit_wait_usec microseconds for at least this many commits to queue up for group commit to the binlog. This can reduce I/O on the binlog and provide increased opportunity for parallel apply on the slave, but too high a value will decrease commit throughput. @@ -209,10 +353,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BINLOG_COMMIT_WAIT_USEC -SESSION_VALUE NULL -GLOBAL_VALUE 100000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 100000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum time, in microseconds, to wait for more commits to queue up for binlog group commit. Only takes effect if the value of binlog_commit_wait_count is non-zero. @@ -223,10 +363,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BINLOG_DIRECT_NON_TRANSACTIONAL_UPDATES -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Causes updates to non-transactional engines using statement format to be written directly to binary log. Before using this option make sure that there are no dependencies between transactional and non-transactional tables such as in the statement INSERT INTO t_myisam SELECT * FROM t_innodb; otherwise, slaves may diverge from the master. @@ -237,10 +373,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME BINLOG_FILE_CACHE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 16384 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 16384 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of file cache for the binary log @@ -251,10 +383,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BINLOG_FORMAT -SESSION_VALUE MIXED -GLOBAL_VALUE MIXED -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE MIXED VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT What form of binary logging the master will use: either ROW for row-based binary logging, STATEMENT for statement-based binary logging, or MIXED. MIXED is statement-based binary logging except for those statements where only row-based is correct: those which involve user-defined functions (i.e. UDFs) or the UUID() function; for those, row-based binary logging is automatically used. @@ -265,10 +393,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BINLOG_OPTIMIZE_THREAD_SCHEDULING -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Run fast part of group commit in a single thread, to optimize kernel thread scheduling. On by default. Disable to run each transaction in group commit in its own thread, which can be slower at very high concurrency. This option is mostly for testing one algorithm versus the other, and it should not normally be necessary to change it. @@ -279,10 +403,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BINLOG_ROW_IMAGE -SESSION_VALUE FULL -GLOBAL_VALUE FULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE FULL VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Controls whether rows should be logged in 'FULL', 'NOBLOB' or 'MINIMAL' formats. 'FULL', means that all columns in the before and after image are logged. 'NOBLOB', means that mysqld avoids logging blob columns whenever possible (eg, blob column was not changed or is not part of primary key). 'MINIMAL', means that a PK equivalent (PK columns or full row if there is no PK in the table) is logged in the before image, and only changed columns are logged in the after image. (Default: FULL). @@ -293,10 +413,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BINLOG_STMT_CACHE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 32768 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 32768 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the statement cache for updates to non-transactional engines for the binary log. If you often use statements updating a great number of rows, you can increase this to get more performance. @@ -307,10 +423,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME BULK_INSERT_BUFFER_SIZE -SESSION_VALUE 8388608 -GLOBAL_VALUE 8388608 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 8388608 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Size of tree cache used in bulk insert optimisation. Note that this is a limit per thread! @@ -321,10 +433,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME CHARACTER_SETS_DIR -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Directory where character sets are @@ -335,10 +443,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME CHARACTER_SET_CLIENT -SESSION_VALUE latin1 -GLOBAL_VALUE latin1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE latin1 VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The character set for statements that arrive from the client @@ -349,10 +453,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME CHARACTER_SET_CONNECTION -SESSION_VALUE latin1 -GLOBAL_VALUE latin1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE latin1 VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The character set used for literals that do not have a character set introducer and for number-to-string conversion @@ -363,10 +463,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME CHARACTER_SET_DATABASE -SESSION_VALUE latin1 -GLOBAL_VALUE latin1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE latin1 VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The character set used by the default database @@ -377,10 +473,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME CHARACTER_SET_FILESYSTEM -SESSION_VALUE binary -GLOBAL_VALUE binary -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE binary VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The filesystem character set @@ -391,10 +483,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME CHARACTER_SET_RESULTS -SESSION_VALUE latin1 -GLOBAL_VALUE latin1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE latin1 VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The character set used for returning query results to the client @@ -405,10 +493,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME CHARACTER_SET_SERVER -SESSION_VALUE latin1 -GLOBAL_VALUE latin1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE latin1 VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The default character set @@ -419,10 +503,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME CHARACTER_SET_SYSTEM -SESSION_VALUE NULL -GLOBAL_VALUE utf8 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT The character set used by the server for storing identifiers @@ -433,10 +513,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME CHECK_CONSTRAINT_CHECKS -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT check_constraint_checks @@ -447,10 +523,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME COLLATION_CONNECTION -SESSION_VALUE latin1_swedish_ci -GLOBAL_VALUE latin1_swedish_ci -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE latin1_swedish_ci VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The collation of the connection character set @@ -461,10 +533,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME COLLATION_DATABASE -SESSION_VALUE latin1_swedish_ci -GLOBAL_VALUE latin1_swedish_ci -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE latin1_swedish_ci VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The collation of the database character set @@ -475,10 +543,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME COLLATION_SERVER -SESSION_VALUE latin1_swedish_ci -GLOBAL_VALUE latin1_swedish_ci -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE latin1_swedish_ci VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The server default collation @@ -489,10 +553,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME COLUMN_COMPRESSION_THRESHOLD -SESSION_VALUE 100 -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 100 VARIABLE_SCOPE SESSION VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Minimum column data length eligible for compression @@ -503,10 +563,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME COLUMN_COMPRESSION_ZLIB_LEVEL -SESSION_VALUE 6 -GLOBAL_VALUE 6 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 6 VARIABLE_SCOPE SESSION VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT zlib compression level (1 gives best speed, 9 gives best compression) @@ -517,10 +573,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME COLUMN_COMPRESSION_ZLIB_STRATEGY -SESSION_VALUE DEFAULT_STRATEGY -GLOBAL_VALUE DEFAULT_STRATEGY -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE DEFAULT_STRATEGY VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The strategy parameter is used to tune the compression algorithm. Use the value DEFAULT_STRATEGY for normal data, FILTERED for data produced by a filter (or predictor), HUFFMAN_ONLY to force Huffman encoding only (no string match), or RLE to limit match distances to one (run-length encoding). Filtered data consists mostly of small values with a somewhat random distribution. In this case, the compression algorithm is tuned to compress them better. The effect of FILTERED is to force more Huffman coding and less string matching; it is somewhat intermediate between DEFAULT_STRATEGY and HUFFMAN_ONLY. RLE is designed to be almost as fast as HUFFMAN_ONLY, but give better compression for PNG image data. The strategy parameter only affects the compression ratio but not the correctness of the compressed output even if it is not set appropriately. FIXED prevents the use of dynamic Huffman codes, allowing for a simpler decoder for special applications. @@ -531,10 +583,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME COLUMN_COMPRESSION_ZLIB_WRAP -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Generate zlib header and trailer and compute adler32 check value. It can be used with storage engines that don't provide data integrity verification to detect data corruption. @@ -545,10 +593,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME COMPLETION_TYPE -SESSION_VALUE NO_CHAIN -GLOBAL_VALUE NO_CHAIN -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NO_CHAIN VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT The transaction completion type @@ -559,10 +603,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME CONCURRENT_INSERT -SESSION_VALUE NULL -GLOBAL_VALUE AUTO -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE AUTO VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT Use concurrent insert with MyISAM @@ -573,10 +613,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME CONNECT_TIMEOUT -SESSION_VALUE NULL -GLOBAL_VALUE 60 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 10 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of seconds the mysqld server is waiting for a connect packet before responding with 'Bad handshake' @@ -587,10 +623,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME CORE_FILE -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT write a core-file on crashes @@ -601,10 +633,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME DATADIR -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE PATH VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Path to the database root directory @@ -615,10 +643,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DATETIME_FORMAT -SESSION_VALUE NULL -GLOBAL_VALUE %Y-%m-%d %H:%i:%s -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE %Y-%m-%d %H:%i:%s VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The DATETIME format (ignored) @@ -629,10 +653,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DATE_FORMAT -SESSION_VALUE NULL -GLOBAL_VALUE %Y-%m-%d -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE %Y-%m-%d VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The DATE format (ignored) @@ -643,10 +663,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DEADLOCK_SEARCH_DEPTH_LONG -SESSION_VALUE 15 -GLOBAL_VALUE 15 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 15 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Long search depth for the two-step deadlock detection @@ -657,10 +673,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DEADLOCK_SEARCH_DEPTH_SHORT -SESSION_VALUE 4 -GLOBAL_VALUE 4 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 4 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Short search depth for the two-step deadlock detection @@ -671,10 +683,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DEADLOCK_TIMEOUT_LONG -SESSION_VALUE 50000000 -GLOBAL_VALUE 50000000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 50000000 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Long timeout for the two-step deadlock detection (in microseconds) @@ -685,10 +693,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DEADLOCK_TIMEOUT_SHORT -SESSION_VALUE 10000 -GLOBAL_VALUE 10000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 10000 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Short timeout for the two-step deadlock detection (in microseconds) @@ -699,10 +703,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DEFAULT_MASTER_CONNECTION -SESSION_VALUE -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Master connection to use for all slave variables and slave commands @@ -713,10 +713,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME DEFAULT_REGEX_FLAGS -SESSION_VALUE -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE SESSION VARIABLE_TYPE SET VARIABLE_COMMENT Default flags for the regex library @@ -727,10 +723,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DEFAULT_STORAGE_ENGINE -SESSION_VALUE MyISAM -GLOBAL_VALUE MyISAM -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE MyISAM VARIABLE_SCOPE SESSION VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The default storage engine for new tables @@ -741,10 +733,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME DEFAULT_TMP_STORAGE_ENGINE -SESSION_VALUE -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE SESSION VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The default storage engine for user-created temporary tables @@ -755,10 +743,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME DEFAULT_WEEK_FORMAT -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The default week format used by WEEK() functions @@ -769,10 +753,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DELAYED_INSERT_LIMIT -SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 100 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT After inserting delayed_insert_limit rows, the INSERT DELAYED handler will check if there are any SELECT statements pending. If so, it allows these to execute before continuing. @@ -783,10 +763,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DELAYED_INSERT_TIMEOUT -SESSION_VALUE NULL -GLOBAL_VALUE 300 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 300 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT How long a INSERT DELAYED thread should wait for INSERT statements before terminating @@ -797,10 +773,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DELAYED_QUEUE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 1000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT What size queue (in rows) should be allocated for handling INSERT DELAYED. If the queue becomes full, any client that does INSERT DELAYED will wait until there is room in the queue again @@ -811,10 +783,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME DELAY_KEY_WRITE -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT Specifies how MyISAM tables handles CREATE TABLE DELAY_KEY_WRITE. If set to ON, the default, any DELAY KEY WRITEs are honored. The key buffer is then flushed only when the table closes, speeding up writes. MyISAM tables should be automatically checked upon startup in this case, and --external locking should not be used, as it can lead to index corruption. If set to OFF, DELAY KEY WRITEs are ignored, while if set to ALL, all new opened tables are treated as if created with DELAY KEY WRITEs enabled. @@ -825,10 +793,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME DIV_PRECISION_INCREMENT -SESSION_VALUE 4 -GLOBAL_VALUE 5 -GLOBAL_VALUE_ORIGIN SQL -DEFAULT_VALUE 4 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Precision of the result of '/' operator will be increased on that value @@ -839,10 +803,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ENCRYPT_BINLOG -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Encrypt binary logs (including relay logs) @@ -853,10 +813,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME ENCRYPT_TMP_DISK_TABLES -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Encrypt temporary on-disk tables (created as part of query execution) @@ -867,10 +823,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME ENCRYPT_TMP_FILES -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Encrypt temporary files (created for filesort, binary log cache, etc) @@ -881,10 +833,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME ENFORCE_STORAGE_ENGINE -SESSION_VALUE -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE SESSION VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Force the use of a storage engine for new tables @@ -895,10 +843,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME EQ_RANGE_INDEX_DIVE_LIMIT -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The optimizer will use existing index statistics instead of doing index dives for equality ranges if the number of equality ranges for the index is larger than or equal to this number. If set to 0, index dives are always used. @@ -909,10 +853,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ERROR_COUNT -SESSION_VALUE 0 -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of errors that resulted from the last statement that generated messages @@ -923,10 +863,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME EVENT_SCHEDULER -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT Enable the event scheduler. Possible values are ON, OFF, and DISABLED (keep the event scheduler completely deactivated, it cannot be activated run-time) @@ -937,10 +873,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME EXPENSIVE_SUBQUERY_LIMIT -SESSION_VALUE 100 -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 100 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The maximum number of rows a subquery may examine in order to be executed during optimization and used for constant optimization @@ -951,10 +883,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME EXPIRE_LOGS_DAYS -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT If non-zero, binary logs will be purged after expire_logs_days days; possible purges happen at startup and at binary log rotation @@ -965,10 +893,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME EXPLICIT_DEFAULTS_FOR_TIMESTAMP -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT This option causes CREATE TABLE to create all TIMESTAMP columns as NULL with DEFAULT NULL attribute, Without this option, TIMESTAMP columns are NOT NULL and have implicit DEFAULT clauses. @@ -979,10 +903,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME EXTERNAL_USER -SESSION_VALUE -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The external user account used when logging in @@ -993,10 +913,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME EXTRA_MAX_CONNECTIONS -SESSION_VALUE NULL -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of connections on extra-port @@ -1007,10 +923,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME EXTRA_PORT -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Extra port number to use for tcp connections in a one-thread-per-connection manner. 0 means don't use another port @@ -1021,10 +933,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME FLUSH -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Flush MyISAM tables to disk between SQL commands @@ -1035,10 +943,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME FLUSH_TIME -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT A dedicated thread is created to flush all tables at the given interval @@ -1049,10 +953,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME FOREIGN_KEY_CHECKS -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1 (the default) foreign key constraints (including ON UPDATE and ON DELETE behavior) InnoDB tables are checked, while if set to 0, they are not checked. 0 is not recommended for normal use, though it can be useful in situations where you know the data is consistent, but want to reload data in a different order from that that specified by parent/child relationships. Setting this variable to 1 does not retrospectively check for inconsistencies introduced while set to 0. @@ -1063,10 +963,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME FT_BOOLEAN_SYNTAX -SESSION_VALUE NULL -GLOBAL_VALUE + -><()~*:""&| -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE + -><()~*:""&| VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT List of operators for MATCH ... AGAINST ( ... IN BOOLEAN MODE) @@ -1077,10 +973,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME FT_MAX_WORD_LEN -SESSION_VALUE NULL -GLOBAL_VALUE 84 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 84 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The maximum length of the word to be included in a FULLTEXT index. Note: FULLTEXT indexes must be rebuilt after changing this variable @@ -1091,10 +983,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME FT_MIN_WORD_LEN -SESSION_VALUE NULL -GLOBAL_VALUE 4 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 4 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The minimum length of the word to be included in a FULLTEXT index. Note: FULLTEXT indexes must be rebuilt after changing this variable @@ -1105,10 +993,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME FT_QUERY_EXPANSION_LIMIT -SESSION_VALUE NULL -GLOBAL_VALUE 20 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 20 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Number of best matches to use for query expansion @@ -1119,10 +1003,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME FT_STOPWORD_FILE -SESSION_VALUE NULL -GLOBAL_VALUE (built-in) -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Use stopwords from this file instead of built-in list @@ -1133,10 +1013,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME GENERAL_LOG -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Log connections and queries to a table or log file. Defaults logging to a file 'hostname'.log or a table mysql.general_logif --log-output=TABLE is used. @@ -1147,10 +1023,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME GENERAL_LOG_FILE -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Log connections and queries to given file @@ -1161,10 +1033,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME GROUP_CONCAT_MAX_LEN -SESSION_VALUE 1048576 -GLOBAL_VALUE 1048576 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1048576 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The maximum length of the result of function GROUP_CONCAT() @@ -1175,10 +1043,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME GTID_BINLOG_POS -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Last GTID logged to the binary log, per replicationdomain @@ -1189,10 +1053,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME GTID_BINLOG_STATE -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The internal GTID state of the binlog, used to keep track of all GTIDs ever logged to the binlog. @@ -1203,10 +1063,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME GTID_CURRENT_POS -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Current GTID position of the server. Per replication domain, this is either the last GTID replicated by a slave thread, or the GTID logged to the binary log, whichever is most recent. @@ -1217,10 +1073,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME GTID_DOMAIN_ID -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Used with global transaction ID to identify logically independent replication streams. When events can propagate through multiple parallel paths (for example multiple masters), each independent source server must use a distinct domain_id. For simple tree-shaped replication topologies, it can be left at its default, 0. @@ -1231,10 +1083,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME GTID_IGNORE_DUPLICATES -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT When set, different master connections in multi-source replication are allowed to receive and process event groups with the same GTID (when using GTID mode). Only one will be applied, any others will be ignored. Within a given replication domain, just the sequence number will be used to decide whether a given GTID has been already applied; this means it is the responsibility of the user to ensure that GTID sequence numbers are strictly increasing. @@ -1245,10 +1093,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME GTID_POS_AUTO_ENGINES -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT List of engines for which to automatically create a mysql.gtid_slave_pos_ENGINE table, if a transaction using that engine is replicated. This can be used to avoid introducing cross-engine transactions, if engines are used different from that used by table mysql.gtid_slave_pos @@ -1259,10 +1103,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME GTID_SEQ_NO -SESSION_VALUE 0 -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Internal server usage, for replication with global transaction id. When set, next event group logged to the binary log will use this sequence number, not generate a new one, thus allowing to preserve master's GTID in slave's binlog. @@ -1273,10 +1113,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME GTID_SLAVE_POS -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The list of global transaction IDs that were last replicated on the server, one for each replication domain. @@ -1287,10 +1123,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME GTID_STRICT_MODE -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Enforce strict seq_no ordering of events in the binary log. Slave stops with an error if it encounters an event that would cause it to generate an out-of-order binlog if executed. @@ -1301,10 +1133,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME HAVE_COMPRESS -SESSION_VALUE NULL -GLOBAL_VALUE YES -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT If the zlib compression library is accessible to the server, this will be set to YES, otherwise it will be NO. The COMPRESS() and UNCOMPRESS() functions will only be available if set to YES. @@ -1315,10 +1143,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME HAVE_CRYPT -SESSION_VALUE NULL -GLOBAL_VALUE YES -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT If the crypt() system call is available this variable will be set to YES, otherwise it will be set to NO. If set to NO, the ENCRYPT() function cannot be used. @@ -1329,10 +1153,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME HAVE_DYNAMIC_LOADING -SESSION_VALUE NULL -GLOBAL_VALUE YES -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT If the server supports dynamic loading of plugins, will be set to YES, otherwise will be set to NO. @@ -1343,10 +1163,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME HAVE_GEOMETRY -SESSION_VALUE NULL -GLOBAL_VALUE YES -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT If the server supports spatial data types, will be set to YES, otherwise will be set to NO. @@ -1356,11 +1172,17 @@ ENUM_VALUE_LIST NULL READ_ONLY YES COMMAND_LINE_ARGUMENT NULL +VARIABLE_NAME HAVE_OPENSSL +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE VARCHAR +VARIABLE_COMMENT Comparing have_openssl with have_ssl will indicate whether YaSSL or openssl was used. If YaSSL, have_ssl will be YES, but have_openssl will be NO. +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME HAVE_PROFILING -SESSION_VALUE NULL -GLOBAL_VALUE YES -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT If statement profiling is available, will be set to YES, otherwise will be set to NO. See SHOW PROFILES and SHOW PROFILE. @@ -1371,10 +1193,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME HAVE_QUERY_CACHE -SESSION_VALUE NULL -GLOBAL_VALUE YES -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT If the server supports the query cache, will be set to YES, otherwise will be set to NO. @@ -1385,10 +1203,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME HAVE_RTREE_KEYS -SESSION_VALUE NULL -GLOBAL_VALUE YES -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT If RTREE indexes (used for spatial indexes) are available, will be set to YES, otherwise will be set to NO. @@ -1399,10 +1213,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME HAVE_SSL -SESSION_VALUE NULL -GLOBAL_VALUE YES -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT If the server supports secure connections, will be set to YES, otherwise will be set to NO. If set to DISABLED, the server was compiled with TLS support, but was not started with TLS support (see the mysqld options). See also have_openssl. @@ -1412,11 +1222,17 @@ ENUM_VALUE_LIST NULL READ_ONLY YES COMMAND_LINE_ARGUMENT NULL +VARIABLE_NAME HAVE_SYMLINK +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE VARCHAR +VARIABLE_COMMENT If symbolic link support is enabled, will be set to YES, otherwise will be set to NO. Required for the INDEX DIRECTORY and DATA DIRECTORY table options (see CREATE TABLE) and Windows symlink support. Will be set to DISABLED if the server is started with the --skip-symbolic-links option. +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME HISTOGRAM_SIZE -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Number of bytes used for a histogram. If set to 0, no histograms are created by ANALYZE. @@ -1427,10 +1243,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME HISTOGRAM_TYPE -SESSION_VALUE SINGLE_PREC_HB -GLOBAL_VALUE SINGLE_PREC_HB -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE SINGLE_PREC_HB VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Specifies type of the histograms created by ANALYZE. Possible values are: SINGLE_PREC_HB - single precision height-balanced, DOUBLE_PREC_HB - double precision height-balanced. @@ -1440,11 +1252,17 @@ ENUM_VALUE_LIST SINGLE_PREC_HB,DOUBLE_PREC_HB READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME HOSTNAME +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE VARCHAR +VARIABLE_COMMENT Server host name +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME HOST_CACHE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 279 -GLOBAL_VALUE_ORIGIN AUTO -DEFAULT_VALUE 128 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT How many host names should be cached to avoid resolving. @@ -1455,10 +1273,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME IDENTITY -SESSION_VALUE 0 -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Synonym for the last_insert_id variable @@ -1469,10 +1283,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME IDLE_READONLY_TRANSACTION_TIMEOUT -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of seconds the server waits for read-only idle transaction @@ -1483,10 +1293,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME IDLE_TRANSACTION_TIMEOUT -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of seconds the server waits for idle transaction @@ -1497,10 +1303,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME IDLE_WRITE_TRANSACTION_TIMEOUT -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of seconds the server waits for write idle transaction @@ -1511,10 +1313,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME IGNORE_BUILTIN_INNODB -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Disable initialization of builtin InnoDB plugin @@ -1525,10 +1323,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME IGNORE_DB_DIRS -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Specifies a directory to add to the ignore list when collecting database names from the datadir. Put a blank argument to reset the list accumulated so far. @@ -1539,10 +1333,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INIT_CONNECT -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Command(s) that are executed for each new connection (unless the user has SUPER privilege) @@ -1553,10 +1343,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INIT_FILE -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Read SQL commands from this file at startup @@ -1567,10 +1353,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INIT_SLAVE -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Command(s) that are executed by a slave server each time the SQL thread starts @@ -1581,10 +1363,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME INSERT_ID -SESSION_VALUE 0 -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The value to be used by the following INSERT or ALTER TABLE statement when inserting an AUTO_INCREMENT value @@ -1595,10 +1373,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME INTERACTIVE_TIMEOUT -SESSION_VALUE 28800 -GLOBAL_VALUE 28800 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 28800 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of seconds the server waits for activity on an interactive connection before closing it @@ -1608,11 +1382,17 @@ ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME IN_PREDICATE_CONVERSION_THRESHOLD +VARIABLE_SCOPE SESSION +VARIABLE_TYPE INT UNSIGNED +VARIABLE_COMMENT The minimum number of scalar elements in the value list of IN predicate that triggers its conversion to IN subquery. Set to 0 to disable the conversion. +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 4294967295 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME IN_TRANSACTION -SESSION_VALUE 0 -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Whether there is an active transaction @@ -1623,10 +1403,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME JOIN_BUFFER_SIZE -SESSION_VALUE 262144 -GLOBAL_VALUE 262144 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 262144 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the buffer that is used for joins @@ -1637,10 +1413,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME JOIN_BUFFER_SPACE_LIMIT -SESSION_VALUE 2097152 -GLOBAL_VALUE 2097152 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 2097152 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The limit of the space for all join buffers used by a query @@ -1651,10 +1423,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME JOIN_CACHE_LEVEL -SESSION_VALUE 2 -GLOBAL_VALUE 2 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 2 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Controls what join operations can be executed with join buffers. Odd numbers are used for plain join buffers while even numbers are used for linked buffers @@ -1665,10 +1433,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME KEEP_FILES_ON_CREATE -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Don't overwrite stale .MYD and .MYI even if no directory is specified @@ -1679,10 +1443,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME KEY_BUFFER_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 1048576 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 134217728 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the buffer used for index blocks for MyISAM tables. Increase this to get better index handling (for all reads and multiple writes) to as much as you can afford @@ -1693,10 +1453,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME KEY_CACHE_AGE_THRESHOLD -SESSION_VALUE NULL -GLOBAL_VALUE 300 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 300 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT This characterizes the number of hits a hot block has to be untouched until it is considered aged enough to be downgraded to a warm block. This specifies the percentage ratio of that number of hits to the total number of blocks in key cache @@ -1707,10 +1463,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME KEY_CACHE_BLOCK_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 1024 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1024 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The default size of key cache blocks @@ -1721,10 +1473,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME KEY_CACHE_DIVISION_LIMIT -SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 100 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The minimum percentage of warm blocks in key cache @@ -1735,10 +1483,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME KEY_CACHE_FILE_HASH_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 512 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 512 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Number of hash buckets for open and changed files. If you have a lot of MyISAM files open you should increase this for faster flush of changes. A good value is probably 1/10 of number of possible open MyISAM files. @@ -1749,10 +1493,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME KEY_CACHE_SEGMENTS -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of segments in a key cache @@ -1762,11 +1502,17 @@ ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME LARGE_FILES_SUPPORT +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BOOLEAN +VARIABLE_COMMENT Whether mysqld was compiled with options for large file support +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST OFF,ON +READ_ONLY YES +COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LARGE_PAGES -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Enable support for large pages @@ -1777,10 +1523,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LARGE_PAGE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT If large page support is enabled, this shows the size of memory pages @@ -1791,10 +1533,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LAST_GTID -SESSION_VALUE -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The GTID of the last commit (if binlogging was enabled), or the empty string if none. @@ -1805,10 +1543,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LAST_INSERT_ID -SESSION_VALUE 0 -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The value to be returned from LAST_INSERT_ID() @@ -1819,10 +1553,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LC_MESSAGES -SESSION_VALUE en_US -GLOBAL_VALUE en_US -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE en_US VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Set the language used for the error messages @@ -1833,10 +1563,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LC_MESSAGES_DIR -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Directory where error messages are @@ -1847,10 +1573,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LC_TIME_NAMES -SESSION_VALUE en_US -GLOBAL_VALUE en_US -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE en_US VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Set the language used for the month names and the days of the week @@ -1861,10 +1583,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LICENSE -SESSION_VALUE NULL -GLOBAL_VALUE GPL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The type of license the server has @@ -1875,10 +1593,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LOCAL_INFILE -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Enable LOAD DATA LOCAL INFILE @@ -1889,10 +1603,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOCKED_IN_MEMORY -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Whether mysqld was locked in memory with --memlock @@ -1903,10 +1613,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LOCK_WAIT_TIMEOUT -SESSION_VALUE 86400 -GLOBAL_VALUE 86400 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 86400 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Timeout in seconds to wait for a lock before returning an error. @@ -1917,10 +1623,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LOG_BIN -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Whether the binary log is enabled @@ -1931,10 +1633,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LOG_BIN_BASENAME -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The full path of the binary log file names, excluding the extension. @@ -1945,10 +1643,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LOG_BIN_COMPRESS -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Whether the binary log can be compressed @@ -1959,10 +1653,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOG_BIN_COMPRESS_MIN_LEN -SESSION_VALUE NULL -GLOBAL_VALUE 256 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 256 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Minimum length of sql statement(in statement mode) or record(in row mode)that can be compressed. @@ -1973,10 +1663,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOG_BIN_INDEX -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT File that holds the names for last binary log files. @@ -1987,10 +1673,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME LOG_BIN_TRUST_FUNCTION_CREATORS -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to FALSE (the default), then when --log-bin is used, creation of a stored function (or trigger) is allowed only to users having the SUPER privilege and only if this stored function (trigger) may not break binary logging. Note that if ALL connections to this server ALWAYS use row-based binary logging, the security issues do not exist and the binary logging cannot break, so you can safely set this to TRUE @@ -2001,10 +1683,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOG_DISABLED_STATEMENTS -SESSION_VALUE sp -GLOBAL_VALUE sp -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE sp VARIABLE_SCOPE SESSION VARIABLE_TYPE SET VARIABLE_COMMENT Don't log certain types of statements to general log @@ -2015,10 +1693,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LOG_ERROR -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Log errors to file (instead of stdout). If file name is not specified then 'datadir'/'log-basename'.err or the 'pid-file' path with extension .err is used @@ -2029,10 +1703,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOG_OUTPUT -SESSION_VALUE NULL -GLOBAL_VALUE FILE -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE FILE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE SET VARIABLE_COMMENT How logs should be written @@ -2043,10 +1713,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LOG_QUERIES_NOT_USING_INDEXES -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Log queries that are executed without benefit of any index to the slow log if it is open. Same as log_slow_filter='not_using_index' @@ -2057,10 +1723,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOG_SLAVE_UPDATES -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Tells the slave to log the updates from the slave thread to the binary log. You will need to turn it on if you plan to daisy-chain the slaves. @@ -2071,10 +1733,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOG_SLOW_ADMIN_STATEMENTS -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Log slow OPTIMIZE, ANALYZE, ALTER and other administrative statements to the slow log if it is open. Resets or sets the option 'admin' in log_slow_disabled_statements @@ -2085,10 +1743,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOG_SLOW_DISABLED_STATEMENTS -SESSION_VALUE sp -GLOBAL_VALUE sp -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE sp VARIABLE_SCOPE SESSION VARIABLE_TYPE SET VARIABLE_COMMENT Don't log certain types of statements to slow log @@ -2099,10 +1753,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LOG_SLOW_FILTER -SESSION_VALUE admin,filesort,filesort_on_disk,filesort_priority_queue,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk -GLOBAL_VALUE admin,filesort,filesort_on_disk,filesort_priority_queue,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE admin,filesort,filesort_on_disk,filesort_priority_queue,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk VARIABLE_SCOPE SESSION VARIABLE_TYPE SET VARIABLE_COMMENT Log only certain types of queries to the slow log. If variable empty alll kind of queries are logged. All types are bound by slow_query_time, except 'not_using_index' which is always logged if enabled @@ -2113,10 +1763,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LOG_SLOW_RATE_LIMIT -SESSION_VALUE 1 -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Write to slow log every #th slow query. Set to 1 to log everything. Increase it to reduce the size of the slow or the performance impact of slow logging @@ -2127,10 +1773,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LOG_SLOW_SLAVE_STATEMENTS -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Log slow statements executed by slave thread to the slow log if it is open. Resets or sets the option 'slave' in log_slow_disabled_statements @@ -2141,10 +1783,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOG_SLOW_VERBOSITY -SESSION_VALUE -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE SESSION VARIABLE_TYPE SET VARIABLE_COMMENT Verbosity level for the slow log @@ -2155,10 +1793,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME LOG_WARNINGS -SESSION_VALUE 2 -GLOBAL_VALUE 2 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 2 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Log some not critical warnings to the general log file.Value can be between 0 and 11. Higher values mean more verbosity @@ -2169,10 +1803,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LONG_QUERY_TIME -SESSION_VALUE 10.000000 -GLOBAL_VALUE 10.000000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 10.000000 VARIABLE_SCOPE SESSION VARIABLE_TYPE DOUBLE VARIABLE_COMMENT Log all queries that have taken more than long_query_time seconds to execute to the slow query log file. The argument will be treated as a decimal value with microsecond precision @@ -2182,11 +1812,27 @@ ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME LOWER_CASE_FILE_SYSTEM +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BOOLEAN +VARIABLE_COMMENT Case sensitivity of file names on the file system where the data directory is located +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST OFF,ON +READ_ONLY YES +COMMAND_LINE_ARGUMENT NULL +VARIABLE_NAME LOWER_CASE_TABLE_NAMES +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE INT UNSIGNED +VARIABLE_COMMENT If set to 1 table names are stored in lowercase on disk and table names will be case-insensitive. Should be set to 2 if you are using a case insensitive file system +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 2 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LOW_PRIORITY_UPDATES -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT INSERT/DELETE/UPDATE has lower priority than selects @@ -2197,10 +1843,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME MASTER_VERIFY_CHECKSUM -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Force checksum verification of logged events in the binary log before sending them to slaves or printing them in the output of SHOW BINLOG EVENTS @@ -2211,10 +1853,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME MAX_ALLOWED_PACKET -SESSION_VALUE 16777216 -GLOBAL_VALUE 16777216 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 16777216 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Max packet length to send to or receive from the server @@ -2225,10 +1863,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_BINLOG_CACHE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 18446744073709547520 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 18446744073709547520 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Sets the total size of the transactional cache @@ -2239,10 +1873,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_BINLOG_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 1073741824 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1073741824 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Binary log will be rotated automatically when the size exceeds this value. @@ -2253,10 +1883,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_BINLOG_STMT_CACHE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 18446744073709547520 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 18446744073709547520 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Sets the total size of the statement cache @@ -2267,10 +1893,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_CONNECTIONS -SESSION_VALUE NULL -GLOBAL_VALUE 151 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 151 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of simultaneous clients allowed @@ -2281,10 +1903,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_CONNECT_ERRORS -SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 100 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT If there is more than this number of interrupted connections from a host this host will be blocked from further connections @@ -2295,10 +1913,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_DELAYED_THREADS -SESSION_VALUE 20 -GLOBAL_VALUE 20 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 20 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Don't start more than this number of threads to handle INSERT DELAYED statements. If set to zero INSERT DELAYED will be not used @@ -2309,10 +1923,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_DIGEST_LENGTH -SESSION_VALUE NULL -GLOBAL_VALUE 1024 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1024 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum length considered for digest text. @@ -2323,10 +1933,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_ERROR_COUNT -SESSION_VALUE 64 -GLOBAL_VALUE 64 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 64 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Max number of errors/warnings to store for a statement @@ -2337,10 +1943,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_HEAP_TABLE_SIZE -SESSION_VALUE 1048576 -GLOBAL_VALUE 1048576 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 16777216 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Don't allow creation of heap tables bigger than this @@ -2351,10 +1953,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_INSERT_DELAYED_THREADS -SESSION_VALUE 20 -GLOBAL_VALUE 20 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 20 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Don't start more than this number of threads to handle INSERT DELAYED statements. If set to zero INSERT DELAYED will be not used @@ -2365,10 +1963,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME MAX_JOIN_SIZE -SESSION_VALUE 18446744073709551615 -GLOBAL_VALUE 18446744073709551615 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 18446744073709551615 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Joins that are probably going to read more than max_join_size records return an error @@ -2379,10 +1973,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_LENGTH_FOR_SORT_DATA -SESSION_VALUE 1024 -GLOBAL_VALUE 1024 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1024 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Max number of bytes in sorted records @@ -2393,10 +1983,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_LONG_DATA_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 16777216 -GLOBAL_VALUE_ORIGIN AUTO -DEFAULT_VALUE 1048576 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The maximum BLOB length to send to server from mysql_send_long_data API. Deprecated option; use max_allowed_packet instead. @@ -2407,10 +1993,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_PREPARED_STMT_COUNT -SESSION_VALUE NULL -GLOBAL_VALUE 16382 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 16382 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of prepared statements in the server @@ -2421,10 +2003,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_RECURSIVE_ITERATIONS -SESSION_VALUE 4294967295 -GLOBAL_VALUE 4294967295 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 4294967295 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of iterations when executing recursive queries @@ -2435,10 +2013,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME MAX_RELAY_LOG_SIZE -SESSION_VALUE 1073741824 -GLOBAL_VALUE 1073741824 -GLOBAL_VALUE_ORIGIN AUTO -DEFAULT_VALUE 1073741824 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT relay log will be rotated automatically when the size exceeds this value. If 0 at startup, it's set to max_binlog_size @@ -2449,10 +2023,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_SEEKS_FOR_KEY -SESSION_VALUE 4294967295 -GLOBAL_VALUE 4294967295 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 4294967295 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Limit assumed max number of seeks when looking up rows based on a key @@ -2463,10 +2033,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_SESSION_MEM_USED -SESSION_VALUE 9223372036854775807 -GLOBAL_VALUE 9223372036854775807 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 9223372036854775807 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Amount of memory a single user session is allowed to allocate. This limits the value of the session variable MEM_USED @@ -2477,10 +2043,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_SORT_LENGTH -SESSION_VALUE 1024 -GLOBAL_VALUE 1024 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1024 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of bytes to use when sorting BLOB or TEXT values (only the first max_sort_length bytes of each value are used; the rest are ignored) @@ -2491,10 +2053,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_SP_RECURSION_DEPTH -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum stored procedure recursion depth @@ -2505,10 +2063,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME MAX_STATEMENT_TIME -SESSION_VALUE 0.000000 -GLOBAL_VALUE 0.000000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0.000000 VARIABLE_SCOPE SESSION VARIABLE_TYPE DOUBLE VARIABLE_COMMENT A query that has taken more than max_statement_time seconds will be aborted. The argument will be treated as a decimal value with microsecond precision. A value of 0 (default) means no timeout @@ -2519,10 +2073,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_TMP_TABLES -SESSION_VALUE 32 -GLOBAL_VALUE 32 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 32 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Unused, will be removed. @@ -2533,10 +2083,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_USER_CONNECTIONS -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE INT VARIABLE_COMMENT The maximum number of active connections for a single user (0 = no limit) @@ -2547,10 +2093,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MAX_WRITE_LOCK_COUNT -SESSION_VALUE NULL -GLOBAL_VALUE 4294967295 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 4294967295 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT After this many write locks, allow some read locks to run in between @@ -2561,10 +2103,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME METADATA_LOCKS_CACHE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 1024 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1024 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Unused @@ -2575,10 +2113,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME METADATA_LOCKS_HASH_INSTANCES -SESSION_VALUE NULL -GLOBAL_VALUE 8 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 8 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Unused @@ -2589,10 +2123,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MIN_EXAMINED_ROW_LIMIT -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Don't write queries to slow log that examine fewer rows than that @@ -2603,10 +2133,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MRR_BUFFER_SIZE -SESSION_VALUE 262144 -GLOBAL_VALUE 262144 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 262144 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Size of buffer to use when using MRR with range access @@ -2617,10 +2143,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MULTI_RANGE_COUNT -SESSION_VALUE 256 -GLOBAL_VALUE 256 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 256 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Ignored. Use mrr_buffer_size instead @@ -2631,10 +2153,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MYISAM_BLOCK_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 1024 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1024 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Block size to be used for MyISAM index pages @@ -2645,10 +2163,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MYISAM_DATA_POINTER_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 6 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 6 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Default pointer size to be used for MyISAM tables @@ -2659,10 +2173,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MYISAM_MAX_SORT_FILE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 9223372036853727232 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 9223372036853727232 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Don't use the fast sort index method to created index if the temporary file would get bigger than this @@ -2673,10 +2183,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MYISAM_MMAP_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 18446744073709551615 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 18446744073709551615 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Restricts the total memory used for memory mapping of MySQL tables @@ -2687,10 +2193,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MYISAM_RECOVER_OPTIONS -SESSION_VALUE NULL -GLOBAL_VALUE BACKUP,QUICK -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE BACKUP,QUICK VARIABLE_SCOPE GLOBAL VARIABLE_TYPE SET VARIABLE_COMMENT Specifies how corrupted tables should be automatically repaired @@ -2701,10 +2203,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME MYISAM_REPAIR_THREADS -SESSION_VALUE 1 -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT If larger than 1, when repairing a MyISAM table all indexes will be created in parallel, with one thread per index. The value of 1 disables parallel repair @@ -2715,10 +2213,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MYISAM_SORT_BUFFER_SIZE -SESSION_VALUE 134216704 -GLOBAL_VALUE 134216704 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 134216704 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The buffer that is allocated when sorting the index when doing a REPAIR or when creating indexes with CREATE INDEX or ALTER TABLE @@ -2729,10 +2223,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MYISAM_STATS_METHOD -SESSION_VALUE NULLS_UNEQUAL -GLOBAL_VALUE NULLS_UNEQUAL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULLS_UNEQUAL VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Specifies how MyISAM index statistics collection code should treat NULLs. Possible values of name are NULLS_UNEQUAL (default behavior for 4.1 and later), NULLS_EQUAL (emulate 4.0 behavior), and NULLS_IGNORED @@ -2743,10 +2233,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME MYISAM_USE_MMAP -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Use memory mapping for reading and writing MyISAM tables @@ -2757,10 +2243,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NONE VARIABLE_NAME MYSQL56_TEMPORAL_FORMAT -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Use MySQL-5.6 (instead of MariaDB-5.3) format for TIME, DATETIME, TIMESTAMP columns. @@ -2771,10 +2253,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME NET_BUFFER_LENGTH -SESSION_VALUE 16384 -GLOBAL_VALUE 16384 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 16384 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Buffer length for TCP/IP and socket communication @@ -2785,10 +2263,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME NET_READ_TIMEOUT -SESSION_VALUE 30 -GLOBAL_VALUE 30 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 30 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Number of seconds to wait for more data from a connection before aborting the read @@ -2799,10 +2273,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME NET_RETRY_COUNT -SESSION_VALUE 10 -GLOBAL_VALUE 10 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 10 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT If a read on a communication port is interrupted, retry this many times before giving up @@ -2813,10 +2283,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME NET_WRITE_TIMEOUT -SESSION_VALUE 60 -GLOBAL_VALUE 60 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 60 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Number of seconds to wait for a block to be written to a connection before aborting the write @@ -2827,10 +2293,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME OLD -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Use compatible behavior from previous MariaDB version. See also --old-mode @@ -2841,10 +2303,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME OLD_ALTER_TABLE -SESSION_VALUE DEFAULT -GLOBAL_VALUE DEFAULT -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE DEFAULT VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Alias for alter_algorithm. Deprecated. Use --alter-algorithm instead. @@ -2855,10 +2313,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME OLD_MODE -SESSION_VALUE -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE SESSION VARIABLE_TYPE SET VARIABLE_COMMENT Used to emulate old behavior from earlier MariaDB or MySQL versions @@ -2869,10 +2323,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME OLD_PASSWORDS -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Use old password encryption method (needed for 4.0 and older clients) @@ -2882,11 +2332,17 @@ ENUM_VALUE_LIST OFF,ON READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL +VARIABLE_NAME OPEN_FILES_LIMIT +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT If this is not 0, then mysqld will use this value to reserve file descriptors to use with setrlimit(). If this value is 0 or autoset then mysqld will reserve max_connections*5 or max_connections + table_cache*2 (whichever is larger) number of file descriptors +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 4294967295 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME OPTIMIZER_PRUNE_LEVEL -SESSION_VALUE 1 -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Controls the heuristic(s) applied during query optimization to prune less-promising partial plans from the optimizer search space. Meaning: 0 - do not apply any heuristic, thus perform exhaustive search; 1 - prune plans based on number of retrieved rows @@ -2897,10 +2353,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME OPTIMIZER_SEARCH_DEPTH -SESSION_VALUE 62 -GLOBAL_VALUE 62 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 62 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum depth of search performed by the query optimizer. Values larger than the number of relations in a query result in better query plans, but take longer to compile a query. Values smaller than the number of tables in a relation result in faster optimization, but may produce very bad query plans. If set to 0, the system will automatically pick a reasonable value. @@ -2911,10 +2363,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME OPTIMIZER_SELECTIVITY_SAMPLING_LIMIT -SESSION_VALUE 100 -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 100 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Controls number of record samples to check condition selectivity @@ -2925,10 +2373,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME OPTIMIZER_SWITCH -SESSION_VALUE index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on -GLOBAL_VALUE index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on VARIABLE_SCOPE SESSION VARIABLE_TYPE FLAGSET VARIABLE_COMMENT Fine-tune the optimizer behavior @@ -2939,10 +2383,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME OPTIMIZER_USE_CONDITION_SELECTIVITY -SESSION_VALUE 1 -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Controls selectivity of which conditions the optimizer takes into account to calculate cardinality of a partial join when it searches for the best execution plan Meaning: 1 - use selectivity of index backed range conditions to calculate the cardinality of a partial join if the last joined table is accessed by full table scan or an index scan, 2 - use selectivity of index backed range conditions to calculate the cardinality of a partial join in any case, 3 - additionally always use selectivity of range conditions that are not backed by any index to calculate the cardinality of a partial join, 4 - use histograms to calculate selectivity of range conditions that are not backed by any index to calculate the cardinality of a partial join.5 - additionally use selectivity of certain non-range predicates calculated on record samples @@ -2953,10 +2393,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Enable the performance schema. @@ -2967,10 +2403,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME PERFORMANCE_SCHEMA_ACCOUNTS_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of instrumented user@host accounts. Use 0 to disable, -1 for automated sizing. @@ -2981,10 +2413,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_DIGESTS_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 200 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Size of the statement digest. Use 0 to disable, -1 for automated sizing. @@ -2995,10 +2423,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_LONG_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 1000 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Number of rows in EVENTS_STAGES_HISTORY_LONG. Use 0 to disable, -1 for automated sizing. @@ -3009,10 +2433,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 10 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Number of rows per thread in EVENTS_STAGES_HISTORY. Use 0 to disable, -1 for automated sizing. @@ -3023,10 +2443,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_LONG_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 1000 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Number of rows in EVENTS_STATEMENTS_HISTORY_LONG. Use 0 to disable, -1 for automated sizing. @@ -3037,10 +2453,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 10 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Number of rows per thread in EVENTS_STATEMENTS_HISTORY. Use 0 to disable, -1 for automated sizing. @@ -3051,10 +2463,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 10000 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Number of rows in EVENTS_WAITS_HISTORY_LONG. Use 0 to disable, -1 for automated sizing. @@ -3065,10 +2473,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 10 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Number of rows per thread in EVENTS_WAITS_HISTORY. Use 0 to disable, -1 for automated sizing. @@ -3079,10 +2483,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_HOSTS_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of instrumented hosts. Use 0 to disable, -1 for automated sizing. @@ -3093,10 +2493,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_COND_CLASSES -SESSION_VALUE NULL -GLOBAL_VALUE 80 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 80 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of condition instruments. @@ -3107,10 +2503,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_COND_INSTANCES -SESSION_VALUE NULL -GLOBAL_VALUE 1000 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of instrumented condition objects. Use 0 to disable, -1 for automated sizing. @@ -3121,10 +2513,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_DIGEST_LENGTH -SESSION_VALUE NULL -GLOBAL_VALUE 1024 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1024 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum length considered for digest text, when stored in performance_schema tables. @@ -3135,10 +2523,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_FILE_CLASSES -SESSION_VALUE NULL -GLOBAL_VALUE 50 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 50 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of file instruments. @@ -3149,10 +2533,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_FILE_HANDLES -SESSION_VALUE NULL -GLOBAL_VALUE 32768 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 32768 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of opened instrumented files. @@ -3163,10 +2543,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_FILE_INSTANCES -SESSION_VALUE NULL -GLOBAL_VALUE 10000 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of instrumented files. Use 0 to disable, -1 for automated sizing. @@ -3177,10 +2553,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_MUTEX_CLASSES -SESSION_VALUE NULL -GLOBAL_VALUE 200 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 200 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of mutex instruments. @@ -3191,10 +2563,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_MUTEX_INSTANCES -SESSION_VALUE NULL -GLOBAL_VALUE 5000 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of instrumented MUTEX objects. Use 0 to disable, -1 for automated sizing. @@ -3205,10 +2573,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_RWLOCK_CLASSES -SESSION_VALUE NULL -GLOBAL_VALUE 40 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 40 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of rwlock instruments. @@ -3219,10 +2583,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_RWLOCK_INSTANCES -SESSION_VALUE NULL -GLOBAL_VALUE 5000 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of instrumented RWLOCK objects. Use 0 to disable, -1 for automated sizing. @@ -3233,10 +2593,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_SOCKET_CLASSES -SESSION_VALUE NULL -GLOBAL_VALUE 10 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 10 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of socket instruments. @@ -3247,10 +2603,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_SOCKET_INSTANCES -SESSION_VALUE NULL -GLOBAL_VALUE 1000 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of opened instrumented sockets. Use 0 to disable, -1 for automated sizing. @@ -3261,10 +2613,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_STAGE_CLASSES -SESSION_VALUE NULL -GLOBAL_VALUE 160 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 160 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of stage instruments. @@ -3275,10 +2623,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_STATEMENT_CLASSES -SESSION_VALUE NULL -GLOBAL_VALUE 200 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 200 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of statement instruments. @@ -3289,10 +2633,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_TABLE_HANDLES -SESSION_VALUE NULL -GLOBAL_VALUE 1000 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of opened instrumented tables. Use 0 to disable, -1 for automated sizing. @@ -3303,10 +2643,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_TABLE_INSTANCES -SESSION_VALUE NULL -GLOBAL_VALUE 500 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of instrumented tables. Use 0 to disable, -1 for automated sizing. @@ -3317,10 +2653,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_THREAD_CLASSES -SESSION_VALUE NULL -GLOBAL_VALUE 50 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 50 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of thread instruments. @@ -3331,10 +2663,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_MAX_THREAD_INSTANCES -SESSION_VALUE NULL -GLOBAL_VALUE 200 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of instrumented threads. Use 0 to disable, -1 for automated sizing. @@ -3345,10 +2673,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_SESSION_CONNECT_ATTRS_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 2048 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Size of session attribute string buffer per thread. Use 0 to disable, -1 for automated sizing. @@ -3359,10 +2683,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_SETUP_ACTORS_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 100 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of rows in SETUP_ACTORS. @@ -3373,10 +2693,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_SETUP_OBJECTS_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 100 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of rows in SETUP_OBJECTS. @@ -3387,10 +2703,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PERFORMANCE_SCHEMA_USERS_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE -1 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT VARIABLE_COMMENT Maximum number of instrumented users. Use 0 to disable, -1 for automated sizing. @@ -3401,10 +2713,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PID_FILE -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Pid file used by safe_mysqld @@ -3415,10 +2723,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PLUGIN_DIR -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Directory for plugins @@ -3428,11 +2732,17 @@ ENUM_VALUE_LIST NULL READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME PLUGIN_MATURITY +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE ENUM +VARIABLE_COMMENT The lowest desirable plugin maturity. Plugins less mature than that will not be installed or loaded +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST unknown,experimental,alpha,beta,gamma,stable +READ_ONLY YES +COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PORT -SESSION_VALUE NULL -GLOBAL_VALUE MASTER_MYPORT -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Port number to use for connection or 0 to default to, my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default (3306), whatever comes first @@ -3443,10 +2753,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PRELOAD_BUFFER_SIZE -SESSION_VALUE 32768 -GLOBAL_VALUE 32768 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 32768 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the buffer that is allocated when preloading indexes @@ -3457,10 +2763,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PROFILING -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1 (0 is default), statement profiling will be enabled. See SHOW PROFILES and SHOW PROFILE. @@ -3471,10 +2773,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME PROFILING_HISTORY_SIZE -SESSION_VALUE 15 -GLOBAL_VALUE 15 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 15 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Number of statements about which profiling information is maintained. If set to 0, no profiles are stored. See SHOW PROFILES. @@ -3485,10 +2783,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PROGRESS_REPORT_TIME -SESSION_VALUE 5 -GLOBAL_VALUE 5 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 5 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Seconds between sending progress reports to the client for time-consuming statements. Set to 0 to disable progress reporting. @@ -3499,10 +2793,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PROTOCOL_VERSION -SESSION_VALUE NULL -GLOBAL_VALUE 10 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The version of the client/server protocol used by the MariaDB server @@ -3513,10 +2803,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME PROXY_PROTOCOL_NETWORKS -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Enable proxy protocol for these source networks. The syntax is a comma separated list of IPv4 and IPv6 networks. If the network doesn't contain mask, it is considered to be a single host. "*" represents all networks and must the only directive on the line. String "localhost" represents non-TCP local connections (Unix domain socket, Windows named pipe or shared memory). @@ -3527,10 +2813,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME PROXY_USER -SESSION_VALUE -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The proxy user account name used when logging in @@ -3541,10 +2823,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME PSEUDO_SLAVE_MODE -SESSION_VALUE OFF -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT SET pseudo_slave_mode= 0,1 are commands that mysqlbinlog adds to beginning and end of binary log dumps. While zero value indeed disables, the actual enabling of the slave applier execution mode is done implicitly when a Format_description_event is sent through the session. @@ -3555,10 +2833,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME PSEUDO_THREAD_ID -SESSION_VALUE 10 -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT This variable is for internal server use @@ -3569,10 +2843,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME QUERY_ALLOC_BLOCK_SIZE -SESSION_VALUE 16384 -GLOBAL_VALUE 16384 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 16384 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Allocation block size for query parsing and execution @@ -3583,10 +2853,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME QUERY_CACHE_LIMIT -SESSION_VALUE NULL -GLOBAL_VALUE 1048576 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1048576 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Don't cache results that are bigger than this @@ -3597,10 +2863,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME QUERY_CACHE_MIN_RES_UNIT -SESSION_VALUE NULL -GLOBAL_VALUE 4096 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 4096 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The minimum size for blocks allocated by the query cache @@ -3611,10 +2873,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME QUERY_CACHE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 1048576 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1048576 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The memory allocated to store results from old queries @@ -3625,10 +2883,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME QUERY_CACHE_STRIP_COMMENTS -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Strip all comments from a query before storing it in the query cache @@ -3639,10 +2893,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME QUERY_CACHE_TYPE -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT OFF = Don't cache or retrieve results. ON = Cache all results except SELECT SQL_NO_CACHE ... queries. DEMAND = Cache only SELECT SQL_CACHE ... queries @@ -3653,10 +2903,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME QUERY_CACHE_WLOCK_INVALIDATE -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Invalidate queries in query cache on LOCK for write @@ -3667,10 +2913,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME QUERY_PREALLOC_SIZE -SESSION_VALUE 24576 -GLOBAL_VALUE 24576 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 24576 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Persistent buffer for query parsing and execution @@ -3680,11 +2922,27 @@ ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME RAND_SEED1 +VARIABLE_SCOPE SESSION ONLY +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Sets the internal state of the RAND() generator for replication purposes +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 18446744073709551615 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT NULL +VARIABLE_NAME RAND_SEED2 +VARIABLE_SCOPE SESSION ONLY +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT Sets the internal state of the RAND() generator for replication purposes +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 18446744073709551615 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME RANGE_ALLOC_BLOCK_SIZE -SESSION_VALUE 4096 -GLOBAL_VALUE 4096 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 4096 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Allocation block size for storing ranges during optimization @@ -3695,10 +2953,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME READ_BINLOG_SPEED_LIMIT -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum speed(KB/s) to read binlog from master (0 = no limit) @@ -3709,10 +2963,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME READ_BUFFER_SIZE -SESSION_VALUE 131072 -GLOBAL_VALUE 131072 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 131072 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Each thread that does a sequential scan allocates a buffer of this size for each table it scans. If you do many sequential scans, you may want to increase this value @@ -3723,10 +2973,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME READ_ONLY -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Make all non-temporary tables read-only, with the exception for replication (slave) threads and users with the SUPER privilege @@ -3737,10 +2983,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME READ_RND_BUFFER_SIZE -SESSION_VALUE 262144 -GLOBAL_VALUE 262144 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 262144 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT When reading rows in sorted order after a sort, the rows are read through this buffer to avoid a disk seeks @@ -3751,10 +2993,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME RELAY_LOG -SESSION_VALUE NULL -GLOBAL_VALUE mysqld-relay-bin -GLOBAL_VALUE_ORIGIN AUTO -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The location and name to use for relay logs. @@ -3765,10 +3003,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME RELAY_LOG_BASENAME -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The full path of the relay log file names, excluding the extension. @@ -3779,10 +3013,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME RELAY_LOG_INDEX -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The location and name to use for the file that keeps a list of the last relay logs. @@ -3793,10 +3023,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME RELAY_LOG_INFO_FILE -SESSION_VALUE NULL -GLOBAL_VALUE relay-log.info -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The location and name of the file that remembers where the SQL replication thread is in the relay logs. @@ -3807,10 +3033,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME RELAY_LOG_PURGE -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT if disabled - do not purge relay logs. if enabled - purge them as soon as they are no more needed. @@ -3821,10 +3043,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME RELAY_LOG_RECOVERY -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Enables automatic relay log recovery right after the database startup, which means that the IO Thread starts re-fetching from the master right after the last transaction processed. @@ -3835,10 +3053,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME RELAY_LOG_SPACE_LIMIT -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum space to use for all relay logs @@ -3849,10 +3063,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME REPLICATE_ANNOTATE_ROW_EVENTS -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Tells the slave to write annotate rows events received from the master to its own binary log. Ignored if log_slave_updates is not set @@ -3863,10 +3073,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME REPLICATE_DO_DB -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Tell the slave to restrict replication to updates of tables whose names appear in the comma-separated list. For statement-based replication, only the default database (that is, the one selected by USE) is considered, not any explicitly mentioned tables in the query. For row-based replication, the actual names of table(s) being updated are checked. @@ -3877,10 +3083,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME REPLICATE_DO_TABLE -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Tells the slave to restrict replication to tables in the comma-separated list. @@ -3891,10 +3093,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME REPLICATE_EVENTS_MARKED_FOR_SKIP -SESSION_VALUE NULL -GLOBAL_VALUE REPLICATE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE REPLICATE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT Whether the slave should replicate events that were created with @@skip_replication=1 on the master. Default REPLICATE (no events are skipped). Other values are FILTER_ON_SLAVE (events will be sent by the master but ignored by the slave) and FILTER_ON_MASTER (events marked with @@skip_replication=1 will be filtered on the master and never be sent to the slave). @@ -3905,10 +3103,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME REPLICATE_IGNORE_DB -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Tell the slave to restrict replication to updates of tables whose names do not appear in the comma-separated list. For statement-based replication, only the default database (that is, the one selected by USE) is considered, not any explicitly mentioned tables in the query. For row-based replication, the actual names of table(s) being updated are checked. @@ -3919,10 +3113,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME REPLICATE_IGNORE_TABLE -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Tells the slave thread not to replicate any statement that updates the specified table, even if any other tables might be updated by the same statement. @@ -3933,10 +3123,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME REPLICATE_WILD_DO_TABLE -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Tells the slave thread to restrict replication to statements where any of the updated tables match the specified database and table name patterns. @@ -3947,10 +3133,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME REPLICATE_WILD_IGNORE_TABLE -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Tells the slave thread to not replicate to the tables that match the given wildcard pattern. @@ -3961,10 +3143,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME REPORT_HOST -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Hostname or IP of the slave to be reported to the master during slave registration. Will appear in the output of SHOW SLAVE HOSTS. Leave unset if you do not want the slave to register itself with the master. Note that it is not sufficient for the master to simply read the IP of the slave off the socket once the slave connects. Due to NAT and other routing issues, that IP may not be valid for connecting to the slave from the master or other hosts @@ -3975,10 +3153,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME REPORT_PASSWORD -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The account password of the slave to be reported to the master during slave registration @@ -3989,10 +3163,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME REPORT_PORT -SESSION_VALUE NULL -GLOBAL_VALUE MASTER_MYPORT -GLOBAL_VALUE_ORIGIN AUTO -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Port for connecting to slave reported to the master during slave registration. Set it only if the slave is listening on a non-default port or if you have a special tunnel from the master or other clients to the slave. If not sure, leave this option unset @@ -4003,10 +3173,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME REPORT_USER -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The account user name of the slave to be reported to the master during slave registration @@ -4017,10 +3183,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME ROWID_MERGE_BUFF_SIZE -SESSION_VALUE 8388608 -GLOBAL_VALUE 8388608 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 8388608 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The size of the buffers used [NOT] IN evaluation via partial matching @@ -4031,10 +3193,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME RPL_SEMI_SYNC_MASTER_ENABLED -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Enable semi-synchronous replication master (disabled by default). @@ -4045,10 +3203,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME RPL_SEMI_SYNC_MASTER_TIMEOUT -SESSION_VALUE NULL -GLOBAL_VALUE 10000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 10000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The timeout value (in ms) for semi-synchronous replication in the master @@ -4059,10 +3213,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME RPL_SEMI_SYNC_MASTER_TRACE_LEVEL -SESSION_VALUE NULL -GLOBAL_VALUE 32 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 32 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The tracing level for semi-sync replication. @@ -4073,10 +3223,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME RPL_SEMI_SYNC_MASTER_WAIT_NO_SLAVE -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Wait until timeout when no semi-synchronous replication slave available (enabled by default). @@ -4087,10 +3233,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME RPL_SEMI_SYNC_MASTER_WAIT_POINT -SESSION_VALUE NULL -GLOBAL_VALUE AFTER_COMMIT -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE AFTER_COMMIT VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT Should transaction wait for semi-sync ack after having synced binlog, or after having committed in storage engine. @@ -4101,10 +3243,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME RPL_SEMI_SYNC_SLAVE_DELAY_MASTER -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Only write master info file when ack is needed. @@ -4115,10 +3253,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME RPL_SEMI_SYNC_SLAVE_ENABLED -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Enable semi-synchronous replication slave (disabled by default). @@ -4129,10 +3263,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME RPL_SEMI_SYNC_SLAVE_KILL_CONN_TIMEOUT -SESSION_VALUE NULL -GLOBAL_VALUE 5 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 5 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Timeout for the mysql connection used to kill the slave io_thread's connection on master. This timeout comes into play when stop slave is executed. @@ -4143,10 +3273,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME RPL_SEMI_SYNC_SLAVE_TRACE_LEVEL -SESSION_VALUE NULL -GLOBAL_VALUE 32 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 32 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The tracing level for semi-sync replication. @@ -4157,10 +3283,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SECURE_AUTH -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Disallow authentication for accounts that have old (pre-4.1) passwords @@ -4171,10 +3293,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SECURE_FILE_PRIV -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Limit LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE() to files within specified directory @@ -4185,10 +3303,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SECURE_TIMESTAMP -SESSION_VALUE NULL -GLOBAL_VALUE NO -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NO VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT Restricts direct setting of a session timestamp. Possible levels are: YES - timestamp cannot deviate from the system clock, REPLICATION - replication thread can adjust timestamp to match the master's, SUPER - a user with this privilege and a replication thread can adjust timestamp, NO - historical behavior, anyone can modify session timestamp @@ -4199,10 +3313,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SERVER_ID -SESSION_VALUE 1 -GLOBAL_VALUE 1 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 1 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Uniquely identifies the server instance in the community of replication partners @@ -4213,10 +3323,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SESSION_TRACK_SCHEMA -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Track changes to the default schema. @@ -4227,10 +3333,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SESSION_TRACK_STATE_CHANGE -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Track changes to the session state. @@ -4241,10 +3343,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SESSION_TRACK_SYSTEM_VARIABLES -SESSION_VALUE autocommit,character_set_client,character_set_connection,character_set_results,time_zone -GLOBAL_VALUE autocommit,character_set_client,character_set_connection,character_set_results,time_zone -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE autocommit,character_set_client,character_set_connection,character_set_results,time_zone VARIABLE_SCOPE SESSION VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Track changes in registered system variables. @@ -4255,10 +3353,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SESSION_TRACK_TRANSACTION_INFO -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Track changes to the transaction attributes. OFF to disable; STATE to track just transaction state (Is there an active transaction? Does it have any data? etc.); CHARACTERISTICS to track transaction state and report all statements needed to start a transaction withthe same characteristics (isolation level, read only/read write,snapshot - but not any work done / data modified within the transaction). @@ -4269,10 +3363,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SKIP_EXTERNAL_LOCKING -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Don't use system (external) locking @@ -4283,10 +3373,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SKIP_NAME_RESOLVE -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Don't resolve hostnames. All hostnames are IP's or 'localhost'. @@ -4297,10 +3383,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SKIP_NETWORKING -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Don't allow connection with TCP/IP @@ -4311,10 +3393,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SKIP_PARALLEL_REPLICATION -SESSION_VALUE OFF -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set when a transaction is written to the binlog, parallel apply of that transaction will be avoided on a slave where slave_parallel_mode is not "aggressive". Can be used to avoid unnecessary rollback and retry for transactions that are likely to cause a conflict if replicated in parallel. @@ -4325,10 +3403,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SKIP_REPLICATION -SESSION_VALUE OFF -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Changes are logged into the binary log with the @@skip_replication flag set. Such events will not be replicated by slaves that run with --replicate-events-marked-for-skip set different from its default of REPLICATE. See Selectively skipping replication of binlog events for more information. @@ -4339,10 +3413,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SKIP_SHOW_DATABASE -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Don't allow 'SHOW DATABASE' commands @@ -4353,10 +3423,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SLAVE_COMPRESSED_PROTOCOL -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Use compression on master/slave protocol @@ -4367,10 +3433,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SLAVE_DDL_EXEC_MODE -SESSION_VALUE NULL -GLOBAL_VALUE IDEMPOTENT -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE IDEMPOTENT VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT How replication events should be executed. Legal values are STRICT and IDEMPOTENT (default). In IDEMPOTENT mode, replication will not stop for DDL operations that are idempotent. This means that CREATE TABLE is treated as CREATE TABLE OR REPLACE and DROP TABLE is treated as DROP TABLE IF EXISTS. @@ -4381,10 +3443,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SLAVE_DOMAIN_PARALLEL_THREADS -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Maximum number of parallel threads to use on slave for events in a single replication domain. When using multiple domains, this can be used to limit a single domain from grabbing all threads and thus stalling other domains. The default of 0 means to allow a domain to grab as many threads as it wants, up to the value of slave_parallel_threads. @@ -4395,10 +3453,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SLAVE_EXEC_MODE -SESSION_VALUE NULL -GLOBAL_VALUE STRICT -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE STRICT VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT How replication events should be executed. Legal values are STRICT (default) and IDEMPOTENT. In IDEMPOTENT mode, replication will not stop for operations that are idempotent. For example, in row based replication attempts to delete rows that doesn't exist will be ignored. In STRICT mode, replication will stop on any unexpected difference between the master and the slave. @@ -4409,10 +3463,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SLAVE_LOAD_TMPDIR -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN AUTO -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The location where the slave should put its temporary files when replicating a LOAD DATA INFILE command @@ -4423,10 +3473,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SLAVE_MAX_ALLOWED_PACKET -SESSION_VALUE NULL -GLOBAL_VALUE 1073741824 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1073741824 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The maximum packet length to sent successfully from the master to slave. @@ -4437,10 +3483,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SLAVE_NET_TIMEOUT -SESSION_VALUE NULL -GLOBAL_VALUE 120 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 60 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Number of seconds to wait for more data from any master/slave connection before aborting the read @@ -4451,10 +3493,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SLAVE_PARALLEL_MAX_QUEUED -SESSION_VALUE NULL -GLOBAL_VALUE 131072 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 131072 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Limit on how much memory SQL threads should use per parallel replication thread when reading ahead in the relay log looking for opportunities for parallel replication. Only used when --slave-parallel-threads > 0. @@ -4465,10 +3503,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SLAVE_PARALLEL_MODE -SESSION_VALUE NULL -GLOBAL_VALUE conservative -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE conservative VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT Controls what transactions are applied in parallel when using --slave-parallel-threads. Possible values: "optimistic" tries to apply most transactional DML in parallel, and handles any conflicts with rollback and retry. "conservative" limits parallelism in an effort to avoid any conflicts. "aggressive" tries to maximise the parallelism, possibly at the cost of increased conflict rate. "minimal" only parallelizes the commit steps of transactions. "none" disables parallel apply completely. @@ -4479,10 +3513,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SLAVE_PARALLEL_THREADS -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT If non-zero, number of threads to spawn to apply in parallel events on the slave that were group-committed on the master or were logged with GTID in different replication domains. Note that these threads are in addition to the IO and SQL threads, which are always created by a replication slave @@ -4493,10 +3523,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SLAVE_PARALLEL_WORKERS -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Alias for slave_parallel_threads @@ -4507,10 +3533,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SLAVE_RUN_TRIGGERS_FOR_RBR -SESSION_VALUE NULL -GLOBAL_VALUE NO -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NO VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT Modes for how triggers in row-base replication on slave side will be executed. Legal values are NO (default), YES and LOGGING. NO means that trigger for RBR will not be running on slave. YES and LOGGING means that triggers will be running on slave, if there was not triggers running on the master for the statement. LOGGING also means results of that the executed triggers work will be written to the binlog. @@ -4521,10 +3543,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SLAVE_SKIP_ERRORS -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Tells the slave thread to continue replication when a query event returns an error from the provided list @@ -4535,10 +3553,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SLAVE_SQL_VERIFY_CHECKSUM -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Force checksum verification of replication events after reading them from relay log. Note: Events are always checksum-verified by slave on receiving them from the network before writing them to the relay log @@ -4549,10 +3563,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SLAVE_TRANSACTION_RETRIES -SESSION_VALUE NULL -GLOBAL_VALUE 10 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 10 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Number of times the slave SQL thread will retry a transaction in case it failed with a deadlock, elapsed lock wait timeout or listed in slave_transaction_retry_errors, before giving up and stopping @@ -4563,10 +3573,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SLAVE_TRANSACTION_RETRY_ERRORS -SESSION_VALUE NULL -GLOBAL_VALUE 1213,1205 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Tells the slave thread to retry transaction for replication when a query event returns an error from the provided list. Deadlock and elapsed lock wait timeout errors are automatically added to this list @@ -4577,10 +3583,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SLAVE_TRANSACTION_RETRY_INTERVAL -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Interval of the slave SQL thread will retry a transaction in case it failed with a deadlock or elapsed lock wait timeout or listed in slave_transaction_retry_errors @@ -4591,10 +3593,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SLAVE_TYPE_CONVERSIONS -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE SET VARIABLE_COMMENT Set of slave type conversions that are enabled. If the variable is empty, no conversions are allowed and it is expected that the types match exactly @@ -4605,10 +3603,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SLOW_LAUNCH_TIME -SESSION_VALUE NULL -GLOBAL_VALUE 2 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 2 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT If creating the thread takes longer than this value (in seconds), the Slow_launch_threads counter will be incremented @@ -4619,10 +3613,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SLOW_QUERY_LOG -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Log slow queries to a table or log file. Defaults logging to a file 'hostname'-slow.log or a table mysql.slow_log if --log-output=TABLE is used. Must be enabled to activate other slow log options. @@ -4633,10 +3623,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SLOW_QUERY_LOG_FILE -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Log slow queries to given log file. Defaults logging to 'hostname'-slow.log. Must be enabled to activate other slow log options @@ -4647,10 +3633,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SOCKET -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Socket file to use for connection @@ -4661,10 +3643,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SORT_BUFFER_SIZE -SESSION_VALUE 262144 -GLOBAL_VALUE 262144 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 2097152 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Each thread that needs to do a sort allocates a buffer of this size @@ -4675,10 +3653,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SQL_AUTO_IS_NULL -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1, the query SELECT * FROM table_name WHERE auto_increment_column IS NULL will return an auto-increment that has just been successfully inserted, the same as the LAST_INSERT_ID() function. Some ODBC programs make use of this IS NULL comparison. @@ -4689,10 +3663,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SQL_BIG_SELECTS -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 0, MariaDB will not perform large SELECTs. See max_join_size for details. If max_join_size is set to anything but DEFAULT, sql_big_selects is automatically set to 0. If sql_big_selects is again set, max_join_size will be ignored. @@ -4703,10 +3673,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SQL_BUFFER_RESULT -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1 (0 is default), results from SELECT statements are always placed into temporary tables. This can help the server when it takes a long time to send the results to the client by allowing the table locks to be freed early. @@ -4717,10 +3683,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SQL_LOG_BIN -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 0 (1 is the default), no logging to the binary log is done for the client. Only clients with the SUPER privilege can update this variable. Can have unintended consequences if set globally, see SET SQL_LOG_BIN. Starting MariaDB 10.1.7, this variable does not affect the replication of events in a Galera cluster. @@ -4731,10 +3693,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SQL_LOG_OFF -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1 (0 is the default), no logging to the general query log is done for the client. Only clients with the SUPER privilege can update this variable. @@ -4745,10 +3703,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SQL_MODE -SESSION_VALUE ANSI_QUOTES -GLOBAL_VALUE STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION VARIABLE_SCOPE SESSION VARIABLE_TYPE SET VARIABLE_COMMENT Sets the sql mode @@ -4759,10 +3713,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SQL_NOTES -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1, the default, warning_count is incremented each time a Note warning is encountered. If set to 0, Note warnings are not recorded. mysqldump has outputs to set this variable to 0 so that no unnecessary increments occur when data is reloaded. @@ -4773,10 +3723,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SQL_QUOTE_SHOW_CREATE -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1, the default, the server will quote identifiers for SHOW CREATE DATABASE, SHOW CREATE TABLE and SHOW CREATE VIEW statements. Quoting is disabled if set to 0. Enable to ensure replications works when identifiers require quoting. @@ -4787,10 +3733,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SQL_SAFE_UPDATES -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1, UPDATEs and DELETEs need either a key in the WHERE clause, or a LIMIT clause, or else they will aborted. Prevents the common mistake of accidentally deleting or updating every row in a table. @@ -4801,10 +3743,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SQL_SELECT_LIMIT -SESSION_VALUE 18446744073709551615 -GLOBAL_VALUE 18446744073709551615 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 18446744073709551615 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The maximum number of rows to return from SELECT statements @@ -4815,10 +3753,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SQL_SLAVE_SKIP_COUNTER -SESSION_VALUE 0 -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Skip the next N events from the master log @@ -4829,10 +3763,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SQL_WARNINGS -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1, single-row INSERTs will produce a string containing warning information if a warning occurs. @@ -4843,10 +3773,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SSL_CA -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT CA file in PEM format (check OpenSSL docs, implies --ssl) @@ -4857,10 +3783,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SSL_CAPATH -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT CA directory (check OpenSSL docs, implies --ssl) @@ -4871,10 +3793,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SSL_CERT -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT X509 cert in PEM format (implies --ssl) @@ -4885,10 +3803,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SSL_CIPHER -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT SSL cipher to use (implies --ssl) @@ -4899,10 +3813,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SSL_CRL -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT CRL file in PEM format (check OpenSSL docs, implies --ssl) @@ -4913,10 +3823,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SSL_CRLPATH -SESSION_VALUE NULL -GLOBAL_VALUE -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT CRL directory (check OpenSSL docs, implies --ssl) @@ -4927,10 +3833,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SSL_KEY -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT X509 key in PEM format (implies --ssl) @@ -4941,10 +3843,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME STANDARD_COMPLIANT_CTE -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Allow only CTEs compliant to SQL standard @@ -4955,10 +3853,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME STORAGE_ENGINE -SESSION_VALUE MyISAM -GLOBAL_VALUE MyISAM -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE MyISAM VARIABLE_SCOPE SESSION VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Alias for @@default_storage_engine. Deprecated @@ -4969,10 +3863,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME STORED_PROGRAM_CACHE -SESSION_VALUE NULL -GLOBAL_VALUE 256 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 256 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The soft upper limit for number of cached stored routines for one connection. @@ -4983,10 +3873,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME STRICT_PASSWORD_VALIDATION -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT When password validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash) @@ -4997,10 +3883,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SYNC_BINLOG -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Synchronously flush binary log to disk after every #th event. Use 0 (default) to disable synchronous flushing @@ -5011,10 +3893,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SYNC_FRM -SESSION_VALUE NULL -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Sync .frm files to disk on creation @@ -5025,10 +3903,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME SYNC_MASTER_INFO -SESSION_VALUE NULL -GLOBAL_VALUE 10000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 10000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Synchronously flush master info to disk after every #th event. Use 0 to disable synchronous flushing @@ -5039,10 +3913,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SYNC_RELAY_LOG -SESSION_VALUE NULL -GLOBAL_VALUE 10000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 10000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Synchronously flush relay log to disk after every #th event. Use 0 to disable synchronous flushing @@ -5053,10 +3923,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SYNC_RELAY_LOG_INFO -SESSION_VALUE NULL -GLOBAL_VALUE 10000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 10000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Synchronously flush relay log info to disk after every #th transaction. Use 0 to disable synchronous flushing @@ -5066,11 +3932,17 @@ ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME SYSTEM_TIME_ZONE +VARIABLE_SCOPE GLOBAL +VARIABLE_TYPE VARCHAR +VARIABLE_COMMENT The server system time zone +NUMERIC_MIN_VALUE NULL +NUMERIC_MAX_VALUE NULL +NUMERIC_BLOCK_SIZE NULL +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME SYSTEM_VERSIONING_ALTER_HISTORY -SESSION_VALUE ERROR -GLOBAL_VALUE ERROR -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ERROR VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Versioning ALTER TABLE mode. ERROR: Fail ALTER with error; KEEP: Keep historical system rows and subject them to ALTER @@ -5081,10 +3953,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME SYSTEM_VERSIONING_ASOF -SESSION_VALUE DEFAULT -GLOBAL_VALUE DEFAULT -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE DEFAULT VARIABLE_SCOPE SESSION VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Default value for the FOR SYSTEM_TIME AS OF clause @@ -5095,10 +3963,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME TABLE_DEFINITION_CACHE -SESSION_VALUE NULL -GLOBAL_VALUE 400 -GLOBAL_VALUE_ORIGIN AUTO -DEFAULT_VALUE 400 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of cached table definitions @@ -5109,10 +3973,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TABLE_OPEN_CACHE -SESSION_VALUE NULL -GLOBAL_VALUE 100 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 2000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The number of cached open tables @@ -5123,10 +3983,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TABLE_OPEN_CACHE_INSTANCES -SESSION_VALUE NULL -GLOBAL_VALUE 8 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 8 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum number of table cache instances @@ -5137,10 +3993,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TCP_KEEPALIVE_INTERVAL -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT VARIABLE_COMMENT The interval, in seconds, between when successive keep-alive packets are sent if no acknowledgement is received.If set to 0, system dependent default is used. @@ -5151,10 +4003,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TCP_KEEPALIVE_PROBES -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT VARIABLE_COMMENT The number of unacknowledged probes to send before considering the connection dead and notifying the application layer.If set to 0, system dependent default is used. @@ -5165,10 +4013,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TCP_KEEPALIVE_TIME -SESSION_VALUE NULL -GLOBAL_VALUE 0 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT VARIABLE_COMMENT Timeout, in milliseconds, with no activity until the first TCP keep-alive packet is sent.If set to 0, system dependent default is used. @@ -5179,10 +4023,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME THREAD_CACHE_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 151 -GLOBAL_VALUE_ORIGIN AUTO -DEFAULT_VALUE 256 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT How many threads we should keep in a cache for reuse. These are freed after 5 minutes of idle time @@ -5193,10 +4033,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME THREAD_CONCURRENCY -SESSION_VALUE NULL -GLOBAL_VALUE 10 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 10 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Permits the application to give the threads system a hint for the desired number of threads that should be run at the same time.This variable has no effect, and is deprecated. It will be removed in a future release. @@ -5207,10 +4043,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME THREAD_HANDLING -SESSION_VALUE NULL -GLOBAL_VALUE one-thread-per-connection -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE one-thread-per-connection VARIABLE_SCOPE GLOBAL VARIABLE_TYPE ENUM VARIABLE_COMMENT Define threads usage for handling queries @@ -5221,10 +4053,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME THREAD_POOL_IDLE_TIMEOUT -SESSION_VALUE NULL -GLOBAL_VALUE 60 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 60 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Timeout in seconds for an idle thread in the thread pool.Worker thread will be shut down after timeout @@ -5235,10 +4063,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME THREAD_POOL_MAX_THREADS -SESSION_VALUE NULL -GLOBAL_VALUE 65536 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 65536 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum allowed number of worker threads in the thread pool @@ -5249,10 +4073,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME THREAD_POOL_OVERSUBSCRIBE -SESSION_VALUE NULL -GLOBAL_VALUE 3 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 3 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT How many additional active worker threads in a group are allowed. @@ -5263,10 +4083,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME THREAD_POOL_PRIORITY -SESSION_VALUE auto -GLOBAL_VALUE auto -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE auto VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Threadpool priority. High priority connections usually start executing earlier than low priority.If priority set to 'auto', the the actual priority(low or high) is determined based on whether or not connection is inside transaction. @@ -5277,10 +4093,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME THREAD_POOL_PRIO_KICKUP_TIMER -SESSION_VALUE NULL -GLOBAL_VALUE 1000 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 1000 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT The number of milliseconds before a dequeued low-priority statement is moved to the high-priority queue @@ -5291,10 +4103,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME THREAD_POOL_SIZE -SESSION_VALUE NULL -GLOBAL_VALUE 4 -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE 8 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Number of thread groups in the pool. This parameter is roughly equivalent to maximum number of concurrently executing threads (threads in a waiting state do not count as executing). @@ -5305,10 +4113,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME THREAD_POOL_STALL_LIMIT -SESSION_VALUE NULL -GLOBAL_VALUE 500 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 500 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE INT UNSIGNED VARIABLE_COMMENT Maximum query execution time in milliseconds,before an executing non-yielding thread is considered stalled.If a worker thread is stalled, additional worker thread may be created to handle remaining clients. @@ -5319,10 +4123,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME THREAD_STACK -SESSION_VALUE NULL -GLOBAL_VALUE 299008 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 299008 VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT The stack size for each thread @@ -5333,10 +4133,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TIMED_MUTEXES -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Specify whether to time mutexes. Deprecated, has no effect. @@ -5347,10 +4143,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME TIMESTAMP -SESSION_VALUE 1409578823.000000 -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 0.000000 VARIABLE_SCOPE SESSION ONLY VARIABLE_TYPE DOUBLE VARIABLE_COMMENT Set the time for this client @@ -5361,10 +4153,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME TIME_FORMAT -SESSION_VALUE NULL -GLOBAL_VALUE %H:%i:%s -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE %H:%i:%s VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The TIME format (ignored) @@ -5375,10 +4163,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TIME_ZONE -SESSION_VALUE +00:00 -GLOBAL_VALUE SYSTEM -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE SYSTEM VARIABLE_SCOPE SESSION VARIABLE_TYPE VARCHAR VARIABLE_COMMENT The current time zone, used to initialize the time zone for a client when it connects. Set to SYSTEM by default, in which the client uses the system time zone value. @@ -5389,10 +4173,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME TMPDIR -SESSION_VALUE NULL -GLOBAL_VALUE PATH -GLOBAL_VALUE_ORIGIN CONFIG -DEFAULT_VALUE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR VARIABLE_COMMENT Path for temporary files. Several paths may be specified, separated by a colon (:), in this case they are used in a round-robin fashion @@ -5403,10 +4183,6 @@ READ_ONLY YES COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TMP_DISK_TABLE_SIZE -SESSION_VALUE 18446744073709551615 -GLOBAL_VALUE 18446744073709551615 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 18446744073709551615 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Max size for data for an internal temporary on-disk MyISAM or Aria table. @@ -5417,10 +4193,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TMP_MEMORY_TABLE_SIZE -SESSION_VALUE 16777216 -GLOBAL_VALUE 16777216 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 16777216 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT If an internal in-memory temporary table exceeds this size, MariaDB will automatically convert it to an on-disk MyISAM or Aria table. Same as tmp_table_size. @@ -5431,10 +4203,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TMP_TABLE_SIZE -SESSION_VALUE 16777216 -GLOBAL_VALUE 16777216 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 16777216 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Alias for tmp_memory_table_size. If an internal in-memory temporary table exceeds this size, MariaDB will automatically convert it to an on-disk MyISAM or Aria table. @@ -5445,10 +4213,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TRANSACTION_ALLOC_BLOCK_SIZE -SESSION_VALUE 8192 -GLOBAL_VALUE 8192 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 8192 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Allocation block size for transactions to be stored in binary log @@ -5459,10 +4223,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TRANSACTION_PREALLOC_SIZE -SESSION_VALUE 4096 -GLOBAL_VALUE 4096 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 4096 VARIABLE_SCOPE SESSION VARIABLE_TYPE BIGINT UNSIGNED VARIABLE_COMMENT Persistent buffer for transactions to be stored in binary log @@ -5473,10 +4233,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME TX_ISOLATION -SESSION_VALUE REPEATABLE-READ -GLOBAL_VALUE REPEATABLE-READ -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE REPEATABLE-READ VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Default transaction isolation level @@ -5487,10 +4243,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME TX_READ_ONLY -SESSION_VALUE OFF -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Default transaction access mode. If set to OFF, the default, access is read/write. If set to ON, access is read-only. The SET TRANSACTION statement can also change the value of this variable. See SET TRANSACTION and START TRANSACTION. @@ -5501,10 +4253,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME UNIQUE_CHECKS -SESSION_VALUE ON -GLOBAL_VALUE ON -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE ON VARIABLE_SCOPE SESSION VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT If set to 1, the default, secondary indexes in InnoDB tables are performed. If set to 0, storage engines can (but are not required to) assume that duplicate keys are not present in input data. Set to 0 to speed up imports of large tables to InnoDB. The storage engine will still issue a duplicate key error if it detects one, even if set to 0. @@ -5515,10 +4263,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME UPDATABLE_VIEWS_WITH_LIMIT -SESSION_VALUE YES -GLOBAL_VALUE YES -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE YES VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT YES = Don't issue an error message (warning only) if a VIEW without presence of a key of the underlying table is used in queries with a LIMIT clause for updating. NO = Prohibit update of a VIEW, which does not contain a key of the underlying table and the query uses a LIMIT clause (usually get from GUI tools) @@ -5529,10 +4273,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED VARIABLE_NAME USERSTAT -SESSION_VALUE NULL -GLOBAL_VALUE OFF -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE OFF VARIABLE_SCOPE GLOBAL VARIABLE_TYPE BOOLEAN VARIABLE_COMMENT Enables statistics gathering for USER_STATISTICS, CLIENT_STATISTICS, INDEX_STATISTICS and TABLE_STATISTICS tables in the INFORMATION_SCHEMA @@ -5543,10 +4283,6 @@ READ_ONLY NO COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME USE_STAT_TABLES -SESSION_VALUE NEVER -GLOBAL_VALUE NEVER -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NEVER VARIABLE_SCOPE SESSION VARIABLE_TYPE ENUM VARIABLE_COMMENT Specifies how to use system statistics tables @@ -5556,155 +4292,6 @@ ENUM_VALUE_LIST NEVER,COMPLEMENTARY,PREFERABLY READ_ONLY NO COMMAND_LINE_ARGUMENT REQUIRED -VARIABLE_NAME WAIT_TIMEOUT -SESSION_VALUE 28800 -GLOBAL_VALUE 28800 -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE 28800 -VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED -VARIABLE_COMMENT The number of seconds the server waits for activity on a connection before closing it -NUMERIC_MIN_VALUE 1 -NUMERIC_MAX_VALUE 31536000 -NUMERIC_BLOCK_SIZE 1 -ENUM_VALUE_LIST NULL -READ_ONLY NO -COMMAND_LINE_ARGUMENT REQUIRED -VARIABLE_NAME WARNING_COUNT -SESSION_VALUE 0 -GLOBAL_VALUE NULL -GLOBAL_VALUE_ORIGIN COMPILE-TIME -DEFAULT_VALUE NULL -VARIABLE_SCOPE SESSION ONLY -VARIABLE_TYPE BIGINT UNSIGNED -VARIABLE_COMMENT The number of errors, warnings, and notes that resulted from the last statement that generated messages -NUMERIC_MIN_VALUE 0 -NUMERIC_MAX_VALUE 18446744073709551615 -NUMERIC_BLOCK_SIZE 1 -ENUM_VALUE_LIST NULL -READ_ONLY YES -COMMAND_LINE_ARGUMENT NULL -select VARIABLE_NAME, VARIABLE_SCOPE, VARIABLE_TYPE, VARIABLE_COMMENT, -NUMERIC_MIN_VALUE, NUMERIC_MAX_VALUE, NUMERIC_BLOCK_SIZE, -ENUM_VALUE_LIST, READ_ONLY, COMMAND_LINE_ARGUMENT -from information_schema.system_variables -where variable_name in ( -'have_openssl', -'have_symlink', -'hostname', -'large_files_support', -'lower_case_file_system', -'lower_case_table_names', -'open_files_limit', -'rand_seed1', -'rand_seed2', -'system_time_zone', -'version_comment', -'version_source_revision', -'version_compile_machine', 'version_compile_os', -'version_malloc_library', 'version_ssl_library', 'version' - ) -order by variable_name; -VARIABLE_NAME HAVE_OPENSSL -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE VARCHAR -VARIABLE_COMMENT Comparing have_openssl with have_ssl will indicate whether YaSSL or openssl was used. If YaSSL, have_ssl will be YES, but have_openssl will be NO. -NUMERIC_MIN_VALUE NULL -NUMERIC_MAX_VALUE NULL -NUMERIC_BLOCK_SIZE NULL -ENUM_VALUE_LIST NULL -READ_ONLY YES -COMMAND_LINE_ARGUMENT NULL -VARIABLE_NAME HAVE_SYMLINK -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE VARCHAR -VARIABLE_COMMENT If symbolic link support is enabled, will be set to YES, otherwise will be set to NO. Required for the INDEX DIRECTORY and DATA DIRECTORY table options (see CREATE TABLE) and Windows symlink support. Will be set to DISABLED if the server is started with the --skip-symbolic-links option. -NUMERIC_MIN_VALUE NULL -NUMERIC_MAX_VALUE NULL -NUMERIC_BLOCK_SIZE NULL -ENUM_VALUE_LIST NULL -READ_ONLY YES -COMMAND_LINE_ARGUMENT NULL -VARIABLE_NAME HOSTNAME -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE VARCHAR -VARIABLE_COMMENT Server host name -NUMERIC_MIN_VALUE NULL -NUMERIC_MAX_VALUE NULL -NUMERIC_BLOCK_SIZE NULL -ENUM_VALUE_LIST NULL -READ_ONLY YES -COMMAND_LINE_ARGUMENT NULL -VARIABLE_NAME LARGE_FILES_SUPPORT -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BOOLEAN -VARIABLE_COMMENT Whether mysqld was compiled with options for large file support -NUMERIC_MIN_VALUE NULL -NUMERIC_MAX_VALUE NULL -NUMERIC_BLOCK_SIZE NULL -ENUM_VALUE_LIST OFF,ON -READ_ONLY YES -COMMAND_LINE_ARGUMENT NULL -VARIABLE_NAME LOWER_CASE_FILE_SYSTEM -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BOOLEAN -VARIABLE_COMMENT Case sensitivity of file names on the file system where the data directory is located -NUMERIC_MIN_VALUE NULL -NUMERIC_MAX_VALUE NULL -NUMERIC_BLOCK_SIZE NULL -ENUM_VALUE_LIST OFF,ON -READ_ONLY YES -COMMAND_LINE_ARGUMENT NULL -VARIABLE_NAME LOWER_CASE_TABLE_NAMES -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE INT UNSIGNED -VARIABLE_COMMENT If set to 1 table names are stored in lowercase on disk and table names will be case-insensitive. Should be set to 2 if you are using a case insensitive file system -NUMERIC_MIN_VALUE 0 -NUMERIC_MAX_VALUE 2 -NUMERIC_BLOCK_SIZE 1 -ENUM_VALUE_LIST NULL -READ_ONLY YES -COMMAND_LINE_ARGUMENT OPTIONAL -VARIABLE_NAME OPEN_FILES_LIMIT -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE BIGINT UNSIGNED -VARIABLE_COMMENT If this is not 0, then mysqld will use this value to reserve file descriptors to use with setrlimit(). If this value is 0 or autoset then mysqld will reserve max_connections*5 or max_connections + table_cache*2 (whichever is larger) number of file descriptors -NUMERIC_MIN_VALUE 0 -NUMERIC_MAX_VALUE 4294967295 -NUMERIC_BLOCK_SIZE 1 -ENUM_VALUE_LIST NULL -READ_ONLY YES -COMMAND_LINE_ARGUMENT REQUIRED -VARIABLE_NAME RAND_SEED1 -VARIABLE_SCOPE SESSION ONLY -VARIABLE_TYPE BIGINT UNSIGNED -VARIABLE_COMMENT Sets the internal state of the RAND() generator for replication purposes -NUMERIC_MIN_VALUE 0 -NUMERIC_MAX_VALUE 18446744073709551615 -NUMERIC_BLOCK_SIZE 1 -ENUM_VALUE_LIST NULL -READ_ONLY NO -COMMAND_LINE_ARGUMENT NULL -VARIABLE_NAME RAND_SEED2 -VARIABLE_SCOPE SESSION ONLY -VARIABLE_TYPE BIGINT UNSIGNED -VARIABLE_COMMENT Sets the internal state of the RAND() generator for replication purposes -NUMERIC_MIN_VALUE 0 -NUMERIC_MAX_VALUE 18446744073709551615 -NUMERIC_BLOCK_SIZE 1 -ENUM_VALUE_LIST NULL -READ_ONLY NO -COMMAND_LINE_ARGUMENT NULL -VARIABLE_NAME SYSTEM_TIME_ZONE -VARIABLE_SCOPE GLOBAL -VARIABLE_TYPE VARCHAR -VARIABLE_COMMENT The server system time zone -NUMERIC_MIN_VALUE NULL -NUMERIC_MAX_VALUE NULL -NUMERIC_BLOCK_SIZE NULL -ENUM_VALUE_LIST NULL -READ_ONLY YES -COMMAND_LINE_ARGUMENT NULL VARIABLE_NAME VERSION VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR @@ -5775,8 +4362,27 @@ ENUM_VALUE_LIST NULL READ_ONLY YES COMMAND_LINE_ARGUMENT NULL -select VARIABLE_NAME, GLOBAL_VALUE_ORIGIN, VARIABLE_SCOPE, VARIABLE_TYPE, -VARIABLE_COMMENT, ENUM_VALUE_LIST, READ_ONLY, COMMAND_LINE_ARGUMENT +VARIABLE_NAME WAIT_TIMEOUT +VARIABLE_SCOPE SESSION +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT The number of seconds the server waits for activity on a connection before closing it +NUMERIC_MIN_VALUE 1 +NUMERIC_MAX_VALUE 31536000 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY NO +COMMAND_LINE_ARGUMENT REQUIRED +VARIABLE_NAME WARNING_COUNT +VARIABLE_SCOPE SESSION ONLY +VARIABLE_TYPE BIGINT UNSIGNED +VARIABLE_COMMENT The number of errors, warnings, and notes that resulted from the last statement that generated messages +NUMERIC_MIN_VALUE 0 +NUMERIC_MAX_VALUE 18446744073709551615 +NUMERIC_BLOCK_SIZE 1 +ENUM_VALUE_LIST NULL +READ_ONLY YES +COMMAND_LINE_ARGUMENT NULL +select VARIABLE_NAME, GLOBAL_VALUE_ORIGIN, VARIABLE_SCOPE, VARIABLE_TYPE, VARIABLE_COMMENT, ENUM_VALUE_LIST, READ_ONLY, COMMAND_LINE_ARGUMENT from information_schema.system_variables where variable_name in ( 'log_tc_size' diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/table_definition_cache_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/table_definition_cache_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/table_definition_cache_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/table_definition_cache_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,19 +1,11 @@ SET @start_value = @@global.table_definition_cache; -SELECT @start_value; -@start_value -400 '#--------------------FN_DYNVARS_019_01------------------------#' SET @@global.table_definition_cache = 100; Warnings: Warning 1292 Truncated incorrect table_definition_cache value: '100' SET @@global.table_definition_cache = DEFAULT; -SELECT @@global.table_definition_cache; -@@global.table_definition_cache -400 -'#---------------------FN_DYNVARS_019_02-------------------------#' -SET @@global.table_definition_cache = DEFAULT; -SELECT @@global.table_definition_cache = 400; -@@global.table_definition_cache = 400 +SELECT @@global.table_definition_cache > 0; +@@global.table_definition_cache > 0 1 '#--------------------FN_DYNVARS_019_03------------------------#' SET @@global.table_definition_cache = 1; @@ -104,6 +96,3 @@ SELECT table_definition_cache = @@session.table_definition_cache; ERROR 42S22: Unknown column 'table_definition_cache' in 'field list' SET @@global.table_definition_cache = @start_value; -SELECT @@global.table_definition_cache; -@@global.table_definition_cache -400 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/table_open_cache_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/table_open_cache_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/table_open_cache_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/table_open_cache_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,18 +1,9 @@ SET @start_value = @@global.table_open_cache ; -SELECT @start_value; -@start_value -421 -'#--------------------FN_DYNVARS_001_01------------------------#' -SET @@global.table_open_cache = 99; -SET @@global.table_open_cache = DeFAULT; -SELECT @@global.table_open_cache; -@@global.table_open_cache -2000 '#---------------------FN_DYNVARS_001_02-------------------------#' SET @@global.table_open_cache = Default; -SELECT @@global.table_open_cache = 400; -@@global.table_open_cache = 400 -0 +SELECT @@global.table_open_cache > 0; +@@global.table_open_cache > 0 +1 '#--------------------FN_DYNVARS_001_03------------------------#' SET @@global.table_open_cache = 8; Warnings: @@ -106,6 +97,3 @@ SELECT table_open_cache = @@session.table_open_cache ; ERROR 42S22: Unknown column 'table_open_cache' in 'field list' SET @@global.table_open_cache = @start_value; -SELECT @@global.table_open_cache ; -@@global.table_open_cache -421 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/userstat_basic.result mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/userstat_basic.result --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/r/userstat_basic.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/r/userstat_basic.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,9 +1,10 @@ SET @start_global_value = @@global.userstat; -select @@global.userstat; -@@global.userstat -0 +select @@global.userstat = 0 or @@global.userstat = 1; +@@global.userstat = 0 or @@global.userstat = 1 +1 select @@session.userstat; ERROR HY000: Variable 'userstat' is a GLOBAL variable +SET @@global.userstat=0; show global variables like 'userstat'; Variable_name Value userstat OFF diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/aria_pagecache_buffer_size_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/aria_pagecache_buffer_size_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/aria_pagecache_buffer_size_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/aria_pagecache_buffer_size_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -4,12 +4,16 @@ # # show the global and session values; # -select @@global.aria_pagecache_buffer_size; +select @@global.aria_pagecache_buffer_size > 0; --error ER_INCORRECT_GLOBAL_LOCAL_VAR select @@session.aria_pagecache_buffer_size; +--replace_column 2 # show global variables like 'aria_pagecache_buffer_size'; +--replace_column 2 # show session variables like 'aria_pagecache_buffer_size'; +--replace_column 2 # select * from information_schema.global_variables where variable_name='aria_pagecache_buffer_size'; +--replace_column 2 # select * from information_schema.session_variables where variable_name='aria_pagecache_buffer_size'; # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/aria_recover_options_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/aria_recover_options_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/aria_recover_options_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/aria_recover_options_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,6 +2,7 @@ --source include/have_maria.inc SET @start_global_value = @@global.aria_recover_options; +set @@global.aria_recover_options=default; # # exists as global only diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/binlog_cache_size_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/binlog_cache_size_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/binlog_cache_size_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/binlog_cache_size_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,27 +1,27 @@ -################# mysql-test\t\binlog_cache_size_basic.test #################### -# # -# Variable Name: binlog_cache_size # -# Scope: GLOBAL # -# Access Type: Dynamic # -# Data Type: Numeric # -# Default Value: 32768 # -# Range: 4096 - 4294967295 # -# # -# # -# Creation Date: 2008-04-28 # -# Author: Salman Rawala/Horst Hunger # -# # -# Description: Test Cases of Dynamic System Variable "binlog_cache_size" # -# that checks behavior of this variable in the following ways # -# * Default Value # -# * Valid & Invalid values # -# * Scope & Access method # -# * Data Integrity . # -# # -# Reference: http://dev.mysql.com/doc/refman/5.1/en/ # -# server-system-variables.html#option_mysqld_binlog_cache_size # -# # -################################################################################ +################ mysql-test\t\binlog_cache_size_basic.test #################### + # +# Variable Name: binlog_cache_size # +# Scope: GLOBAL # +# Access Type: Dynamic # +# Data Type: Numeric # +# Default Value: 32768 # +# Range: 4096 - 4294967295 # +# # +# # +# Creation Date: 2008-04-28 # +# Author: Salman Rawala/Horst Hunger # +# # +# Description: Test Cases of Dynamic System Variable "binlog_cache_size" # +# that checks behavior of this variable in the following ways # +# * Default Value # +# * Valid & Invalid values # +# * Scope & Access method # +# * Data Integrity . # +# # +# Reference: http://dev.mysql.com/doc/refman/5.1/en/ # +# server-system-variables.html#option_mysqld_binlog_cache_size # +# # +############################################################################### ################################################################# # START OF binlog_cache_size TESTS # @@ -32,7 +32,8 @@ ######################################################################### SET @start_value = @@global.binlog_cache_size; -SELECT @start_value; +set @@global.binlog_cache_size= default; +SELECT @@global.binlog_cache_size; --echo '#--------------------FN_DYNVARS_006_01------------------------#' ######################################################################### @@ -49,7 +50,7 @@ # Verify default value of variable # ############################################### -SET @@global.binlog_cache_size = @start_value; +SET @@global.binlog_cache_size = default; SELECT @@global.binlog_cache_size = 32768; @@ -145,8 +146,6 @@ ############################## SET @@global.binlog_cache_size = @start_value; -SELECT @@global.binlog_cache_size; - ########################################################### # END OF binlog_cache_size TESTS # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/binlog_stmt_cache_size_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/binlog_stmt_cache_size_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/binlog_stmt_cache_size_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/binlog_stmt_cache_size_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,27 +1,27 @@ -################ mysql-test\t\binlog_stmt_cache_size_basic.test ################ -# # -# Variable Name: binlog_stmt_cache_size # -# Scope: GLOBAL # -# Access Type: Dynamic # -# Data Type: Numeric # -# Default Value: 32768 # -# Range: 4096 - 4294967295 # -# # -# # -# Creation Date: 2010-10-12 # -# Author: Alfranio Correia # -# # -# Description: Test Cases of Dynamic System Variable "binlog_stmt_cache_size" # -# that checks behavior of this variable in the following ways # -# * Default Value # -# * Valid & Invalid values # -# * Scope & Access method # -# * Data Integrity . # -# # -# Reference: http://dev.mysql.com/doc/refman/5.5/en/ # -# server-system-variables.html#option_mysqld_binlog_stmt_cache_size # -# # -################################################################################ +################ mysql-test\t\binlog_stmt_cache_size_basic.test ############### +# # +# Variable Name: binlog_stmt_cache_size # +# Scope: GLOBAL # +# Access Type: Dynamic # +# Data Type: Numeric # +# Default Value: 32768 # +# Range: 4096 - 4294967295 # +# # +# # +# Creation Date: 2010-10-12 # +# Author: Alfranio Correia # +# # +# Description: Test Cases of Dynamic System Variable "binlog_stmt_cache_size" # +# that checks behavior of this variable in the following ways # +# * Default Value # +# * Valid & Invalid values # +# * Scope & Access method # +# * Data Integrity . # +# # +# Reference: http://dev.mysql.com/doc/refman/5.5/en/ # +# server-system-variables.html#option_mysqld_binlog_stmt_cache_size # +# # +############################################################################### ################################################################# # START OF binlog_stmt_cache_size TESTS # @@ -32,7 +32,8 @@ ######################################################################### SET @start_value = @@global.binlog_stmt_cache_size; -SELECT @start_value; +set @@global.binlog_stmt_cache_size=default; +SELECT @@global.binlog_stmt_cache_size; --echo '#--------------------FN_DYNVARS_006_01------------------------#' ######################################################################### @@ -49,7 +50,7 @@ # Verify default value of variable # ############################################### -SET @@global.binlog_stmt_cache_size = @start_value; +SET @@global.binlog_stmt_cache_size = default; SELECT @@global.binlog_stmt_cache_size = 32768; @@ -145,7 +146,6 @@ ############################## SET @@global.binlog_stmt_cache_size = @start_value; -SELECT @@global.binlog_stmt_cache_size; ########################################################### diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/character_set_client_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/character_set_client_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/character_set_client_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/character_set_client_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -30,8 +30,9 @@ --source include/have_utf8mb4.inc --source include/have_utf16.inc --source include/have_utf32.inc - +--source include/default_charset.inc --source include/load_sysvars.inc + ################################################### ## START OF character_set_client TESTS ## ################################################### @@ -40,7 +41,7 @@ # Save initial value # ############################################################# SET @global_start_value = @@global.character_set_client; -SELECT @global_start_value; +SET @@global.character_set_client=@@character_set_client; # Save initial session value SET @session_start_value = @@character_set_client; SELECT @session_start_value; @@ -78,11 +79,11 @@ ############################################################################### SET @@character_set_client = latin5; SET @@character_set_client = DEFAULT; -SELECT @@character_set_client AS DEFAULT_VALUE; +SELECT @@character_set_client = @@global.character_set_client; SET @@global.character_set_client = latin5; SET @@global.character_set_client = DEFAULT; -SELECT @@global.character_set_client; +SELECT @@global.character_set_client= @global_start_value; --echo '#--------------------FN_DYNVARS_010_03-------------------------#' ############################################################################### @@ -335,9 +336,7 @@ # Restore initial value # #################################### SET @@global.character_set_client = @global_start_value; -SELECT @@global.character_set_client; SET @@session.character_set_client = @session_start_value; -SELECT @@session.character_set_client; ############################################################# # END OF character_set_client TESTS # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/character_set_connection_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/character_set_connection_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/character_set_connection_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/character_set_connection_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -30,7 +30,7 @@ --source include/have_utf8mb4.inc --source include/have_utf16.inc --source include/have_utf32.inc - +--source include/default_charset.inc --source include/load_sysvars.inc ################################################### ## START OF character_set_connection TESTS ## @@ -40,7 +40,8 @@ # Save initial value # ############################################################# SET @global_start_value = @@global.character_set_connection; -SELECT @global_start_value; +SET @save_character_set_client=@@global.character_set_client; +SET @@global.character_set_client=@@character_set_client; # Save initial session value SET @session_start_value = @@character_set_connection; SELECT @session_start_value; @@ -78,11 +79,11 @@ ############################################################################### SET @@character_set_connection = latin5; SET @@character_set_connection = DEFAULT; -SELECT @@character_set_connection AS DEFAULT_VALUE; +SELECT @@character_set_connection = @@global.character_set_connection; SET @@global.character_set_connection = latin5; SET @@global.character_set_connection = DEFAULT; -SELECT @@global.character_set_connection; +SELECT @@global.character_set_connection = @global_start_value; --echo '#--------------------FN_DYNVARS_011_03-------------------------#' ############################################################################### @@ -262,9 +263,7 @@ # Restore initial value # #################################### SET @@global.character_set_connection = @global_start_value; -SELECT @@global.character_set_connection; -SET @@session.character_set_connection = @session_start_value; -SELECT @@session.character_set_connection; +SET @@global.character_set_client = @save_character_set_client; ############################################################# # END OF character_set_connection TESTS # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/character_set_database_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/character_set_database_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/character_set_database_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/character_set_database_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -30,7 +30,7 @@ --source include/have_utf8mb4.inc --source include/have_utf16.inc --source include/have_utf32.inc - +--source include/default_charset.inc --source include/load_sysvars.inc ################################################### ## START OF character_set_database TESTS ## @@ -40,7 +40,8 @@ # Save initial value # ############################################################# SET @global_start_value = @@global.character_set_database; -SELECT @global_start_value; +SET @@global.character_set_database=@@character_set_client; +SELECT @@global.character_set_database; # Save initial session value SET @session_start_value = @@character_set_database; SELECT @session_start_value; @@ -263,9 +264,7 @@ # Restore initial value # #################################### SET @@global.character_set_database = @global_start_value; -SELECT @@global.character_set_database; SET @@session.character_set_database = @session_start_value; -SELECT @@session.character_set_database; ############################################################# # END OF character_set_database TESTS # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/character_set_results_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/character_set_results_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/character_set_results_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/character_set_results_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -30,7 +30,7 @@ --source include/have_utf8mb4.inc --source include/have_utf16.inc --source include/have_utf32.inc - +--source include/default_charset.inc --source include/load_sysvars.inc ################################################ ## START OF character_set_results TESTS ## @@ -40,7 +40,8 @@ # Save initial value # ############################################################# SET @global_start_value = @@global.character_set_results; -SELECT @global_start_value; +SET @@global.character_set_results=@@character_set_client; +SELECT @@global.character_set_results; # Save initial session value SET @session_start_value = @@character_set_results; SELECT @session_start_value; @@ -77,11 +78,11 @@ ############################################################################### SET @@character_set_results = latin5; SET @@character_set_results = DEFAULT; -SELECT @@character_set_results AS DEFAULT_VALUE; +SELECT @@character_set_results = @@global.character_set_results; SET @@global.character_set_results = latin5; SET @@global.character_set_results = DEFAULT; -SELECT @@global.character_set_results; +SELECT @@global.character_set_results= @global_start_value; --echo '#--------------------FN_DYNVARS_013_03-------------------------#' ############################################################################### @@ -262,9 +263,7 @@ # Restore initial value # #################################### SET @@global.character_set_results = @global_start_value; -SELECT @@global.character_set_results; SET @@session.character_set_results = @session_start_value; -SELECT @@session.character_set_results; ############################################################# # END OF character_set_results TESTS # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/character_set_server_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/character_set_server_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/character_set_server_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/character_set_server_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -27,7 +27,7 @@ --source include/have_sjis.inc --source include/have_utf8.inc --source include/have_ucs2.inc - +--source include/default_charset.inc --source include/load_sysvars.inc ################################################### @@ -38,7 +38,8 @@ # Save initial value # ############################################################# SET @global_start_value = @@global.character_set_server; -SELECT @global_start_value; +SET @@global.character_set_server=@@character_set_client; +SELECT @@global.character_set_server; # Save initial session value SET @session_start_value = @@character_set_server; SELECT @session_start_value; @@ -78,11 +79,11 @@ ############################################################################### SET @@character_set_server = latin5; SET @@character_set_server = DEFAULT; -SELECT @@character_set_server AS DEFAULT_VALUE; +SELECT @@character_set_server = @@global.character_set_server; SET @@global.character_set_server = latin5; SET @@global.character_set_server = DEFAULT; -SELECT @@global.character_set_server; +SELECT @@global.character_set_server = @global_start_value; --echo '#--------------------FN_DYNVARS_009_03-------------------------#' ############################################################################### @@ -257,9 +258,7 @@ # Restore initial value # #################################### SET @@global.character_set_server = @global_start_value; -SELECT @@global.character_set_server; SET @@session.character_set_server = @session_start_value; -SELECT @@session.character_set_server; ############################################################# # END OF character_set_server TESTS # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/character_set_server_func.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/character_set_server_func.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/character_set_server_func.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/character_set_server_func.test 2019-11-06 16:01:57.000000000 +0000 @@ -45,9 +45,11 @@ #character set and collation are not specified in CREATE DATABASE statements. #============================================================================== ---echo '---global character_set_server should not effects current connection---' +--echo '--global character_set_server should not effects current connection--' #============================================================================== +--source include/default_charset.inc +select @@character_set_database=@@character_set_connection; SET @@global.character_set_server = utf8; CREATE DATABASE db1; USE db1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/collation_connection_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/collation_connection_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/collation_connection_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/collation_connection_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -27,7 +27,7 @@ --source include/have_sjis.inc --source include/have_utf8.inc --source include/have_ucs2.inc - +--source include/default_charset.inc --source include/load_sysvars.inc ################################################### @@ -38,7 +38,8 @@ # Save initial value # ############################################################# SET @global_start_value = @@global.collation_connection; -SELECT @global_start_value; +SET @@global.collation_connection=@@collation_connection; +SELECT @@global.collation_connection; # Save initial session value SET @session_start_value = @@collation_connection; SELECT @session_start_value; @@ -75,11 +76,11 @@ ############################################################################### SET @@collation_connection = latin1_bin; SET @@collation_connection = DEFAULT; -SELECT @@collation_connection AS DEFAULT_VALUE; +SELECT @@collation_connection = @@global.collation_connection; SET @@global.collation_connection = latin1_bin; SET @@global.collation_connection = DEFAULT; -SELECT @@global.collation_connection; +SELECT @@global.collation_connection = @global_start_value; --echo '#--------------------FN_DYNVARS_015_03-------------------------#' ############################################################################## @@ -253,9 +254,7 @@ # Restore initial value # #################################### SET @@global.collation_connection = @global_start_value; -SELECT @@global.collation_connection; SET @@session.collation_connection = @session_start_value; -SELECT @@session.collation_connection; ############################################################# # END OF collation_connection TESTS # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/collation_database_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/collation_database_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/collation_database_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/collation_database_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -22,12 +22,13 @@ # server-system-variables.html # # # ############################################################################### + --source include/have_big5.inc --source include/have_ujis.inc --source include/have_sjis.inc --source include/have_utf8.inc --source include/have_ucs2.inc - +--source include/default_charset.inc --source include/load_sysvars.inc ################################################### @@ -38,7 +39,8 @@ # Save initial value # ############################################################# SET @global_start_value = @@global.collation_database; -SELECT @global_start_value; +SET @@global.collation_database=@@collation_server; +SELECT @@global.collation_database; # Save initial session value SET @session_start_value = @@collation_database; SELECT @session_start_value; @@ -66,6 +68,7 @@ SELECT session collation_database; # using another syntax for accessing dynamic variable SET global collation_database=utf8_unicode_ci; +set global collation_database=@@collation_server; --Error ER_BAD_FIELD_ERROR SELECT global collation_database; @@ -76,11 +79,13 @@ SET @@collation_database = latin1_bin; SET @@collation_database = DEFAULT; SELECT DEFAULT_COLLATION_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME=DATABASE(); -SELECT @@collation_database AS DEFAULT_VALUE; +SELECT @@collation_database = @@global.collation_database; SET @@global.collation_database = latin1_bin; SET @@global.collation_database = DEFAULT; -SELECT @@global.collation_database; +# collation_database is depending on how the 'test' database was created, so +# we can't trust it's value. +SELECT length(@@global.collation_database) > 0; --echo '#--------------------FN_DYNVARS_016_03-------------------------#' ############################################################################## @@ -253,9 +258,7 @@ # Restore initial value # #################################### SET @@global.collation_database = @global_start_value; -SELECT @@global.collation_database; SET @@session.collation_database = @session_start_value; -SELECT @@session.collation_database; ########################################################### # END OF collation_database TESTS # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/collation_database_func.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/collation_database_func.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/collation_database_func.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/collation_database_func.test 2019-11-06 16:01:57.000000000 +0000 @@ -47,8 +47,6 @@ DROP TABLE IF EXISTS t1,t2; --enable_warnings - -SELECT @@character_set_server,@@collation_server; #============================================================================== --echo '--check if setting collation_database update character_set_database--' #============================================================================== diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/collation_server_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/collation_server_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/collation_server_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/collation_server_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -27,7 +27,7 @@ --source include/have_sjis.inc --source include/have_utf8.inc --source include/have_ucs2.inc - +--source include/default_charset.inc --source include/load_sysvars.inc ################################################### @@ -38,7 +38,7 @@ # Save initial value # ############################################################# SET @global_start_value = @@global.collation_server; -SELECT @global_start_value; +SET @@global.collation_server= @@collation_server; # Save initial session value SET @session_start_value = @@collation_server; SELECT @session_start_value; @@ -75,11 +75,11 @@ ############################################################################### SET @@collation_server = latin1_bin; SET @@collation_server = DEFAULT; -SELECT @@collation_server AS DEFAULT_VALUE; +SELECT @@collation_server= @@global.collation_server; SET @@global.collation_server = latin1_bin; SET @@global.collation_server = DEFAULT; -SELECT @@global.collation_server; +SELECT @@global.collation_server = @global_start_value; --echo '#--------------------FN_DYNVARS_014_03-------------------------#' ########################################################################### @@ -254,9 +254,7 @@ # Restore initial value # #################################### SET @@global.collation_server = @global_start_value; -SELECT @@global.collation_server; SET @@session.collation_server = @session_start_value; -SELECT @@session.collation_server; ##################################################### # END OF collation_server TESTS # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/delayed_insert_limit_func.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/delayed_insert_limit_func.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/delayed_insert_limit_func.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/delayed_insert_limit_func.test 2019-11-06 16:01:57.000000000 +0000 @@ -63,8 +63,6 @@ connection con1; -delimiter |; -send INSERT DELAYED INTO t1 VALUES('7','1','1'); INSERT DELAYED INTO t1 VALUES('8','1','1'); INSERT DELAYED INTO t1 VALUES('9','1','1'); @@ -101,8 +99,7 @@ INSERT DELAYED INTO t1 VALUES('40','1','1'); INSERT DELAYED INTO t1 VALUES('41','1','1'); INSERT DELAYED INTO t1 VALUES('42','1','1'); -INSERT DELAYED INTO t1 VALUES('43','1','1');| -delimiter ;| +INSERT DELAYED INTO t1 VALUES('43','1','1'); connection con0; let $wait_condition= @@ -121,10 +118,6 @@ --source include/wait_condition.inc UNLOCK TABLES; -connection con1; ---echo Asynchronous "reap" result -reap; - connection con0; --echo Asynchronous "reap" result --echo The next result suffers from @@ -161,10 +154,6 @@ connection con1; ---echo Asynchronous execute -delimiter |; - -send INSERT DELAYED INTO t1 VALUES('7'); INSERT DELAYED INTO t1 VALUES('8'); INSERT DELAYED INTO t1 VALUES('9'); @@ -180,9 +169,7 @@ INSERT DELAYED INTO t1 VALUES('19'); INSERT DELAYED INTO t1 VALUES('20'); INSERT DELAYED INTO t1 VALUES('21'); -INSERT DELAYED INTO t1 VALUES('22');| - -delimiter ;| +INSERT DELAYED INTO t1 VALUES('22'); connection con0; let $wait_condition= @@ -192,7 +179,7 @@ --echo Asynchronous execute # Due to performance and server behaveiour the test observes values between 6 and 22. # In any case the value must not be outside of that range. -let $my_select= SELECT COUNT(*) BETWEEN 6 AND 22 FROM t1; +let $my_select= SELECT COUNT(*) FROM t1; send; eval $my_select; @@ -204,9 +191,6 @@ --source include/wait_condition.inc UNLOCK TABLES; -connection con1; -reap; - connection con0; --echo Asynchronous "reap" result reap; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/expire_logs_days_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/expire_logs_days_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/expire_logs_days_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/expire_logs_days_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -36,7 +36,6 @@ ######################################################################## SET @start_value = @@global.expire_logs_days; -SELECT @start_value; --echo '#--------------------FN_DYNVARS_029_01------------------------#' @@ -46,7 +45,7 @@ SET @@global.expire_logs_days = 99; SET @@global.expire_logs_days = DEFAULT; -SELECT @@global.expire_logs_days; +SELECT @@global.expire_logs_days = 0; --echo '#---------------------FN_DYNVARS_029_02-------------------------#' @@ -55,7 +54,7 @@ ############################################### SET @@global.expire_logs_days = @start_value; -SELECT @@global.expire_logs_days = 0; +SELECT @@global.expire_logs_days = @start_value; --echo '#--------------------FN_DYNVARS_029_03------------------------#' @@ -166,8 +165,6 @@ ############################## SET @@global.expire_logs_days = @start_value; -SELECT @@global.expire_logs_days; - ######################################################################## # END OF expire_logs_days TESTS # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/general_log_file_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/general_log_file_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/general_log_file_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/general_log_file_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -36,7 +36,7 @@ ######################################################################## SET @start_value = @@global.general_log_file; -SELECT @start_value; +SELECT length(@start_value) > 0; --echo '#---------------------FN_DYNVARS_004_01-------------------------#' @@ -45,7 +45,7 @@ ############################################### SET @@global.general_log_file = DEFAULT; -SELECT @@global.general_log_file; +SELECT length(@@global.general_log_file) > 0; --echo '#--------------------FN_DYNVARS_004_02------------------------#' diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/histogram_size_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/histogram_size_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/histogram_size_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/histogram_size_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -10,9 +10,8 @@ ############################################################# SET @start_global_value = @@global.histogram_size; -SELECT @start_global_value; SET @start_session_value = @@session.histogram_size; -SELECT @start_session_value; +SELECT @start_global_value = @start_session_value; --echo '#--------------------FN_DYNVARS_053_01-------------------------#' ################################################################ @@ -131,10 +130,7 @@ #################################### SET @@global.histogram_size = @start_global_value; -SELECT @@global.histogram_size; SET @@session.histogram_size = @start_session_value; -SELECT @@session.histogram_size; - ################################################### # END OF histogram_size TESTS # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/innodb_adaptive_hash_index_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/innodb_adaptive_hash_index_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/innodb_adaptive_hash_index_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/innodb_adaptive_hash_index_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -6,20 +6,20 @@ --source include/have_innodb.inc SET @start_global_value = @@global.innodb_adaptive_hash_index; -SELECT @start_global_value; # # exists as global only # --echo Valid values are 'ON' and 'OFF' select @@global.innodb_adaptive_hash_index in (0, 1); -select @@global.innodb_adaptive_hash_index; --error ER_INCORRECT_GLOBAL_LOCAL_VAR select @@session.innodb_adaptive_hash_index; +--replace_column 2 # show global variables like 'innodb_adaptive_hash_index'; +--replace_column 2 # show session variables like 'innodb_adaptive_hash_index'; -select * from information_schema.global_variables where variable_name='innodb_adaptive_hash_index'; -select * from information_schema.session_variables where variable_name='innodb_adaptive_hash_index'; +select variable_name from information_schema.global_variables where variable_name='innodb_adaptive_hash_index'; +select variable_name from information_schema.session_variables where variable_name='innodb_adaptive_hash_index'; # # show that it's writable @@ -67,4 +67,3 @@ # SET @@global.innodb_adaptive_hash_index = @start_global_value; -SELECT @@global.innodb_adaptive_hash_index; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/innodb_change_buffering_debug_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/innodb_change_buffering_debug_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/innodb_change_buffering_debug_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/innodb_change_buffering_debug_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -48,9 +48,8 @@ set global innodb_change_buffering_debug=-2; --error ER_WRONG_TYPE_FOR_VAR set global innodb_change_buffering_debug=1e1; -# The value 2 is supposed to kill the server if there are unmerged changes. -# Do not try to set the value to 2 or anything that can be clamped to 2. -#set global innodb_change_buffering_debug=2; +set global innodb_change_buffering_debug=2; +select @@global.innodb_change_buffering_debug; # # Cleanup diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/innodb_log_optimize_ddl_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/innodb_log_optimize_ddl_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/innodb_log_optimize_ddl_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/innodb_log_optimize_ddl_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -21,9 +21,6 @@ SELECT COUNT(@@SESSION.innodb_log_optimize_ddl); --echo Expected error 'Variable is a GLOBAL variable' -#### Display the default value -SELECT @@GLOBAL.innodb_log_optimize_ddl; - SELECT @@GLOBAL.innodb_log_optimize_ddl INTO @innodb_log_optimize_ddl_save; #### Check if the value can be set SET @@GLOBAL.innodb_log_optimize_ddl = ON; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/innodb_max_dirty_pages_pct_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/innodb_max_dirty_pages_pct_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/innodb_max_dirty_pages_pct_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/innodb_max_dirty_pages_pct_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -26,6 +26,10 @@ --source include/have_innodb.inc --source include/load_sysvars.inc +# set default value for test +SET @save_innodb_max_dirty_pages_pct=@@global.innodb_max_dirty_pages_pct; +set @@global.innodb_max_dirty_pages_pct=75; + ###################################################################### # START OF innodb_max_dirty_pages_pct TESTS # ###################################################################### @@ -184,6 +188,8 @@ SET @@global.innodb_max_dirty_pages_pct_lwm = @global_start_max_dirty_lwm_value; SELECT @@global.innodb_max_dirty_pages_pct_lwm; +SET @@global.innodb_max_dirty_pages_pct=@save_innodb_max_dirty_pages_pct; + ############################################################### # END OF innodb_max_dirty_pages_pct TESTS # ############################################################### diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/innodb_max_dirty_pages_pct_lwm_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/innodb_max_dirty_pages_pct_lwm_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/innodb_max_dirty_pages_pct_lwm_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/innodb_max_dirty_pages_pct_lwm_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -26,6 +26,10 @@ --source include/have_innodb.inc --source include/load_sysvars.inc +# set default value for test +SET @save_innodb_max_dirty_pages_pct=@@global.innodb_max_dirty_pages_pct; +set @@global.innodb_max_dirty_pages_pct=75; + ###################################################################### # START OF innodb_max_dirty_pages_pct_lwm TESTS # ###################################################################### @@ -164,6 +168,8 @@ SET @@global.innodb_max_dirty_pages_pct_lwm = @pct_lwm_start_value; SELECT @@global.innodb_max_dirty_pages_pct_lwm; +SET @@global.innodb_max_dirty_pages_pct=@save_innodb_max_dirty_pages_pct; + ############################################################### # END OF innodb_max_dirty_pages_pct_lwm TESTS # ############################################################### diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/innodb_read_io_threads_basic.opt mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/innodb_read_io_threads_basic.opt --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/innodb_read_io_threads_basic.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/innodb_read_io_threads_basic.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--innodb_read_io_threads=2 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/innodb_write_io_threads_basic.opt mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/innodb_write_io_threads_basic.opt --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/innodb_write_io_threads_basic.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/innodb_write_io_threads_basic.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--innodb_write_io_threads=2 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/join_buffer_size_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/join_buffer_size_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/join_buffer_size_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/join_buffer_size_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -35,10 +35,7 @@ ############################################################# SET @start_global_value = @@global.join_buffer_size; -SELECT @start_global_value; SET @start_session_value = @@session.join_buffer_size; -SELECT @start_session_value; - --echo '#--------------------FN_DYNVARS_053_01-------------------------#' ################################################################ @@ -46,10 +43,10 @@ ################################################################ SET @@global.join_buffer_size = DEFAULT; -SELECT @@global.join_buffer_size; +SELECT @@global.join_buffer_size > 0; SET @@session.join_buffer_size = DEFAULT; -SELECT @@session.join_buffer_size; +SELECT @@session.join_buffer_size > 0; --echo '#--------------------FN_DYNVARS_053_03-------------------------#' @@ -182,10 +179,7 @@ #################################### SET @@global.join_buffer_size = @start_global_value; -SELECT @@global.join_buffer_size; SET @@session.join_buffer_size = @start_session_value; -SELECT @@session.join_buffer_size; - ######################################################## # END OF join_buffer_size TESTS # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/join_buffer_space_limit_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/join_buffer_space_limit_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/join_buffer_space_limit_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/join_buffer_space_limit_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -5,11 +5,13 @@ # # exists as global and session # -select @@global.join_buffer_space_limit; -select @@session.join_buffer_space_limit; +--replace_column 2 # show global variables like 'join_buffer_space_limit'; +--replace_column 2 # show session variables like 'join_buffer_space_limit'; +--replace_column 2 # select * from information_schema.global_variables where variable_name='join_buffer_space_limit'; +--replace_column 2 # select * from information_schema.session_variables where variable_name='join_buffer_space_limit'; # @@ -41,4 +43,3 @@ select @@session.join_buffer_space_limit; SET @@global.join_buffer_space_limit = @start_global_value; - diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/join_cache_level_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/join_cache_level_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/join_cache_level_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/join_cache_level_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -5,11 +5,13 @@ # # exists as global only # -select @@global.join_cache_level; -select @@session.join_cache_level; +--replace_column 2 # show global variables like 'join_cache_level'; +--replace_column 2 # show session variables like 'join_cache_level'; +--replace_column 2 # select * from information_schema.global_variables where variable_name='join_cache_level'; +--replace_column 2 # select * from information_schema.session_variables where variable_name='join_cache_level'; # @@ -39,4 +41,3 @@ select @@session.join_cache_level; SET @@global.join_cache_level = @start_global_value; - diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/log_slow_verbosity_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/log_slow_verbosity_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/log_slow_verbosity_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/log_slow_verbosity_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,12 +1,12 @@ # set session SET @start_global_value = @@global.log_slow_verbosity; +select @@global.log_slow_verbosity = @@session.log_slow_verbosity; +SET @@global.log_slow_verbosity="",@@session.log_slow_verbosity=""; # # exists as global only # -select @@global.log_slow_verbosity; -select @@session.log_slow_verbosity; show global variables like 'log_slow_verbosity'; show session variables like 'log_slow_verbosity'; select * from information_schema.global_variables where variable_name='log_slow_verbosity'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/long_query_time_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/long_query_time_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/long_query_time_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/long_query_time_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -35,10 +35,7 @@ ############################################################# SET @start_global_value = @@global.long_query_time; -SELECT @start_global_value; SET @start_session_value = @@session.long_query_time; -SELECT @start_session_value; - --echo '#--------------------FN_DYNVARS_068_01-------------------------#' ############################################################### @@ -47,24 +44,11 @@ SET @@global.long_query_time = 100; SET @@global.long_query_time = DEFAULT; -SELECT @@global.long_query_time; +SELECT @@global.long_query_time >= 0; SET @@session.long_query_time = 200; SET @@session.long_query_time = DEFAULT; -SELECT @@session.long_query_time; - - ---echo '#--------------------FN_DYNVARS_068_02-------------------------#' -############################################################### -# Check the DEFAULT value of long_query_time # -############################################################### - -SET @@global.long_query_time = DEFAULT; -SELECT @@global.long_query_time = 10; - -SET @@session.long_query_time = DEFAULT; -SELECT @@session.long_query_time = 10; - +SELECT @@session.long_query_time >= 0; --echo '#--------------------FN_DYNVARS_068_03-------------------------#' ######################################################################### @@ -197,12 +181,7 @@ #################################### SET @@global.long_query_time = @start_global_value; -SELECT @@global.long_query_time; -SET @@session.long_query_time = @start_session_value; -SELECT @@session.long_query_time; - #################################################### # END OF long_query_time TESTS # #################################################### - diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/max_allowed_packet_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/max_allowed_packet_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/max_allowed_packet_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/max_allowed_packet_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -35,7 +35,6 @@ ############################################################# SET @start_global_value = @@global.max_allowed_packet; -SELECT @start_global_value; # give a known value to @@session.max_allowed_packet by assigning to # @@global and setting up a new connection (for deterministic result @@ -219,9 +218,6 @@ connection default; SET @@global.max_allowed_packet = @start_global_value; -SELECT @@global.max_allowed_packet; -SELECT @@session.max_allowed_packet; - ####################################################### # END OF max_allowed_packet TESTS # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/max_allowed_packet_func.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/max_allowed_packet_func.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/max_allowed_packet_func.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/max_allowed_packet_func.test 2019-11-06 16:01:57.000000000 +0000 @@ -50,11 +50,11 @@ --echo ## Setting value of max_allowed packet and net_buffer_length to 1024 ## --error ER_VARIABLE_IS_READONLY SET @@session.max_allowed_packet = 1024; -SELECT @@session.max_allowed_packet; +SELECT @@session.max_allowed_packet > 0; --error ER_VARIABLE_IS_READONLY SET @@session.net_buffer_length = 1024; -SELECT @@session.net_buffer_length; +SELECT @@session.net_buffer_length > 0; --echo '#--------------------FN_DYNVARS_070_02-------------------------#' diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/max_connect_errors_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/max_connect_errors_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/max_connect_errors_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/max_connect_errors_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -35,7 +35,7 @@ ###################################################################### SET @start_value = @@global.max_connect_errors; -SELECT @start_value; +SELECT @start_value >= 0; --echo '#--------------------FN_DYNVARS_073_01------------------------#' @@ -45,7 +45,6 @@ SET @@global.max_connect_errors = 5000; SET @@global.max_connect_errors = DEFAULT; -SELECT @@global.max_connect_errors; --echo '#---------------------FN_DYNVARS_073_02-------------------------#' ############################################### @@ -53,7 +52,7 @@ ############################################### SET @@global.max_connect_errors = @start_value; -SELECT @@global.max_connect_errors = 10; +SELECT @@global.max_connect_errors = @start_value; --echo '#--------------------FN_DYNVARS_073_03------------------------#' ################################################################## @@ -165,10 +164,7 @@ ############################## SET @@global.max_connect_errors = @start_value; -SELECT @@global.max_connect_errors; - ################################################################## -# END OF max_connect_errors TESTS # +# END OF max_connect_errors TESTS # ################################################################## - diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/max_connections_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/max_connections_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/max_connections_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/max_connections_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -35,7 +35,7 @@ ################################################################### SET @start_value = @@global.max_connections; -SELECT @start_value; +SELECT @start_value > 0; --echo '#--------------------FN_DYNVARS_074_01------------------------#' @@ -43,9 +43,9 @@ # Display the DEFAULT value of max_connections # ################################################################## -SET @@global.max_connections = 5000; +SET @@global.max_connections = @start_value+1; SET @@global.max_connections = DEFAULT; -SELECT @@global.max_connections; +SELECT @@global.max_connections <> @start_value+1; --echo '#---------------------FN_DYNVARS_074_02-------------------------#' ############################################### @@ -53,7 +53,7 @@ ############################################### SET @@global.max_connections = @start_value; -SELECT @@global.max_connections = 151; +SELECT @@global.max_connections = @start_value; --echo '#--------------------FN_DYNVARS_074_03------------------------#' @@ -166,10 +166,8 @@ ############################## SET @@global.max_connections = @start_value; -SELECT @@global.max_connections; ################################################################## # END OF max_connections TESTS # ################################################################## - diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/max_heap_table_size_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/max_heap_table_size_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/max_heap_table_size_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/max_heap_table_size_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -35,9 +35,8 @@ ############################################################# SET @start_global_value = @@global.max_heap_table_size; -SELECT @start_global_value; SET @start_session_value = @@session.max_heap_table_size; -SELECT @start_session_value; +SELECT @start_session_value = @start_global_value; --echo '#--------------------FN_DYNVARS_077_01-------------------------#' @@ -47,23 +46,11 @@ SET @@global.max_heap_table_size = 1677721610; SET @@global.max_heap_table_size = DEFAULT; -SELECT @@global.max_heap_table_size; +SELECT @@global.max_heap_table_size > 0; SET @@session.max_heap_table_size = 1677721610; SET @@session.max_heap_table_size = DEFAULT; -SELECT @@session.max_heap_table_size; - - ---echo '#--------------------FN_DYNVARS_077_02-------------------------#' -################################################################## -# Check the DEFAULT value of max_heap_table_size # -################################################################## - -SET @@global.max_heap_table_size = DEFAULT; -SELECT @@global.max_heap_table_size = 16777216; - -SET @@session.max_heap_table_size = DEFAULT; -SELECT @@session.max_heap_table_size = 16777216; +SELECT @@session.max_heap_table_size > 0; --echo '#--------------------FN_DYNVARS_077_03-------------------------#' @@ -216,12 +203,8 @@ #################################### SET @@global.max_heap_table_size = @start_global_value; -SELECT @@global.max_heap_table_size; -SET @@session.max_heap_table_size = @start_session_value; -SELECT @@session.max_heap_table_size; ####################################################### -# END OF max_heap_table_size TESTS # +# END OF max_heap_table_size TESTS # ####################################################### - diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/max_seeks_for_key_func.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/max_seeks_for_key_func.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/max_seeks_for_key_func.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/max_seeks_for_key_func.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,9 @@ # Test for max_seeks_for_key # +--source include/default_optimizer_switch.inc +set @@global.optimizer_switch=@@local.optimizer_switch; +set @@global.join_cache_level=@@local.join_cache_level; + --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings @@ -24,10 +28,6 @@ CONNECT (test_con1,localhost,root,,); CONNECTION test_con1; -# Value of session & global vairable here should be 10 -SELECT @@global.max_seeks_for_key = 10; -SELECT @@session.max_seeks_for_key = 10; - # Setting global value of variable and inserting data in table SET @@global.max_seeks_for_key = 20; SELECT @@global.max_seeks_for_key; @@ -97,3 +97,5 @@ DROP TABLE t1; SET @@global.max_seeks_for_key= @start_value; +SET @@global.optimizer_switch= @save_optimizer_switch; +SET @@global.join_cache_level= @save_join_cache_level; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/myisam_recover_options_basic.opt mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/myisam_recover_options_basic.opt --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/myisam_recover_options_basic.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/myisam_recover_options_basic.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--myisam-recover-options=BACKUP,QUICK diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/myisam_sort_buffer_size_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/myisam_sort_buffer_size_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/myisam_sort_buffer_size_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/myisam_sort_buffer_size_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -35,10 +35,9 @@ ############################################################# SET @start_global_value = @@global.myisam_sort_buffer_size ; -SELECT @start_global_value; -SET @start_session_value = @@session.myisam_sort_buffer_size ; -SELECT @start_session_value; - +SELECT @@session.myisam_sort_buffer_size = @@global.myisam_sort_buffer_size; +SET @@global.myisam_sort_buffer_size= default; +SET @default_myisam_sort_buffer_size= @@global.myisam_sort_buffer_size; --echo '#--------------------FN_DYNVARS_005_01-------------------------#' ######################################################################## @@ -47,23 +46,11 @@ SET @@global.myisam_sort_buffer_size = 100; SET @@global.myisam_sort_buffer_size = DEFAULT; -SELECT @@global.myisam_sort_buffer_size ; +SELECT @@global.myisam_sort_buffer_size = @default_myisam_sort_buffer_size; SET @@session.myisam_sort_buffer_size = 200; SET @@session.myisam_sort_buffer_size = DEFAULT; -SELECT @@session.myisam_sort_buffer_size ; - - ---echo '#--------------------FN_DYNVARS_005_02-------------------------#' -######################################################################## -# Check the DEFAULT value of myisam_sort_buffer_size # -######################################################################## - -SET @@global.myisam_sort_buffer_size = DEFAULT; -SELECT @@global.myisam_sort_buffer_size = 134216704; - -SET @@session.myisam_sort_buffer_size = DEFAULT; -SELECT @@session.myisam_sort_buffer_size = 134216704; +SELECT @@session.myisam_sort_buffer_size = @default_myisam_sort_buffer_size; --echo '#--------------------FN_DYNVARS_005_03-------------------------#' @@ -95,9 +82,6 @@ SET @@session.myisam_sort_buffer_size = 655345; SELECT @@session.myisam_sort_buffer_size ; - - - --echo '#------------------FN_DYNVARS_005_05-----------------------#' #################################################################### # Change the value of myisam_sort_buffer_size to an invalid value # @@ -236,12 +220,7 @@ #################################### SET @@global.myisam_sort_buffer_size = @start_global_value; -SELECT @@global.myisam_sort_buffer_size ; -SET @@session.myisam_sort_buffer_size = @start_session_value; -SELECT @@session.myisam_sort_buffer_size ; - ############################################################# # END OF myisam_sort_buffer_size TESTS # ############################################################# - diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/optimizer_switch_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/optimizer_switch_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/optimizer_switch_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/optimizer_switch_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,10 +1,10 @@ +--source include/default_optimizer_switch.inc # # 2010-01-20 OBN Added check for I_S values after variable value changed # -SET @start_global_value = @@global.optimizer_switch; -SELECT @start_global_value; +set @@global.optimizer_switch=@@optimizer_switch; # # exists as global and session @@ -49,5 +49,4 @@ --error ER_WRONG_VALUE_FOR_VAR set session optimizer_switch="foobar"; -SET @@global.optimizer_switch = @start_global_value; -SELECT @@global.optimizer_switch; +SET @@global.optimizer_switch = @save_optimizer_switch; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/optimizer_use_condition_selectivity_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/optimizer_use_condition_selectivity_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/optimizer_use_condition_selectivity_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/optimizer_use_condition_selectivity_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -11,41 +11,13 @@ ############################################################# SET @start_global_value = @@global.optimizer_use_condition_selectivity; -SELECT @start_global_value; SET @start_session_value = @@session.optimizer_use_condition_selectivity; -SELECT @start_session_value; - - ---echo '#--------------------FN_DYNVARS_115_01-------------------------#' -######################################################################### -# Display the DEFAULT value of optimizer_use_condition_selectivity # -######################################################################### - -SET @@global.optimizer_use_condition_selectivity = DEFAULT; -SELECT @@global.optimizer_use_condition_selectivity; - -SET @@session.optimizer_use_condition_selectivity = DEFAULT; -SELECT @@session.optimizer_use_condition_selectivity; - - ---echo '#--------------------FN_DYNVARS_115_02-------------------------#' -######################################################################### -# Check the DEFAULT value of optimizer_use_condition_selectivity # -######################################################################### - -SET @@global.optimizer_use_condition_selectivity = DEFAULT; -SELECT @@global.optimizer_use_condition_selectivity = 1; - -SET @@session.optimizer_use_condition_selectivity = DEFAULT; -SELECT @@session.optimizer_use_condition_selectivity = 1; - --echo '#--------------------FN_DYNVARS_115_03-------------------------#' ############################################################################################# # Change the value of optimizer_use_condition_selectivity to a valid value for GLOBAL Scope # ############################################################################################# -SELECT @@global.optimizer_use_condition_selectivity; SET @@global.optimizer_use_condition_selectivity = 0; SELECT @@global.optimizer_use_condition_selectivity; SET @@global.optimizer_use_condition_selectivity = 1; @@ -67,7 +39,6 @@ # Change the value of optimizer_use_condition_selectivity to a valid value for SESSION Scope# ############################################################################################# -SELECT @@session.optimizer_use_condition_selectivity; SET @@session.optimizer_use_condition_selectivity = 0; SELECT @@session.optimizer_use_condition_selectivity; SET @@session.optimizer_use_condition_selectivity = 1; @@ -144,9 +115,6 @@ #################################### SET @@global.optimizer_use_condition_selectivity = @start_global_value; -SELECT @@global.optimizer_use_condition_selectivity; -SET @@session.optimizer_use_condition_selectivity = @start_session_value; -SELECT @@session.optimizer_use_condition_selectivity; ######################################################################## # END OF optimizer_use_condition_selectivity TESTS # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/relay_log_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/relay_log_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/relay_log_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/relay_log_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,13 +1,21 @@ --source include/not_embedded.inc + +let $MYSQLD_RELAY_LOG=`select @@global.relay_log`; + # # only global # +--replace_result $MYSQLD_RELAY_LOG RELAY_LOG select @@global.relay_log; --error ER_INCORRECT_GLOBAL_LOCAL_VAR select @@session.relay_log; +--replace_result $MYSQLD_RELAY_LOG RELAY_LOG show global variables like 'relay_log'; +--replace_result $MYSQLD_RELAY_LOG RELAY_LOG show session variables like 'relay_log'; +--replace_result $MYSQLD_RELAY_LOG RELAY_LOG select * from information_schema.global_variables where variable_name='relay_log'; +--replace_result $MYSQLD_RELAY_LOG RELAY_LOG select * from information_schema.session_variables where variable_name='relay_log'; # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/replicate_ignore_table_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/replicate_ignore_table_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/replicate_ignore_table_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/replicate_ignore_table_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -49,3 +49,10 @@ --echo # Cleanup. SET @@GLOBAL.replicate_ignore_table = @save_replicate_ignore_table; + +--echo # +--echo # MDEV-20101 Assertion failure on select @@global.'m2'.replicate_ignore_table +--echo # + +SET NAMES latin1; +SELECT @@global.'m2'.replicate_ignore_table; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/slow_query_log_file_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/slow_query_log_file_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/slow_query_log_file_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/slow_query_log_file_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -43,7 +43,7 @@ ############################################### SET @@global.slow_query_log_file = DEFAULT; -SELECT @@global.slow_query_log_file; +SELECT length(@@global.slow_query_log_file) > 0; --echo '#--------------------FN_DYNVARS_004_02------------------------#' diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/sync_binlog_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/sync_binlog_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/sync_binlog_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/sync_binlog_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -36,27 +36,6 @@ ################################################################## SET @start_value = @@global.sync_binlog; -SELECT @start_value; - - ---echo '#--------------------FN_DYNVARS_168_01------------------------#' -################################################################## -# Display the DEFAULT value of sync_binlog # -################################################################## - -SET @@global.sync_binlog = 99; -SET @@global.sync_binlog = DEFAULT; -SELECT @@global.sync_binlog; - - ---echo '#---------------------FN_DYNVARS_168_02-------------------------#' -############################################### -# Verify default value of variable # -############################################### - -SET @@global.sync_binlog = @start_value; -SELECT @@global.sync_binlog = 0; - --echo '#--------------------FN_DYNVARS_168_03------------------------#' ################################################################### @@ -121,8 +100,6 @@ FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='sync_binlog'; - - --echo '#---------------------FN_DYNVARS_168_07----------------------#' ########################################################################## # Check if sync_binlog can be accessed with and without @@ sign # @@ -144,9 +121,7 @@ ############################## SET @@global.sync_binlog = @start_value; -SELECT @@global.sync_binlog; - ######################################################################## -# END OF sync_binlog TESTS # +# END OF sync_binlog TESTS # ######################################################################## diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/sysvars_aria.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/sysvars_aria.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/sysvars_aria.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/sysvars_aria.test 2019-11-06 16:01:57.000000000 +0000 @@ -3,6 +3,6 @@ --source include/word_size.inc --vertical_results -select * from information_schema.system_variables +select VARIABLE_NAME, SESSION_VALUE, DEFAULT_VALUE, VARIABLE_SCOPE, VARIABLE_TYPE, VARIABLE_COMMENT, NUMERIC_MIN_VALUE, NUMERIC_MAX_VALUE, NUMERIC_BLOCK_SIZE, ENUM_VALUE_LIST, READ_ONLY, COMMAND_LINE_ARGUMENT from information_schema.system_variables where variable_name like 'aria%' order by variable_name; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/sysvars_debug.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/sysvars_debug.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/sysvars_debug.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/sysvars_debug.test 2019-11-06 16:01:57.000000000 +0000 @@ -4,5 +4,4 @@ --vertical_results select * from information_schema.system_variables where variable_name like 'debug%' - or variable_name = 'in_predicate_conversion_threshold' order by variable_name; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/sysvars_innodb.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/sysvars_innodb.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/sysvars_innodb.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/sysvars_innodb.test 2019-11-06 16:01:57.000000000 +0000 @@ -5,13 +5,14 @@ --vertical_results --replace_regex /^\/\S+/PATH/ /\.\//PATH/ -select * from information_schema.system_variables +select VARIABLE_NAME, SESSION_VALUE, DEFAULT_VALUE, VARIABLE_SCOPE, VARIABLE_TYPE, VARIABLE_COMMENT, NUMERIC_MIN_VALUE, NUMERIC_MAX_VALUE, NUMERIC_BLOCK_SIZE, ENUM_VALUE_LIST, READ_ONLY, COMMAND_LINE_ARGUMENT from information_schema.system_variables where variable_name like 'innodb%' and variable_name not in ( 'innodb_version', # always the same as the server version 'innodb_disallow_writes', # only available WITH_WSREP 'innodb_numa_interleave', # only available WITH_NUMA 'innodb_sched_priority_cleaner', # linux only + 'innodb_evict_tables_on_commit_debug', # one may want to override this 'innodb_use_native_aio', # default value depends on OS 'innodb_buffer_pool_load_pages_abort') # debug build only, and is only for testing order by variable_name; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/sysvars_server_embedded.opt mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/sysvars_server_embedded.opt --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/sysvars_server_embedded.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/sysvars_server_embedded.opt 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ ---table_open_cache=100 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/sysvars_server_notembedded.opt mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/sysvars_server_notembedded.opt --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/sysvars_server_notembedded.opt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/sysvars_server_notembedded.opt 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ ---table_open_cache=100 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/table_definition_cache_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/table_definition_cache_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/table_definition_cache_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/table_definition_cache_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,27 +1,27 @@ -############## mysql-test\t\table_definition_cache_basic.test ################## -# # -# Variable Name: table_definition_cache # -# Scope: GLOBAL # -# Access Type: Dynamic # -# Data Type: Numeric # -# Default Value: 400 # -# Range: 1 - 524288 # -# # -# # -# Creation Date: 2008-03-16 # -# Author: Salman Rawala # -# # -# Description: Test Cases of Dynamic System Variable "table_definition_cache" # -# that checks behavior of this variable in the following ways # -# * Default Value # -# * Valid & Invalid values # -# * Scope & Access method # -# * Data Integrity . # -# # -# Reference: http://dev.mysql.com/doc/refman/5.1/en/ # -# server-system-variables.html#option_mysqld_table_definition_cache # -# # -################################################################################ +############## mysql-test\t\table_definition_cache_basic.test ################# +# # +# Variable Name: table_definition_cache # +# Scope: GLOBAL # +# Access Type: Dynamic # +# Data Type: Numeric # +# Default Value: 400 # +# Range: 1 - 524288 # +# # +# # +# Creation Date: 2008-03-16 # +# Author: Salman Rawala # +# # +# Description: Test Cases of Dynamic System Variable "table_definition_cache" # +# that checks behavior of this variable in the following ways # +# * Default Value # +# * Valid & Invalid values # +# * Scope & Access method # +# * Data Integrity . # +# # +# Reference: http://dev.mysql.com/doc/refman/5.1/en/ # +# server-system-variables.html#option_mysqld_table_definition_cache # +# # +############################################################################### --source include/load_sysvars.inc @@ -34,7 +34,6 @@ ############################################################################## SET @start_value = @@global.table_definition_cache; -SELECT @start_value; --echo '#--------------------FN_DYNVARS_019_01------------------------#' ####################################################################### @@ -43,16 +42,7 @@ SET @@global.table_definition_cache = 100; SET @@global.table_definition_cache = DEFAULT; -SELECT @@global.table_definition_cache; - - ---echo '#---------------------FN_DYNVARS_019_02-------------------------#' -############################################### -# Verify default value of variable # -############################################### - -SET @@global.table_definition_cache = DEFAULT; -SELECT @@global.table_definition_cache = 400; +SELECT @@global.table_definition_cache > 0; --echo '#--------------------FN_DYNVARS_019_03------------------------#' @@ -147,10 +137,7 @@ ############################## SET @@global.table_definition_cache = @start_value; -SELECT @@global.table_definition_cache; - ################################################################ # END OF table_definition_cache TESTS # ################################################################ - diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/table_open_cache_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/table_open_cache_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/table_open_cache_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/table_open_cache_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -4,8 +4,8 @@ # Scope: GLOBAL # # Access Type: Dynamic # # Data Type: numeric # -# Default Value: 400 # -# Range: 64-524288 # +# Default Value: 400 # +# Range: 64-524288 # # # # # # Creation Date: 2008-02-13 # @@ -35,18 +35,6 @@ ########################################################################## SET @start_value = @@global.table_open_cache ; -SELECT @start_value; - - ---echo '#--------------------FN_DYNVARS_001_01------------------------#' -######################################################################## -# Display the DEFAULT value of table_open_cache # -######################################################################## - -SET @@global.table_open_cache = 99; -SET @@global.table_open_cache = DeFAULT; -SELECT @@global.table_open_cache; - --echo '#---------------------FN_DYNVARS_001_02-------------------------#' ############################################### @@ -54,7 +42,7 @@ ############################################### SET @@global.table_open_cache = Default; -SELECT @@global.table_open_cache = 400; +SELECT @@global.table_open_cache > 0; --echo '#--------------------FN_DYNVARS_001_03------------------------#' ######################################################################## @@ -163,10 +151,7 @@ ############################## SET @@global.table_open_cache = @start_value; -SELECT @@global.table_open_cache ; - ################################################################## # END OF table_open_cache TESTS # ################################################################## - diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/userstat_basic.test mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/userstat_basic.test --- mariadb-10.3-10.3.17/mysql-test/suite/sys_vars/t/userstat_basic.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/sys_vars/t/userstat_basic.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,13 +1,14 @@ # bool global SET @start_global_value = @@global.userstat; - # # exists as global only # -select @@global.userstat; +select @@global.userstat = 0 or @@global.userstat = 1; --error ER_INCORRECT_GLOBAL_LOCAL_VAR select @@session.userstat; + +SET @@global.userstat=0; show global variables like 'userstat'; show session variables like 'userstat'; select * from information_schema.global_variables where variable_name='userstat'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/vcol/inc/vcol_trigger_sp.inc mariadb-10.3-10.3.20/mysql-test/suite/vcol/inc/vcol_trigger_sp.inc --- mariadb-10.3-10.3.17/mysql-test/suite/vcol/inc/vcol_trigger_sp.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/vcol/inc/vcol_trigger_sp.inc 2019-11-06 16:01:57.000000000 +0000 @@ -235,7 +235,7 @@ b CHAR(10) NULL DEFAULT NULL, c blob NULL DEFAULT NULL, blob_a blob GENERATED ALWAYS AS (a) VIRTUAL, - blob_b blob GENERATED ALWAYS AS (b) VIRTUAL, + blob_b blob GENERATED ALWAYS AS (RTRIM(b)) VIRTUAL, blob_c blob GENERATED ALWAYS AS (c) VIRTUAL, key (a), key (blob_a(10)), diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/vcol/r/update_binlog.result mariadb-10.3-10.3.20/mysql-test/suite/vcol/r/update_binlog.result --- mariadb-10.3-10.3.17/mysql-test/suite/vcol/r/update_binlog.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/vcol/r/update_binlog.result 2019-11-06 16:01:57.000000000 +0000 @@ -10,13 +10,13 @@ a b c 2 3 4 drop table t1; -create table t1 (a int, c int as(a), p varchar(20) as(y), y char(20), index (p,c)); +create table t1 (a int, c int as(a), p varchar(20) as(rtrim(y)), y char(20), index (p,c)); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `c` int(11) GENERATED ALWAYS AS (`a`) VIRTUAL, - `p` varchar(20) GENERATED ALWAYS AS (`y`) VIRTUAL, + `p` varchar(20) GENERATED ALWAYS AS (rtrim(`y`)) VIRTUAL, `y` char(20) DEFAULT NULL, KEY `p` (`p`,`c`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 @@ -190,13 +190,13 @@ a b c 2 3 4 drop table t1; -create table t1 (a int, c int as(a), p varchar(20) as(y), y char(20), index (p,c)); +create table t1 (a int, c int as(a), p varchar(20) as(rtrim(y)), y char(20), index (p,c)); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `c` int(11) GENERATED ALWAYS AS (`a`) VIRTUAL, - `p` varchar(20) GENERATED ALWAYS AS (`y`) VIRTUAL, + `p` varchar(20) GENERATED ALWAYS AS (rtrim(`y`)) VIRTUAL, `y` char(20) DEFAULT NULL, KEY `p` (`p`,`c`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/vcol/r/update.result mariadb-10.3-10.3.20/mysql-test/suite/vcol/r/update.result --- mariadb-10.3-10.3.17/mysql-test/suite/vcol/r/update.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/vcol/r/update.result 2019-11-06 16:01:57.000000000 +0000 @@ -8,13 +8,13 @@ a b c 2 3 4 drop table t1; -create table t1 (a int, c int as(a), p varchar(20) as(y), y char(20), index (p,c)); +create table t1 (a int, c int as(a), p varchar(20) as(rtrim(y)), y char(20), index (p,c)); show create table t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `c` int(11) GENERATED ALWAYS AS (`a`) VIRTUAL, - `p` varchar(20) GENERATED ALWAYS AS (`y`) VIRTUAL, + `p` varchar(20) GENERATED ALWAYS AS (rtrim(`y`)) VIRTUAL, `y` char(20) DEFAULT NULL, KEY `p` (`p`,`c`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/vcol/r/vcol_keys_innodb.result mariadb-10.3-10.3.20/mysql-test/suite/vcol/r/vcol_keys_innodb.result --- mariadb-10.3-10.3.17/mysql-test/suite/vcol/r/vcol_keys_innodb.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/vcol/r/vcol_keys_innodb.result 2019-11-06 16:01:57.000000000 +0000 @@ -269,3 +269,18 @@ insert ignore into t1 (pk) values (1),(2); update t1 set col_char = 'foo' where pk = 1; drop table t1; +create table t1 ( +id int not null primary key, +a varchar(200), +b varchar(200), +c int, +va char(200) generated always as (ucase(a)) virtual, +vb char(200) generated always as (ucase(b)) virtual, +key (c,va,vb) +) engine=innodb; +insert t1 (id,a,c) select seq,seq,seq from seq_1_to_330; +select IF(@@innodb_sort_buffer_size < count(*)*200, 'GOOD', 'WRONG SIZE') from t1; +IF(@@innodb_sort_buffer_size < count(*)*200, 'GOOD', 'WRONG SIZE') +GOOD +alter table t1 drop column va; +drop table t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/vcol/r/vcol_sql_mode.result mariadb-10.3-10.3.20/mysql-test/suite/vcol/r/vcol_sql_mode.result --- mariadb-10.3-10.3.17/mysql-test/suite/vcol/r/vcol_sql_mode.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/vcol/r/vcol_sql_mode.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,534 @@ +# +# Start of 10.2 tests +# +# +# MDEV-18156 Assertion `0' failed or `btr_validate_index(index, 0, false)' in row_upd_sec_index_entry or error code 126: Index is corrupted upon DELETE with PAD_CHAR_TO_FULL_LENGTH +# +# +# PAD_CHAR_TO_FULL_LENGTH + various virtual column data types +# +CREATE TABLE t1 (a CHAR(5), v CHAR(5) AS (a) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` char(5) GENERATED ALWAYS AS (`a`) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v INT AS (a) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` int(11) GENERATED ALWAYS AS (`a`) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v TIME AS (a) VIRTUAL, KEY(v)); +DROP TABLE t1; +CREATE TABLE t1 (c CHAR(8), v BINARY(8) AS (c), KEY(v)); +Warnings: +Warning 1901 Function or expression '`c`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression '`c`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v BIT(64) AS (a) VIRTUAL, KEY(v)); +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (a) VIRTUAL, KEY(v)); +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v TEXT AS (a) VIRTUAL, KEY(v(100))); +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +# PAD_CHAR_TO_FULL_LENGTH + TRIM resolving dependency +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (RTRIM(a)) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (rtrim(`a`)) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v TEXT AS (RTRIM(a)) VIRTUAL, KEY(v(100))); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` text GENERATED ALWAYS AS (rtrim(`a`)) VIRTUAL, + KEY `v` (`v`(100)) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (TRIM(TRAILING ' ' FROM a)) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (trim(trailing ' ' from `a`)) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v TEXT AS (TRIM(TRAILING ' ' FROM a)) VIRTUAL, KEY(v(100))); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` text GENERATED ALWAYS AS (trim(trailing ' ' from `a`)) VIRTUAL, + KEY `v` (`v`(100)) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (TRIM(BOTH ' ' FROM a)) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (trim(both ' ' from `a`)) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v TEXT AS (TRIM(BOTH ' ' FROM a)) VIRTUAL, KEY(v(100))); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` text GENERATED ALWAYS AS (trim(both ' ' from `a`)) VIRTUAL, + KEY `v` (`v`(100)) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (TRIM(TRAILING NULL FROM a)) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (trim(trailing NULL from `a`)) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (TRIM(BOTH NULL FROM a)) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (trim(both NULL from `a`)) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +# PAD_CHAR_TO_FULL_LENGTH + TRIM not resolving dependency +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (TRIM(LEADING ' ' FROM a)) VIRTUAL, KEY(v)); +Warnings: +Warning 1901 Function or expression 'trim(leading ' ' from `a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression 'trim(leading ' ' from `a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v TEXT AS (TRIM(LEADING ' ' FROM a)) VIRTUAL, KEY(v(100))); +Warnings: +Warning 1901 Function or expression 'trim(leading ' ' from `a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression 'trim(leading ' ' from `a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (TRIM(TRAILING '' FROM a)) VIRTUAL, KEY(v)); +Warnings: +Warning 1901 Function or expression 'trim(trailing '' from `a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression 'trim(trailing '' from `a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (TRIM(BOTH '' FROM a)) VIRTUAL, KEY(v)); +Warnings: +Warning 1901 Function or expression 'trim(both '' from `a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression 'trim(both '' from `a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (TRIM(TRAILING 'x' FROM a)) VIRTUAL, KEY(v)); +Warnings: +Warning 1901 Function or expression 'trim(trailing 'x' from `a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression 'trim(trailing 'x' from `a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (TRIM(BOTH 'x' FROM a)) VIRTUAL, KEY(v)); +Warnings: +Warning 1901 Function or expression 'trim(both 'x' from `a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression 'trim(both 'x' from `a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +CREATE TABLE t1 ( +a CHAR(5), +v VARCHAR(5) AS (TRIM(TRAILING ' ' FROM a)) VIRTUAL, KEY(v)); +Warnings: +Warning 1901 Function or expression 'trim(trailing ' ' from `a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression 'trim(trailing ' ' from `a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +CREATE TABLE t1 ( +a CHAR(5), +v VARCHAR(5) AS (TRIM(BOTH ' ' FROM a)) VIRTUAL, KEY(v)); +Warnings: +Warning 1901 Function or expression 'trim(both ' ' from `a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression 'trim(both ' ' from `a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +# PAD_CHAR_TO_FULL_LENGTH + TRIM(... non_constant FROM a) +CREATE TABLE t1 ( +a CHAR(5), +b CHAR(5), +v TEXT AS (TRIM(TRAILING b FROM a)) VIRTUAL, KEY(v(100))); +Warnings: +Warning 1901 Function or expression 'trim(trailing `b` from `a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression 'trim(trailing `b` from `a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +# PAD_CHAR_TO_FULL_LENGTH + RPAD resolving dependency +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (RPAD(a,5,' ')) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (rpad(`a`,5,' ')) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (RPAD(a,6,' ')) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (rpad(`a`,6,' ')) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (RPAD(a,6,NULL)) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (rpad(`a`,6,NULL)) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (RPAD(a,NULL,' ')) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (rpad(`a`,NULL,' ')) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +# PAD_CHAR_TO_FULL_LENGTH + RPAD not resolving dependency +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (RPAD(a,4,' ')) VIRTUAL, KEY(v)); +Warnings: +Warning 1901 Function or expression 'rpad(`a`,4,' ')' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression 'rpad(`a`,4,' ')' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +CREATE TABLE t1 ( +a CHAR(5), +b CHAR(5), +v VARCHAR(5) AS (RPAD(a,NULL,b)) VIRTUAL, +KEY(v) +); +Warnings: +Warning 1901 Function or expression 'rpad(`a`,NULL,`b`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression 'rpad(`a`,NULL,`b`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +# PAD_CHAR_TO_FULL_LENGTH + comparison +CREATE TABLE t1 (a CHAR(5), v INT AS (a='a') VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` int(11) GENERATED ALWAYS AS (`a` = 'a') VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +CREATE TABLE t1 ( +a CHAR(5) CHARACTER SET latin1 COLLATE latin1_nopad_bin, +v INT AS (a='a') VIRTUAL, KEY(v) +); +Warnings: +Warning 1901 Function or expression '`a` = 'a'' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression '`a` = 'a'' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +# PAD_CHAR_TO_FULL_LENGTH + LIKE +CREATE TABLE t1 (a CHAR(5), v INT AS (a LIKE 'a%') VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` int(11) GENERATED ALWAYS AS (`a` like 'a%') VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v INT AS (a LIKE NULL) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` int(11) GENERATED ALWAYS AS (`a` like NULL) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v INT AS (a LIKE 'a') VIRTUAL, KEY(v)); +Warnings: +Warning 1901 Function or expression '`a` like 'a'' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression '`a` like 'a'' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +# PAD_CHAR_TO_FULL_LENGTH + LENGTH(char_column) = hard dependency +CREATE TABLE t1 (a CHAR(5), v INT AS (LENGTH(a)) VIRTUAL, KEY(v)); +Warnings: +Warning 1901 Function or expression 'octet_length(`a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression 'octet_length(`a`)' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +# +# Testing NO_UNSIGNED_SUBTRACTION +# +CREATE TABLE t1 ( +a INT UNSIGNED, +b INT UNSIGNED, +c INT GENERATED ALWAYS AS (a-b) VIRTUAL, +KEY (c) +); +Warnings: +Warning 1901 Function or expression '`a` - `b`' cannot be used in the GENERATED ALWAYS AS clause of `c` +Warning 1105 Expression depends on the @@sql_mode value NO_UNSIGNED_SUBTRACTION +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression '`a` - `b`' cannot be used in the GENERATED ALWAYS AS clause of `c` +Warning 1105 Expression depends on the @@sql_mode value NO_UNSIGNED_SUBTRACTION +DROP TABLE t1; +CREATE TABLE t1 ( +a INT UNSIGNED, +b INT UNSIGNED, +c INT GENERATED ALWAYS AS (CAST(a AS SIGNED)-b) VIRTUAL, +KEY (c) +); +Warnings: +Warning 1901 Function or expression 'cast(`a` as signed) - `b`' cannot be used in the GENERATED ALWAYS AS clause of `c` +Warning 1105 Expression depends on the @@sql_mode value NO_UNSIGNED_SUBTRACTION +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression 'cast(`a` as signed) - `b`' cannot be used in the GENERATED ALWAYS AS clause of `c` +Warning 1105 Expression depends on the @@sql_mode value NO_UNSIGNED_SUBTRACTION +DROP TABLE t1; +CREATE TABLE t1 ( +a INT UNSIGNED, +b INT UNSIGNED, +c INT GENERATED ALWAYS AS (a-CAST(b AS SIGNED)) VIRTUAL, +KEY (c) +); +Warnings: +Warning 1901 Function or expression '`a` - cast(`b` as signed)' cannot be used in the GENERATED ALWAYS AS clause of `c` +Warning 1105 Expression depends on the @@sql_mode value NO_UNSIGNED_SUBTRACTION +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression '`a` - cast(`b` as signed)' cannot be used in the GENERATED ALWAYS AS clause of `c` +Warning 1105 Expression depends on the @@sql_mode value NO_UNSIGNED_SUBTRACTION +DROP TABLE t1; +CREATE TABLE t1 ( +a INT UNSIGNED, +b INT UNSIGNED, +c INT GENERATED ALWAYS AS (CAST(a AS SIGNED)-CAST(b AS SIGNED)) VIRTUAL, +KEY (c) +); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(10) unsigned DEFAULT NULL, + `b` int(10) unsigned DEFAULT NULL, + `c` int(11) GENERATED ALWAYS AS (cast(`a` as signed) - cast(`b` as signed)) VIRTUAL, + KEY `c` (`c`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +CREATE TABLE t1 ( +a INT UNSIGNED, +b INT UNSIGNED, +c INT GENERATED ALWAYS AS (CAST(a AS DECIMAL(20,0))-CAST(b AS DECIMAL(20,0))) VIRTUAL, +KEY (c) +); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` int(10) unsigned DEFAULT NULL, + `b` int(10) unsigned DEFAULT NULL, + `c` int(11) GENERATED ALWAYS AS (cast(`a` as decimal(20,0)) - cast(`b` as decimal(20,0))) VIRTUAL, + KEY `c` (`c`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +# +# Comnination: PAD_CHAR_TO_FULL_LENGTH + NO_UNSIGNED_SUBTRACTION +# +CREATE TABLE t1 ( +a INT UNSIGNED, +b INT UNSIGNED, +c CHAR(5), +v VARCHAR(5) GENERATED ALWAYS AS (RPAD(c,a-b,' ')) VIRTUAL, +KEY (v) +); +Warnings: +Warning 1901 Function or expression 'rpad(`c`,`a` - `b`,' ')' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value NO_UNSIGNED_SUBTRACTION +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression 'rpad(`c`,`a` - `b`,' ')' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value NO_UNSIGNED_SUBTRACTION +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +CREATE TABLE t1 ( +a INT UNSIGNED, +b INT UNSIGNED, +c CHAR(5), +v VARCHAR(5) GENERATED ALWAYS AS (RPAD(c,CAST(a AS DECIMAL(20,1))-b,' ')) VIRTUAL, +KEY (v) +); +Warnings: +Warning 1901 Function or expression 'rpad(`c`,cast(`a` as decimal(20,1)) - `b`,' ')' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression 'rpad(`c`,cast(`a` as decimal(20,1)) - `b`,' ')' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +# ALTER TABLE ADD KEY(vcol_depending_on_sql_mode) --> error +CREATE TABLE t1 ( +a INT UNSIGNED, +b INT UNSIGNED, +c CHAR(5), +v VARCHAR(5) GENERATED ALWAYS AS (c) VIRTUAL +); +ALTER TABLE t1 ADD KEY(v); +Warnings: +Warning 1901 Function or expression '`c`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`c`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`c`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression '`c`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`c`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`c`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +ALTER TABLE t1 DROP KEY v; +Warnings: +Warning 1901 Function or expression '`c`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +CREATE INDEX v ON t1 (v); +Warnings: +Warning 1901 Function or expression '`c`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`c`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`c`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression '`c`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`c`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`c`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +# A virtual column on the second position in an index - cannot depend on sql_mode +CREATE TABLE t1 (id int, a CHAR(5), v TEXT AS (a) VIRTUAL, KEY(id, v(100))); +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +# A persisten virtual column cannot depend on sql_mode +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (a) PERSISTENT); +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW WARNINGS; +Level Code Message +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (RTRIM(a)) PERSISTENT); +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (rtrim(`a`)) STORED +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +# +# End of 10.2 tests +# diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/vcol/r/vcol_sql_mode_upgrade.result mariadb-10.3-10.3.20/mysql-test/suite/vcol/r/vcol_sql_mode_upgrade.result --- mariadb-10.3-10.3.17/mysql-test/suite/vcol/r/vcol_sql_mode_upgrade.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/vcol/r/vcol_sql_mode_upgrade.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,384 @@ +call mtr.add_suppression("Table rebuild required"); +# +# Opening a Maria-10.2.26 table with a stored VARCHAR column +# +# Copying maria100226_char_to_vchar_stored.* to MYSQLD_DATADIR +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (`a`) STORED +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (`a`) STORED +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +FLUSH TABLES; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (`a`) STORED +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +FLUSH TABLES; +SELECT * FROM t1; +a v +1 1 +2 2 +3 3 +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SELECT * FROM t1; +a v +1 1 +2 2 +3 3 +FLUSH TABLES; +SELECT * FROM t1; +a v +1 1 +2 2 +3 3 +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +CREATE TABLE t2 LIKE t1; +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t2; +FLUSH TABLES; +CREATE TABLE t2 LIKE t1; +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t2; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (`a`) STORED +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +ALTER TABLE t1 ADD b INT DEFAULT a; +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (`a`) STORED, + `b` int(11) DEFAULT `a` +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SELECT * FROM t1; +a v b +1 1 1 +2 2 2 +3 3 3 +FLUSH TABLES; +ALTER TABLE t1 ADD c INT DEFAULT a; +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SELECT * FROM t1; +a v b c +1 1 1 1 +2 2 2 2 +3 3 3 3 +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +# +# Fixing a Maria-10.2.26 table with a stored VARCHAR column +# +# Fixing by dropping the generated stored column +# Copying maria100226_char_to_vchar_stored.* to MYSQLD_DATADIR +ALTER TABLE t1 DROP v; +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SELECT * FROM t1; +a +1 +2 +3 +DROP TABLE t1; +# Fixing by altering the generation expression of the stored column +# Copying maria100226_char_to_vchar_stored.* to MYSQLD_DATADIR +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (`a`) STORED +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +ALTER TABLE t1 MODIFY v VARCHAR(5) AS (RTRIM(a)) PERSISTENT; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (rtrim(`a`)) STORED +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1; +# +# Opening a Maria-10.2.26 table with a virtual VARCHAR column +# +# Copying maria100226_char_to_vchar_virtual.* to MYSQLD_DATADIR +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (`a`) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (`a`) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +FLUSH TABLES; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (`a`) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +FLUSH TABLES; +SELECT * FROM t1; +a v +1 1 +2 2 +3 3 +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SELECT * FROM t1; +a v +1 1 +2 2 +3 3 +FLUSH TABLES; +SELECT * FROM t1; +a v +1 1 +2 2 +3 3 +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +CREATE TABLE t2 LIKE t1; +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t2; +FLUSH TABLES; +CREATE TABLE t2 LIKE t1; +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t2; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (`a`) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +ALTER TABLE t1 ADD b INT DEFAULT a; +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +FLUSH TABLES; +ALTER TABLE t1 ADD c INT DEFAULT a; +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SELECT * FROM t1; +a v b c +1 1 1 1 +2 2 2 2 +3 3 3 3 +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +DROP TABLE t1; +# +# Fixing a Maria-10.2.26 table with a virtual VARCHAR column +# +# Fixing by dropping the virtual column +# Copying maria100226_char_to_vchar_virtual.* to MYSQLD_DATADIR +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (`a`) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +ALTER TABLE t1 DROP v; +SELECT * FROM t1; +a +1 +2 +3 +DROP TABLE t1; +# Fixing by dropping a key on a virtual column, using ALTER TABLE +# Copying maria100226_char_to_vchar_virtual.* to MYSQLD_DATADIR +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (`a`) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +ALTER TABLE t1 DROP KEY v; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (`a`) VIRTUAL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT * FROM t1; +a v +1 1 +2 2 +3 3 +DROP TABLE t1; +# Fixing by dropping a key on a virtual column, using DROP INDEX +# Copying maria100226_char_to_vchar_virtual.* to MYSQLD_DATADIR +DROP INDEX v ON t1; +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (`a`) VIRTUAL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT * FROM t1; +a v +1 1 +2 2 +3 3 +DROP TABLE t1; +# Fixing by altering the generation expression of a virtual column +# Copying maria100226_char_to_vchar_virtual.* to MYSQLD_DATADIR +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (`a`) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +Warnings: +Warning 1901 Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +Warning 1105 Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +ALTER TABLE t1 MODIFY v VARCHAR(5) AS(RTRIM(a)) VIRTUAL; +SHOW CREATE TABLE t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (rtrim(`a`)) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +SELECT * FROM t1; +a v +1 1 +2 2 +3 3 +CREATE TABLE t2 LIKE t1; +SHOW CREATE TABLE t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `a` char(5) DEFAULT NULL, + `v` varchar(5) GENERATED ALWAYS AS (rtrim(`a`)) VIRTUAL, + KEY `v` (`v`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t2; +DROP TABLE t1; +# +# Upgrading a Maria-10.2.26 table with a stored column +# +# Copying maria100226_char_to_varchar.* to MYSQLD_DATADIR +CHECK TABLE t1 FOR UPGRADE; +Table Op Msg_type Msg_text +test.t1 check Warning Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +test.t1 check Warning Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +test.t1 check status OK +FLUSH TABLES; +CHECK TABLE t1 FOR UPGRADE; +Table Op Msg_type Msg_text +test.t1 check Warning Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +test.t1 check Warning Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +test.t1 check status OK +DROP TABLE t1; +# +# Upgrading a Maria-10.2.26 table with a virtual column +# +# Copying maria100226_char_to_varchar.* to MYSQLD_DATADIR +CHECK TABLE t1 FOR UPGRADE; +Table Op Msg_type Msg_text +test.t1 check Warning Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +test.t1 check Warning Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +test.t1 check status OK +FLUSH TABLES; +CHECK TABLE t1 FOR UPGRADE; +Table Op Msg_type Msg_text +test.t1 check Warning Function or expression '`a`' cannot be used in the GENERATED ALWAYS AS clause of `v` +test.t1 check Warning Expression depends on the @@sql_mode value PAD_CHAR_TO_FULL_LENGTH +test.t1 check status OK +DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/vcol/r/vcol_trigger_sp_innodb.result mariadb-10.3-10.3.20/mysql-test/suite/vcol/r/vcol_trigger_sp_innodb.result --- mariadb-10.3-10.3.17/mysql-test/suite/vcol/r/vcol_trigger_sp_innodb.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/vcol/r/vcol_trigger_sp_innodb.result 2019-11-06 16:01:57.000000000 +0000 @@ -232,7 +232,7 @@ b CHAR(10) NULL DEFAULT NULL, c blob NULL DEFAULT NULL, blob_a blob GENERATED ALWAYS AS (a) VIRTUAL, -blob_b blob GENERATED ALWAYS AS (b) VIRTUAL, +blob_b blob GENERATED ALWAYS AS (RTRIM(b)) VIRTUAL, blob_c blob GENERATED ALWAYS AS (c) VIRTUAL, key (a), key (blob_a(10)), diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/vcol/r/vcol_trigger_sp_myisam.result mariadb-10.3-10.3.20/mysql-test/suite/vcol/r/vcol_trigger_sp_myisam.result --- mariadb-10.3-10.3.17/mysql-test/suite/vcol/r/vcol_trigger_sp_myisam.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/vcol/r/vcol_trigger_sp_myisam.result 2019-11-06 16:01:57.000000000 +0000 @@ -232,7 +232,7 @@ b CHAR(10) NULL DEFAULT NULL, c blob NULL DEFAULT NULL, blob_a blob GENERATED ALWAYS AS (a) VIRTUAL, -blob_b blob GENERATED ALWAYS AS (b) VIRTUAL, +blob_b blob GENERATED ALWAYS AS (RTRIM(b)) VIRTUAL, blob_c blob GENERATED ALWAYS AS (c) VIRTUAL, key (a), key (blob_a(10)), diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/vcol/t/cross_db.test mariadb-10.3-10.3.20/mysql-test/suite/vcol/t/cross_db.test --- mariadb-10.3-10.3.17/mysql-test/suite/vcol/t/cross_db.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/vcol/t/cross_db.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,9 @@ +--source include/default_charset.inc + # # MDEV-13209 Cross-database operation with virtual columns fails # + create database mysqltest1; create table mysqltest1.t1 (i int, j int as (i) persistent); show create table mysqltest1.t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/vcol/t/update.test mariadb-10.3-10.3.20/mysql-test/suite/vcol/t/update.test --- mariadb-10.3-10.3.17/mysql-test/suite/vcol/t/update.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/vcol/t/update.test 2019-11-06 16:01:57.000000000 +0000 @@ -14,7 +14,7 @@ # one keypart is virtual, the other keypart is updated # this tests TABLE::mark_columns_needed_for_update() # -create table t1 (a int, c int as(a), p varchar(20) as(y), y char(20), index (p,c)); +create table t1 (a int, c int as(a), p varchar(20) as(rtrim(y)), y char(20), index (p,c)); show create table t1; insert into t1 (a,y) values(1, "yyy"); update t1 set a = 100 where a = 1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/vcol/t/vcol_keys_innodb.opt mariadb-10.3-10.3.20/mysql-test/suite/vcol/t/vcol_keys_innodb.opt --- mariadb-10.3-10.3.17/mysql-test/suite/vcol/t/vcol_keys_innodb.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/vcol/t/vcol_keys_innodb.opt 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1 @@ +--innodb-sort-buffer-size=64k diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/vcol/t/vcol_keys_innodb.test mariadb-10.3-10.3.20/mysql-test/suite/vcol/t/vcol_keys_innodb.test --- mariadb-10.3-10.3.17/mysql-test/suite/vcol/t/vcol_keys_innodb.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/vcol/t/vcol_keys_innodb.test 2019-11-06 16:01:57.000000000 +0000 @@ -117,3 +117,21 @@ insert ignore into t1 (pk) values (1),(2); update t1 set col_char = 'foo' where pk = 1; drop table t1; + +# +# MDEV-20799 DROP Virtual Column crashes MariaDB +# +--source include/have_sequence.inc +create table t1 ( + id int not null primary key, + a varchar(200), + b varchar(200), + c int, + va char(200) generated always as (ucase(a)) virtual, + vb char(200) generated always as (ucase(b)) virtual, + key (c,va,vb) +) engine=innodb; +insert t1 (id,a,c) select seq,seq,seq from seq_1_to_330; +select IF(@@innodb_sort_buffer_size < count(*)*200, 'GOOD', 'WRONG SIZE') from t1; +alter table t1 drop column va; +drop table t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/vcol/t/vcol_select_innodb.test mariadb-10.3-10.3.20/mysql-test/suite/vcol/t/vcol_select_innodb.test --- mariadb-10.3-10.3.17/mysql-test/suite/vcol/t/vcol_select_innodb.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/vcol/t/vcol_select_innodb.test 2019-11-06 16:01:57.000000000 +0000 @@ -22,6 +22,7 @@ #------------------------------------------------------------------------------# # Cleanup +--source include/default_optimizer_switch.inc --source suite/vcol/inc/vcol_cleanup.inc #------------------------------------------------------------------------------# diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/vcol/t/vcol_select_myisam.test mariadb-10.3-10.3.20/mysql-test/suite/vcol/t/vcol_select_myisam.test --- mariadb-10.3-10.3.17/mysql-test/suite/vcol/t/vcol_select_myisam.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/vcol/t/vcol_select_myisam.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,18 +1,18 @@ -################################################################################ -# t/vcol_select.test # -# # -# Purpose: # -# Testing different SELECTs. # -# # -# MyISAM branch # -# # -#------------------------------------------------------------------------------# -# Original Author: Andrey Zhakov # -# Original Date: 2008-09-18 # -# Change Author: # -# Change Date: # -# Change: # -################################################################################ +############################################################################### +# t/vcol_select.test # +# # +# Purpose: # +# Testing different SELECTs. # +# # +# MyISAM branch # +# # +#-----------------------------------------------------------------------------# +# Original Author: Andrey Zhakov # +# Original Date: 2008-09-18 # +# Change Author: # +# Change Date: # +# Change: # +############################################################################### # # NOTE: PLEASE DO NOT ADD NOT MYISAM SPECIFIC TESTCASES HERE ! @@ -20,15 +20,16 @@ # THE SOURCED FILES ONLY. # -#------------------------------------------------------------------------------# +#-----------------------------------------------------------------------------# # Cleanup +--source include/default_optimizer_switch.inc --source suite/vcol/inc/vcol_cleanup.inc -#------------------------------------------------------------------------------# +#-----------------------------------------------------------------------------# # General not engine specific settings and requirements --source suite/vcol/inc/vcol_init_vars.pre -#------------------------------------------------------------------------------# +#-----------------------------------------------------------------------------# # Engine specific settings and requirements ##### Storage engine to be tested @@ -38,14 +39,14 @@ ##### Workarounds for known open engine specific bugs # none -#------------------------------------------------------------------------------# +#-----------------------------------------------------------------------------# # Execute the tests to be applied to all storage engines --source suite/vcol/inc/vcol_select.inc -#------------------------------------------------------------------------------# +#-----------------------------------------------------------------------------# # Execute storage engine specific tests -#------------------------------------------------------------------------------# +#-----------------------------------------------------------------------------# # Cleanup --source suite/vcol/inc/vcol_cleanup.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/vcol/t/vcol_sql_mode.test mariadb-10.3-10.3.20/mysql-test/suite/vcol/t/vcol_sql_mode.test --- mariadb-10.3-10.3.17/mysql-test/suite/vcol/t/vcol_sql_mode.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/vcol/t/vcol_sql_mode.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,349 @@ +--echo # +--echo # Start of 10.2 tests +--echo # + +--echo # +--echo # MDEV-18156 Assertion `0' failed or `btr_validate_index(index, 0, false)' in row_upd_sec_index_entry or error code 126: Index is corrupted upon DELETE with PAD_CHAR_TO_FULL_LENGTH +--echo # + +--echo # +--echo # PAD_CHAR_TO_FULL_LENGTH + various virtual column data types +--echo # + +CREATE TABLE t1 (a CHAR(5), v CHAR(5) AS (a) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a CHAR(5), v INT AS (a) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a CHAR(5), v TIME AS (a) VIRTUAL, KEY(v)); +DROP TABLE t1; + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 (c CHAR(8), v BINARY(8) AS (c), KEY(v)); +SHOW WARNINGS; +DROP TABLE t1; + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 (a CHAR(5), v BIT(64) AS (a) VIRTUAL, KEY(v)); +SHOW WARNINGS; +DROP TABLE t1; + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (a) VIRTUAL, KEY(v)); +SHOW WARNINGS; +DROP TABLE t1; + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 (a CHAR(5), v TEXT AS (a) VIRTUAL, KEY(v(100))); +SHOW WARNINGS; +DROP TABLE t1; + + +--echo # PAD_CHAR_TO_FULL_LENGTH + TRIM resolving dependency + +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (RTRIM(a)) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a CHAR(5), v TEXT AS (RTRIM(a)) VIRTUAL, KEY(v(100))); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (TRIM(TRAILING ' ' FROM a)) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a CHAR(5), v TEXT AS (TRIM(TRAILING ' ' FROM a)) VIRTUAL, KEY(v(100))); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (TRIM(BOTH ' ' FROM a)) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a CHAR(5), v TEXT AS (TRIM(BOTH ' ' FROM a)) VIRTUAL, KEY(v(100))); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (TRIM(TRAILING NULL FROM a)) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (TRIM(BOTH NULL FROM a)) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +DROP TABLE t1; + + +--echo # PAD_CHAR_TO_FULL_LENGTH + TRIM not resolving dependency + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (TRIM(LEADING ' ' FROM a)) VIRTUAL, KEY(v)); +SHOW WARNINGS; +DROP TABLE t1; + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 (a CHAR(5), v TEXT AS (TRIM(LEADING ' ' FROM a)) VIRTUAL, KEY(v(100))); +SHOW WARNINGS; +DROP TABLE t1; + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (TRIM(TRAILING '' FROM a)) VIRTUAL, KEY(v)); +SHOW WARNINGS; +DROP TABLE t1; + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (TRIM(BOTH '' FROM a)) VIRTUAL, KEY(v)); +SHOW WARNINGS; +DROP TABLE t1; + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (TRIM(TRAILING 'x' FROM a)) VIRTUAL, KEY(v)); +SHOW WARNINGS; +DROP TABLE t1; + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (TRIM(BOTH 'x' FROM a)) VIRTUAL, KEY(v)); +SHOW WARNINGS; +DROP TABLE t1; + +# more than one space +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 ( + a CHAR(5), + v VARCHAR(5) AS (TRIM(TRAILING ' ' FROM a)) VIRTUAL, KEY(v)); +SHOW WARNINGS; +DROP TABLE t1; + +# more than one space +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 ( + a CHAR(5), + v VARCHAR(5) AS (TRIM(BOTH ' ' FROM a)) VIRTUAL, KEY(v)); +SHOW WARNINGS; +DROP TABLE t1; + + +--echo # PAD_CHAR_TO_FULL_LENGTH + TRIM(... non_constant FROM a) +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 ( + a CHAR(5), + b CHAR(5), + v TEXT AS (TRIM(TRAILING b FROM a)) VIRTUAL, KEY(v(100))); +SHOW WARNINGS; +DROP TABLE t1; + + +--echo # PAD_CHAR_TO_FULL_LENGTH + RPAD resolving dependency + +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (RPAD(a,5,' ')) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (RPAD(a,6,' ')) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (RPAD(a,6,NULL)) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (RPAD(a,NULL,' ')) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +DROP TABLE t1; + + +--echo # PAD_CHAR_TO_FULL_LENGTH + RPAD not resolving dependency + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (RPAD(a,4,' ')) VIRTUAL, KEY(v)); +SHOW WARNINGS; +DROP TABLE t1; + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 ( + a CHAR(5), + b CHAR(5), + v VARCHAR(5) AS (RPAD(a,NULL,b)) VIRTUAL, + KEY(v) +); +SHOW WARNINGS; +DROP TABLE t1; + + +--echo # PAD_CHAR_TO_FULL_LENGTH + comparison + +CREATE TABLE t1 (a CHAR(5), v INT AS (a='a') VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 ( + a CHAR(5) CHARACTER SET latin1 COLLATE latin1_nopad_bin, + v INT AS (a='a') VIRTUAL, KEY(v) +); +SHOW WARNINGS; +DROP TABLE t1; + + +--echo # PAD_CHAR_TO_FULL_LENGTH + LIKE + +CREATE TABLE t1 (a CHAR(5), v INT AS (a LIKE 'a%') VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +CREATE TABLE t1 (a CHAR(5), v INT AS (a LIKE NULL) VIRTUAL, KEY(v)); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 (a CHAR(5), v INT AS (a LIKE 'a') VIRTUAL, KEY(v)); +SHOW WARNINGS; +DROP TABLE t1; + + +--echo # PAD_CHAR_TO_FULL_LENGTH + LENGTH(char_column) = hard dependency + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 (a CHAR(5), v INT AS (LENGTH(a)) VIRTUAL, KEY(v)); +SHOW WARNINGS; +DROP TABLE t1; + + +--echo # +--echo # Testing NO_UNSIGNED_SUBTRACTION +--echo # + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 ( + a INT UNSIGNED, + b INT UNSIGNED, + c INT GENERATED ALWAYS AS (a-b) VIRTUAL, + KEY (c) +); +SHOW WARNINGS; +DROP TABLE t1; + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 ( + a INT UNSIGNED, + b INT UNSIGNED, + c INT GENERATED ALWAYS AS (CAST(a AS SIGNED)-b) VIRTUAL, + KEY (c) +); +SHOW WARNINGS; +DROP TABLE t1; + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 ( + a INT UNSIGNED, + b INT UNSIGNED, + c INT GENERATED ALWAYS AS (a-CAST(b AS SIGNED)) VIRTUAL, + KEY (c) +); +SHOW WARNINGS; +DROP TABLE t1; + +CREATE TABLE t1 ( + a INT UNSIGNED, + b INT UNSIGNED, + c INT GENERATED ALWAYS AS (CAST(a AS SIGNED)-CAST(b AS SIGNED)) VIRTUAL, + KEY (c) +); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +# 'CAST(signed AS DECIMAL)' does not copy 'unsigned_flag' from the argument. +# So the below is safe. +CREATE TABLE t1 ( + a INT UNSIGNED, + b INT UNSIGNED, + c INT GENERATED ALWAYS AS (CAST(a AS DECIMAL(20,0))-CAST(b AS DECIMAL(20,0))) VIRTUAL, + KEY (c) +); +SHOW CREATE TABLE t1; +DROP TABLE t1; + + +--echo # +--echo # Comnination: PAD_CHAR_TO_FULL_LENGTH + NO_UNSIGNED_SUBTRACTION +--echo # + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 ( + a INT UNSIGNED, + b INT UNSIGNED, + c CHAR(5), + v VARCHAR(5) GENERATED ALWAYS AS (RPAD(c,a-b,' ')) VIRTUAL, + KEY (v) +); +SHOW WARNINGS; +DROP TABLE t1; + + +# The below solves the dependency on NO_UNSIGNED_SUBTRACTION +# but does not solve the dependency on PAD_CHAR_TO_FULL_LENGTH, +# because the 'length' argument to RPAD() is not a constant. + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 ( + a INT UNSIGNED, + b INT UNSIGNED, + c CHAR(5), + v VARCHAR(5) GENERATED ALWAYS AS (RPAD(c,CAST(a AS DECIMAL(20,1))-b,' ')) VIRTUAL, + KEY (v) +); +SHOW WARNINGS; +DROP TABLE t1; + + + +--echo # ALTER TABLE ADD KEY(vcol_depending_on_sql_mode) --> error + +# This makes sure that QT_ITEM_IDENT_SKIP_DB_NAMES and +# QT_ITEM_IDENT_SKIP_TABLE_NAMES are passed to print() +# to avoid temporary table names like `test`.`#sql-50a6_4`.`c` +# in the error message. +# + +CREATE TABLE t1 ( + a INT UNSIGNED, + b INT UNSIGNED, + c CHAR(5), + v VARCHAR(5) GENERATED ALWAYS AS (c) VIRTUAL +); +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +ALTER TABLE t1 ADD KEY(v); +SHOW WARNINGS; +ALTER TABLE t1 DROP KEY v; + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE INDEX v ON t1 (v); +SHOW WARNINGS; +DROP TABLE t1; + + +--echo # A virtual column on the second position in an index - cannot depend on sql_mode + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 (id int, a CHAR(5), v TEXT AS (a) VIRTUAL, KEY(id, v(100))); +SHOW WARNINGS; +DROP TABLE t1; + + +--echo # A persisten virtual column cannot depend on sql_mode + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (a) PERSISTENT); +SHOW WARNINGS; +DROP TABLE t1; + +CREATE TABLE t1 (a CHAR(5), v VARCHAR(5) AS (RTRIM(a)) PERSISTENT); +SHOW CREATE TABLE t1; +DROP TABLE t1; + +--echo # +--echo # End of 10.2 tests +--echo # diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/vcol/t/vcol_sql_mode_upgrade.test mariadb-10.3-10.3.20/mysql-test/suite/vcol/t/vcol_sql_mode_upgrade.test --- mariadb-10.3-10.3.17/mysql-test/suite/vcol/t/vcol_sql_mode_upgrade.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/vcol/t/vcol_sql_mode_upgrade.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,197 @@ +-- source include/mysql_upgrade_preparation.inc +call mtr.add_suppression("Table rebuild required"); + +let $MYSQLD_DATADIR= `select @@datadir`; + +--enable_prepare_warnings + +--echo # +--echo # Opening a Maria-10.2.26 table with a stored VARCHAR column +--echo # + +--echo # Copying maria100226_char_to_vchar_stored.* to MYSQLD_DATADIR +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_stored.frm $MYSQLD_DATADIR/test/t1.frm +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_stored.MYD $MYSQLD_DATADIR/test/t1.MYD +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_stored.MYI $MYSQLD_DATADIR/test/t1.MYI + +SHOW CREATE TABLE t1; +SHOW CREATE TABLE t1; +FLUSH TABLES; +SHOW CREATE TABLE t1; + +FLUSH TABLES; +SELECT * FROM t1; +SELECT * FROM t1; +FLUSH TABLES; +SELECT * FROM t1; + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t2 LIKE t1; +DROP TABLE t2; +FLUSH TABLES; +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t2 LIKE t1; +DROP TABLE t2; + +SHOW CREATE TABLE t1; +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +ALTER TABLE t1 ADD b INT DEFAULT a; +SHOW CREATE TABLE t1; +SELECT * FROM t1; +FLUSH TABLES; +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +ALTER TABLE t1 ADD c INT DEFAULT a; +SELECT * FROM t1; +DROP TABLE t1; + + +--echo # +--echo # Fixing a Maria-10.2.26 table with a stored VARCHAR column +--echo # + +--echo # Fixing by dropping the generated stored column +--echo # Copying maria100226_char_to_vchar_stored.* to MYSQLD_DATADIR +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_stored.frm $MYSQLD_DATADIR/test/t1.frm +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_stored.MYD $MYSQLD_DATADIR/test/t1.MYD +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_stored.MYI $MYSQLD_DATADIR/test/t1.MYI + +ALTER TABLE t1 DROP v; +SELECT * FROM t1; +DROP TABLE t1; + +--echo # Fixing by altering the generation expression of the stored column +--echo # Copying maria100226_char_to_vchar_stored.* to MYSQLD_DATADIR +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_stored.frm $MYSQLD_DATADIR/test/t1.frm +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_stored.MYD $MYSQLD_DATADIR/test/t1.MYD +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_stored.MYI $MYSQLD_DATADIR/test/t1.MYI + +SHOW CREATE TABLE t1; +ALTER TABLE t1 MODIFY v VARCHAR(5) AS (RTRIM(a)) PERSISTENT; +SHOW CREATE TABLE t1; +DROP TABLE t1; + + + +--echo # +--echo # Opening a Maria-10.2.26 table with a virtual VARCHAR column +--echo # + +--echo # Copying maria100226_char_to_vchar_virtual.* to MYSQLD_DATADIR +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.frm $MYSQLD_DATADIR/test/t1.frm +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.MYD $MYSQLD_DATADIR/test/t1.MYD +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.MYI $MYSQLD_DATADIR/test/t1.MYI + +SHOW CREATE TABLE t1; +SHOW CREATE TABLE t1; +FLUSH TABLES; +SHOW CREATE TABLE t1; + +FLUSH TABLES; +SELECT * FROM t1; +SELECT * FROM t1; +FLUSH TABLES; +SELECT * FROM t1; + +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t2 LIKE t1; +DROP TABLE t2; +FLUSH TABLES; +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +CREATE TABLE t2 LIKE t1; +DROP TABLE t2; + + +SHOW CREATE TABLE t1; +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +ALTER TABLE t1 ADD b INT DEFAULT a; +FLUSH TABLES; +#--error ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED +ALTER TABLE t1 ADD c INT DEFAULT a; +SELECT * FROM t1; +DROP TABLE t1; + + +--echo # +--echo # Fixing a Maria-10.2.26 table with a virtual VARCHAR column +--echo # + +--echo # Fixing by dropping the virtual column +--echo # Copying maria100226_char_to_vchar_virtual.* to MYSQLD_DATADIR +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.frm $MYSQLD_DATADIR/test/t1.frm +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.MYD $MYSQLD_DATADIR/test/t1.MYD +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.MYI $MYSQLD_DATADIR/test/t1.MYI + +SHOW CREATE TABLE t1; +ALTER TABLE t1 DROP v; +SELECT * FROM t1; +DROP TABLE t1; + +--echo # Fixing by dropping a key on a virtual column, using ALTER TABLE +--echo # Copying maria100226_char_to_vchar_virtual.* to MYSQLD_DATADIR +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.frm $MYSQLD_DATADIR/test/t1.frm +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.MYD $MYSQLD_DATADIR/test/t1.MYD +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.MYI $MYSQLD_DATADIR/test/t1.MYI + +SHOW CREATE TABLE t1; +ALTER TABLE t1 DROP KEY v; +SHOW CREATE TABLE t1; +SELECT * FROM t1; +DROP TABLE t1; + + +--echo # Fixing by dropping a key on a virtual column, using DROP INDEX +--echo # Copying maria100226_char_to_vchar_virtual.* to MYSQLD_DATADIR +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.frm $MYSQLD_DATADIR/test/t1.frm +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.MYD $MYSQLD_DATADIR/test/t1.MYD +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.MYI $MYSQLD_DATADIR/test/t1.MYI + +DROP INDEX v ON t1; +SHOW CREATE TABLE t1; +SELECT * FROM t1; +DROP TABLE t1; + + +--echo # Fixing by altering the generation expression of a virtual column +--echo # Copying maria100226_char_to_vchar_virtual.* to MYSQLD_DATADIR +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.frm $MYSQLD_DATADIR/test/t1.frm +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.MYD $MYSQLD_DATADIR/test/t1.MYD +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.MYI $MYSQLD_DATADIR/test/t1.MYI + +SHOW CREATE TABLE t1; +ALTER TABLE t1 MODIFY v VARCHAR(5) AS(RTRIM(a)) VIRTUAL; +SHOW CREATE TABLE t1; +SELECT * FROM t1; +CREATE TABLE t2 LIKE t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; +DROP TABLE t1; + + +--echo # +--echo # Upgrading a Maria-10.2.26 table with a stored column +--echo # + +--echo # Copying maria100226_char_to_varchar.* to MYSQLD_DATADIR +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_stored.frm $MYSQLD_DATADIR/test/t1.frm +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_stored.MYD $MYSQLD_DATADIR/test/t1.MYD +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_stored.MYI $MYSQLD_DATADIR/test/t1.MYI + +CHECK TABLE t1 FOR UPGRADE; +FLUSH TABLES; +CHECK TABLE t1 FOR UPGRADE; +DROP TABLE t1; + + +--echo # +--echo # Upgrading a Maria-10.2.26 table with a virtual column +--echo # + +--echo # Copying maria100226_char_to_varchar.* to MYSQLD_DATADIR +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.frm $MYSQLD_DATADIR/test/t1.frm +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.MYD $MYSQLD_DATADIR/test/t1.MYD +--copy_file std_data/vcol_upgrade/maria100226_char_to_vchar_virtual.MYI $MYSQLD_DATADIR/test/t1.MYI + +CHECK TABLE t1 FOR UPGRADE; +FLUSH TABLES; +CHECK TABLE t1 FOR UPGRADE; +DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/common_finish.inc mariadb-10.3-10.3.20/mysql-test/suite/versioning/common_finish.inc --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/common_finish.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/common_finish.inc 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,8 @@ --disable_query_log -drop procedure verify_trt; -drop procedure verify_trt_dummy; -drop function current_row; -drop function check_row; +--disable_warnings +drop procedure if exists verify_trt; +drop procedure if exists verify_trt_dummy; +drop function if exists current_row; +drop function if exists check_row; +--enable_warnings --enable_query_log diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/key_type.combinations mariadb-10.3-10.3.20/mysql-test/suite/versioning/key_type.combinations --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/key_type.combinations 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/key_type.combinations 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,3 @@ +[unique] +[pk] +[sec] diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/key_type.inc mariadb-10.3-10.3.20/mysql-test/suite/versioning/key_type.inc --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/key_type.inc 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/key_type.inc 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,14 @@ +--disable_query_log +if ($MTR_COMBINATION_UNIQUE) +{ + let $KEY_TYPE= unique; +} +if ($MTR_COMBINATION_PK) +{ + let $KEY_TYPE= primary key; +} +if ($MTR_COMBINATION_SEC) +{ + let $KEY_TYPE= key; +} +--enable_query_log diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/alter.result mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/alter.result --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/alter.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/alter.result 2019-11-06 16:01:57.000000000 +0000 @@ -80,13 +80,17 @@ `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 alter table t add column trx_start timestamp(6) as row start; -ERROR HY000: Table `t` is not system-versioned +ERROR HY000: Duplicate ROW START column `trx_start` alter table t add system versioning; show create table t; Table Create Table t CREATE TABLE `t` ( `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 WITH SYSTEM VERSIONING +alter table t add column trx_start timestamp(6) as row start; +ERROR HY000: Duplicate ROW START column `trx_start` +alter table t modify a int as row start; +ERROR HY000: Duplicate ROW START column `a` alter table t add column b int; show create table t; Table Create Table @@ -531,7 +535,7 @@ # MDEV-15956 Strange ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN upon ALTER on versioning column create or replace table t1 (i int, j int as (i), s timestamp(6) as row start, e timestamp(6) as row end, period for system_time(s,e)) with system versioning; alter table t1 modify s timestamp(6) as row start; -ERROR HY000: Can not change system versioning field `s` +ERROR HY000: Duplicate ROW START column `s` # ignore CHECK for historical rows create or replace table t (a int) with system versioning; insert into t values (0), (1); @@ -603,5 +607,80 @@ a b 1 0 affected rows: 1 -drop database test; -create database test; +# +# MDEV-19304 Segfault in ALTER TABLE after UPDATE for SIMULTANEOUS_ASSIGNMENT +# +create or replace table t1 (a int, s timestamp(6) as row start, e timestamp(6) as row end, period for system_time(s,e)) engine=myisam with system versioning; +insert into t1 values (null, null, null); +insert into t1 values (null, null, null); +set sql_mode= 'simultaneous_assignment'; +update t1 set e= 1; +Warnings: +Warning 1906 The value specified for generated column 'e' in table 't1' has been ignored +Warning 1906 The value specified for generated column 'e' in table 't1' has been ignored +alter table t1 force; +set sql_mode= default; +# +# MDEV-18862 Unfortunate error message upon attempt to drop system versioning +# +set system_versioning_alter_history= keep; +create or replace table t1 (x int) with system versioning; +alter table t1 drop column `row_start`, drop column `row_end`, drop period for system_time, drop system versioning; +ERROR 42000: Can't DROP PERIOD FOR SYSTEM_TIME on `t1`; check that it exists +alter table t1 drop period for system_time; +ERROR 42000: Can't DROP PERIOD FOR SYSTEM_TIME on `t1`; check that it exists +alter table t1 drop column `row_start`, drop column `row_end`, drop system versioning; +ERROR 42000: Can't DROP COLUMN `row_start`; check that it exists +alter table t1 drop column `row_end`; +ERROR 42000: Can't DROP COLUMN `row_end`; check that it exists +# +# MDEV-19127 Assertion `row_start_field' failed in vers_prepare_keys upon ALTER TABLE +# +set system_versioning_alter_history=keep; +create or replace table t1 (f1 int) with system versioning; +alter table t1 add f2 int with system versioning, drop system versioning; +create or replace table t1 (f1 int) with system versioning; +alter table t1 drop system versioning, add f2 int with system versioning; +ERROR HY000: Table `t1` is not system-versioned +drop table t1; +# MDEV-16490 It's possible to make a system versioned table without any versioning field +set @@system_versioning_alter_history=keep; +create or replace table t (a int) with system versioning engine=innodb; +alter table t change column a a int without system versioning; +ERROR HY000: Table `t` must have at least one versioned column +alter table t +change column a a int without system versioning, +add column b int with system versioning; +show create table t; +Table Create Table +t CREATE TABLE `t` ( + `a` int(11) DEFAULT NULL WITHOUT SYSTEM VERSIONING, + `b` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 WITH SYSTEM VERSIONING +alter table t +change column a new_a int, +drop system versioning; +show create table t; +Table Create Table +t CREATE TABLE `t` ( + `new_a` int(11) DEFAULT NULL, + `b` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 +alter table t add system versioning; +alter table t change column new_a a int without system versioning; +show create table t; +Table Create Table +t CREATE TABLE `t` ( + `a` int(11) DEFAULT NULL WITHOUT SYSTEM VERSIONING, + `b` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 WITH SYSTEM VERSIONING +alter table t +add column c int, +change column c c int without system versioning, +change column b b int without system versioning; +ERROR HY000: Table `t` must have at least one versioned column +alter table t +add column c int without system versioning, +change column c c int, +change column b b int without system versioning; +drop table t; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/create.result mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/create.result --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/create.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/create.result 2019-11-06 16:01:57.000000000 +0000 @@ -515,5 +515,12 @@ period for system_time(row_start, row_end) ) with system versioning; ERROR HY000: `row_start` must be of type TIMESTAMP(6) for system-versioned table `t` -drop database test; -create database test; +# MDEV-16490 It's possible to make a system versioned table without any versioning field +create or replace table t1 (x int without system versioning) +with system versioning +select 1 as y; +create or replace table t1 (x int without system versioning) +with system versioning +select 1 as x; +ERROR HY000: Table `t1` must have at least one versioned column +drop tables t0, t1, t2, t3; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/cte.result mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/cte.result --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/cte.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/cte.result 2019-11-06 16:01:57.000000000 +0000 @@ -137,15 +137,15 @@ ) select name from emp where emp_id in (select emp_id from ancestors for system_time as of timestamp @ts_1); id select_type table type possible_keys key key_len ref rows filtered Extra -1 PRIMARY ALL distinct_key NULL NULL NULL 4 100.00 -1 PRIMARY emp ALL PRIMARY NULL NULL NULL 4 75.00 Using where; Using join buffer (flat, BNL join) +1 PRIMARY emp ALL PRIMARY NULL NULL NULL 4 75.00 Using where +1 PRIMARY eq_ref distinct_key distinct_key 4 func 1 100.00 4 MATERIALIZED ALL NULL NULL NULL NULL 4 100.00 2 DERIVED e ALL NULL NULL NULL NULL 4 100.00 Using where 3 RECURSIVE UNION e ALL mgr-fk NULL NULL NULL 4 100.00 Using where 3 RECURSIVE UNION ref key0 key0 5 test.e.mgr 2 100.00 NULL UNION RESULT ALL NULL NULL NULL NULL NULL NULL Warnings: -Note 1003 with recursive ancestors as (/* select#2 */ select `test`.`e`.`emp_id` AS `emp_id`,`test`.`e`.`name` AS `name`,`test`.`e`.`mgr` AS `mgr`,`test`.`e`.`salary` AS `salary` from `test`.`emp` FOR SYSTEM_TIME ALL `e` where `test`.`e`.`name` = 'bill' and `test`.`e`.`row_end` > @`ts_1` and `test`.`e`.`row_start` <= @`ts_1` union /* select#3 */ select `test`.`e`.`emp_id` AS `emp_id`,`test`.`e`.`name` AS `name`,`test`.`e`.`mgr` AS `mgr`,`test`.`e`.`salary` AS `salary` from `test`.`emp` FOR SYSTEM_TIME ALL `e` join `ancestors` `a` where `a`.`emp_id` = `test`.`e`.`mgr` and `test`.`e`.`row_end` > @`ts_1` and `test`.`e`.`row_start` <= @`ts_1`)/* select#1 */ select `test`.`emp`.`name` AS `name` from `test`.`emp` FOR SYSTEM_TIME ALL semi join (`ancestors`) where `test`.`emp`.`emp_id` = `ancestors`.`emp_id` and `test`.`emp`.`row_end` = TIMESTAMP'2038-01-19 03:14:07.999999' +Note 1003 with recursive ancestors as (/* select#2 */ select `test`.`e`.`emp_id` AS `emp_id`,`test`.`e`.`name` AS `name`,`test`.`e`.`mgr` AS `mgr`,`test`.`e`.`salary` AS `salary` from `test`.`emp` FOR SYSTEM_TIME ALL `e` where `test`.`e`.`name` = 'bill' and `test`.`e`.`row_end` > @`ts_1` and `test`.`e`.`row_start` <= @`ts_1` union /* select#3 */ select `test`.`e`.`emp_id` AS `emp_id`,`test`.`e`.`name` AS `name`,`test`.`e`.`mgr` AS `mgr`,`test`.`e`.`salary` AS `salary` from `test`.`emp` FOR SYSTEM_TIME ALL `e` join `ancestors` `a` where `a`.`emp_id` = `test`.`e`.`mgr` and `test`.`e`.`row_end` > @`ts_1` and `test`.`e`.`row_start` <= @`ts_1`)/* select#1 */ select `test`.`emp`.`name` AS `name` from `test`.`emp` FOR SYSTEM_TIME ALL semi join (`ancestors`) where `test`.`emp`.`row_end` = TIMESTAMP'2038-01-19 03:14:07.999999' with recursive ancestors as diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/delete.result mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/delete.result --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/delete.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/delete.result 2019-11-06 16:01:57.000000000 +0000 @@ -115,5 +115,4 @@ x 2 1 -drop database test; -create database test; +drop table t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/foreign.result mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/foreign.result --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/foreign.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/foreign.result 2019-11-06 16:01:57.000000000 +0000 @@ -2,7 +2,8 @@ # Test RESTRICT # ################# create table parent( -id int unique key +id int, +KEY_TYPE (id) ) engine innodb; create table child( parent_id int, @@ -35,7 +36,8 @@ # Test when clustered index is a foreign key # ############################################## create table parent( -id int(10) unsigned unique key +id int(10) unsigned, +KEY_TYPE (id) ) engine innodb; create table child( parent_id int(10) unsigned primary key, @@ -54,7 +56,8 @@ # Test CASCADE # ################ create table parent( -id int unique key +id int, +KEY_TYPE (id) ) engine innodb; create table child( parent_id int, @@ -87,7 +90,8 @@ drop table child; drop table parent; create or replace table parent ( -id int primary key, +id int, +KEY_TYPE(id), sys_start SYS_DATATYPE as row start invisible, sys_end SYS_DATATYPE as row end invisible, period for system_time(sys_start, sys_end) @@ -110,7 +114,8 @@ drop table child; drop table parent; create or replace table parent ( -id int primary key +id int, +KEY_TYPE(id) ) engine innodb; create or replace table child ( @@ -138,8 +143,9 @@ ################# # Test SET NULL # ################# -create or replace table parent( -id int unique key +create table parent( +id int, +KEY_TYPE (id) ) engine innodb; create or replace table child( parent_id int, @@ -183,7 +189,8 @@ # Parent table is foreign # ########################### create or replace table parent( -id int unique key, +id int, +KEY_TYPE (id), sys_start SYS_DATATYPE as row start invisible, sys_end SYS_DATATYPE as row end invisible, period for system_time(sys_start, sys_end) @@ -214,7 +221,8 @@ # crash on DELETE # ################### create or replace table a ( -cola int(10) primary key, +cola int(10), +KEY_TYPE (cola), v_cola int(10) as (cola mod 10) virtual, sys_start SYS_DATATYPE as row start invisible, sys_end SYS_DATATYPE as row end invisible, @@ -290,15 +298,18 @@ count(*) 0 drop table subchild, child, parent; -CREATE TABLE t1 (f1 INT, KEY(f1)) ENGINE=InnoDB; -CREATE TABLE t2 (f2 INT, FOREIGN KEY (f2) REFERENCES t1 (f1)) ENGINE=InnoDB WITH SYSTEM VERSIONING; -SET FOREIGN_KEY_CHECKS= OFF; -INSERT IGNORE INTO t2 VALUES (1); -SET FOREIGN_KEY_CHECKS= ON; -UPDATE t2 SET f2= 2; +# +# MDEV-18057 Assertion `(node->state == 5) || (node->state == 6)' failed in row_upd_sec_step upon DELETE after UPDATE failed due to FK violation +# +create or replace table t1 (f1 int, key(f1)) engine=innodb; +create or replace table t2 (f2 int, foreign key (f2) references t1 (f1)) engine=innodb with system versioning; +set foreign_key_checks= off; +insert ignore into t2 values (1); +set foreign_key_checks= on; +update t2 set f2= 2; ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`f2`) REFERENCES `t1` (`f1`)) -DELETE FROM t2; -DROP TABLE t2, t1; +delete from t2; +drop table t2, t1; # # MDEV-18879 Corrupted record inserted by FOREIGN KEY operation # @@ -387,3 +398,32 @@ SET timestamp = 9; REPLACE INTO t2 SELECT * FROM t2; DROP TABLE t1, t2; +# +# MDEV-16210 FK constraints on versioned tables use historical rows, which may cause constraint violation +# +create or replace table t1 (a int, key(a)) engine innodb with system versioning; +create or replace table t2 (b int, foreign key (b) references t1(a)) engine innodb; +insert into t1 values (1),(2); +insert into t2 values (1); +# DELETE from referenced table is not allowed +delete from t1 where a = 1; +ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`b`) REFERENCES `t1` (`a`)) +drop tables t2, t1; +# +# MDEV-20812 Unexpected ER_ROW_IS_REFERENCED_2 or server crash in row_ins_foreign_report_err upon DELETE from versioned table with FK +# +create or replace table t1 (x int primary key) engine innodb; +create or replace table t2 (x int, foreign key (x) references t1(x)) engine innodb with system versioning; +set foreign_key_checks= off; +insert into t2 values (1), (1); +set foreign_key_checks= on; +# DELETE from foreign table is allowed +delete from t2; +drop tables t2, t1; +create or replace table t1 (a int, key(a)) engine innodb; +insert into t1 values (1); +create or replace table t2 (b int, foreign key (b) references t1(a)) engine innodb with system versioning; +insert into t2 values (1), (1); +# DELETE from foreign table is allowed +delete from t2; +drop tables t2, t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/online.result mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/online.result --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/online.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/online.result 2019-11-06 16:01:57.000000000 +0000 @@ -66,7 +66,9 @@ change a a int with system versioning, add primary key pk (a); affected rows: 0 -info: Records: 0 Duplicates: 0 Warnings: 0 +info: Records: 0 Duplicates: 0 Warnings: 1 +Warnings: +Warning 1280 Name 'pk' ignored for PRIMARY key. update t1 set a=2; select count(*) from t1 for system_time all; count(*) @@ -112,5 +114,4 @@ select count(*) from t for system_time all; count(*) 2 -drop database test; -create database test; +drop table t; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/partition_innodb.result mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/partition_innodb.result --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/partition_innodb.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/partition_innodb.result 2019-11-06 16:01:57.000000000 +0000 @@ -21,6 +21,7 @@ partition pn current ); ERROR HY000: `row_start` must be of type TIMESTAMP(6) for system-versioned table `#sql-temporary` +drop table t1; create or replace table t ( a int primary key, row_start bigint unsigned as row start invisible, @@ -64,6 +65,3 @@ partition p1 values less than (100, 100) ); ERROR HY000: Transaction-precise system versioned tables do not support partitioning by ROW START or ROW END -# Test cleanup -drop database test; -create database test; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/partition.result mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/partition.result --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/partition.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/partition.result 2019-11-06 16:01:57.000000000 +0000 @@ -546,6 +546,23 @@ # create or replace table t1 (f int) with system versioning partition by hash(f); insert delayed into t1 values (1); -# Test cleanup -drop database test; -create database test; +# +# MDEV-20068 History partition rotation is not done under LOCK TABLES +# +create or replace table t1 (x int) with system versioning partition by system_time limit 1 +(partition p1 history, partition pn current); +lock tables t1 write; +insert into t1 values (0), (1), (2), (3); +delete from t1 where x < 3; +delete from t1; +Warnings: +Warning 4114 Versioned table `test`.`t1`: partition `p1` is full, add more HISTORY partitions +unlock tables; +# +# MDEV-20336 Assertion bitmap_is_set(read_partitions) upon SELECT FOR UPDATE from versioned table +# +create or replace table t1 (pk int primary key) with system versioning partition by system_time limit 100 (partition p1 history, partition pn current); +execute immediate 'select * from t1 for update'; +pk +drop view v1; +drop tables t, t1, t2, t3, t4; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/partition_rotation.result mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/partition_rotation.result --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/partition_rotation.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/partition_rotation.result 2019-11-06 16:01:57.000000000 +0000 @@ -47,7 +47,7 @@ 1 SIMPLE t1 pn_pnsp0,pn_pnsp1 ALL NULL NULL NULL NULL 2 Using where explain partitions select * from t1 for system_time as of '2001-02-04 10:20:30'; id select_type table partitions type possible_keys key key_len ref rows Extra -1 SIMPLE t1 p1_p1sp0,p1_p1sp1,p0_p0sp0,p0_p0sp1,p2_p2sp0,p2_p2sp1,pn_pnsp0,pn_pnsp1 ALL NULL NULL NULL NULL # Using where +1 SIMPLE t1 p0_p0sp0,p0_p0sp1,p2_p2sp0,p2_p2sp1,pn_pnsp0,pn_pnsp1 ALL NULL NULL NULL NULL # Using where set @ts=(select row_end from t1 for system_time all where i=1); select * from t1 for system_time all where row_end = @ts; i diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/replace.result mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/replace.result --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/replace.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/replace.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,9 +1,10 @@ -create table t ( -id int primary key, +create or replace table t( +id int, +KEY_TYPE(id), x int, row_start SYS_DATATYPE as row start invisible, row_end SYS_DATATYPE as row end invisible, -period for system_time (row_start, row_end) +period for system_time(row_start, row_end) ) with system versioning; insert t values (1, 2); replace t values (1, 3); @@ -32,7 +33,8 @@ create or replace table t2 (c int); create or replace view v as select t1.* from t1 join t2; replace into v (a, b) select a, b from t1; -drop table t1; +drop view v; +drop tables t1, t2; CREATE TABLE t1 ( pk INT AUTO_INCREMENT, f INT, @@ -46,5 +48,3 @@ UPDATE IGNORE t1 SET f = 1; REPLACE t1 SELECT * FROM t1; DROP TABLE t1; -drop database test; -create database test; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/truncate.result mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/truncate.result --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/truncate.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/truncate.result 2019-11-06 16:01:57.000000000 +0000 @@ -129,5 +129,3 @@ a 1 drop table t1; -drop database test; -create database test; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/trx_id.result mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/trx_id.result --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/trx_id.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/trx_id.result 2019-11-06 16:01:57.000000000 +0000 @@ -181,9 +181,7 @@ select trt_begin_ts(@trx_id) <= @ts1 as BEGIN_TS_GOOD; BEGIN_TS_GOOD 1 -drop database test; -create database test; -use test; +drop table t1; # # MDEV-16100 FOR SYSTEM_TIME erroneously resolves string user variables as transaction IDs # @@ -421,7 +419,9 @@ CHANGE a a INT WITH SYSTEM VERSIONING, ADD PRIMARY KEY pk(a); affected rows: 0 -info: Records: 0 Duplicates: 0 Warnings: 0 +info: Records: 0 Duplicates: 0 Warnings: 1 +Warnings: +Warning 1280 Name 'pk' ignored for PRIMARY key. SELECT c.prtype FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS AS c INNER JOIN INFORMATION_SCHEMA.INNODB_SYS_TABLES AS t ON c.table_id=t.table_id diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/update2.result mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/update2.result --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/update2.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/update2.result 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -### Issue #365, bug 7 (duplicate of historical row) -create or replace table t1 (a int primary key, b int) -with system versioning engine myisam; -insert into t1 (a) values (1); -replace t1 values (1,2),(1,3),(2,4); -create or replace table t1 (pk int, a char(3), b char(3), primary key(pk)) -engine=innodb with system versioning; -insert into t1 (pk) values (1); -connect con1,localhost,root,,test; -start transaction; -select * from t1 for update; -pk a b -1 NULL NULL -connection default; -update t1 set b = 'foo'; -connection con1; -update t1 set a = 'bar'; -ERROR 40001: Deadlock found when trying to get lock; try restarting transaction -disconnect con1; -connection default; -drop table t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/update.result mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/update.result --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/update.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/update.result 2019-11-06 16:01:57.000000000 +0000 @@ -241,3 +241,38 @@ 1 2500 drop table t1; drop table t2; +### Issue tempesta-tech/mariadb#365, bug 7 (duplicate of historical row) +create or replace table t1 (a int primary key, b int) +with system versioning engine myisam; +insert into t1 (a) values (1); +replace t1 values (1,2),(1,3),(2,4); +# +# MDEV-14829 Assertion `0' failed in Protocol::end_statement upon concurrent UPDATE +# +create or replace table t1 (pk int, a char(3), b char(3), primary key(pk)) +engine=innodb with system versioning; +insert into t1 (pk) values (1); +connect con1,localhost,root,,test; +start transaction; +select * from t1 for update; +pk a b +1 NULL NULL +connection default; +update t1 set b = 'foo'; +connection con1; +update t1 set a = 'bar'; +ERROR 40001: Deadlock found when trying to get lock; try restarting transaction +disconnect con1; +connection default; +drop table t1; +# +# MDEV-19406 Assertion on updating view of join with versioned table +# +create or replace table t1 (pk int primary key, a date, b int, index(b)) engine=innodb with system versioning; +create or replace table t2 (c int); +create or replace view v as select * from t1 join t2; +insert into t1 (pk) values (1); +update t1 set a= '2012-12-12'; +update v set a= '2000-01-01' order by b limit 1; +drop view v; +drop table t1, t2; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/view.result mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/view.result --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/r/view.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/r/view.result 2019-11-06 16:01:57.000000000 +0000 @@ -118,9 +118,8 @@ a execute stmt; a -drop database test; -create database test; -use test; +drop view v1; +drop tables t1, t2; # # MDEV-15146 SQLError[4122]: View is not system versioned # @@ -148,5 +147,5 @@ show create view v1; View Create View character_set_client collation_connection v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`i` AS `i` from `t1` FOR SYSTEM_TIME AS OF current_timestamp() - interval 6 second latin1 latin1_swedish_ci -drop view v1; -drop table t1; +drop view v1, vt1, vt12; +drop tables t1, t3; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/alter.test mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/alter.test --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/alter.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/alter.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,6 @@ +--source include/default_charset.inc +--source suite/versioning/common.inc + select @@system_versioning_alter_history; create table t( @@ -65,12 +68,17 @@ alter table t drop system versioning; show create table t; ---error ER_VERS_NOT_VERSIONED +--error ER_VERS_DUPLICATE_ROW_START_END alter table t add column trx_start timestamp(6) as row start; alter table t add system versioning; show create table t; +--error ER_VERS_DUPLICATE_ROW_START_END +alter table t add column trx_start timestamp(6) as row start; +--error ER_VERS_DUPLICATE_ROW_START_END +alter table t modify a int as row start; + alter table t add column b int; show create table t; @@ -156,7 +164,6 @@ show create table t; # TODO: move TRX_ID cases to separate test --- source suite/versioning/common.inc create or replace table t( a int ) engine=innodb; @@ -455,7 +462,7 @@ --echo # MDEV-15956 Strange ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN upon ALTER on versioning column create or replace table t1 (i int, j int as (i), s timestamp(6) as row start, e timestamp(6) as row end, period for system_time(s,e)) with system versioning; ---error ER_VERS_ALTER_SYSTEM_FIELD +--error ER_VERS_DUPLICATE_ROW_START_END alter table t1 modify s timestamp(6) as row start; --echo # ignore CHECK for historical rows @@ -503,5 +510,73 @@ select * from t1; --disable_info -drop database test; -create database test; +--echo # +--echo # MDEV-19304 Segfault in ALTER TABLE after UPDATE for SIMULTANEOUS_ASSIGNMENT +--echo # +create or replace table t1 (a int, s timestamp(6) as row start, e timestamp(6) as row end, period for system_time(s,e)) engine=myisam with system versioning; +insert into t1 values (null, null, null); +insert into t1 values (null, null, null); +set sql_mode= 'simultaneous_assignment'; +update t1 set e= 1; +alter table t1 force; +set sql_mode= default; + +--echo # +--echo # MDEV-18862 Unfortunate error message upon attempt to drop system versioning +--echo # +set system_versioning_alter_history= keep; +create or replace table t1 (x int) with system versioning; +--error ER_CANT_DROP_FIELD_OR_KEY +alter table t1 drop column `row_start`, drop column `row_end`, drop period for system_time, drop system versioning; +--error ER_CANT_DROP_FIELD_OR_KEY +alter table t1 drop period for system_time; +--error ER_CANT_DROP_FIELD_OR_KEY +alter table t1 drop column `row_start`, drop column `row_end`, drop system versioning; +--error ER_CANT_DROP_FIELD_OR_KEY +alter table t1 drop column `row_end`; + +--echo # +--echo # MDEV-19127 Assertion `row_start_field' failed in vers_prepare_keys upon ALTER TABLE +--echo # +set system_versioning_alter_history=keep; +create or replace table t1 (f1 int) with system versioning; +alter table t1 add f2 int with system versioning, drop system versioning; +create or replace table t1 (f1 int) with system versioning; +--error ER_VERS_NOT_VERSIONED +alter table t1 drop system versioning, add f2 int with system versioning; + +drop table t1; +--source suite/versioning/common_finish.inc +--echo # MDEV-16490 It's possible to make a system versioned table without any versioning field + +set @@system_versioning_alter_history=keep; +create or replace table t (a int) with system versioning engine=innodb; +--error ER_VERS_TABLE_MUST_HAVE_COLUMNS +alter table t change column a a int without system versioning; + +alter table t + change column a a int without system versioning, + add column b int with system versioning; +show create table t; + +alter table t + change column a new_a int, + drop system versioning; +show create table t; + +alter table t add system versioning; +alter table t change column new_a a int without system versioning; +show create table t; + +--error ER_VERS_TABLE_MUST_HAVE_COLUMNS +alter table t + add column c int, + change column c c int without system versioning, + change column b b int without system versioning; + +alter table t + add column c int without system versioning, + change column c c int, + change column b b int without system versioning; + +drop table t; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/create.test mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/create.test --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/create.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/create.test 2019-11-06 16:01:57.000000000 +0000 @@ -395,6 +395,14 @@ period for system_time(row_start, row_end) ) with system versioning; +--source suite/versioning/common_finish.inc +--echo # MDEV-16490 It's possible to make a system versioned table without any versioning field +create or replace table t1 (x int without system versioning) +with system versioning +select 1 as y; +--error ER_VERS_TABLE_MUST_HAVE_COLUMNS +create or replace table t1 (x int without system versioning) +with system versioning +select 1 as x; -drop database test; -create database test; +drop tables t0, t1, t2, t3; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/cte.test mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/cte.test --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/cte.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/cte.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,6 @@ --- source include/have_innodb.inc +--source include/have_innodb.inc +--source include/default_optimizer_switch.inc + set time_zone="+00:00"; set default_storage_engine=innodb; create or replace table dept ( diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/delete.test mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/delete.test --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/delete.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/delete.test 2019-11-06 16:01:57.000000000 +0000 @@ -81,6 +81,6 @@ update t1 set x= 2; delete from t1; select x from t1 for system_time all; +drop table t1; -drop database test; -create database test; +--source suite/versioning/common_finish.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/derived.test mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/derived.test --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/derived.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/derived.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,3 +1,5 @@ +--source include/default_optimizer_switch.inc + create table emp ( emp_id int, diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/engines.combinations mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/engines.combinations --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/engines.combinations 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/engines.combinations 1970-01-01 00:00:00.000000000 +0000 @@ -1,8 +0,0 @@ -[timestamp] -default-storage-engine=innodb - -[trx_id] -default-storage-engine=innodb - -[myisam] -default-storage-engine=myisam diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/foreign.test mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/foreign.test --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/foreign.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/foreign.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,11 +1,14 @@ +--source suite/versioning/key_type.inc --source suite/versioning/common.inc --echo ################# --echo # Test RESTRICT # --echo ################# -create table parent( - id int unique key +--replace_result "$KEY_TYPE" KEY_TYPE +eval create table parent( + id int, + $KEY_TYPE (id) ) engine innodb; --replace_result $sys_datatype_expl SYS_DATATYPE @@ -42,8 +45,10 @@ --echo # Test when clustered index is a foreign key # --echo ############################################## -create table parent( - id int(10) unsigned unique key +--replace_result "$KEY_TYPE" KEY_TYPE +eval create table parent( + id int(10) unsigned, + $KEY_TYPE (id) ) engine innodb; --replace_result $sys_datatype_expl SYS_DATATYPE @@ -68,8 +73,10 @@ --echo # Test CASCADE # --echo ################ -create table parent( - id int unique key +--replace_result "$KEY_TYPE" KEY_TYPE +eval create table parent( + id int, + $KEY_TYPE (id) ) engine innodb; --replace_result $sys_datatype_expl SYS_DATATYPE @@ -99,9 +106,10 @@ drop table child; drop table parent; ---replace_result $sys_datatype_expl SYS_DATATYPE +--replace_result $sys_datatype_expl SYS_DATATYPE "$KEY_TYPE" KEY_TYPE eval create or replace table parent ( - id int primary key, + id int, + $KEY_TYPE(id), sys_start $sys_datatype_expl as row start invisible, sys_end $sys_datatype_expl as row end invisible, period for system_time(sys_start, sys_end) @@ -126,8 +134,10 @@ drop table child; drop table parent; -create or replace table parent ( - id int primary key +--replace_result "$KEY_TYPE" KEY_TYPE +eval create or replace table parent ( + id int, + $KEY_TYPE(id) ) engine innodb; @@ -158,8 +168,10 @@ --echo # Test SET NULL # --echo ################# -create or replace table parent( - id int unique key +--replace_result "$KEY_TYPE" KEY_TYPE +eval create table parent( + id int, + $KEY_TYPE (id) ) engine innodb; --replace_result $sys_datatype_expl SYS_DATATYPE @@ -196,9 +208,10 @@ --echo # Parent table is foreign # --echo ########################### ---replace_result $sys_datatype_expl SYS_DATATYPE +--replace_result $sys_datatype_expl SYS_DATATYPE "$KEY_TYPE" KEY_TYPE eval create or replace table parent( - id int unique key, + id int, + $KEY_TYPE (id), sys_start $sys_datatype_expl as row start invisible, sys_end $sys_datatype_expl as row end invisible, period for system_time(sys_start, sys_end) @@ -236,9 +249,10 @@ --echo # crash on DELETE # --echo ################### ---replace_result $sys_datatype_expl SYS_DATATYPE +--replace_result $sys_datatype_expl SYS_DATATYPE "$KEY_TYPE" KEY_TYPE eval create or replace table a ( - cola int(10) primary key, + cola int(10), + $KEY_TYPE (cola), v_cola int(10) as (cola mod 10) virtual, sys_start $sys_datatype_expl as row start invisible, sys_end $sys_datatype_expl as row end invisible, @@ -316,19 +330,21 @@ drop table subchild, child, parent; +--echo # +--echo # MDEV-18057 Assertion `(node->state == 5) || (node->state == 6)' failed in row_upd_sec_step upon DELETE after UPDATE failed due to FK violation +--echo # +create or replace table t1 (f1 int, key(f1)) engine=innodb; +create or replace table t2 (f2 int, foreign key (f2) references t1 (f1)) engine=innodb with system versioning; -CREATE TABLE t1 (f1 INT, KEY(f1)) ENGINE=InnoDB; -CREATE TABLE t2 (f2 INT, FOREIGN KEY (f2) REFERENCES t1 (f1)) ENGINE=InnoDB WITH SYSTEM VERSIONING; - -SET FOREIGN_KEY_CHECKS= OFF; -INSERT IGNORE INTO t2 VALUES (1); +set foreign_key_checks= off; +insert ignore into t2 values (1); -SET FOREIGN_KEY_CHECKS= ON; +set foreign_key_checks= on; --error ER_NO_REFERENCED_ROW_2 -UPDATE t2 SET f2= 2; -DELETE FROM t2; +update t2 set f2= 2; +delete from t2; -DROP TABLE t2, t1; +drop table t2, t1; --echo # --echo # MDEV-18879 Corrupted record inserted by FOREIGN KEY operation @@ -410,4 +426,36 @@ --remove_file $datadir/test/t1.data.2 --remove_file $datadir/test/t2.data +--echo # +--echo # MDEV-16210 FK constraints on versioned tables use historical rows, which may cause constraint violation +--echo # +create or replace table t1 (a int, key(a)) engine innodb with system versioning; +create or replace table t2 (b int, foreign key (b) references t1(a)) engine innodb; +insert into t1 values (1),(2); +insert into t2 values (1); +--echo # DELETE from referenced table is not allowed +--error ER_ROW_IS_REFERENCED_2 +delete from t1 where a = 1; +drop tables t2, t1; + +--echo # +--echo # MDEV-20812 Unexpected ER_ROW_IS_REFERENCED_2 or server crash in row_ins_foreign_report_err upon DELETE from versioned table with FK +--echo # +create or replace table t1 (x int primary key) engine innodb; +create or replace table t2 (x int, foreign key (x) references t1(x)) engine innodb with system versioning; +set foreign_key_checks= off; +insert into t2 values (1), (1); +set foreign_key_checks= on; +--echo # DELETE from foreign table is allowed +delete from t2; +drop tables t2, t1; + +create or replace table t1 (a int, key(a)) engine innodb; +insert into t1 values (1); +create or replace table t2 (b int, foreign key (b) references t1(a)) engine innodb with system versioning; +insert into t2 values (1), (1); +--echo # DELETE from foreign table is allowed +delete from t2; +drop tables t2, t1; + --source suite/versioning/common_finish.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/online.test mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/online.test --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/online.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/online.test 2019-11-06 16:01:57.000000000 +0000 @@ -134,5 +134,6 @@ update t set b=11; select count(*) from t for system_time all; -drop database test; -create database test; +drop table t; + +--source suite/versioning/common_finish.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/partition_innodb.test mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/partition_innodb.test --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/partition_innodb.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/partition_innodb.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,6 @@ --source include/have_innodb.inc --source include/have_partition.inc +--source suite/versioning/common.inc --echo # MDEV-15951 system versioning by trx id doesn't work with partitioning --echo # currently trx_id does not support partitioning by system_time @@ -28,6 +29,8 @@ partition pn current ); +drop table t1; + --error ER_VERS_TRX_PART_HISTORIC_ROW_NOT_SUPPORTED create or replace table t ( a int primary key, @@ -75,6 +78,4 @@ partition p1 values less than (100, 100) ); ---echo # Test cleanup -drop database test; -create database test; +--source suite/versioning/common_finish.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/partition.test mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/partition.test --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/partition.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/partition.test 2019-11-06 16:01:57.000000000 +0000 @@ -497,6 +497,24 @@ --error 0,ER_DELAYED_NOT_SUPPORTED insert delayed into t1 values (1); ---echo # Test cleanup -drop database test; -create database test; +--echo # +--echo # MDEV-20068 History partition rotation is not done under LOCK TABLES +--echo # +create or replace table t1 (x int) with system versioning partition by system_time limit 1 +(partition p1 history, partition pn current); +lock tables t1 write; +insert into t1 values (0), (1), (2), (3); +delete from t1 where x < 3; +delete from t1; +unlock tables; + +--echo # +--echo # MDEV-20336 Assertion bitmap_is_set(read_partitions) upon SELECT FOR UPDATE from versioned table +--echo # +create or replace table t1 (pk int primary key) with system versioning partition by system_time limit 100 (partition p1 history, partition pn current); +execute immediate 'select * from t1 for update'; + +drop view v1; +drop tables t, t1, t2, t3, t4; + +--source suite/versioning/common_finish.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/replace.test mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/replace.test --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/replace.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/replace.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,13 +1,19 @@ +--source suite/versioning/key_type.inc +if ($MTR_COMBINATION_SEC) +{ + --skip pk or unique only +} --source suite/versioning/common.inc --source suite/versioning/engines.inc ---replace_result $sys_datatype_expl SYS_DATATYPE -eval create table t ( - id int primary key, +--replace_result $sys_datatype_expl SYS_DATATYPE "$KEY_TYPE" KEY_TYPE +eval create or replace table t( + id int, + $KEY_TYPE(id), x int, row_start $sys_datatype_expl as row start invisible, row_end $sys_datatype_expl as row end invisible, - period for system_time (row_start, row_end) + period for system_time(row_start, row_end) ) with system versioning; insert t values (1, 2); @@ -35,7 +41,8 @@ create or replace table t2 (c int); create or replace view v as select t1.* from t1 join t2; replace into v (a, b) select a, b from t1; -drop table t1; +drop view v; +drop tables t1, t2; --replace_result $sys_datatype_expl SYS_DATATYPE eval CREATE TABLE t1 ( @@ -52,6 +59,4 @@ REPLACE t1 SELECT * FROM t1; DROP TABLE t1; - -drop database test; -create database test; +--source suite/versioning/common_finish.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/select.test mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/select.test --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/select.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/select.test 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,6 @@ --source suite/versioning/engines.inc --source suite/versioning/common.inc +--source include/default_optimizer_switch.inc # test_01 diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/truncate.test mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/truncate.test --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/truncate.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/truncate.test 2019-11-06 16:01:57.000000000 +0000 @@ -141,5 +141,4 @@ select * from t1; drop table t1; -drop database test; -create database test; +--source suite/versioning/common_finish.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/trx_id.test mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/trx_id.test --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/trx_id.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/trx_id.test 2019-11-06 16:01:57.000000000 +0000 @@ -2,7 +2,8 @@ { --skip needs test_versioning plugin } --- source include/have_innodb.inc +--source include/have_innodb.inc +--source include/default_charset.inc set default_storage_engine= innodb; @@ -172,10 +173,7 @@ select row_start from t1 into @trx_id; select trt_begin_ts(@trx_id) <= @ts1 as BEGIN_TS_GOOD; -drop database test; -create database test; -use test; - +drop table t1; --echo # --echo # MDEV-16100 FOR SYSTEM_TIME erroneously resolves string user variables as transaction IDs diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/update2.test mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/update2.test --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/update2.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/update2.test 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -source include/have_innodb.inc; - -echo ### Issue #365, bug 7 (duplicate of historical row); -create or replace table t1 (a int primary key, b int) -with system versioning engine myisam; -insert into t1 (a) values (1); - -replace t1 values (1,2),(1,3),(2,4); - -# -# MDEV-14829 Assertion `0' failed in Protocol::end_statement upon concurrent UPDATE -# - -create or replace table t1 (pk int, a char(3), b char(3), primary key(pk)) - engine=innodb with system versioning; - -insert into t1 (pk) values (1); -connect (con1,localhost,root,,test); -start transaction; -select * from t1 for update; -connection default; -send update t1 set b = 'foo'; -connection con1; -let $wait_condition= select count(*) from information_schema.innodb_lock_waits; -source include/wait_condition.inc; -error ER_LOCK_DEADLOCK; -update t1 set a = 'bar'; -disconnect con1; -connection default; -reap; -drop table t1; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/update.test mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/update.test --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/update.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/update.test 2019-11-06 16:01:57.000000000 +0000 @@ -147,4 +147,49 @@ drop table t1; drop table t2; +--echo ### Issue tempesta-tech/mariadb#365, bug 7 (duplicate of historical row) +create or replace table t1 (a int primary key, b int) +with system versioning engine myisam; +insert into t1 (a) values (1); + +replace t1 values (1,2),(1,3),(2,4); + +--echo # +--echo # MDEV-14829 Assertion `0' failed in Protocol::end_statement upon concurrent UPDATE +--echo # + +create or replace table t1 (pk int, a char(3), b char(3), primary key(pk)) + engine=innodb with system versioning; + +insert into t1 (pk) values (1); +connect (con1,localhost,root,,test); +start transaction; +select * from t1 for update; +connection default; +send update t1 set b = 'foo'; +connection con1; +let $wait_condition= select count(*) from information_schema.innodb_lock_waits; +source include/wait_condition.inc; +error ER_LOCK_DEADLOCK; +update t1 set a = 'bar'; +disconnect con1; +connection default; +reap; +drop table t1; + +--echo # +--echo # MDEV-19406 Assertion on updating view of join with versioned table +--echo # +--disable_warnings +create or replace table t1 (pk int primary key, a date, b int, index(b)) engine=innodb with system versioning; +create or replace table t2 (c int); +create or replace view v as select * from t1 join t2; + +insert into t1 (pk) values (1); +update t1 set a= '2012-12-12'; +update v set a= '2000-01-01' order by b limit 1; # point of failure +drop view v; +drop table t1, t2; +--enable_warnings + source suite/versioning/common_finish.inc; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/view.test mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/view.test --- mariadb-10.3-10.3.17/mysql-test/suite/versioning/t/view.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/versioning/t/view.test 2019-11-06 16:01:57.000000000 +0000 @@ -98,9 +98,8 @@ prepare stmt from 'select a from v1 inner join t2 group by a order by a'; execute stmt; execute stmt; -drop database test; -create database test; -use test; +drop view v1; +drop tables t1, t2; --echo # --echo # MDEV-15146 SQLError[4122]: View is not system versioned @@ -122,5 +121,7 @@ create or replace view v1 as select * from t1 for system_time as of date_sub(now(), interval 6 second); show create view v1; -drop view v1; -drop table t1; +drop view v1, vt1, vt12; +drop tables t1, t3; + +--source suite/versioning/common_finish.inc diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/wsrep/disabled.def mariadb-10.3-10.3.20/mysql-test/suite/wsrep/disabled.def --- mariadb-10.3-10.3.17/mysql-test/suite/wsrep/disabled.def 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/wsrep/disabled.def 2019-11-06 16:01:57.000000000 +0000 @@ -11,4 +11,3 @@ ############################################################################## foreign_key : Sporadic failure "WSREP has not yet prepared node for application use" -variables : MDEV-19746 Galera test failures because of wsrep_slave_threads identification diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/wsrep/r/mysql_tzinfo_to_sql_symlink.result mariadb-10.3-10.3.20/mysql-test/suite/wsrep/r/mysql_tzinfo_to_sql_symlink.result --- mariadb-10.3-10.3.17/mysql-test/suite/wsrep/r/mysql_tzinfo_to_sql_symlink.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/wsrep/r/mysql_tzinfo_to_sql_symlink.result 2019-11-06 16:01:57.000000000 +0000 @@ -2,9 +2,15 @@ # MDEV-5226 mysql_tzinfo_to_sql errors with tzdata 2013f and above # # Verbose run -set @prep=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET GLOBAL wsrep_replicate_myisam=?', 'do ?'); -prepare set_wsrep_myisam from @prep; -set @toggle=1; execute set_wsrep_myisam using @toggle; +\d | +IF (select count(*) from information_schema.global_variables where +variable_name='wsrep_on') = 1 THEN +ALTER TABLE time_zone ENGINE=InnoDB; +ALTER TABLE time_zone_name ENGINE=InnoDB; +ALTER TABLE time_zone_transition ENGINE=InnoDB; +ALTER TABLE time_zone_transition_type ENGINE=InnoDB; +END IF| +\d ; TRUNCATE TABLE time_zone; TRUNCATE TABLE time_zone_name; TRUNCATE TABLE time_zone_transition; @@ -28,11 +34,25 @@ Warning: Skipping directory 'MYSQLTEST_VARDIR/zoneinfo/posix/posix': to avoid infinite symlink recursion. ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time; ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id; -set @toggle=0; execute set_wsrep_myisam using @toggle; +\d | +IF (select count(*) from information_schema.global_variables where +variable_name='wsrep_on') = 1 THEN +ALTER TABLE time_zone ENGINE=MyISAM; +ALTER TABLE time_zone_name ENGINE=MyISAM; +ALTER TABLE time_zone_transition ENGINE=MyISAM; +ALTER TABLE time_zone_transition_type ENGINE=MyISAM; +END IF| +\d ; # Silent run -set @prep=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET GLOBAL wsrep_replicate_myisam=?', 'do ?'); -prepare set_wsrep_myisam from @prep; -set @toggle=1; execute set_wsrep_myisam using @toggle; +\d | +IF (select count(*) from information_schema.global_variables where +variable_name='wsrep_on') = 1 THEN +ALTER TABLE time_zone ENGINE=InnoDB; +ALTER TABLE time_zone_name ENGINE=InnoDB; +ALTER TABLE time_zone_transition ENGINE=InnoDB; +ALTER TABLE time_zone_transition_type ENGINE=InnoDB; +END IF| +\d ; TRUNCATE TABLE time_zone; TRUNCATE TABLE time_zone_name; TRUNCATE TABLE time_zone_transition; @@ -53,26 +73,56 @@ Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/posix/garbage' as time zone. Skipping it. ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time; ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id; -set @toggle=0; execute set_wsrep_myisam using @toggle; +\d | +IF (select count(*) from information_schema.global_variables where +variable_name='wsrep_on') = 1 THEN +ALTER TABLE time_zone ENGINE=MyISAM; +ALTER TABLE time_zone_name ENGINE=MyISAM; +ALTER TABLE time_zone_transition ENGINE=MyISAM; +ALTER TABLE time_zone_transition_type ENGINE=MyISAM; +END IF| +\d ; # # Testing with explicit timezonefile # -set @prep=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET GLOBAL wsrep_replicate_myisam=?', 'do ?'); -prepare set_wsrep_myisam from @prep; -set @toggle=1; execute set_wsrep_myisam using @toggle; INSERT INTO time_zone (Use_leap_seconds) VALUES ('N'); SET @time_zone_id= LAST_INSERT_ID(); INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('XXX', @time_zone_id); INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES (@time_zone_id, 0, 0, 0, 'GMT') ; -set @toggle=0; execute set_wsrep_myisam using @toggle; +\d | +IF (select count(*) from information_schema.global_variables where +variable_name='wsrep_on') = 1 THEN +ALTER TABLE time_zone ENGINE=MyISAM; +ALTER TABLE time_zone_name ENGINE=MyISAM; +ALTER TABLE time_zone_transition ENGINE=MyISAM; +ALTER TABLE time_zone_transition_type ENGINE=MyISAM; +END IF| +\d ; # # Testing --leap # -set @prep=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET GLOBAL wsrep_replicate_myisam=?', 'do ?'); -prepare set_wsrep_myisam from @prep; -set @toggle=1; execute set_wsrep_myisam using @toggle; +\d | +IF (select count(*) from information_schema.global_variables where +variable_name='wsrep_on') = 1 THEN +ALTER TABLE time_zone_leap_second ENGINE=InnoDB; +END IF| +\d ; TRUNCATE TABLE time_zone_leap_second; +\d | +IF (select count(*) from information_schema.global_variables where +variable_name='wsrep_on') = 1 THEN +ALTER TABLE time_zone_leap_second ENGINE=MyISAM; +END IF| +\d ; ALTER TABLE time_zone_leap_second ORDER BY Transition_time; -set @toggle=0; execute set_wsrep_myisam using @toggle; +\d | +IF (select count(*) from information_schema.global_variables where +variable_name='wsrep_on') = 1 THEN +ALTER TABLE time_zone ENGINE=MyISAM; +ALTER TABLE time_zone_name ENGINE=MyISAM; +ALTER TABLE time_zone_transition ENGINE=MyISAM; +ALTER TABLE time_zone_transition_type ENGINE=MyISAM; +END IF| +\d ; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/wsrep/r/mysql_tzinfo_to_sql_symlink_skip.result mariadb-10.3-10.3.20/mysql-test/suite/wsrep/r/mysql_tzinfo_to_sql_symlink_skip.result --- mariadb-10.3-10.3.17/mysql-test/suite/wsrep/r/mysql_tzinfo_to_sql_symlink_skip.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/wsrep/r/mysql_tzinfo_to_sql_symlink_skip.result 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,74 @@ +# +# MDEV-5226 mysql_tzinfo_to_sql errors with tzdata 2013f and above +# +# Verbose run +set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET SESSION SQL_LOG_BIN=?, WSREP_ON=OFF;', 'do ?'); +prepare set_wsrep_write_binlog from @prep1; +set @toggle=0; execute set_wsrep_write_binlog using @toggle; +TRUNCATE TABLE time_zone; +TRUNCATE TABLE time_zone_name; +TRUNCATE TABLE time_zone_transition; +TRUNCATE TABLE time_zone_transition_type; +INSERT INTO time_zone (Use_leap_seconds) VALUES ('N'); +SET @time_zone_id= LAST_INSERT_ID(); +INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('GMT', @time_zone_id); +INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES + (@time_zone_id, 0, 0, 0, 'GMT') +; +Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/garbage' as time zone. Skipping it. +Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/ignored.tab' as time zone. Skipping it. +INSERT INTO time_zone (Use_leap_seconds) VALUES ('N'); +SET @time_zone_id= LAST_INSERT_ID(); +INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('posix/GMT', @time_zone_id); +INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES + (@time_zone_id, 0, 0, 0, 'GMT') +; +Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/posix/garbage' as time zone. Skipping it. +Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/posix/ignored.tab' as time zone. Skipping it. +Warning: Skipping directory 'MYSQLTEST_VARDIR/zoneinfo/posix/posix': to avoid infinite symlink recursion. +ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time; +ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id; +# Silent run +set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET SESSION SQL_LOG_BIN=?, WSREP_ON=OFF;', 'do ?'); +prepare set_wsrep_write_binlog from @prep1; +set @toggle=0; execute set_wsrep_write_binlog using @toggle; +TRUNCATE TABLE time_zone; +TRUNCATE TABLE time_zone_name; +TRUNCATE TABLE time_zone_transition; +TRUNCATE TABLE time_zone_transition_type; +INSERT INTO time_zone (Use_leap_seconds) VALUES ('N'); +SET @time_zone_id= LAST_INSERT_ID(); +INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('GMT', @time_zone_id); +INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES + (@time_zone_id, 0, 0, 0, 'GMT') +; +Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/garbage' as time zone. Skipping it. +INSERT INTO time_zone (Use_leap_seconds) VALUES ('N'); +SET @time_zone_id= LAST_INSERT_ID(); +INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('posix/GMT', @time_zone_id); +INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES + (@time_zone_id, 0, 0, 0, 'GMT') +; +Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/posix/garbage' as time zone. Skipping it. +ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time; +ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id; +# +# Testing with explicit timezonefile +# +set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET SESSION SQL_LOG_BIN=?, WSREP_ON=OFF;', 'do ?'); +prepare set_wsrep_write_binlog from @prep1; +set @toggle=0; execute set_wsrep_write_binlog using @toggle; +INSERT INTO time_zone (Use_leap_seconds) VALUES ('N'); +SET @time_zone_id= LAST_INSERT_ID(); +INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('XXX', @time_zone_id); +INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES + (@time_zone_id, 0, 0, 0, 'GMT') +; +# +# Testing --leap +# +set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET SESSION SQL_LOG_BIN=?, WSREP_ON=OFF;', 'do ?'); +prepare set_wsrep_write_binlog from @prep1; +set @toggle=0; execute set_wsrep_write_binlog using @toggle; +TRUNCATE TABLE time_zone_leap_second; +ALTER TABLE time_zone_leap_second ORDER BY Transition_time; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/wsrep/r/variables.result mariadb-10.3-10.3.20/mysql-test/suite/wsrep/r/variables.result --- mariadb-10.3-10.3.17/mysql-test/suite/wsrep/r/variables.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/wsrep/r/variables.result 2019-11-06 16:01:57.000000000 +0000 @@ -190,14 +190,15 @@ # applier/rollbacker threads. SET GLOBAL wsrep_cluster_address= 'gcomm://'; # Wait for applier thread to get created 1. -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count'; -VARIABLE_VALUE +# Wait for applier thread to get created 2. +SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count'; +EXPECT_1 1 -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_rollbacker_thread_count'; -VARIABLE_VALUE +SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_rollbacker_thread_count'; +EXPECT_1 1 -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count'; -VARIABLE_VALUE +SELECT VARIABLE_VALUE AS EXPECT_2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count'; +EXPECT_2 2 SELECT @@global.wsrep_provider; @@global.wsrep_provider @@ -215,14 +216,14 @@ SET @wsrep_slave_threads_saved= @@global.wsrep_slave_threads; SET GLOBAL wsrep_slave_threads= 10; # Wait for 9 applier threads to get created. -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count'; -VARIABLE_VALUE +SELECT VARIABLE_VALUE AS EXPECT_10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count'; +EXPECT_10 10 -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_rollbacker_thread_count'; -VARIABLE_VALUE +SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_rollbacker_thread_count'; +EXPECT_1 1 -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count'; -VARIABLE_VALUE +SELECT VARIABLE_VALUE AS EXPECT_11 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count'; +EXPECT_11 11 SHOW STATUS LIKE 'threads_connected'; Variable_name Value diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/wsrep/t/mysql_tzinfo_to_sql_symlink_skip.test mariadb-10.3-10.3.20/mysql-test/suite/wsrep/t/mysql_tzinfo_to_sql_symlink_skip.test --- mariadb-10.3-10.3.17/mysql-test/suite/wsrep/t/mysql_tzinfo_to_sql_symlink_skip.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/wsrep/t/mysql_tzinfo_to_sql_symlink_skip.test 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,40 @@ +--source include/have_wsrep.inc +--source include/have_symlink.inc +--source include/not_windows.inc + +--echo # +--echo # MDEV-5226 mysql_tzinfo_to_sql errors with tzdata 2013f and above +--echo # + +--exec mkdir $MYSQLTEST_VARDIR/zoneinfo +--exec ln -s $MYSQLTEST_VARDIR/zoneinfo $MYSQLTEST_VARDIR/zoneinfo/posix +--copy_file std_data/zoneinfo/GMT $MYSQLTEST_VARDIR/zoneinfo/GMT +--copy_file std_data/words.dat $MYSQLTEST_VARDIR/zoneinfo/garbage +--copy_file std_data/words.dat $MYSQLTEST_VARDIR/zoneinfo/ignored.tab + +--echo # Verbose run +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--exec $MYSQL_TZINFO_TO_SQL --verbose --skip-write-binlog $MYSQLTEST_VARDIR/zoneinfo 2>&1 + +--echo # Silent run +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--exec $MYSQL_TZINFO_TO_SQL --skip-write-binlog $MYSQLTEST_VARDIR/zoneinfo 2>&1 + +--echo # +--echo # Testing with explicit timezonefile +--echo # + +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--exec $MYSQL_TZINFO_TO_SQL --skip-write-binlog $MYSQLTEST_VARDIR/zoneinfo/GMT XXX 2>&1 + +--echo # +--echo # Testing --leap +--echo # + +--exec $MYSQL_TZINFO_TO_SQL --leap --skip-write-binlog $MYSQLTEST_VARDIR/zoneinfo/GMT 2>&1 + +# +# Cleanup +# + +--exec rm -rf $MYSQLTEST_VARDIR/zoneinfo diff -Nru mariadb-10.3-10.3.17/mysql-test/suite/wsrep/t/variables.test mariadb-10.3-10.3.20/mysql-test/suite/wsrep/t/variables.test --- mariadb-10.3-10.3.17/mysql-test/suite/wsrep/t/variables.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite/wsrep/t/variables.test 2019-11-06 16:01:57.000000000 +0000 @@ -102,10 +102,13 @@ --echo # Wait for applier thread to get created 1. --let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count'; --source include/wait_condition.inc +--echo # Wait for applier thread to get created 2. +--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_rollbacker_thread_count'; +--source include/wait_condition.inc -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count'; -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_rollbacker_thread_count'; -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count'; +SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count'; +SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_rollbacker_thread_count'; +SELECT VARIABLE_VALUE AS EXPECT_2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count'; --replace_regex /.*libgalera_smm.*/libgalera_smm.so/ SELECT @@global.wsrep_provider; @@ -121,9 +124,9 @@ --let $wait_condition = SELECT VARIABLE_VALUE = 10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count'; --source include/wait_condition.inc -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count'; -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_rollbacker_thread_count'; -SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count'; +SELECT VARIABLE_VALUE AS EXPECT_10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count'; +SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_rollbacker_thread_count'; +SELECT VARIABLE_VALUE AS EXPECT_11 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count'; SHOW STATUS LIKE 'threads_connected'; diff -Nru mariadb-10.3-10.3.17/mysql-test/suite.pm mariadb-10.3-10.3.20/mysql-test/suite.pm --- mariadb-10.3-10.3.17/mysql-test/suite.pm 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/suite.pm 2019-11-06 16:01:57.000000000 +0000 @@ -54,11 +54,11 @@ $skip{'include/have_mariabackup.inc'} = 'Need mariabackup' unless ::have_mariabackup(); - $skip{'include/have_mariabackup.inc'} = 'Need ss' - unless ::which("ss"); + $skip{'include/have_mariabackup.inc'} = 'Need socket statistics utility' + unless IS_WINDOWS || ::which("ss"); $skip{'include/have_mariabackup.inc'} = 'Need socat or nc' - unless $ENV{MTR_GALERA_TFMT}; + unless IS_WINDOWS || $ENV{MTR_GALERA_TFMT}; $skip{'include/have_garbd.inc'} = 'Need garbd' unless ::have_garbd(); diff -Nru mariadb-10.3-10.3.17/mysql-test/unstable-tests mariadb-10.3-10.3.20/mysql-test/unstable-tests --- mariadb-10.3-10.3.17/mysql-test/unstable-tests 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/unstable-tests 2019-11-06 16:01:57.000000000 +0000 @@ -23,136 +23,271 @@ # ############################################################################## # -# Based on 10.3 5e112a26201d4b343df3e401f8695974a8fa852c +# Based on 10.3 9c6fec88b10bfe51d87f63e6a6ea474cd18d1952 +main.alter_table : Modified in 10.3.18 +main.alter_table_mdev539_maria : Include file modified in 10.3.18 +main.alter_table_mdev539_myisam : Include file modified in 10.3.18 main.alter_table_trans : MDEV-12084 - timeout +main.analyze : Modified in 10.3.18 +main.analyze_format_json : Modified in 10.3.18 +main.analyze_stmt : Modified in 10.3.18 +main.analyze_stmt_orderby : Modified in 10.3.18 +main.analyze_stmt_privileges2 : Modified in 10.3.18 main.analyze_stmt_slow_query_log : MDEV-12237 - Wrong result main.auth_named_pipe : MDEV-14724 - System error 2 -main.bootstrap : Modified in 10.1.41 -main.charset_client_win : Added in 10.3.17 -main.column_compression : Modified in 10.3.17 +main.auto_increment_ranges_innodb : Include file modified in 10.3.19 +main.auto_increment_ranges_myisam : Include file modified in 10.3.19 +main.bootstrap : Modified in 10.3.18 +main.bug13633383 : Modified in 10.3.18 +main.cast : Modified in 10.2.27 +main.compare : Modified in 10.3.19 +main.compound : Modified in 10.3.18 +main.compress : Include file modified in 10.3.18 main.connect : MDEV-17282 - Wrong result main.connect2 : MDEV-13885 - Server crash -main.connect_debug : Modified in 10.3.17 +main.constraints : Modified in 10.3.18 main.count_distinct2 : MDEV-11768 - timeout +main.create : Modified in 10.3.18 main.create_delayed : MDEV-10605 - failed with timeout main.create_drop_event : MDEV-16271 - Wrong result +main.cte_nonrecursive : Modified in 10.3.18 +main.cte_recursive : Modified in 10.3.18 +main.ctype_create : Modified in 10.2.27 +main.ctype_latin1_de : Modified in 10.2.27 +main.ctype_uca : Include file modified in 10.3.19 +main.ctype_uca_innodb : Include file modified in 10.3.19 main.ctype_ucs : MDEV-17681 - Data too long for column main.ctype_upgrade : MDEV-16945 - Error upon mysql_upgrade main.ctype_utf16 : MDEV-10675: timeout or extra warnings +main.ctype_utf16_def : Configuration modified in 10.3.18 main.ctype_utf16le : MDEV-10675: timeout or extra warnings -main.ctype_utf8_def_upgrade : Added in 10.3.16 -main.ctype_utf8mb4_innodb : MDEV-17744 - Timeout; MDEV-18567 - ASAN use-after-poison +main.ctype_utf8 : Include file modified in 10.3.19 +main.ctype_utf8mb4 : Modified in 10.3.18 +main.ctype_utf8mb4_heap : Include file modified in 10.3.18 +main.ctype_utf8mb4_innodb : MDEV-17744 - Timeout; MDEV-18567 - ASAN use-after-poison; include file modified in 10.3.18 +main.ctype_utf8mb4_myisam : Include file modified in 10.3.18 +main.custom_aggregates_i_s : Modified in 10.3.18 main.debug_sync : MDEV-10607 - internal error -main.derived : Modified in 10.3.17 -main.derived_cond_pushdown : Modified in 10.2.25 +main.default : Modified in 10.3.18 +main.derived : Modified in 10.3.18 +main.derived_cond_pushdown : MDEV-20532 - Floating point differences; modified in 10.3.18 main.derived_opt : MDEV-11768 - timeout -main.derived_view : Modified in 10.3.17 +main.derived_split_innodb : Modified in 10.3.18 +main.derived_view : Modified in 10.3.18 main.dirty_close : MDEV-19368 - mysqltest failed but provided no output -main.distinct : MDEV-14194 - Crash -main.drop_bad_db_type : MDEV-15676 - Wrong result -main.dyncol : MDEV-19455 - Extra warning -main.events_2 : MDEV-13277 - Crash -main.events_bugs : MDEV-12892 - Crash +main.distinct : MDEV-14194 - Crash; modified in 10.3.18 +main.drop_bad_db_type : MDEV-15676 - Wrong result; modified in 10.3.19 +main.drop_debug : Modified in 10.1.42 +main.dyncol : MDEV-19455 - Extra warning; modified in 10.3.18 +main.events_1 : Modified in 10.3.18 +main.events_2 : MDEV-13277 - Crash; modified in 10.3.18 +main.events_bugs : MDEV-12892 - Crash; modified in 10.3.18 +main.events_grant : Modified in 10.3.18 main.events_restart : MDEV-12236 - Server shutdown problem main.events_slowlog : MDEV-12821 - Wrong result +main.except : Modified in 10.3.18 +main.explain_json : Modified in 10.3.18 main.flush : MDEV-19368 - mysqltest failed but provided no output -main.func_json : Modified in 10.3.16 -main.gis : MDEV-13411 - wrong result on P8; modified in 10.3.16 -main.grant : Modified in 10.3.17 +main.flush2 : Modified in 10.2.27 +main.func_hybrid_type : Modified in 10.3.18 +main.func_isnull : Modified in 10.3.18 +main.func_json : Modified in 10.3.19 +main.func_math : MDEV-20532 - Floating point differences; modified in 10.3.19 +main.func_misc : Modified in 10.3.19 +main.func_str : Modified in 10.3.18 +main.function_defaults : Modified in 10.3.18 +main.gis : MDEV-13411 - wrong result on P8 +main.grant : Configuration added in 10.3.18 +main.grant2 : Configuration added in 10.3.18 +main.grant4 : Configuration added in 10.3.18 +main.grant_cache_no_prot : Include file modified in 10.2.27 +main.grant_cache_ps_prot : Include file modified in 10.2.27 +main.grant_explain_non_select : Modified in 10.3.18 +main.greedy_optimizer : Modified in 10.3.18 +main.group_by : Modified in 10.3.18 +main.group_min_max : Modified in 10.3.18 +main.handlersocket : Configuration added in 10.3.18 main.host_cache_size_functionality : MDEV-10606 - sporadic failure on shutdown +main.index_intersect : Modified in 10.3.18 main.index_intersect_innodb : MDEV-10643 - failed with timeout -main.index_merge_innodb : MDEV-7142 - Plan mismatch -main.information_schema_parameters : Modified in 10.3.17 +main.index_merge_innodb : MDEV-7142 - Plan mismatch; modified in 10.3.19 +main.index_merge_myisam : Modified in 10.3.19 +main.information_schema : Modified in 10.3.18 +main.information_schema-big : Modified in 10.3.18 +main.information_schema_db : Modified in 10.3.19 +main.information_schema_parameters : Modified in 10.3.18 +main.information_schema_routines : Modified in 10.3.18 +main.innodb_ext_key : Modified in 10.3.18 +main.innodb_icp : Modified in 10.3.18 main.innodb_mysql_lock : MDEV-7861 - Wrong result -main.join : Modified in 10.3.17 -main.join_cache : MDEV-17743 - Bad address from storage engine MyISAM; modified in 10.3.16 -main.join_nested : Modified in 10.3.16 -main.join_outer : Modified in 10.3.17 -main.join_outer_innodb : Modified in 10.3.17 -main.keywords : Modified in 10.3.17 +main.intersect : Modified in 10.3.18 +main.invisible_field_debug : Modified in 10.3.18 +main.join : Modified in 10.3.18 +main.join_cache : MDEV-17743 - Bad address from storage engine MyISAM; modified in 10.3.18 +main.join_nested_jcl6 : Modified in 10.3.18 +main.join_outer : Modified in 10.2.27 +main.join_outer_innodb : Modified in 10.3.18 +main.join_outer_jcl6 : Modified in 10.3.18 +main.kill : Modified in 10.3.18 main.kill-2 : MDEV-13257 - Wrong result main.kill_processlist-6619 : MDEV-10793 - Wrong result +main.limit_rows_examined : Modified in 10.3.18 main.loaddata : MDEV-19368 - mysqltest failed but provided no output -main.log_slow : MDEV-13263 - Wrong result +main.locale : MDEV-20521 - Missing warning +main.log_slow : MDEV-13263 - Wrong result; modified in 10.3.18 +main.log_slow_debug : Modified in 10.3.19 main.log_tables-big : MDEV-13408 - wrong result main.mdev-504 : MDEV-15171 - warning +main.mdev13607 : Modified in 10.3.18 main.mdev375 : MDEV-10607 - sporadic "can't connect" -main.merge : MDEV-10607 - sporadic "can't connect" -main.multi_update : Modified in 10.3.16 -main.multi_update_debug : MDEV-20136 - Debug sync point wait timed out; added in 10.3.16 -main.multi_update_innodb : Modified in 10.3.16 -main.mysql_client_test : MDEV-19369 - error: 5888, status: 23, errno: 2 +main.merge : MDEV-10607 - sporadic "can't connect"; modified in 10.3.18 +main.mrr_icp_extra : Modified in 10.3.18 +main.multi_update : Modified in 10.3.18 +main.multi_update_debug : MDEV-20136 - Debug sync point wait timed out +main.myisam : Modified in 10.3.19 +main.myisam_explain_non_select_all : Modified in 10.3.18 +main.myisam_icp : Modified in 10.3.18 +main.myisam_mrr : Modified in 10.3.18 +main.mysql : Modified in 10.3.18 +main.mysql_client_test : MDEV-19369 - error: 5888, status: 23, errno: 2; modified in 10.3.18 main.mysql_client_test_comp : MDEV-16641 - Error in exec main.mysql_client_test_nonblock : CONC-208 - Error on Power; MDEV-15096 - exec failed +main.mysql_comments : Modified in 10.3.18 main.mysql_upgrade_noengine : MDEV-14355 - Wrong result main.mysql_upgrade_ssl : MDEV-13492 - Unknown SSL error -main.mysqld--help : Modified in 10.3.17 -main.mysqldump : MDEV-14800 - Stack smashing detected; modified in 10.3.16 -main.mysqldump-compat-102 : Added in 10.3.17 -main.mysqldump_restore : Modified in 10.3.17 +main.mysqlcheck : Modified in 10.3.18 +main.mysqldump : MDEV-14800 - Stack smashing detected; modified in 10.3.18 +main.mysqldump-compat-102 : Modified in 10.3.18 +main.mysqldump-max : Modified in 10.2.27 +main.mysqldump-nl : Modified in 10.3.18 +main.mysqldump-utf8mb4 : Modified in 10.3.18 main.mysqlhotcopy_myisam : MDEV-10995 - Hang on debug main.mysqlslap : MDEV-11801 - timeout main.mysqltest : MDEV-13887 - Wrong result +main.named_pipe : Include file modified in 10.3.18 main.old-mode : MDEV-19373 - Wrong result -main.openssl_1 : MDEV-13492 - Unknown SSL error +main.openssl_1 : MDEV-13492 - Unknown SSL error; modified in 10.3.18 main.openssl_6975 : MDEV-17184 - Failures with OpenSSL 1.1.1 -main.order_by : Modified in 10.3.16 +main.opt_tvc : Modified in 10.3.18 +main.order_by_innodb : Modified in 10.3.19 main.order_by_optimizer_innodb : MDEV-10683 - Wrong result -main.partition_debug_sync : MDEV-15669 - Deadlock found when trying to get lock +main.partition_debug_sync : MDEV-15669 - Deadlock found when trying to get lock; modified in 10.3.19 +main.partition_example : Configuration added in 10.3.18 +main.partition_innodb : Modified in 10.3.19 main.partition_innodb_plugin : MDEV-12901 - Valgrind warnings main.partition_innodb_semi_consistent : MDEV-19411 - Failed to start mysqld.1 -main.plugin : Modified in 10.3.17 -main.plugin_auth : Modified in 10.3.17 -main.plugin_not_embedded : Modified in 10.3.17 -main.pool_of_threads : MDEV-18135 - SSL error: key too small -main.ps : MDEV-11017 - sporadic wrong Prepared_stmt_count; modified in 10.3.17 -main.ps_innodb : Added in 10.3.17 +main.partition_key_cache : Modified in 10.2.27 +main.partition_pruning : Modified in 10.3.18 +main.partition_range : Modified in 10.3.18 +main.partition_ucs2 : Added in 10.3.19 +main.partition_utf8 : Modified in 10.3.19 +main.plugin : Configuration added in 10.3.18 +main.plugin_innodb : Configuration added in 10.3.18 +main.plugin_load : Configuration modified in 10.3.18 +main.plugin_load_option : Configuration modified in 10.3.18 +main.plugin_not_embedded : Configuration added in 10.3.18 +main.pool_of_threads : MDEV-18135 - SSL error: key too small; modified in 10.3.18 +main.processlist : Modified in 10.3.19 +main.processlist_notembedded : Added in 10.3.19 +main.ps : MDEV-11017 - Sporadic wrong Prepared_stmt_count; configuration modified in 10.3.18 main.query_cache : MDEV-16180 - Wrong result -main.query_cache_debug : MDEV-15281 - Query cache is disabled +main.query_cache_debug : MDEV-15281 - Query cache is disabled; modified in 10.3.18 +main.query_cache_notembedded : Modified in 10.3.18 +main.query_cache_ps_no_prot : Modified in 10.3.18 +main.range : Modified in 10.3.18 +main.range_interrupted-13751 : Modified in 10.3.18 +main.range_mrr_icp : Modified in 10.3.18 +main.range_vs_index_merge : Modified in 10.3.18 main.range_vs_index_merge_innodb : MDEV-15283 - Server has gone away -main.repair_symlink-5543 : Modified in 10.3.17 +main.repair : Modified in 10.3.18 +main.schema : Modified in 10.3.18 +main.select : MDEV-20532 - Floating point differences; modified in 10.3.18 +main.select_jcl6 : MDEV-20532 - Floating point differences +main.select_pkeycache : MDEV-20532 - Floating point differences +main.selectivity : Modified in 10.3.19 +main.selectivity_innodb : Modified in 10.3.18 +main.selectivity_no_engine : Modified in 10.3.18 main.set_statement : MDEV-13183 - Wrong result main.set_statement_notembedded : MDEV-19414 - Wrong result -main.shm : MDEV-12727 - Mismatch, ERROR 2013 +main.shm : MDEV-12727 - Mismatch, ERROR 2013; include file modified in 10.3.18 +main.show_bad_definer-5553 : Modified in 10.3.18 +main.show_check : Modified in 10.3.18 main.show_explain : MDEV-10674 - Wrong result code -main.sp : MDEV-7866 - Mismatch; modified in 10.3.17 -main.sp-security : MDEV-10607 - sporadic "can't connect" +main.sp : MDEV-7866 - Mismatch; modified in 10.3.19 +main.sp-anchor-type : Modified in 10.3.18 +main.sp-code : Modified in 10.3.19 +main.sp-error : Modified in 10.3.18 +main.sp-security : MDEV-10607 - sporadic "can't connect"; modified in 10.3.18 main.sp_notembedded : MDEV-10607 - internal error -main.ssl : MDEV-17184 - Failures with OpenSSL 1.1.1 +main.ssl : MDEV-17184 - Failures with OpenSSL 1.1.1; modified in 10.3.18 +main.ssl-big : Modified in 10.3.18 main.ssl_ca : MDEV-10895 - SSL connection error on Power main.ssl_cipher : MDEV-17184 - Failures with OpenSSL 1.1.1 +main.ssl_compress : Modified in 10.3.18 main.ssl_connect : MDEV-13492 - Unknown SSL error main.ssl_crl : MDEV-19119 - Wrong error code main.ssl_timeout : MDEV-11244 - Crash -main.stat_tables : Modified in 10.3.16 +main.stat_tables : Modified in 10.3.19 +main.stat_tables-enospc : Modified in 10.3.18 main.stat_tables_par : MDEV-13266 - Wrong result main.stat_tables_par_innodb : MDEV-14155 - Wrong rounding +main.statistics : Modified in 10.3.18 main.status : MDEV-13255 - Wrong result -main.subselect : Modified in 10.3.17 +main.subselect : MDEV-20551 - Valgrind failure; modified in 10.3.18 +main.subselect2 : Modified in 10.3.18 +main.subselect3 : Modified in 10.3.18 +main.subselect3_jcl6 : Modified in 10.3.18 +main.subselect4 : Modified in 10.3.18 +main.subselect_exists2in : Modified in 10.3.18 +main.subselect_extra : Modified in 10.3.18 main.subselect_innodb : MDEV-10614 - Wrong result -main.subselect_no_semijoin : Modified in 10.3.16 -main.subselect_sj : Modified in 10.3.16 -main.subselect_sj_mat : Modified in 10.3.16 +main.subselect_mat_cost : Modified in 10.3.18 +main.subselect_mat_cost_bugs : Modified in 10.3.18 +main.subselect_sj : Modified in 10.3.19 +main.subselect_sj2 : Modified in 10.2.27 +main.subselect_sj2_jcl6 : Modified in 10.3.18 +main.subselect_sj2_mat : Modified in 10.3.18 +main.subselect_sj_jcl6 : Modified in 10.3.18 +main.subselect_sj_mat : Modified in 10.3.18 +main.subselect_sj_nonmerged : Modified in 10.3.18 +main.sum_distinct-big : Modified in 10.3.19 +main.system_mysql_db_fix50117 : Modified in 10.3.18 +main.system_time_debug : Added in 10.3.18 +main.table_options-5867 : Configuration added in 10.3.18 +main.table_value_constr : Modified in 10.3.19 main.tc_heuristic_recover : MDEV-14189 - Wrong result -main.temp_table : Modified in 10.3.16 -main.trigger_null-8605 : Modified in 10.3.16 +main.trigger : Modified in 10.3.18 +main.trigger-compat : Modified in 10.3.18 +main.trigger_notembedded : Modified in 10.3.18 +main.truncate_badse : Configuration added in 10.3.18 main.type_blob : MDEV-15195 - Wrong result -main.type_datetime : Modified in 10.3.17 +main.type_date : Modified in 10.3.18 +main.type_datetime : Modified in 10.3.18 main.type_datetime_hires : MDEV-10687 - Timeout -main.type_float : Modified in 10.3.16 -main.type_varchar : Modified in 10.3.17 -main.userstat : MDEV-12904 - SSL errors -main.view : Modified in 10.3.17 +main.type_float : MDEV-20532 - Floating point differences +main.type_int : Modified in 10.3.18 +main.type_newdecimal : Modified in 10.3.19 +main.type_time_6065 : Modified in 10.3.18 +main.type_varchar : Configuration added in 10.3.18 +main.union : Modified in 10.3.18 +main.upgrade : Configuration added in 10.3.18 +main.userstat : MDEV-12904 - SSL errors; configuration added in 10.3.18 +main.variables : Modified in 10.3.18 +main.variables-notembedded : Modified in 10.2.27 +main.view : Modified in 10.3.18 main.wait_timeout : MDEV-19023 - Lost connection to MySQL server during query -main.win : Modified in 10.3.16 +main.win : Modified in 10.3.18 +main.win_percentile : Modified in 10.3.18 main.xa : MDEV-11769 - lock wait timeout +main.xtradb_mrr : Modified in 10.3.18 #----------------------------------------------------------------------- archive.archive_bitfield : MDEV-11771 - table is marked as crashed archive.archive_symlink : MDEV-12170 - unexpected error on rmdir archive.discover : MDEV-10510 - Table is marked as crashed +archive.discover_5438 : Configuration added in 10.3.18 archive.mysqlhotcopy_archive : MDEV-10995 - Hang on debug #----------------------------------------------------------------------- @@ -161,33 +296,44 @@ #----------------------------------------------------------------------- -binlog.binlog_commit_wait : MDEV-10150 - Mismatch -binlog.binlog_killed : MDEV-12925 - Wrong result -binlog.binlog_max_extension : MDEV-19762 - Crash on shutdown -binlog.binlog_mysqlbinlog_stop_never : Added in 10.3.17 -binlog.binlog_parallel_replication_marks_row : Include file modified in 10.3.17 -binlog.binlog_parallel_replication_marks_stm_mix : Include file modified in 10.3.17 -binlog.binlog_row_drop_tmp_tbl : Include file modified in 10.3.17 -binlog.binlog_stm_drop_tmp_tbl : MDEV-20188 - Unknown table on exec; include file modified in 10.3.17 -binlog.binlog_xa_recover : MDEV-8517 - Extra checkpoint -binlog.flashback-largebinlog : MDEV-19764 - Out of memory; added in 10.3.16 -binlog.load_data_stm_view : MDEV-16948 - Wrong result +binlog.binlog_commit_wait : MDEV-10150 - Mismatch +binlog.binlog_innodb : Configuration added in 10.3.18 +binlog.binlog_killed : MDEV-12925 - Wrong result +binlog.binlog_max_extension : MDEV-19762 - Crash on shutdown; modified in 10.3.18 +binlog.binlog_mixed_cache_stat : Include file modified in 10.3.18 +binlog.binlog_mysqlbinlog2 : Modified in 10.2.27 +binlog.binlog_mysqlbinlog_row : Modified in 10.3.19 +binlog.binlog_mysqlbinlog_row_innodb : MDEV-20530 - Binary files differ +binlog.binlog_mysqlbinlog_row_myisam : MDEV-20530 - Binary files differ +binlog.binlog_row_cache_stat : Include file modified in 10.3.18 +binlog.binlog_row_drop_tmp_tbl : Include file modified in 10.3.18 +binlog.binlog_stm_cache_stat : Include file modified in 10.3.18 +binlog.binlog_stm_drop_tmp_tbl : Include file modified in 10.3.18 +binlog.binlog_xa_recover : MDEV-8517 - Extra checkpoint +binlog.flashback-largebinlog : MDEV-19764 - Out of memory; modified in 10.3.18 +binlog.load_data_stm_view : MDEV-16948 - Wrong result +binlog.read_only : Added in 10.3.19 +binlog.read_only_statement : Added in 10.3.19 #----------------------------------------------------------------------- +binlog_encryption.binlog_mdev_20574_old_binlog : Added in 10.3.19 binlog_encryption.binlog_xa_recover : MDEV-12908 - Extra checkpoint binlog_encryption.encrypted_master : MDEV-14201 - Extra warnings binlog_encryption.encrypted_master_switch_to_unencrypted : MDEV-14190 - Can't init tc log binlog_encryption.encrypted_slave : MDEV-18135 - SSL error: key too small binlog_encryption.encryption_combo : MDEV-14199 - Table is marked as crashed -binlog_encryption.rpl_binlog_errors : MDEV-12742 - Crash +binlog_encryption.mysqlbinlog : Modified in 10.3.19 +binlog_encryption.rpl_binlog_errors : MDEV-12742 - Crash; include file modified in 10.3.19 binlog_encryption.rpl_checksum : MDEV-16951 - Wrong result +binlog_encryption.rpl_corruption : MDEV-20953 - Wrong error code binlog_encryption.rpl_gtid_basic : MDEV-16947 - Server failed to start binlog_encryption.rpl_loadfile : MDEV-16645 - Timeout in include binlog_encryption.rpl_parallel : MDEV-10653 - Timeout in include +binlog_encryption.rpl_parallel_ignored_errors : Added in 10.3.19 binlog_encryption.rpl_relayrotate : MDEV-15194 - Timeout binlog_encryption.rpl_semi_sync : MDEV-11673 - Valgrind -binlog_encryption.rpl_skip_replication : MDEV-13571 - Unexpected warning +binlog_encryption.rpl_skip_replication : MDEV-13571 - Unexpected warning; MDEV-20573 - Wrong result binlog_encryption.rpl_ssl : MDEV-14507 - Timeouts binlog_encryption.rpl_stm_relay_ign_space : MDEV-19375 - Test assertion failed binlog_encryption.rpl_sync : MDEV-13830 - Assertion failure @@ -195,51 +341,55 @@ #----------------------------------------------------------------------- -compat/oracle.column_compression : Modified in 10.3.17 -compat/oracle.keywords : Added in 10.3.17 -compat/oracle.mysqldump_restore : Added in 10.3.17 +compat/oracle.sp : Modified in 10.3.18 +compat/oracle.sp-package : Modified in 10.3.18 +compat/oracle.sp-package-mysqldump : Modified in 10.3.18 +compat/oracle.sp-package-security : Modified in 10.3.18 +compat/oracle.type_blob : Modified in 10.3.18 #----------------------------------------------------------------------- connect.alter : MDEV-18135 - SSL error: key too small connect.drop-open-error : MDEV-18135 - SSL error: key too small +connect.grant : Modified in 10.3.19 +connect.grant2 : Modified in 10.3.19 +connect.ini_grant : Modified in 10.3.19 connect.json : MDEV-18135 - SSL error: key too small +connect.mysql_grant : Modified in 10.3.19 connect.part_file : MDEV-18135 - SSL error: key too small connect.part_table : MDEV-18135 - SSL error: key too small connect.pivot : MDEV-14803 - Failed to discover table connect.secure_file_priv : MDEV-18135 - SSL error: key too small connect.vcol : MDEV-12374 - Fails on Windows +connect.xml2_grant : Include file modified in 10.3.19 +connect.xml_grant : Include file modified in 10.3.19 connect.zip : MDEV-13884 - Wrong result #----------------------------------------------------------------------- -disks.disks_notembedded : Added in 10.3.17 - -#----------------------------------------------------------------------- - -encryption.compressed_import_tablespace : Added in 10.3.16 -encryption.corrupted_during_recovery : Modified in 10.3.16 encryption.create_or_replace : MDEV-12694 - Timeout; MDEV-16115 - Trying to access tablespace encryption.debug_key_management : MDEV-13841 - Timeout encryption.encrypt_and_grep : MDEV-13765 - Wrong result -encryption.innochecksum : MDEV-13644 - Assertion failure; modified in 10.3.17 +encryption.file_creation : Added in 10.3.18 +encryption.innochecksum : MDEV-13644 - Assertion failure encryption.innodb-bad-key-change2 : MDEV-19118 - Can't connect to local MySQL server through socket -encryption.innodb-checksum-algorithm : MDEV-12898 - Deadlock of threads; MDEV-16896 - Server crash +encryption.innodb-checksum-algorithm : MDEV-16896 - Server crash encryption.innodb-compressed-blob : MDEV-14728 - Unable to get certificate encryption.innodb-discard-import : MDEV-19113 - Timeout -encryption.innodb-encryption-alter : MDEV-13566 - Lock wait timeout; modified in 10.3.17 +encryption.innodb-encryption-alter : MDEV-13566 - Lock wait timeout encryption.innodb-first-page-read : MDEV-14356 - Timeout in wait condition -encryption.innodb-force-corrupt : MDEV-17286 - SSL error; modified in 10.3.16 +encryption.innodb-force-corrupt : MDEV-17286 - SSL error encryption.innodb-missing-key : MDEV-14728 - SSL error encryption.innodb-page_encryption : MDEV-10641 - mutex problem encryption.innodb-page_encryption_log_encryption : MDEV-17339 - Crash on restart encryption.innodb-read-only : MDEV-16563 - Crash on startup -encryption.innodb-redo-badkey : MDEV-12898 - Server hang on startup +encryption.innodb-redo-badkey : Re-enabled in 10.3.19; modified in 10.3.19 encryption.innodb-remove-encryption : MDEV-16493 - Timeout in wait condition encryption.innodb-spatial-index : MDEV-13746 - Wrong result encryption.innodb_encrypt_key_rotation_age : MDEV-19763 - Timeout encryption.innodb_encrypt_log : MDEV-13725 - Wrong result -encryption.innodb_encrypt_temporary_tables : MDEV-20142 - Wrong result; added in 10.3.17 +encryption.innodb_encrypt_log_corruption : Configuration modified in 10.3.18 +encryption.innodb_encrypt_temporary_tables : MDEV-20142 - Wrong result encryption.innodb_encryption : MDEV-15675 - Timeout encryption.innodb_encryption-page-compression : MDEV-12630 - crash or assertion failure encryption.innodb_encryption_discard_import : MDEV-16116 - Wrong result @@ -251,6 +401,7 @@ encryption.innodb_scrub : MDEV-8139 - scrubbing tests need fixing encryption.innodb_scrub_background : MDEV-8139 - scrubbing tests need fixing encryption.innodb_scrub_compressed : MDEV-8139 - scrubbing tests need fixing +encryption.tempfiles : Modified in 10.2.27 #----------------------------------------------------------------------- @@ -272,12 +423,41 @@ federated.federated_partition : MDEV-10417 - Fails on Mips federated.federated_transactions : MDEV-10617 - Wrong checksum federated.federatedx : MDEV-10617 - Wrong checksum +federated.federatedx_versioning : Modified in 10.3.19 #----------------------------------------------------------------------- -funcs_1.memory_views : MDEV-11773 - timeout -funcs_1.processlist_val_no_prot : MDEV-11223 - Wrong result -funcs_1.processlist_val_ps : MDEV-12175 - Wrong plan +funcs_1.innodb_storedproc_07 : Include file modified in 10.3.18 +funcs_1.innodb_storedproc_08 : Include file modified in 10.3.18 +funcs_1.innodb_trig_03e : Modified in 10.3.18 +funcs_1.is_basics_mixed : Modified in 10.3.19 +funcs_1.is_columns : Modified in 10.3.18 +funcs_1.is_columns_innodb : Modified in 10.3.18 +funcs_1.is_columns_memory : Modified in 10.3.18 +funcs_1.is_columns_myisam : Modified in 10.3.18 +funcs_1.is_routines : Include file modified in 10.3.18 +funcs_1.is_routines_embedded : Include file modified in 10.3.18 +funcs_1.is_schemata : Include file modified in 10.3.18 +funcs_1.is_schemata_embedded : Include file modified in 10.3.18 +funcs_1.is_schemata_is_mysql_test : Modified in 10.3.18 +funcs_1.is_tables : Include file modified in 10.3.18 +funcs_1.is_tables_embedded : Include file modified in 10.3.18 +funcs_1.is_tables_innodb : Include file modified in 10.3.18 +funcs_1.is_tables_memory : Include file modified in 10.3.18 +funcs_1.is_tables_myisam : Include file modified in 10.3.18 +funcs_1.is_tables_myisam_embedded : Include file modified in 10.3.18 +funcs_1.is_triggers : Include file modified in 10.3.18 +funcs_1.is_triggers_embedded : Include file modified in 10.3.18 +funcs_1.memory_storedproc_07 : Include file modified in 10.3.18 +funcs_1.memory_storedproc_08 : Include file modified in 10.3.18 +funcs_1.memory_trig_03e : Modified in 10.3.18 +funcs_1.memory_views : MDEV-11773 - timeout +funcs_1.myisam_storedproc_07 : Include file modified in 10.3.18 +funcs_1.myisam_storedproc_08 : Include file modified in 10.3.18 +funcs_1.myisam_trig_03e : Modified in 10.3.18 +funcs_1.processlist_val_no_prot : MDEV-11223 - Wrong result +funcs_1.processlist_val_ps : MDEV-12175 - Wrong plan +funcs_1.storedproc : Modified in 10.3.18 #----------------------------------------------------------------------- @@ -286,7 +466,8 @@ #----------------------------------------------------------------------- -funcs_2/charset.* : MDEV-10999 - Not maintained +funcs_2/charset.* : MDEV-10999 - Not maintained +funcs_2/charset.charset_master : Modified in 10.3.18 #----------------------------------------------------------------------- @@ -299,111 +480,114 @@ #----------------------------------------------------------------------- gcol.gcol_rollback : MDEV-16954 - Unknown storage engine 'InnoDB' -gcol.innodb_virtual_basic : MDEV-16950 - Failing assertion +gcol.gcol_select_innodb : Include file modified in 10.2.27 +gcol.gcol_select_myisam : Include file modified in 10.2.27 +gcol.innodb_virtual_basic : MDEV-16950 - Failing assertion; modified in 10.3.18 gcol.innodb_virtual_debug : MDEV-19114 - Assertion failure -gcol.innodb_virtual_debug_purge : MDEV-16952 - Wrong result +gcol.innodb_virtual_debug_purge : MDEV-16952 - Wrong result; modified in 10.3.19 gcol.innodb_virtual_fk_restart : MDEV-17466 - Assertion failure -gcol.innodb_virtual_purge : Modified in 10.2.25 +gcol.innodb_virtual_index : Modified in 10.3.18 #----------------------------------------------------------------------- innodb.101_compatibility : MDEV-13891 - Wrong result -innodb.alter_copy : MDEV-16181 - Assertion failure +innodb.alter_algorithm : Modified in 10.3.19 +innodb.alter_copy : MDEV-16181 - Assertion failure; modified in 10.3.18 innodb.alter_crash : MDEV-16944 - The process cannot access the file -innodb.alter_large_dml : MDEV-20148 - Debug sync point wait timed out; added in 10.3.17 -innodb.alter_missing_tablespace : Modified in 10.3.17 +innodb.alter_large_dml : MDEV-20148 - Debug sync point wait timed out +innodb.auto_increment_dup : Modified in 10.3.18 innodb.autoinc_persist : MDEV-15282 - Assertion failure innodb.binlog_consistent : MDEV-10618 - Server fails to start -innodb.blob-crash : Added in 10.3.17 -innodb.check_ibd_filesize : Added in 10.3.17 -innodb.corrupted_during_recovery : Modified in 10.3.16 -innodb.create_select : Added in 10.3.17 +innodb.blob-crash : MDEV-20481 - Crash during recovery innodb.doublewrite : MDEV-12905 - Server crash -innodb.foreign-keys : Modified in 10.3.17 +innodb.foreign-keys : Modified in 10.3.18 +innodb.foreign_key : Modified in 10.3.18 innodb.group_commit_crash : MDEV-14191 - InnoDB registration failed innodb.group_commit_crash_no_optimize_thread : MDEV-13830 - Assertion failure -innodb.ibuf_not_empty : MDEV-19021 - Wrong result -innodb.innodb-16k : Modified in 10.3.17 -innodb.innodb-32k : Modified in 10.3.17 -innodb.innodb-32k-crash : MDEV-16953 - Corrupt log record found; MDEV-20194 - Extra warning; modified in 10.3.17 -innodb.innodb-64k-crash : MDEV-13872 - Failure and crash on startup; modified in 10.3.17 +innodb.ibuf_not_empty : MDEV-19021 - Wrong result; modified in 10.3.19 +innodb.information_schema_grants : Added in 10.3.19 +innodb.innodb-32k-crash : MDEV-20194 - Extra warning +innodb.innodb-64k-crash : MDEV-13872 - Failure and crash on startup +innodb.innodb-alter : Modified in 10.3.18 innodb.innodb-alter-debug : MDEV-13182 - InnoDB: adjusting FSP_SPACE_FLAGS +innodb.innodb-alter-nullable : Modified in 10.3.19 innodb.innodb-alter-table : MDEV-10619 - Testcase timeout -innodb.innodb-alter-tempfile : MDEV-15285 - Table already exists -innodb.innodb-autoinc : Modified in 10.3.17 +innodb.innodb-autoinc : Modified in 10.3.19 innodb.innodb-bigblob : MDEV-18655 - ASAN unknown crash innodb.innodb-blob : MDEV-12053 - Client crash -innodb.innodb-change-buffer-recovery : MDEV-19115 - Lost connection to MySQL server during query +innodb.innodb-change-buffer-recovery : MDEV-19115 - Lost connection to MySQL server during query; modified in 10.3.19 innodb.innodb-fk : MDEV-13832 - Assertion failure on shutdown -innodb.innodb-get-fk : MDEV-13276 - Server crash +innodb.innodb-fkcheck : Modified in 10.3.18 +innodb.innodb-get-fk : MDEV-13276 - Server crash; modified in 10.3.18 innodb.innodb-index-online : MDEV-14809 - Cannot save statistics +innodb.innodb-mdev7046 : Modified in 10.3.18 innodb.innodb-page_compression_default : MDEV-13644 - Assertion failure innodb.innodb-page_compression_lzma : MDEV-14353 - Wrong result innodb.innodb-page_compression_snappy : MDEV-13644 - Assertion failure innodb.innodb-page_compression_tables : MDEV-13644 - Assertion failure innodb.innodb-page_compression_zip : MDEV-10641 - mutex problem -innodb.innodb-system-table-view : MDEV-20149 - Wrong result; added in 10.3.17 +innodb.innodb-read-view : Added in 10.3.18 +innodb.innodb-system-table-view : Modified in 10.3.18 innodb.innodb-table-online : MDEV-13894 - Wrong result -innodb.innodb-virtual-columns-debug : MDEV-20143 - Wrong result; added in 10.3.17 +innodb.innodb-virtual-columns-debug : Modified in 10.3.19 innodb.innodb-wl5522 : MDEV-13644 - Assertion failure -innodb.innodb-wl5522-debug : MDEV-14200 - Wrong errno -innodb.innodb-wl5980-debug : Added in 10.3.17 -innodb.innodb_buffer_pool_dump_pct : MDEV-20139 - Timeout in wait_condition.inc; added in 10.3.17 +innodb.innodb-wl5522-debug : MDEV-14200 - Wrong errno; modified in 10.3.18 +innodb.innodb_buffer_pool_dump_pct : MDEV-20139 - Timeout in wait_condition.inc innodb.innodb_buffer_pool_resize : MDEV-16964 - Assertion failure innodb.innodb_buffer_pool_resize_with_chunks : MDEV-16964 - Assertion failure innodb.innodb_bug14147491 : MDEV-11808 - Index is corrupt innodb.innodb_bug30423 : MDEV-7311 - Wrong result +innodb.innodb_bug47167 : MDEV-20524 - Table 'user' is marked as crashed and should be repaired innodb.innodb_bug48024 : MDEV-14352 - Assertion failure innodb.innodb_bug59641 : MDEV-13830 - Assertion failure +innodb.innodb_bug68148 : Modified in 10.3.18 +innodb.innodb_bug84958 : Added in 10.3.18 +innodb.innodb_bulk_create_index_debug : Include file modified in 10.3.18 +innodb.innodb_bulk_create_index_flush : Configuration added in 10.3.18 innodb.innodb_bulk_create_index_replication : MDEV-15273 - Slave failed to start innodb.innodb_defrag_stats_many_tables : MDEV-14198 - Table is full -innodb.innodb_force_recovery : Modified in 10.3.16 +innodb.innodb_force_recovery : Modified in 10.3.19 innodb.innodb_information_schema : MDEV-8851 - Wrong result -innodb.innodb_max_recordsize_32k : MDEV-14801 - Operation failed; modified in 10.3.17 -innodb.innodb_max_recordsize_64k : MDEV-15203 - Wrong result; modified in 10.3.17 +innodb.innodb_max_recordsize_32k : MDEV-14801 - Operation failed +innodb.innodb_max_recordsize_64k : MDEV-15203 - Wrong result innodb.innodb_monitor : MDEV-10939 - Testcase timeout -innodb.innodb_mysql : MDEV-19873 - Wrong result; modified in 10.3.17 +innodb.innodb_mysql : MDEV-19873 - Wrong result +innodb.innodb_simulate_comp_failures_small : MDEV-20526 - ASAN use-after-poison innodb.innodb_stats : MDEV-10682 - wrong result -innodb.innodb_stats_persistent : MDEV-17745 - Wrong result +innodb.innodb_stats_persistent : MDEV-17745 - Wrong result; modified in 10.3.19 innodb.innodb_stats_persistent_debug : MDEV-14801 - Operation failed innodb.innodb_sys_semaphore_waits : MDEV-10331 - Semaphore wait innodb.innodb_zip_innochecksum2 : MDEV-13882 - Warning: difficult to find free blocks -innodb.instant_alter : Modified in 10.3.17 -innodb.instant_alter_bugs : Modified in 10.3.17 -innodb.instant_alter_debug : Modified in 10.3.17 +innodb.instant_alter : Modified in 10.3.18 +innodb.instant_alter_bugs : Modified in 10.3.19 +innodb.log_alter_table : Configuration added in 10.3.18 innodb.log_corruption : MDEV-13251 - Wrong result innodb.log_data_file_size : MDEV-14204 - Server failed to start innodb.log_file_name : MDEV-14193 - Exception innodb.log_file_size : MDEV-15668 - Not found pattern -innodb.max_record_size : Added in 10.3.17 -innodb.missing_tablespaces : Added in 10.3.17 innodb.monitor : MDEV-16179 - Wrong result -innodb.page_id_innochecksum : Added in 10.3.17 -innodb.purge : Added in 10.3.17 innodb.purge_secondary : MDEV-15681 - Wrong result -innodb.purge_secondary_mdev-16222 : Added in 10.3.17 +innodb.purge_secondary_mdev-16222 : MDEV-20528 - Debug sync point wait timed out innodb.purge_thread_shutdown : MDEV-13792 - Wrong result innodb.read_only_recovery : MDEV-13886 - Server crash -innodb.recovery_shutdown : MDEV-15671 - Checksum mismatch in datafile +innodb.recovery_shutdown : MDEV-15671 - Checksum mismatch in datafile; modified in 10.3.18 innodb.row_format_redundant : MDEV-15192 - Trying to access missing tablespace -innodb.strict_mode : Modified in 10.3.17 +innodb.stat_tables : Added in 10.3.19 innodb.table_definition_cache_debug : MDEV-14206 - Extra warning innodb.table_flags : MDEV-13572 - Wrong result; MDEV-19374 - Server failed to start -innodb.temp_table_savepoint : MDEV-16182 - Wrong result innodb.temporary_table : MDEV-13265 - Wrong result -innodb.truncate_missing : Modified in 10.3.17 -innodb.trx_id_future : MDEV-20138 - Table doesn't exist in engine; added in 10.3.17 -innodb.undo_log : Modified in 10.3.17 -innodb.undo_truncate : MDEV-17340 - Server hung -innodb.undo_truncate_recover : MDEV-17679 - Server has gone away +innodb.temporary_table_optimization : Modified in 10.3.19 +innodb.trx_id_future : Modified in 10.3.18 +innodb.undo_truncate : MDEV-17340 - Server hung; MDEV-20840 - Sporadic timeout +innodb.undo_truncate_recover : MDEV-17679 - Server has gone away; modified in 10.3.18 innodb.update_time : MDEV-14804 - Wrong result innodb.xa_recovery : MDEV-15279 - mysqld got exception #----------------------------------------------------------------------- -innodb_fts.fulltext2 : Modified in 10.3.17 -innodb_fts.innodb_ft_aux_table : Added in 10.3.16 -innodb_fts.innodb_fts_misc : Modified in 10.3.17 +innodb_fts.concurrent_insert : Modified in 10.3.19 +innodb_fts.crash_recovery : Modified in 10.3.19 +innodb_fts.innodb_fts_misc : Modified in 10.3.19 innodb_fts.innodb_fts_misc_debug : MDEV-14156 - Unexpected warning innodb_fts.innodb_fts_plugin : MDEV-13888 - Errors in server log innodb_fts.innodb_fts_stopword_charset : MDEV-13259 - Table crashed @@ -413,46 +597,54 @@ #----------------------------------------------------------------------- innodb_gis.alter_spatial_index : MDEV-13745 - Server crash -innodb_gis.kill_server : MDEV-16941 - Checksum mismatch -innodb_gis.rtree_add_index : Added in 10.3.16 -innodb_gis.rtree_compress2 : MDEV-16269 - Wrong result +innodb_gis.rtree_compress2 : MDEV-16269 - Wrong result; modified in 10.3.18 innodb_gis.rtree_concurrent_srch : MDEV-15284 - Wrong result with embedded innodb_gis.rtree_purge : MDEV-15275 - Timeout innodb_gis.rtree_recovery : MDEV-15274 - Error on check innodb_gis.rtree_split : MDEV-14208 - Too many arguments innodb_gis.rtree_undo : MDEV-14456 - Timeout in include file innodb_gis.types : MDEV-15679 - Table is marked as crashed +innodb_gis.update_root : Modified in 10.3.18 #----------------------------------------------------------------------- innodb_zip.cmp_per_index : MDEV-14490 - Table is marked as crashed innodb_zip.innochecksum_3 : MDEV-13279 - Extra warnings -innodb_zip.wl5522_debug_zip : MDEV-11600 - Operating system error number 2 +innodb_zip.wl5522_debug_zip : MDEV-11600 - Operating system error number 2; modified in 10.3.18 innodb_zip.wl6470_1 : MDEV-14240 - Assertion failure innodb_zip.wl6501_1 : MDEV-10891 - Can't create UNIX socket innodb_zip.wl6501_scale_1 : MDEV-13254 - Timeout, MDEV-14104 - Error 192 #----------------------------------------------------------------------- -maria.alter : Modified in 10.3.17 +maria.icp : Modified in 10.3.18 maria.insert_select : MDEV-12757 - Timeout maria.insert_select-7314 : MDEV-16492 - Timeout -maria.kill : Added in 10.3.17 +maria.lock : Modified in 10.3.19 maria.maria : MDEV-14430 - Extra warning -maria.maria-no-logging : MDEV-20196 - Crash on shutdown or server can't start -maria.temporary : Added in 10.3.17 +maria.maria-big : Modified in 10.3.18 +maria.maria-gis-recovery : Modified in 10.3.18 +maria.maria-no-logging : MDEV-20196 - Crash on shutdown or server can't start; modified in 10.3.18 +maria.maria-recover : Modified in 10.3.18 +maria.maria-recovery : Modified in 10.3.18 +maria.maria3 : Modified in 10.3.18 +maria.partition : Added in 10.3.18 #----------------------------------------------------------------------- mariabackup.absolute_ibdata_paths : MDEV-16571 - Wrong result mariabackup.apply-log-only : MDEV-20135 - Timeout +mariabackup.big_innodb_log : Added in 10.3.18 mariabackup.data_directory : MDEV-15270 - Error on exec +mariabackup.extra_lsndir_stream : Added in 10.3.19 mariabackup.full_backup : MDEV-16571 - Wrong result mariabackup.huge_lsn : MDEV-15662 - Sequence number is in the future; MDEV-18569 - Table doesn't exist mariabackup.incremental_encrypted : MDEV-15667 - timeout +mariabackup.incremental_rocksdb : MDEV-20954 - Cannot access the file mariabackup.log_checksum_mismatch : MDEV-16571 - Wrong result mariabackup.mdev-14447 : MDEV-15201 - Timeout -mariabackup.missing_ibd : Modified in 10.3.17 +mariabackup.mdev-18438 : Added in 10.3.19 +mariabackup.partial : Modified in 10.3.19 mariabackup.partial_exclude : MDEV-15270 - Error on exec mariabackup.unencrypted_page_compressed : MDEV-18653 - Wrong error mariabackup.xb_compressed_encrypted : MDEV-14812 - Segmentation fault @@ -480,7 +672,7 @@ multi_source.gtid : MDEV-14202 - Crash multi_source.info_logs : MDEV-12629 - Valgrind, MDEV-10042 - wrong result -multi_source.mdev-8874 : MDEV-20101 - Assertion failure; added in 10.3.17 +multi_source.mdev-8874 : Re-enabled in 10.3.18 multi_source.mdev-9544 : MDEV-19415 - AddressSanitizer: heap-use-after-free multi_source.multisource : MDEV-10417 - Fails on Mips multi_source.reset_slave : MDEV-10690 - Wrong result @@ -489,17 +681,35 @@ #----------------------------------------------------------------------- -parts.fulltext : Added in 10.3.17 parts.partition_alter1_1_2_innodb : MDEV-18655 - ASAN unknown crash parts.partition_alter1_1_innodb : MDEV-18655 - ASAN unknown crash parts.partition_alter1_2_innodb : MDEV-18655 - ASAN unknown crash parts.partition_alter2_2_maria : MDEV-14364 - Lost connection to MySQL server during query parts.partition_auto_increment_archive : MDEV-16491 - Marked as crashed and should be repaired parts.partition_auto_increment_maria : MDEV-14430 - Extra warning -parts.partition_debug_innodb : MDEV-10891 - Can't create UNIX socket; MDEV-15095 - Table doesn't exist +parts.partition_debug : Modified in 10.3.19 +parts.partition_debug_innodb : MDEV-10891 - Can't create UNIX socket; MDEV-15095 - Table doesn't exist; modified in 10.3.19 +parts.partition_debug_myisam : Modified in 10.3.19 parts.partition_exch_qa_10 : MDEV-11765 - wrong result +parts.partition_exch_qa_4_innodb : Include file modified in 10.3.18 +parts.partition_exch_qa_4_myisam : Include file modified in 10.3.18 +parts.partition_exch_qa_8_innodb : Include file modified in 10.3.18 +parts.partition_exch_qa_8_myisam : Include file modified in 10.3.18 parts.partition_innodb_status_file : MDEV-12901 - Valgrind +parts.partition_mgm_lc0_archive : Include file modified in 10.3.18 +parts.partition_mgm_lc0_innodb : Include file modified in 10.3.18 +parts.partition_mgm_lc0_memory : Include file modified in 10.3.18 +parts.partition_mgm_lc0_myisam : Include file modified in 10.3.18 +parts.partition_mgm_lc1_archive : Include file modified in 10.3.18 +parts.partition_mgm_lc1_innodb : Include file modified in 10.3.18 +parts.partition_mgm_lc1_memory : Include file modified in 10.3.18 +parts.partition_mgm_lc1_myisam : Include file modified in 10.3.18 +parts.partition_mgm_lc2_archive : Include file modified in 10.3.18 +parts.partition_mgm_lc2_innodb : Include file modified in 10.3.18 +parts.partition_mgm_lc2_memory : Include file modified in 10.3.18 +parts.partition_mgm_lc2_myisam : Include file modified in 10.3.18 parts.partition_special_innodb : MDEV-16942 - Timeout +parts.reorganize_partition_innodb : Added in 10.3.19 #----------------------------------------------------------------------- @@ -507,25 +717,40 @@ #----------------------------------------------------------------------- -perfschema.connect_attrs : MDEV-17283 - Wrong result -perfschema.dml_file_instances : MDEV-15179 - Wrong result -perfschema.dml_threads : MDEV-17746 - Wrong errno -perfschema.func_file_io : MDEV-5708 - fails for s390x -perfschema.func_mutex : MDEV-5708 - fails for s390x -perfschema.hostcache_ipv4_addrinfo_again_allow : MDEV-12759 - Crash -perfschema.hostcache_ipv6_addrinfo_again_allow : MDEV-12752 - Crash -perfschema.hostcache_ipv6_addrinfo_bad_allow : MDEV-13260 - Crash -perfschema.hostcache_ipv6_ssl : MDEV-10696 - Crash -perfschema.privilege_table_io : MDEV-13184 - Extra lines -perfschema.relaylog : MDEV-18134 - Wrong result -perfschema.rpl_gtid_func : MDEV-16897 - Wrong result -perfschema.socket_instances_func : MDEV-20140 - Wrong result -perfschema.socket_summary_by_event_name_func : MDEV-10622 - Wrong result -perfschema.socket_summary_by_instance_func : MDEV-19413 - Wrong result -perfschema.stage_mdl_global : MDEV-11803 - wrong result on slow builders -perfschema.stage_mdl_procedure : MDEV-11545 - Missing row -perfschema.stage_mdl_table : MDEV-12638 - Wrong result -perfschema.threads_mysql : MDEV-10677 - Wrong result +perfschema.connect_attrs : MDEV-17283 - Wrong result +perfschema.dml_file_instances : MDEV-15179 - Wrong result +perfschema.dml_threads : MDEV-17746 - Wrong errno +perfschema.func_file_io : MDEV-5708 - fails for s390x +perfschema.func_mutex : MDEV-5708 - fails for s390x +perfschema.hostcache_ipv4_addrinfo_again_allow : MDEV-12759 - Crash +perfschema.hostcache_ipv6_addrinfo_again_allow : MDEV-12752 - Crash; configuration modified in 10.3.18 +perfschema.hostcache_ipv6_addrinfo_again_deny : Configuration modified in 10.3.18 +perfschema.hostcache_ipv6_addrinfo_bad_allow : MDEV-13260 - Crash; configuration modified in 10.3.18 +perfschema.hostcache_ipv6_addrinfo_bad_deny : Configuration modified in 10.3.18 +perfschema.hostcache_ipv6_addrinfo_good_allow : Configuration modified in 10.3.18 +perfschema.hostcache_ipv6_addrinfo_good_deny : Configuration modified in 10.3.18 +perfschema.hostcache_ipv6_addrinfo_noname_allow : Configuration modified in 10.3.18 +perfschema.hostcache_ipv6_addrinfo_noname_deny : Configuration modified in 10.3.18 +perfschema.hostcache_ipv6_auth_plugin : Configuration modified in 10.3.18 +perfschema.hostcache_ipv6_blocked : Configuration modified in 10.3.18 +perfschema.hostcache_ipv6_max_con : Configuration modified in 10.3.18 +perfschema.hostcache_ipv6_nameinfo_again_allow : Configuration modified in 10.3.18 +perfschema.hostcache_ipv6_nameinfo_again_deny : Configuration modified in 10.3.18 +perfschema.hostcache_ipv6_nameinfo_noname_allow : Configuration modified in 10.3.18 +perfschema.hostcache_ipv6_nameinfo_noname_deny : Configuration modified in 10.3.18 +perfschema.hostcache_ipv6_passwd : Configuration modified in 10.3.18 +perfschema.hostcache_ipv6_ssl : MDEV-10696 - Crash; configuration modified in 10.3.18 +perfschema.privilege_table_io : MDEV-13184 - Extra lines +perfschema.relaylog : MDEV-18134 - Wrong result +perfschema.rpl_gtid_func : MDEV-16897 - Wrong result +perfschema.socket_instances_func : MDEV-20140 - Wrong result +perfschema.socket_summary_by_event_name_func : MDEV-10622 - Wrong result +perfschema.socket_summary_by_instance_func : MDEV-19413 - Wrong result +perfschema.stage_mdl_function : Include file modified in 10.3.18 +perfschema.stage_mdl_global : MDEV-11803 - wrong result on slow builders; include file modified in 10.3.18 +perfschema.stage_mdl_procedure : MDEV-11545 - Missing row; include file modified in 10.3.18 +perfschema.stage_mdl_table : MDEV-12638 - Wrong result; include file modified in 10.3.18 +perfschema.threads_mysql : MDEV-10677 - Wrong result #----------------------------------------------------------------------- @@ -533,9 +758,10 @@ #----------------------------------------------------------------------- -plugins.feedback_plugin_load : Modified in 10.3.16 +plugins.feedback_plugin_load : Modified in 10.3.19 plugins.feedback_plugin_send : MDEV-7932, MDEV-11118 - Connection problems and such plugins.processlist : MDEV-16574 - Wrong result +plugins.qc_info : Modified in 10.3.18 plugins.server_audit : MDEV-14295 - Wrong result plugins.thread_pool_server_audit : MDEV-14295 - Wrong result @@ -552,38 +778,16 @@ rocksdb.drop_table : MDEV-14308 - Timeout rocksdb.drop_table3 : MDEV-16949 - Server crash rocksdb.dup_key_update : MDEV-17284 - Wrong result -rocksdb.locking_issues : MDEV-14464 - Wrong result; modified in 10.3.16 -rocksdb.locking_issues_case1_1_rc : Added in 10.3.16 -rocksdb.locking_issues_case1_1_rr : Added in 10.3.16 -rocksdb.locking_issues_case1_2_rc : Added in 10.3.16 -rocksdb.locking_issues_case1_2_rr : Added in 10.3.16 -rocksdb.locking_issues_case2_rc : Added in 10.3.16 -rocksdb.locking_issues_case2_rc_lsr : Added in 10.3.16 -rocksdb.locking_issues_case2_rr : Added in 10.3.16 -rocksdb.locking_issues_case2_rr_lsr : Added in 10.3.16 -rocksdb.locking_issues_case3_rc : Added in 10.3.16 -rocksdb.locking_issues_case3_rr : Added in 10.3.16 -rocksdb.locking_issues_case4_rc : Added in 10.3.16 -rocksdb.locking_issues_case4_rr : Added in 10.3.16 -rocksdb.locking_issues_case5_rc : Added in 10.3.16 -rocksdb.locking_issues_case5_rr : Added in 10.3.16 -rocksdb.locking_issues_case6_rc : Added in 10.3.16 -rocksdb.locking_issues_case6_rr : Added in 10.3.16 -rocksdb.locking_issues_case7_rc : Added in 10.3.16 -rocksdb.locking_issues_case7_rc_lsr : Added in 10.3.16 -rocksdb.locking_issues_case7_rr : Added in 10.3.16 -rocksdb.locking_issues_case7_rr_lsr : Added in 10.3.16 +rocksdb.index_merge_rocksdb2 : Include file modified in 10.3.19 +rocksdb.locking_issues : MDEV-14464 - Wrong result rocksdb.mariadb_ignore_dirs : MDEV-16639 - Server crash -rocksdb.mariadb_plugin : Modified in 10.3.16 rocksdb.mariadb_port_fixes : MDEV-16387 - Wrong plan rocksdb.max_open_files : MDEV-16639 - Server crash rocksdb.perf_context : MDEV-17285 - Wrong results rocksdb.rocksdb_cf_options : MDEV-16639 - Server crash rocksdb.rocksdb_cf_per_partition : MDEV-16636 - Wrong result rocksdb.rocksdb_parts : MDEV-13843 - Wrong result -rocksdb.ttl_primary_read_filtering : MDEV-16560 - Wrong result rocksdb.ttl_secondary : MDEV-16943 - Timeout -rocksdb.ttl_secondary_read_filtering : MDEV-16560 - Wrong result rocksdb.unique_check : MDEV-16576 - Wrong errno rocksdb.use_direct_reads_writes : MDEV-16646 - Server crash rocksdb.write_sync : MDEV-16965 - WRong result @@ -596,33 +800,32 @@ #----------------------------------------------------------------------- rocksdb_sys_vars.rocksdb_rate_limiter_bytes_per_sec_basic : MDEV-16639 - Crash -rocksdb_sys_vars.rocksdb_update_cf_options : MDEV-16955 - Bytes lost -rocksdb_sys_vars.rocksdb_update_cf_options_basic : MDEV-16955 - Bytes lost #----------------------------------------------------------------------- -roles.create_and_grant_role : MDEV-11772 - wrong result +roles.acl_statistics : Configuration added in 10.3.18 +roles.create_and_grant_role : MDEV-11772 - wrong result +roles.definer : Modified in 10.3.18 +roles.show_create_database-10463 : Modified in 10.3.18 #----------------------------------------------------------------------- rpl.circular_serverid0 : MDEV-19372 - ASAN heap-use-after-free rpl.create_or_replace2 : MDEV-19412 - Lost connection to MySQL server -rpl.create_or_replace_mix : Include file modified in 10.3.17 -rpl.create_or_replace_row : Include file modified in 10.3.17 -rpl.create_or_replace_statement : Include file modified in 10.3.17 +rpl.create_or_replace_mix : MDEV-20523 - Wrong result +rpl.create_or_replace_statement : MDEV-20523 - Wrong result rpl.create_select : MDEV-14121 - Assertion failure -rpl.kill_race_condition : Modified in 10.3.17 rpl.last_insert_id : MDEV-10625 - warnings in error log -rpl.mdev_17588 : MDEV-20137 - Table doesn't exist; added in 10.3.17 +rpl.mdev_17588 : Modified in 10.3.18 +rpl.rpl_000011 : Modified in 10.3.19 rpl.rpl_auto_increment : MDEV-10417 - Fails on Mips rpl.rpl_auto_increment_bug45679 : MDEV-10417 - Fails on Mips rpl.rpl_auto_increment_update_failure : MDEV-10625 - warnings in error log -rpl.rpl_binlog_dup_entry : Added in 10.3.16 rpl.rpl_binlog_errors : MDEV-12742 - Crash rpl.rpl_binlog_index : MDEV-9501 - Failed registering on master -rpl.rpl_blackhole : Modified in 10.3.16 -rpl.rpl_blackhole_row_annotate : Added in 10.3.16 rpl.rpl_colSize : MDEV-16112 - Server crash +rpl.rpl_corruption : MDEV-20527 - Slave stopped with wrong error code +rpl.rpl_create_or_replace_fail : Added in 10.3.18 rpl.rpl_ctype_latin1 : MDEV-14813 - Wrong result on Mac rpl.rpl_ddl : MDEV-10417 - Fails on Mips rpl.rpl_domain_id_filter_io_crash : MDEV-12729 - Timeout in include file, MDEV-13677 - Server crash @@ -631,6 +834,7 @@ rpl.rpl_drop_db_fail : MDEV-16898 - Slave fails to start rpl.rpl_extra_col_master_innodb : MDEV-16570 - Extra warning rpl.rpl_extra_col_master_myisam : MDEV-14203 - Extra warning +rpl.rpl_failed_drop_tbl_binlog : Added in 10.3.18 rpl.rpl_get_lock : MDEV-19368 - mysqltest failed but provided no output rpl.rpl_gtid_basic : MDEV-10681 - server startup problem rpl.rpl_gtid_crash : MDEV-9501 - Failed registering on master, MDEV-13643 - Lost connection @@ -648,10 +852,14 @@ rpl.rpl_insert_id_pk : MDEV-16567 - Assertion failure rpl.rpl_insert_ignore : MDEV-14365 - Lost connection to MySQL server during query rpl.rpl_invoked_features : MDEV-10417 - Fails on Mips +rpl.rpl_ip_mix : Modified in 10.3.19 +rpl.rpl_ip_mix2 : Modified in 10.3.19 rpl.rpl_ipv4_as_ipv6 : MDEV-20147 - Incorrect checksum for freed object +rpl.rpl_known_bugs_detection : Modified in 10.2.27 rpl.rpl_mariadb_slave_capability : MDEV-11018 - Extra lines in binlog rpl.rpl_mdev12179 : MDEV-19043 - Table marked as crashed rpl.rpl_mdev6020 : MDEV-15272 - Server crash +rpl.rpl_mdev_17614 : Added in 10.3.18 rpl.rpl_mixed_mixing_engines : MDEV-14489 - Sync slave with master failed rpl.rpl_non_direct_mixed_mixing_engines : MDEV-14489 - Sync slave with master failed rpl.rpl_non_direct_row_mixing_engines : MDEV-16561 - Timeout in master_pos_wait @@ -659,6 +867,7 @@ rpl.rpl_parallel : MDEV-10653 - Timeouts rpl.rpl_parallel2 : MDEV-17390 - Operation cannot be performed rpl.rpl_parallel_conflicts : MDEV-15272 - Server crash +rpl.rpl_parallel_ignored_errors : Added in 10.3.19 rpl.rpl_parallel_mdev6589 : MDEV-12979 - Assertion failure rpl.rpl_parallel_multilevel2 : MDEV-14723 - Timeout rpl.rpl_parallel_optimistic : MDEV-15278 - Failed to sync with master @@ -667,28 +876,31 @@ rpl.rpl_parallel_temptable : MDEV-10356 - Crash; MDEV-19076 - Wrong result rpl.rpl_partition_innodb : MDEV-10417 - Fails on Mips rpl.rpl_password_boundaries : MDEV-11534 - Slave IO warnings +rpl.rpl_read_only2 : Added in 10.3.19 +rpl.rpl_rotate_logs : Modified in 10.3.19 rpl.rpl_row_001 : MDEV-16653 - MTR's internal check fails rpl.rpl_row_basic_11bugs : MDEV-12171 - Server failed to start rpl.rpl_row_basic_2myisam : MDEV-13875 - command "diff_files" failed rpl.rpl_row_drop_create_temp_table : MDEV-14487 - Wrong result -rpl.rpl_row_drop_temp_table : Added in 10.3.17 +rpl.rpl_row_find_row_debug : Modified in 10.3.19 rpl.rpl_row_img_blobs : MDEV-13875 - command "diff_files" failed rpl.rpl_row_img_eng_min : MDEV-13875 - diff_files failed rpl.rpl_row_img_eng_noblob : MDEV-13875 - command "diff_files" failed rpl.rpl_row_index_choice : MDEV-15196 - Slave crash -rpl.rpl_row_mysqlbinlog : Modified in 10.3.16 rpl.rpl_row_sp001 : MDEV-9329 - Fails on Ubuntu/s390x +rpl.rpl_row_type_conv_err_msg : Added in 10.3.18 rpl.rpl_row_until : MDEV-14052 - Master will not send events with checksum rpl.rpl_semi_sync : MDEV-11220 - Wrong result rpl.rpl_semi_sync_after_sync : MDEV-14366 - Wrong result rpl.rpl_semi_sync_after_sync_row : MDEV-14366 - Wrong result rpl.rpl_semi_sync_event_after_sync : MDEV-11806 - warnings -rpl.rpl_semi_sync_skip_repl : Modified in 10.3.16 +rpl.rpl_semi_sync_slave_reply_fail : Added in 10.3.19 rpl.rpl_semi_sync_uninstall_plugin : MDEV-7140 - Assorted failures rpl.rpl_semi_sync_wait_point : MDEV-11807 - timeout in wait condition rpl.rpl_semisync_ali_issues : MDEV-16272 - Wrong result rpl.rpl_set_statement_default_master : MDEV-13258 - Extra warning rpl.rpl_show_slave_hosts : MDEV-10681 - Crash +rpl.rpl_skip_error : Modified in 10.3.19 rpl.rpl_skip_replication : MDEV-13258 - Extra warning rpl.rpl_slave_grp_exec : MDEV-10514 - Deadlock rpl.rpl_slave_load_tmpdir_not_exist : MDEV-14203 - Extra warning @@ -700,11 +912,14 @@ rpl.rpl_stm_relay_ign_space : MDEV-14360 - Test assertion rpl.rpl_stm_stop_middle_group : MDEV-13791 - Server crash rpl.rpl_sync : MDEV-13830 - Assertion failure +rpl.rpl_sync_with_innodb_thd_conc : Added in 10.3.18 rpl.rpl_temporal_mysql56_to_mariadb53 : MDEV-9501 - Failed registering on master rpl.rpl_temporary_error2 : MDEV-10634 - Wrong number of retries rpl.rpl_test_framework : MDEV-19368 - mysqltest failed but provided no output rpl.rpl_trigger : MDEV-18055 - Wrong result rpl.rpl_truncate_3innodb : MDEV-19454 - Syntax error +rpl.rpl_unsafe_statements : Modified in 10.1.42 +rpl.rpl_user_variables : MDEV-20522 - Wrong result rpl.rpl_variables : MDEV-20150 - Server crash rpl.sec_behind_master-5114 : MDEV-13878 - Wrong result rpl.show_status_stop_slave_race-7126 : MDEV-17438 - Timeout @@ -712,6 +927,7 @@ #----------------------------------------------------------------------- rpl-tokudb.* : MDEV-14354 - Tests fail with tcmalloc +rpl-tokudb.rpl_deadlock_tokudb : MDEV-20529 - mysqltest failed but provided no output rpl-tokudb.rpl_tokudb_commit_after_flush : MDEV-16966 - Server crash #----------------------------------------------------------------------- @@ -720,8 +936,12 @@ #----------------------------------------------------------------------- -sphinx.* : MDEV-10986 - Tests have not been maintained -sphinx.sphinx : MDEV-10986 - Sporadic failures +sequence.group_by : Modified in 10.3.19 + +#----------------------------------------------------------------------- + +sphinx.* : MDEV-10986 - Tests have not been maintained; suite.pm modified in 10.3.19 +sphinx.sphinx : MDEV-10986 - Sporadic failures; modified in 10.3.19 sphinx.union-5539 : MDEV-10986 - Sporadic failures #----------------------------------------------------------------------- @@ -743,11 +963,16 @@ #----------------------------------------------------------------------- +spider/bugfix.select_by_null : Added in 10.3.19 + +#----------------------------------------------------------------------- + spider/handler.* : MDEV-10987, MDEV-10990 - Tests have not been maintained #----------------------------------------------------------------------- sql_sequence.concurrent_create : MDEV-16635 - Server crash +sql_sequence.other : Modified in 10.3.19 #----------------------------------------------------------------------- @@ -759,15 +984,49 @@ #----------------------------------------------------------------------- +sys_vars.aria_recover_options_basic : Modified in 10.3.18 sys_vars.autocommit_func2 : MDEV-9329 - Fails on Ubuntu/s390x -sys_vars.delayed_insert_limit_func : MDEV-17683 - Wrong result +sys_vars.binlog_cache_size_basic : Modified in 10.3.18 +sys_vars.binlog_stmt_cache_size_basic : Modified in 10.3.18 +sys_vars.character_set_client_basic : Modified in 10.3.18 +sys_vars.character_set_connection_basic : Modified in 10.3.18 +sys_vars.character_set_database_basic : Modified in 10.3.18 +sys_vars.character_set_results_basic : Modified in 10.3.18 +sys_vars.character_set_server_basic : Modified in 10.3.18 +sys_vars.character_set_server_func : Modified in 10.3.18 +sys_vars.collation_connection_basic : Modified in 10.3.18 +sys_vars.collation_database_basic : Modified in 10.3.18 +sys_vars.collation_server_basic : Modified in 10.3.18 +sys_vars.delayed_insert_limit_func : Modified in 10.3.19 +sys_vars.expire_logs_days_basic : Modified in 10.2.27 +sys_vars.histogram_size_basic : Modified in 10.2.27 sys_vars.innodb_buffer_pool_dump_at_shutdown_basic : MDEV-14280 - Unexpected error -sys_vars.innodb_ft_result_cache_limit : Modified in 10.2.26 +sys_vars.innodb_change_buffering_debug_basic : Modified in 10.3.19 +sys_vars.innodb_max_dirty_pages_pct_basic : Modified in 10.3.18 +sys_vars.innodb_max_dirty_pages_pct_lwm_basic : Modified in 10.3.18 +sys_vars.innodb_read_io_threads_basic : Configuration added in 10.3.18 +sys_vars.innodb_write_io_threads_basic : Configuration added in 10.3.18 sys_vars.keep_files_on_create_basic : MDEV-10676 - timeout sys_vars.log_slow_admin_statements_func : MDEV-12235 - Server crash +sys_vars.log_slow_verbosity_basic : Modified in 10.3.18 +sys_vars.max_connect_errors_basic : Modified in 10.2.27 +sys_vars.max_connections_basic : Modified in 10.3.18 +sys_vars.max_heap_table_size_basic : Modified in 10.2.27 +sys_vars.max_seeks_for_key_func : Modified in 10.3.18 +sys_vars.myisam_recover_options_basic : Configuration added in 10.3.18 +sys_vars.myisam_sort_buffer_size_basic : Modified in 10.3.18 +sys_vars.optimizer_switch_basic : Modified in 10.3.18 +sys_vars.optimizer_use_condition_selectivity_basic : Modified in 10.3.18 +sys_vars.replicate_ignore_table_basic : Modified in 10.3.18 sys_vars.rpl_init_slave_func : MDEV-10149 - Test assertion sys_vars.slow_query_log_func : MDEV-14273 - Wrong result +sys_vars.sync_binlog_basic : Modified in 10.3.18 +sys_vars.sysvars_debug : Modified in 10.3.18 +sys_vars.sysvars_innodb : Modified in 10.3.18 +sys_vars.sysvars_server_embedded : Include file modified in 10.3.18 +sys_vars.sysvars_server_notembedded : Include file modified in 10.3.18 sys_vars.thread_cache_size_func : MDEV-11775 - Wrong result +sys_vars.userstat_basic : Modified in 10.3.18 sys_vars.wait_timeout_func : MDEV-12896 - Wrong result sys_vars.wsrep_provider_basic : MDEV-19457 - Assertion failure @@ -777,6 +1036,10 @@ tokudb.change_column_bin : MDEV-12640 - Lost connection tokudb.change_column_char : MDEV-12822 - Lost connection tokudb.change_column_varbin : MDEV-17682 - Timeout +tokudb.cluster_2968-0 : Modified in 10.3.18 +tokudb.cluster_2968-1 : Modified in 10.3.18 +tokudb.cluster_2968-2 : Modified in 10.3.18 +tokudb.cluster_2968-3 : Modified in 10.3.18 tokudb.cluster_filter : MDEV-10678 - Wrong execution plan tokudb.cluster_filter_hidden : MDEV-10678 - Wrong execution plan tokudb.cluster_filter_unpack_varchar : MDEV-10636 - Wrong execution plan @@ -794,6 +1057,7 @@ tokudb.rows-32m-seq-insert : MDEV-12640 - Crash tokudb.savepoint-5 : MDEV-15280 - Wrong result tokudb.type_datetime : MDEV-15193 - Wrong result +tokudb.type_varchar : Modified in 10.3.18 #----------------------------------------------------------------------- @@ -811,11 +1075,17 @@ tokudb_bugs.frm_store2 : MDEV-12823 - Valgrind tokudb_bugs.frm_store3 : MDEV-12823 - Valgrind tokudb_bugs.xa : MDEV-11804 - Lock wait timeout -tokudb_bugs.xa-3 : MDEV-16953 - Corrupt log record found #----------------------------------------------------------------------- -tokudb_parts.partition_alter4_tokudb : MDEV-12640 - Lost connection +tokudb_parts.partition_alter4_tokudb : MDEV-12640 - Lost connection +tokudb_parts.partition_debug_tokudb : Include file modified in 10.3.19 +tokudb_parts.partition_exch_qa_4_tokudb : Include file modified in 10.3.18 +tokudb_parts.partition_exch_qa_8_tokudb : Include file modified in 10.3.18 +tokudb_parts.partition_mgm_lc0_tokudb : Include file modified in 10.3.18 +tokudb_parts.partition_mgm_lc10_tokudb : Include file modified in 10.3.18 +tokudb_parts.partition_mgm_lc1_tokudb : Include file modified in 10.3.18 +tokudb_parts.partition_mgm_lc2_tokudb : Include file modified in 10.3.18 #----------------------------------------------------------------------- @@ -835,34 +1105,54 @@ unit.ma_pagecache_consist_64kRD : MDEV-19367 - AddressSanitizer CHECK failed unit.ma_pagecache_consist_64kWR : MDEV-19367 - AddressSanitizer CHECK failed unit.ma_test_loghandler : MDEV-10638 - record read not ok +unit.mf_iocache : MDEV-20952 - ASAN stack-buffer-overflow #----------------------------------------------------------------------- -vcol.not_supported : MDEV-10639 - Testcase timeout -vcol.vcol_keys_innodb : MDEV-10639 - Testcase timeout -vcol.vcol_misc : MDEV-16651 - Wrong error message; modified in 10.3.17 +vcol.cross_db : Modified in 10.3.18 +vcol.not_supported : MDEV-10639 - Testcase timeout +vcol.update : Modified in 10.3.18 +vcol.vcol_keys_innodb : MDEV-10639 - Testcase timeout; modified in 10.3.19 +vcol.vcol_misc : MDEV-16651 - Wrong error message +vcol.vcol_select_innodb : Modified in 10.3.18 +vcol.vcol_select_myisam : Modified in 10.3.18 +vcol.vcol_sql_mode : Added in 10.3.18 +vcol.vcol_sql_mode_upgrade : Added in 10.3.18 +vcol.vcol_trigger_sp_innodb : Include file modified in 10.3.18 +vcol.vcol_trigger_sp_myisam : Include file modified in 10.3.18 #----------------------------------------------------------------------- -versioning.create : Modified in 10.3.16 -versioning.engines : New combination added in 10.3.16 -versioning.partition : Modified in 10.3.17 -versioning.replace : Modified in 10.3.16 -versioning.rpl : Modified in 10.3.16 -versioning.simple : Modified in 10.3.17 -versioning.truncate : Modified in 10.3.17 -versioning.trx_id : Modified in 10.3.17 -versioning.update-big : MDEV-15458 - Server crash; added in 10.3.16 +versioning.alter : Modified in 10.3.19 +versioning.auto_increment : Include file modified in 10.3.19 +versioning.commit_id : Include file modified in 10.3.19 +versioning.create : Modified in 10.3.19 +versioning.cte : Modified in 10.3.18 +versioning.delete : Modified in 10.3.19 +versioning.derived : Modified in 10.3.18 +versioning.foreign : Modified in 10.3.19 +versioning.insert : Include file modified in 10.3.19 +versioning.key_type : Combinations added in 10.3.19 +versioning.online : Modified in 10.3.19 +versioning.partition : Modified in 10.3.19 +versioning.partition_innodb : Modified in 10.3.19 +versioning.replace : Modified in 10.3.19 +versioning.select : Include file modified in 10.3.19 +versioning.select2 : Include file modified in 10.3.19 +versioning.truncate : Include file modified in 10.3.19 +versioning.trx_id : Modified in 10.3.19 +versioning.update : MDEV-20955 - Wrong result code; modified in 10.3.19 +versioning.update-big : Modified in 10.3.19 +versioning.view : Modified in 10.3.19 #----------------------------------------------------------------------- -wsrep.* : suite.pm modified in 10.3.17 -wsrep.foreign_key : MDEV-14725 - WSREP has not yet prepared node -wsrep.mdev_6832 : MDEV-14195 - Check testcase failed -wsrep.pool_of_threads : MDEV-17345 - WSREP has not yet prepared node for application use -wsrep.variables : MDEV-14311 - Wrong result; MDEV-17585 - Deadlock; modified in 10.3.17 +wsrep.foreign_key : MDEV-14725 - WSREP has not yet prepared node +wsrep.mdev_6832 : MDEV-14195 - Check testcase failed +wsrep.mysql_tzinfo_to_sql_symlink_skip : Added in 10.3.18 +wsrep.pool_of_threads : MDEV-17345 - WSREP has not yet prepared node for application use +wsrep.variables : MDEV-14311 - Wrong result; MDEV-17585 - Deadlock; modified in 10.3.19 #----------------------------------------------------------------------- -wsrep_info.* : suite.pm modified in 10.3.17 wsrep_info.plugin : MDEV-13569 - No nodes coming from prim view diff -Nru mariadb-10.3-10.3.17/mysql-test/valgrind.supp mariadb-10.3-10.3.20/mysql-test/valgrind.supp --- mariadb-10.3-10.3.17/mysql-test/valgrind.supp 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysql-test/valgrind.supp 2019-11-06 16:01:57.000000000 +0000 @@ -1800,3 +1800,120 @@ obj:/usr/lib64/libcrypto.so* } + + +## +## The following is a copy of facebook/mysql-5.6 suppressions: +## + +# +# RocksDB Storage Engine suppressions start +# + +{ + Still reachable for once-per-process initializations + Memcheck:Leak + match-leak-kinds: reachable + ... + fun:_ZN7rocksdb16ThreadStatusUtil19NewColumnFamilyInfoEPKNS_2DBEPKNS_16ColumnFamilyDataERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_3EnvE + fun:_ZNK7rocksdb6DBImpl21NewThreadStatusCfInfoEPNS_16ColumnFamilyDataE + fun:_ZN7rocksdb2DB4OpenERKNS_9DBOptionsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorINS_22ColumnFamilyDescriptorESaISD_EEPSC_IPNS_18ColumnFamilyHandleESaISJ_EEPPS0_ + fun:_ZN7rocksdb13TransactionDB4OpenERKNS_9DBOptionsERKNS_20TransactionDBOptionsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorINS_22ColumnFamilyDescriptorESaISG_EEPSF_IPNS_18ColumnFamilyHandleESaISM_EEPPS0_ + fun:_ZN7myrocksL17rocksdb_init_funcEPv +} + + +{ + Still reachable for once-per-process initializations 2 + Memcheck:Leak + match-leak-kinds: reachable + ... + fun:_ZN7rocksdb16ThreadStatusUtil19NewColumnFamilyInfoEPKNS_2DBEPKNS_16ColumnFamilyDataERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_3EnvE + fun:_ZNK7rocksdb6DBImpl21NewThreadStatusCfInfoEPNS_16ColumnFamilyDataE + fun:_ZN7rocksdb6DBImpl4OpenERKNS_9DBOptionsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorINS_22ColumnFamilyDescriptorESaISD_EEPSC_IPNS_18ColumnFamilyHandleESaISJ_EEPPNS_2DBEbb + fun:_ZN7rocksdb13TransactionDB4OpenERKNS_9DBOptionsERKNS_20TransactionDBOptionsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorINS_22ColumnFamilyDescriptorESaISG_EEPSF_IPNS_18ColumnFamilyHandleESaISM_EEPPS0_ +# fun:_ZN7myrocksL17rocksdb_init_funcEPv +# ^ commenting the above out because we are hitting the --num-callers=16 +# limitation that MTR sets for valgrind +} + +{ + Still reachable for once-per-process initializations 3 + Memcheck:Leak + match-leak-kinds: reachable + ... + fun:_ZN7rocksdb16ThreadStatusUtil19NewColumnFamilyInfoEPKNS_2DBEPKNS_16ColumnFamilyDataERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKNS_3EnvE + fun:_ZNK7rocksdb6DBImpl21NewThreadStatusCfInfoEPNS_16ColumnFamilyDataE + fun:_ZN7rocksdb6DBImpl22CreateColumnFamilyImplERKNS_19ColumnFamilyOptionsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPPNS_18ColumnFamilyHandleE +} + +{ + Still reachable for once-per-process initializations + Memcheck:Leak + match-leak-kinds: reachable + ... + fun:_ZN7rocksdb19ThreadStatusUpdater14RegisterThreadENS_12ThreadStatus10ThreadTypeEm + fun:_ZN7rocksdb16ThreadStatusUtil14RegisterThreadEPKNS_3EnvENS_12ThreadStatus10ThreadTypeE + fun:_ZN7rocksdb14ThreadPoolImpl4Impl15BGThreadWrapperEPv + ... +} + +{ + Still reachable for once-per-process initializations + Memcheck:Leak + match-leak-kinds: reachable + ... + fun:_ZN7rocksdb14ThreadLocalPtr14InitSingletonsEv + fun:_ZN7rocksdb3Env7DefaultEv + fun:_ZN7rocksdb9DBOptionsC1Ev + ... + fun:_ZN7myrocksL27rdb_init_rocksdb_db_optionsEv +} + +{ + Still reachable for once-per-process initializations + Memcheck:Leak + match-leak-kinds: reachable + ... + fun:_ZN7rocksdb12_GLOBAL__N_18PosixEnv* + fun:_ZN7rocksdb3Env7DefaultEv + fun:_ZN7rocksdb9DBOptionsC1Ev + ... + fun:_ZN7myrocksL27rdb_init_rocksdb_db_optionsEv +} + +{ + Still reachable for thread local storage initialization (SetHandle) + Memcheck:Leak + match-leak-kinds: reachable + ... + fun:_ZNSt13unordered_mapIjPFvPvESt4hashIjESt8equal_toIjESaISt4pairIKjS2_EEEixERS8_ + fun:_ZN7rocksdb14ThreadLocalPtr10StaticMeta10SetHandlerEjPFvPvE + fun:_ZN7rocksdb14ThreadLocalPtrC1EPFvPvE + ... +} + +{ + Still reachable for thread local storage initialization (ReclaimId) + Memcheck:Leak + match-leak-kinds: reachable + ... + fun:_ZN7rocksdb10autovectorIjLm8EE9push_backERKj + fun:_ZN7rocksdb14ThreadLocalPtr10StaticMeta9ReclaimIdEj + fun:_ZN7rocksdb14ThreadLocalPtrD1Ev + ... +} + +{ + Static initialization + Memcheck:Leak + match-leak-kinds: reachable + ... + fun:_Z41__static_initialization_and_destruction_0ii + ... +} + +## +## RocksDB Storage Engine suppressions end +## + diff -Nru mariadb-10.3-10.3.17/mysys/my_getsystime.c mariadb-10.3-10.3.20/mysys/my_getsystime.c --- mariadb-10.3-10.3.17/mysys/my_getsystime.c 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysys/my_getsystime.c 2019-11-06 16:01:57.000000000 +0000 @@ -99,6 +99,8 @@ while (gettimeofday(&t, NULL) != 0) {} hrtime.val= t.tv_sec*1000000ULL + t.tv_usec; #endif + DBUG_EXECUTE_IF("system_time_plus_one_hour", hrtime.val += 3600*1000000ULL;); + DBUG_EXECUTE_IF("system_time_minus_one_hour", hrtime.val -= 3600*1000000ULL;); return hrtime; } diff -Nru mariadb-10.3-10.3.17/mysys/my_lockmem.c mariadb-10.3-10.3.20/mysys/my_lockmem.c --- mariadb-10.3-10.3.17/mysys/my_lockmem.c 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysys/my_lockmem.c 2019-11-06 16:01:57.000000000 +0000 @@ -20,7 +20,6 @@ #include #ifdef HAVE_MLOCK -#include struct st_mem_list { diff -Nru mariadb-10.3-10.3.17/mysys/my_static.c mariadb-10.3-10.3.20/mysys/my_static.c --- mariadb-10.3-10.3.17/mysys/my_static.c 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/mysys/my_static.c 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,5 @@ /* Copyright (c) 2000, 2011, Oracle and/or its affiliates. - Copyright (c) 2009, 2012, Monty Program Ab. + Copyright (c) 2009, 2019, MariaDB Corporation. 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 @@ -36,6 +36,9 @@ int my_umask=0664, my_umask_dir=0777; myf my_global_flags= 0; +#ifndef DBUG_OFF +my_bool my_assert= 1; +#endif my_bool my_assert_on_error= 0; struct st_my_file_info my_file_info_default[MY_NFILE]; uint my_file_limit= MY_NFILE; diff -Nru mariadb-10.3-10.3.17/pcre/pcre_dfa_exec.c mariadb-10.3-10.3.20/pcre/pcre_dfa_exec.c --- mariadb-10.3-10.3.17/pcre/pcre_dfa_exec.c 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/pcre/pcre_dfa_exec.c 2019-11-06 16:01:57.000000000 +0000 @@ -2198,6 +2198,7 @@ case 0x2029: #endif /* Not EBCDIC */ if ((md->moptions & PCRE_BSR_ANYCRLF) != 0) break; + /* fall through */ case CHAR_LF: ADD_NEW(state_offset + 1, 0); diff -Nru mariadb-10.3-10.3.17/pcre/pcre_exec.c mariadb-10.3-10.3.20/pcre/pcre_exec.c --- mariadb-10.3-10.3.17/pcre/pcre_exec.c 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/pcre/pcre_exec.c 2019-11-06 16:01:57.000000000 +0000 @@ -2086,7 +2086,7 @@ case OP_CIRC: if (md->notbol && eptr == md->start_subject) RRETURN(MATCH_NOMATCH); - /* Start of subject assertion */ + /* Fall through. Start of subject assertion */ case OP_SOD: if (eptr != md->start_subject) RRETURN(MATCH_NOMATCH); diff -Nru mariadb-10.3-10.3.17/pcre/pcretest.c mariadb-10.3-10.3.20/pcre/pcretest.c --- mariadb-10.3-10.3.17/pcre/pcretest.c 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/pcre/pcretest.c 2019-11-06 16:01:57.000000000 +0000 @@ -2864,7 +2864,8 @@ { while (n--) { - int c = tolower(*s++) - tolower(*t++); + int c = tolower(*s) - tolower(*t); + s++; t++; if (c) return c; } return 0; diff -Nru mariadb-10.3-10.3.17/scripts/mysqlaccess.sh mariadb-10.3-10.3.20/scripts/mysqlaccess.sh --- mariadb-10.3-10.3.17/scripts/mysqlaccess.sh 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/scripts/mysqlaccess.sh 2019-11-06 16:01:57.000000000 +0000 @@ -26,7 +26,7 @@ BEGIN { # **************************** # static information... - $VERSION = "2.06, 20 Dec 2000"; + $VERSION = "2.10, 13 Sep 2019"; $0 =~ m%/([^/]+)$%o; $script = $1; $script = 'MySQLAccess' unless $script; diff -Nru mariadb-10.3-10.3.17/scripts/mysqld_multi.sh mariadb-10.3-10.3.20/scripts/mysqld_multi.sh --- mariadb-10.3-10.3.17/scripts/mysqld_multi.sh 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/scripts/mysqld_multi.sh 2019-11-06 16:01:57.000000000 +0000 @@ -308,7 +308,9 @@ sub start_mysqlds() { - my (@groups, $com, $tmp, $i, @options, $j, $mysqld_found, $info_sent); + my (@groups, $com, $tmp, $i, @options, $j, $mysqld_found, $suffix_found, $info_sent); + + $suffix_found= 0; if (!$opt_no_log) { @@ -347,6 +349,10 @@ $options[$j]= quote_shell_word($options[$j]); $tmp.= " $options[$j]"; } + elsif ("--defaults-group-suffix=" eq substr($options[$j], 0, 24)) + { + $suffix_found= 1; + } else { $options[$j]= quote_shell_word($options[$j]); @@ -362,6 +368,13 @@ print "wanted mysqld binary.\n\n"; $info_sent= 1; } + + if (!$suffix_found) + { + $com.= " --defaults-group-suffix="; + $com.= substr($groups[$i],6); + } + $com.= $tmp; if ($opt_wsrep_new_cluster) { diff -Nru mariadb-10.3-10.3.17/scripts/mysqld_safe.sh mariadb-10.3-10.3.20/scripts/mysqld_safe.sh --- mariadb-10.3-10.3.17/scripts/mysqld_safe.sh 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/scripts/mysqld_safe.sh 2019-11-06 16:01:57.000000000 +0000 @@ -22,6 +22,7 @@ numa_interleave=0 wsrep_on=0 dry_run=0 +defaults_group_suffix= # Initial logging status: error log is not open, and not using syslog logging=init @@ -349,6 +350,8 @@ append_arg_to_args "$arg" ;; + --defaults-group-suffix=*) defaults_group_suffix="$arg" ;; + --help) usage ;; *) @@ -923,13 +926,19 @@ exit 1 fi -for i in "$ledir/$MYSQLD" "$defaults" "--basedir=$MY_BASEDIR_VERSION" \ +for i in "$ledir/$MYSQLD" "$defaults_group_suffix" "$defaults" "--basedir=$MY_BASEDIR_VERSION" \ "--datadir=$DATADIR" "--plugin-dir=$plugin_dir" "$USER_OPTION" do cmd="$cmd "`shell_quote_string "$i"` done cmd="$cmd $args" -[ $dry_run -eq 1 ] && return + +if [ $dry_run -eq 1 ] +then + # RETURN or EXIT depending if the script is being sourced or not. + (return 2> /dev/null) && return || exit +fi + # Avoid 'nohup: ignoring input' warning test -n "$NOHUP_NICENESS" && cmd="$cmd < /dev/null" diff -Nru mariadb-10.3-10.3.17/scripts/mysql_system_tables.sql mariadb-10.3-10.3.20/scripts/mysql_system_tables.sql --- mariadb-10.3-10.3.17/scripts/mysql_system_tables.sql 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/scripts/mysql_system_tables.sql 2019-11-06 16:01:57.000000000 +0000 @@ -28,14 +28,14 @@ set @have_innodb= (select count(engine) from information_schema.engines where engine='INNODB' and support != 'NO'); SET @innodb_or_myisam=IF(@have_innodb <> 0, 'InnoDB', 'MyISAM'); -CREATE TABLE IF NOT EXISTS db ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(80) binary DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_history_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY Host (Host,Db,User), KEY User (User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Database privileges'; +CREATE TABLE IF NOT EXISTS db ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(80) binary DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_history_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY /*Host */(Host,Db,User), KEY User (User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Database privileges'; -- Remember for later if db table already existed set @had_db_table= @@warning_count != 0; -CREATE TABLE IF NOT EXISTS host ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY Host (Host,Db) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Host privileges; Merged with database privileges'; +CREATE TABLE IF NOT EXISTS host ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY /*Host*/ (Host,Db) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Host privileges; Merged with database privileges'; -CREATE TABLE IF NOT EXISTS user ( Host char(60) binary DEFAULT '' NOT NULL, User char(80) binary DEFAULT '' NOT NULL, Password char(41) character set latin1 collate latin1_bin DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Reload_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Shutdown_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Process_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, File_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_db_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Super_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Repl_slave_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Repl_client_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_user_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tablespace_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_history_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, ssl_type enum('','ANY','X509', 'SPECIFIED') COLLATE utf8_general_ci DEFAULT '' NOT NULL, ssl_cipher BLOB NOT NULL, x509_issuer BLOB NOT NULL, x509_subject BLOB NOT NULL, max_questions int(11) unsigned DEFAULT 0 NOT NULL, max_updates int(11) unsigned DEFAULT 0 NOT NULL, max_connections int(11) unsigned DEFAULT 0 NOT NULL, max_user_connections int(11) DEFAULT 0 NOT NULL, plugin char(64) CHARACTER SET latin1 DEFAULT '' NOT NULL, authentication_string TEXT NOT NULL, password_expired ENUM('N', 'Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, is_role enum('N', 'Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, default_role char(80) binary DEFAULT '' NOT NULL, max_statement_time decimal(12,6) DEFAULT 0 NOT NULL, PRIMARY KEY Host (Host,User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Users and global privileges'; +CREATE TABLE IF NOT EXISTS user ( Host char(60) binary DEFAULT '' NOT NULL, User char(80) binary DEFAULT '' NOT NULL, Password char(41) character set latin1 collate latin1_bin DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Reload_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Shutdown_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Process_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, File_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_db_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Super_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Repl_slave_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Repl_client_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_user_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tablespace_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_history_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, ssl_type enum('','ANY','X509', 'SPECIFIED') COLLATE utf8_general_ci DEFAULT '' NOT NULL, ssl_cipher BLOB NOT NULL, x509_issuer BLOB NOT NULL, x509_subject BLOB NOT NULL, max_questions int(11) unsigned DEFAULT 0 NOT NULL, max_updates int(11) unsigned DEFAULT 0 NOT NULL, max_connections int(11) unsigned DEFAULT 0 NOT NULL, max_user_connections int(11) DEFAULT 0 NOT NULL, plugin char(64) CHARACTER SET latin1 DEFAULT '' NOT NULL, authentication_string TEXT NOT NULL, password_expired ENUM('N', 'Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, is_role enum('N', 'Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, default_role char(80) binary DEFAULT '' NOT NULL, max_statement_time decimal(12,6) DEFAULT 0 NOT NULL, PRIMARY KEY /*Host*/ (Host,User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Users and global privileges'; -- Remember for later if user table already existed set @had_user_table= @@warning_count != 0; @@ -48,7 +48,7 @@ CREATE TABLE IF NOT EXISTS plugin ( name varchar(64) DEFAULT '' NOT NULL, dl varchar(128) DEFAULT '' NOT NULL, PRIMARY KEY (name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci comment='MySQL plugins'; -CREATE TABLE IF NOT EXISTS servers ( Server_name char(64) NOT NULL DEFAULT '', Host char(64) NOT NULL DEFAULT '', Db char(64) NOT NULL DEFAULT '', Username char(80) NOT NULL DEFAULT '', Password char(64) NOT NULL DEFAULT '', Port INT(4) NOT NULL DEFAULT '0', Socket char(64) NOT NULL DEFAULT '', Wrapper char(64) NOT NULL DEFAULT '', Owner char(64) NOT NULL DEFAULT '', PRIMARY KEY (Server_name)) CHARACTER SET utf8 comment='MySQL Foreign Servers table'; +CREATE TABLE IF NOT EXISTS servers ( Server_name char(64) NOT NULL DEFAULT '', Host varchar(2048) NOT NULL DEFAULT '', Db char(64) NOT NULL DEFAULT '', Username char(80) NOT NULL DEFAULT '', Password char(64) NOT NULL DEFAULT '', Port INT(4) NOT NULL DEFAULT '0', Socket char(64) NOT NULL DEFAULT '', Wrapper char(64) NOT NULL DEFAULT '', Owner varchar(512) NOT NULL DEFAULT '', PRIMARY KEY (Server_name)) CHARACTER SET utf8 comment='MySQL Foreign Servers table'; CREATE TABLE IF NOT EXISTS tables_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(80) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Grantor char(141) DEFAULT '' NOT NULL, Timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger','Delete versioning rows') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Table privileges'; @@ -68,19 +68,19 @@ CREATE TABLE IF NOT EXISTS help_keyword ( help_keyword_id int unsigned not null, name char(64) not null, primary key (help_keyword_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help keywords'; -CREATE TABLE IF NOT EXISTS time_zone_name ( Name char(64) NOT NULL, Time_zone_id int unsigned NOT NULL, PRIMARY KEY Name (Name) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone names'; +CREATE TABLE IF NOT EXISTS time_zone_name ( Name char(64) NOT NULL, Time_zone_id int unsigned NOT NULL, PRIMARY KEY /*Name*/ (Name) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone names'; -CREATE TABLE IF NOT EXISTS time_zone ( Time_zone_id int unsigned NOT NULL auto_increment, Use_leap_seconds enum('Y','N') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY TzId (Time_zone_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zones'; +CREATE TABLE IF NOT EXISTS time_zone ( Time_zone_id int unsigned NOT NULL auto_increment, Use_leap_seconds enum('Y','N') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY /*TzId*/ (Time_zone_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zones'; -CREATE TABLE IF NOT EXISTS time_zone_transition ( Time_zone_id int unsigned NOT NULL, Transition_time bigint signed NOT NULL, Transition_type_id int unsigned NOT NULL, PRIMARY KEY TzIdTranTime (Time_zone_id, Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transitions'; +CREATE TABLE IF NOT EXISTS time_zone_transition ( Time_zone_id int unsigned NOT NULL, Transition_time bigint signed NOT NULL, Transition_type_id int unsigned NOT NULL, PRIMARY KEY /*TzIdTranTime*/ (Time_zone_id, Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transitions'; -CREATE TABLE IF NOT EXISTS time_zone_transition_type ( Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, Offset int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types'; +CREATE TABLE IF NOT EXISTS time_zone_transition_type ( Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, Offset int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY /*TzIdTrTId*/ (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types'; -CREATE TABLE IF NOT EXISTS time_zone_leap_second ( Transition_time bigint signed NOT NULL, Correction int signed NOT NULL, PRIMARY KEY TranTime (Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Leap seconds information for time zones'; +CREATE TABLE IF NOT EXISTS time_zone_leap_second ( Transition_time bigint signed NOT NULL, Correction int signed NOT NULL, PRIMARY KEY /*TranTime*/ (Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Leap seconds information for time zones'; CREATE TABLE IF NOT EXISTS proc (db char(64) collate utf8_bin DEFAULT '' NOT NULL, name char(64) DEFAULT '' NOT NULL, type enum('FUNCTION','PROCEDURE','PACKAGE','PACKAGE BODY') NOT NULL, specific_name char(64) DEFAULT '' NOT NULL, language enum('SQL') DEFAULT 'SQL' NOT NULL, sql_data_access enum( 'CONTAINS_SQL', 'NO_SQL', 'READS_SQL_DATA', 'MODIFIES_SQL_DATA') DEFAULT 'CONTAINS_SQL' NOT NULL, is_deterministic enum('YES','NO') DEFAULT 'NO' NOT NULL, security_type enum('INVOKER','DEFINER') DEFAULT 'DEFINER' NOT NULL, param_list blob NOT NULL, returns longblob NOT NULL, body longblob NOT NULL, definer char(141) collate utf8_bin DEFAULT '' NOT NULL, created timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, modified timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', sql_mode set( 'REAL_AS_FLOAT', 'PIPES_AS_CONCAT', 'ANSI_QUOTES', 'IGNORE_SPACE', 'IGNORE_BAD_TABLE_OPTIONS', 'ONLY_FULL_GROUP_BY', 'NO_UNSIGNED_SUBTRACTION', 'NO_DIR_IN_CREATE', 'POSTGRESQL', 'ORACLE', 'MSSQL', 'DB2', 'MAXDB', 'NO_KEY_OPTIONS', 'NO_TABLE_OPTIONS', 'NO_FIELD_OPTIONS', 'MYSQL323', 'MYSQL40', 'ANSI', 'NO_AUTO_VALUE_ON_ZERO', 'NO_BACKSLASH_ESCAPES', 'STRICT_TRANS_TABLES', 'STRICT_ALL_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'INVALID_DATES', 'ERROR_FOR_DIVISION_BY_ZERO', 'TRADITIONAL', 'NO_AUTO_CREATE_USER', 'HIGH_NOT_PRECEDENCE', 'NO_ENGINE_SUBSTITUTION', 'PAD_CHAR_TO_FULL_LENGTH', 'EMPTY_STRING_IS_NULL', 'SIMULTANEOUS_ASSIGNMENT') DEFAULT '' NOT NULL, comment text collate utf8_bin NOT NULL, character_set_client char(32) collate utf8_bin, collation_connection char(32) collate utf8_bin, db_collation char(32) collate utf8_bin, body_utf8 longblob, aggregate enum('NONE', 'GROUP') DEFAULT 'NONE' NOT NULL, PRIMARY KEY (db,name,type)) engine=MyISAM character set utf8 comment='Stored Procedures'; @@ -229,7 +229,7 @@ #EXECUTE stmt; #DROP PREPARE stmt; -CREATE TABLE IF NOT EXISTS proxies_priv (Host char(60) binary DEFAULT '' NOT NULL, User char(80) binary DEFAULT '' NOT NULL, Proxied_host char(60) binary DEFAULT '' NOT NULL, Proxied_user char(80) binary DEFAULT '' NOT NULL, With_grant BOOL DEFAULT 0 NOT NULL, Grantor char(141) DEFAULT '' NOT NULL, Timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY Host (Host,User,Proxied_host,Proxied_user), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='User proxy privileges'; +CREATE TABLE IF NOT EXISTS proxies_priv (Host char(60) binary DEFAULT '' NOT NULL, User char(80) binary DEFAULT '' NOT NULL, Proxied_host char(60) binary DEFAULT '' NOT NULL, Proxied_user char(80) binary DEFAULT '' NOT NULL, With_grant BOOL DEFAULT 0 NOT NULL, Grantor char(141) DEFAULT '' NOT NULL, Timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY /*Host*/ (Host,User,Proxied_host,Proxied_user), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='User proxy privileges'; -- Remember for later if proxies_priv table already existed set @had_proxies_priv_table= @@warning_count != 0; diff -Nru mariadb-10.3-10.3.17/scripts/wsrep_sst_common.sh mariadb-10.3-10.3.20/scripts/wsrep_sst_common.sh --- mariadb-10.3-10.3.17/scripts/wsrep_sst_common.sh 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/scripts/wsrep_sst_common.sh 2019-11-06 16:01:57.000000000 +0000 @@ -28,7 +28,12 @@ WSREP_SST_OPT_DEFAULT="" WSREP_SST_OPT_EXTRA_DEFAULT="" WSREP_SST_OPT_SUFFIX_DEFAULT="" +WSREP_SST_OPT_SUFFIX_VALUE="" +WSREP_SST_OPT_MYSQLD="" INNODB_DATA_HOME_DIR_ARG="" +INNODB_LOG_GROUP_HOME_ARG="" +INNODB_UNDO_DIR_ARG="" +LOG_BIN_ARG="" while [ $# -gt 0 ]; do case "$1" in @@ -83,6 +88,18 @@ readonly INNODB_DATA_HOME_DIR_ARG="$2" shift ;; + '--innodb-log-group-home-dir') + readonly INNODB_LOG_GROUP_HOME_ARG="$2" + shift + ;; + '--innodb-undo-directory') + readonly INNODB_UNDO_DIR_ARG="$2" + shift + ;; + '--log-bin') + readonly LOG_BIN_ARG="$2" + shift + ;; '--defaults-file') readonly WSREP_SST_OPT_DEFAULT="$1=$2" shift @@ -93,6 +110,7 @@ ;; '--defaults-group-suffix') readonly WSREP_SST_OPT_SUFFIX_DEFAULT="$1=$2" + readonly WSREP_SST_OPT_SUFFIX_VALUE="$2" shift ;; '--host') @@ -143,6 +161,50 @@ readonly WSREP_SST_OPT_GTID_DOMAIN_ID="$2" shift ;; + '--mysqld-args') + original_cmd="" + shift + while [ $# -gt 0 ]; do + option=${1%%=*} + if [[ "$option" != "--defaults-file" && \ + "$option" != "--defaults-extra-file" && \ + "$option" != "--defaults-group-suffix" && \ + "$option" != "--port" && \ + "$option" != "--socket" ]]; then + value=${1#*=} + case "$option" in + '--innodb-data-home-dir') + if [ -z "$INNODB_DATA_HOME_DIR_ARG" ]; then + readonly INNODB_DATA_HOME_DIR_ARG="$value" + fi + ;; + '--innodb-log-group-home-dir') + if [ -z "$INNODB_LOG_GROUP_HOME_ARG" ]; then + readonly INNODB_LOG_GROUP_HOME_ARG="$value" + fi + ;; + '--innodb-undo-directory') + if [ -z "$INNODB_UNDO_DIR_ARG" ]; then + readonly INNODB_UNDO_DIR_ARG="$value" + fi + ;; + '--log-bin') + if [ -z "$LOG_BIN_ARG" ]; then + readonly LOG_BIN_ARG="$value" + fi + ;; + esac + if [ -z "$original_cmd" ]; then + original_cmd="$1" + else + original_cmd="$original_cmd $1" + fi + fi + shift + done + readonly WSREP_SST_OPT_MYSQLD="$original_cmd" + break + ;; *) # must be command # usage # exit 1 @@ -191,7 +253,15 @@ MY_PRINT_DEFAULTS=my_print_defaults fi -readonly WSREP_SST_OPT_CONF="$WSREP_SST_OPT_DEFAULT $WSREP_SST_OPT_EXTRA_DEFAULT $WSREP_SST_OPT_SUFFIX_DEFAULT" +wsrep_defaults="$WSREP_SST_OPT_DEFAULT" +if [ -n "$wsrep_defaults" ]; then + wsrep_defaults="$wsrep_defaults " +fi +wsrep_defaults="$wsrep_defaults$WSREP_SST_OPT_EXTRA_DEFAULT" +if [ -n "$wsrep_defaults" ]; then + wsrep_defaults="$wsrep_defaults " +fi +readonly WSREP_SST_OPT_CONF="$wsrep_defaults$WSREP_SST_OPT_SUFFIX_DEFAULT" readonly MY_PRINT_DEFAULTS="$MY_PRINT_DEFAULTS $WSREP_SST_OPT_CONF" wsrep_auth_not_set() diff -Nru mariadb-10.3-10.3.17/scripts/wsrep_sst_mariabackup.sh mariadb-10.3-10.3.20/scripts/wsrep_sst_mariabackup.sh --- mariadb-10.3-10.3.17/scripts/wsrep_sst_mariabackup.sh 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/scripts/wsrep_sst_mariabackup.sh 2019-11-06 16:01:57.000000000 +0000 @@ -60,7 +60,7 @@ rebuildcmd="" payload=0 pvformat="-F '%N => Rate:%r Avg:%a Elapsed:%t %e Bytes: %b %p' " -pvopts="-f -i 10 -N $WSREP_SST_OPT_ROLE " +pvopts="-f -i 10 -N $WSREP_SST_OPT_ROLE " STATDIR="" uextra=0 disver="" @@ -130,7 +130,7 @@ if [[ $encrypt -eq 0 ]];then if $MY_PRINT_DEFAULTS xtrabackup | grep -q encrypt;then - wsrep_log_error "Unexpected option combination. SST may fail. Refer to http://www.percona.com/doc/percona-xtradb-cluster/manual/xtrabackup_sst.html " + wsrep_log_error "Unexpected option combination. SST may fail. Refer to http://www.percona.com/doc/percona-xtradb-cluster/manual/xtrabackup_sst.html" fi return fi @@ -464,7 +464,7 @@ if [[ -n ${XTRABACKUP_PID:-} ]];then if check_pid $XTRABACKUP_PID then - wsrep_log_error "xtrabackup process is still running. Killing... " + wsrep_log_error "xtrabackup process is still running. Killing..." kill_xtrabackup fi @@ -566,7 +566,7 @@ # Xtrabackup works only locally. # Hence, setting host to 127.0.0.1 unconditionally. wsrep_log_info "SST through extra_port $eport" - INNOEXTRA+=" --host=127.0.0.1 --port=$eport " + INNOEXTRA+=" --host=127.0.0.1 --port=$eport" use_socket=0 else wsrep_log_error "Extra port $eport null, failing" @@ -576,8 +576,8 @@ wsrep_log_info "Thread pool not set, ignore the option use_extra" fi fi - if [[ $use_socket -eq 1 ]] && [[ -n "${WSREP_SST_OPT_SOCKET}" ]];then - INNOEXTRA+=" --socket=${WSREP_SST_OPT_SOCKET}" + if [[ $use_socket -eq 1 ]] && [[ -n "$WSREP_SST_OPT_SOCKET" ]];then + INNOEXTRA+=" --socket=$WSREP_SST_OPT_SOCKET" fi } @@ -697,8 +697,7 @@ iopts+=" --no-backup-locks " fi - -INNOEXTRA="" +INNOEXTRA=$WSREP_SST_OPT_MYSQLD INNODB_DATA_HOME_DIR=${INNODB_DATA_HOME_DIR:-""} # Try to set INNODB_DATA_HOME_DIR from the command line: @@ -707,6 +706,9 @@ fi # if INNODB_DATA_HOME_DIR env. variable is not set, try to get it from my.cnf if [ -z "$INNODB_DATA_HOME_DIR" ]; then + INNODB_DATA_HOME_DIR=$(parse_cnf mysqld$WSREP_SST_OPT_SUFFIX_VALUE innodb-data-home-dir '') +fi +if [ -z "$INNODB_DATA_HOME_DIR" ]; then INNODB_DATA_HOME_DIR=$(parse_cnf --mysqld innodb-data-home-dir '') fi if [ ! -z "$INNODB_DATA_HOME_DIR" ]; then @@ -741,8 +743,8 @@ logger -p daemon.info -t ${ssystag}wsrep-sst-$WSREP_SST_OPT_ROLE "$@" } - INNOAPPLY="${INNOBACKUPEX_BIN} --innobackupex $disver $iapts \$INNOEXTRA --apply-log \$rebuildcmd \${DATA} 2>&1 | logger -p daemon.err -t ${ssystag}innobackupex-apply " - INNOMOVE="${INNOBACKUPEX_BIN} --innobackupex ${WSREP_SST_OPT_CONF} $disver $impts --move-back --force-non-empty-directories \${DATA} 2>&1 | logger -p daemon.err -t ${ssystag}innobackupex-move " + INNOAPPLY="${INNOBACKUPEX_BIN} --innobackupex $disver $iapts \$INNOEXTRA --apply-log \$rebuildcmd \${DATA} 2>&1 | logger -p daemon.err -t ${ssystag}innobackupex-apply" + INNOMOVE="${INNOBACKUPEX_BIN} --innobackupex ${WSREP_SST_OPT_CONF} $disver $impts --move-back --force-non-empty-directories \${DATA} 2>&1 | logger -p daemon.err -t ${ssystag}innobackupex-move" INNOBACKUP="${INNOBACKUPEX_BIN} --innobackupex ${WSREP_SST_OPT_CONF} $disver $iopts \$tmpopts \$INNOEXTRA --galera-info --stream=\$sfmt \$itmpdir 2> >(logger -p daemon.err -t ${ssystag}innobackupex-backup)" fi @@ -826,9 +828,11 @@ exit 93 fi - if [[ -z $(parse_cnf --mysqld tmpdir "") && -z $(parse_cnf xtrabackup tmpdir "") ]];then + if [[ -z $(parse_cnf mysqld$WSREP_SST_OPT_SUFFIX_VALUE tmpdir "") && \ + -z $(parse_cnf --mysqld tmpdir "") && \ + -z $(parse_cnf xtrabackup tmpdir "") ]]; then xtmpdir=$(mktemp -d) - tmpopts=" --tmpdir=$xtmpdir " + tmpopts=" --tmpdir=$xtmpdir" wsrep_log_info "Using $xtmpdir as xtrabackup temporary directory" fi @@ -850,13 +854,12 @@ get_keys if [[ $encrypt -eq 1 ]];then if [[ -n $ekey ]];then - INNOEXTRA+=" --encrypt=$ealgo --encrypt-key=$ekey " + INNOEXTRA+=" --encrypt=$ealgo --encrypt-key=$ekey" else - INNOEXTRA+=" --encrypt=$ealgo --encrypt-key-file=$ekeyfile " + INNOEXTRA+=" --encrypt=$ealgo --encrypt-key-file=$ekeyfile" fi fi - check_extra wsrep_log_info "Streaming GTID file before SST" @@ -877,7 +880,6 @@ tcmd=" $scomp | $tcmd " fi - send_donor $DATA "${stagemsg}-gtid" tcmd="$ttcmd" @@ -949,8 +951,24 @@ [[ -n $SST_PROGRESS_FILE ]] && touch $SST_PROGRESS_FILE ib_home_dir=$INNODB_DATA_HOME_DIR - ib_log_dir=$(parse_cnf --mysqld innodb-log-group-home-dir "") - ib_undo_dir=$(parse_cnf --mysqld innodb-undo-directory "") + + # Try to set ib_log_dir from the command line: + ib_log_dir=$INNODB_LOG_GROUP_HOME_ARG + if [ -z "$ib_log_dir" ]; then + ib_log_dir=$(parse_cnf mysqld$WSREP_SST_OPT_SUFFIX_VALUE innodb-log-group-home-dir "") + fi + if [ -z "$ib_log_dir" ]; then + ib_log_dir=$(parse_cnf --mysqld innodb-log-group-home-dir "") + fi + + # Try to set ib_undo_dir from the command line: + ib_undo_dir=$INNODB_UNDO_DIR_ARG + if [ -z "$ib_undo_dir" ]; then + ib_undo_dir=$(parse_cnf mysqld$WSREP_SST_OPT_SUFFIX_VALUE innodb-undo-directory "") + fi + if [ -z "$ib_undo_dir" ]; then + ib_undo_dir=$(parse_cnf --mysqld innodb-undo-directory "") + fi stagemsg="Joiner-Recv" @@ -1027,7 +1045,13 @@ find $ib_home_dir $ib_log_dir $ib_undo_dir $DATA -mindepth 1 -prune -regex $cpat -o -exec rm -rfv {} 1>&2 \+ fi - tempdir=$(parse_cnf --mysqld log-bin "") + tempdir=$LOG_BIN_ARG + if [ -z "$tempdir" ]; then + tempdir=$(parse_cnf mysqld$WSREP_SST_OPT_SUFFIX_VALUE log-bin "") + fi + if [ -z "$tempdir" ]; then + tempdir=$(parse_cnf --mysqld log-bin "") + fi if [[ -n ${tempdir:-} ]];then binlog_dir=$(dirname $tempdir) binlog_file=$(basename $tempdir) diff -Nru mariadb-10.3-10.3.17/scripts/wsrep_sst_rsync.sh mariadb-10.3-10.3.20/scripts/wsrep_sst_rsync.sh --- mariadb-10.3-10.3.17/scripts/wsrep_sst_rsync.sh 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/scripts/wsrep_sst_rsync.sh 2019-11-06 16:01:57.000000000 +0000 @@ -150,8 +150,15 @@ fi WSREP_LOG_DIR=${WSREP_LOG_DIR:-""} +# Try to set WSREP_LOG_DIR from the command line: +if [ -z "$WSREP_LOG_DIR" ]; then + WSREP_LOG_DIR=$INNODB_LOG_GROUP_HOME_ARG +fi # if WSREP_LOG_DIR env. variable is not set, try to get it from my.cnf if [ -z "$WSREP_LOG_DIR" ]; then + WSREP_LOG_DIR=$(parse_cnf mysqld$WSREP_SST_OPT_SUFFIX_VALUE innodb-log-group-home-dir '') +fi +if [ -z "$WSREP_LOG_DIR" ]; then WSREP_LOG_DIR=$(parse_cnf --mysqld innodb-log-group-home-dir '') fi @@ -170,6 +177,9 @@ fi # if INNODB_DATA_HOME_DIR env. variable is not set, try to get it from my.cnf if [ -z "$INNODB_DATA_HOME_DIR" ]; then + INNODB_DATA_HOME_DIR=$(parse_cnf mysqld$WSREP_SST_OPT_SUFFIX_VALUE innodb-data-home-dir '') +fi +if [ -z "$INNODB_DATA_HOME_DIR" ]; then INNODB_DATA_HOME_DIR=$(parse_cnf --mysqld innodb-data-home-dir '') fi diff -Nru mariadb-10.3-10.3.17/sql/CMakeLists.txt mariadb-10.3-10.3.20/sql/CMakeLists.txt --- mariadb-10.3-10.3.17/sql/CMakeLists.txt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/CMakeLists.txt 2019-11-06 16:01:57.000000000 +0000 @@ -127,7 +127,7 @@ rpl_gtid.cc rpl_parallel.cc semisync.cc semisync_master.cc semisync_slave.cc semisync_master_ack_receiver.cc - sql_type.cc + sql_type.cc sql_mode.cc item_windowfunc.cc sql_window.cc sql_cte.cc item_vers.cc @@ -198,9 +198,9 @@ # without necessity.E.g source modifications, that do not # change list of exported symbols, will not result in a relink for plugins. - SET(MYSQLD_DEF ${CMAKE_CURRENT_BINARY_DIR}/mysqld_lib.def) - SET(MYSQLD_EXP ${CMAKE_CURRENT_BINARY_DIR}/mysqld_lib.exp) - SET(MYSQLD_LIB ${CMAKE_CURRENT_BINARY_DIR}/mysqld_lib.lib) + SET(MYSQLD_DEF ${CMAKE_CURRENT_BINARY_DIR}/mysqld_lib${CMAKE_CFG_INTDIR}.def) + SET(MYSQLD_EXP ${CMAKE_CURRENT_BINARY_DIR}/mysqld_lib${CMAKE_CFG_INTDIR}.exp) + SET(MYSQLD_LIB ${CMAKE_CURRENT_BINARY_DIR}/mysqld_lib${CMAKE_CFG_INTDIR}.lib) SET(MYSQLD_CORELIBS sql mysys dbug strings) FOREACH (CORELIB ${MYSQLD_CORELIBS}) SET (LIB_LOCATIONS ${LIB_LOCATIONS} $) @@ -213,12 +213,12 @@ # Create a cmake script to generate import and export libs # from a .def file SET(CMAKE_CONFIGURABLE_FILE_CONTENT " - IF ((mysqld_lib.def IS_NEWER_THAN mysqld_lib.lib) OR - (mysqld_lib.def IS_NEWER_THAN mysqld_lib.exp)) - FILE(REMOVE mysqld_lib.lib mysqld_lib.exp) + IF ((mysqld_lib\${CFG}.def IS_NEWER_THAN mysqld_lib\${CFG}.lib) OR + (mysqld_lib\${CFG}.def IS_NEWER_THAN mysqld_lib\${CFG}.exp)) + FILE(REMOVE mysqld_lib\${CFG}.lib mysqld_lib\${CFG}.exp) SET(ENV{VS_UNICODE_OUTPUT}) EXECUTE_PROCESS ( - COMMAND \"${CMAKE_LINKER}\" /lib /NAME:mysqld.exe \"/DEF:${MYSQLD_DEF}\" /MACHINE:${_PLATFORM} + COMMAND \"${CMAKE_LINKER}\" /lib /NAME:mysqld.exe \"/DEF:${CMAKE_CURRENT_BINARY_DIR}/mysqld_lib\${CFG}.def\" /MACHINE:${_PLATFORM} RESULT_VARIABLE ret) IF(NOT ret EQUAL 0) MESSAGE(FATAL_ERROR \"process failed ret=\${ret}\") @@ -228,41 +228,22 @@ CONFIGURE_FILE( ${PROJECT_SOURCE_DIR}/cmake/configurable_file_content.in - make_mysqld_lib.cmake) + make_mysqld_lib.cmake + @ONLY) IF(CMAKE_VERSION VERSION_GREATER "3.2.0") SET(MYSQLD_LIB_BYPRODUCTS BYPRODUCTS ${MYSQLD_DEF} ${MYSQLD_LIB} ${MYSQLD_EXP}) ENDIF() - # Create a cmake script to generate import and export libs - # from a .def file - SET(CMAKE_CONFIGURABLE_FILE_CONTENT " - IF ((mysqld_lib.def IS_NEWER_THAN mysqld_lib.lib) OR - (mysqld_lib.def IS_NEWER_THAN mysqld_lib.exp)) - FILE(REMOVE mysqld_lib.lib mysqld_lib.exp) - SET(ENV{VS_UNICODE_OUTPUT}) - EXECUTE_PROCESS ( - COMMAND \"${CMAKE_LINKER}\" /lib /NAME:mysqld.exe \"/DEF:${MYSQLD_DEF}\" /MACHINE:${_PLATFORM} - RESULT_VARIABLE ret) - IF(NOT ret EQUAL 0) - MESSAGE(FATAL_ERROR \"process failed ret=\${ret}\") - ENDIF() - ENDIF() - ") - - CONFIGURE_FILE( - ${PROJECT_SOURCE_DIR}/cmake/configurable_file_content.in - make_mysqld_lib.cmake) - ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/mysqld_lib.stamp ${MYSQLD_LIB_BYPRODUCTS} - COMMENT "Generating mysqld_lib.def, mysqld_lib.lib, mysqld_lib.exp" + COMMENT "Generating ${MYSQLD_DEF}, ${MYSQLD_LIB}, ${MYSQLD_EXP}" COMMAND cscript //nologo ${PROJECT_SOURCE_DIR}/win/create_def_file.js - ${_PLATFORM} /forLib ${LIB_LOCATIONS} > mysqld_lib.def.tmp - COMMAND ${CMAKE_COMMAND} -E copy_if_different mysqld_lib.def.tmp mysqld_lib.def - COMMAND ${CMAKE_COMMAND} -E remove mysqld_lib.def.tmp - COMMAND ${CMAKE_COMMAND} -P make_mysqld_lib.cmake + ${_PLATFORM} /forLib ${LIB_LOCATIONS} > ${MYSQLD_DEF}.tmp + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MYSQLD_DEF}.tmp ${MYSQLD_DEF} + COMMAND ${CMAKE_COMMAND} -E remove ${MYSQLD_DEF}.tmp + COMMAND ${CMAKE_COMMAND} "-DCFG=${CMAKE_CFG_INTDIR}" -P make_mysqld_lib.cmake COMMAND ${CMAKE_COMMAND} -E touch mysqld_lib.stamp WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${MYSQLD_CORELIBS} diff -Nru mariadb-10.3-10.3.17/sql/create_options.cc mariadb-10.3-10.3.20/sql/create_options.cc --- mariadb-10.3-10.3.17/sql/create_options.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/create_options.cc 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2010, 2017, MariaDB Corporation Ab +/* Copyright (C) 2010, 2019, MariaDB Corporation. 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 @@ -132,7 +132,8 @@ switch (opt->type) { case HA_OPTION_TYPE_SYSVAR: - DBUG_ASSERT(0); // HA_OPTION_TYPE_SYSVAR's are replaced in resolve_sysvars() + // HA_OPTION_TYPE_SYSVAR's are replaced in resolve_sysvars() + break; // to DBUG_ASSERT(0) case HA_OPTION_TYPE_ULL: { ulonglong *val= (ulonglong*)value_ptr(base, opt); diff -Nru mariadb-10.3-10.3.17/sql/events.cc mariadb-10.3-10.3.20/sql/events.cc --- mariadb-10.3-10.3.17/sql/events.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/events.cc 2019-11-06 16:01:57.000000000 +0000 @@ -1199,6 +1199,46 @@ delete et; goto end; } + +#ifdef WITH_WSREP + /** + IF SST is done from a galera node that is also acting as MASTER + newly synced node in galera eco-system will also copy-over the event state + enabling duplicate event in galera eco-system. + DISABLE such events if the current node is not event orginator. + (Also, make sure you skip disabling it if is already disabled to avoid + creation of redundant action) + NOTE: + This complete system relies on server-id. Ideally server-id should be + same for all nodes of galera eco-system but they aren't same. + Infact, based on galera use-case it seems like it recommends to have each + node with different server-id. + */ + if (et->originator != thd->variables.server_id) + { + if (et->status == Event_parse_data::SLAVESIDE_DISABLED) + continue; + + store_record(table, record[1]); + table->field[ET_FIELD_STATUS]-> + store((longlong) Event_parse_data::SLAVESIDE_DISABLED, + TRUE); + + /* All the dmls to mysql.events tables are stmt bin-logged. */ + bool save_binlog_row_based; + if ((save_binlog_row_based= thd->is_current_stmt_binlog_format_row())) + thd->set_current_stmt_binlog_format_stmt(); + + (void) table->file->ha_update_row(table->record[1], table->record[0]); + + if (save_binlog_row_based) + thd->set_current_stmt_binlog_format_row(); + + delete et; + continue; + } +#endif /* WITH_WSREP */ + /** Since the Event_queue_element object could be deleted inside Event_queue::create_event we should save the value of dropped flag diff -Nru mariadb-10.3-10.3.17/sql/field.cc mariadb-10.3-10.3.20/sql/field.cc --- mariadb-10.3-10.3.17/sql/field.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/field.cc 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,6 @@ /* Copyright (c) 2000, 2017, Oracle and/or its affiliates. - Copyright (c) 2008, 2017, MariaDB + Copyright (c) 2008, 2019, MariaDB 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 @@ -71,7 +71,7 @@ ptr < table->record[0] + table->s->reclength)))) #define ASSERT_COLUMN_MARKED_FOR_WRITE_OR_COMPUTED \ - DBUG_ASSERT(is_stat_field || !table || \ + DBUG_ASSERT(!table || \ (!table->write_set || \ bitmap_is_set(table->write_set, field_index) || \ (!(ptr >= table->record[0] && \ @@ -1372,6 +1372,46 @@ } +void Field::error_generated_column_function_is_not_allowed(THD *thd, + bool error) const +{ + StringBuffer<64> tmp; + vcol_info->expr->print(&tmp, (enum_query_type) + (QT_TO_SYSTEM_CHARSET | + QT_ITEM_IDENT_SKIP_DB_NAMES | + QT_ITEM_IDENT_SKIP_TABLE_NAMES)); + my_error(ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED, + MYF(error ? 0 : ME_JUST_WARNING), + tmp.c_ptr(), vcol_info->get_vcol_type_name(), + const_cast(field_name.str)); +} + + +/* + Check if an indexed or a persistent virtual column depends on sql_mode flags + that it cannot handle. + See sql_mode.h for details. +*/ +bool Field::check_vcol_sql_mode_dependency(THD *thd, vcol_init_mode mode) const +{ + DBUG_ASSERT(vcol_info); + if ((flags & PART_KEY_FLAG) != 0 || stored_in_db()) + { + Sql_mode_dependency dep= + vcol_info->expr->value_depends_on_sql_mode() & + Sql_mode_dependency(~0, ~can_handle_sql_mode_dependency_on_store()); + if (dep) + { + bool error= (mode & VCOL_INIT_DEPENDENCY_FAILURE_IS_ERROR) != 0; + error_generated_column_function_is_not_allowed(thd, error); + dep.push_dependency_warnings(thd); + return error; + } + } + return false; +} + + /** Numeric fields base class constructor. */ @@ -1408,6 +1448,12 @@ } +sql_mode_t Field_num::can_handle_sql_mode_dependency_on_store() const +{ + return MODE_PAD_CHAR_TO_FULL_LENGTH; +} + + Item *Field_num::get_equal_zerofill_const_item(THD *thd, const Context &ctx, Item *const_item) { @@ -1720,8 +1766,7 @@ flags=null_ptr ? 0: NOT_NULL_FLAG; comment.str= (char*) ""; comment.length=0; - field_index= 0; - is_stat_field= FALSE; + field_index= 0; cond_selectivity= 1.0; next_equal_field= NULL; } @@ -2359,31 +2404,19 @@ } - -Field *Field::clone(MEM_ROOT *root, TABLE *new_table, my_ptrdiff_t diff, - bool stat_flag) +Field *Field::clone(MEM_ROOT *root, TABLE *new_table, my_ptrdiff_t diff) { Field *tmp; if ((tmp= (Field*) memdup_root(root,(char*) this,size_of()))) { - tmp->init(new_table); + if (new_table) + tmp->init(new_table); tmp->move_field_offset(diff); } - tmp->is_stat_field= stat_flag; return tmp; } -Field *Field::clone(MEM_ROOT *root, my_ptrdiff_t diff) -{ - Field *tmp; - if ((tmp= (Field*) memdup_root(root,(char*) this,size_of()))) - { - tmp->move_field_offset(diff); - } - return tmp; -} - int Field::set_default() { if (default_value) @@ -2807,7 +2840,7 @@ /* Write digits of the frac_% parts ; - Depending on get_thd()->count_cutted_fields, we may also want + Depending on get_thd()->count_cuted_fields, we may also want to know if some non-zero tail of these parts will be truncated (for example, 0.002->0.00 will generate a warning, while 0.000->0.00 will not) @@ -5559,6 +5592,12 @@ /*************************************************************/ +sql_mode_t Field_temporal::can_handle_sql_mode_dependency_on_store() const +{ + return MODE_PAD_CHAR_TO_FULL_LENGTH; +} + + uint Field_temporal::is_equal(Create_field *new_field) { return new_field->type_handler() == type_handler() && @@ -6939,7 +6978,8 @@ if (likely(!(pos= copier->most_important_error_pos()))) return FALSE; - if (!is_stat_field) + /* Ignore errors from internal expressions */ + if (get_thd()->count_cuted_fields > CHECK_FIELD_EXPRESSION) { convert_to_printable(tmp, sizeof(tmp), pos, (end - pos), cs, 6); set_warning_truncated_wrong_value("string", tmp); @@ -6972,8 +7012,9 @@ Field_longstr::report_if_important_data(const char *pstr, const char *end, bool count_spaces) { - THD *thd= get_thd(); - if ((pstr < end) && thd->count_cuted_fields > CHECK_FIELD_EXPRESSION) + THD *thd; + if ((pstr < end) && + (thd= get_thd())->count_cuted_fields > CHECK_FIELD_EXPRESSION) { if (test_if_important_data(field_charset, pstr, end)) { @@ -6984,7 +7025,8 @@ return 2; } else if (count_spaces) - { /* If we lost only spaces then produce a NOTE, not a WARNING */ + { + /* If we lost only spaces then produce a NOTE, not a WARNING */ set_note(WARN_DATA_TRUNCATED, 1); return 2; } @@ -7187,6 +7229,18 @@ } +sql_mode_t Field_string::value_depends_on_sql_mode() const +{ + return has_charset() ? MODE_PAD_CHAR_TO_FULL_LENGTH : sql_mode_t(0); +}; + + +sql_mode_t Field_string::can_handle_sql_mode_dependency_on_store() const +{ + return has_charset() ? MODE_PAD_CHAR_TO_FULL_LENGTH : sql_mode_t(0); +} + + String *Field_string::val_str(String *val_buffer __attribute__((unused)), String *val_ptr) { @@ -7310,6 +7364,28 @@ res.append(STRING_WITH_LEN(" binary")); } +/** + For fields which are associated with character sets their length is provided + in octets and their character set information is also provided as part of + type information. + + @param res String which contains filed type and length. +*/ +void Field_string::sql_rpl_type(String *res) const +{ + CHARSET_INFO *cs=charset(); + if (Field_string::has_charset()) + { + size_t length= cs->cset->snprintf(cs, (char*) res->ptr(), + res->alloced_length(), + "char(%u octets) character set %s", + field_length, + charset()->csname); + res->length(length); + } + else + Field_string::sql_type(*res); + } uchar *Field_string::pack(uchar *to, const uchar *from, uint max_length) { @@ -7730,6 +7806,29 @@ res.append(STRING_WITH_LEN(" binary")); } +/** + For fields which are associated with character sets their length is provided + in octets and their character set information is also provided as part of + type information. + + @param res String which contains filed type and length. +*/ +void Field_varstring::sql_rpl_type(String *res) const +{ + CHARSET_INFO *cs=charset(); + if (Field_varstring::has_charset()) + { + size_t length= cs->cset->snprintf(cs, (char*) res->ptr(), + res->alloced_length(), + "varchar(%u octets) character set %s", + field_length, + charset()->csname); + res->length(length); + } + else + Field_varstring::sql_type(*res); +} + uint32 Field_varstring::data_length() { @@ -8593,7 +8692,11 @@ } res.set_ascii(str,length); if (charset() == &my_charset_bin) + { res.append(STRING_WITH_LEN("blob")); + if (packlength == 2 && (get_thd()->variables.sql_mode & MODE_ORACLE)) + res.append(STRING_WITH_LEN("(65535)")); + } else { res.append(STRING_WITH_LEN("text")); @@ -9023,6 +9126,12 @@ ** If one uses this string in a number context one gets the type number. ****************************************************************************/ +sql_mode_t Field_enum::can_handle_sql_mode_dependency_on_store() const +{ + return MODE_PAD_CHAR_TO_FULL_LENGTH; +} + + enum ha_base_keytype Field_enum::key_type() const { switch (packlength) { @@ -11262,13 +11371,17 @@ const char *value) { THD *thd= get_thd(); - const char *db_name= table->s->db.str; - const char *table_name= table->s->table_name.str; + const char *db_name; + const char *table_name; + /* + table has in the past been 0 in case of wrong calls when processing + statistics tables. Let's protect against that. + */ + DBUG_ASSERT(table); - if (!db_name) - db_name= ""; - if (!table_name) - table_name= ""; + db_name= (table && table->s->db.str) ? table->s->db.str : ""; + table_name= (table && table->s->table_name.str) ? + table->s->table_name.str : ""; push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, ER_TRUNCATED_WRONG_VALUE_FOR_FIELD, @@ -11303,33 +11416,6 @@ } -/** - Mark the field as having an explicit default value. - - @param value if available, the value that the field is being set to - - @note - Fields that have an explicit default value should not be updated - automatically via the DEFAULT or ON UPDATE functions. The functions - that deal with data change functionality (INSERT/UPDATE/LOAD), - determine if there is an explicit value for each field before performing - the data change, and call this method to mark the field. - - If the 'value' parameter is NULL, then the field is marked unconditionally - as having an explicit value. If 'value' is not NULL, then it can be further - analyzed to check if it really should count as a value. -*/ - -bool Field::set_explicit_default(Item *value) -{ - if (value->type() == Item::DEFAULT_VALUE_ITEM && - !((Item_default_value*)value)->arg) - return false; - set_has_explicit_value(); - return true; -} - - bool Field::validate_value_in_record_with_warn(THD *thd, const uchar *record) { my_bitmap_map *old_map= dbug_tmp_use_all_columns(table, table->read_set); diff -Nru mariadb-10.3-10.3.17/sql/field.h mariadb-10.3-10.3.20/sql/field.h --- mariadb-10.3-10.3.17/sql/field.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/field.h 2019-11-06 16:01:57.000000000 +0000 @@ -1,7 +1,7 @@ #ifndef FIELD_INCLUDED #define FIELD_INCLUDED /* Copyright (c) 2000, 2015, Oracle and/or its affiliates. - Copyright (c) 2008, 2017, MariaDB Corporation. + Copyright (c) 2008, 2019, MariaDB Corporation. 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 @@ -461,6 +461,7 @@ case MYSQL_TYPE_DATETIME2: case MYSQL_TYPE_TIMESTAMP2: DBUG_ASSERT(0); // field->real_type() should not get to here. + /* fall through */ default: return false; } @@ -561,6 +562,7 @@ /* Flag indicating that the field is physically stored in the database */ bool stored_in_db; bool utf8; /* Already in utf8 */ + bool automatic_name; Item *expr; LEX_CSTRING name; /* Name of constraint */ /* see VCOL_* (VCOL_FIELD_REF, ...) */ @@ -570,7 +572,7 @@ : vcol_type((enum_vcol_info_type)VCOL_TYPE_NONE), field_type((enum enum_field_types)MYSQL_TYPE_VIRTUAL), in_partitioning_expr(FALSE), stored_in_db(FALSE), - utf8(TRUE), expr(NULL), flags(0) + utf8(TRUE), automatic_name(FALSE), expr(NULL), flags(0) { name.str= NULL; name.length= 0; @@ -629,6 +631,8 @@ val_str(&result); return to->store(result.ptr(), result.length(), charset()); } + void error_generated_column_function_is_not_allowed(THD *thd, bool error) + const; static void do_field_int(Copy_field *copy); static void do_field_real(Copy_field *copy); static void do_field_string(Copy_field *copy); @@ -725,9 +729,6 @@ */ bool is_created_from_null_item; - /* TRUE in Field objects created for column min/max values */ - bool is_stat_field; - /* Selectivity of the range condition over this field. When calculating this selectivity a range predicate @@ -997,7 +998,6 @@ { bitmap_clear_bit(&table->has_value_set, field_index); } - bool set_explicit_default(Item *value); virtual my_time_t get_timestamp(const uchar *pos, ulong *sec_part) const { DBUG_ASSERT(0); return 0; } @@ -1006,14 +1006,6 @@ return get_timestamp(ptr, sec_part); } - /** - Evaluates the @c UPDATE default function, if one exists, and stores the - result in the record buffer. If no such function exists for the column, - or the function is not valid for the column's data type, invoking this - function has no effect. - */ - virtual int evaluate_update_default_function() { return 0; } - virtual bool binary() const { return 1; } virtual bool zero_pack() const { return 1; } virtual enum ha_base_keytype key_type() const { return HA_KEYTYPE_BINARY; } @@ -1140,6 +1132,7 @@ in str and restore it with set() if needed */ virtual void sql_type(String &str) const =0; + virtual void sql_rpl_type(String *str) const { sql_type(*str); } virtual uint size_of() const =0; // For new field inline bool is_null(my_ptrdiff_t row_offset= 0) const { @@ -1206,6 +1199,16 @@ } bool stored_in_db() const { return !vcol_info || vcol_info->stored_in_db; } + bool check_vcol_sql_mode_dependency(THD *, vcol_init_mode mode) const; + + virtual sql_mode_t value_depends_on_sql_mode() const + { + return 0; + } + virtual sql_mode_t can_handle_sql_mode_dependency_on_store() const + { + return 0; + } inline THD *get_thd() const { return likely(table) ? table->in_use : current_thd; } @@ -1247,9 +1250,7 @@ uchar *new_ptr, uint32 length, uchar *new_null_ptr, uint new_null_bit); Field *clone(MEM_ROOT *mem_root, TABLE *new_table); - Field *clone(MEM_ROOT *mem_root, TABLE *new_table, my_ptrdiff_t diff, - bool stat_flag= FALSE); - Field *clone(MEM_ROOT *mem_root, my_ptrdiff_t diff); + Field *clone(MEM_ROOT *mem_root, TABLE *new_table, my_ptrdiff_t diff); inline void move_field(uchar *ptr_arg,uchar *null_ptr_arg,uchar null_bit_arg) { ptr=ptr_arg; null_ptr=null_ptr_arg; null_bit=null_bit_arg; @@ -1686,6 +1687,7 @@ enum Derivation derivation(void) const { return DERIVATION_NUMERIC; } uint repertoire(void) const { return MY_REPERTOIRE_NUMERIC; } CHARSET_INFO *charset(void) const { return &my_charset_numeric; } + sql_mode_t can_handle_sql_mode_dependency_on_store() const; Item *get_equal_const_item(THD *thd, const Context &ctx, Item *const_item) { return (flags & ZEROFILL_FLAG) ? @@ -1708,13 +1710,6 @@ { return to->store(val_int(), MY_TEST(flags & UNSIGNED_FLAG)); } - bool memcpy_field_possible(const Field *from) const - { - return real_type() == from->real_type() && - pack_length() == from->pack_length() && - !((flags & UNSIGNED_FLAG) && !(from->flags & UNSIGNED_FLAG)) && - decimals() == from->decimals(); - } uint is_equal(Create_field *new_field); uint row_pack_length() const { return pack_length(); } uint32 pack_length_from_metadata(uint field_metadata) { @@ -1892,7 +1887,10 @@ e.g. a DOUBLE(53,10) into a DOUBLE(10,10). But it should be OK the other way around. */ - return Field_num::memcpy_field_possible(from) && + return real_type() == from->real_type() && + pack_length() == from->pack_length() && + is_unsigned() <= from->is_unsigned() && + decimals() == from->decimals() && field_length >= from->field_length; } int store_decimal(const my_decimal *); @@ -1983,7 +1981,10 @@ } bool memcpy_field_possible(const Field *from) const { - return Field_num::memcpy_field_possible(from) && + return real_type() == from->real_type() && + pack_length() == from->pack_length() && + is_unsigned() <= from->is_unsigned() && + decimals() == from->decimals() && field_length == from->field_length; } int reset(void); @@ -2041,6 +2042,12 @@ :Field_num(ptr_arg, len_arg, null_ptr_arg, null_bit_arg, unireg_check_arg, field_name_arg, 0, zero_arg, unsigned_arg) {} + bool memcpy_field_possible(const Field *from) const + { + return real_type() == from->real_type() && + pack_length() == from->pack_length() && + is_unsigned() == from->is_unsigned(); + } int store_decimal(const my_decimal *); my_decimal *val_decimal(my_decimal *); bool val_bool() { return val_int() != 0; } @@ -2551,6 +2558,7 @@ { return store(str, length, &my_charset_bin); } + sql_mode_t can_handle_sql_mode_dependency_on_store() const; Copy_func *get_copy_func(const Field *from) const; int save_in_field(Field *to) { @@ -2664,13 +2672,6 @@ void sql_type(String &str) const; bool zero_pack() const { return 0; } int set_time(); - int evaluate_update_default_function() - { - int res= 0; - if (has_update_default_function()) - res= set_time(); - return res; - } /* Get TIMESTAMP field value as seconds since begging of Unix Epoch */ my_time_t get_timestamp(const uchar *pos, ulong *sec_part) const; my_time_t get_timestamp(ulong *sec_part) const @@ -3126,13 +3127,6 @@ bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate) { return Field_datetime::get_TIME(ltime, ptr, fuzzydate); } int set_time(); - int evaluate_update_default_function() - { - int res= 0; - if (has_update_default_function()) - res= set_time(); - return res; - } uchar *pack(uchar* to, const uchar *from, uint max_length __attribute__((unused))) { @@ -3357,6 +3351,7 @@ int cmp(const uchar *,const uchar *); void sort_string(uchar *buff,uint length); void sql_type(String &str) const; + void sql_rpl_type(String*) const; virtual uchar *pack(uchar *to, const uchar *from, uint max_length); virtual const uchar *unpack(uchar* to, const uchar *from, @@ -3381,6 +3376,8 @@ { return charset() == &my_charset_bin ? FALSE : TRUE; } Field *make_new_field(MEM_ROOT *root, TABLE *new_table, bool keep_type); virtual uint get_key_image(uchar *buff,uint length, imagetype type); + sql_mode_t value_depends_on_sql_mode() const; + sql_mode_t can_handle_sql_mode_dependency_on_store() const; private: int save_field_metadata(uchar *first_byte); }; @@ -3467,6 +3464,7 @@ uint get_key_image(uchar *buff,uint length, imagetype type); void set_key_image(const uchar *buff,uint length); void sql_type(String &str) const; + void sql_rpl_type(String*) const; virtual uchar *pack(uchar *to, const uchar *from, uint max_length); virtual const uchar *unpack(uchar* to, const uchar *from, const uchar *from_end, uint param_data); @@ -3971,6 +3969,7 @@ Field *make_new_field(MEM_ROOT *root, TABLE *new_table, bool keep_type); const Type_handler *type_handler() const { return &type_handler_enum; } enum ha_base_keytype key_type() const; + sql_mode_t can_handle_sql_mode_dependency_on_store() const; Copy_func *get_copy_func(const Field *from) const { if (eq_def(from)) diff -Nru mariadb-10.3-10.3.17/sql/handler.cc mariadb-10.3-10.3.20/sql/handler.cc --- mariadb-10.3-10.3.17/sql/handler.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/handler.cc 2019-11-06 16:01:57.000000000 +0000 @@ -7164,8 +7164,7 @@ bool Table_scope_and_contents_source_st::vers_fix_system_fields( - THD *thd, Alter_info *alter_info, const TABLE_LIST &create_table, - bool create_select) + THD *thd, Alter_info *alter_info, const TABLE_LIST &create_table) { DBUG_ASSERT(!(alter_info->flags & ALTER_DROP_SYSTEM_VERSIONING)); @@ -7205,41 +7204,59 @@ if (vers_info.fix_implicit(thd, alter_info)) return true; - int plain_cols= 0; // columns don't have WITH or WITHOUT SYSTEM VERSIONING - int vers_cols= 0; // columns have WITH SYSTEM VERSIONING - it.rewind(); - while (const Create_field *f= it++) - { - if (vers_info.is_start(*f) || vers_info.is_end(*f)) - continue; - - if (f->versioning == Column_definition::VERSIONING_NOT_SET) - plain_cols++; - else if (f->versioning == Column_definition::WITH_VERSIONING) - vers_cols++; - } - - if (!thd->lex->tmp_table() && - // CREATE from SELECT (Create_fields are not yet added) - !create_select && vers_cols == 0 && (plain_cols == 0 || !vers_info)) - { - my_error(ER_VERS_TABLE_MUST_HAVE_COLUMNS, MYF(0), - create_table.table_name.str); - return true; - } - return false; } bool Table_scope_and_contents_source_st::vers_check_system_fields( - THD *thd, Alter_info *alter_info, const TABLE_LIST &create_table) + THD *thd, Alter_info *alter_info, const Lex_table_name &table_name, + const Lex_table_name &db, int select_count) { if (!(options & HA_VERSIONED_TABLE)) return false; - return vers_info.check_sys_fields( - create_table.table_name, create_table.db, alter_info, - ha_check_storage_engine_flag(db_type, HTON_NATIVE_SYS_VERSIONING)); + + if (!(alter_info->flags & ALTER_DROP_SYSTEM_VERSIONING)) + { + uint versioned_fields= 0; + uint fieldnr= 0; + List_iterator field_it(alter_info->create_list); + while (Create_field *f= field_it++) + { + /* + The field from the CREATE part can be duplicated in the SELECT part of + CREATE...SELECT. In that case double counts should be avoided. + select_create::create_table_from_items just pushes the fields back into + the create_list, without additional manipulations, so the fields from + SELECT go last there. + */ + bool is_dup= false; + if (fieldnr >= alter_info->create_list.elements - select_count) + { + List_iterator dup_it(alter_info->create_list); + for (Create_field *dup= dup_it++; !is_dup && dup != f; dup= dup_it++) + is_dup= my_strcasecmp(default_charset_info, + dup->field_name.str, f->field_name.str) == 0; + } + + if (!(f->flags & VERS_UPDATE_UNVERSIONED_FLAG) && !is_dup) + versioned_fields++; + fieldnr++; + } + if (versioned_fields == VERSIONING_FIELDS) + { + my_error(ER_VERS_TABLE_MUST_HAVE_COLUMNS, MYF(0), table_name.str); + return true; + } + } + + if (!(alter_info->flags & ALTER_ADD_SYSTEM_VERSIONING)) + return false; + + bool can_native= ha_check_storage_engine_flag(db_type, + HTON_NATIVE_SYS_VERSIONING) + || db_type->db_type == DB_TYPE_PARTITION_DB; + + return vers_info.check_sys_fields(table_name, db, alter_info, can_native); } @@ -7284,13 +7301,15 @@ return false; } + if (!(alter_info->flags & ALTER_ADD_SYSTEM_VERSIONING)) { List_iterator_fast it(alter_info->create_list); while (Create_field *f= it++) { - if (f->change.length && f->flags & VERS_SYSTEM_FIELD) + if (f->flags & VERS_SYSTEM_FIELD) { - my_error(ER_VERS_ALTER_SYSTEM_FIELD, MYF(0), f->field_name.str); + my_error(ER_VERS_DUPLICATE_ROW_START_END, MYF(0), + f->flags & VERS_SYS_START_FLAG ? "START" : "END", f->field_name.str); return true; } } @@ -7343,20 +7362,7 @@ return false; } - if (fix_implicit(thd, alter_info)) - return true; - - if (alter_info->flags & ALTER_ADD_SYSTEM_VERSIONING) - { - const bool can_native= - ha_check_storage_engine_flag(create_info->db_type, - HTON_NATIVE_SYS_VERSIONING) || - create_info->db_type->db_type == DB_TYPE_PARTITION_DB; - if (check_sys_fields(table_name, share->db, alter_info, can_native)) - return true; - } - - return false; + return fix_implicit(thd, alter_info); } bool diff -Nru mariadb-10.3-10.3.17/sql/handler.h mariadb-10.3-10.3.20/sql/handler.h --- mariadb-10.3-10.3.17/sql/handler.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/handler.h 2019-11-06 16:01:57.000000000 +0000 @@ -802,9 +802,9 @@ char data[XIDDATASIZE]; // not \0-terminated ! xid_t() {} /* Remove gcc warning */ - bool eq(struct xid_t *xid) + bool eq(struct xid_t *xid) const { return !xid->is_null() && eq(xid->gtrid_length, xid->bqual_length, xid->data); } - bool eq(long g, long b, const char *d) + bool eq(long g, long b, const char *d) const { return !is_null() && g == gtrid_length && b == bqual_length && !memcmp(d, data, g+b); } void set(struct xid_t *xid) { memcpy(this, xid, xid->length()); } @@ -2104,11 +2104,12 @@ } bool vers_fix_system_fields(THD *thd, Alter_info *alter_info, - const TABLE_LIST &create_table, - bool create_select= false); + const TABLE_LIST &create_table); bool vers_check_system_fields(THD *thd, Alter_info *alter_info, - const TABLE_LIST &create_table); + const Lex_table_name &table_name, + const Lex_table_name &db, + int select_count= 0); }; @@ -3007,6 +3008,10 @@ */ Handler_share **ha_share; + /** Stores next_insert_id for handling duplicate key errors. */ + ulonglong m_prev_insert_id; + + public: handler(handlerton *ht_arg, TABLE_SHARE *share_arg) :table_share(share_arg), table(0), @@ -3029,7 +3034,7 @@ auto_inc_intervals_count(0), m_psi(NULL), set_top_table_fields(FALSE), top_table(0), top_table_field(0), top_table_fields(0), - m_lock_type(F_UNLCK), ha_share(NULL) + m_lock_type(F_UNLCK), ha_share(NULL), m_prev_insert_id(0) { DBUG_PRINT("info", ("handler created F_UNLCK %d F_RDLCK %d F_WRLCK %d", @@ -3683,7 +3688,7 @@ DBUG_PRINT("info",("auto_increment: next value %lu", (ulong)id)); next_insert_id= id; } - void restore_auto_increment(ulonglong prev_insert_id) + virtual void restore_auto_increment(ulonglong prev_insert_id) { /* Insertion of a row failed, re-use the lastly generated auto_increment @@ -3699,6 +3704,16 @@ insert_id_for_cur_row; } + /** Store and restore next_insert_id over duplicate key errors. */ + virtual void store_auto_increment() + { + m_prev_insert_id= next_insert_id; + } + virtual void restore_auto_increment() + { + restore_auto_increment(m_prev_insert_id); + } + virtual void update_create_info(HA_CREATE_INFO *create_info) {} int check_old_types(); virtual int assign_to_keycache(THD* thd, HA_CHECK_OPT* check_opt) diff -Nru mariadb-10.3-10.3.17/sql/ha_partition.cc mariadb-10.3-10.3.20/sql/ha_partition.cc --- mariadb-10.3-10.3.17/sql/ha_partition.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/ha_partition.cc 2019-11-06 16:01:57.000000000 +0000 @@ -3459,8 +3459,7 @@ /* Open handler object - - SYNOPSIS +SYNOPSIS open() name Full path of table name mode Open mode flags @@ -3586,6 +3585,7 @@ } else { + check_insert_autoincrement(); if (unlikely((error= open_read_partitions(name_buff, sizeof(name_buff))))) goto err_handler; m_num_locks= m_file_sample->lock_count(); @@ -3951,7 +3951,12 @@ { if (m_part_info->part_expr) m_part_info->part_expr->walk(&Item::register_field_in_read_map, 1, 0); - if (m_part_info->part_type == VERSIONING_PARTITION) + if (m_part_info->part_type == VERSIONING_PARTITION && + /* TODO: MDEV-20345 exclude more inapproriate commands like INSERT + These commands may be excluded because working history partition is needed + only for versioned DML. */ + thd->lex->sql_command != SQLCOM_SELECT && + thd->lex->sql_command != SQLCOM_INSERT_SELECT) m_part_info->vers_set_hist_part(thd); } DBUG_RETURN(0); @@ -4093,8 +4098,24 @@ /* Add partition to be called in reset(). */ bitmap_set_bit(&m_partitions_to_reset, i); } - if (lock_type == F_WRLCK && m_part_info->part_expr) - m_part_info->part_expr->walk(&Item::register_field_in_read_map, 1, 0); + switch (lock_type) + { + case TL_WRITE_ALLOW_WRITE: + case TL_WRITE_CONCURRENT_INSERT: + case TL_WRITE_DELAYED: + case TL_WRITE_DEFAULT: + case TL_WRITE_LOW_PRIORITY: + case TL_WRITE: + case TL_WRITE_ONLY: + if (m_part_info->part_expr) + m_part_info->part_expr->walk(&Item::register_field_in_read_map, 1, 0); + if (m_part_info->part_type == VERSIONING_PARTITION && + // TODO: MDEV-20345 (see above) + thd->lex->sql_command != SQLCOM_SELECT && + thd->lex->sql_command != SQLCOM_INSERT_SELECT) + m_part_info->vers_set_hist_part(thd); + default:; + } DBUG_RETURN(error); } @@ -4451,11 +4472,8 @@ table->found_next_number_field->field_index)) { update_next_auto_inc_val(); - /* - The following call is safe as part_share->auto_inc_initialized - (tested in the call) is guaranteed to be set for update statements. - */ - set_auto_increment_if_higher(table->found_next_number_field); + if (part_share->auto_inc_initialized) + set_auto_increment_if_higher(table->found_next_number_field); } DBUG_RETURN(error); } @@ -8123,6 +8141,7 @@ if (flag & HA_STATUS_AUTO) { bool auto_inc_is_first_in_idx= (table_share->next_number_keypart == 0); + bool all_parts_opened= true; DBUG_PRINT("info", ("HA_STATUS_AUTO")); if (!table->found_next_number_field) stats.auto_increment_value= 0; @@ -8153,6 +8172,15 @@ ("checking all partitions for auto_increment_value")); do { + if (!bitmap_is_set(&m_opened_partitions, (uint)(file_array - m_file))) + { + /* + Some partitions aren't opened. + So we can't calculate the autoincrement. + */ + all_parts_opened= false; + break; + } file= *file_array; file->info(HA_STATUS_AUTO | no_lock_flag); set_if_bigger(auto_increment_value, @@ -8161,7 +8189,7 @@ DBUG_ASSERT(auto_increment_value); stats.auto_increment_value= auto_increment_value; - if (auto_inc_is_first_in_idx) + if (all_parts_opened && auto_inc_is_first_in_idx) { set_if_bigger(part_share->next_auto_inc_val, auto_increment_value); @@ -8283,6 +8311,7 @@ ulonglong max_records= 0; uint32 i= 0; uint32 handler_instance= 0; + bool handler_instance_set= 0; file_array= m_file; do @@ -8295,8 +8324,9 @@ !bitmap_is_set(&(m_part_info->read_partitions), (uint) (file_array - m_file))) file->info(HA_STATUS_VARIABLE | no_lock_flag | extra_var_flag); - if (file->stats.records > max_records) + if (file->stats.records > max_records || !handler_instance_set) { + handler_instance_set= 1; max_records= file->stats.records; handler_instance= i; } @@ -8462,6 +8492,7 @@ return 0; } + check_insert_autoincrement(); if (bitmap_cmp(&m_opened_partitions, &m_part_info->read_partitions) != 0) return 0; diff -Nru mariadb-10.3-10.3.17/sql/ha_partition.h mariadb-10.3-10.3.20/sql/ha_partition.h --- mariadb-10.3-10.3.17/sql/ha_partition.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/ha_partition.h 2019-11-06 16:01:57.000000000 +0000 @@ -92,6 +92,7 @@ bool auto_inc_initialized; mysql_mutex_t auto_inc_mutex; /**< protecting auto_inc val */ ulonglong next_auto_inc_val; /**< first non reserved value */ + ulonglong prev_auto_inc_val; /**< stored next_auto_inc_val */ /** Hash of partition names. Initialized in the first ha_partition::open() for the table_share. After that it is read-only, i.e. no locking required. @@ -103,6 +104,7 @@ Partition_share() : auto_inc_initialized(false), next_auto_inc_val(0), + prev_auto_inc_val(0), partition_name_hash_initialized(false), partition_names(NULL) { @@ -371,6 +373,24 @@ MY_BITMAP m_locked_partitions; /** Stores shared auto_increment etc. */ Partition_share *part_share; + /** Fix spurious -Werror=overloaded-virtual in GCC 9 */ + virtual void restore_auto_increment(ulonglong prev_insert_id) + { + handler::restore_auto_increment(prev_insert_id); + } + /** Store and restore next_auto_inc_val over duplicate key errors. */ + virtual void store_auto_increment() + { + DBUG_ASSERT(part_share); + part_share->prev_auto_inc_val= part_share->next_auto_inc_val; + handler::store_auto_increment(); + } + virtual void restore_auto_increment() + { + DBUG_ASSERT(part_share); + part_share->next_auto_inc_val= part_share->prev_auto_inc_val; + handler::restore_auto_increment(); + } /** Temporary storage for new partitions Handler_shares during ALTER */ List m_new_partitions_share_refs; /** Sorted array of partition ids in descending order of number of rows. */ @@ -1309,6 +1329,19 @@ unlock_auto_increment(); } + void check_insert_autoincrement() + { + /* + If we INSERT into the table having the AUTO_INCREMENT column, + we have to read all partitions for the next autoincrement value + unless we already did it. + */ + if (!part_share->auto_inc_initialized && + ha_thd()->lex->sql_command == SQLCOM_INSERT && + table->found_next_number_field) + bitmap_set_all(&m_part_info->read_partitions); + } + public: /* diff -Nru mariadb-10.3-10.3.17/sql/item.cc mariadb-10.3-10.3.20/sql/item.cc --- mariadb-10.3-10.3.17/sql/item.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/item.cc 2019-11-06 16:01:57.000000000 +0000 @@ -4020,6 +4020,20 @@ } +longlong Item_null::val_datetime_packed() +{ + null_value= true; + return 0; +} + + +longlong Item_null::val_time_packed() +{ + null_value= true; + return 0; +} + + bool Item_null::get_date(MYSQL_TIME *ltime, ulonglong fuzzydate) { // following assert is redundant, because fixed=1 assigned in constructor @@ -8387,6 +8401,24 @@ } +longlong Item_ref::val_datetime_packed() +{ + DBUG_ASSERT(fixed); + longlong tmp= (*ref)->val_datetime_packed(); + null_value= (*ref)->null_value; + return tmp; +} + + +longlong Item_ref::val_time_packed() +{ + DBUG_ASSERT(fixed); + longlong tmp= (*ref)->val_time_packed(); + null_value= (*ref)->null_value; + return tmp; +} + + my_decimal *Item_ref::val_decimal(my_decimal *decimal_value) { my_decimal *val= (*ref)->val_decimal_result(decimal_value); @@ -9371,8 +9403,6 @@ return Item_field::save_in_field(field_arg, no_conversions); } - if (field_arg->default_value && field_arg->default_value->flags) - return 0; // defaut fields will be set later, no need to do it twice return field_arg->save_in_field_default_value(context->error_processor == &view_error_processor); } @@ -9619,7 +9649,7 @@ int err_code= item->save_in_field(field, 0); field->table->copy_blobs= copy_blobs_saved; - field->set_explicit_default(item); + field->set_has_explicit_value(); return err_code < 0; } diff -Nru mariadb-10.3-10.3.17/sql/item_cmpfunc.cc mariadb-10.3-10.3.20/sql/item_cmpfunc.cc --- mariadb-10.3-10.3.17/sql/item_cmpfunc.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/item_cmpfunc.cc 2019-11-06 16:01:57.000000000 +0000 @@ -345,11 +345,9 @@ TABLE *table= field->table; sql_mode_t orig_sql_mode= thd->variables.sql_mode; enum_check_fields orig_count_cuted_fields= thd->count_cuted_fields; - my_bitmap_map *old_maps[2]; + my_bitmap_map *old_maps[2] = { NULL, NULL }; ulonglong UNINIT_VAR(orig_field_val); /* original field value if valid */ - LINT_INIT_STRUCT(old_maps); - /* table->read_set may not be set if we come here from a CREATE TABLE */ if (table && table->read_set) dbug_tmp_use_all_columns(table, old_maps, @@ -449,6 +447,23 @@ } +/* + Comparison operators remove arguments' dependency on PAD_CHAR_TO_FULL_LENGTH + in case of PAD SPACE comparison collations: trailing spaces do not affect + the comparison result for such collations. +*/ +Sql_mode_dependency +Item_bool_rowready_func2::value_depends_on_sql_mode() const +{ + if (compare_collation()->state & MY_CS_NOPAD) + return Item_func::value_depends_on_sql_mode(); + return ((args[0]->value_depends_on_sql_mode() | + args[1]->value_depends_on_sql_mode()) & + Sql_mode_dependency(~0, ~MODE_PAD_CHAR_TO_FULL_LENGTH)). + soft_to_hard(); +} + + bool Item_bool_rowready_func2::fix_length_and_dec() { max_length= 1; // Function returns 0 or 1 @@ -5274,6 +5289,29 @@ } +/* + subject LIKE pattern + removes subject's dependency on PAD_CHAR_TO_FULL_LENGTH + if pattern ends with the '%' wildcard. +*/ +Sql_mode_dependency Item_func_like::value_depends_on_sql_mode() const +{ + if (!args[1]->value_depends_on_sql_mode_const_item()) + return Item_func::value_depends_on_sql_mode(); + StringBuffer<64> patternbuf; + String *pattern= args[1]->val_str_ascii(&patternbuf); + if (!pattern || !pattern->length()) + return Sql_mode_dependency(); // Will return NULL or 0 + DBUG_ASSERT(pattern->charset()->mbminlen == 1); + if (pattern->ptr()[pattern->length() - 1] != '%') + return Item_func::value_depends_on_sql_mode(); + return ((args[0]->value_depends_on_sql_mode() | + args[1]->value_depends_on_sql_mode()) & + Sql_mode_dependency(~0, ~MODE_PAD_CHAR_TO_FULL_LENGTH)). + soft_to_hard(); +} + + SEL_TREE *Item_func_like::get_mm_tree(RANGE_OPT_PARAM *param, Item **cond_ptr) { MEM_ROOT *tmp_root= param->mem_root; diff -Nru mariadb-10.3-10.3.17/sql/item_cmpfunc.h mariadb-10.3-10.3.20/sql/item_cmpfunc.h --- mariadb-10.3-10.3.17/sql/item_cmpfunc.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/item_cmpfunc.h 2019-11-06 16:01:57.000000000 +0000 @@ -507,6 +507,7 @@ Item_bool_rowready_func2(THD *thd, Item *a, Item *b): Item_bool_func2_with_rev(thd, a, b), cmp(tmp_arg, tmp_arg + 1) { } + Sql_mode_dependency value_depends_on_sql_mode() const; void print(String *str, enum_query_type query_type) { Item_func::print_op(str, query_type); @@ -654,7 +655,7 @@ class Item_func_not_all :public Item_func_not { /* allow to check presence of values in max/min optimization */ - Item_sum_hybrid *test_sum_item; + Item_sum_min_max *test_sum_item; Item_maxmin_subselect *test_sub_item; public: @@ -670,7 +671,7 @@ bool fix_fields(THD *thd, Item **ref) {return Item_func::fix_fields(thd, ref);} virtual void print(String *str, enum_query_type query_type); - void set_sum_test(Item_sum_hybrid *item) { test_sum_item= item; test_sub_item= 0; }; + void set_sum_test(Item_sum_min_max *item) { test_sum_item= item; test_sub_item= 0; }; void set_sub_test(Item_maxmin_subselect *item) { test_sub_item= item; test_sum_item= 0;}; bool empty_underlying_subquery(); Item *neg_transformer(THD *thd); @@ -2632,6 +2633,7 @@ Item_bool_func2(thd, a, b), canDoTurboBM(FALSE), pattern(0), pattern_len(0), bmGs(0), bmBc(0), escape_item(escape_arg), escape_used_in_parsing(escape_used), use_sampling(0), negated(0) {} + Sql_mode_dependency value_depends_on_sql_mode() const; longlong val_int(); enum Functype functype() const { return LIKE_FUNC; } void print(String *str, enum_query_type query_type); diff -Nru mariadb-10.3-10.3.17/sql/item_func.cc mariadb-10.3-10.3.20/sql/item_func.cc --- mariadb-10.3-10.3.17/sql/item_func.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/item_func.cc 2019-11-06 16:01:57.000000000 +0000 @@ -562,6 +562,15 @@ } +Sql_mode_dependency Item_args::value_depends_on_sql_mode_bit_or() const +{ + Sql_mode_dependency res; + for (uint i= 0; i < arg_count; i++) + res|= args[i]->value_depends_on_sql_mode(); + return res; +} + + /** See comments in Item_cond::split_sum_func() */ @@ -1329,10 +1338,22 @@ if (Item_func_minus::type_handler()->Item_func_minus_fix_length_and_dec(this)) DBUG_RETURN(TRUE); DBUG_PRINT("info", ("Type: %s", type_handler()->name().ptr())); + if ((m_depends_on_sql_mode_no_unsigned_subtraction= unsigned_flag) && + (current_thd->variables.sql_mode & MODE_NO_UNSIGNED_SUBTRACTION)) + unsigned_flag= false; DBUG_RETURN(FALSE); } +Sql_mode_dependency Item_func_minus::value_depends_on_sql_mode() const +{ + Sql_mode_dependency dep= Item_func_additive_op::value_depends_on_sql_mode(); + if (m_depends_on_sql_mode_no_unsigned_subtraction) + dep|= Sql_mode_dependency(0, MODE_NO_UNSIGNED_SUBTRACTION); + return dep; +} + + double Item_func_minus::real_op() { double value= args[0]->val_real() - args[1]->val_real(); @@ -1833,8 +1854,11 @@ void Item_func_mod::result_precision() { + unsigned_flag= args[0]->unsigned_flag; decimals= MY_MAX(args[0]->decimal_scale(), args[1]->decimal_scale()); - max_length= MY_MAX(args[0]->max_length, args[1]->max_length); + uint prec= MY_MAX(args[0]->decimal_precision(), args[1]->decimal_precision()); + fix_char_length(my_decimal_precision_to_length_no_truncation(prec, decimals, + unsigned_flag)); } diff -Nru mariadb-10.3-10.3.17/sql/item_func.h mariadb-10.3-10.3.20/sql/item_func.h --- mariadb-10.3-10.3.17/sql/item_func.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/item_func.h 2019-11-06 16:01:57.000000000 +0000 @@ -1095,11 +1095,15 @@ class Item_func_minus :public Item_func_additive_op { + bool m_depends_on_sql_mode_no_unsigned_subtraction; public: Item_func_minus(THD *thd, Item *a, Item *b): - Item_func_additive_op(thd, a, b) {} + Item_func_additive_op(thd, a, b), + m_depends_on_sql_mode_no_unsigned_subtraction(false) + { } const char *func_name() const { return "-"; } enum precedence precedence() const { return ADD_PRECEDENCE; } + Sql_mode_dependency value_depends_on_sql_mode() const; longlong int_op(); double real_op(); my_decimal *decimal_op(my_decimal *); @@ -1205,14 +1209,13 @@ } void fix_length_and_dec_decimal() { - Item_num_op::fix_length_and_dec_decimal(); - unsigned_flag= args[0]->unsigned_flag; + result_precision(); + fix_decimals(); } void fix_length_and_dec_int() { - max_length= MY_MAX(args[0]->max_length, args[1]->max_length); - decimals= 0; - unsigned_flag= args[0]->unsigned_flag; + result_precision(); + DBUG_ASSERT(decimals == 0); set_handler(type_handler_long_or_longlong()); } bool check_partition_func_processor(void *int_arg) {return FALSE;} diff -Nru mariadb-10.3-10.3.17/sql/item.h mariadb-10.3-10.3.20/sql/item.h --- mariadb-10.3-10.3.17/sql/item.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/item.h 2019-11-06 16:01:57.000000000 +0000 @@ -2,7 +2,7 @@ #define SQL_ITEM_INCLUDED /* Copyright (c) 2000, 2017, Oracle and/or its affiliates. - Copyright (c) 2009, 2018, MariaDB Corporation + Copyright (c) 2009, 2019, MariaDB Corporation. 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 @@ -632,7 +632,6 @@ class Item: public Value_source, public Type_all_attributes { - void operator=(Item &); /** The index in the JOIN::join_tab array of the JOIN_TAB this Item is attached to. Items are attached (or 'pushed') to JOIN_TABs during optimization by the @@ -671,7 +670,7 @@ /* Cache of the result of is_expensive(). */ int8 is_expensive_cache; - /* Reuse size, only used by SP local variable assignment, otherwize 0 */ + /* Reuse size, only used by SP local variable assignment, otherwise 0 */ uint rsize; protected: @@ -1253,6 +1252,32 @@ double val_real_from_decimal(); double val_real_from_date(); + /* + Returns true if this item can be calculated during + value_depends_on_sql_mode() + */ + bool value_depends_on_sql_mode_const_item() + { + /* + Currently we use value_depends_on_sql_mode() only for virtual + column expressions. They should not contain any expensive items. + If we ever get a crash on the assert below, it means + check_vcol_func_processor() is badly implemented for this item. + */ + DBUG_ASSERT(!is_expensive()); + /* + It should return const_item() actually. + But for some reasons Item_field::const_item() returns true + at value_depends_on_sql_mode() call time. + This should be checked and fixed. + */ + return basic_const_item(); + } + virtual Sql_mode_dependency value_depends_on_sql_mode() const + { + return Sql_mode_dependency(); + } + // Get TIME, DATE or DATETIME using proper sql_mode flags for the field type bool get_temporal_with_sql_mode(MYSQL_TIME *ltime); // Check NULL value for a TIME, DATE or DATETIME expression @@ -2290,6 +2315,7 @@ inline Item **arguments() const { return args; } inline uint argument_count() const { return arg_count; } inline void remove_arguments() { arg_count=0; } + Sql_mode_dependency value_depends_on_sql_mode_bit_or() const; }; @@ -3030,6 +3056,10 @@ { return MONOTONIC_STRICT_INCREASING; } + Sql_mode_dependency value_depends_on_sql_mode() const + { + return Sql_mode_dependency(0, field->value_depends_on_sql_mode()); + } longlong val_int_endpoint(bool left_endp, bool *incl_endp); bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); bool get_date_result(MYSQL_TIME *ltime,ulonglong fuzzydate); @@ -3243,6 +3273,8 @@ String *val_str(String *str); my_decimal *val_decimal(my_decimal *); bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); + longlong val_datetime_packed(); + longlong val_time_packed(); int save_in_field(Field *field, bool no_conversions); int save_safe_in_field(Field *field); bool send(Protocol *protocol, st_value *buffer); @@ -4725,6 +4757,10 @@ bool const_item() const { return const_item_cache; } table_map used_tables() const { return used_tables_cache; } Item* build_clone(THD *thd); + Sql_mode_dependency value_depends_on_sql_mode() const + { + return Item_args::value_depends_on_sql_mode_bit_or().soft_to_hard(); + } }; class sp_head; @@ -4812,6 +4848,8 @@ String *val_str(String* tmp); bool is_null(); bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); + longlong val_datetime_packed(); + longlong val_time_packed(); double val_result(); longlong val_int_result(); String *str_result(String* tmp); diff -Nru mariadb-10.3-10.3.17/sql/item_strfunc.cc mariadb-10.3-10.3.20/sql/item_strfunc.cc --- mariadb-10.3-10.3.17/sql/item_strfunc.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/item_strfunc.cc 2019-11-06 16:01:57.000000000 +0000 @@ -58,6 +58,27 @@ size_t username_char_length= 80; + +class Repeat_count +{ + ulonglong m_count; +public: + Repeat_count(Item *item) + :m_count(0) + { + Longlong_hybrid nr= item->to_longlong_hybrid(); + if (!item->null_value && !nr.neg()) + { + // Assume that the maximum length of a String is < INT_MAX32 + m_count= (ulonglong) nr.value(); + if (m_count > (ulonglong) INT_MAX32) + m_count= (ulonglong) INT_MAX32; + } + } + ulonglong count() const { return m_count; } +}; + + /* For the Items which have only val_str_ascii() method and don't have their own "native" val_str(), @@ -1635,13 +1656,10 @@ void Item_str_func::left_right_max_length() { uint32 char_length= args[0]->max_char_length(); - if (args[1]->const_item()) + if (args[1]->const_item() && !args[1]->is_expensive()) { - int length= (int) args[1]->val_int(); - if (args[1]->null_value || length <= 0) - char_length=0; - else - set_if_smaller(char_length, (uint) length); + Repeat_count tmp(args[1]); + set_if_smaller(char_length, (uint) tmp.count()); } fix_char_length(char_length); } @@ -2156,6 +2174,41 @@ } +/* + RTRIM(expr) + TRIM(TRAILING ' ' FROM expr) + remove argument's soft dependency on PAD_CHAR_TO_FULL_LENGTH: +*/ +Sql_mode_dependency Item_func_trim::value_depends_on_sql_mode() const +{ + DBUG_ASSERT(fixed); + if (arg_count == 1) // RTRIM(expr) + return (args[0]->value_depends_on_sql_mode() & + Sql_mode_dependency(~0, ~MODE_PAD_CHAR_TO_FULL_LENGTH)). + soft_to_hard(); + // TRIM(... FROM expr) + DBUG_ASSERT(arg_count == 2); + if (!args[1]->value_depends_on_sql_mode_const_item()) + return Item_func::value_depends_on_sql_mode(); + StringBuffer<64> trimstrbuf; + String *trimstr= args[1]->val_str(&trimstrbuf); + if (!trimstr) + return Sql_mode_dependency(); // will return NULL + if (trimstr->length() == 0) + return Item_func::value_depends_on_sql_mode(); // will trim nothing + if (trimstr->lengthsp() != 0) + return Item_func::value_depends_on_sql_mode(); // will trim not only spaces + if (trimstr->length() > trimstr->charset()->mbminlen || + trimstr->numchars() > 1) + return Item_func::value_depends_on_sql_mode(); // more than one space + // TRIM(TRAILING ' ' FROM expr) + return ((args[0]->value_depends_on_sql_mode() | + args[1]->value_depends_on_sql_mode()) & + Sql_mode_dependency(~0, ~MODE_PAD_CHAR_TO_FULL_LENGTH)). + soft_to_hard(); +} + + /* Item_func_password */ bool Item_func_password::fix_fields(THD *thd, Item **ref) @@ -2967,27 +3020,16 @@ if (agg_arg_charsets_for_string_result(collation, args, 1)) return TRUE; DBUG_ASSERT(collation.collation != NULL); - if (args[1]->const_item()) + if (args[1]->const_item() && !args[1]->is_expensive()) { - /* must be longlong to avoid truncation */ - longlong count= args[1]->val_int(); - - /* Assumes that the maximum length of a String is < INT_MAX32. */ - /* Set here so that rest of code sees out-of-bound value as such. */ - if (args[1]->null_value) - count= 0; - else if (count > INT_MAX32) - count= INT_MAX32; - - ulonglong char_length= (ulonglong) args[0]->max_char_length() * count; + Repeat_count tmp(args[1]); + ulonglong char_length= (ulonglong) args[0]->max_char_length() * tmp.count(); fix_char_length_ulonglong(char_length); + return false; } - else - { - max_length= MAX_BLOB_WIDTH; - maybe_null= 1; - } - return FALSE; + max_length= MAX_BLOB_WIDTH; + maybe_null= true; + return false; } /** @@ -3052,26 +3094,14 @@ bool Item_func_space::fix_length_and_dec() { collation.set(default_charset(), DERIVATION_COERCIBLE, MY_REPERTOIRE_ASCII); - if (args[0]->const_item()) + if (args[0]->const_item() && !args[0]->is_expensive()) { - /* must be longlong to avoid truncation */ - longlong count= args[0]->val_int(); - if (args[0]->null_value) - goto end; - /* - Assumes that the maximum length of a String is < INT_MAX32. - Set here so that rest of code sees out-of-bound value as such. - */ - if (count > INT_MAX32) - count= INT_MAX32; - fix_char_length_ulonglong(count); - return FALSE; + fix_char_length_ulonglong(Repeat_count(args[0]).count()); + return false; } - -end: max_length= MAX_BLOB_WIDTH; - maybe_null= 1; - return FALSE; + maybe_null= true; + return false; } @@ -3182,27 +3212,50 @@ pad_str.append(" ", 1); } - if (args[1]->const_item()) - { - ulonglong char_length= (ulonglong) args[1]->val_int(); - DBUG_ASSERT(collation.collation->mbmaxlen > 0); - /* Assumes that the maximum length of a String is < INT_MAX32. */ - /* Set here so that rest of code sees out-of-bound value as such. */ - if (args[1]->null_value) - char_length= 0; - else if (char_length > INT_MAX32) - char_length= INT_MAX32; - fix_char_length_ulonglong(char_length); - } - else + DBUG_ASSERT(collation.collation->mbmaxlen > 0); + if (args[1]->const_item() && !args[1]->is_expensive()) { - max_length= MAX_BLOB_WIDTH; - maybe_null= 1; + fix_char_length_ulonglong(Repeat_count(args[1]).count()); + return false; } - return FALSE; + max_length= MAX_BLOB_WIDTH; + maybe_null= true; + return false; } +/* + PAD(expr,length,' ') + removes argument's soft dependency on PAD_CHAR_TO_FULL_LENGTH if the result + is longer than the argument's maximim possible length. +*/ +Sql_mode_dependency Item_func_rpad::value_depends_on_sql_mode() const +{ + DBUG_ASSERT(fixed); + DBUG_ASSERT(arg_count == 3); + if (!args[1]->value_depends_on_sql_mode_const_item() || + !args[2]->value_depends_on_sql_mode_const_item()) + return Item_func::value_depends_on_sql_mode(); + Longlong_hybrid len= args[1]->to_longlong_hybrid(); + if (args[1]->null_value || len.neg()) + return Sql_mode_dependency(); // will return NULL + if (len.abs() > 0 && len.abs() < args[0]->max_char_length()) + return Item_func::value_depends_on_sql_mode(); + StringBuffer<64> padstrbuf; + String *padstr= args[2]->val_str(&padstrbuf); + if (!padstr || !padstr->length()) + return Sql_mode_dependency(); // will return NULL + if (padstr->lengthsp() != 0) + return Item_func::value_depends_on_sql_mode(); // will pad not only spaces + // RPAD(expr, length, ' ') -- with a long enough length + return ((args[0]->value_depends_on_sql_mode() | + args[1]->value_depends_on_sql_mode()) & + Sql_mode_dependency(~0, ~MODE_PAD_CHAR_TO_FULL_LENGTH)). + soft_to_hard(); +} + + + String *Item_func_rpad::val_str(String *str) { DBUG_ASSERT(fixed == 1); diff -Nru mariadb-10.3-10.3.17/sql/item_strfunc.h mariadb-10.3-10.3.20/sql/item_strfunc.h --- mariadb-10.3-10.3.17/sql/item_strfunc.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/item_strfunc.h 2019-11-06 16:01:57.000000000 +0000 @@ -563,6 +563,7 @@ public: Item_func_trim(THD *thd, Item *a, Item *b): Item_str_func(thd, a, b) {} Item_func_trim(THD *thd, Item *a): Item_str_func(thd, a) {} + Sql_mode_dependency value_depends_on_sql_mode() const; String *val_str(String *); bool fix_length_and_dec(); const char *func_name() const { return "trim"; } @@ -600,6 +601,10 @@ public: Item_func_ltrim(THD *thd, Item *a, Item *b): Item_func_trim(thd, a, b) {} Item_func_ltrim(THD *thd, Item *a): Item_func_trim(thd, a) {} + Sql_mode_dependency value_depends_on_sql_mode() const + { + return Item_func::value_depends_on_sql_mode(); + } String *val_str(String *); const char *func_name() const { return "ltrim"; } const char *mode_name() const { return "leading"; } @@ -1133,6 +1138,7 @@ Item_func_pad(thd, arg1, arg2) {} String *val_str(String *); const char *func_name() const { return "rpad"; } + Sql_mode_dependency value_depends_on_sql_mode() const; Item *get_copy(THD *thd) { return get_item_copy(thd, this); } }; diff -Nru mariadb-10.3-10.3.17/sql/item_subselect.cc mariadb-10.3-10.3.20/sql/item_subselect.cc --- mariadb-10.3-10.3.17/sql/item_subselect.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/item_subselect.cc 2019-11-06 16:01:57.000000000 +0000 @@ -1966,7 +1966,7 @@ (!select_lex->ref_pointer_array[0]->maybe_null || /*4*/ substype() != Item_subselect::ALL_SUBS)) /*4*/ { - Item_sum_hybrid *item; + Item_sum_min_max *item; nesting_map save_allow_sum_func; if (func->l_op()) { diff -Nru mariadb-10.3-10.3.17/sql/item_sum.cc mariadb-10.3-10.3.20/sql/item_sum.cc --- mariadb-10.3-10.3.17/sql/item_sum.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/item_sum.cc 2019-11-06 16:01:57.000000000 +0000 @@ -1152,9 +1152,9 @@ bool -Item_sum_hybrid::fix_fields(THD *thd, Item **ref) +Item_sum_min_max::fix_fields(THD *thd, Item **ref) { - DBUG_ENTER("Item_sum_hybrid::fix_fields"); + DBUG_ENTER("Item_sum_min_max::fix_fields"); DBUG_ASSERT(fixed == 0); if (init_sum_func_check(thd)) @@ -1184,10 +1184,72 @@ } -bool Item_sum_hybrid::fix_length_and_dec() +bool Item_sum_hybrid::fix_length_and_dec_generic() +{ + Item *item= arguments()[0]; + Type_std_attributes::set(item); + set_handler(item->type_handler()); + return false; +} + + +/** + MAX/MIN for the traditional numeric types preserve the exact data type + from Fields, but do not preserve the exact type from Items: + MAX(float_field) -> FLOAT + MAX(smallint_field) -> LONGLONG + MAX(COALESCE(float_field)) -> DOUBLE + MAX(COALESCE(smallint_field)) -> LONGLONG + QQ: Items should probably be fixed to preserve the exact type. +*/ +bool Item_sum_hybrid::fix_length_and_dec_numeric(const Type_handler *handler) +{ + Item *item= arguments()[0]; + Item *item2= item->real_item(); + Type_std_attributes::set(item); + if (item2->type() == Item::FIELD_ITEM) + set_handler(item2->type_handler()); + else + set_handler(handler); + return false; +} + + +/** + MAX(str_field) converts ENUM/SET to CHAR, and preserve all other types + for Fields. + QQ: This works differently from UNION, which preserve the exact data + type for ENUM/SET if the joined ENUM/SET fields are equally defined. + Perhaps should be fixed. + MAX(str_item) chooses the best suitable string type. +*/ +bool Item_sum_hybrid::fix_length_and_dec_string() +{ + Item *item= arguments()[0]; + Item *item2= item->real_item(); + Type_std_attributes::set(item); + if (item2->type() == Item::FIELD_ITEM) + { + // Fields: convert ENUM/SET to CHAR, preserve the type otherwise. + set_handler(item->type_handler()); + } + else + { + // Items: choose VARCHAR/BLOB/MEDIUMBLOB/LONGBLOB, depending on length. + set_handler(type_handler_varchar. + type_handler_adjusted_to_max_octet_length(max_length, + collation.collation)); + } + return false; +} + + +bool Item_sum_min_max::fix_length_and_dec() { DBUG_ASSERT(args[0]->field_type() == args[0]->real_item()->field_type()); DBUG_ASSERT(args[0]->result_type() == args[0]->real_item()->result_type()); + /* MIN/MAX can return NULL for empty set indepedent of the used column */ + maybe_null= null_value= true; return args[0]->type_handler()->Item_sum_hybrid_fix_length_and_dec(this); } @@ -1209,9 +1271,9 @@ and Item_sum_min::add() to use different values! */ -void Item_sum_hybrid::setup_hybrid(THD *thd, Item *item, Item *value_arg) +void Item_sum_min_max::setup_hybrid(THD *thd, Item *item, Item *value_arg) { - DBUG_ENTER("Item_sum_hybrid::setup_hybrid"); + DBUG_ENTER("Item_sum_min_max::setup_hybrid"); if (!(value= item->get_cache(thd))) DBUG_VOID_RETURN; value->setup(thd, item); @@ -1232,9 +1294,9 @@ } -Field *Item_sum_hybrid::create_tmp_field(bool group, TABLE *table) +Field *Item_sum_min_max::create_tmp_field(bool group, TABLE *table) { - DBUG_ENTER("Item_sum_hybrid::create_tmp_field"); + DBUG_ENTER("Item_sum_min_max::create_tmp_field"); if (args[0]->type() == Item::FIELD_ITEM) { @@ -2314,9 +2376,9 @@ /* min & max */ -void Item_sum_hybrid::clear() +void Item_sum_min_max::clear() { - DBUG_ENTER("Item_sum_hybrid::clear"); + DBUG_ENTER("Item_sum_min_max::clear"); value->clear(); null_value= 1; DBUG_VOID_RETURN; @@ -2324,7 +2386,7 @@ bool -Item_sum_hybrid::get_date(MYSQL_TIME *ltime, ulonglong fuzzydate) +Item_sum_min_max::get_date(MYSQL_TIME *ltime, ulonglong fuzzydate) { DBUG_ASSERT(fixed == 1); if (null_value) @@ -2336,9 +2398,9 @@ } -void Item_sum_hybrid::direct_add(Item *item) +void Item_sum_min_max::direct_add(Item *item) { - DBUG_ENTER("Item_sum_hybrid::direct_add"); + DBUG_ENTER("Item_sum_min_max::direct_add"); DBUG_PRINT("info", ("item: %p", item)); direct_added= TRUE; direct_item= item; @@ -2346,9 +2408,9 @@ } -double Item_sum_hybrid::val_real() +double Item_sum_min_max::val_real() { - DBUG_ENTER("Item_sum_hybrid::val_real"); + DBUG_ENTER("Item_sum_min_max::val_real"); DBUG_ASSERT(fixed == 1); if (null_value) DBUG_RETURN(0.0); @@ -2358,9 +2420,9 @@ DBUG_RETURN(retval); } -longlong Item_sum_hybrid::val_int() +longlong Item_sum_min_max::val_int() { - DBUG_ENTER("Item_sum_hybrid::val_int"); + DBUG_ENTER("Item_sum_min_max::val_int"); DBUG_ASSERT(fixed == 1); if (null_value) DBUG_RETURN(0); @@ -2371,9 +2433,9 @@ } -my_decimal *Item_sum_hybrid::val_decimal(my_decimal *val) +my_decimal *Item_sum_min_max::val_decimal(my_decimal *val) { - DBUG_ENTER("Item_sum_hybrid::val_decimal"); + DBUG_ENTER("Item_sum_min_max::val_decimal"); DBUG_ASSERT(fixed == 1); if (null_value) DBUG_RETURN(0); @@ -2385,9 +2447,9 @@ String * -Item_sum_hybrid::val_str(String *str) +Item_sum_min_max::val_str(String *str) { - DBUG_ENTER("Item_sum_hybrid::val_str"); + DBUG_ENTER("Item_sum_min_max::val_str"); DBUG_ASSERT(fixed == 1); if (null_value) DBUG_RETURN(0); @@ -2398,9 +2460,9 @@ } -void Item_sum_hybrid::cleanup() +void Item_sum_min_max::cleanup() { - DBUG_ENTER("Item_sum_hybrid::cleanup"); + DBUG_ENTER("Item_sum_min_max::cleanup"); Item_sum::cleanup(); if (cmp) delete cmp; @@ -2416,9 +2478,9 @@ DBUG_VOID_RETURN; } -void Item_sum_hybrid::no_rows_in_result() +void Item_sum_min_max::no_rows_in_result() { - DBUG_ENTER("Item_sum_hybrid::no_rows_in_result"); + DBUG_ENTER("Item_sum_min_max::no_rows_in_result"); /* We may be called here twice in case of ref field in function */ if (was_values) { @@ -2429,7 +2491,7 @@ DBUG_VOID_RETURN; } -void Item_sum_hybrid::restore_to_before_no_rows_in_result() +void Item_sum_min_max::restore_to_before_no_rows_in_result() { if (!was_values) { @@ -2693,10 +2755,10 @@ } -void Item_sum_hybrid::reset_field() +void Item_sum_min_max::reset_field() { Item *UNINIT_VAR(tmp_item), *arg0; - DBUG_ENTER("Item_sum_hybrid::reset_field"); + DBUG_ENTER("Item_sum_min_max::reset_field"); arg0= args[0]; if (unlikely(direct_added)) @@ -3049,9 +3111,9 @@ } -void Item_sum_hybrid::update_field() +void Item_sum_min_max::update_field() { - DBUG_ENTER("Item_sum_hybrid::update_field"); + DBUG_ENTER("Item_sum_min_max::update_field"); Item *UNINIT_VAR(tmp_item); if (unlikely(direct_added)) { @@ -3081,9 +3143,9 @@ void -Item_sum_hybrid::min_max_update_str_field() +Item_sum_min_max::min_max_update_str_field() { - DBUG_ENTER("Item_sum_hybrid::min_max_update_str_field"); + DBUG_ENTER("Item_sum_min_max::min_max_update_str_field"); DBUG_ASSERT(cmp); String *res_str=args[0]->val_str(&cmp->value1); @@ -3104,11 +3166,11 @@ void -Item_sum_hybrid::min_max_update_real_field() +Item_sum_min_max::min_max_update_real_field() { double nr,old_nr; - DBUG_ENTER("Item_sum_hybrid::min_max_update_real_field"); + DBUG_ENTER("Item_sum_min_max::min_max_update_real_field"); old_nr=result_field->val_real(); nr= args[0]->val_real(); if (!args[0]->null_value) @@ -3126,11 +3188,11 @@ void -Item_sum_hybrid::min_max_update_int_field() +Item_sum_min_max::min_max_update_int_field() { longlong nr,old_nr; - DBUG_ENTER("Item_sum_hybrid::min_max_update_int_field"); + DBUG_ENTER("Item_sum_min_max::min_max_update_int_field"); old_nr=result_field->val_int(); nr=args[0]->val_int(); if (!args[0]->null_value) @@ -3161,9 +3223,9 @@ optimize: do not get result_field in case of args[0] is NULL */ void -Item_sum_hybrid::min_max_update_decimal_field() +Item_sum_min_max::min_max_update_decimal_field() { - DBUG_ENTER("Item_sum_hybrid::min_max_update_decimal_field"); + DBUG_ENTER("Item_sum_min_max::min_max_update_decimal_field"); my_decimal old_val, nr_val; const my_decimal *old_nr; const my_decimal *nr= args[0]->val_decimal(&nr_val); diff -Nru mariadb-10.3-10.3.17/sql/item_sum.h mariadb-10.3-10.3.20/sql/item_sum.h --- mariadb-10.3-10.3.17/sql/item_sum.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/item_sum.h 2019-11-06 16:01:57.000000000 +0000 @@ -1025,10 +1025,35 @@ { return get_item_copy(thd, this); } }; + +class Item_sum_hybrid: public Item_sum, + public Type_handler_hybrid_field_type +{ +public: + Item_sum_hybrid(THD *thd, Item *item_par): + Item_sum(thd, item_par), + Type_handler_hybrid_field_type(&type_handler_longlong) + { collation.set(&my_charset_bin); } + Item_sum_hybrid(THD *thd, Item *a, Item *b): + Item_sum(thd, a, b), + Type_handler_hybrid_field_type(&type_handler_longlong) + { collation.set(&my_charset_bin); } + Item_sum_hybrid(THD *thd, Item_sum_hybrid *item) + :Item_sum(thd, item), + Type_handler_hybrid_field_type(item) + { } + const Type_handler *type_handler() const + { return Type_handler_hybrid_field_type::type_handler(); } + bool fix_length_and_dec_generic(); + bool fix_length_and_dec_numeric(const Type_handler *h); + bool fix_length_and_dec_string(); +}; + + // This class is a string or number function depending on num_func class Arg_comparator; class Item_cache; -class Item_sum_hybrid :public Item_sum, public Type_handler_hybrid_field_type +class Item_sum_min_max :public Item_sum_hybrid { protected: bool direct_added; @@ -1039,16 +1064,14 @@ bool was_values; // Set if we have found at least one row (for max/min only) bool was_null_value; - public: - Item_sum_hybrid(THD *thd, Item *item_par,int sign): - Item_sum(thd, item_par), - Type_handler_hybrid_field_type(&type_handler_longlong), +public: + Item_sum_min_max(THD *thd, Item *item_par,int sign): + Item_sum_hybrid(thd, item_par), direct_added(FALSE), value(0), arg_cache(0), cmp(0), cmp_sign(sign), was_values(TRUE) { collation.set(&my_charset_bin); } - Item_sum_hybrid(THD *thd, Item_sum_hybrid *item) - :Item_sum(thd, item), - Type_handler_hybrid_field_type(item), + Item_sum_min_max(THD *thd, Item_sum_min_max *item) + :Item_sum_hybrid(thd, item), direct_added(FALSE), value(item->value), arg_cache(0), cmp_sign(item->cmp_sign), was_values(item->was_values) { } @@ -1067,8 +1090,6 @@ { return get_arg(0)->real_type_handler(); } - const Type_handler *type_handler() const - { return Type_handler_hybrid_field_type::type_handler(); } TYPELIB *get_typelib() const { return args[0]->get_typelib(); } void update_field(); void min_max_update_str_field(); @@ -1084,11 +1105,11 @@ }; -class Item_sum_min :public Item_sum_hybrid +class Item_sum_min :public Item_sum_min_max { public: - Item_sum_min(THD *thd, Item *item_par): Item_sum_hybrid(thd, item_par, 1) {} - Item_sum_min(THD *thd, Item_sum_min *item) :Item_sum_hybrid(thd, item) {} + Item_sum_min(THD *thd, Item *item_par): Item_sum_min_max(thd, item_par, 1) {} + Item_sum_min(THD *thd, Item_sum_min *item) :Item_sum_min_max(thd, item) {} enum Sumfunctype sum_func () const {return MIN_FUNC;} bool add(); @@ -1099,11 +1120,11 @@ }; -class Item_sum_max :public Item_sum_hybrid +class Item_sum_max :public Item_sum_min_max { public: - Item_sum_max(THD *thd, Item *item_par): Item_sum_hybrid(thd, item_par, -1) {} - Item_sum_max(THD *thd, Item_sum_max *item) :Item_sum_hybrid(thd, item) {} + Item_sum_max(THD *thd, Item *item_par): Item_sum_min_max(thd, item_par, -1) {} + Item_sum_max(THD *thd, Item_sum_max *item) :Item_sum_min_max(thd, item) {} enum Sumfunctype sum_func () const {return MAX_FUNC;} bool add(); diff -Nru mariadb-10.3-10.3.17/sql/item_windowfunc.cc mariadb-10.3-10.3.20/sql/item_windowfunc.cc --- mariadb-10.3-10.3.17/sql/item_windowfunc.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/item_windowfunc.cc 2019-11-06 16:01:57.000000000 +0000 @@ -172,7 +172,8 @@ bool Item_window_func::check_result_type_of_order_item() { - if (only_single_element_order_list()) + switch (window_func()->sum_func()) { + case Item_sum::PERCENTILE_CONT_FUNC: { Item_result rtype= window_spec->order_list->first->item[0]->cmp_type(); // TODO (varun) : support date type in percentile_cont function @@ -180,9 +181,29 @@ rtype != DECIMAL_RESULT && rtype != TIME_RESULT) { my_error(ER_WRONG_TYPE_FOR_PERCENTILE_FUNC, MYF(0), window_func()->func_name()); - return TRUE; + return true; + } + return false; + } + case Item_sum::PERCENTILE_DISC_FUNC: + { + Item *src_item= window_spec->order_list->first->item[0]; + Item_result rtype= src_item->cmp_type(); + // TODO-10.5: Fix MDEV-20280 PERCENTILE_DISC() rejects temporal and string input + if (rtype != REAL_RESULT && rtype != INT_RESULT && rtype != DECIMAL_RESULT) + { + my_error(ER_WRONG_TYPE_FOR_PERCENTILE_FUNC, MYF(0), window_func()->func_name()); + return true; } - setting_handler_for_percentile_functions(rtype); + Item_sum_percentile_disc *func= + static_cast(window_func()); + func->set_handler(src_item->type_handler()); + func->Type_std_attributes::set(src_item); + Type_std_attributes::set(src_item); + return false; + } + default: + break; } return FALSE; } @@ -332,39 +353,15 @@ if (args[i]->fix_fields_if_needed_for_scalar(thd, &args[i])) return TRUE; } - Type_std_attributes::set(args[0]); + for (uint i= 0; i < arg_count && !m_with_subquery; i++) m_with_subquery|= args[i]->with_subquery(); - Item *item2= args[0]->real_item(); - if (item2->type() == Item::FIELD_ITEM) - set_handler(item2->type_handler()); - else if (args[0]->cmp_type() == TIME_RESULT) - set_handler(item2->type_handler()); - else - set_handler_by_result_type(item2->result_type(), - max_length, collation.collation); - - switch (result_type()) { - case INT_RESULT: - case DECIMAL_RESULT: - case STRING_RESULT: - break; - case REAL_RESULT: - max_length= float_length(decimals); - break; - case ROW_RESULT: - case TIME_RESULT: - DBUG_ASSERT(0); // XXX(cvicentiu) Should this never happen? - return TRUE; - }; + if (fix_length_and_dec()) + return true; + setup_hybrid(thd, args[0]); - /* MIN/MAX can return NULL for empty set indepedent of the used column */ - maybe_null= 1; result_field=0; - null_value=1; - if (fix_length_and_dec()) - return TRUE; if (check_sum_func(thd, ref)) return TRUE; @@ -376,6 +373,14 @@ return FALSE; } + +bool Item_sum_hybrid_simple::fix_length_and_dec() +{ + maybe_null= null_value= true; + return args[0]->type_handler()->Item_sum_hybrid_fix_length_and_dec(this); +} + + bool Item_sum_hybrid_simple::add() { value->store(args[0]); diff -Nru mariadb-10.3-10.3.17/sql/item_windowfunc.h mariadb-10.3-10.3.20/sql/item_windowfunc.h --- mariadb-10.3-10.3.17/sql/item_windowfunc.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/item_windowfunc.h 2019-11-06 16:01:57.000000000 +0000 @@ -292,24 +292,22 @@ { return get_item_copy(thd, this); } }; -class Item_sum_hybrid_simple : public Item_sum, - public Type_handler_hybrid_field_type +class Item_sum_hybrid_simple : public Item_sum_hybrid { public: Item_sum_hybrid_simple(THD *thd, Item *arg): - Item_sum(thd, arg), - Type_handler_hybrid_field_type(&type_handler_longlong), + Item_sum_hybrid(thd, arg), value(NULL) - { collation.set(&my_charset_bin); } + { } Item_sum_hybrid_simple(THD *thd, Item *arg1, Item *arg2): - Item_sum(thd, arg1, arg2), - Type_handler_hybrid_field_type(&type_handler_longlong), + Item_sum_hybrid(thd, arg1, arg2), value(NULL) - { collation.set(&my_charset_bin); } + { } bool add(); bool fix_fields(THD *, Item **); + bool fix_length_and_dec(); void setup_hybrid(THD *thd, Item *item); double val_real(); longlong val_int(); @@ -317,8 +315,6 @@ void reset_field(); String *val_str(String *); bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); - const Type_handler *type_handler() const - { return Type_handler_hybrid_field_type::type_handler(); } void update_field(); Field *create_tmp_field(bool group, TABLE *table); void clear() @@ -1102,17 +1098,6 @@ } } - void setting_handler_for_percentile_functions(Item_result rtype) const - { - switch (window_func()->sum_func()){ - case Item_sum::PERCENTILE_DISC_FUNC: - ((Item_sum_percentile_disc* ) window_func())->set_handler_by_cmp_type(rtype); - break; - default: - return; - } - } - bool check_result_type_of_order_item(); @@ -1297,7 +1282,7 @@ bool fix_length_and_dec() { - decimals = window_func()->decimals; + Type_std_attributes::set(window_func()); return FALSE; } diff -Nru mariadb-10.3-10.3.17/sql/keycaches.cc mariadb-10.3-10.3.20/sql/keycaches.cc --- mariadb-10.3-10.3.17/sql/keycaches.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/keycaches.cc 2019-11-06 16:01:57.000000000 +0000 @@ -68,7 +68,7 @@ } -bool NAMED_ILIST::delete_element(const char *name, size_t length, void (*free_element)(const char *name, uchar*)) +bool NAMED_ILIST::delete_element(const char *name, size_t length, void (*free_element)(const char *name, void*)) { I_List_iterator it(*this); NAMED_ILINK *element; @@ -85,7 +85,7 @@ DBUG_RETURN(1); } -void NAMED_ILIST::delete_elements(void (*free_element)(const char *name, uchar*)) +void NAMED_ILIST::delete_elements(void (*free_element)(const char *name, void*)) { NAMED_ILINK *element; DBUG_ENTER("NAMED_ILIST::delete_elements"); @@ -157,9 +157,9 @@ } -void free_key_cache(const char *name, KEY_CACHE *key_cache) +void free_key_cache(const char *name, void *key_cache) { - end_key_cache(key_cache, 1); // Can never fail + end_key_cache(static_cast(key_cache), 1); // Can never fail my_free(key_cache); } @@ -221,13 +221,12 @@ return filter; } -void free_rpl_filter(const char *name, Rpl_filter *filter) +void free_rpl_filter(const char *name, void *filter) { - delete filter; - filter= 0; + delete static_cast(filter); } void free_all_rpl_filters() { - rpl_filters.delete_elements((void (*)(const char*, uchar*)) free_rpl_filter); + rpl_filters.delete_elements(free_rpl_filter); } diff -Nru mariadb-10.3-10.3.17/sql/keycaches.h mariadb-10.3-10.3.20/sql/keycaches.h --- mariadb-10.3-10.3.17/sql/keycaches.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/keycaches.h 2019-11-06 16:01:57.000000000 +0000 @@ -30,8 +30,8 @@ class NAMED_ILIST: public I_List { public: - void delete_elements(void (*free_element)(const char*, uchar*)); - bool delete_element(const char *name, size_t length, void (*free_element)(const char*, uchar*)); + void delete_elements(void (*free_element)(const char*, void*)); + bool delete_element(const char *name, size_t length, void (*free_element)(const char*, void*)); }; /* For key cache */ @@ -42,7 +42,7 @@ KEY_CACHE *create_key_cache(const char *name, size_t length); KEY_CACHE *get_key_cache(const LEX_CSTRING *cache_name); KEY_CACHE *get_or_create_key_cache(const char *name, size_t length); -void free_key_cache(const char *name, KEY_CACHE *key_cache); +void free_key_cache(const char *name, void *key_cache); bool process_key_caches(process_key_cache_t func, void *param); /* For Rpl_filter */ @@ -52,7 +52,6 @@ Rpl_filter *create_rpl_filter(const char *name, size_t length); Rpl_filter *get_rpl_filter(LEX_CSTRING *filter_name); Rpl_filter *get_or_create_rpl_filter(const char *name, size_t length); -void free_rpl_filter(const char *name, Rpl_filter *filter); void free_all_rpl_filters(void); #endif /* KEYCACHES_INCLUDED */ diff -Nru mariadb-10.3-10.3.17/sql/log.cc mariadb-10.3-10.3.20/sql/log.cc --- mariadb-10.3-10.3.17/sql/log.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/log.cc 2019-11-06 16:01:57.000000000 +0000 @@ -5909,7 +5909,6 @@ DBUG_ASSERT(WSREP_EMULATE_BINLOG(thd) || mysql_bin_log.is_open()); DBUG_PRINT("enter", ("event: %p", event)); - int error= 0; binlog_cache_mngr *const cache_mngr= (binlog_cache_mngr*) thd_get_ha_data(thd, binlog_hton); @@ -5947,7 +5946,7 @@ thd->binlog_set_pending_rows_event(event, is_transactional); - DBUG_RETURN(error); + DBUG_RETURN(0); } @@ -7691,7 +7690,7 @@ mysql_mutex_unlock(&LOCK_prepare_ordered); DEBUG_SYNC(orig_entry->thd, "commit_after_release_LOCK_prepare_ordered"); - DBUG_PRINT("info", ("Queued for group commit as %s\n", + DBUG_PRINT("info", ("Queued for group commit as %s", (orig_queue == NULL) ? "leader" : "participant")); DBUG_RETURN(orig_queue == NULL); } diff -Nru mariadb-10.3-10.3.17/sql/log_event.cc mariadb-10.3-10.3.20/sql/log_event.cc --- mariadb-10.3-10.3.17/sql/log_event.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/log_event.cc 2019-11-06 16:01:57.000000000 +0000 @@ -2096,6 +2096,19 @@ alg != BINLOG_CHECKSUM_ALG_OFF)) event_len= event_len - BINLOG_CHECKSUM_LEN; + /* + Create an object of Ignorable_log_event for unrecognized sub-class. + So that SLAVE SQL THREAD will only update the position and continue. + We should look for this flag first instead of judging by event_type + Any event can be Ignorable_log_event if it has this flag on. + look into @note of Ignorable_log_event + */ + if (uint2korr(buf + FLAGS_OFFSET) & LOG_EVENT_IGNORABLE_F) + { + ev= new Ignorable_log_event(buf, fdle, + get_type_str((Log_event_type) event_type)); + goto exit; + } switch(event_type) { case QUERY_EVENT: ev = new Query_log_event(buf, event_len, fdle, QUERY_EVENT); @@ -2222,24 +2235,13 @@ ev = new Start_encryption_log_event(buf, event_len, fdle); break; default: - /* - Create an object of Ignorable_log_event for unrecognized sub-class. - So that SLAVE SQL THREAD will only update the position and continue. - */ - if (uint2korr(buf + FLAGS_OFFSET) & LOG_EVENT_IGNORABLE_F) - { - ev= new Ignorable_log_event(buf, fdle, - get_type_str((Log_event_type) event_type)); - } - else - { - DBUG_PRINT("error",("Unknown event code: %d", - (uchar) buf[EVENT_TYPE_OFFSET])); - ev= NULL; - break; - } + DBUG_PRINT("error",("Unknown event code: %d", + (uchar) buf[EVENT_TYPE_OFFSET])); + ev= NULL; + break; } } +exit: if (ev) { @@ -3423,7 +3425,18 @@ case MYSQL_TYPE_SET: return meta & 0xFF; case MYSQL_TYPE_BLOB: - return (meta <= 4 ? meta : 0); + switch (meta) { + default: + return 0; + case 1: + return *ptr + 1; + case 2: + return uint2korr(ptr) + 2; + case 3: + return uint3korr(ptr) + 3; + case 4: + return uint4korr(ptr) + 4; + } case MYSQL_TYPE_VARCHAR: case MYSQL_TYPE_VAR_STRING: length= meta; @@ -13437,6 +13450,7 @@ { ulong sec_part; bitmap_set_bit(table->read_set, table->vers_start_field()->field_index); + table->file->column_bitmaps_signal(); // Check whether a row came from unversioned table and fix vers fields. if (table->vers_start_field()->get_timestamp(&sec_part) == 0 && sec_part == 0) table->vers_update_fields(); @@ -13997,6 +14011,7 @@ table->vers_end_field()->set_max(); m_vers_from_plain= true; } + table->file->column_bitmaps_signal(); } DBUG_PRINT("info",("looking for the following record")); diff -Nru mariadb-10.3-10.3.17/sql/mysqld.cc mariadb-10.3-10.3.20/sql/mysqld.cc --- mariadb-10.3-10.3.17/sql/mysqld.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/mysqld.cc 2019-11-06 16:01:57.000000000 +0000 @@ -157,16 +157,11 @@ #include -#ifdef HAVE_SYS_MMAN_H -#include -#endif - #ifdef __WIN__ #include #endif #ifdef HAVE_SOLARIS_LARGE_PAGES -#include #if defined(__sun__) && defined(__GNUC__) && defined(__cplusplus) \ && defined(_XOPEN_SOURCE) extern int getpagesizes(size_t *, int); @@ -1209,12 +1204,9 @@ #endif #ifndef EMBEDDED_LIBRARY -void net_before_header_psi(struct st_net *net, void *user_data, size_t /* unused: count */) +void net_before_header_psi(struct st_net *net, void *thd, size_t /* unused: count */) { - THD *thd; - thd= static_cast (user_data); - DBUG_ASSERT(thd != NULL); - + DBUG_ASSERT(thd); /* We only come where when the server is IDLE, waiting for the next command. Technically, it is a wait on a socket, which may take a long time, @@ -1223,7 +1215,8 @@ Instead, start explicitly an IDLE event. */ MYSQL_SOCKET_SET_STATE(net->vio->mysql_socket, PSI_SOCKET_STATE_IDLE); - MYSQL_START_IDLE_WAIT(thd->m_idle_psi, &thd->m_idle_state); + MYSQL_START_IDLE_WAIT(static_cast(thd)->m_idle_psi, + &static_cast(thd)->m_idle_state); } void net_after_header_psi(struct st_net *net, void *user_data, @@ -2261,7 +2254,7 @@ tdc_deinit(); mdl_destroy(); dflt_key_cache= 0; - key_caches.delete_elements((void (*)(const char*, uchar*)) free_key_cache); + key_caches.delete_elements(free_key_cache); wt_end(); multi_keycache_free(); sp_cache_end(); @@ -4784,7 +4777,6 @@ return 1; } - global_system_variables.in_subquery_conversion_threshold= IN_SUBQUERY_CONVERSION_THRESHOLD; #ifdef WITH_WSREP /* @@ -7454,6 +7446,10 @@ 0, GET_INT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, #endif /* HAVE_REPLICATION */ #ifndef DBUG_OFF + {"debug-assert", 0, + "Allow DBUG_ASSERT() to invoke assert()", + &my_assert, &my_assert, + 0, GET_BOOL, OPT_ARG, 1, 0, 0, 0, 0, 0}, {"debug-assert-on-error", 0, "Do an assert in various functions if we get a fatal error", &my_assert_on_error, &my_assert_on_error, @@ -9291,14 +9287,13 @@ return 1; #endif - SYSVAR_AUTOSIZE(pidfile_name_ptr, pidfile_name); - /* PID file */ - strmake(pidfile_name, argument, sizeof(pidfile_name)-5); - strmov(fn_ext(pidfile_name),".pid"); - - /* check for errors */ - if (!pidfile_name_ptr) - return 1; // out of memory error + if (IS_SYSVAR_AUTOSIZE(&pidfile_name_ptr)) + { + SYSVAR_AUTOSIZE(pidfile_name_ptr, pidfile_name); + /* PID file */ + strmake(pidfile_name, argument, sizeof(pidfile_name)-5); + strmov(fn_ext(pidfile_name),".pid"); + } break; } #ifdef HAVE_REPLICATION diff -Nru mariadb-10.3-10.3.17/sql/mysqld.h mariadb-10.3-10.3.20/sql/mysqld.h --- mariadb-10.3-10.3.17/sql/mysqld.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/mysqld.h 2019-11-06 16:01:57.000000000 +0000 @@ -18,6 +18,7 @@ #define MYSQLD_INCLUDED #include "sql_basic_types.h" /* query_id_t */ +#include "sql_mode.h" /* Sql_mode_dependency */ #include "sql_plugin.h" #include "sql_bitmap.h" /* Bitmap */ #include "my_decimal.h" /* my_decimal */ diff -Nru mariadb-10.3-10.3.17/sql/opt_range.cc mariadb-10.3-10.3.20/sql/opt_range.cc --- mariadb-10.3-10.3.17/sql/opt_range.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/opt_range.cc 2019-11-06 16:01:57.000000000 +0000 @@ -2414,12 +2414,16 @@ records= head->stat_records(); if (!records) records++; /* purecov: inspected */ - scan_time= (double) records / TIME_FOR_COMPARE + 1; - read_time= (double) head->file->scan_time() + scan_time + 1.1; - if (head->force_index) + + if (head->force_index || force_quick_range) scan_time= read_time= DBL_MAX; - if (limit < records) - read_time= (double) records + scan_time + 1; // Force to use index + else + { + scan_time= (double) records / TIME_FOR_COMPARE + 1; + read_time= (double) head->file->scan_time() + scan_time + 1.1; + if (limit < records) + read_time= (double) records + scan_time + 1; // Force to use index + } possible_keys.clear_all(); @@ -2434,6 +2438,7 @@ KEY_PART *key_parts; KEY *key_info; PARAM param; + bool force_group_by = false; if (check_stack_overrun(thd, 2*STACK_MIN_SIZE + sizeof(PARAM), buff)) DBUG_RETURN(0); // Fatal error flag is set @@ -2562,15 +2567,20 @@ Try to construct a QUICK_GROUP_MIN_MAX_SELECT. Notice that it can be constructed no matter if there is a range tree. */ + DBUG_EXECUTE_IF("force_group_by", force_group_by = true; ); group_trp= get_best_group_min_max(¶m, tree, best_read_time); if (group_trp) { param.table->quick_condition_rows= MY_MIN(group_trp->records, head->stat_records()); - if (group_trp->read_cost < best_read_time) + if (group_trp->read_cost < best_read_time || force_group_by) { best_trp= group_trp; best_read_time= best_trp->read_cost; + if (force_group_by) + { + goto force_plan; + } } } @@ -2670,6 +2680,7 @@ } } +force_plan: thd->mem_root= param.old_root; /* If we got a read plan, create a quick select from it. */ @@ -10406,6 +10417,16 @@ bufsize, mrr_flags, cost); if (rows != HA_POS_ERROR) { + ha_rows table_records= param->table->stat_records(); + if (rows > table_records) + { + /* + For any index the total number of records within all ranges + cannot be be bigger than the number of records in the table + */ + rows= table_records; + set_if_bigger(rows, 1); + } param->quick_rows[keynr]= rows; param->possible_keys.set_bit(keynr); if (update_tbl_stats) @@ -11534,13 +11555,28 @@ DBUG_ASSERT(cur_prefix != NULL); result= file->ha_index_read_map(record, cur_prefix, keypart_map, HA_READ_AFTER_KEY); - if (result || last_range->max_keypart_map == 0) - DBUG_RETURN(result); - - key_range previous_endpoint; - last_range->make_max_endpoint(&previous_endpoint, prefix_length, keypart_map); - if (file->compare_key(&previous_endpoint) <= 0) - DBUG_RETURN(0); + if (result || last_range->max_keypart_map == 0) { + /* + Only return if actual failure occurred. For HA_ERR_KEY_NOT_FOUND + or HA_ERR_END_OF_FILE, we just want to continue to reach the next + set of ranges. It is possible for the storage engine to return + HA_ERR_KEY_NOT_FOUND/HA_ERR_END_OF_FILE even when there are more + keys if it respects the end range set by the read_range_first call + below. + */ + if (result != HA_ERR_KEY_NOT_FOUND && result != HA_ERR_END_OF_FILE) + DBUG_RETURN(result); + } else { + /* + For storage engines that don't respect end range, check if we've + moved past the current range. + */ + key_range previous_endpoint; + last_range->make_max_endpoint(&previous_endpoint, prefix_length, + keypart_map); + if (file->compare_key(&previous_endpoint) <= 0) + DBUG_RETURN(0); + } } uint count= ranges.elements - (uint)(cur_range - (QUICK_RANGE**) ranges.buffer); diff -Nru mariadb-10.3-10.3.17/sql/opt_subselect.cc mariadb-10.3-10.3.20/sql/opt_subselect.cc --- mariadb-10.3-10.3.17/sql/opt_subselect.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/opt_subselect.cc 2019-11-06 16:01:57.000000000 +0000 @@ -452,11 +452,6 @@ static SJ_MATERIALIZATION_INFO * at_sjmat_pos(const JOIN *join, table_map remaining_tables, const JOIN_TAB *tab, uint idx, bool *loose_scan); -void best_access_path(JOIN *join, JOIN_TAB *s, - table_map remaining_tables, uint idx, - bool disable_jbuf, double record_count, - POSITION *pos, POSITION *loose_scan_pos); - static Item *create_subq_in_equalities(THD *thd, SJ_MATERIALIZATION_INFO *sjm, Item_in_subselect *subq_pred); static bool remove_sj_conds(THD *thd, Item **tree); @@ -2387,7 +2382,7 @@ &subjoin_out_rows); sjm->materialization_cost.convert_from_cost(subjoin_read_time); - sjm->rows= subjoin_out_rows; + sjm->rows_with_duplicates= sjm->rows= subjoin_out_rows; // Don't use the following list because it has "stale" items. use // ref_pointer_array instead: @@ -2614,9 +2609,17 @@ { do /* For all equalities on all key parts */ { - /* Check if this is "t.keypart = expr(outer_tables) */ + /* + Check if this is "t.keypart = expr(outer_tables) + + Don't allow variants that can produce duplicates: + - Dont allow "ref or null" + - the keyuse (that is, the operation) must be null-rejecting, + unless the other expression is non-NULLable. + */ if (!(keyuse->used_tables & sj_inner_tables) && - !(keyuse->optimize & KEY_OPTIMIZE_REF_OR_NULL)) + !(keyuse->optimize & KEY_OPTIMIZE_REF_OR_NULL) && + (keyuse->null_rejecting || !keyuse->val->maybe_null)) { bound_parts |= 1 << keyuse->keypart; } @@ -2718,6 +2721,13 @@ NULL, }; +#ifdef HAVE_valgrind + new (&pos->firstmatch_picker) Firstmatch_picker; + new (&pos->loosescan_picker) LooseScan_picker; + new (&pos->sjmat_picker) Sj_materialization_picker; + new (&pos->dups_weedout_picker) Duplicate_weedout_picker; +#endif + if (join->emb_sjm_nest) { /* @@ -3007,15 +3017,19 @@ bool disable_jbuf= (join->thd->variables.join_cache_level == 0); for (i= first_tab + mat_info->tables; i <= idx; i++) { - best_access_path(join, join->positions[i].table, rem_tables, i, + best_access_path(join, join->positions[i].table, rem_tables, + join->positions, i, disable_jbuf, prefix_rec_count, &curpos, &dummy); prefix_rec_count= COST_MULT(prefix_rec_count, curpos.records_read); prefix_cost= COST_ADD(prefix_cost, curpos.read_time); + prefix_cost= COST_ADD(prefix_cost, + prefix_rec_count / (double) TIME_FOR_COMPARE); + //TODO: take into account join condition selectivity here } *strategy= SJ_OPT_MATERIALIZE_SCAN; *read_time= prefix_cost; - *record_count= prefix_rec_count; + *record_count= prefix_rec_count / mat_info->rows_with_duplicates; *handled_fanout= mat_nest->sj_inner_tables; return TRUE; } @@ -3623,7 +3637,8 @@ join->cur_sj_inner_tables= 0; for (i= first + sjm->tables; i <= tablenr; i++) { - best_access_path(join, join->best_positions[i].table, rem_tables, i, + best_access_path(join, join->best_positions[i].table, rem_tables, + join->best_positions, i, FALSE, prefix_rec_count, join->best_positions + i, &dummy); prefix_rec_count *= join->best_positions[i].records_read; @@ -3655,8 +3670,9 @@ { if (join->best_positions[idx].use_join_buffer) { - best_access_path(join, join->best_positions[idx].table, - rem_tables, idx, TRUE /* no jbuf */, + best_access_path(join, join->best_positions[idx].table, + rem_tables, join->best_positions, idx, + TRUE /* no jbuf */, record_count, join->best_positions + idx, &dummy); } record_count *= join->best_positions[idx].records_read; @@ -3686,7 +3702,8 @@ if (join->best_positions[idx].use_join_buffer || (idx == first)) { best_access_path(join, join->best_positions[idx].table, - rem_tables, idx, TRUE /* no jbuf */, + rem_tables, join->best_positions, idx, + TRUE /* no jbuf */, record_count, join->best_positions + idx, &loose_scan_pos); if (idx==first) diff -Nru mariadb-10.3-10.3.17/sql/opt_subselect.h mariadb-10.3-10.3.20/sql/opt_subselect.h --- mariadb-10.3-10.3.17/sql/opt_subselect.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/opt_subselect.h 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,5 @@ /* - Copyright (c) 2010, 2015, MariaDB + Copyright (c) 2010, 2019, MariaDB 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 @@ -88,22 +88,23 @@ KEYUSE *best_loose_scan_start_key; uint best_max_loose_keypart; + table_map best_ref_depend_map; public: Loose_scan_opt(): - try_loosescan(FALSE), + try_loosescan(false), bound_sj_equalities(0), - quick_uses_applicable_index(FALSE) + quick_uses_applicable_index(0), + quick_max_loose_keypart(0), + best_loose_scan_key(0), + best_loose_scan_cost(0), + best_loose_scan_records(0), + best_loose_scan_start_key(NULL), + best_max_loose_keypart(0), + best_ref_depend_map(0) { - /* Protected by quick_uses_applicable_index */ - LINT_INIT(quick_max_loose_keypart); - /* The following are protected by best_loose_scan_cost!= DBL_MAX */ - LINT_INIT(best_loose_scan_key); - LINT_INIT(best_loose_scan_records); - LINT_INIT(best_max_loose_keypart); - LINT_INIT(best_loose_scan_start_key); } - + void init(JOIN *join, JOIN_TAB *s, table_map remaining_tables) { /* @@ -250,13 +251,14 @@ best_loose_scan_records= records; best_max_loose_keypart= max_loose_keypart; best_loose_scan_start_key= start_key; + best_ref_depend_map= 0; } } } } void check_ref_access_part2(uint key, KEYUSE *start_key, double records, - double read_time) + double read_time, table_map ref_depend_map_arg) { if (part1_conds_met && read_time < best_loose_scan_cost) { @@ -266,6 +268,7 @@ best_loose_scan_records= records; best_max_loose_keypart= max_loose_keypart; best_loose_scan_start_key= start_key; + best_ref_depend_map= ref_depend_map_arg; } } @@ -281,6 +284,7 @@ best_loose_scan_records= rows2double(quick->records); best_max_loose_keypart= quick_max_loose_keypart; best_loose_scan_start_key= NULL; + best_ref_depend_map= 0; } } @@ -296,7 +300,7 @@ pos->loosescan_picker.loosescan_parts= best_max_loose_keypart + 1; pos->use_join_buffer= FALSE; pos->table= tab; - // todo need ref_depend_map ? + pos->ref_depend_map= best_ref_depend_map; DBUG_PRINT("info", ("Produced a LooseScan plan, key %s, %s", tab->table->key_info[best_loose_scan_key].name.str, best_loose_scan_start_key? "(ref access)": diff -Nru mariadb-10.3-10.3.17/sql/partition_element.h mariadb-10.3-10.3.20/sql/partition_element.h --- mariadb-10.3-10.3.17/sql/partition_element.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/partition_element.h 2019-11-06 16:01:57.000000000 +0000 @@ -98,7 +98,7 @@ class partition_element :public Sql_alloc { public: - enum elem_type + enum elem_type_enum { CONVENTIONAL= 0, CURRENT, @@ -125,19 +125,7 @@ bool max_value; // MAXVALUE range uint32 id; bool empty; - - // TODO: subclass partition_element by partitioning type to avoid such semantic - // mixup - elem_type type() - { - return (elem_type)(int(signed_flag) << 1 | int(max_value)); - } - - void type(elem_type val) - { - max_value= (bool)(val & 1); - signed_flag= (bool)(val & 2); - } + elem_type_enum type; partition_element() : part_max_rows(0), part_min_rows(0), range_value(0), @@ -148,7 +136,8 @@ nodegroup_id(UNDEF_NODEGROUP), has_null_value(FALSE), signed_flag(FALSE), max_value(FALSE), id(UINT_MAX32), - empty(true) + empty(true), + type(CONVENTIONAL) {} partition_element(partition_element *part_elem) : part_max_rows(part_elem->part_max_rows), @@ -164,13 +153,13 @@ nodegroup_id(part_elem->nodegroup_id), has_null_value(FALSE), id(part_elem->id), - empty(part_elem->empty) + empty(part_elem->empty), + type(CONVENTIONAL) {} ~partition_element() {} part_column_list_val& get_col_val(uint idx) { - DBUG_ASSERT(type() == CONVENTIONAL || list_val_list.elements == 1); part_elem_value *ev= list_val_list.head(); DBUG_ASSERT(ev); DBUG_ASSERT(ev->col_val_array); diff -Nru mariadb-10.3-10.3.17/sql/partition_info.cc mariadb-10.3-10.3.20/sql/partition_info.cc --- mariadb-10.3-10.3.17/sql/partition_info.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/partition_info.cc 2019-11-06 16:01:57.000000000 +0000 @@ -894,15 +894,16 @@ DBUG_ASSERT(part_type == VERSIONING_PARTITION); DBUG_ASSERT(table->versioned(VERS_TIMESTAMP)); - DBUG_ASSERT(num_columns == 1); if (!alter_add) { Field *row_end= table->vers_end_field(); - part_field_list.push_back(row_end->field_name.str, thd->mem_root); - DBUG_ASSERT(part_field_list.elements == 1); // needed in handle_list_of_fields() row_end->flags|= GET_FIXED_FIELDS_FLAG; + Name_resolution_context *context= &thd->lex->current_select->context; + Item *row_end_item= new (thd->mem_root) Item_field(thd, context, row_end); + Item *row_end_ts= new (thd->mem_root) Item_func_unix_timestamp(thd, row_end_item); + set_part_expr(thd, row_end_ts, false); } if (alter_add) @@ -911,12 +912,12 @@ partition_element *el; for(uint32 id= 0; ((el= it++)); id++) { - DBUG_ASSERT(el->type() != partition_element::CONVENTIONAL); + DBUG_ASSERT(el->type != partition_element::CONVENTIONAL); /* Newly added element is inserted before AS_OF_NOW. */ - if (el->id == UINT_MAX32 || el->type() == partition_element::CURRENT) + if (el->id == UINT_MAX32 || el->type == partition_element::CURRENT) { el->id= id; - if (el->type() == partition_element::CURRENT) + if (el->type == partition_element::CURRENT) break; } } @@ -1343,13 +1344,13 @@ } if (part_type == VERSIONING_PARTITION) { - if (part_elem->type() == partition_element::HISTORY) + if (part_elem->type == partition_element::HISTORY) { hist_parts++; } else { - DBUG_ASSERT(part_elem->type() == partition_element::CURRENT); + DBUG_ASSERT(part_elem->type == partition_element::CURRENT); now_parts++; } } @@ -1473,15 +1474,8 @@ FALSE Success */ -bool partition_info::set_part_expr(THD *thd, char *start_token, Item *item_ptr, - char *end_token, bool is_subpart) +bool partition_info::set_part_expr(THD *thd, Item *item_ptr, bool is_subpart) { - size_t expr_len= end_token - start_token; - char *func_string= (char*) thd->memdup(start_token, expr_len); - - if (unlikely(!func_string)) - return TRUE; - if (is_subpart) { list_of_subpart_fields= FALSE; @@ -2654,12 +2648,9 @@ return NULL; } -bool partition_info::set_part_expr(THD *thd, char *start_token, Item *item_ptr, - char *end_token, bool is_subpart) +bool partition_info::set_part_expr(THD *thd, Item *item_ptr, bool is_subpart) { - (void)start_token; (void)item_ptr; - (void)end_token; (void)is_subpart; return FALSE; } @@ -2697,9 +2688,8 @@ bool partition_info::vers_init_info(THD * thd) { part_type= VERSIONING_PARTITION; - list_of_part_fields= TRUE; - column_list= TRUE; - num_columns= 1; + list_of_part_fields= true; + column_list= false; vers_info= new (thd->mem_root) Vers_part_info; if (unlikely(!vers_info)) return true; diff -Nru mariadb-10.3-10.3.17/sql/partition_info.h mariadb-10.3-10.3.20/sql/partition_info.h --- mariadb-10.3-10.3.17/sql/partition_info.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/partition_info.h 2019-11-06 16:01:57.000000000 +0000 @@ -55,11 +55,11 @@ if (now_part) { DBUG_ASSERT(now_part->id != UINT_MAX32); - DBUG_ASSERT(now_part->type() == partition_element::CURRENT); + DBUG_ASSERT(now_part->type == partition_element::CURRENT); if (hist_part) { DBUG_ASSERT(hist_part->id != UINT_MAX32); - DBUG_ASSERT(hist_part->type() == partition_element::HISTORY); + DBUG_ASSERT(hist_part->type == partition_element::HISTORY); } return true; } @@ -366,8 +366,7 @@ void init_col_val(part_column_list_val *col_val, Item *item); int reorganize_into_single_field_col_val(THD *thd); part_column_list_val *add_column_value(THD *thd); - bool set_part_expr(THD *thd, char *start_token, Item *item_ptr, - char *end_token, bool is_subpart); + bool set_part_expr(THD *thd, Item *item_ptr, bool is_subpart); bool set_up_charset_field_preps(THD *thd); bool check_partition_field_length(); bool init_column_part(THD *thd); diff -Nru mariadb-10.3-10.3.17/sql/rpl_parallel.cc mariadb-10.3-10.3.20/sql/rpl_parallel.cc --- mariadb-10.3-10.3.17/sql/rpl_parallel.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/rpl_parallel.cc 2019-11-06 16:01:57.000000000 +0000 @@ -228,6 +228,12 @@ entry->stop_on_error_sub_id == (uint64)ULONGLONG_MAX) entry->stop_on_error_sub_id= sub_id; mysql_mutex_unlock(&entry->LOCK_parallel_entry); + DBUG_EXECUTE_IF("hold_worker_on_schedule", { + if (entry->stop_on_error_sub_id < (uint64)ULONGLONG_MAX) + { + debug_sync_set_action(thd, STRING_WITH_LEN("now SIGNAL continue_worker")); + } + }); DBUG_EXECUTE_IF("rpl_parallel_simulate_wait_at_retry", { if (rgi->current_gtid.seq_no == 1000) { @@ -1136,6 +1142,13 @@ bool did_enter_cond= false; PSI_stage_info old_stage; + DBUG_EXECUTE_IF("hold_worker_on_schedule", { + if (rgi->current_gtid.domain_id == 0 && + rgi->current_gtid.seq_no == 100) { + debug_sync_set_action(thd, + STRING_WITH_LEN("now SIGNAL reached_pause WAIT_FOR continue_worker")); + } + }); DBUG_EXECUTE_IF("rpl_parallel_scheduled_gtid_0_x_100", { if (rgi->current_gtid.domain_id == 0 && rgi->current_gtid.seq_no == 100) { @@ -1177,7 +1190,10 @@ skip_event_group= do_gco_wait(rgi, gco, &did_enter_cond, &old_stage); if (unlikely(entry->stop_on_error_sub_id <= rgi->wait_commit_sub_id)) + { skip_event_group= true; + rgi->worker_error= 1; + } if (likely(!skip_event_group)) do_ftwrl_wait(rgi, &did_enter_cond, &old_stage); diff -Nru mariadb-10.3-10.3.17/sql/rpl_record.cc mariadb-10.3-10.3.20/sql/rpl_record.cc --- mariadb-10.3-10.3.17/sql/rpl_record.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/rpl_record.cc 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,5 @@ /* Copyright (c) 2007, 2013, Oracle and/or its affiliates. - Copyright (c) 2008, 2014, SkySQL Ab. + Copyright (c) 2008, 2019, MariaDB Corporation. 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 @@ -319,7 +319,7 @@ normal unpack operation. */ uint16 const metadata= tabledef->field_metadata(i); - uchar const *const old_pack_ptr= pack_ptr; + IF_DBUG(uchar const *const old_pack_ptr= pack_ptr;,) pack_ptr= f->unpack(f->ptr, pack_ptr, row_end, metadata); DBUG_PRINT("debug", ("field: %s; metadata: 0x%x;" @@ -337,10 +337,9 @@ Galera Node throws "Could not read field" error and drops out of cluster */ WSREP_WARN("ROW event unpack field: %s metadata: 0x%x;" - " pack_ptr: %p; conv_table %p conv_field %p table %s" + " conv_table %p conv_field %p table %s" " row_end: %p", - f->field_name.str, metadata, - old_pack_ptr, conv_table, conv_field, + f->field_name.str, metadata, conv_table, conv_field, (table_found) ? "found" : "not found", row_end ); } diff -Nru mariadb-10.3-10.3.17/sql/rpl_rli.cc mariadb-10.3-10.3.20/sql/rpl_rli.cc --- mariadb-10.3-10.3.17/sql/rpl_rli.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/rpl_rli.cc 2019-11-06 16:01:57.000000000 +0000 @@ -1561,7 +1561,7 @@ sub_id= (ulonglong)table->field[1]->val_int(); server_id= (uint32)table->field[2]->val_int(); seq_no= (ulonglong)table->field[3]->val_int(); - DBUG_PRINT("info", ("Read slave state row: %u-%u-%lu sub_id=%lu\n", + DBUG_PRINT("info", ("Read slave state row: %u-%u-%lu sub_id=%lu", (unsigned)domain_id, (unsigned)server_id, (ulong)seq_no, (ulong)sub_id)); diff -Nru mariadb-10.3-10.3.17/sql/rpl_utility.cc mariadb-10.3-10.3.20/sql/rpl_utility.cc --- mariadb-10.3-10.3.17/sql/rpl_utility.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/rpl_utility.cc 2019-11-06 16:01:57.000000000 +0000 @@ -352,7 +352,8 @@ #if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) /** */ -void show_sql_type(enum_field_types type, uint16 metadata, String *str, CHARSET_INFO *field_cs) +void show_sql_type(enum_field_types type, uint16 metadata, String *str, + bool char_with_octets) { DBUG_ENTER("show_sql_type"); DBUG_PRINT("enter", ("type: %d, metadata: 0x%x", type, metadata)); @@ -420,11 +421,13 @@ case MYSQL_TYPE_VARCHAR_COMPRESSED: { CHARSET_INFO *cs= str->charset(); - size_t length= - cs->cset->snprintf(cs, (char*) str->ptr(), str->alloced_length(), - "varchar(%u)%s", metadata, - type == MYSQL_TYPE_VARCHAR_COMPRESSED ? " compressed" - : ""); + size_t length=0; + if (char_with_octets) + length= cs->cset->snprintf(cs, (char*) str->ptr(), str->alloced_length(), + "varchar(%u octets)", metadata); + else + length= cs->cset->snprintf(cs, (char*) str->ptr(), str->alloced_length(), + "varbinary(%u)", metadata); str->length(length); } break; @@ -475,22 +478,22 @@ it is necessary to check the pack length to figure out what kind of blob it really is. */ - switch (get_blob_type_from_length(metadata)) + switch (metadata) { - case MYSQL_TYPE_TINY_BLOB: + case 1: str->set_ascii(STRING_WITH_LEN("tinyblob")); break; - case MYSQL_TYPE_MEDIUM_BLOB: - str->set_ascii(STRING_WITH_LEN("mediumblob")); + case 2: + str->set_ascii(STRING_WITH_LEN("blob")); break; - case MYSQL_TYPE_LONG_BLOB: - str->set_ascii(STRING_WITH_LEN("longblob")); + case 3: + str->set_ascii(STRING_WITH_LEN("mediumblob")); break; - case MYSQL_TYPE_BLOB: - str->set_ascii(STRING_WITH_LEN("blob")); + case 4: + str->set_ascii(STRING_WITH_LEN("longblob")); break; default: @@ -509,9 +512,13 @@ */ CHARSET_INFO *cs= str->charset(); uint bytes= (((metadata >> 4) & 0x300) ^ 0x300) + (metadata & 0x00ff); - size_t length= - cs->cset->snprintf(cs, (char*) str->ptr(), str->alloced_length(), - "char(%d)", bytes / field_cs->mbmaxlen); + size_t length=0; + if (char_with_octets) + length= cs->cset->snprintf(cs, (char*) str->ptr(), str->alloced_length(), + "char(%u octets)", bytes); + else + length= cs->cset->snprintf(cs, (char*) str->ptr(), str->alloced_length(), + "binary(%u)", bytes); str->length(length); } break; @@ -948,9 +955,13 @@ String source_type(source_buf, sizeof(source_buf), &my_charset_latin1); String target_type(target_buf, sizeof(target_buf), &my_charset_latin1); THD *thd= table->in_use; + bool char_with_octets= field->cmp_type() == STRING_RESULT ? + field->has_charset() : true; + + show_sql_type(type(col), field_metadata(col), &source_type, + char_with_octets); + field->sql_rpl_type(&target_type); - show_sql_type(type(col), field_metadata(col), &source_type, field->charset()); - field->sql_type(target_type); rli->report(ERROR_LEVEL, ER_SLAVE_CONVERSION_FAILED, rgi->gtid_info(), ER_THD(thd, ER_SLAVE_CONVERSION_FAILED), col, db_name, tbl_name, diff -Nru mariadb-10.3-10.3.17/sql/semisync_master.cc mariadb-10.3-10.3.20/sql/semisync_master.cc --- mariadb-10.3-10.3.17/sql/semisync_master.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/semisync_master.cc 2019-11-06 16:01:57.000000000 +0000 @@ -806,7 +806,7 @@ if (!get_master_enabled() || !is_on()) goto l_end; - DBUG_PRINT("semisync", ("%s: wait pos (%s, %lu), repl(%d)\n", + DBUG_PRINT("semisync", ("%s: wait pos (%s, %lu), repl(%d)", "Repl_semi_sync_master::commit_trx", trx_wait_binlog_name, (ulong)trx_wait_binlog_pos, (int)is_on())); diff -Nru mariadb-10.3-10.3.17/sql/set_var.h mariadb-10.3-10.3.20/sql/set_var.h --- mariadb-10.3-10.3.17/sql/set_var.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/set_var.h 2019-11-06 16:01:57.000000000 +0000 @@ -430,6 +430,7 @@ bool fix_delay_key_write(sys_var *self, THD *thd, enum_var_type type); sql_mode_t expand_sql_mode(sql_mode_t sql_mode); +const char *sql_mode_string_representation(uint bit_number); bool sql_mode_string_representation(THD *thd, sql_mode_t sql_mode, LEX_CSTRING *ls); int default_regex_flags_pcre(const THD *thd); diff -Nru mariadb-10.3-10.3.17/sql/share/errmsg-utf8.txt mariadb-10.3-10.3.20/sql/share/errmsg-utf8.txt --- mariadb-10.3-10.3.17/sql/share/errmsg-utf8.txt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/share/errmsg-utf8.txt 2019-11-06 16:01:57.000000000 +0000 @@ -6461,7 +6461,7 @@ eng "%s Statement: %s" ER_SLAVE_CONVERSION_FAILED - eng "Column %d of table '%-.192s.%-.192s' cannot be converted from type '%-.32s' to type '%-.32s'" + eng "Column %d of table '%-.192s.%-.192s' cannot be converted from type '%-.50s' to type '%-.50s'" ER_SLAVE_CANT_CREATE_CONVERSION eng "Can't create conversion table for table '%-.192s.%-.192s'" ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT @@ -7338,6 +7338,8 @@ ER_WARN_AGGFUNC_DEPENDENCE eng "Aggregate function '%-.192s)' of SELECT #%d belongs to SELECT #%d" ukr "Агрегатна функція '%-.192s)' з SELECTу #%d належить до SELECTу #%d" +WARN_INNODB_PARTITION_OPTION_IGNORED + eng "<%-.64s> option ignored for InnoDB partition" # # Internal errors, not used diff -Nru mariadb-10.3-10.3.17/sql/slave.cc mariadb-10.3-10.3.20/sql/slave.cc --- mariadb-10.3-10.3.17/sql/slave.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/slave.cc 2019-11-06 16:01:57.000000000 +0000 @@ -4911,13 +4911,14 @@ goto err; } - if (rpl_semi_sync_slave_status && (mi->semi_ack & SEMI_SYNC_NEED_ACK) && - repl_semisync_slave.slave_reply(mi)) + if (rpl_semi_sync_slave_status && (mi->semi_ack & SEMI_SYNC_NEED_ACK)) { - mi->report(ERROR_LEVEL, ER_SLAVE_FATAL_ERROR, NULL, - ER_THD(thd, ER_SLAVE_FATAL_ERROR), - "Failed to run 'after_queue_event' hook"); - goto err; + /* + We deliberately ignore the error in slave_reply, such error should + not cause the slave IO thread to stop, and the error messages are + already reported. + */ + (void)repl_semisync_slave.slave_reply(mi); } if (mi->using_gtid == Master_info::USE_GTID_NO && @@ -6213,6 +6214,7 @@ DBUG_ASSERT(debug_sync_service); DBUG_ASSERT(!debug_sync_set_action(current_thd, STRING_WITH_LEN(act))); + dbug_rows_event_count = 0; };); #endif mysql_mutex_lock(&mi->data_lock); @@ -6739,7 +6741,18 @@ mi->last_queued_gtid.seq_no == 1000) goto skip_relay_logging; }); + goto default_action; #endif + case START_ENCRYPTION_EVENT: + if (uint2korr(buf + FLAGS_OFFSET) & LOG_EVENT_IGNORABLE_F) + { + /* + If the event was not requested by the slave (the slave did not ask for + it), i.e. has end_log_pos=0, we do not increment mi->master_log_pos + */ + inc_pos= uint4korr(buf+LOG_POS_OFFSET) ? event_len : 0; + break; + } /* fall through */ default: default_action: diff -Nru mariadb-10.3-10.3.17/sql/sp.cc mariadb-10.3-10.3.20/sql/sp.cc --- mariadb-10.3-10.3.17/sql/sp.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sp.cc 2019-11-06 16:01:57.000000000 +0000 @@ -1466,7 +1466,7 @@ /* Such a statement can always go directly to binlog, no trans cache */ if (thd->binlog_query(THD::STMT_QUERY_TYPE, log_query.ptr(), log_query.length(), - FALSE, FALSE, FALSE, 0)) + FALSE, FALSE, FALSE, 0) > 0) { my_error(ER_ERROR_ON_WRITE, MYF(MY_WME), "binary log", -1); goto done; diff -Nru mariadb-10.3-10.3.17/sql/sp_head.cc mariadb-10.3-10.3.20/sql/sp_head.cc --- mariadb-10.3-10.3.17/sql/sp_head.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sp_head.cc 2019-11-06 16:01:57.000000000 +0000 @@ -4652,6 +4652,7 @@ uint lock_count; uint query_lock_count; uint8 trg_event_map; + my_bool for_insert_data; } SP_TABLE; @@ -4747,6 +4748,7 @@ if (tab->query_lock_count > tab->lock_count) tab->lock_count++; tab->trg_event_map|= table->trg_event_map; + tab->for_insert_data|= table->for_insert_data; } else { @@ -4770,6 +4772,7 @@ tab->lock_type= table->lock_type; tab->lock_count= tab->query_lock_count= 1; tab->trg_event_map= table->trg_event_map; + tab->for_insert_data= table->for_insert_data; if (my_hash_insert(&m_sptabs, (uchar *)tab)) return FALSE; } @@ -4853,7 +4856,8 @@ TABLE_LIST::PRELOCK_ROUTINE, belong_to_view, stab->trg_event_map, - query_tables_last_ptr); + query_tables_last_ptr, + stab->for_insert_data); tab_buff+= ALIGN_SIZE(sizeof(TABLE_LIST)); result= TRUE; } diff -Nru mariadb-10.3-10.3.17/sql/sql_acl.cc mariadb-10.3-10.3.20/sql/sql_acl.cc --- mariadb-10.3-10.3.17/sql/sql_acl.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_acl.cc 2019-11-06 16:01:57.000000000 +0000 @@ -3354,7 +3354,7 @@ DBUG_ASSERT(query_length); thd->clear_error(); result= thd->binlog_query(THD::STMT_QUERY_TYPE, buff, query_length, - FALSE, FALSE, FALSE, 0); + FALSE, FALSE, FALSE, 0) > 0; } end: close_mysql_tables(thd); @@ -3516,7 +3516,7 @@ DBUG_ASSERT(query_length); thd->clear_error(); result= thd->binlog_query(THD::STMT_QUERY_TYPE, buff, query_length, - FALSE, FALSE, FALSE, 0); + FALSE, FALSE, FALSE, 0) > 0; } end: close_mysql_tables(thd); diff -Nru mariadb-10.3-10.3.17/sql/sql_admin.cc mariadb-10.3-10.3.20/sql/sql_admin.cc --- mariadb-10.3-10.3.17/sql/sql_admin.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_admin.cc 2019-11-06 16:01:57.000000000 +0000 @@ -1314,7 +1314,7 @@ "analyze", lock_type, 1, 0, 0, 0, &handler::ha_analyze, 0); /* ! we write after unlocking the table */ - if (!res && !m_lex->no_write_to_binlog) + if (!res && !m_lex->no_write_to_binlog && (!opt_readonly || thd->slave_thread)) { /* Presumably, ANALYZE and binlog writing doesn't require synchronization @@ -1372,7 +1372,7 @@ "optimize", TL_WRITE, 1, 0, 0, 0, &handler::ha_optimize, 0); /* ! we write after unlocking the table */ - if (!res && !m_lex->no_write_to_binlog) + if (!res && !m_lex->no_write_to_binlog && (!opt_readonly || thd->slave_thread)) { /* Presumably, OPTIMIZE and binlog writing doesn't require synchronization @@ -1406,7 +1406,7 @@ &handler::ha_repair, &view_repair); /* ! we write after unlocking the table */ - if (!res && !m_lex->no_write_to_binlog) + if (!res && !m_lex->no_write_to_binlog && (!opt_readonly || thd->slave_thread)) { /* Presumably, REPAIR and binlog writing doesn't require synchronization diff -Nru mariadb-10.3-10.3.17/sql/sql_base.cc mariadb-10.3-10.3.20/sql/sql_base.cc --- mariadb-10.3-10.3.17/sql/sql_base.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_base.cc 2019-11-06 16:01:57.000000000 +0000 @@ -2433,6 +2433,7 @@ DBUG_ASSERT(thd->open_tables == m_reopen_array[reopen_count]); thd->open_tables->pos_in_locked_tables->table= NULL; + thd->open_tables->pos_in_locked_tables= NULL; close_thread_table(thd, &thd->open_tables); } @@ -2487,9 +2488,17 @@ { if (!table_list->table || !table_list->table->needs_reopen()) continue; - /* no need to remove the table from the TDC here, thus (TABLE*)1 */ - close_all_tables_for_name(thd, table_list->table->s, - HA_EXTRA_NOT_USED, (TABLE*)1); + for (TABLE **prev= &thd->open_tables; *prev; prev= &(*prev)->next) + { + if (*prev == table_list->table) + { + thd->locked_tables_list.unlink_from_list(thd, table_list, false); + mysql_lock_remove(thd, thd->lock, *prev); + (*prev)->file->extra(HA_EXTRA_PREPARE_FOR_FORCED_CLOSE); + close_thread_table(thd, prev); + break; + } + } DBUG_ASSERT(table_list->table == NULL); } else @@ -3743,32 +3752,6 @@ goto end; } - if (get_use_stat_tables_mode(thd) > NEVER && tables->table) - { - TABLE_SHARE *table_share= tables->table->s; - if (table_share && table_share->table_category == TABLE_CATEGORY_USER && - table_share->tmp_table == NO_TMP_TABLE) - { - if (table_share->stats_cb.stats_can_be_read || - !alloc_statistics_for_table_share(thd, table_share, FALSE)) - { - if (table_share->stats_cb.stats_can_be_read) - { - KEY *key_info= table_share->key_info; - KEY *key_info_end= key_info + table_share->keys; - KEY *table_key_info= tables->table->key_info; - for ( ; key_info < key_info_end; key_info++, table_key_info++) - table_key_info->read_stats= key_info->read_stats; - Field **field_ptr= table_share->field; - Field **table_field_ptr= tables->table->field; - for ( ; *field_ptr; field_ptr++, table_field_ptr++) - (*table_field_ptr)->read_stats= (*field_ptr)->read_stats; - tables->table->stats_is_read= table_share->stats_cb.stats_is_read; - } - } - } - } - process_view_routines: /* Again we may need cache all routines used by this view and add @@ -4438,9 +4421,11 @@ TABLE_LIST *tables) { TABLE_LIST *global_table_list= prelocking_ctx->query_tables; + DBUG_ENTER("add_internal_tables"); do { + DBUG_PRINT("info", ("table name: %s", tables->table_name.str)); /* Skip table if already in the list. Can happen with prepared statements */ @@ -4450,20 +4435,22 @@ TABLE_LIST *tl= (TABLE_LIST *) thd->alloc(sizeof(TABLE_LIST)); if (!tl) - return TRUE; + DBUG_RETURN(TRUE); tl->init_one_table_for_prelocking(&tables->db, &tables->table_name, NULL, tables->lock_type, TABLE_LIST::PRELOCK_NONE, 0, 0, - &prelocking_ctx->query_tables_last); + &prelocking_ctx->query_tables_last, + tables->for_insert_data); /* Store link to the new table_list that will be used by open so that Item_func_nextval() can find it */ tables->next_local= tl; + DBUG_PRINT("info", ("table name: %s added", tables->table_name.str)); } while ((tables= tables->next_global)); - return FALSE; + DBUG_RETURN(FALSE); } @@ -4494,6 +4481,7 @@ handle_table(THD *thd, Query_tables_list *prelocking_ctx, TABLE_LIST *table_list, bool *need_prelocking) { + DBUG_ENTER("handle_table"); TABLE *table= table_list->table; /* We rely on a caller to check that table is going to be changed. */ DBUG_ASSERT(table_list->lock_type >= TL_WRITE_ALLOW_WRITE || @@ -4524,7 +4512,7 @@ { if (arena) thd->restore_active_arena(arena, &backup); - return TRUE; + DBUG_RETURN(TRUE); } *need_prelocking= TRUE; @@ -4552,7 +4540,8 @@ NULL, lock_type, TABLE_LIST::PRELOCK_FK, table_list->belong_to_view, op, - &prelocking_ctx->query_tables_last); + &prelocking_ctx->query_tables_last, + table_list->for_insert_data); } if (arena) thd->restore_active_arena(arena, &backup); @@ -4560,8 +4549,11 @@ } /* Open any tables used by DEFAULT (like sequence tables) */ + DBUG_PRINT("info", ("table: %p name: %s db: %s flags: %u", + table_list, table_list->table_name.str, + table_list->db.str, table_list->for_insert_data)); if (table->internal_tables && - ((sql_command_flags[thd->lex->sql_command] & CF_INSERTS_DATA) || + (table_list->for_insert_data || thd->lex->default_used)) { Query_arena *arena, backup; @@ -4574,10 +4566,10 @@ if (unlikely(error)) { *need_prelocking= TRUE; - return TRUE; + DBUG_RETURN(TRUE); } } - return FALSE; + DBUG_RETURN(FALSE); } @@ -4594,7 +4586,7 @@ THD *thd= table->in_use; TABLE_LIST *tl; MYSQL_LOCK *save_lock,*new_lock; - DBUG_ENTER("open_internal_tables"); + DBUG_ENTER("open_and_lock_internal_tables"); /* remove pointer to old select_lex which is already destroyed */ for (tl= table->internal_tables ; tl ; tl= tl->next_global) @@ -8304,8 +8296,8 @@ rfield->field_index == table->next_number_field->field_index) table->auto_increment_field_not_null= TRUE; Item::Type type= value->type(); - bool vers_sys_field= table->versioned() && rfield->vers_sys_field(); - if ((rfield->vcol_info || vers_sys_field) && + const bool skip_sys_field= rfield->vers_sys_field(); // TODO: && !thd->vers_modify_history() [MDEV-16546] + if ((rfield->vcol_info || skip_sys_field) && type != Item::DEFAULT_VALUE_ITEM && type != Item::NULL_ITEM && table->s->table_category != TABLE_CATEGORY_TEMPORARY) @@ -8314,15 +8306,14 @@ ER_WARNING_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN, ER_THD(thd, ER_WARNING_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN), rfield->field_name.str, table->s->table_name.str); - if (vers_sys_field) - continue; } if (only_unvers_fields && !rfield->vers_update_unversioned()) only_unvers_fields= false; if (rfield->stored_in_db()) { - if (unlikely(value->save_in_field(rfield, 0) < 0) && !ignore_errors) + if (!skip_sys_field && + unlikely(value->save_in_field(rfield, 0) < 0) && !ignore_errors) { my_message(ER_UNKNOWN_ERROR, ER_THD(thd, ER_UNKNOWN_ERROR), MYF(0)); goto err; @@ -8336,7 +8327,7 @@ rfield->move_field_offset((my_ptrdiff_t) (table->record[1] - table->record[0])); } - rfield->set_explicit_default(value); + rfield->set_has_explicit_value(); } if (update && thd->variables.sql_mode & MODE_SIMULTANEOUS_ASSIGNMENT) @@ -8355,9 +8346,13 @@ } } - if (!update && table_arg->default_field && - table_arg->update_default_fields(0, ignore_errors)) - goto err; + if (update) + table_arg->evaluate_update_default_function(); + else + if (table_arg->default_field && + table_arg->update_default_fields(ignore_errors)) + goto err; + /* Update virtual fields */ if (table_arg->vfield && table_arg->update_virtual_fields(table_arg->file, VCOL_UPDATE_FOR_WRITE)) @@ -8547,7 +8542,6 @@ { List_iterator_fast v(values); List tbl_list; - bool all_fields_have_values= true; Item *value; Field *field; bool abort_on_warning_saved= thd->abort_on_warning; @@ -8578,10 +8572,7 @@ DBUG_ASSERT(field->table == table); if (unlikely(field->invisible)) - { - all_fields_have_values= false; continue; - } else value=v++; @@ -8610,11 +8601,8 @@ else if (value->save_in_field(field, 0) < 0) goto err; - all_fields_have_values &= field->set_explicit_default(value); + field->set_has_explicit_value(); } - if (!all_fields_have_values && table->default_field && - table->update_default_fields(0, ignore_errors)) - goto err; /* Update virtual fields */ thd->abort_on_warning= FALSE; if (table->vfield && diff -Nru mariadb-10.3-10.3.17/sql/sql_cache.cc mariadb-10.3-10.3.20/sql/sql_cache.cc --- mariadb-10.3-10.3.17/sql/sql_cache.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_cache.cc 2019-11-06 16:01:57.000000000 +0000 @@ -329,9 +329,6 @@ */ #include "mariadb.h" /* NO_EMBEDDED_ACCESS_CHECKS */ -#if defined(DBUG_OFF) && defined(HAVE_MADVISE) -#include -#endif #include "sql_priv.h" #include "sql_basic_types.h" #include "sql_cache.h" @@ -2662,7 +2659,7 @@ #if defined(DBUG_OFF) && defined(HAVE_MADVISE) && defined(MADV_DONTDUMP) if (madvise(cache, query_cache_size+additional_data_size, MADV_DONTDUMP)) { - DBUG_PRINT("warning", ("coudn't mark query cache memory as MADV_DONTDUMP: %s", + DBUG_PRINT("warning", ("coudn't mark query cache memory as " DONTDUMP_STR ": %s", strerror(errno))); } #endif @@ -2831,7 +2828,7 @@ #if defined(DBUG_OFF) && defined(HAVE_MADVISE) && defined(MADV_DODUMP) if (madvise(cache, query_cache_size+additional_data_size, MADV_DODUMP)) { - DBUG_PRINT("warning", ("coudn't mark query cache memory as MADV_DODUMP: %s", + DBUG_PRINT("warning", ("coudn't mark query cache memory as " DODUMP_STR ": %s", strerror(errno))); } #endif diff -Nru mariadb-10.3-10.3.17/sql/sql_class.cc mariadb-10.3-10.3.20/sql/sql_class.cc --- mariadb-10.3-10.3.17/sql/sql_class.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_class.cc 2019-11-06 16:01:57.000000000 +0000 @@ -49,7 +49,7 @@ #include #include #include -#ifdef __WIN__ +#ifdef __WIN__0 #include #endif #include @@ -850,7 +850,6 @@ invoker.init(); prepare_derived_at_open= FALSE; create_tmp_table_for_derived= FALSE; - force_read_stats= FALSE; save_prep_leaf_list= FALSE; org_charset= 0; /* Restore THR_THD */ @@ -2400,7 +2399,6 @@ size_t length, CHARSET_INFO *cs) const { - DBUG_ASSERT(charset_is_system_charset); size_t wlen= Well_formed_prefix(cs, str, length).length(); if (wlen < length) { @@ -4805,12 +4803,6 @@ } -extern "C" int thd_rpl_stmt_based(const MYSQL_THD thd) -{ - return thd && - !thd->is_current_stmt_binlog_format_row() && - !thd->is_current_stmt_binlog_disabled(); -} /* Returns high resolution timestamp for the start @@ -6029,17 +6021,33 @@ Get the capabilities vector for all involved storage engines and mask out the flags for the binary log. */ - for (TABLE_LIST *table= tables; table; table= table->next_global) + for (TABLE_LIST *tbl= tables; tbl; tbl= tbl->next_global) { - if (table->placeholder()) + TABLE *table; + TABLE_SHARE *share; + handler::Table_flags flags; + if (tbl->placeholder()) continue; - handler::Table_flags const flags= table->table->file->ha_table_flags(); + table= tbl->table; + share= table->s; + flags= table->file->ha_table_flags(); + if (!share->table_creation_was_logged) + { + /* + This is a temporary table which was not logged in the binary log. + Disable statement logging to enforce row level logging. + */ + DBUG_ASSERT(share->tmp_table); + flags&= ~HA_BINLOG_STMT_CAPABLE; + /* We can only use row logging */ + set_current_stmt_binlog_format_row(); + } DBUG_PRINT("info", ("table: %s; ha_table_flags: 0x%llx", - table->table_name.str, flags)); + tbl->table_name.str, flags)); - if (table->table->s->no_replicate) + if (share->no_replicate) { /* The statement uses a table that is not replicated. @@ -6057,44 +6065,44 @@ */ lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_TABLE); - if (table->lock_type >= TL_WRITE_ALLOW_WRITE) + if (tbl->lock_type >= TL_WRITE_ALLOW_WRITE) { non_replicated_tables_count++; continue; } } - if (table == lex->first_not_own_table()) + if (tbl == lex->first_not_own_table()) found_first_not_own_table= true; replicated_tables_count++; - if (table->prelocking_placeholder != TABLE_LIST::PRELOCK_FK) + if (tbl->prelocking_placeholder != TABLE_LIST::PRELOCK_FK) { - if (table->lock_type <= TL_READ_NO_INSERT) + if (tbl->lock_type <= TL_READ_NO_INSERT) has_read_tables= true; - else if (table->table->found_next_number_field && - (table->lock_type >= TL_WRITE_ALLOW_WRITE)) + else if (table->found_next_number_field && + (tbl->lock_type >= TL_WRITE_ALLOW_WRITE)) { has_auto_increment_write_tables= true; has_auto_increment_write_tables_not_first= found_first_not_own_table; - if (table->table->s->next_number_keypart != 0) + if (share->next_number_keypart != 0) has_write_table_auto_increment_not_first_in_pk= true; } } - if (table->lock_type >= TL_WRITE_ALLOW_WRITE) + if (tbl->lock_type >= TL_WRITE_ALLOW_WRITE) { bool trans; if (prev_write_table && prev_write_table->file->ht != - table->table->file->ht) + table->file->ht) multi_write_engine= TRUE; - if (table->table->s->non_determinstic_insert && + if (share->non_determinstic_insert && !(sql_command_flags[lex->sql_command] & CF_SCHEMA_CHANGE)) has_write_tables_with_unsafe_statements= true; - trans= table->table->file->has_transactions(); + trans= table->file->has_transactions(); - if (table->table->s->tmp_table) + if (share->tmp_table) lex->set_stmt_accessed_table(trans ? LEX::STMT_WRITES_TEMP_TRANS_TABLE : LEX::STMT_WRITES_TEMP_NON_TRANS_TABLE); else @@ -6105,17 +6113,16 @@ flags_write_some_set |= flags; is_write= TRUE; - prev_write_table= table->table; + prev_write_table= table; } flags_access_some_set |= flags; - if (lex->sql_command != SQLCOM_CREATE_TABLE || - (lex->sql_command == SQLCOM_CREATE_TABLE && lex->tmp_table())) + if (lex->sql_command != SQLCOM_CREATE_TABLE || lex->tmp_table()) { - my_bool trans= table->table->file->has_transactions(); + my_bool trans= table->file->has_transactions(); - if (table->table->s->tmp_table) + if (share->tmp_table) lex->set_stmt_accessed_table(trans ? LEX::STMT_READS_TEMP_TRANS_TABLE : LEX::STMT_READS_TEMP_NON_TRANS_TABLE); else @@ -6124,10 +6131,10 @@ } if (prev_access_table && prev_access_table->file->ht != - table->table->file->ht) + table->file->ht) multi_access_engine= TRUE; - prev_access_table= table->table; + prev_access_table= table; } if (wsrep_binlog_format() != BINLOG_FORMAT_ROW) @@ -6256,9 +6263,16 @@ { /* 5. Error: Cannot modify table that uses a storage engine - limited to row-logging when binlog_format = STATEMENT + limited to row-logging when binlog_format = STATEMENT, except + if all tables that are updated are temporary tables */ - if (IF_WSREP((!WSREP(this) || wsrep_exec_mode == LOCAL_STATE),1)) + if (!lex->stmt_writes_to_non_temp_table()) + { + /* As all updated tables are temporary, nothing will be logged */ + set_current_stmt_binlog_format_row(); + } + else if (IF_WSREP((!WSREP(this) || + wsrep_exec_mode == LOCAL_STATE),1)) { my_error((error= ER_BINLOG_STMT_MODE_AND_ROW_ENGINE), MYF(0), ""); } @@ -6327,10 +6341,8 @@ "ROW" : "STATEMENT")); if (variables.binlog_format == BINLOG_FORMAT_ROW && - (lex->sql_command == SQLCOM_UPDATE || - lex->sql_command == SQLCOM_UPDATE_MULTI || - lex->sql_command == SQLCOM_DELETE || - lex->sql_command == SQLCOM_DELETE_MULTI)) + (sql_command_flags[lex->sql_command] & + (CF_UPDATES_DATA | CF_DELETES_DATA))) { String table_names; /* @@ -6350,8 +6362,8 @@ } if (!table_names.is_empty()) { - bool is_update= (lex->sql_command == SQLCOM_UPDATE || - lex->sql_command == SQLCOM_UPDATE_MULTI); + bool is_update= MY_TEST(sql_command_flags[lex->sql_command] & + CF_UPDATES_DATA); /* Replace the last ',' with '.' for table_names */ @@ -6382,6 +6394,48 @@ DBUG_RETURN(0); } +int THD::decide_logging_format_low(TABLE *table) +{ + /* + INSERT...ON DUPLICATE KEY UPDATE on a table with more than one unique keys + can be unsafe. + */ + if(wsrep_binlog_format() <= BINLOG_FORMAT_STMT && + !is_current_stmt_binlog_format_row() && + !lex->is_stmt_unsafe() && + lex->sql_command == SQLCOM_INSERT && + lex->duplicates == DUP_UPDATE) + { + uint unique_keys= 0; + uint keys= table->s->keys, i= 0; + Field *field; + for (KEY* keyinfo= table->s->key_info; + i < keys && unique_keys <= 1; i++, keyinfo++) + if (keyinfo->flags & HA_NOSAME && + !(keyinfo->key_part->field->flags & AUTO_INCREMENT_FLAG && + //User given auto inc can be unsafe + !keyinfo->key_part->field->val_int())) + { + for (uint j= 0; j < keyinfo->user_defined_key_parts; j++) + { + field= keyinfo->key_part[j].field; + if(!bitmap_is_set(table->write_set,field->field_index)) + goto exit; + } + unique_keys++; +exit:; + } + + if (unique_keys > 1) + { + lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_INSERT_TWO_KEYS); + binlog_unsafe_warning_flags|= lex->get_stmt_unsafe_flags(); + set_current_stmt_binlog_format_row_if_mixed(); + return 1; + } + } + return 0; +} /* Implementation of interface to write rows to the binary log through the @@ -7143,11 +7197,12 @@ @see decide_logging_format + @retval < 0 No logging of query (ok) @retval 0 Success - - @retval nonzero If there is a failure when writing the query (e.g., - write failure), then the error code is returned. + @retval > 0 If there is a failure when writing the query (e.g., + write failure), then the error code is returned. */ + int THD::binlog_query(THD::enum_binlog_query_type qtype, char const *query_arg, ulong query_len, bool is_trans, bool direct, bool suppress_use, int errcode) @@ -7173,7 +7228,7 @@ The current statement is to be ignored, and not written to the binlog. Do not call issue_unsafe_warnings(). */ - DBUG_RETURN(0); + DBUG_RETURN(-1); } /* @@ -7189,7 +7244,10 @@ { int error; if (unlikely(error= binlog_flush_pending_rows_event(TRUE, is_trans))) + { + DBUG_ASSERT(error > 0); DBUG_RETURN(error); + } } /* @@ -7232,7 +7290,7 @@ ("is_current_stmt_binlog_format_row: %d", is_current_stmt_binlog_format_row())); if (is_current_stmt_binlog_format_row()) - DBUG_RETURN(0); + DBUG_RETURN(-1); /* Fall through */ /* @@ -7273,7 +7331,7 @@ } binlog_table_maps= 0; - DBUG_RETURN(error); + DBUG_RETURN(error >= 0 ? error : 1); } case THD::QUERY_TYPE_COUNT: diff -Nru mariadb-10.3-10.3.17/sql/sql_class.h mariadb-10.3-10.3.20/sql/sql_class.h --- mariadb-10.3-10.3.17/sql/sql_class.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_class.h 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,6 @@ /* Copyright (c) 2000, 2016, Oracle and/or its affiliates. - Copyright (c) 2009, 2017, MariaDB Corporation. + Copyright (c) 2009, 2019, MariaDB Corporation. 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 @@ -1620,12 +1620,16 @@ /** @class Sub_statement_state @brief Used to save context when executing a function or trigger + + operations on stat tables aren't technically a sub-statement, but they are + similar in a sense that they cannot change the transaction status. */ /* Defines used for Sub_statement_state::in_sub_stmt */ #define SUB_STMT_TRIGGER 1 #define SUB_STMT_FUNCTION 2 +#define SUB_STMT_STAT_TABLES 4 class Sub_statement_state @@ -2444,14 +2448,25 @@ */ bool create_tmp_table_for_derived; - /* The flag to force reading statistics from EITS tables */ - bool force_read_stats; - bool save_prep_leaf_list; /* container for handler's private per-connection data */ Ha_data ha_data[MAX_HA]; + /** + Bit field for the state of binlog warnings. + + The first Lex::BINLOG_STMT_UNSAFE_COUNT bits list all types of + unsafeness that the current statement has. + + This must be a member of THD and not of LEX, because warnings are + detected and issued in different places (@c + decide_logging_format() and @c binlog_query(), respectively). + Between these calls, the THD->lex object may change; e.g., if a + stored routine is invoked. Only THD persists between the calls. + */ + uint32 binlog_unsafe_warning_flags; + #ifndef MYSQL_CLIENT binlog_cache_mngr * binlog_setup_trx_data(); @@ -2561,20 +2576,6 @@ */ enum_binlog_format current_stmt_binlog_format; - /** - Bit field for the state of binlog warnings. - - The first Lex::BINLOG_STMT_UNSAFE_COUNT bits list all types of - unsafeness that the current statement has. - - This must be a member of THD and not of LEX, because warnings are - detected and issued in different places (@c - decide_logging_format() and @c binlog_query(), respectively). - Between these calls, the THD->lex object may change; e.g., if a - stored routine is invoked. Only THD persists between the calls. - */ - uint32 binlog_unsafe_warning_flags; - /* Number of outstanding table maps, i.e., table maps in the transaction cache. @@ -3443,6 +3444,7 @@ { system_time.sec= sec; system_time.sec_part= sec_part; + system_time.start= hrtime; } else { @@ -4455,6 +4457,18 @@ } void leave_locked_tables_mode(); int decide_logging_format(TABLE_LIST *tables); + /* + In Some cases when decide_logging_format is called it does not have all + information to decide the logging format. So that cases we call decide_logging_format_2 + at later stages in execution. + One example would be binlog format for IODKU but column with unique key is not inserted. + We dont have inserted columns info when we call decide_logging_format so on later stage we call + decide_logging_format_low + + @returns 0 if no format is changed + 1 if there is change in binlog format + */ + int decide_logging_format_low(TABLE *table); enum need_invoker { INVOKER_NONE=0, INVOKER_USER, INVOKER_ROLE}; void binlog_invoker(bool role) { m_binlog_invoker= role ? INVOKER_ROLE : INVOKER_USER; } @@ -5858,7 +5872,10 @@ uint tables; /* Number of tables in the sj-nest */ - /* Expected #rows in the materialized table */ + /* Number of rows in the materialized table, before the de-duplication */ + double rows_with_duplicates; + + /* Expected #rows in the materialized table, after de-duplication */ double rows; /* @@ -6324,6 +6341,11 @@ /* Bits in server_command_flags */ /** + Statement that deletes existing rows (DELETE, DELETE_MULTI) +*/ +#define CF_DELETES_DATA (1U << 24) + +/** Skip the increase of the global query id counter. Commonly set for commands that are stateless (won't cause any change on the server internal states). @@ -6527,6 +6549,22 @@ sql_mode_t old_mode; // SQL mode saved at construction time. }; +class Switch_to_definer_security_ctx +{ + public: + Switch_to_definer_security_ctx(THD *thd, TABLE_LIST *table) : + m_thd(thd), m_sctx(thd->security_ctx) + { + if (table->security_ctx) + thd->security_ctx= table->security_ctx; + } + ~Switch_to_definer_security_ctx() { m_thd->security_ctx = m_sctx; } + + private: + THD *m_thd; + Security_context *m_sctx; +}; + /** This class resembles the SQL Standard schema qualified object name: @@ -6745,11 +6783,12 @@ class ScopedStatementReplication { public: - ScopedStatementReplication(THD *thd) : thd(thd) - { - if (thd) - saved_binlog_format= thd->set_current_stmt_binlog_format_stmt(); - } + ScopedStatementReplication(THD *thd) : + saved_binlog_format(thd + ? thd->set_current_stmt_binlog_format_stmt() + : BINLOG_FORMAT_MIXED), + thd(thd) + {} ~ScopedStatementReplication() { if (thd) @@ -6757,8 +6796,8 @@ } private: - enum_binlog_format saved_binlog_format; - THD *thd; + const enum_binlog_format saved_binlog_format; + THD *const thd; }; #endif /* MYSQL_SERVER */ diff -Nru mariadb-10.3-10.3.17/sql/sql_cte.cc mariadb-10.3-10.3.20/sql/sql_cte.cc --- mariadb-10.3-10.3.17/sql/sql_cte.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_cte.cc 2019-11-06 16:01:57.000000000 +0000 @@ -1430,6 +1430,22 @@ void With_element::print(String *str, enum_query_type query_type) { str->append(query_name); + if (column_list.elements) + { + List_iterator_fast li(column_list); + str->append('('); + for (LEX_CSTRING *col_name= li++; ; ) + { + str->append(col_name); + col_name= li++; + if (!col_name) + { + str->append(')'); + break; + } + str->append(','); + } + } str->append(STRING_WITH_LEN(" as ")); str->append('('); spec->print(str, query_type); diff -Nru mariadb-10.3-10.3.17/sql/sql_delete.cc mariadb-10.3-10.3.20/sql/sql_delete.cc --- mariadb-10.3-10.3.17/sql/sql_delete.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_delete.cc 2019-11-06 16:01:57.000000000 +0000 @@ -851,7 +851,7 @@ transactional_table, FALSE, FALSE, errcode); - if (log_result) + if (log_result > 0) { error=1; } @@ -1522,7 +1522,7 @@ if (unlikely(thd->binlog_query(THD::ROW_QUERY_TYPE, thd->query(), thd->query_length(), transactional_tables, FALSE, FALSE, - errcode)) && + errcode) > 0) && !normal_tables) { local_error=1; // Log write failed: roll back the SQL statement diff -Nru mariadb-10.3-10.3.17/sql/sql_explain.cc mariadb-10.3-10.3.20/sql/sql_explain.cc --- mariadb-10.3-10.3.17/sql/sql_explain.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_explain.cc 2019-11-06 16:01:57.000000000 +0000 @@ -444,6 +444,8 @@ break; default: DBUG_ASSERT(0); + type.str= NULL; + type.length= 0; } memcpy(buf, type.str, (len= (uint)type.length)); diff -Nru mariadb-10.3-10.3.17/sql/sql_insert.cc mariadb-10.3-10.3.20/sql/sql_insert.cc --- mariadb-10.3-10.3.17/sql/sql_insert.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_insert.cc 2019-11-06 16:01:57.000000000 +0000 @@ -1057,6 +1057,7 @@ break; } + thd->decide_logging_format_low(table); #ifndef EMBEDDED_LIBRARY if (lock_type == TL_WRITE_DELAYED) { @@ -1185,13 +1186,13 @@ else if (thd->binlog_query(THD::ROW_QUERY_TYPE, log_query.c_ptr(), log_query.length(), transactional_table, FALSE, FALSE, - errcode)) + errcode) > 0) error= 1; } else if (thd->binlog_query(THD::ROW_QUERY_TYPE, thd->query(), thd->query_length(), transactional_table, FALSE, FALSE, - errcode)) + errcode) > 0) error= 1; } } @@ -1690,7 +1691,7 @@ int error, trg_error= 0; char *key=0; MY_BITMAP *save_read_set, *save_write_set; - ulonglong prev_insert_id= table->file->next_insert_id; + table->file->store_auto_increment(); ulonglong insert_id_for_cur_row= 0; ulonglong prev_insert_id_for_cur_row= 0; DBUG_ENTER("write_record"); @@ -1834,10 +1835,7 @@ be updated as if this is an UPDATE. */ if (different_records && table->default_field) - { - if (table->update_default_fields(1, info->ignore)) - goto err; - } + table->evaluate_update_default_function(); /* CHECK OPTION for VIEW ... ON DUPLICATE KEY UPDATE ... */ res= info->table_list->view_check_option(table->in_use, info->ignore); @@ -1846,7 +1844,7 @@ if (res == VIEW_CHECK_ERROR) goto before_trg_err; - table->file->restore_auto_increment(prev_insert_id); + table->file->restore_auto_increment(); info->touched++; if (different_records) { @@ -1947,6 +1945,7 @@ if (table->versioned(VERS_TRX_ID)) { bitmap_set_bit(table->write_set, table->vers_start_field()->field_index); + table->file->column_bitmaps_signal(); table->vers_start_field()->store(0, false); } if (unlikely(error= table->file->ha_update_row(table->record[1], @@ -2039,7 +2038,7 @@ if (!(thd->variables.old_behavior & OLD_MODE_NO_DUP_KEY_WARNINGS_WITH_IGNORE)) table->file->print_error(error, MYF(ME_JUST_WARNING)); - table->file->restore_auto_increment(prev_insert_id); + table->file->restore_auto_increment(); goto ok_or_after_trg_err; } @@ -2062,7 +2061,7 @@ table->file->print_error(error,MYF(0)); before_trg_err: - table->file->restore_auto_increment(prev_insert_id); + table->file->restore_auto_increment(); if (key) my_safe_afree(key, table->s->max_unique_length); table->column_bitmaps_set(save_read_set, save_write_set); @@ -2071,7 +2070,7 @@ /****************************************************************************** - Check that all fields with arn't null_fields are used + Check that there aren't any null_fields ******************************************************************************/ @@ -2623,7 +2622,8 @@ sizeof(MY_BITMAP))))) goto error; if (unlikely(parse_vcol_defs(client_thd, client_thd->mem_root, copy, - &error_reported))) + &error_reported, + VCOL_INIT_DEPENDENCY_FAILURE_IS_WARNING))) goto error; } @@ -3854,7 +3854,7 @@ thd->count_cuted_fields= CHECK_FIELD_WARN; // Calculate cuted fields store_values(values); if (table->default_field && - unlikely(table->update_default_fields(0, info.ignore))) + unlikely(table->update_default_fields(info.ignore))) DBUG_RETURN(1); thd->count_cuted_fields= CHECK_FIELD_ERROR_FOR_NULL; if (unlikely(thd->is_error())) @@ -3931,6 +3931,7 @@ int error; bool const trans_table= table->file->has_transactions(); bool changed; + bool binary_logged= 0; killed_state killed_status= thd->killed; DBUG_ENTER("select_insert::prepare_eof"); @@ -3978,18 +3979,22 @@ (likely(!error) || thd->transaction.stmt.modified_non_trans_table)) { int errcode= 0; + int res; if (likely(!error)) thd->clear_error(); else errcode= query_error_code(thd, killed_status == NOT_KILLED); - if (thd->binlog_query(THD::ROW_QUERY_TYPE, - thd->query(), thd->query_length(), - trans_table, FALSE, FALSE, errcode)) + res= thd->binlog_query(THD::ROW_QUERY_TYPE, + thd->query(), thd->query_length(), + trans_table, FALSE, FALSE, errcode); + if (res > 0) { table->file->ha_release_auto_increment(); DBUG_RETURN(true); } + binary_logged= res == 0 || !table->s->tmp_table; } + table->s->table_creation_was_logged|= binary_logged; table->file->ha_release_auto_increment(); if (unlikely(error)) @@ -4040,8 +4045,9 @@ DBUG_RETURN(res); } -void select_insert::abort_result_set() { - +void select_insert::abort_result_set() +{ + bool binary_logged= 0; DBUG_ENTER("select_insert::abort_result_set"); /* If the creation of the table failed (due to a syntax error, for @@ -4093,16 +4099,20 @@ if(WSREP_EMULATE_BINLOG(thd) || mysql_bin_log.is_open()) { int errcode= query_error_code(thd, thd->killed == NOT_KILLED); + int res; /* error of writing binary log is ignored */ - (void) thd->binlog_query(THD::ROW_QUERY_TYPE, thd->query(), - thd->query_length(), - transactional_table, FALSE, FALSE, errcode); + res= thd->binlog_query(THD::ROW_QUERY_TYPE, thd->query(), + thd->query_length(), + transactional_table, FALSE, FALSE, errcode); + binary_logged= res == 0 || !table->s->tmp_table; } if (changed) query_cache_invalidate3(thd, table, 1); } DBUG_ASSERT(transactional_table || !changed || thd->transaction.stmt.modified_non_trans_table); + + table->s->table_creation_was_logged|= binary_logged; table->file->ha_release_auto_increment(); } @@ -4173,6 +4183,7 @@ /* Add selected items to field list */ List_iterator_fast it(*items); Item *item; + bool save_table_creation_was_logged; DBUG_ENTER("select_create::create_table_from_items"); tmp_table.s= &share; @@ -4186,8 +4197,7 @@ if (!opt_explicit_defaults_for_timestamp) promote_first_timestamp_column(&alter_info->create_list); - if (create_info->vers_fix_system_fields(thd, alter_info, *create_table, - true)) + if (create_info->vers_fix_system_fields(thd, alter_info, *create_table)) DBUG_RETURN(NULL); while ((item=it++)) @@ -4226,7 +4236,10 @@ alter_info->create_list.push_back(cr_field, thd->mem_root); } - if (create_info->vers_check_system_fields(thd, alter_info, *create_table)) + if (create_info->vers_check_system_fields(thd, alter_info, + create_table->table_name, + create_table->db, + select_field_count)) DBUG_RETURN(NULL); DEBUG_SYNC(thd,"create_table_select_before_create"); @@ -4324,6 +4337,14 @@ table->reginfo.lock_type=TL_WRITE; hooks->prelock(&table, 1); // Call prelock hooks + + /* + Ensure that decide_logging_format(), called by mysql_lock_tables(), works + with temporary tables that will be logged later if needed. + */ + save_table_creation_was_logged= table->s->table_creation_was_logged; + table->s->table_creation_was_logged= 1; + /* mysql_lock_tables() below should never fail with request to reopen table since it won't wait for the table lock (we have exclusive metadata lock on @@ -4336,8 +4357,11 @@ /* This can happen in innodb when you get a deadlock when using same table in insert and select or when you run out of memory. + It can also happen if there was a conflict in + THD::decide_logging_format() */ - my_error(ER_CANT_LOCK, MYF(0), my_errno); + if (!thd->is_error()) + my_error(ER_CANT_LOCK, MYF(0), my_errno); if (*lock) { mysql_unlock_tables(thd, *lock); @@ -4347,6 +4371,7 @@ DBUG_RETURN(0); /* purecov: end */ } + table->s->table_creation_was_logged= save_table_creation_was_logged; DBUG_RETURN(table); } @@ -4552,7 +4577,7 @@ /* is_trans */ TRUE, /* direct */ FALSE, /* suppress_use */ FALSE, - errcode); + errcode) > 0; } ha_fake_trx_id(thd); @@ -4665,8 +4690,6 @@ } #endif /* WITH_WSREP */ } - else if (!thd->is_current_stmt_binlog_format_row()) - table->s->table_creation_was_logged= 1; /* exit_done must only be set after last potential call to @@ -4752,7 +4775,8 @@ if (table) { bool tmp_table= table->s->tmp_table; - + bool table_creation_was_logged= (!tmp_table || + table->s->table_creation_was_logged); if (tmp_table) { DBUG_ASSERT(saved_tmp_table_share); @@ -4781,7 +4805,9 @@ /* Remove logging of drop, create + insert rows */ binlog_reset_cache(thd); /* Original table was deleted. We have to log it */ - log_drop_table(thd, &create_table->db, &create_table->table_name, tmp_table); + if (table_creation_was_logged) + log_drop_table(thd, &create_table->db, &create_table->table_name, + tmp_table); } } DBUG_VOID_RETURN; diff -Nru mariadb-10.3-10.3.17/sql/sql_lex.cc mariadb-10.3-10.3.20/sql/sql_lex.cc --- mariadb-10.3-10.3.17/sql/sql_lex.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_lex.cc 2019-11-06 16:01:57.000000000 +0000 @@ -2911,6 +2911,7 @@ { default: DBUG_ASSERT(0); + /* fall through */ case UNION_TYPE: str->append(STRING_WITH_LEN(" union ")); if (union_all) @@ -7313,7 +7314,7 @@ #define UNSAFE(a, b, c) \ { \ - DBUG_PRINT("unsafe_mixed_statement", ("SETTING BASE VALUES: %s, %s, %02X\n", \ + DBUG_PRINT("unsafe_mixed_statement", ("SETTING BASE VALUES: %s, %s, %02X", \ LEX::stmt_accessed_table_string(a), \ LEX::stmt_accessed_table_string(b), \ c)); \ @@ -8167,11 +8168,9 @@ create_last_non_select_table->table_name.str); return true; } - elem->type(partition_element::CURRENT); + elem->type= partition_element::CURRENT; DBUG_ASSERT(part_info->vers_info); part_info->vers_info->now_part= elem; - if (unlikely(part_info->init_column_part(thd))) - return true; return false; } @@ -8201,9 +8200,7 @@ create_last_non_select_table->table_name.str); return true; } - elem->type(partition_element::HISTORY); - if (unlikely(part_info->init_column_part(thd))) - return true; + elem->type= partition_element::HISTORY; return false; } diff -Nru mariadb-10.3-10.3.17/sql/sql_lex.h mariadb-10.3-10.3.20/sql/sql_lex.h --- mariadb-10.3-10.3.17/sql/sql_lex.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_lex.h 2019-11-06 16:01:57.000000000 +0000 @@ -2018,6 +2018,14 @@ ((1U << STMT_READS_TEMP_TRANS_TABLE) | (1U << STMT_WRITES_TEMP_TRANS_TABLE))) != 0); } + inline bool stmt_writes_to_non_temp_table() + { + DBUG_ENTER("THD::stmt_writes_to_non_temp_table"); + + DBUG_RETURN((stmt_accessed_table_flag & + ((1U << STMT_WRITES_TRANS_TABLE) | + (1U << STMT_WRITES_NON_TRANS_TABLE)))); + } /** Checks if a temporary non-transactional table is about to be accessed @@ -2069,7 +2077,7 @@ unsafe= (binlog_unsafe_map[stmt_accessed_table_flag] & condition); #if !defined(DBUG_OFF) - DBUG_PRINT("LEX::is_mixed_stmt_unsafe", ("RESULT %02X %02X %02X\n", condition, + DBUG_PRINT("LEX::is_mixed_stmt_unsafe", ("RESULT %02X %02X %02X", condition, binlog_unsafe_map[stmt_accessed_table_flag], (binlog_unsafe_map[stmt_accessed_table_flag] & condition))); @@ -4060,6 +4068,8 @@ } bool tvc_finalize(); bool tvc_finalize_derived(); + + void mark_first_table_as_inserting(); }; diff -Nru mariadb-10.3-10.3.17/sql/sql_list.h mariadb-10.3-10.3.20/sql/sql_list.h --- mariadb-10.3-10.3.17/sql/sql_list.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_list.h 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,7 @@ #ifndef INCLUDES_MYSQL_SQL_LIST_H #define INCLUDES_MYSQL_SQL_LIST_H /* Copyright (c) 2000, 2012, Oracle and/or its affiliates. + Copyright (c) 2019, MariaDB Corporation. 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 @@ -48,6 +49,14 @@ next= elements ? tmp.next : &first; } + SQL_I_List& operator=(const SQL_I_List &tmp) + { + elements= tmp.elements; + first= tmp.first; + next= tmp.next; + return *this; + } + inline void empty() { elements= 0; @@ -488,7 +497,6 @@ { public: inline List() :base_list() {} - inline List(const List &tmp) :base_list(tmp) {} inline List(const List &tmp, MEM_ROOT *mem_root) : base_list(tmp, mem_root) {} inline bool push_back(T *a) { return base_list::push_back(a); } diff -Nru mariadb-10.3-10.3.17/sql/sql_load.cc mariadb-10.3-10.3.20/sql/sql_load.cc --- mariadb-10.3-10.3.17/sql/sql_load.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_load.cc 2019-11-06 16:01:57.000000000 +0000 @@ -2063,7 +2063,7 @@ chr= read_value(delim, &value); if (attribute.length() > 0 && value.length() > 0) { - DBUG_PRINT("read_xml", ("lev:%i att:%s val:%s\n", + DBUG_PRINT("read_xml", ("lev:%i att:%s val:%s", level + 1, attribute.c_ptr_safe(), value.c_ptr_safe())); diff -Nru mariadb-10.3-10.3.17/sql/sql_mode.cc mariadb-10.3-10.3.20/sql/sql_mode.cc --- mariadb-10.3-10.3.17/sql/sql_mode.cc 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_mode.cc 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,34 @@ +/* + Copyright (c) 2019, MariaDB. + + 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-1335 USA */ + +#include "mariadb.h" +#include "set_var.h" + +void Sql_mode_dependency::push_dependency_warnings(THD *thd) +{ + sql_mode_t all= m_hard | m_soft; + for (uint i= 0; all ; i++, all >>= 1) + { + if (all & 1) + { + // TODO-10.5: add a new error code + push_warning_printf(thd, + Sql_condition::WARN_LEVEL_WARN, ER_UNKNOWN_ERROR, + "Expression depends on the @@%s value %s", + "sql_mode", sql_mode_string_representation(i)); + } + } +} diff -Nru mariadb-10.3-10.3.17/sql/sql_mode.h mariadb-10.3-10.3.20/sql/sql_mode.h --- mariadb-10.3-10.3.17/sql/sql_mode.h 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_mode.h 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,162 @@ +#ifndef SQL_MODE_H_INCLUDED +#define SQL_MODE_H_INCLUDED +/* + Copyright (c) 2019, MariaDB. + + 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-1335 USA */ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include "sql_basic_types.h" + +/* + class Sql_mode_dependency + + A combination of hard and soft dependency on sql_mode. + Used to watch if a GENERATED ALWAYS AS expression guarantees consitent + data written to its virtual column. + + A virtual column can appear in an index if: + - the generation expression does not depend on any sql_mode flags, or + - the generation expression has a soft dependency on an sql_mode flag, + and the column knows how to handle this dependeny. + + A virtual column cannot appear in an index if: + - its generation expression has a hard dependency + - its generation expression has a soft dependency, but the column + cannot handle it on store. + An error is reported in such cases. + + How dependencies appear: + - When a column return value depends on some sql_mode flag, + its Item_field adds a corresponding bit to m_soft. For example, + Item_field for a CHAR(N) column adds the PAD_CHAR_TO_FULL_LENGTH flag. + - When an SQL function/operator return value depends on some sql_mode flag, + it adds a corresponding bit to m_soft. For example, Item_func_minus + adds the MODE_NO_UNSIGNED_SUBTRACTION in case of unsigned arguments. + + How dependency are processed (see examples below): + - All SQL functions/operators bit-OR all hard dependencies from all arguments. + - Some soft dependencies can be handled by the underlying Field on store, + e.g. CHAR(N) can handle PAD_CHAR_TO_FULL_LENGTH. + - Some soft dependencies can be handled by SQL functions and operators, + e.g. RTRIM(expr) removes expr's soft dependency on PAD_CHAR_TO_FULL_LENGTH. + If a function or operator handles a soft dependency on a certain sql_mode + flag, it removes the corresponding bit from m_soft (see below). + Note, m_hard is not touched in such cases. + - When an expression with a soft dependency on a certain sql_mode flag + goes as an argument to an SQL function/operator which cannot handle + this flag, the dependency escalates from soft to hard + (by moving the corresponding bit from m_soft to m_hard) and cannot be + handled any more on the upper level, neither by a Field on store, + nor by another SQL function/operator. + + There are four kinds of Items: + 1. Items that generate a soft or hard dependency, e.g. + - Item_field for CHAR(N) - generates soft/PAD_CHAR_TO_FULL_LENGTH + - Item_func_minus - generates soft/NO_UNSIGNED_SUBTRACTION + 2. Items that convert a soft dependency to a hard dependency. + This happens e.g. when an Item_func instance gets a soft dependency + from its arguments, and it does not know how to handle this dependency. + Most Item_func descendants do this. + 3. Items that remove soft dependencies, e.g.: + - Item_func_rtrim - removes soft/PAD_CHAR_TO_FULL_LENGTH + that came from args[0] (under certain conditions) + - Item_func_rpad - removes soft/PAD_CJAR_TO_FULL_LENGTH + that came from args[0] (under certain conditions) + 4. Items that repeat soft dependency from its arguments to the caller. + They are not implemented yet. But functions like Item_func_coalesce, + Item_func_case, Item_func_case_abbreviation2 could do this. + + Examples: + + 1. CREATE OR REPLACE TABLE t1 (a CHAR(5), v CHAR(20) AS(a), KEY(v)); + + Here `v` has a soft dependency on `a`. + The value of `a` depends on PAD_CHAR_TO_FULL_LENGTH, it can return: + - 'a' - if PAD_CHAR_TO_FULL_LENGTH is disabled + - 'a' followed by four spaces - if PAD_CHAR_TO_FULL_LENGTH is enabled + But `v` will pad trailing spaces to the full length on store anyway. + So Field_string handles this soft dependency on store. + This combination of the virtial column data type and its generation + expression is safe and provides consistent data in `v`, which is + 'a' followed by four spaces, no matter what PAD_CHAR_TO_FULL_LENGTH is. + + 2. CREATE OR REPLACE TABLE t1 (a CHAR(5), v VARCHAR(20) AS(a), KEY(v)); + + Here `v` has a soft dependency on `a`. But Field_varstring does + not pad spaces on store, so it cannot handle this dependency. + This combination of the virtual column data type and its generation + expression is not safe. An error is returned. + + 3. CREATE OR REPLACE TABLE t1 (a CHAR(5), v INT AS(LENGTH(a)), KEY(v)); + + Here `v` has a hard dependency on `a`, because the value of `a` + is wrapped to the function LENGTH(). + The value of `LENGTH(a)` depends on PAD_CHAR_TO_FULL_LENGTH, it can return: + - 1 - if PAD_CHAR_TO_FULL_LENGTH is disabled + - 4 - if PAD_CHAR_TO_FULL_LENGTH is enabled + This combination cannot provide consistent data stored to `v`, + therefore it's disallowed. +*/ +class Sql_mode_dependency +{ + sql_mode_t m_hard; + sql_mode_t m_soft; +public: + Sql_mode_dependency() + :m_hard(0), m_soft(0) + { } + Sql_mode_dependency(sql_mode_t hard, sql_mode_t soft) + :m_hard(hard), m_soft(soft) + { } + sql_mode_t hard() const { return m_hard; } + sql_mode_t soft() const { return m_soft; } + operator bool () const + { + return m_hard > 0 || m_soft > 0; + } + Sql_mode_dependency operator|(const Sql_mode_dependency &other) const + { + return Sql_mode_dependency(m_hard | other.m_hard, m_soft | other.m_soft); + } + Sql_mode_dependency operator&(const Sql_mode_dependency &other) const + { + return Sql_mode_dependency(m_hard & other.m_hard, m_soft & other.m_soft); + } + Sql_mode_dependency &operator|=(const Sql_mode_dependency &other) + { + m_hard|= other.m_hard; + m_soft|= other.m_soft; + return *this; + } + Sql_mode_dependency &operator&=(const Sql_mode_dependency &other) + { + m_hard&= other.m_hard; + m_soft&= other.m_soft; + return *this; + } + Sql_mode_dependency &soft_to_hard() + { + m_hard|= m_soft; + m_soft= 0; + return *this; + } + void push_dependency_warnings(THD *thd); +}; + + +#endif // SQL_MODE_H_INCLUDED diff -Nru mariadb-10.3-10.3.17/sql/sql_parse.cc mariadb-10.3-10.3.20/sql/sql_parse.cc --- mariadb-10.3-10.3.17/sql/sql_parse.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_parse.cc 2019-11-06 16:01:57.000000000 +0000 @@ -522,7 +522,6 @@ server_command_flags[COM_STMT_SEND_LONG_DATA]= CF_SKIP_WSREP_CHECK; server_command_flags[COM_REGISTER_SLAVE]= CF_SKIP_WSREP_CHECK; server_command_flags[COM_MULTI]= CF_SKIP_WSREP_CHECK | CF_NO_COM_MULTI; - server_command_flags[CF_NO_COM_MULTI]= CF_NO_COM_MULTI; /* Initialize the sql command flags array. */ memset(sql_command_flags, 0, sizeof(sql_command_flags)); @@ -606,11 +605,12 @@ CF_CAN_GENERATE_ROW_EVENTS | CF_OPTIMIZER_TRACE | CF_CAN_BE_EXPLAINED | - CF_SP_BULK_SAFE; + CF_SP_BULK_SAFE | CF_DELETES_DATA; sql_command_flags[SQLCOM_DELETE_MULTI]= CF_CHANGES_DATA | CF_REEXECUTION_FRAGILE | CF_CAN_GENERATE_ROW_EVENTS | CF_OPTIMIZER_TRACE | - CF_CAN_BE_EXPLAINED; + CF_CAN_BE_EXPLAINED | + CF_DELETES_DATA; sql_command_flags[SQLCOM_REPLACE]= CF_CHANGES_DATA | CF_REEXECUTION_FRAGILE | CF_CAN_GENERATE_ROW_EVENTS | CF_OPTIMIZER_TRACE | @@ -3283,6 +3283,10 @@ #endif DBUG_ENTER("mysql_execute_command"); + // check that we correctly marked first table for data insertion + DBUG_ASSERT(!(sql_command_flags[lex->sql_command] & CF_INSERTS_DATA) || + first_table->for_insert_data); + DBUG_ASSERT(thd->transaction.stmt.is_empty() || thd->in_sub_stmt); /* Each statement or replication event which might produce deadlock @@ -3579,6 +3583,7 @@ case GET_NO_ARG: case GET_DISABLED: DBUG_ASSERT(0); + /* fall through */ case 0: case GET_FLAGSET: case GET_ENUM: @@ -6072,7 +6077,7 @@ trans_rollback_stmt(thd); } #ifdef WITH_WSREP - if (thd->spcont && + else if (thd->spcont && (thd->wsrep_conflict_state == MUST_ABORT || thd->wsrep_conflict_state == ABORTED || thd->wsrep_conflict_state == CERT_FAILURE)) @@ -6680,11 +6685,7 @@ bool check_single_table_access(THD *thd, ulong privilege, TABLE_LIST *all_tables, bool no_errors) { - Security_context * backup_ctx= thd->security_ctx; - - /* we need to switch to the saved context (if any) */ - if (all_tables->security_ctx) - thd->security_ctx= all_tables->security_ctx; + Switch_to_definer_security_ctx backup_sctx(thd, all_tables); const char *db_name; if ((all_tables->view || all_tables->field_translation) && @@ -6697,20 +6698,15 @@ &all_tables->grant.privilege, &all_tables->grant.m_internal, 0, no_errors)) - goto deny; + return 1; /* Show only 1 table for check_grant */ if (!(all_tables->belong_to_view && (thd->lex->sql_command == SQLCOM_SHOW_FIELDS)) && check_grant(thd, privilege, all_tables, FALSE, 1, no_errors)) - goto deny; + return 1; - thd->security_ctx= backup_ctx; return 0; - -deny: - thd->security_ctx= backup_ctx; - return 1; } /** @@ -6885,7 +6881,6 @@ { TABLE_LIST *org_tables= tables; TABLE_LIST *first_not_own_table= thd->lex->first_not_own_table(); - Security_context *sctx= thd->security_ctx, *backup_ctx= thd->security_ctx; uint i= 0; /* The check that first_not_own_table is not reached is for the case when @@ -6897,12 +6892,9 @@ { TABLE_LIST *const table_ref= tables->correspondent_table ? tables->correspondent_table : tables; + Switch_to_definer_security_ctx backup_ctx(thd, table_ref); ulong want_access= requirements; - if (table_ref->security_ctx) - sctx= table_ref->security_ctx; - else - sctx= backup_ctx; /* Register access for view underlying table. @@ -6913,7 +6905,7 @@ if (table_ref->schema_table_reformed) { if (check_show_access(thd, table_ref)) - goto deny; + return 1; continue; } @@ -6923,8 +6915,6 @@ if (table_ref->is_anonymous_derived_table()) continue; - thd->security_ctx= sctx; - if (table_ref->sequence) { /* We want to have either SELECT or INSERT rights to sequences depending @@ -6938,15 +6928,11 @@ &table_ref->grant.privilege, &table_ref->grant.m_internal, 0, no_errors)) - goto deny; + return 1; } - thd->security_ctx= backup_ctx; return check_grant(thd,requirements,org_tables, any_combination_of_privileges_will_do, number, no_errors); -deny: - thd->security_ctx= backup_ctx; - return TRUE; } @@ -8248,10 +8234,6 @@ TABLE_LIST *head= join_list->head(); if (head->nested_join && head->nested_join->nest_type & REBALANCED_NEST) { - List_iterator li(*join_list); - li++; - while (li++) - li.remove(); DBUG_RETURN(head); } if (unlikely(!(ptr= (TABLE_LIST*) thd->calloc(ALIGN_SIZE(sizeof(TABLE_LIST))+ @@ -8335,13 +8317,13 @@ context and right-associative in another context. In this query - SELECT * FROM t1 JOIN t2 LEFT JOIN t3 ON t2.a=t3.a (Q1) + SELECT * FROM t1 JOIN t2 LEFT JOIN t3 ON t2.a=t3.a (Q1) JOIN is left-associative and the query Q1 is interpreted as - SELECT * FROM (t1 JOIN t2) LEFT JOIN t3 ON t2.a=t3.a. + SELECT * FROM (t1 JOIN t2) LEFT JOIN t3 ON t2.a=t3.a. While in this query - SELECT * FROM t1 JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.b=t2.b (Q2) + SELECT * FROM t1 JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.b=t2.b (Q2) JOIN is right-associative and the query Q2 is interpreted as - SELECT * FROM t1 JOIN (t2 LEFT JOIN t3 ON t2.a=t3.a) ON t1.b=t2.b + SELECT * FROM t1 JOIN (t2 LEFT JOIN t3 ON t2.a=t3.a) ON t1.b=t2.b JOIN is right-associative if it is used with ON clause or with USING clause. Otherwise it is left-associative. @@ -8387,9 +8369,9 @@ J LJ - ON / \ / \ - t1 LJ - ON (TQ3*) => J t2 - / \ / \ - t3 t2 t1 t3 + t1 LJ - ON (TQ3*) => t3 J + / \ / \ + t3 t2 t1 t2 With several left associative JOINs SELECT * FROM t1 JOIN t2 JOIN t3 LEFT JOIN t4 ON t3.a=t4.a (Q4) @@ -8397,15 +8379,15 @@ J1 LJ - ON / \ / \ - t1 LJ - ON J2 t4 + t1 J2 J2 t4 / \ => / \ - J2 t4 J1 t3 - / \ / \ - t2 t3 t1 t2 - - Here's another example: - SELECT * - FROM t1 JOIN t2 LEFT JOIN t3 JOIN t4 ON t3.a=t4.a ON t2.b=t3.b (Q5) + t2 LJ - ON J1 t3 + / \ / \ + t3 t4 t1 t2 + + Here's another example: + SELECT * + FROM t1 JOIN t2 LEFT JOIN t3 JOIN t4 ON t3.a=t4.a ON t2.b=t3.b (Q5) J LJ - ON / \ / \ @@ -8415,15 +8397,58 @@ / \ t3 t4 - If the transformed nested join node node is a natural join node like in - the following query - SELECT * FROM t1 JOIN t2 LEFT JOIN t3 USING(a) (Q6) - the transformation additionally has to take care about setting proper - references in the field natural_join for both operands of the natural - join operation. - The function also has to change the name resolution context for ON - expressions used in the transformed join expression to take into - account the tables of the left_op node. + If the transformed nested join node node is a natural join node like in + the following query + SELECT * FROM t1 JOIN t2 LEFT JOIN t3 USING(a) (Q6) + the transformation additionally has to take care about setting proper + references in the field natural_join for both operands of the natural + join operation. + + The queries that combine comma syntax for join operation with + JOIN expression require a special care. Consider the query + SELECT * FROM t1, t2 JOIN t3 LEFT JOIN t4 ON t3.a=t4.a (Q7) + This query is equivalent to the query + SELECT * FROM (t1, t2) JOIN t3 LEFT JOIN t4 ON t3.a=t4.a + The latter is transformed in the same way as query Q1 + + J LJ - ON + / \ / \ + (t1,t2) LJ - ON => J t4 + / \ / \ + t3 t4 (t1,t2) t3 + + A transformation similar to the transformation for Q3 is done for + the following query with RIGHT JOIN + SELECT * FROM t1, t2 JOIN t3 RIGHT JOIN t4 ON t3.a=t4.a (Q8) + + J LJ - ON + / \ / \ + t3 LJ - ON => t4 J + / \ / \ + t4 (t1,t2) (t1,t2) t3 + + The function also has to change the name resolution context for ON + expressions used in the transformed join expression to take into + account the tables of the left_op node. + + TODO: + A more elegant solution would be to implement the transformation that + eliminates nests for cross join operations. For Q7 it would work like this: + + J LJ - ON + / \ / \ + (t1,t2) LJ - ON => (t1,t2,t3) t4 + / \ + t3 t4 + + For Q8 with RIGHT JOIN the transformation would work similarly: + + J LJ - ON + / \ / \ + t3 LJ - ON => t4 (t1,t2,t3) + / \ + t4 (t1,t2) + */ bool st_select_lex::add_cross_joined_table(TABLE_LIST *left_op, @@ -8446,7 +8471,11 @@ } TABLE_LIST *tbl; - List *jl= &right_op->nested_join->join_list; + List *right_op_jl= right_op->join_list; + IF_DBUG(const TABLE_LIST *r_tbl=,) right_op_jl->pop(); + DBUG_ASSERT(right_op == r_tbl); + IF_DBUG(const TABLE_LIST *l_tbl=,) right_op_jl->pop(); + DBUG_ASSERT(left_op == l_tbl); TABLE_LIST *cj_nest; /* @@ -8463,6 +8492,8 @@ List *cjl= &cj_nest->nested_join->join_list; cjl->empty(); + List *jl= &right_op->nested_join->join_list; + DBUG_ASSERT(jl->elements == 2); /* Look for the left most node tbl of the right_op tree */ for ( ; ; ) { @@ -8535,6 +8566,8 @@ create a new top level nested join node. */ right_op->nested_join->nest_type|= REBALANCED_NEST; + if (unlikely(right_op_jl->push_front(right_op))) + DBUG_RETURN(true); DBUG_RETURN(false); } @@ -10153,3 +10186,14 @@ } return cs; } + +void LEX::mark_first_table_as_inserting() +{ + TABLE_LIST *t= select_lex.table_list.first; + DBUG_ENTER("Query_tables_list::mark_tables_with_important_flags"); + DBUG_ASSERT(sql_command_flags[sql_command] & CF_INSERTS_DATA); + t->for_insert_data= TRUE; + DBUG_PRINT("info", ("table_list: %p name: %s db: %s command: %u", + t, t->table_name.str,t->db.str, sql_command)); + DBUG_VOID_RETURN; +} diff -Nru mariadb-10.3-10.3.17/sql/sql_partition_admin.cc mariadb-10.3-10.3.20/sql/sql_partition_admin.cc --- mariadb-10.3-10.3.17/sql/sql_partition_admin.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_partition_admin.cc 2019-11-06 16:01:57.000000000 +0000 @@ -61,7 +61,7 @@ referenced from this structure will be modified. @todo move these into constructor... */ - HA_CREATE_INFO create_info(lex->create_info); + IF_DBUG(HA_CREATE_INFO create_info(lex->create_info);,) Alter_info alter_info(lex->alter_info, thd->mem_root); ulong priv_needed= ALTER_ACL | DROP_ACL | INSERT_ACL | CREATE_ACL; diff -Nru mariadb-10.3-10.3.17/sql/sql_partition.cc mariadb-10.3-10.3.20/sql/sql_partition.cc --- mariadb-10.3-10.3.17/sql/sql_partition.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_partition.cc 2019-11-06 16:01:57.000000000 +0000 @@ -146,7 +146,7 @@ item= item->safe_charset_converter(thd, cs); context->table_list= NULL; thd->where= "convert character set partition constant"; - if (item->fix_fields_if_needed(thd, (Item**)NULL)) + if (item && item->fix_fields_if_needed(thd, (Item**)NULL)) item= NULL; thd->where= save_where; context->table_list= save_list; @@ -1563,7 +1563,7 @@ return 0; part_info->range_int_array= - (longlong*) thd->alloc(hist_parts * sizeof(longlong)); + (longlong*) thd->alloc(part_info->num_parts * sizeof(longlong)); MYSQL_TIME ltime; List_iterator it(part_info->partitions); @@ -1582,6 +1582,9 @@ if (vers_info->hist_part->range_value <= thd->query_start()) vers_info->hist_part= el; } + DBUG_ASSERT(el == vers_info->now_part); + el->max_value= true; + part_info->range_int_array[el->id]= el->range_value= LONGLONG_MAX; return 0; err: my_error(ER_DATA_OUT_OF_RANGE, MYF(0), "TIMESTAMP", "INTERVAL"); @@ -1975,7 +1978,6 @@ } } DBUG_ASSERT(part_info->part_type != NOT_A_PARTITION); - DBUG_ASSERT(part_info->part_type != VERSIONING_PARTITION || part_info->column_list); /* Partition is defined. We need to verify that partitioning function is correct. @@ -2008,15 +2010,15 @@ { if (part_info->column_list) { - if (part_info->part_type == VERSIONING_PARTITION && - part_info->vers_setup_expression(thd)) - goto end; List_iterator it(part_info->part_field_list); if (unlikely(handle_list_of_fields(thd, it, table, part_info, FALSE))) goto end; } else { + if (part_info->part_type == VERSIONING_PARTITION && + part_info->vers_setup_expression(thd)) + goto end; if (unlikely(fix_fields_part_func(thd, part_info->part_expr, table, FALSE, is_create_table_ind))) goto end; @@ -2032,7 +2034,8 @@ goto end; } if (unlikely(!part_info->column_list && - part_info->part_expr->result_type() != INT_RESULT)) + part_info->part_expr->result_type() != INT_RESULT && + part_info->part_expr->result_type() != DECIMAL_RESULT)) { part_info->report_part_expr_error(FALSE); goto end; @@ -2541,7 +2544,7 @@ } else if (part_info->part_type == VERSIONING_PARTITION) { - switch (p_elem->type()) + switch (p_elem->type) { case partition_element::CURRENT: err+= str->append(STRING_WITH_LEN(" CURRENT")); @@ -4791,6 +4794,69 @@ } +/** + Check if the ALTER command tries to change DATA DIRECTORY + or INDEX DIRECTORY for its partitions and warn if so. + @param thd THD + @param part_elem partition_element to check + */ +static void warn_if_datadir_altered(THD *thd, + const partition_element *part_elem) +{ + DBUG_ASSERT(part_elem); + + if (part_elem->engine_type && + part_elem->engine_type->db_type != DB_TYPE_INNODB) + return; + + if (part_elem->data_file_name) + { + push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, + WARN_INNODB_PARTITION_OPTION_IGNORED, + ER(WARN_INNODB_PARTITION_OPTION_IGNORED), + "DATA DIRECTORY"); + } + if (part_elem->index_file_name) + { + push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, + WARN_INNODB_PARTITION_OPTION_IGNORED, + ER(WARN_INNODB_PARTITION_OPTION_IGNORED), + "INDEX DIRECTORY"); + } +} + + +/** + Currently changing DATA DIRECTORY and INDEX DIRECTORY for InnoDB partitions is + not possible. This function checks it and warns on that case. + @param thd THD + @param tab_part_info old partition info + @param alt_part_info new partition info + */ +static void check_datadir_altered_for_innodb(THD *thd, + partition_info *tab_part_info, + partition_info *alt_part_info) +{ + if (tab_part_info->default_engine_type->db_type != DB_TYPE_INNODB) + return; + + for (List_iterator_fast it(alt_part_info->partitions); + partition_element *part_elem= it++;) + { + if (alt_part_info->is_sub_partitioned()) + { + for (List_iterator_fast it2(part_elem->subpartitions); + const partition_element *sub_part_elem= it2++;) + { + warn_if_datadir_altered(thd, sub_part_elem); + } + } + else + warn_if_datadir_altered(thd, part_elem); + } +} + + /* Prepare for ALTER TABLE of partition structure @@ -5321,7 +5387,7 @@ partition_element *el; while ((el= it++)) { - if (el->type() == partition_element::CURRENT) + if (el->type == partition_element::CURRENT) { it.remove(); now_part= el; @@ -5417,7 +5483,7 @@ { if (tab_part_info->part_type == VERSIONING_PARTITION) { - if (part_elem->type() == partition_element::CURRENT) + if (part_elem->type == partition_element::CURRENT) { my_error(ER_VERS_WRONG_PARTS, MYF(0), table->s->table_name.str); goto err; @@ -5626,6 +5692,8 @@ { goto err; } + check_datadir_altered_for_innodb(thd, tab_part_info, alt_part_info); + /* Online handling: REORGANIZE PARTITION: @@ -7671,6 +7739,10 @@ partitioning */ switch (part_info->part_type) { + case VERSIONING_PARTITION: + if (!part_info->vers_info->interval.is_set()) + break; + /* Fall through */ case RANGE_PARTITION: case LIST_PARTITION: if (!part_info->column_list) @@ -8107,7 +8179,8 @@ part_iter->ret_null_part= part_iter->ret_null_part_orig= FALSE; part_iter->ret_default_part= part_iter->ret_default_part_orig= FALSE; - if (part_info->part_type == RANGE_PARTITION) + if (part_info->part_type == RANGE_PARTITION || + part_info->part_type == VERSIONING_PARTITION) { if (part_info->part_charset_field_array) get_endpoint= get_partition_id_range_for_endpoint_charset; diff -Nru mariadb-10.3-10.3.17/sql/sql_prepare.cc mariadb-10.3-10.3.20/sql/sql_prepare.cc --- mariadb-10.3-10.3.17/sql/sql_prepare.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_prepare.cc 2019-11-06 16:01:57.000000000 +0000 @@ -3274,7 +3274,7 @@ /* Query text for binary, general or slow log, if any of them is open */ String expanded_query; DBUG_ENTER("mysql_sql_stmt_execute"); - DBUG_PRINT("info", ("EXECUTE: %.*s\n", (int) name->length, name->str)); + DBUG_PRINT("info", ("EXECUTE: %.*s", (int) name->length, name->str)); if (!(stmt= (Prepared_statement*) thd->stmt_map.find_by_name(name))) { @@ -3512,7 +3512,7 @@ { Prepared_statement* stmt; LEX_CSTRING *name= &thd->lex->prepared_stmt_name; - DBUG_PRINT("info", ("DEALLOCATE PREPARE: %.*s\n", (int) name->length, + DBUG_PRINT("info", ("DEALLOCATE PREPARE: %.*s", (int) name->length, name->str)); if (! (stmt= (Prepared_statement*) thd->stmt_map.find_by_name(name))) diff -Nru mariadb-10.3-10.3.17/sql/sql_repl.cc mariadb-10.3-10.3.20/sql/sql_repl.cc --- mariadb-10.3-10.3.17/sql/sql_repl.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_repl.cc 2019-11-06 16:01:57.000000000 +0000 @@ -427,16 +427,27 @@ /** Internal to mysql_binlog_send() routine that recalculates checksum for - a FD event (asserted) that needs additional arranment prior sending to slave. + 1. FD event (asserted) that needs additional arranment prior sending to slave. + 2. Start_encryption_log_event whose Ignored flag is set +TODO DBUG_ASSERT can be removed if this function is used for more general cases */ -inline void fix_checksum(String *packet, ulong ev_offset) + +inline void fix_checksum(enum_binlog_checksum_alg checksum_alg, String *packet, + ulong ev_offset) { + if (checksum_alg == BINLOG_CHECKSUM_ALG_OFF || + checksum_alg == BINLOG_CHECKSUM_ALG_UNDEF) + return; /* recalculate the crc for this event */ uint data_len = uint4korr(packet->ptr() + ev_offset + EVENT_LEN_OFFSET); ha_checksum crc; - DBUG_ASSERT(data_len == + DBUG_ASSERT((data_len == LOG_EVENT_MINIMAL_HEADER_LEN + FORMAT_DESCRIPTION_HEADER_LEN + - BINLOG_CHECKSUM_ALG_DESC_LEN + BINLOG_CHECKSUM_LEN); + BINLOG_CHECKSUM_ALG_DESC_LEN + BINLOG_CHECKSUM_LEN) || + (data_len == + LOG_EVENT_MINIMAL_HEADER_LEN + BINLOG_CRYPTO_SCHEME_LENGTH + + BINLOG_KEY_VERSION_LENGTH + BINLOG_NONCE_LENGTH + + BINLOG_CHECKSUM_LEN)); crc= my_checksum(0, (uchar *)packet->ptr() + ev_offset, data_len - BINLOG_CHECKSUM_LEN); int4store(packet->ptr() + ev_offset + data_len - BINLOG_CHECKSUM_LEN, crc); @@ -2169,6 +2180,7 @@ THD *thd= info->thd; String *packet= info->packet; Log_event_type event_type; + bool initial_log_pos= info->clear_initial_log_pos; DBUG_ENTER("send_format_descriptor_event"); /** @@ -2267,7 +2279,7 @@ (*packet)[FLAGS_OFFSET+ev_offset] &= ~LOG_EVENT_BINLOG_IN_USE_F; - if (info->clear_initial_log_pos) + if (initial_log_pos) { info->clear_initial_log_pos= false; /* @@ -2285,9 +2297,7 @@ ST_CREATED_OFFSET+ev_offset, (ulong) 0); /* fix the checksum due to latest changes in header */ - if (info->current_checksum_alg != BINLOG_CHECKSUM_ALG_OFF && - info->current_checksum_alg != BINLOG_CHECKSUM_ALG_UNDEF) - fix_checksum(packet, ev_offset); + fix_checksum(info->current_checksum_alg, packet, ev_offset); } else if (info->using_gtid_state) { @@ -2308,9 +2318,7 @@ { int4store((char*) packet->ptr()+LOG_EVENT_MINIMAL_HEADER_LEN+ ST_CREATED_OFFSET+ev_offset, (ulong) 0); - if (info->current_checksum_alg != BINLOG_CHECKSUM_ALG_OFF && - info->current_checksum_alg != BINLOG_CHECKSUM_ALG_UNDEF) - fix_checksum(packet, ev_offset); + fix_checksum(info->current_checksum_alg, packet, ev_offset); } } @@ -2323,12 +2331,16 @@ } /* - Read the following Start_encryption_log_event but don't send it to slave. - Slave doesn't need to know whether master's binlog is encrypted, - and if it'll want to encrypt its logs, it should generate its own - random nonce, not use the one from the master. + Read the following Start_encryption_log_event and send it to slave as + Ignorable_log_event. Although Slave doesn't need to know whether master's + binlog is encrypted but it needs to update slave log pos (for mysqlbinlog). + + If slave want to encrypt its logs, it should generate its own + random nonce, it should not use the one from the master. */ - packet->length(0); + /* reset transmit packet for the event read from binary log file */ + if (reset_transmit_packet(info, info->flags, &ev_offset, &info->errmsg)) + DBUG_RETURN(1); info->last_pos= linfo->pos; error= Log_event::read_log_event(log, packet, info->fdev, opt_master_verify_checksum @@ -2342,12 +2354,13 @@ DBUG_RETURN(1); } - event_type= (Log_event_type)((uchar)(*packet)[LOG_EVENT_OFFSET]); + event_type= (Log_event_type)((uchar)(*packet)[LOG_EVENT_OFFSET + ev_offset]); if (event_type == START_ENCRYPTION_EVENT) { Start_encryption_log_event *sele= (Start_encryption_log_event *) - Log_event::read_log_event(packet->ptr(), packet->length(), &info->errmsg, - info->fdev, BINLOG_CHECKSUM_ALG_OFF); + Log_event::read_log_event(packet->ptr() + ev_offset, packet->length() + - ev_offset, &info->errmsg, info->fdev, + BINLOG_CHECKSUM_ALG_OFF); if (!sele) { info->error= ER_MASTER_FATAL_ERROR_READING_BINLOG; @@ -2361,6 +2374,18 @@ delete sele; DBUG_RETURN(1); } + /* Make it Ignorable_log_event and send it */ + (*packet)[FLAGS_OFFSET+ev_offset] |= LOG_EVENT_IGNORABLE_F; + if (initial_log_pos) + int4store((char*) packet->ptr()+LOG_POS_OFFSET+ev_offset, (ulong) 0); + /* fix the checksum due to latest changes in header */ + fix_checksum(info->current_checksum_alg, packet, ev_offset); + if (my_net_write(info->net, (uchar*) packet->ptr(), packet->length())) + { + info->errmsg= "Failed on my_net_write()"; + info->error= ER_UNKNOWN_ERROR; + DBUG_RETURN(1); + } delete sele; } else if (start_pos == BIN_LOG_HEADER_SIZE) diff -Nru mariadb-10.3-10.3.17/sql/sql_select.cc mariadb-10.3-10.3.20/sql/sql_select.cc --- mariadb-10.3-10.3.17/sql/sql_select.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_select.cc 2019-11-06 16:01:57.000000000 +0000 @@ -100,10 +100,6 @@ static bool are_tables_local(JOIN_TAB *jtab, table_map used_tables); static bool create_ref_for_key(JOIN *join, JOIN_TAB *j, KEYUSE *org_keyuse, bool allow_full_scan, table_map used_tables); -void best_access_path(JOIN *join, JOIN_TAB *s, - table_map remaining_tables, uint idx, - bool disable_jbuf, double record_count, - POSITION *pos, POSITION *loose_scan_pos); static void optimize_straight_join(JOIN *join, table_map join_tables); static bool greedy_search(JOIN *join, table_map remaining_tables, uint depth, uint prune_level, @@ -2799,7 +2795,7 @@ distinct in the engine, so we do this for all queries, not only GROUP BY queries. */ - if (tables_list && !procedure) + if (tables_list && top_join_tab_count && !procedure) { /* At the moment we only support push down for queries where @@ -5088,6 +5084,13 @@ { if (choose_plan(join, all_table_map & ~join->const_table_map)) goto error; + +#ifdef HAVE_valgrind + // JOIN::positions holds the current query plan. We've already + // made the plan choice, so we should only use JOIN::best_positions + for (uint k=join->const_tables; k < join->table_count; k++) + MEM_UNDEFINED(&join->positions[k], sizeof(join->positions[k])); +#endif } else { @@ -6785,6 +6788,7 @@ best_access_path(JOIN *join, JOIN_TAB *s, table_map remaining_tables, + const POSITION *join_positions, uint idx, bool disable_jbuf, double record_count, @@ -6897,7 +6901,7 @@ if (!keyuse->val->maybe_null || keyuse->null_rejecting) notnull_part|=keyuse->keypart_map; - double tmp2= prev_record_reads(join->positions, idx, + double tmp2= prev_record_reads(join_positions, idx, (found_ref | keyuse->used_tables)); if (tmp2 < best_prev_record_reads) { @@ -6938,7 +6942,7 @@ Really, there should be records=0.0 (yes!) but 1.0 would be probably safer */ - tmp= prev_record_reads(join->positions, idx, found_ref); + tmp= prev_record_reads(join_positions, idx, found_ref); records= 1.0; } else @@ -6961,7 +6965,7 @@ (!(key_flags & HA_NULL_PART_KEY) || // (2) all_key_parts == notnull_part)) // (3) { - tmp = prev_record_reads(join->positions, idx, found_ref); + tmp = prev_record_reads(join_positions, idx, found_ref); records=1.0; } else @@ -7205,7 +7209,8 @@ } tmp= COST_ADD(tmp, s->startup_cost); - loose_scan_opt.check_ref_access_part2(key, start_key, records, tmp); + loose_scan_opt.check_ref_access_part2(key, start_key, records, tmp, + found_ref); } /* not ft_key */ if (tmp + 0.0001 < best_time - records/(double) TIME_FOR_COMPARE) @@ -7890,7 +7895,8 @@ for (JOIN_TAB **pos= join->best_ref + idx ; (s= *pos) ; pos++) { /* Find the best access method from 's' to the current partial plan */ - best_access_path(join, s, join_tables, idx, disable_jbuf, record_count, + best_access_path(join, s, join_tables, join->positions, idx, + disable_jbuf, record_count, join->positions + idx, &loose_scan_pos); /* compute the cost of the new plan extended with 's' */ @@ -8244,6 +8250,7 @@ record_count= COST_MULT(record_count, best_positions[i].records_read); read_time= COST_ADD(read_time, best_positions[i].read_time); } + /* TODO: Take into account condition selectivities here */ } *read_time_arg= read_time;// + record_count / TIME_FOR_COMPARE; *record_count_arg= record_count; @@ -8484,6 +8491,7 @@ KEYUSE *keyuse= pos->key; KEYUSE *prev_ref_keyuse= keyuse; uint key= keyuse->key; + bool used_range_selectivity= false; /* Check if we have a prefix of key=const that matches a quick select. @@ -8508,7 +8516,20 @@ } keyparts++; } + /* + Here we discount selectivity of the constant range CR. To calculate + this selectivity we use elements from the quick_rows[] array. + If we have indexes i1,...,ik with the same prefix compatible + with CR any of the estimate quick_rows[i1], ... quick_rows[ik] could + be used for this calculation but here we don't know which one was + actually used. So sel could be greater than 1 and we have to cap it. + However if sel becomes greater than 2 then with high probability + something went wrong. + */ sel /= (double)table->quick_rows[key] / (double) table->stat_records(); + DBUG_ASSERT(0 < sel && sel <= 2.0); + set_if_smaller(sel, 1.0); + used_range_selectivity= true; } } @@ -8544,16 +8565,18 @@ if (keyparts > keyuse->keypart) { /* Ok this is the keyuse that will be used for ref access */ - uint fldno; - if (is_hash_join_key_no(key)) - fldno= keyuse->keypart; - else - fldno= table->key_info[key].key_part[keyparts-1].fieldnr - 1; - if (keyuse->val->const_item()) + if (!used_range_selectivity && keyuse->val->const_item()) { + uint fldno; + if (is_hash_join_key_no(key)) + fldno= keyuse->keypart; + else + fldno= table->key_info[key].key_part[keyparts-1].fieldnr - 1; + if (table->field[fldno]->cond_selectivity > 0) { sel /= table->field[fldno]->cond_selectivity; + DBUG_ASSERT(0 < sel && sel <= 2.0); set_if_smaller(sel, 1.0); } /* @@ -8611,6 +8634,7 @@ if (field->cond_selectivity > 0) { sel/= field->cond_selectivity; + DBUG_ASSERT(0 < sel && sel <= 2.0); set_if_smaller(sel, 1.0); } break; @@ -8622,6 +8646,7 @@ sel*= table_multi_eq_cond_selectivity(join, idx, s, rem_tables, keyparts, ref_keyuse_steps); + DBUG_ASSERT(0.0 < sel && sel <= 1.0); return sel; } @@ -8805,8 +8830,8 @@ /* Find the best access method from 's' to the current partial plan */ POSITION loose_scan_pos; - best_access_path(join, s, remaining_tables, idx, disable_jbuf, - record_count, position, &loose_scan_pos); + best_access_path(join, s, remaining_tables, join->positions, idx, + disable_jbuf, record_count, position, &loose_scan_pos); /* Compute the cost of extending the plan with 's' */ current_record_count= COST_MULT(record_count, position->records_read); @@ -9192,11 +9217,11 @@ */ double -prev_record_reads(POSITION *positions, uint idx, table_map found_ref) +prev_record_reads(const POSITION *positions, uint idx, table_map found_ref) { double found=1.0; - POSITION *pos_end= positions - 1; - for (POSITION *pos= positions + idx - 1; pos != pos_end; pos--) + const POSITION *pos_end= positions - 1; + for (const POSITION *pos= positions + idx - 1; pos != pos_end; pos--) { if (pos->table->table->map & found_ref) { @@ -9218,7 +9243,10 @@ #max_nested_outer_joins=64-1) will not make it any more precise. */ if (pos->records_read) + { found= COST_MULT(found, pos->records_read); + found*= pos->cond_selectivity; + } } } return found; @@ -15959,7 +15987,8 @@ if ((i == first_tab && first_alt) || join->positions[i].use_join_buffer) { /* Find the best access method that would not use join buffering */ - best_access_path(join, rs, reopt_remaining_tables, i, + best_access_path(join, rs, reopt_remaining_tables, + join->positions, i, TRUE, rec_count, &pos, &loose_scan_pos); } @@ -15972,10 +16001,20 @@ reopt_remaining_tables &= ~rs->table->map; rec_count= COST_MULT(rec_count, pos.records_read); cost= COST_ADD(cost, pos.read_time); - - + cost= COST_ADD(cost, rec_count / (double) TIME_FOR_COMPARE); + //TODO: take into account join condition selectivity here + double pushdown_cond_selectivity= 1.0; + table_map real_table_bit= rs->table->map; + if (join->thd->variables.optimizer_use_condition_selectivity > 1) + { + pushdown_cond_selectivity= table_cond_selectivity(join, i, rs, + reopt_remaining_tables & + ~real_table_bit); + } + (*outer_rec_count) *= pushdown_cond_selectivity; if (!rs->emb_sj_nest) *outer_rec_count= COST_MULT(*outer_rec_count, pos.records_read); + } join->cur_sj_inner_tables= save_cur_sj_inner_tables; @@ -16909,9 +16948,9 @@ static Field *create_tmp_field_from_item(THD *thd, Item *item, TABLE *table, Item ***copy_func, bool modify_item) { - Field *UNINIT_VAR(new_field); DBUG_ASSERT(thd == table->in_use); - if ((new_field= item->create_tmp_field(false, table))) + Field* new_field= item->create_tmp_field(false, table); + if (new_field) create_tmp_field_from_item_finalize(thd, new_field, item, copy_func, modify_item); return new_field; diff -Nru mariadb-10.3-10.3.17/sql/sql_select.h mariadb-10.3-10.3.20/sql/sql_select.h --- mariadb-10.3-10.3.17/sql/sql_select.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_select.h 2019-11-06 16:01:57.000000000 +0000 @@ -838,6 +838,7 @@ friend void best_access_path(JOIN *join, JOIN_TAB *s, table_map remaining_tables, + const struct st_position *join_positions, uint idx, bool disable_jbuf, double record_count, @@ -866,7 +867,7 @@ void set_empty() { sjm_scan_need_tables= 0; - LINT_INIT_STRUCT(sjm_scan_last_inner); + sjm_scan_last_inner= 0; is_used= FALSE; } void set_from_prev(struct st_position *prev); @@ -2043,6 +2044,11 @@ } }; +void best_access_path(JOIN *join, JOIN_TAB *s, + table_map remaining_tables, + const POSITION *join_positions, uint idx, + bool disable_jbuf, double record_count, + POSITION *pos, POSITION *loose_scan_pos); bool cp_buffer_from_ref(THD *thd, TABLE *table, TABLE_REF *ref); bool error_if_full_join(JOIN *join); int report_error(TABLE *table, int error); @@ -2413,7 +2419,7 @@ ulonglong options); bool open_tmp_table(TABLE *table); void setup_tmp_table_column_bitmaps(TABLE *table, uchar *bitmaps); -double prev_record_reads(POSITION *positions, uint idx, table_map found_ref); +double prev_record_reads(const POSITION *positions, uint idx, table_map found_ref); void fix_list_after_tbl_changes(SELECT_LEX *new_parent, List *tlist); double get_tmp_table_lookup_cost(THD *thd, double row_count, uint row_size); double get_tmp_table_write_cost(THD *thd, double row_count, uint row_size); diff -Nru mariadb-10.3-10.3.17/sql/sql_show.cc mariadb-10.3-10.3.20/sql/sql_show.cc --- mariadb-10.3-10.3.17/sql/sql_show.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_show.cc 2019-11-06 16:01:57.000000000 +0000 @@ -2256,6 +2256,10 @@ packet->append(STRING_WITH_LEN(" STORED")); else packet->append(STRING_WITH_LEN(" VIRTUAL")); + if (field->invisible == INVISIBLE_USER) + { + packet->append(STRING_WITH_LEN(" INVISIBLE")); + } } else { @@ -2565,6 +2569,7 @@ return &merge; default: DBUG_ASSERT(0); // never should happen + /* fall through */ case VIEW_ALGORITHM_UNDEFINED: return &undefined; } @@ -2941,8 +2946,12 @@ else protocol->store_null(); protocol->store(thd_info->state_info, system_charset_info); - protocol->store(thd_info->query_string.str(), - thd_info->query_string.charset()); + if (thd_info->query_string.length()) + protocol->store(thd_info->query_string.str(), + thd_info->query_string.length(), + thd_info->query_string.charset()); + else + protocol->store_null(); if (!thd->variables.old_mode && !(thd->variables.old_behavior & OLD_MODE_NO_PROGRESS_INFO)) protocol->store(thd_info->progress, 3, &store_buffer); @@ -4609,10 +4618,7 @@ } DBUG_ASSERT(thd->lex == lex); - thd->force_read_stats= get_schema_table_idx(schema_table) == SCH_STATISTICS; result= open_tables_only_view_structure(thd, table_list, can_deadlock); - (void) read_statistics_for_tables_if_needed(thd, table_list); - thd->force_read_stats= false; DEBUG_SYNC(thd, "after_open_table_ignore_flush"); @@ -6602,6 +6608,7 @@ KEY *key_info=show_table->s->key_info; if (show_table->file) { + (void) read_statistics_for_tables(thd, tables); show_table->file->info(HA_STATUS_VARIABLE | HA_STATUS_NO_LOCK | HA_STATUS_TIME); @@ -8270,8 +8277,7 @@ item->maybe_null= (fields_info->field_flags & MY_I_S_MAYBE_NULL); field_count++; } - TMP_TABLE_PARAM *tmp_table_param = - (TMP_TABLE_PARAM*) (thd->alloc(sizeof(TMP_TABLE_PARAM))); + TMP_TABLE_PARAM *tmp_table_param = new (thd->mem_root) TMP_TABLE_PARAM; tmp_table_param->init(); tmp_table_param->table_charset= cs; tmp_table_param->field_count= field_count; @@ -8850,6 +8856,7 @@ cond= tab->cache_select->cond; } + Switch_to_definer_security_ctx backup_ctx(thd, table_list); if (table_list->schema_table->fill_table(thd, table_list, cond)) { result= 1; diff -Nru mariadb-10.3-10.3.17/sql/sql_statistics.cc mariadb-10.3-10.3.20/sql/sql_statistics.cc --- mariadb-10.3-10.3.17/sql/sql_statistics.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_statistics.cc 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,5 @@ /* Copyright (C) 2009 MySQL AB + Copyright (c) 2019, MariaDB Corporation. 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 @@ -253,10 +254,8 @@ Open all statistical tables and lock them */ -static -inline int open_stat_tables(THD *thd, TABLE_LIST *tables, - Open_tables_backup *backup, - bool for_write) +static int open_stat_tables(THD *thd, TABLE_LIST *tables, + Open_tables_backup *backup, bool for_write) { int rc; @@ -264,12 +263,14 @@ thd->push_internal_handler(&deh); init_table_list_for_stat_tables(tables, for_write); init_mdl_requests(tables); + thd->in_sub_stmt|= SUB_STMT_STAT_TABLES; rc= open_system_tables_for_read(thd, tables, backup); + thd->in_sub_stmt&= ~SUB_STMT_STAT_TABLES; thd->pop_internal_handler(); /* If the number of tables changes, we should revise the check below. */ - DBUG_ASSERT(STATISTICS_TABLES == 3); + compile_time_assert(STATISTICS_TABLES == 3); if (!rc && (stat_table_intact.check(tables[TABLE_STAT].table, &table_stat_def) || @@ -1042,7 +1043,9 @@ { char buff[MAX_FIELD_WIDTH]; String val(buff, sizeof(buff), &my_charset_bin); + my_bitmap_map *old_map; + old_map= dbug_tmp_use_all_columns(stat_table, stat_table->read_set); for (uint i= COLUMN_STAT_MIN_VALUE; i <= COLUMN_STAT_HISTOGRAM; i++) { Field *stat_field= stat_table->field[i]; @@ -1100,6 +1103,7 @@ } } } + dbug_tmp_restore_column_map(stat_table->read_set, old_map); } @@ -1808,16 +1812,13 @@ bool is_partial_fields_present; Index_prefix_calc(THD *thd, TABLE *table, KEY *key_info) - : index_table(table), index_info(key_info) + : index_table(table), index_info(key_info), prefixes(0), empty(true), + calc_state(NULL), is_single_comp_pk(false), is_partial_fields_present(false) { uint i; Prefix_calc_state *state; uint key_parts= table->actual_n_key_parts(key_info); - empty= TRUE; - prefixes= 0; - LINT_INIT_STRUCT(calc_state); - is_partial_fields_present= is_single_comp_pk= FALSE; uint pk= table->s->primary_key; if ((uint) (table->key_info - key_info) == pk && table->key_info[pk].user_defined_key_parts == 1) @@ -1976,7 +1977,7 @@ my_ptrdiff_t diff= record-table->record[0]; if (!bitmap_is_set(table->read_set, table_field->field_index)) continue; - if (!(fld= table_field->clone(&table->mem_root, table, diff, TRUE))) + if (!(fld= table_field->clone(&table->mem_root, table, diff))) continue; if (i == 0) table_field->collected_stats->min_value= fld; @@ -2043,7 +2044,7 @@ Field *fld; Field *table_field= *field_ptr; my_ptrdiff_t diff= record - table_share->default_values; - if (!(fld= table_field->clone(&stats_cb->mem_root, diff))) + if (!(fld= table_field->clone(&stats_cb->mem_root, NULL, diff))) continue; if (i == 0) table_field->read_stats->min_value= fld; @@ -2117,7 +2118,12 @@ Histogram_type hist_type= (Histogram_type) (thd->variables.histogram_type); uchar *histogram= NULL; if (hist_size > 0) - histogram= (uchar *) alloc_root(&table->mem_root, hist_size * columns); + { + if ((histogram= (uchar *) alloc_root(&table->mem_root, + hist_size * columns))) + bzero(histogram, hist_size * columns); + + } if (!table_stats || !column_stats || !index_stats || !idx_avg_frequency || (hist_size && !histogram)) @@ -2164,54 +2170,6 @@ /** - @brief - Check whether any persistent statistics for the processed command is needed - - @param - thd The thread handle - - @details - The function checks whether any persitent statistics for the processed - command is needed to be read. - - @retval - TRUE statistics is needed to be read - @retval - FALSE Otherwise -*/ - -static -inline bool statistics_for_command_is_needed(THD *thd) -{ - if (thd->bootstrap || thd->variables.use_stat_tables == NEVER) - return FALSE; - - if (thd->force_read_stats) - return TRUE; - - switch(thd->lex->sql_command) { - case SQLCOM_SELECT: - case SQLCOM_INSERT: - case SQLCOM_INSERT_SELECT: - case SQLCOM_UPDATE: - case SQLCOM_UPDATE_MULTI: - case SQLCOM_DELETE: - case SQLCOM_DELETE_MULTI: - case SQLCOM_REPLACE: - case SQLCOM_REPLACE_SELECT: - case SQLCOM_CREATE_TABLE: - case SQLCOM_SET_OPTION: - case SQLCOM_DO: - break; - default: - return FALSE; - } - - return TRUE; -} - - -/** @brief Allocate memory for the statistical data used by a table share @@ -2219,8 +2177,6 @@ thd Thread handler @param table_share Table share for which the memory for statistical data is allocated - @param - is_safe TRUE <-> at any time only one thread can perform the function @note The function allocates the memory for the statistical data on a table in the @@ -2229,8 +2185,6 @@ mysql.index_stats. The memory is allocated for the statistics on the table, on the tables's columns, and on the table's indexes. The memory is allocated in the table_share's mem_root. - If the parameter is_safe is TRUE then it is guaranteed that at any given time - only one thread is executed the code of the function. @retval 0 If the memory for all statistical data has been successfully allocated @@ -2249,16 +2203,10 @@ Here the second and the third threads try to allocate the memory for statistical data at the same time. The precautions are taken to guarantee the correctness of the allocation. - - @note - Currently the function always is called with the parameter is_safe set - to FALSE. */ -int alloc_statistics_for_table_share(THD* thd, TABLE_SHARE *table_share, - bool is_safe) +static int alloc_statistics_for_table_share(THD* thd, TABLE_SHARE *table_share) { - Field **field_ptr; KEY *key_info, *end; TABLE_STATISTICS_CB *stats_cb= &table_share->stats_cb; @@ -2268,16 +2216,11 @@ DEBUG_SYNC(thd, "statistics_mem_alloc_start1"); DEBUG_SYNC(thd, "statistics_mem_alloc_start2"); - if (!statistics_for_command_is_needed(thd)) - DBUG_RETURN(1); - - if (!is_safe) - mysql_mutex_lock(&table_share->LOCK_share); + mysql_mutex_lock(&table_share->LOCK_share); if (stats_cb->stats_can_be_read) { - if (!is_safe) - mysql_mutex_unlock(&table_share->LOCK_share); + mysql_mutex_unlock(&table_share->LOCK_share); DBUG_RETURN(0); } @@ -2288,8 +2231,7 @@ sizeof(Table_statistics)); if (!table_stats) { - if (!is_safe) - mysql_mutex_unlock(&table_share->LOCK_share); + mysql_mutex_unlock(&table_share->LOCK_share); DBUG_RETURN(1); } memset(table_stats, 0, sizeof(Table_statistics)); @@ -2361,8 +2303,7 @@ if (column_stats && index_stats && idx_avg_frequency) stats_cb->stats_can_be_read= TRUE; - if (!is_safe) - mysql_mutex_unlock(&table_share->LOCK_share); + mysql_mutex_unlock(&table_share->LOCK_share); DBUG_RETURN(0); } @@ -2982,9 +2923,13 @@ KEY *key_info, *key_info_end; TABLE_SHARE *table_share= table->s; Table_statistics *read_stats= table_share->stats_cb.table_stats; + enum_check_fields old_check_level= thd->count_cuted_fields; DBUG_ENTER("read_statistics_for_table"); + /* Don't write warnings for internal field conversions */ + thd->count_cuted_fields= CHECK_FIELD_IGNORE; + /* Read statistics from the statistical table table_stats */ stat_table= stat_tables[TABLE_STAT].table; Table_stat table_stat(stat_table, table); @@ -3065,6 +3010,7 @@ } table->stats_is_read= TRUE; + thd->count_cuted_fields= old_check_level; DBUG_RETURN(0); } @@ -3127,9 +3073,6 @@ { if (!tables) return FALSE; - - if (!statistics_for_command_is_needed(thd)) - return FALSE; /* Do not read statistics for any query that explicity involves @@ -3262,10 +3205,64 @@ int read_statistics_for_tables_if_needed(THD *thd, TABLE_LIST *tables) { + switch (thd->lex->sql_command) { + case SQLCOM_SELECT: + case SQLCOM_INSERT: + case SQLCOM_INSERT_SELECT: + case SQLCOM_UPDATE: + case SQLCOM_UPDATE_MULTI: + case SQLCOM_DELETE: + case SQLCOM_DELETE_MULTI: + case SQLCOM_REPLACE: + case SQLCOM_REPLACE_SELECT: + case SQLCOM_CREATE_TABLE: + case SQLCOM_SET_OPTION: + case SQLCOM_DO: + return read_statistics_for_tables(thd, tables); + default: + return 0; + } +} + + +int read_statistics_for_tables(THD *thd, TABLE_LIST *tables) +{ TABLE_LIST stat_tables[STATISTICS_TABLES]; Open_tables_backup open_tables_backup; - DBUG_ENTER("read_statistics_for_tables_if_needed"); + DBUG_ENTER("read_statistics_for_tables"); + + if (thd->bootstrap || thd->variables.use_stat_tables == NEVER) + DBUG_RETURN(0); + + for (TABLE_LIST *tl= tables; tl; tl= tl->next_global) + { + if (tl->table) + { + TABLE_SHARE *table_share= tl->table->s; + if (table_share && table_share->table_category == TABLE_CATEGORY_USER && + table_share->tmp_table == NO_TMP_TABLE) + { + if (table_share->stats_cb.stats_can_be_read || + !alloc_statistics_for_table_share(thd, table_share)) + { + if (table_share->stats_cb.stats_can_be_read) + { + KEY *key_info= table_share->key_info; + KEY *key_info_end= key_info + table_share->keys; + KEY *table_key_info= tl->table->key_info; + for ( ; key_info < key_info_end; key_info++, table_key_info++) + table_key_info->read_stats= key_info->read_stats; + Field **field_ptr= table_share->field; + Field **table_field_ptr= tl->table->field; + for ( ; *field_ptr; field_ptr++, table_field_ptr++) + (*table_field_ptr)->read_stats= (*field_ptr)->read_stats; + tl->table->stats_is_read= table_share->stats_cb.stats_is_read; + } + } + } + } + } DEBUG_SYNC(thd, "statistics_read_start"); @@ -3273,10 +3270,7 @@ DBUG_RETURN(0); if (open_stat_tables(thd, stat_tables, &open_tables_backup, FALSE)) - { - thd->clear_error(); DBUG_RETURN(1); - } for (TABLE_LIST *tl= tables; tl; tl= tl->next_global) { diff -Nru mariadb-10.3-10.3.17/sql/sql_statistics.h mariadb-10.3-10.3.20/sql/sql_statistics.h --- mariadb-10.3-10.3.17/sql/sql_statistics.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_statistics.h 2019-11-06 16:01:57.000000000 +0000 @@ -89,9 +89,8 @@ } int read_statistics_for_tables_if_needed(THD *thd, TABLE_LIST *tables); +int read_statistics_for_tables(THD *thd, TABLE_LIST *tables); int collect_statistics_for_table(THD *thd, TABLE *table); -int alloc_statistics_for_table_share(THD* thd, TABLE_SHARE *share, - bool is_safe); void delete_stat_values_for_table_share(TABLE_SHARE *table_share); int alloc_statistics_for_table(THD *thd, TABLE *table); int update_statistics_for_table(THD *thd, TABLE *table); diff -Nru mariadb-10.3-10.3.17/sql/sql_string.h mariadb-10.3-10.3.20/sql/sql_string.h --- mariadb-10.3-10.3.17/sql/sql_string.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_string.h 2019-11-06 16:01:57.000000000 +0000 @@ -232,6 +232,11 @@ return skr; } + size_t lengthsp() const + { + return str_charset->cset->lengthsp(str_charset, Ptr, str_length); + } + void set(String &str,size_t offset,size_t arg_length) { DBUG_ASSERT(&str != this); diff -Nru mariadb-10.3-10.3.17/sql/sql_table.cc mariadb-10.3-10.3.20/sql/sql_table.cc --- mariadb-10.3-10.3.17/sql/sql_table.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_table.cc 2019-11-06 16:01:57.000000000 +0000 @@ -66,7 +66,7 @@ static int check_if_keyname_exists(const char *name,KEY *start, KEY *end); static char *make_unique_key_name(THD *thd, const char *field_name, KEY *start, KEY *end); -static void make_unique_constraint_name(THD *thd, LEX_CSTRING *name, +static bool make_unique_constraint_name(THD *thd, LEX_CSTRING *name, List *vcol, uint *nr); static const @@ -83,6 +83,8 @@ static int mysql_prepare_create_table(THD *, HA_CREATE_INFO *, Alter_info *, uint *, handler *, KEY **, uint *, int); static uint blob_length_by_type(enum_field_types type); +static bool fix_constraints_names(THD *thd, List + *check_constraint_list); /** @brief Helper function for explain_filename @@ -1991,7 +1993,7 @@ errcode= query_error_code(thd, TRUE); error= thd->binlog_query(THD::STMT_QUERY_TYPE, query, query_length, is_trans, FALSE, FALSE, - errcode); + errcode) > 0; thd_proc_info(thd, 0); } return error; @@ -2403,35 +2405,6 @@ /* remove .frm file and engine files */ path_length= build_table_filename(path, sizeof(path) - 1, db.str, alias.str, reg_ext, 0); - - /* - This handles the case where a "DROP" was executed and a regular - table "may be" dropped as drop_temporary is FALSE and error is - TRUE. If the error was FALSE a temporary table was dropped and - regardless of the status of drop_temporary a "DROP TEMPORARY" - must be used. - */ - if (!dont_log_query) - { - /* - Note that unless if_exists is TRUE or a temporary table was deleted, - there is no means to know if the statement should be written to the - binary log. See further information on this variable in what follows. - */ - non_tmp_table_deleted= (if_exists ? TRUE : non_tmp_table_deleted); - /* - Don't write the database name if it is the current one (or if - thd->db is NULL). - */ - if (thd->db.str == NULL || cmp(&db, &thd->db) != 0) - { - append_identifier(thd, &built_query, &db); - built_query.append("."); - } - - append_identifier(thd, &built_query, &table->table_name); - built_query.append(","); - } } DEBUG_SYNC(thd, "rm_table_no_locks_before_delete_table"); error= 0; @@ -2462,6 +2435,13 @@ push_warning_printf(thd, Sql_condition::WARN_LEVEL_NOTE, err, ER_THD(thd, err), tbl_name.c_ptr_safe()); + + /* + Our job is done here. This statement was added to avoid executing + unnecessary code farther below which in some strange corner cases + caused the server to crash (see MDEV-17896). + */ + goto log_query; } else { @@ -2511,9 +2491,16 @@ // Remove extension for delete *(end= path + path_length - reg_ext_length)= '\0'; - error= ha_delete_table(thd, table_type, path, &db, &table->table_name, - !dont_log_query); - if (!error) + if ((error= ha_delete_table(thd, table_type, path, &db, &table->table_name, + !dont_log_query))) + { + if (thd->is_killed()) + { + error= -1; + goto err; + } + } + else { /* Delete the table definition file */ strmov(end,reg_ext); @@ -2557,7 +2544,7 @@ if (error) { if (wrong_tables.length()) - wrong_tables.append(','); + wrong_tables.append(','); wrong_tables.append(&db); wrong_tables.append('.'); wrong_tables.append(&table->table_name); @@ -2570,6 +2557,23 @@ mysql_audit_drop_table(thd, table); } +log_query: + if (!dont_log_query && !drop_temporary) + { + non_tmp_table_deleted= (if_exists ? TRUE : non_tmp_table_deleted); + /* + Don't write the database name if it is the current one (or if + thd->db is NULL). + */ + if (thd->db.str == NULL || cmp(&db, &thd->db) != 0) + { + append_identifier(thd, &built_query, &db); + built_query.append("."); + } + + append_identifier(thd, &built_query, &table->table_name); + built_query.append(","); + } DBUG_PRINT("table", ("table: %p s: %p", table->table, table->table ? table->table->s : NULL)); } @@ -2620,12 +2624,12 @@ #ifdef WITH_WSREP thd->wsrep_skip_wsrep_GTID = true; #endif /* WITH_WSREP */ - error |= thd->binlog_query(THD::STMT_QUERY_TYPE, - built_non_trans_tmp_query.ptr(), - built_non_trans_tmp_query.length(), - FALSE, FALSE, - is_drop_tmp_if_exists_added, - 0); + error |= (thd->binlog_query(THD::STMT_QUERY_TYPE, + built_non_trans_tmp_query.ptr(), + built_non_trans_tmp_query.length(), + FALSE, FALSE, + is_drop_tmp_if_exists_added, + 0) > 0); } if (trans_tmp_table_deleted) { @@ -2635,12 +2639,12 @@ #ifdef WITH_WSREP thd->wsrep_skip_wsrep_GTID = true; #endif /* WITH_WSREP */ - error |= thd->binlog_query(THD::STMT_QUERY_TYPE, - built_trans_tmp_query.ptr(), - built_trans_tmp_query.length(), - TRUE, FALSE, - is_drop_tmp_if_exists_added, - 0); + error |= (thd->binlog_query(THD::STMT_QUERY_TYPE, + built_trans_tmp_query.ptr(), + built_trans_tmp_query.length(), + TRUE, FALSE, + is_drop_tmp_if_exists_added, + 0) > 0); } if (non_tmp_table_deleted) { @@ -2652,11 +2656,11 @@ #ifdef WITH_WSREP thd->wsrep_skip_wsrep_GTID = false; #endif /* WITH_WSREP */ - error |= thd->binlog_query(THD::STMT_QUERY_TYPE, - built_query.ptr(), - built_query.length(), - TRUE, FALSE, FALSE, - error_code); + error |= (thd->binlog_query(THD::STMT_QUERY_TYPE, + built_query.ptr(), + built_query.length(), + TRUE, FALSE, FALSE, + error_code) > 0); } } } @@ -2742,7 +2746,7 @@ "failed CREATE OR REPLACE */")); error= thd->binlog_query(THD::STMT_QUERY_TYPE, query.ptr(), query.length(), - FALSE, FALSE, temporary_table, 0); + FALSE, FALSE, temporary_table, 0) > 0; DBUG_RETURN(error); } @@ -3671,6 +3675,17 @@ my_error(ER_WRONG_NAME_FOR_INDEX, MYF(0), key->name.str); DBUG_RETURN(TRUE); } + if (key->type == Key::PRIMARY && key->name.str && + my_strcasecmp(system_charset_info, key->name.str, primary_key_name) != 0) + { + bool sav_abort_on_warning= thd->abort_on_warning; + thd->abort_on_warning= FALSE; /* Don't make an error out of this. */ + push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, + ER_WRONG_NAME_FOR_INDEX, + "Name '%-.100s' ignored for PRIMARY key.", + key->name.str); + thd->abort_on_warning= sav_abort_on_warning; + } } tmp=file->max_keys(); if (*key_count > tmp) @@ -4060,16 +4075,16 @@ /* Use packed keys for long strings on the first column */ if (!((*db_options) & HA_OPTION_NO_PACK_KEYS) && !((create_info->table_options & HA_OPTION_NO_PACK_KEYS)) && - (key_part_length >= KEY_DEFAULT_PACK_LENGTH && - (sql_field->real_field_type() == MYSQL_TYPE_STRING || - sql_field->real_field_type() == MYSQL_TYPE_VARCHAR || - sql_field->pack_flag & FIELDFLAG_BLOB))) + (key_part_length >= KEY_DEFAULT_PACK_LENGTH && + (sql_field->real_field_type() == MYSQL_TYPE_STRING || + sql_field->real_field_type() == MYSQL_TYPE_VARCHAR || + f_is_blob(sql_field->pack_flag)))) { - if ((column_nr == 0 && (sql_field->pack_flag & FIELDFLAG_BLOB)) || + if ((column_nr == 0 && f_is_blob(sql_field->pack_flag)) || sql_field->real_field_type() == MYSQL_TYPE_VARCHAR) - key_info->flags|= HA_BINARY_PACK_KEY | HA_VAR_LENGTH_KEY; - else - key_info->flags|= HA_PACK_KEY; + key_info->flags|= HA_BINARY_PACK_KEY | HA_VAR_LENGTH_KEY; + else + key_info->flags|= HA_PACK_KEY; } /* Check if the key segment is partial, set the key flag accordingly */ if (key_part_length != sql_field->key_length) @@ -4215,15 +4230,13 @@ /* Check table level constraints */ create_info->check_constraint_list= &alter_info->check_constraint_list; { - uint nr= 1; List_iterator_fast c_it(alter_info->check_constraint_list); Virtual_column_info *check; while ((check= c_it++)) { - if (!check->name.length) - make_unique_constraint_name(thd, &check->name, - &alter_info->check_constraint_list, - &nr); + if (!check->name.length || check->automatic_name) + continue; + { /* Check that there's no repeating constraint names. */ List_iterator_fast @@ -4779,6 +4792,9 @@ DBUG_PRINT("enter", ("db: '%s' table: '%s' tmp: %d path: %s", db->str, table_name->str, internal_tmp_table, path)); + if (fix_constraints_names(thd, &alter_info->check_constraint_list)) + DBUG_RETURN(1); + if (thd->variables.sql_mode & MODE_NO_DIR_IN_CREATE) { if (create_info->data_file_name) @@ -5207,9 +5223,13 @@ } err: - /* In RBR we don't need to log CREATE TEMPORARY TABLE */ - if (thd->is_current_stmt_binlog_format_row() && create_info->tmp_table()) + /* In RBR or readonly server we don't need to log CREATE TEMPORARY TABLE */ + if (!result && create_info->tmp_table() && + (thd->is_current_stmt_binlog_format_row() || (opt_readonly && !thd->slave_thread))) + { + /* Note that table->s->table_creation_was_logged is not set! */ DBUG_RETURN(result); + } if (create_info->tmp_table()) thd->transaction.stmt.mark_created_temp_table(); @@ -5226,11 +5246,13 @@ */ thd->locked_tables_list.unlock_locked_table(thd, mdl_ticket); } - else if (likely(!result) && create_info->tmp_table() && create_info->table) + else if (likely(!result) && create_info->table) { /* - Remember that tmp table creation was logged so that we know if + Remember that table creation was logged so that we know if we should log a delete of it. + If create_info->table was not set, it's a normal table and + table_creation_was_logged will be set when the share is created. */ create_info->table->s->table_creation_was_logged= 1; } @@ -5303,7 +5325,7 @@ Make an unique name for constraints without a name */ -static void make_unique_constraint_name(THD *thd, LEX_CSTRING *name, +static bool make_unique_constraint_name(THD *thd, LEX_CSTRING *name, List *vcol, uint *nr) { @@ -5326,9 +5348,10 @@ { name->length= (size_t) (real_end - buff); name->str= thd->strmake(buff, name->length); - return; + return (name->str == NULL); } } + return FALSE; } /** @@ -5955,10 +5978,11 @@ from the list if existing found. RETURN VALUES - NONE + TRUE error + FALSE OK */ -static void +static bool handle_if_exists_options(THD *thd, TABLE *table, Alter_info *alter_info) { Field **f_ptr; @@ -6398,6 +6422,7 @@ Virtual_column_info *check; TABLE_SHARE *share= table->s; uint c; + while ((check=it++)) { if (!(check->flags & Alter_info::CHECK_CONSTRAINT_IF_NOT_EXISTS) && @@ -6425,10 +6450,44 @@ } } - DBUG_VOID_RETURN; + DBUG_RETURN(FALSE); } +static bool fix_constraints_names(THD *thd, List + *check_constraint_list) +{ + List_iterator it((*check_constraint_list)); + Virtual_column_info *check; + uint nr= 1; + DBUG_ENTER("fix_constraints_names"); + if (!check_constraint_list) + DBUG_RETURN(FALSE); + // Prevent accessing freed memory during generating unique names + while ((check=it++)) + { + if (check->automatic_name) + { + check->name.str= NULL; + check->name.length= 0; + } + } + it.rewind(); + // Generate unique names if needed + while ((check=it++)) + { + if (!check->name.length) + { + check->automatic_name= TRUE; + if (make_unique_constraint_name(thd, &check->name, + check_constraint_list, + &nr)) + DBUG_RETURN(TRUE); + } + } + DBUG_RETURN(FALSE); +} + /** Get Create_field object for newly created table by field index. @@ -6682,7 +6741,7 @@ } if (field->vcol_info->is_in_partitioning_expr() || - field->flags & PART_KEY_FLAG) + field->flags & PART_KEY_FLAG || field->stored_in_db()) { if (value_changes) ha_alter_info->handler_flags|= ALTER_COLUMN_VCOL; @@ -7822,6 +7881,7 @@ KEY *key_info=table->key_info; bool rc= TRUE; bool modified_primary_key= FALSE; + bool vers_system_invisible= false; Create_field *def; Field **f_ptr,*field; MY_BITMAP *dropped_fields= NULL; // if it's NULL - no dropped fields @@ -7930,7 +7990,11 @@ bitmap_set_bit(dropped_fields, field->field_index); continue; } - + if (field->invisible == INVISIBLE_SYSTEM && + field->flags & VERS_SYSTEM_FIELD) + { + vers_system_invisible= true; + } /* invisible versioning column is dropped automatically on DROP SYSTEM VERSIONING */ if (!drop && field->invisible >= INVISIBLE_SYSTEM && field->flags & VERS_SYSTEM_FIELD && @@ -8048,7 +8112,8 @@ dropped_sys_vers_fields &= VERS_SYSTEM_FIELD; if ((dropped_sys_vers_fields || alter_info->flags & ALTER_DROP_PERIOD) && - dropped_sys_vers_fields != VERS_SYSTEM_FIELD) + dropped_sys_vers_fields != VERS_SYSTEM_FIELD && + !vers_system_invisible) { StringBuffer tmp; append_drop_column(thd, dropped_sys_vers_fields & VERS_SYS_START_FLAG, @@ -8058,6 +8123,11 @@ my_error(ER_MISSING, MYF(0), table->s->table_name.str, tmp.c_ptr()); goto err; } + else if (alter_info->flags & ALTER_DROP_PERIOD && vers_system_invisible) + { + my_error(ER_CANT_DROP_FIELD_OR_KEY, MYF(0), "PERIOD FOR SYSTEM_TIME on", table->s->table_name.str); + goto err; + } alter_info->flags &= ~(ALTER_DROP_PERIOD | ALTER_ADD_PERIOD); def_it.rewind(); while ((def=def_it++)) // Add new columns @@ -8103,12 +8173,6 @@ alter_ctx->datetime_field= def; alter_ctx->error_if_not_empty= TRUE; } - if (def->flags & VERS_SYSTEM_FIELD && - !(alter_info->flags & ALTER_ADD_SYSTEM_VERSIONING)) - { - my_error(ER_VERS_NOT_VERSIONED, MYF(0), table->s->table_name.str); - goto err; - } if (!def->after.str) new_create_list.push_back(def, thd->mem_root); else @@ -8455,13 +8519,6 @@ } } - if (table->versioned() && !(alter_info->flags & ALTER_DROP_SYSTEM_VERSIONING) && - new_create_list.elements == VERSIONING_FIELDS) - { - my_error(ER_VERS_TABLE_MUST_HAVE_COLUMNS, MYF(0), table->s->table_name.str); - goto err; - } - if (!create_info->comment.str) { create_info->comment.str= table->s->comment.str; @@ -9414,7 +9471,10 @@ } } - handle_if_exists_options(thd, table, alter_info); + if (handle_if_exists_options(thd, table, alter_info) || + fix_constraints_names(thd, &alter_info->check_constraint_list)) + DBUG_RETURN(true); + /* Look if we have to do anything at all. @@ -9494,6 +9554,12 @@ DBUG_RETURN(true); } + if (create_info->vers_check_system_fields(thd, alter_info, + table->s->table_name, table->s->db)) + { + DBUG_RETURN(true); + } + set_table_default_charset(thd, create_info, &alter_ctx.db); if (!opt_explicit_defaults_for_timestamp) @@ -9760,7 +9826,7 @@ thd->count_cuted_fields= CHECK_FIELD_EXPRESSION; altered_table->reset_default_fields(); if (altered_table->default_field && - altered_table->update_default_fields(0, 1)) + altered_table->update_default_fields(true)) goto err_new_table_cleanup; thd->count_cuted_fields= CHECK_FIELD_IGNORE; @@ -10106,6 +10172,7 @@ (ulong) (copied + deleted), (ulong) deleted, (ulong) thd->get_stmt_da()->current_statement_warn_count()); my_ok(thd, copied + deleted, 0L, alter_ctx.tmp_buff); + DEBUG_SYNC(thd, "alter_table_inplace_trans_commit"); DBUG_RETURN(false); err_new_table_cleanup: @@ -10173,7 +10240,8 @@ tables and release the exclusive metadata lock. */ thd->locked_tables_list.unlink_all_closed_tables(thd, NULL, 0); - thd->mdl_context.release_all_locks_for_name(mdl_ticket); + if (!table_list->table) + thd->mdl_context.release_all_locks_for_name(mdl_ticket); DBUG_RETURN(true); } @@ -10206,12 +10274,14 @@ uint save_unsafe_rollback_flags; DBUG_ENTER("mysql_trans_commit_alter_copy_data"); - /* Save flags as transcommit_implicit_are_deleting_them */ + /* Save flags as trans_commit_implicit are deleting them */ save_unsafe_rollback_flags= thd->transaction.stmt.m_unsafe_rollback_flags; + DEBUG_SYNC(thd, "alter_table_copy_trans_commit"); + if (ha_enable_transaction(thd, TRUE)) DBUG_RETURN(TRUE); - + /* Ensure that the new table is saved properly to disk before installing the new .frm. @@ -10452,7 +10522,7 @@ prev_insert_id= to->file->next_insert_id; if (to->default_field) - to->update_default_fields(0, ignore); + to->update_default_fields(ignore); if (to->vfield) to->update_virtual_fields(to->file, VCOL_UPDATE_FOR_WRITE); @@ -10843,10 +10913,10 @@ { DBUG_ENTER("Sql_cmd_create_table::execute"); LEX *lex= thd->lex; - TABLE_LIST *all_tables= lex->query_tables; SELECT_LEX *select_lex= &lex->select_lex; TABLE_LIST *first_table= select_lex->table_list.first; - DBUG_ASSERT(first_table == all_tables && first_table != 0); + DBUG_ASSERT(first_table == lex->query_tables); + DBUG_ASSERT(first_table != 0); bool link_to_local; TABLE_LIST *create_table= first_table; TABLE_LIST *select_tables= lex->create_last_non_select_table->next_global; @@ -11108,7 +11178,9 @@ else { if (create_info.vers_fix_system_fields(thd, &alter_info, *create_table) || - create_info.vers_check_system_fields(thd, &alter_info, *create_table)) + create_info.vers_check_system_fields(thd, &alter_info, + create_table->table_name, + create_table->db)) goto end_with_restore_list; /* diff -Nru mariadb-10.3-10.3.17/sql/sql_tvc.cc mariadb-10.3-10.3.20/sql/sql_tvc.cc --- mariadb-10.3-10.3.17/sql/sql_tvc.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_tvc.cc 2019-11-06 16:01:57.000000000 +0000 @@ -972,7 +972,8 @@ if (args[1]->type() == Item::ROW_ITEM) values_count*= ((Item_row *)(args[1]))->cols(); - if (values_count < thd->variables.in_subquery_conversion_threshold) + if (thd->variables.in_subquery_conversion_threshold == 0 || + thd->variables.in_subquery_conversion_threshold > values_count) return false; return true; diff -Nru mariadb-10.3-10.3.17/sql/sql_type.cc mariadb-10.3-10.3.20/sql/sql_type.cc --- mariadb-10.3-10.3.17/sql/sql_type.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_type.cc 2019-11-06 16:01:57.000000000 +0000 @@ -3076,46 +3076,17 @@ /*************************************************************************/ -/** - MAX/MIN for the traditional numeric types preserve the exact data type - from Fields, but do not preserve the exact type from Items: - MAX(float_field) -> FLOAT - MAX(smallint_field) -> LONGLONG - MAX(COALESCE(float_field)) -> DOUBLE - MAX(COALESCE(smallint_field)) -> LONGLONG - QQ: Items should probably be fixed to preserve the exact type. -*/ -bool Type_handler_numeric:: - Item_sum_hybrid_fix_length_and_dec_numeric(Item_sum_hybrid *func, - const Type_handler *handler) - const -{ - Item *item= func->arguments()[0]; - Item *item2= item->real_item(); - func->Type_std_attributes::set(item); - /* MIN/MAX can return NULL for empty set indepedent of the used column */ - func->maybe_null= func->null_value= true; - if (item2->type() == Item::FIELD_ITEM) - func->set_handler(item2->type_handler()); - else - func->set_handler(handler); - return false; -} - - bool Type_handler_int_result:: Item_sum_hybrid_fix_length_and_dec(Item_sum_hybrid *func) const { - return Item_sum_hybrid_fix_length_and_dec_numeric(func, - &type_handler_longlong); + return func->fix_length_and_dec_numeric(&type_handler_longlong); } bool Type_handler_real_result:: Item_sum_hybrid_fix_length_and_dec(Item_sum_hybrid *func) const { - (void) Item_sum_hybrid_fix_length_and_dec_numeric(func, - &type_handler_double); + (void) func->fix_length_and_dec_numeric(&type_handler_double); func->max_length= func->float_length(func->decimals); return false; } @@ -3124,39 +3095,14 @@ bool Type_handler_decimal_result:: Item_sum_hybrid_fix_length_and_dec(Item_sum_hybrid *func) const { - return Item_sum_hybrid_fix_length_and_dec_numeric(func, - &type_handler_newdecimal); + return func->fix_length_and_dec_numeric(&type_handler_newdecimal); } -/** - MAX(str_field) converts ENUM/SET to CHAR, and preserve all other types - for Fields. - QQ: This works differently from UNION, which preserve the exact data - type for ENUM/SET if the joined ENUM/SET fields are equally defined. - Perhaps should be fixed. - MAX(str_item) chooses the best suitable string type. -*/ bool Type_handler_string_result:: Item_sum_hybrid_fix_length_and_dec(Item_sum_hybrid *func) const { - Item *item= func->arguments()[0]; - Item *item2= item->real_item(); - func->Type_std_attributes::set(item); - func->maybe_null= func->null_value= true; - if (item2->type() == Item::FIELD_ITEM) - { - // Fields: convert ENUM/SET to CHAR, preserve the type otherwise. - func->set_handler(item->type_handler()); - } - else - { - // Items: choose VARCHAR/BLOB/MEDIUMBLOB/LONGBLOB, depending on length. - func->set_handler(type_handler_varchar. - type_handler_adjusted_to_max_octet_length(func->max_length, - func->collation.collation)); - } - return false; + return func->fix_length_and_dec_string(); } @@ -3166,11 +3112,7 @@ bool Type_handler_temporal_result:: Item_sum_hybrid_fix_length_and_dec(Item_sum_hybrid *func) const { - Item *item= func->arguments()[0]; - func->Type_std_attributes::set(item); - func->maybe_null= func->null_value= true; - func->set_handler(item->type_handler()); - return false; + return func->fix_length_and_dec_generic(); } diff -Nru mariadb-10.3-10.3.17/sql/sql_type.h mariadb-10.3-10.3.20/sql/sql_type.h --- mariadb-10.3-10.3.17/sql/sql_type.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_type.h 2019-11-06 16:01:57.000000000 +0000 @@ -1742,10 +1742,6 @@ */ class Type_handler_numeric: public Type_handler { -protected: - bool Item_sum_hybrid_fix_length_and_dec_numeric(Item_sum_hybrid *func, - const Type_handler *handler) - const; public: String *print_item_value(THD *thd, Item *item, String *str) const; double Item_func_min_max_val_real(Item_func_min_max *) const; @@ -3506,10 +3502,6 @@ { return (m_type_handler= Type_handler::get_handler_by_result_type(type)); } - const Type_handler *set_handler_by_cmp_type(Item_result type) - { - return (m_type_handler= Type_handler::get_handler_by_cmp_type(type)); - } const Type_handler *set_handler_by_result_type(Item_result type, uint max_octet_length, CHARSET_INFO *cs) diff -Nru mariadb-10.3-10.3.17/sql/sql_union.cc mariadb-10.3-10.3.20/sql/sql_union.cc --- mariadb-10.3-10.3.17/sql/sql_union.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_union.cc 2019-11-06 16:01:57.000000000 +0000 @@ -1858,6 +1858,7 @@ DBUG_RETURN(FALSE); } } + columns_are_renamed= false; cleaned= 1; for (SELECT_LEX *sl= first_select(); sl; sl= sl->next_select()) diff -Nru mariadb-10.3-10.3.17/sql/sql_update.cc mariadb-10.3-10.3.20/sql/sql_update.cc --- mariadb-10.3-10.3.17/sql/sql_update.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_update.cc 2019-11-06 16:01:57.000000000 +0000 @@ -69,17 +69,20 @@ { DBUG_ASSERT(records_are_comparable(table)); - if ((table->file->ha_table_flags() & HA_PARTIAL_COLUMN_READ) != 0) + if (table->file->ha_table_flags() & HA_PARTIAL_COLUMN_READ || + table->s->has_update_default_function) { /* Storage engine may not have read all columns of the record. Fields (including NULL bits) not in the write_set may not have been read and can therefore not be compared. + Or ON UPDATE DEFAULT NOW() could've changed field values, including + NULL bits. */ for (Field **ptr= table->field ; *ptr != NULL; ptr++) { Field *field= *ptr; - if (bitmap_is_set(table->write_set, field->field_index)) + if (field->has_explicit_value() && !field->vcol_info) { if (field->real_maybe_null()) { @@ -111,8 +114,9 @@ /* Compare updated fields */ for (Field **ptr= table->field ; *ptr ; ptr++) { - if (bitmap_is_set(table->write_set, (*ptr)->field_index) && - (*ptr)->cmp_binary_offset(table->s->rec_buff_length)) + Field *field= *ptr; + if (field->has_explicit_value() && !field->vcol_info && + field->cmp_binary_offset(table->s->rec_buff_length)) return TRUE; } return FALSE; @@ -897,11 +901,6 @@ if (!can_compare_record || compare_record(table)) { - if (table->default_field && table->update_default_fields(1, ignore)) - { - error= 1; - break; - } if ((res= table_list->view_check_option(thd, ignore)) != VIEW_CHECK_OK) { @@ -1157,7 +1156,7 @@ if (thd->binlog_query(THD::ROW_QUERY_TYPE, thd->query(), thd->query_length(), - transactional_table, FALSE, FALSE, errcode)) + transactional_table, FALSE, FALSE, errcode) > 0) { error=1; // Rollback update } @@ -2379,10 +2378,6 @@ { int error; - if (table->default_field && - unlikely(table->update_default_fields(1, ignore))) - DBUG_RETURN(1); - if ((error= cur_table->view_check_option(thd, ignore)) != VIEW_CHECK_OK) { @@ -2699,6 +2694,10 @@ copy_field_ptr->to_field->set_has_explicit_value(); } + table->evaluate_update_default_function(); + if (table->vfield && + table->update_virtual_fields(table->file, VCOL_UPDATE_FOR_WRITE)) + goto err2; if (table->triggers && table->triggers->process_triggers(thd, TRG_EVENT_UPDATE, TRG_ACTION_BEFORE, TRUE)) @@ -2707,12 +2706,6 @@ if (!can_compare_record || compare_record(table)) { int error; - if (table->default_field && - (error= table->update_default_fields(1, ignore))) - goto err2; - if (table->vfield && - table->update_virtual_fields(table->file, VCOL_UPDATE_FOR_WRITE)) - goto err2; if ((error= cur_table->view_check_option(thd, ignore)) != VIEW_CHECK_OK) { @@ -2892,7 +2885,7 @@ if (thd->binlog_query(THD::ROW_QUERY_TYPE, thd->query(), thd->query_length(), transactional_tables, FALSE, - FALSE, errcode)) + FALSE, errcode) > 0) local_error= 1; // Rollback update thd->set_current_stmt_binlog_format(save_binlog_format); } diff -Nru mariadb-10.3-10.3.17/sql/sql_view.cc mariadb-10.3-10.3.20/sql/sql_view.cc --- mariadb-10.3-10.3.17/sql/sql_view.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_view.cc 2019-11-06 16:01:57.000000000 +0000 @@ -698,7 +698,7 @@ thd->reset_unsafe_warnings(); if (thd->binlog_query(THD::STMT_QUERY_TYPE, buff.ptr(), buff.length(), FALSE, FALSE, FALSE, - errcode)) + errcode) > 0) res= TRUE; } @@ -1490,6 +1490,7 @@ privileges of top_view */ tbl->grant.want_privilege= SELECT_ACL; + /* After unfolding the view we lose the list of tables referenced in it (we will have only a list of underlying tables in case of MERGE @@ -1540,6 +1541,18 @@ views with subqueries in select list. */ view_main_select_tables= lex->select_lex.table_list.first; + /* + Mergeable view can be used for inserting, so we move the flag down + */ + if (table->for_insert_data) + { + for (TABLE_LIST *t= view_main_select_tables; + t; + t= t->next_local) + { + t->for_insert_data= TRUE; + } + } /* Let us set proper lock type for tables of the view's main diff -Nru mariadb-10.3-10.3.17/sql/sql_yacc.cc mariadb-10.3-10.3.20/sql/sql_yacc.cc --- mariadb-10.3-10.3.17/sql/sql_yacc.cc 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_yacc.cc 2019-11-06 16:01:59.000000000 +0000 @@ -1972,16 +1972,16 @@ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 709 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 95064 +#define YYLAST 95337 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 772 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 1236 /* YYNRULES -- Number of rules. */ -#define YYNRULES 3430 +#define YYNRULES 3431 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 5919 +#define YYNSTATES 5916 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ @@ -2118,10 +2118,10 @@ 2678, 2682, 2696, 2695, 2726, 2725, 2781, 2778, 2791, 2789, 2802, 2800, 2812, 2811, 2826, 2824, 2836, 2834, 2843, 2842, 2847, 2846, 2851, 2850, 2855, 2854, 2861, 2860, 2867, 2866, - 2871, 2870, 2876, 2883, 2890, 2894, 2898, 2898, 2904, 2914, - 2924, 2925, 2929, 2931, 2934, 2935, 2939, 2940, 2944, 2949, - 2955, 2961, 2969, 2975, 2981, 2989, 2997, 3005, 3013, 3021, - 3029, 3041, 3058, 3057, 3069, 3070, 3074, 3079, 3086, 3091, + 2871, 2870, 2876, 2883, 2890, 2894, 2898, 2898, 2904, 2915, + 2926, 2927, 2931, 2933, 2936, 2937, 2941, 2942, 2946, 2951, + 2957, 2963, 2971, 2977, 2983, 2991, 2999, 3007, 3015, 3023, + 3031, 3043, 3060, 3059, 3071, 3072, 3076, 3081, 3086, 3091, 3096, 3101, 3106, 3114, 3113, 3146, 3145, 3152, 3159, 3160, 3166, 3172, 3182, 3188, 3194, 3196, 3203, 3204, 3208, 3218, 3219, 3227, 3227, 3272, 3286, 3291, 3299, 3300, 3304, 3305, @@ -2137,315 +2137,315 @@ 3766, 3772, 3778, 3788, 3793, 3801, 3809, 3824, 3830, 3831, 3837, 3840, 3844, 3852, 3869, 3871, 3889, 3895, 3897, 3899, 3901, 3903, 3905, 3907, 3909, 3911, 3913, 3915, 3917, 3922, - 3930, 3946, 3947, 3952, 3958, 3967, 3974, 3983, 3991, 3996, - 4005, 4007, 4009, 4018, 4023, 4030, 4039, 4047, 4049, 4051, - 4053, 4055, 4057, 4059, 4061, 4063, 4065, 4067, 4069, 4071, - 4076, 4077, 4085, 4097, 4112, 4113, 4126, 4127, 4128, 4129, - 4130, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4142, - 4143, 4147, 4148, 4149, 4150, 4155, 4154, 4165, 4165, 4218, - 4219, 4224, 4223, 4234, 4245, 4245, 4249, 4254, 4259, 4265, - 4274, 4279, 4284, 4290, 4300, 4308, 4316, 4324, 4334, 4333, - 4352, 4351, 4367, 4373, 4381, 4382, 4386, 4394, 4399, 4404, - 4412, 4413, 4428, 4446, 4460, 4477, 4479, 4495, 4477, 4514, - 4516, 4517, 4522, 4521, 4591, 4593, 4591, 4601, 4606, 4607, - 4611, 4612, 4617, 4621, 4616, 4641, 4645, 4640, 4663, 4673, - 4677, 4681, 4682, 4686, 4697, 4695, 4712, 4711, 4726, 4725, - 4742, 4743, 4747, 4755, 4760, 4767, 4776, 4791, 4790, 4807, - 4806, 4826, 4835, 4834, 4842, 4841, 4850, 4855, 4864, 4849, - 4874, 4873, 4884, 4883, 4893, 4892, 4903, 4910, 4902, 4927, - 4926, 4938, 4940, 4945, 4947, 4949, 4966, 4971, 4977, 4984, - 4985, 4993, 4999, 5008, 5014, 5020, 5021, 5025, 5025, 5030, - 5031, 5032, 5036, 5037, 5038, 5042, 5046, 5047, 5048, 5052, - 5053, 5054, 5055, 5056, 5057, 5058, 5059, 5063, 5067, 5068, - 5069, 5073, 5074, 5075, 5076, 5077, 5081, 5085, 5086, 5087, - 5091, 5092, 5093, 5094, 5095, 5096, 5097, 5101, 5105, 5106, - 5107, 5111, 5112, 5113, 5118, 5126, 5134, 5142, 5155, 5168, - 5173, 5178, 5186, 5194, 5202, 5210, 5218, 5226, 5234, 5244, - 5254, 5264, 5266, 5270, 5275, 5285, 5286, 5299, 5298, 5301, - 5307, 5309, 5308, 5311, 5310, 5312, 5326, 5327, 5331, 5332, - 5338, 5336, 5343, 5348, 5350, 5349, 5352, 5351, 5356, 5393, - 5394, 5399, 5398, 5414, 5429, 5428, 5446, 5445, 5451, 5459, - 5458, 5461, 5463, 5466, 5465, 5474, 5477, 5476, 5485, 5486, - 5492, 5493, 5510, 5511, 5515, 5516, 5520, 5534, 5544, 5555, - 5564, 5565, 5578, 5580, 5579, 5584, 5582, 5593, 5594, 5598, - 5612, 5624, 5625, 5638, 5647, 5669, 5670, 5675, 5674, 5698, - 5710, 5726, 5725, 5740, 5739, 5753, 5758, 5763, 5783, 5801, - 5805, 5832, 5844, 5845, 5850, 5859, 5849, 5884, 5885, 5889, - 5900, 5919, 5932, 5958, 5959, 5964, 5963, 6000, 6009, 6010, - 6014, 6015, 6019, 6021, 6027, 6033, 6035, 6037, 6039, 6041, - 6043, 6048, 6049, 6055, 6071, 6074, 6091, 6099, 6099, 6120, - 6121, 6125, 6126, 6130, 6141, 6142, 6146, 6147, 6151, 6152, - 6156, 6157, 6162, 6165, 6173, 6176, 6183, 6187, 6193, 6195, - 6199, 6200, 6204, 6205, 6206, 6210, 6225, 6230, 6235, 6240, - 6245, 6250, 6255, 6270, 6276, 6291, 6296, 6311, 6317, 6335, - 6340, 6345, 6350, 6355, 6360, 6366, 6365, 6391, 6392, 6393, - 6398, 6403, 6408, 6410, 6412, 6414, 6420, 6425, 6430, 6439, - 6448, 6454, 6460, 6465, 6468, 6470, 6474, 6493, 6501, 6516, - 6526, 6537, 6538, 6539, 6540, 6541, 6542, 6543, 6547, 6548, - 6549, 6553, 6554, 6555, 6556, 6561, 6568, 6569, 6573, 6574, - 6575, 6576, 6580, 6582, 6588, 6587, 6595, 6594, 6602, 6601, - 6609, 6608, 6618, 6615, 6626, 6624, 6633, 6632, 6671, 6679, - 6687, 6688, 6692, 6702, 6703, 6707, 6708, 6712, 6717, 6716, - 6752, 6752, 6755, 6754, 6764, 6765, 6769, 6770, 6774, 6775, - 6779, 6780, 6784, 6785, 6786, 6787, 6789, 6788, 6794, 6799, - 6807, 6808, 6813, 6816, 6820, 6824, 6831, 6832, 6836, 6837, - 6841, 6847, 6853, 6854, 6862, 6861, 6880, 6886, 6887, 6897, - 6907, 6907, 6910, 6911, 6919, 6920, 6921, 6922, 6923, 6927, - 6928, 6929, 6945, 6949, 6953, 6957, 6959, 6966, 6968, 6973, - 6975, 6976, 6977, 6981, 6985, 6990, 6995, 6999, 7003, 7008, - 7013, 7021, 7039, 7040, 7047, 7068, 7079, 7084, 7089, 7094, - 7105, 7110, 7115, 7120, 7122, 7124, 7126, 7128, 7130, 7132, - 7134, 7142, 7144, 7149, 7150, 7151, 7152, 7153, 7154, 7155, - 7156, 7160, 7164, 7165, 7169, 7170, 7174, 7175, 7176, 7177, - 7178, 7182, 7183, 7184, 7185, 7186, 7190, 7196, 7197, 7202, - 7204, 7211, 7212, 7213, 7217, 7221, 7222, 7223, 7224, 7225, - 7226, 7230, 7231, 7232, 7233, 7236, 7237, 7240, 7241, 7244, - 7245, 7250, 7251, 7255, 7256, 7257, 7264, 7265, 7271, 7278, - 7282, 7283, 7287, 7288, 7292, 7300, 7308, 7317, 7321, 7327, - 7331, 7332, 7341, 7350, 7356, 7362, 7370, 7376, 7386, 7400, - 7401, 7405, 7410, 7414, 7415, 7419, 7420, 7424, 7431, 7435, - 7436, 7440, 7448, 7449, 7453, 7454, 7458, 7459, 7463, 7464, - 7465, 7473, 7474, 7478, 7479, 7480, 7481, 7485, 7486, 7491, - 7490, 7503, 7504, 7508, 7511, 7512, 7513, 7514, 7518, 7526, - 7533, 7534, 7538, 7548, 7549, 7553, 7554, 7557, 7559, 7563, - 7575, 7576, 7580, 7587, 7600, 7601, 7603, 7605, 7611, 7616, - 7622, 7628, 7635, 7645, 7646, 7647, 7648, 7649, 7653, 7654, - 7658, 7659, 7663, 7664, 7668, 7669, 7670, 7674, 7675, 7679, - 7683, 7695, 7696, 7700, 7701, 7705, 7706, 7710, 7711, 7715, - 7716, 7720, 7721, 7725, 7726, 7730, 7731, 7732, 7735, 7737, - 7742, 7747, 7749, 7757, 7765, 7771, 7780, 7781, 7785, 7789, - 7790, 7800, 7801, 7802, 7806, 7810, 7817, 7823, 7835, 7836, - 7840, 7842, 7851, 7865, 7850, 7885, 7884, 7898, 7907, 7906, - 7922, 7921, 7937, 7936, 7949, 7943, 7956, 7955, 7990, 7995, - 8000, 8005, 8011, 8010, 8017, 8024, 8034, 8023, 8054, 8055, - 8056, 8057, 8061, 8062, 8074, 8075, 8079, 8080, 8083, 8085, - 8093, 8101, 8103, 8105, 8106, 8114, 8115, 8121, 8130, 8128, - 8141, 8154, 8153, 8166, 8164, 8177, 8184, 8194, 8195, 8219, - 8226, 8230, 8236, 8234, 8251, 8253, 8258, 8266, 8265, 8279, - 8283, 8282, 8294, 8295, 8299, 8312, 8313, 8317, 8321, 8328, - 8333, 8337, 8344, 8348, 8353, 8361, 8369, 8379, 8390, 8400, - 8411, 8421, 8427, 8433, 8438, 8444, 8458, 8472, 8477, 8481, - 8486, 8487, 8488, 8493, 8497, 8503, 8505, 8506, 8507, 8508, - 8511, 8516, 8524, 8529, 8537, 8538, 8542, 8543, 8547, 8547, - 8550, 8552, 8556, 8557, 8561, 8562, 8570, 8571, 8572, 8576, - 8577, 8582, 8591, 8592, 8593, 8594, 8599, 8598, 8608, 8607, - 8615, 8622, 8632, 8649, 8652, 8659, 8663, 8670, 8674, 8678, - 8685, 8685, 8691, 8692, 8696, 8697, 8698, 8702, 8703, 8712, - 8719, 8720, 8725, 8724, 8736, 8737, 8738, 8742, 8744, 8743, - 8750, 8749, 8770, 8771, 8775, 8776, 8780, 8781, 8782, 8786, - 8787, 8792, 8791, 8812, 8813, 8817, 8822, 8823, 8830, 8832, - 8836, 8838, 8837, 8849, 8851, 8850, 8863, 8864, 8869, 8878, - 8879, 8880, 8884, 8891, 8901, 8909, 8918, 8920, 8919, 8925, - 8924, 8947, 8948, 8952, 8953, 8957, 8958, 8959, 8960, 8961, - 8962, 8966, 8967, 8972, 8971, 8992, 8993, 8994, 8999, 8998, - 9004, 9011, 9017, 9026, 9027, 9031, 9047, 9046, 9059, 9060, - 9064, 9065, 9069, 9080, 9091, 9092, 9097, 9096, 9107, 9108, - 9112, 9113, 9117, 9128, 9140, 9139, 9147, 9147, 9156, 9157, - 9162, 9163, 9172, 9181, 9182, 9183, 9184, 9185, 9186, 9187, - 9191, 9192, 9193, 9194, 9195, 9196, 9197, 9201, 9201, 9209, - 9209, 9221, 9225, 9227, 9231, 9231, 9242, 9246, 9248, 9252, - 9252, 9263, 9268, 9268, 9277, 9277, 9289, 9295, 9293, 9300, - 9312, 9310, 9317, 9327, 9332, 9331, 9336, 9340, 9351, 9352, - 9356, 9357, 9361, 9362, 9363, 9367, 9368, 9369, 9373, 9374, - 9375, 9376, 9377, 9381, 9381, 9399, 9406, 9408, 9412, 9416, - 9422, 9429, 9431, 9440, 9444, 9448, 9455, 9463, 9467, 9475, - 9478, 9485, 9489, 9493, 9497, 9504, 9505, 9509, 9510, 9527, - 9546, 9548, 9555, 9566, 9567, 9568, 9582, 9587, 9609, 9615, - 9621, 9627, 9633, 9634, 9635, 9636, 9637, 9641, 9642, 9643, - 9647, 9648, 9649, 9653, 9654, 9659, 9710, 9717, 9760, 9766, - 9772, 9778, 9784, 9790, 9796, 9802, 9806, 9812, 9818, 9824, - 9830, 9836, 9840, 9846, 9855, 9861, 9869, 9875, 9884, 9890, - 9898, 9908, 9915, 9923, 9929, 9938, 9942, 9948, 9954, 9960, - 9966, 9973, 9979, 9985, 9991, 9997, 10004, 10010, 10016, 10022, - 10028, 10034, 10040, 10046, 10052, 10056, 10057, 10061, 10062, 10066, - 10067, 10071, 10072, 10076, 10077, 10078, 10079, 10080, 10081, 10085, - 10086, 10091, 10095, 10099, 10100, 10101, 10105, 10106, 10107, 10108, - 10109, 10110, 10114, 10115, 10116, 10121, 10120, 10126, 10134, 10156, - 10163, 10172, 10173, 10174, 10175, 10179, 10188, 10189, 10190, 10191, - 10192, 10193, 10194, 10195, 10227, 10228, 10229, 10230, 10231, 10232, - 10233, 10234, 10235, 10236, 10237, 10238, 10245, 10251, 10256, 10266, - 10271, 10276, 10282, 10287, 10293, 10304, 10311, 10316, 10321, 10326, - 10331, 10336, 10341, 10349, 10350, 10351, 10355, 10356, 10364, 10365, - 10371, 10375, 10381, 10387, 10396, 10397, 10406, 10413, 10427, 10433, - 10439, 10448, 10457, 10463, 10469, 10475, 10481, 10496, 10507, 10513, - 10519, 10525, 10531, 10537, 10545, 10552, 10556, 10561, 10569, 10590, - 10597, 10603, 10610, 10617, 10623, 10629, 10635, 10641, 10647, 10653, - 10659, 10665, 10672, 10678, 10685, 10691, 10696, 10701, 10706, 10711, - 10729, 10735, 10741, 10746, 10753, 10760, 10768, 10775, 10782, 10789, - 10796, 10813, 10819, 10825, 10831, 10837, 10844, 10850, 10856, 10865, - 10876, 10883, 10889, 10895, 10902, 10910, 10916, 10922, 10927, 10933, - 10941, 10947, 10953, 10959, 10965, 10973, 10985, 10992, 11007, 11013, - 11020, 11027, 11034, 11041, 11048, 11052, 11059, 11077, 11076, 11144, - 11152, 11154, 11159, 11160, 11164, 11165, 11169, 11170, 11174, 11181, - 11189, 11216, 11222, 11228, 11234, 11240, 11246, 11255, 11262, 11264, - 11261, 11271, 11282, 11288, 11294, 11300, 11306, 11312, 11318, 11324, - 11330, 11337, 11336, 11361, 11370, 11388, 11390, 11397, 11404, 11411, - 11418, 11425, 11432, 11439, 11446, 11453, 11460, 11471, 11478, 11489, - 11500, 11520, 11519, 11525, 11542, 11548, 11557, 11566, 11576, 11575, - 11587, 11597, 11605, 11610, 11618, 11619, 11624, 11629, 11632, 11634, - 11638, 11643, 11651, 11652, 11656, 11660, 11667, 11674, 11681, 11694, - 11693, 11710, 11713, 11712, 11717, 11716, 11721, 11720, 11724, 11729, - 11730, 11734, 11735, 11736, 11737, 11738, 11739, 11740, 11741, 11745, - 11746, 11747, 11751, 11752, 11756, 11763, 11771, 11772, 11776, 11783, - 11791, 11800, 11810, 11811, 11820, 11829, 11841, 11842, 11854, 11865, - 11866, 11872, 11873, 11891, 11900, 11898, 11916, 11914, 11925, 11935, - 11933, 11951, 11950, 11960, 11971, 11969, 11988, 11987, 11998, 12010, - 12011, 12012, 12016, 12017, 12025, 12026, 12030, 12045, 12046, 12050, - 12050, 12091, 12157, 12200, 12201, 12210, 12209, 12218, 12219, 12220, - 12224, 12225, 12226, 12226, 12230, 12236, 12244, 12244, 12259, 12276, - 12277, 12285, 12295, 12294, 12308, 12325, 12308, 12332, 12336, 12345, - 12356, 12357, 12362, 12365, 12366, 12367, 12371, 12372, 12377, 12376, - 12382, 12381, 12389, 12390, 12393, 12395, 12395, 12399, 12399, 12404, - 12405, 12409, 12411, 12416, 12417, 12421, 12432, 12446, 12447, 12448, - 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12461, - 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12473, 12474, - 12475, 12476, 12479, 12481, 12482, 12486, 12487, 12495, 12497, 12501, - 12503, 12502, 12516, 12519, 12518, 12533, 12538, 12553, 12555, 12559, - 12564, 12572, 12573, 12590, 12613, 12614, 12620, 12621, 12625, 12638, - 12637, 12645, 12646, 12654, 12655, 12659, 12660, 12664, 12665, 12679, - 12680, 12684, 12694, 12703, 12710, 12717, 12727, 12728, 12735, 12745, - 12746, 12748, 12750, 12752, 12754, 12763, 12767, 12768, 12772, 12784, - 12786, 12791, 12790, 12840, 12845, 12853, 12854, 12855, 12859, 12860, - 12864, 12877, 12884, 12889, 12896, 12903, 12910, 12920, 12925, 12930, - 12934, 12940, 12946, 12955, 12963, 12967, 12974, 12975, 12978, 12980, - 12984, 12985, 12988, 12989, 12990, 12991, 12992, 12993, 12997, 12998, - 12999, 13000, 13001, 13005, 13006, 13007, 13008, 13012, 13013, 13014, - 13015, 13016, 13020, 13021, 13022, 13023, 13024, 13028, 13033, 13034, - 13038, 13039, 13043, 13044, 13045, 13050, 13049, 13083, 13084, 13088, - 13089, 13093, 13103, 13103, 13115, 13116, 13119, 13139, 13143, 13148, - 13156, 13161, 13172, 13160, 13174, 13189, 13201, 13200, 13218, 13217, - 13226, 13243, 13249, 13263, 13278, 13286, 13290, 13295, 13294, 13303, - 13308, 13314, 13319, 13324, 13331, 13329, 13343, 13344, 13348, 13359, - 13372, 13373, 13377, 13391, 13395, 13404, 13407, 13414, 13415, 13423, - 13431, 13422, 13441, 13448, 13440, 13458, 13466, 13467, 13474, 13478, - 13479, 13488, 13489, 13493, 13502, 13503, 13504, 13506, 13505, 13517, - 13519, 13523, 13524, 13525, 13529, 13530, 13534, 13535, 13539, 13549, - 13550, 13554, 13555, 13559, 13560, 13564, 13565, 13570, 13569, 13585, - 13584, 13599, 13600, 13604, 13605, 13609, 13614, 13622, 13630, 13641, - 13642, 13648, 13656, 13658, 13660, 13658, 13673, 13681, 13672, 13703, - 13704, 13708, 13717, 13718, 13722, 13732, 13733, 13740, 13739, 13755, - 13758, 13765, 13766, 13773, 13788, 13794, 13793, 13805, 13804, 13817, - 13819, 13823, 13824, 13828, 13843, 13861, 13862, 13866, 13867, 13871, - 13872, 13873, 13878, 13877, 13898, 13900, 13903, 13905, 13908, 13909, - 13912, 13916, 13920, 13924, 13928, 13932, 13936, 13940, 13944, 13952, - 13955, 13965, 13964, 13980, 13987, 13995, 14003, 14011, 14019, 14027, - 14034, 14041, 14047, 14049, 14051, 14060, 14064, 14069, 14068, 14075, - 14074, 14079, 14088, 14095, 14100, 14105, 14110, 14115, 14120, 14122, - 14124, 14126, 14133, 14141, 14143, 14151, 14158, 14165, 14173, 14179, - 14184, 14192, 14200, 14208, 14212, 14217, 14224, 14229, 14236, 14243, - 14249, 14255, 14261, 14269, 14274, 14281, 14288, 14295, 14302, 14307, - 14312, 14317, 14322, 14329, 14351, 14353, 14355, 14360, 14361, 14364, - 14366, 14370, 14371, 14375, 14376, 14380, 14381, 14385, 14386, 14390, - 14391, 14395, 14396, 14404, 14416, 14415, 14431, 14430, 14440, 14441, - 14442, 14443, 14444, 14448, 14449, 14453, 14460, 14461, 14462, 14466, - 14467, 14480, 14481, 14482, 14497, 14496, 14509, 14508, 14520, 14524, - 14525, 14540, 14543, 14542, 14555, 14556, 14561, 14563, 14565, 14567, - 14569, 14571, 14579, 14581, 14583, 14585, 14590, 14592, 14600, 14602, - 14604, 14606, 14623, 14624, 14628, 14629, 14632, 14634, 14635, 14639, - 14655, 14656, 14660, 14659, 14669, 14670, 14674, 14674, 14678, 14677, - 14683, 14687, 14688, 14692, 14693, 14701, 14700, 14711, 14715, 14719, - 14732, 14731, 14746, 14747, 14748, 14751, 14752, 14753, 14754, 14762, - 14766, 14775, 14781, 14793, 14805, 14816, 14829, 14792, 14837, 14838, - 14842, 14843, 14847, 14848, 14856, 14860, 14861, 14862, 14865, 14867, - 14871, 14872, 14876, 14881, 14888, 14893, 14900, 14902, 14906, 14907, - 14911, 14916, 14924, 14925, 14928, 14930, 14938, 14939, 14943, 14944, - 14945, 14949, 14951, 14956, 14957, 14966, 14967, 14971, 14972, 14976, - 14989, 14994, 14999, 15004, 15012, 15020, 15025, 15038, 15047, 15063, - 15070, 15076, 15086, 15087, 15095, 15096, 15097, 15098, 15112, 15118, - 15124, 15130, 15136, 15142, 15161, 15171, 15181, 15187, 15194, 15204, - 15212, 15220, 15232, 15233, 15242, 15241, 15260, 15261, 15266, 15267, - 15274, 15272, 15299, 15300, 15306, 15311, 15320, 15335, 15336, 15340, - 15345, 15353, 15358, 15366, 15371, 15376, 15381, 15387, 15392, 15400, - 15405, 15410, 15415, 15421, 15429, 15430, 15441, 15449, 15453, 15459, - 15465, 15475, 15481, 15490, 15500, 15501, 15505, 15506, 15507, 15511, - 15519, 15527, 15535, 15543, 15544, 15552, 15553, 15561, 15562, 15567, - 15576, 15577, 15585, 15586, 15594, 15595, 15596, 15600, 15613, 15643, - 15653, 15653, 15655, 15665, 15666, 15667, 15668, 15669, 15670, 15671, - 15672, 15677, 15678, 15679, 15680, 15681, 15682, 15683, 15684, 15685, - 15693, 15694, 15695, 15696, 15700, 15701, 15702, 15703, 15704, 15705, - 15706, 15707, 15711, 15712, 15713, 15714, 15715, 15716, 15717, 15718, - 15719, 15723, 15724, 15725, 15726, 15727, 15728, 15729, 15730, 15743, - 15744, 15745, 15746, 15747, 15748, 15749, 15750, 15751, 15752, 15753, - 15754, 15755, 15756, 15757, 15758, 15759, 15760, 15761, 15762, 15763, - 15764, 15765, 15766, 15767, 15768, 15769, 15770, 15771, 15772, 15773, - 15774, 15775, 15776, 15777, 15778, 15779, 15780, 15781, 15782, 15783, - 15784, 15785, 15786, 15787, 15788, 15789, 15790, 15791, 15792, 15793, - 15794, 15795, 15796, 15797, 15838, 15839, 15840, 15841, 15842, 15843, - 15854, 15855, 15856, 15857, 15858, 15859, 15860, 15861, 15862, 15863, - 15867, 15868, 15869, 15876, 15877, 15878, 15882, 15883, 15884, 15893, - 15894, 15895, 15896, 15897, 15898, 15899, 15900, 15901, 15902, 15903, - 15904, 15905, 15906, 15907, 15908, 15909, 15910, 15911, 15912, 15913, - 15914, 15915, 15916, 15917, 15918, 15919, 15920, 15921, 15922, 15923, - 15924, 15925, 15926, 15934, 15935, 15936, 15937, 15938, 15939, 15940, - 15941, 15942, 15943, 15944, 15945, 15946, 15947, 15948, 15949, 15950, - 15951, 15952, 15953, 15954, 15955, 15956, 15957, 15958, 15959, 15960, - 15961, 15962, 15963, 15964, 15965, 15966, 15967, 15968, 15969, 15970, - 15971, 15972, 15973, 15974, 15975, 15976, 15977, 15978, 15979, 15984, - 15985, 15986, 15987, 15988, 15989, 15990, 15991, 15992, 15993, 15994, - 15995, 15996, 15997, 15998, 15999, 16000, 16001, 16002, 16003, 16004, - 16005, 16006, 16007, 16008, 16009, 16010, 16011, 16012, 16013, 16014, - 16015, 16016, 16017, 16018, 16019, 16020, 16021, 16022, 16023, 16024, - 16025, 16026, 16027, 16028, 16029, 16030, 16031, 16032, 16033, 16034, - 16035, 16036, 16037, 16038, 16039, 16040, 16041, 16042, 16043, 16044, - 16045, 16046, 16047, 16048, 16049, 16050, 16051, 16052, 16053, 16054, - 16055, 16056, 16057, 16058, 16059, 16060, 16061, 16062, 16063, 16064, - 16065, 16066, 16067, 16068, 16069, 16070, 16071, 16072, 16073, 16074, - 16075, 16076, 16077, 16078, 16079, 16080, 16081, 16082, 16083, 16084, - 16085, 16086, 16087, 16088, 16089, 16090, 16091, 16092, 16093, 16094, - 16095, 16096, 16097, 16098, 16099, 16100, 16101, 16102, 16103, 16104, - 16105, 16106, 16107, 16108, 16109, 16110, 16111, 16112, 16113, 16114, - 16115, 16116, 16117, 16118, 16119, 16120, 16121, 16122, 16123, 16124, - 16125, 16126, 16127, 16128, 16129, 16130, 16131, 16132, 16133, 16134, - 16135, 16136, 16137, 16138, 16139, 16140, 16141, 16142, 16143, 16144, - 16145, 16146, 16147, 16148, 16149, 16150, 16151, 16152, 16153, 16154, - 16155, 16156, 16157, 16158, 16159, 16160, 16161, 16162, 16163, 16164, - 16165, 16166, 16167, 16168, 16169, 16170, 16171, 16172, 16173, 16174, - 16175, 16176, 16177, 16178, 16179, 16180, 16181, 16182, 16183, 16184, - 16185, 16186, 16187, 16188, 16189, 16190, 16191, 16192, 16193, 16194, - 16195, 16196, 16197, 16198, 16199, 16200, 16201, 16202, 16203, 16204, - 16205, 16206, 16207, 16208, 16209, 16210, 16211, 16212, 16213, 16214, - 16215, 16216, 16217, 16218, 16219, 16220, 16221, 16222, 16223, 16224, - 16225, 16226, 16227, 16228, 16229, 16230, 16231, 16232, 16233, 16234, - 16235, 16236, 16237, 16238, 16239, 16240, 16241, 16242, 16243, 16244, - 16245, 16246, 16247, 16248, 16249, 16250, 16262, 16261, 16271, 16275, - 16270, 16292, 16293, 16299, 16298, 16305, 16304, 16314, 16313, 16324, - 16323, 16329, 16337, 16339, 16344, 16344, 16353, 16352, 16366, 16365, - 16370, 16374, 16375, 16376, 16380, 16381, 16382, 16383, 16387, 16388, - 16389, 16390, 16395, 16400, 16405, 16414, 16419, 16424, 16429, 16434, - 16439, 16444, 16449, 16463, 16474, 16493, 16511, 16523, 16531, 16536, - 16552, 16553, 16554, 16555, 16559, 16578, 16596, 16597, 16601, 16602, - 16603, 16604, 16608, 16623, 16627, 16628, 16629, 16639, 16640, 16641, - 16647, 16653, 16665, 16664, 16678, 16679, 16685, 16694, 16695, 16699, - 16700, 16704, 16723, 16724, 16725, 16730, 16731, 16736, 16735, 16752, - 16762, 16773, 16772, 16804, 16805, 16809, 16810, 16814, 16815, 16816, - 16817, 16819, 16818, 16831, 16832, 16833, 16834, 16835, 16841, 16846, - 16852, 16858, 16864, 16871, 16878, 16882, 16889, 16898, 16900, 16905, - 16910, 16917, 16924, 16931, 16938, 16945, 16952, 16964, 16965, 16968, - 16969, 16972, 16977, 16985, 16995, 17014, 17017, 17019, 17023, 17024, - 17031, 17033, 17037, 17038, 17043, 17042, 17046, 17045, 17049, 17048, - 17052, 17051, 17054, 17055, 17056, 17057, 17058, 17059, 17060, 17061, - 17062, 17063, 17064, 17065, 17066, 17067, 17068, 17069, 17070, 17071, - 17072, 17073, 17074, 17075, 17076, 17077, 17078, 17079, 17080, 17084, - 17085, 17089, 17090, 17094, 17101, 17108, 17118, 17128, 17137, 17146, - 17159, 17164, 17172, 17177, 17185, 17190, 17197, 17197, 17198, 17198, - 17201, 17208, 17213, 17219, 17225, 17231, 17235, 17239, 17240, 17244, - 17272, 17274, 17278, 17282, 17286, 17293, 17299, 17305, 17311, 17317, - 17326, 17327, 17331, 17332, 17337, 17338, 17342, 17343, 17347, 17348, - 17352, 17353, 17358, 17357, 17367, 17376, 17377, 17381, 17382, 17387, - 17388, 17389, 17394, 17395, 17396, 17400, 17412, 17421, 17427, 17436, - 17445, 17458, 17460, 17462, 17467, 17468, 17473, 17472, 17489, 17488, - 17500, 17500, 17521, 17522, 17529, 17537, 17538, 17539, 17543, 17544, - 17549, 17548, 17570, 17577, 17578, 17582, 17583, 17587, 17588, 17589, - 17594, 17602, 17623, 17650, 17652, 17656, 17657, 17661, 17662, 17670, - 17671, 17672, 17673, 17679, 17685, 17695, 17696, 17701, 17714, 17730, - 17731, 17732, 17736, 17737, 17741, 17742, 17747, 17748, 17752, 17758, - 17767, 17767, 17792, 17793, 17794, 17795, 17796, 17797, 17798, 17802, - 17803, 17804, 17805, 17815, 17817, 17823, 17829, 17839, 17848, 17854, - 17859, 17863, 17837, 17915, 17933, 17932, 17950, 17959, 17948, 17975, - 17983, 17974, 17997, 18001, 18005, 18009, 18013, 18017, 18025, 18026, - 18042, 18049, 18056, 18066, 18067, 18068, 18072, 18073, 18074, 18078, - 18079, 18084, 18086, 18085, 18091, 18092, 18096, 18103, 18113, 18119, - 18130 + 3930, 3946, 3947, 3952, 3958, 3967, 3974, 3983, 3992, 3997, + 4006, 4008, 4010, 4019, 4024, 4031, 4040, 4049, 4051, 4053, + 4055, 4057, 4059, 4061, 4063, 4065, 4067, 4069, 4071, 4073, + 4078, 4079, 4087, 4099, 4114, 4115, 4128, 4129, 4130, 4131, + 4132, 4136, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, + 4145, 4149, 4150, 4151, 4152, 4157, 4156, 4167, 4167, 4220, + 4221, 4226, 4225, 4236, 4247, 4247, 4251, 4256, 4261, 4267, + 4276, 4281, 4286, 4292, 4302, 4310, 4318, 4326, 4336, 4335, + 4354, 4353, 4369, 4375, 4383, 4384, 4388, 4396, 4401, 4406, + 4414, 4415, 4430, 4448, 4462, 4479, 4481, 4497, 4479, 4516, + 4518, 4519, 4524, 4523, 4593, 4595, 4593, 4603, 4608, 4609, + 4613, 4614, 4619, 4623, 4618, 4643, 4647, 4642, 4665, 4675, + 4679, 4683, 4684, 4688, 4699, 4697, 4714, 4713, 4728, 4727, + 4744, 4745, 4749, 4757, 4762, 4769, 4778, 4793, 4792, 4809, + 4808, 4828, 4837, 4836, 4844, 4843, 4852, 4857, 4866, 4851, + 4876, 4875, 4886, 4885, 4895, 4894, 4905, 4912, 4904, 4929, + 4928, 4940, 4942, 4947, 4949, 4951, 4968, 4973, 4979, 4986, + 4987, 4995, 5001, 5010, 5016, 5022, 5023, 5027, 5027, 5032, + 5033, 5034, 5038, 5039, 5040, 5044, 5048, 5049, 5050, 5054, + 5055, 5056, 5057, 5058, 5059, 5060, 5061, 5065, 5069, 5070, + 5071, 5075, 5076, 5077, 5078, 5079, 5083, 5087, 5088, 5089, + 5093, 5094, 5095, 5096, 5097, 5098, 5099, 5103, 5107, 5108, + 5109, 5113, 5114, 5115, 5120, 5128, 5136, 5144, 5157, 5170, + 5175, 5180, 5188, 5196, 5204, 5212, 5220, 5228, 5236, 5246, + 5256, 5266, 5268, 5272, 5277, 5287, 5288, 5301, 5300, 5303, + 5309, 5311, 5310, 5313, 5312, 5314, 5328, 5329, 5333, 5334, + 5340, 5338, 5345, 5350, 5352, 5351, 5354, 5353, 5358, 5395, + 5396, 5401, 5400, 5416, 5431, 5430, 5448, 5447, 5453, 5461, + 5460, 5463, 5465, 5468, 5467, 5476, 5479, 5478, 5487, 5488, + 5494, 5495, 5512, 5513, 5517, 5518, 5522, 5536, 5546, 5557, + 5566, 5567, 5580, 5582, 5581, 5586, 5584, 5595, 5596, 5600, + 5614, 5626, 5627, 5640, 5649, 5671, 5672, 5677, 5676, 5700, + 5712, 5728, 5727, 5742, 5741, 5755, 5760, 5765, 5785, 5803, + 5807, 5834, 5846, 5847, 5852, 5861, 5851, 5886, 5887, 5891, + 5902, 5921, 5934, 5960, 5961, 5966, 5965, 6002, 6011, 6012, + 6016, 6017, 6021, 6023, 6029, 6035, 6037, 6039, 6041, 6043, + 6045, 6050, 6051, 6057, 6073, 6076, 6093, 6101, 6101, 6122, + 6123, 6127, 6128, 6132, 6143, 6144, 6148, 6149, 6153, 6154, + 6158, 6159, 6164, 6167, 6175, 6178, 6185, 6189, 6195, 6197, + 6201, 6202, 6206, 6207, 6208, 6212, 6227, 6232, 6237, 6242, + 6247, 6252, 6257, 6272, 6278, 6293, 6298, 6313, 6319, 6337, + 6342, 6347, 6352, 6357, 6362, 6368, 6367, 6393, 6394, 6395, + 6400, 6405, 6410, 6412, 6414, 6416, 6422, 6427, 6432, 6441, + 6450, 6456, 6462, 6467, 6470, 6472, 6476, 6495, 6503, 6518, + 6528, 6539, 6540, 6541, 6542, 6543, 6544, 6545, 6549, 6550, + 6551, 6555, 6556, 6557, 6558, 6563, 6570, 6571, 6575, 6576, + 6577, 6578, 6582, 6584, 6590, 6589, 6597, 6596, 6604, 6603, + 6611, 6610, 6620, 6617, 6628, 6626, 6635, 6634, 6673, 6681, + 6689, 6690, 6694, 6704, 6705, 6709, 6710, 6714, 6719, 6718, + 6754, 6754, 6757, 6756, 6766, 6767, 6771, 6772, 6776, 6777, + 6781, 6782, 6786, 6787, 6788, 6789, 6791, 6790, 6796, 6801, + 6809, 6810, 6815, 6818, 6822, 6826, 6833, 6834, 6838, 6839, + 6843, 6849, 6855, 6856, 6864, 6863, 6882, 6888, 6889, 6899, + 6909, 6909, 6912, 6913, 6921, 6922, 6923, 6924, 6925, 6929, + 6930, 6931, 6947, 6951, 6955, 6959, 6961, 6968, 6970, 6975, + 6977, 6978, 6979, 6983, 6987, 6992, 6997, 7001, 7005, 7010, + 7015, 7023, 7041, 7042, 7049, 7070, 7081, 7086, 7091, 7096, + 7101, 7112, 7117, 7122, 7127, 7129, 7131, 7133, 7135, 7137, + 7139, 7141, 7149, 7151, 7156, 7157, 7158, 7159, 7160, 7161, + 7162, 7163, 7167, 7171, 7172, 7176, 7177, 7181, 7182, 7183, + 7184, 7185, 7189, 7190, 7191, 7192, 7193, 7197, 7203, 7204, + 7209, 7211, 7218, 7219, 7220, 7224, 7228, 7229, 7230, 7231, + 7232, 7233, 7237, 7238, 7239, 7240, 7244, 7245, 7249, 7250, + 7254, 7255, 7260, 7261, 7265, 7266, 7267, 7274, 7275, 7281, + 7288, 7292, 7293, 7297, 7298, 7302, 7310, 7318, 7327, 7331, + 7337, 7341, 7342, 7351, 7360, 7366, 7372, 7385, 7391, 7401, + 7415, 7416, 7420, 7425, 7429, 7430, 7434, 7435, 7439, 7446, + 7450, 7451, 7455, 7463, 7464, 7468, 7469, 7473, 7474, 7478, + 7479, 7480, 7488, 7489, 7493, 7494, 7495, 7496, 7500, 7501, + 7506, 7505, 7518, 7519, 7523, 7526, 7527, 7528, 7529, 7533, + 7541, 7548, 7549, 7553, 7563, 7564, 7568, 7569, 7572, 7574, + 7578, 7590, 7591, 7595, 7602, 7615, 7616, 7618, 7620, 7626, + 7631, 7637, 7643, 7650, 7660, 7661, 7662, 7663, 7664, 7668, + 7669, 7673, 7674, 7678, 7679, 7683, 7684, 7685, 7689, 7690, + 7694, 7698, 7710, 7711, 7715, 7716, 7720, 7721, 7725, 7726, + 7730, 7731, 7735, 7736, 7740, 7741, 7746, 7747, 7748, 7752, + 7754, 7759, 7764, 7766, 7774, 7782, 7788, 7797, 7798, 7802, + 7806, 7807, 7817, 7818, 7819, 7823, 7827, 7834, 7840, 7852, + 7853, 7857, 7859, 7869, 7883, 7868, 7904, 7903, 7917, 7926, + 7925, 7941, 7940, 7956, 7955, 7968, 7962, 7975, 7974, 8009, + 8014, 8019, 8024, 8030, 8029, 8036, 8043, 8053, 8042, 8073, + 8074, 8075, 8076, 8080, 8081, 8093, 8094, 8098, 8099, 8102, + 8104, 8112, 8120, 8122, 8124, 8125, 8133, 8134, 8140, 8149, + 8147, 8160, 8173, 8172, 8185, 8183, 8196, 8203, 8213, 8214, + 8238, 8245, 8249, 8255, 8253, 8270, 8272, 8277, 8285, 8284, + 8298, 8302, 8301, 8313, 8314, 8318, 8331, 8332, 8336, 8340, + 8347, 8352, 8356, 8363, 8367, 8372, 8380, 8388, 8398, 8409, + 8419, 8430, 8440, 8446, 8452, 8457, 8463, 8477, 8491, 8496, + 8500, 8505, 8506, 8507, 8512, 8517, 8523, 8525, 8526, 8527, + 8528, 8532, 8537, 8545, 8550, 8558, 8559, 8563, 8564, 8568, + 8568, 8571, 8573, 8577, 8578, 8582, 8583, 8592, 8593, 8594, + 8598, 8599, 8604, 8613, 8614, 8615, 8616, 8621, 8620, 8630, + 8629, 8637, 8644, 8654, 8671, 8674, 8681, 8685, 8692, 8696, + 8700, 8707, 8707, 8713, 8714, 8718, 8719, 8720, 8724, 8725, + 8734, 8741, 8742, 8747, 8746, 8758, 8759, 8760, 8764, 8766, + 8765, 8772, 8771, 8792, 8793, 8797, 8798, 8802, 8803, 8804, + 8808, 8809, 8814, 8813, 8834, 8835, 8839, 8844, 8845, 8852, + 8854, 8859, 8861, 8860, 8872, 8874, 8873, 8886, 8887, 8892, + 8901, 8902, 8903, 8907, 8914, 8924, 8932, 8941, 8943, 8942, + 8948, 8947, 8970, 8971, 8975, 8976, 8980, 8981, 8982, 8983, + 8984, 8985, 8989, 8990, 8995, 8994, 9015, 9016, 9017, 9022, + 9021, 9027, 9034, 9040, 9049, 9050, 9054, 9070, 9069, 9082, + 9083, 9087, 9088, 9092, 9103, 9114, 9115, 9120, 9119, 9130, + 9131, 9135, 9136, 9140, 9151, 9163, 9162, 9170, 9170, 9179, + 9180, 9185, 9186, 9195, 9204, 9205, 9206, 9207, 9208, 9209, + 9210, 9214, 9215, 9216, 9217, 9218, 9219, 9220, 9224, 9224, + 9232, 9232, 9244, 9248, 9250, 9254, 9254, 9265, 9269, 9271, + 9275, 9275, 9286, 9291, 9291, 9300, 9300, 9312, 9318, 9316, + 9323, 9335, 9333, 9340, 9350, 9355, 9354, 9359, 9363, 9374, + 9375, 9379, 9380, 9384, 9385, 9386, 9390, 9391, 9392, 9396, + 9397, 9398, 9399, 9400, 9404, 9404, 9422, 9429, 9431, 9435, + 9439, 9445, 9452, 9454, 9463, 9467, 9471, 9478, 9486, 9490, + 9498, 9501, 9508, 9512, 9516, 9520, 9527, 9528, 9532, 9533, + 9550, 9569, 9571, 9578, 9589, 9590, 9591, 9605, 9610, 9632, + 9638, 9644, 9650, 9656, 9657, 9658, 9659, 9660, 9664, 9665, + 9666, 9670, 9671, 9672, 9676, 9677, 9682, 9733, 9740, 9783, + 9789, 9795, 9801, 9807, 9813, 9819, 9825, 9829, 9835, 9841, + 9847, 9853, 9859, 9863, 9869, 9878, 9884, 9892, 9898, 9907, + 9913, 9921, 9931, 9938, 9946, 9952, 9961, 9965, 9971, 9977, + 9983, 9989, 9996, 10002, 10008, 10014, 10020, 10027, 10033, 10039, + 10045, 10051, 10057, 10063, 10069, 10075, 10079, 10080, 10084, 10085, + 10089, 10090, 10094, 10095, 10099, 10100, 10101, 10102, 10103, 10104, + 10108, 10109, 10114, 10118, 10122, 10123, 10124, 10128, 10129, 10130, + 10131, 10132, 10133, 10137, 10138, 10139, 10144, 10143, 10149, 10157, + 10180, 10187, 10196, 10197, 10198, 10199, 10203, 10212, 10213, 10214, + 10215, 10216, 10217, 10218, 10219, 10251, 10252, 10253, 10254, 10255, + 10256, 10257, 10258, 10259, 10260, 10261, 10262, 10269, 10275, 10280, + 10290, 10295, 10300, 10306, 10311, 10317, 10328, 10335, 10340, 10345, + 10350, 10355, 10360, 10365, 10373, 10374, 10375, 10379, 10380, 10388, + 10389, 10395, 10399, 10405, 10411, 10420, 10421, 10430, 10437, 10451, + 10457, 10463, 10472, 10481, 10487, 10493, 10499, 10505, 10520, 10531, + 10537, 10543, 10549, 10555, 10561, 10569, 10576, 10580, 10585, 10593, + 10614, 10621, 10627, 10634, 10641, 10647, 10653, 10659, 10665, 10671, + 10677, 10683, 10689, 10696, 10702, 10709, 10715, 10720, 10725, 10730, + 10735, 10753, 10759, 10765, 10770, 10777, 10784, 10792, 10799, 10806, + 10813, 10820, 10837, 10843, 10849, 10855, 10861, 10868, 10874, 10880, + 10889, 10900, 10907, 10913, 10919, 10926, 10934, 10940, 10946, 10951, + 10957, 10965, 10971, 10977, 10983, 10989, 10997, 11009, 11016, 11031, + 11037, 11044, 11051, 11058, 11065, 11072, 11076, 11083, 11101, 11100, + 11168, 11176, 11178, 11183, 11184, 11188, 11189, 11193, 11194, 11198, + 11205, 11213, 11240, 11246, 11252, 11258, 11264, 11270, 11279, 11286, + 11288, 11285, 11295, 11306, 11312, 11318, 11324, 11330, 11336, 11342, + 11348, 11354, 11361, 11360, 11385, 11394, 11412, 11414, 11421, 11428, + 11435, 11442, 11449, 11456, 11463, 11470, 11477, 11484, 11495, 11502, + 11513, 11524, 11544, 11543, 11549, 11566, 11572, 11581, 11590, 11600, + 11599, 11611, 11621, 11629, 11634, 11642, 11643, 11648, 11653, 11656, + 11658, 11662, 11667, 11675, 11676, 11680, 11684, 11691, 11698, 11705, + 11718, 11717, 11734, 11737, 11736, 11741, 11740, 11745, 11744, 11748, + 11753, 11754, 11758, 11759, 11760, 11761, 11762, 11763, 11764, 11765, + 11769, 11770, 11771, 11775, 11776, 11780, 11787, 11795, 11796, 11800, + 11807, 11815, 11824, 11834, 11835, 11844, 11853, 11865, 11866, 11878, + 11889, 11890, 11896, 11897, 11915, 11924, 11922, 11940, 11938, 11949, + 11959, 11957, 11975, 11974, 11984, 11995, 11993, 12012, 12011, 12022, + 12034, 12035, 12036, 12040, 12041, 12049, 12050, 12054, 12069, 12070, + 12074, 12074, 12115, 12181, 12224, 12225, 12234, 12233, 12242, 12243, + 12244, 12248, 12249, 12250, 12250, 12254, 12260, 12268, 12268, 12283, + 12300, 12301, 12309, 12319, 12318, 12332, 12349, 12332, 12356, 12360, + 12369, 12380, 12381, 12386, 12389, 12390, 12391, 12395, 12396, 12401, + 12400, 12406, 12405, 12413, 12414, 12417, 12419, 12419, 12423, 12423, + 12428, 12429, 12433, 12435, 12440, 12441, 12445, 12456, 12470, 12471, + 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, + 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12497, + 12498, 12499, 12500, 12503, 12505, 12506, 12510, 12511, 12519, 12521, + 12525, 12527, 12526, 12540, 12543, 12542, 12557, 12562, 12577, 12579, + 12583, 12588, 12596, 12597, 12614, 12637, 12638, 12644, 12645, 12649, + 12662, 12661, 12669, 12670, 12679, 12680, 12684, 12685, 12689, 12690, + 12704, 12705, 12709, 12719, 12728, 12735, 12742, 12752, 12753, 12760, + 12770, 12771, 12773, 12775, 12777, 12779, 12788, 12792, 12793, 12797, + 12809, 12811, 12816, 12815, 12865, 12870, 12878, 12879, 12880, 12884, + 12885, 12889, 12902, 12909, 12914, 12921, 12928, 12935, 12945, 12950, + 12955, 12959, 12965, 12971, 12980, 12989, 12993, 13000, 13001, 13004, + 13006, 13010, 13011, 13015, 13016, 13017, 13018, 13019, 13020, 13024, + 13025, 13026, 13027, 13028, 13032, 13033, 13034, 13035, 13039, 13040, + 13041, 13042, 13043, 13047, 13048, 13049, 13050, 13051, 13055, 13060, + 13061, 13065, 13066, 13070, 13071, 13072, 13077, 13076, 13110, 13111, + 13115, 13116, 13120, 13130, 13130, 13142, 13143, 13146, 13166, 13170, + 13175, 13183, 13188, 13199, 13187, 13201, 13216, 13228, 13227, 13245, + 13244, 13253, 13270, 13276, 13290, 13305, 13313, 13317, 13322, 13321, + 13330, 13335, 13341, 13346, 13351, 13358, 13356, 13370, 13371, 13375, + 13386, 13399, 13400, 13404, 13418, 13422, 13431, 13434, 13441, 13442, + 13450, 13458, 13449, 13470, 13477, 13469, 13489, 13497, 13498, 13505, + 13509, 13510, 13519, 13520, 13524, 13534, 13535, 13536, 13538, 13537, + 13549, 13551, 13555, 13556, 13557, 13561, 13562, 13566, 13567, 13571, + 13581, 13582, 13586, 13587, 13591, 13592, 13596, 13597, 13602, 13601, + 13617, 13616, 13631, 13632, 13636, 13637, 13641, 13646, 13654, 13662, + 13673, 13674, 13680, 13688, 13690, 13692, 13690, 13705, 13713, 13704, + 13735, 13736, 13740, 13749, 13750, 13754, 13764, 13765, 13772, 13771, + 13787, 13790, 13797, 13798, 13805, 13820, 13826, 13825, 13837, 13836, + 13849, 13851, 13855, 13856, 13860, 13875, 13893, 13894, 13898, 13899, + 13903, 13904, 13905, 13910, 13909, 13930, 13932, 13935, 13937, 13940, + 13941, 13944, 13948, 13952, 13956, 13960, 13964, 13968, 13972, 13976, + 13984, 13987, 13997, 13996, 14012, 14019, 14027, 14035, 14043, 14051, + 14059, 14066, 14073, 14079, 14081, 14083, 14092, 14096, 14101, 14100, + 14107, 14106, 14111, 14120, 14127, 14132, 14137, 14142, 14147, 14152, + 14154, 14156, 14158, 14165, 14173, 14175, 14183, 14190, 14197, 14205, + 14211, 14216, 14224, 14232, 14240, 14244, 14249, 14256, 14261, 14268, + 14275, 14281, 14287, 14293, 14301, 14306, 14313, 14320, 14327, 14334, + 14339, 14344, 14349, 14354, 14361, 14383, 14385, 14387, 14392, 14393, + 14396, 14398, 14402, 14403, 14407, 14408, 14412, 14413, 14417, 14418, + 14422, 14423, 14427, 14428, 14436, 14448, 14447, 14463, 14462, 14472, + 14473, 14474, 14475, 14476, 14480, 14481, 14485, 14492, 14493, 14494, + 14498, 14499, 14512, 14513, 14514, 14529, 14528, 14541, 14540, 14552, + 14556, 14557, 14572, 14575, 14574, 14587, 14588, 14593, 14595, 14597, + 14599, 14601, 14603, 14611, 14613, 14615, 14617, 14622, 14624, 14632, + 14634, 14636, 14638, 14655, 14656, 14660, 14661, 14664, 14666, 14667, + 14671, 14687, 14688, 14693, 14692, 14702, 14703, 14707, 14707, 14711, + 14710, 14716, 14720, 14721, 14725, 14726, 14734, 14733, 14744, 14748, + 14752, 14765, 14764, 14779, 14780, 14781, 14785, 14786, 14787, 14788, + 14796, 14800, 14809, 14815, 14827, 14839, 14850, 14863, 14826, 14873, + 14874, 14878, 14879, 14883, 14884, 14892, 14896, 14897, 14898, 14901, + 14903, 14907, 14908, 14912, 14917, 14924, 14929, 14936, 14938, 14942, + 14943, 14947, 14952, 14960, 14961, 14965, 14967, 14975, 14976, 14980, + 14981, 14982, 14986, 14988, 14993, 14994, 15003, 15004, 15008, 15009, + 15013, 15026, 15031, 15036, 15041, 15049, 15057, 15062, 15075, 15084, + 15100, 15107, 15113, 15123, 15124, 15132, 15133, 15134, 15135, 15149, + 15155, 15161, 15167, 15173, 15179, 15198, 15208, 15218, 15224, 15231, + 15241, 15249, 15257, 15269, 15270, 15279, 15278, 15297, 15298, 15303, + 15304, 15311, 15309, 15336, 15337, 15343, 15348, 15357, 15372, 15373, + 15377, 15382, 15390, 15395, 15403, 15408, 15413, 15418, 15424, 15429, + 15437, 15442, 15447, 15452, 15458, 15466, 15467, 15478, 15486, 15490, + 15496, 15502, 15512, 15518, 15527, 15537, 15538, 15542, 15543, 15544, + 15548, 15556, 15564, 15572, 15580, 15581, 15589, 15590, 15598, 15599, + 15604, 15613, 15614, 15622, 15623, 15631, 15632, 15633, 15637, 15650, + 15680, 15690, 15690, 15692, 15702, 15703, 15704, 15705, 15706, 15707, + 15708, 15709, 15714, 15715, 15716, 15717, 15718, 15719, 15720, 15721, + 15722, 15730, 15731, 15732, 15733, 15737, 15738, 15739, 15740, 15741, + 15742, 15743, 15744, 15748, 15749, 15750, 15751, 15752, 15753, 15754, + 15755, 15756, 15760, 15761, 15762, 15763, 15764, 15765, 15766, 15767, + 15780, 15781, 15782, 15783, 15784, 15785, 15786, 15787, 15788, 15789, + 15790, 15791, 15792, 15793, 15794, 15795, 15796, 15797, 15798, 15799, + 15800, 15801, 15802, 15803, 15804, 15805, 15806, 15807, 15808, 15809, + 15810, 15811, 15812, 15813, 15814, 15815, 15816, 15817, 15818, 15819, + 15820, 15821, 15822, 15823, 15824, 15825, 15826, 15827, 15828, 15829, + 15830, 15831, 15832, 15833, 15834, 15875, 15876, 15877, 15878, 15879, + 15880, 15891, 15892, 15893, 15894, 15895, 15896, 15897, 15898, 15899, + 15900, 15904, 15905, 15906, 15913, 15914, 15915, 15919, 15920, 15921, + 15930, 15931, 15932, 15933, 15934, 15935, 15936, 15937, 15938, 15939, + 15940, 15941, 15942, 15943, 15944, 15945, 15946, 15947, 15948, 15949, + 15950, 15951, 15952, 15953, 15954, 15955, 15956, 15957, 15958, 15959, + 15960, 15961, 15962, 15963, 15971, 15972, 15973, 15974, 15975, 15976, + 15977, 15978, 15979, 15980, 15981, 15982, 15983, 15984, 15985, 15986, + 15987, 15988, 15989, 15990, 15991, 15992, 15993, 15994, 15995, 15996, + 15997, 15998, 15999, 16000, 16001, 16002, 16003, 16004, 16005, 16006, + 16007, 16008, 16009, 16010, 16011, 16012, 16013, 16014, 16015, 16016, + 16021, 16022, 16023, 16024, 16025, 16026, 16027, 16028, 16029, 16030, + 16031, 16032, 16033, 16034, 16035, 16036, 16037, 16038, 16039, 16040, + 16041, 16042, 16043, 16044, 16045, 16046, 16047, 16048, 16049, 16050, + 16051, 16052, 16053, 16054, 16055, 16056, 16057, 16058, 16059, 16060, + 16061, 16062, 16063, 16064, 16065, 16066, 16067, 16068, 16069, 16070, + 16071, 16072, 16073, 16074, 16075, 16076, 16077, 16078, 16079, 16080, + 16081, 16082, 16083, 16084, 16085, 16086, 16087, 16088, 16089, 16090, + 16091, 16092, 16093, 16094, 16095, 16096, 16097, 16098, 16099, 16100, + 16101, 16102, 16103, 16104, 16105, 16106, 16107, 16108, 16109, 16110, + 16111, 16112, 16113, 16114, 16115, 16116, 16117, 16118, 16119, 16120, + 16121, 16122, 16123, 16124, 16125, 16126, 16127, 16128, 16129, 16130, + 16131, 16132, 16133, 16134, 16135, 16136, 16137, 16138, 16139, 16140, + 16141, 16142, 16143, 16144, 16145, 16146, 16147, 16148, 16149, 16150, + 16151, 16152, 16153, 16154, 16155, 16156, 16157, 16158, 16159, 16160, + 16161, 16162, 16163, 16164, 16165, 16166, 16167, 16168, 16169, 16170, + 16171, 16172, 16173, 16174, 16175, 16176, 16177, 16178, 16179, 16180, + 16181, 16182, 16183, 16184, 16185, 16186, 16187, 16188, 16189, 16190, + 16191, 16192, 16193, 16194, 16195, 16196, 16197, 16198, 16199, 16200, + 16201, 16202, 16203, 16204, 16205, 16206, 16207, 16208, 16209, 16210, + 16211, 16212, 16213, 16214, 16215, 16216, 16217, 16218, 16219, 16220, + 16221, 16222, 16223, 16224, 16225, 16226, 16227, 16228, 16229, 16230, + 16231, 16232, 16233, 16234, 16235, 16236, 16237, 16238, 16239, 16240, + 16241, 16242, 16243, 16244, 16245, 16246, 16247, 16248, 16249, 16250, + 16251, 16252, 16253, 16254, 16255, 16256, 16257, 16258, 16259, 16260, + 16261, 16262, 16263, 16264, 16265, 16266, 16267, 16268, 16269, 16270, + 16271, 16272, 16273, 16274, 16275, 16276, 16277, 16278, 16279, 16280, + 16281, 16282, 16283, 16284, 16285, 16286, 16287, 16299, 16298, 16308, + 16312, 16307, 16329, 16330, 16336, 16335, 16342, 16341, 16351, 16350, + 16361, 16360, 16366, 16374, 16376, 16381, 16381, 16390, 16389, 16403, + 16402, 16407, 16411, 16412, 16413, 16417, 16418, 16419, 16420, 16424, + 16425, 16426, 16427, 16432, 16437, 16442, 16451, 16456, 16461, 16466, + 16471, 16476, 16481, 16486, 16500, 16511, 16530, 16548, 16560, 16568, + 16573, 16589, 16590, 16591, 16592, 16596, 16615, 16633, 16634, 16638, + 16639, 16640, 16641, 16645, 16660, 16664, 16665, 16666, 16676, 16677, + 16678, 16684, 16690, 16702, 16701, 16715, 16716, 16722, 16731, 16732, + 16736, 16737, 16741, 16760, 16761, 16762, 16767, 16768, 16773, 16772, + 16789, 16799, 16810, 16809, 16841, 16842, 16846, 16847, 16851, 16852, + 16853, 16854, 16856, 16855, 16868, 16869, 16870, 16871, 16872, 16878, + 16883, 16889, 16895, 16901, 16908, 16915, 16919, 16926, 16935, 16937, + 16942, 16947, 16954, 16961, 16968, 16975, 16982, 16989, 17001, 17002, + 17006, 17007, 17011, 17016, 17024, 17034, 17053, 17056, 17058, 17062, + 17063, 17070, 17072, 17076, 17077, 17082, 17081, 17085, 17084, 17088, + 17087, 17091, 17090, 17093, 17094, 17095, 17096, 17097, 17098, 17099, + 17100, 17101, 17102, 17103, 17104, 17105, 17106, 17107, 17108, 17109, + 17110, 17111, 17112, 17113, 17114, 17115, 17116, 17117, 17118, 17119, + 17123, 17124, 17128, 17129, 17133, 17140, 17147, 17157, 17167, 17176, + 17185, 17198, 17203, 17211, 17216, 17224, 17229, 17236, 17236, 17237, + 17237, 17240, 17247, 17252, 17258, 17264, 17270, 17274, 17278, 17279, + 17283, 17311, 17313, 17317, 17321, 17325, 17332, 17338, 17344, 17350, + 17356, 17365, 17366, 17370, 17371, 17376, 17377, 17381, 17382, 17386, + 17387, 17391, 17392, 17397, 17396, 17406, 17415, 17416, 17420, 17421, + 17426, 17427, 17428, 17433, 17434, 17435, 17439, 17451, 17460, 17466, + 17475, 17484, 17497, 17499, 17501, 17506, 17507, 17512, 17511, 17528, + 17527, 17539, 17539, 17560, 17561, 17568, 17576, 17577, 17578, 17582, + 17583, 17588, 17587, 17609, 17616, 17617, 17621, 17622, 17626, 17627, + 17628, 17633, 17641, 17662, 17689, 17691, 17695, 17696, 17700, 17701, + 17709, 17710, 17711, 17712, 17718, 17724, 17734, 17735, 17740, 17753, + 17769, 17770, 17771, 17775, 17776, 17780, 17781, 17786, 17787, 17791, + 17797, 17806, 17806, 17831, 17832, 17833, 17834, 17835, 17836, 17837, + 17841, 17842, 17843, 17844, 17854, 17856, 17862, 17868, 17878, 17887, + 17893, 17898, 17902, 17876, 17954, 17972, 17971, 17989, 17998, 17987, + 18014, 18022, 18013, 18036, 18040, 18044, 18048, 18052, 18056, 18064, + 18065, 18081, 18088, 18095, 18105, 18106, 18107, 18111, 18112, 18113, + 18117, 18118, 18123, 18125, 18124, 18130, 18131, 18135, 18142, 18152, + 18158, 18169 }; #endif @@ -3053,12 +3053,12 @@ }; # endif -#define YYPACT_NINF -5283 +#define YYPACT_NINF -5092 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-5283))) + (!!((Yystate) == (-5092))) -#define YYTABLE_NINF -3363 +#define YYTABLE_NINF -3364 #define yytable_value_is_error(Yytable_value) \ 0 @@ -3067,598 +3067,598 @@ STATE-NUM. */ static const int yypact[] = { - 6341, 3553, 1210, 87698, -5283, 624, -5283, 901, -5283, -5283, - -5283, 4063, -5283, -5283, -5283, -5283, -5283, -5283, 351, 63, - -5283, 565, -5283, -5283, -5283, 83260, -70, 119, -5283, -5283, - 84528, -5283, 796, -5283, 84528, -5283, -5283, 87698, -5283, 1353, - -5283, 2095, 95, 1697, 63, 920, -5283, -5283, 88332, 565, - 1556, 72457, -5283, 1327, 87698, 565, -5283, 920, 87698, -5283, - 299, 258, -5283, 1490, 2871, 1990, 1989, -5283, -5283, 1531, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, 3499, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - 73091, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, 74, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, 87698, 2148, 87698, - 1546, 1610, 87698, 2275, 2305, 83894, 87698, -5283, 1774, 347, - -5283, -5283, 2024, -5283, 1785, -5283, 63, 2225, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, 1783, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, 2276, 2349, 90, 2425, 2616, 87698, 1217, 2305, 2590, - 2305, 2305, 2305, 2305, 2642, 2305, 2305, 87698, -5283, 2305, - 2305, 1096, 87698, 33749, -5283, 1396, 1005, 2625, -5283, -5283, - -5283, -5283, -5283, -5283, 52080, 63, 20549, 2741, 571, 5067, - 2000, -5283, 2572, -5283, -5283, 87698, -5283, -5283, 52080, 1441, - -5283, 2572, 34486, -5283, 32306, 11628, 2572, 63, 2674, -5283, - 20549, -5283, -5283, -5283, -5283, 2445, 920, -5283, 83894, -5283, - -5283, -5283, -5283, 2817, 20549, 171, -5283, -5283, -5283, 2433, - 87698, 2273, 1062, 844, 83894, 87698, 2349, 2754, -5283, 1754, - 1608, -5283, 2200, 2349, 1619, 2210, 2349, 2608, 87698, 2349, - -5283, -5283, 2052, 2052, 2052, 2427, 2052, -5283, 2052, -5283, - -5283, 2120, 87698, 2779, -5283, -5283, -5283, 2779, 2779, 2259, - 2810, 2812, 2815, 96, 1681, 1771, 1780, 2024, 2194, 1785, - 2453, -5283, -5283, -5283, 2182, -5283, -5283, 408, -5283, 2629, - -5283, 2250, -5283, -5283, 1585, 54763, -5283, 87698, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, 1907, -5283, 2711, 534, - -5283, 2330, 2558, 2254, -5283, 2743, 83894, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, 2226, 87698, -5283, 2916, 20549, 2276, - -5283, 2732, -5283, -5283, -5283, -5283, 72457, -5283, 87698, -5283, - 2998, -5283, -5283, 2939, -5283, -5283, 76286, 525, 87698, 2921, - 87698, 87698, 87698, 87698, 87698, 87698, -5283, 83894, 2369, -5283, - -5283, 2305, 2305, -5283, 2932, 2459, 2435, 2011, 2310, 2634, - -5283, 2517, -5283, -5283, 2419, -5283, -5283, 244, -5283, -5283, - -5283, 128, 223, 275, 295, 2935, 298, 1159, 366, 390, - -5283, -5283, -5283, 2847, 2946, 2368, -5283, 2715, 20549, -5283, - -5283, -5283, 3024, -5283, -5283, 66, 2806, 302, 72457, 93404, - 75642, 94322, 94322, 94322, -5283, 204, 2095, 87698, 93863, 87698, - 46077, -5283, 2382, -5283, -5283, 7692, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, 87698, -5283, -5283, 2329, 2836, -5283, - -5283, -5283, -5283, -5283, 2400, -5283, -5283, -5283, -5283, -5283, - -5283, 25073, -5283, 2414, 2417, 2428, 16779, 2432, 2434, 2437, - 2441, 2450, 2310, 2310, 2310, 2460, 2466, 2478, 2488, -5283, - 2492, 2515, 2533, 2540, -5283, 2543, -5283, 2547, 2554, 2560, - -5283, -5283, 393, 397, 2571, 2586, 21303, 2604, -5283, 68019, - 2613, 2619, 2628, 2635, -5283, -5283, 20549, 2460, 2648, -5283, - -5283, 2654, -5283, 2665, 2671, 2678, 2687, 2689, 2691, 2694, - 2701, 2710, 2994, 2713, 2724, 2737, 2739, 2460, -5283, 2746, - -5283, -5283, 2065, 2310, 2460, 2460, 2748, 2750, 2759, 2770, - 2776, 2796, 2800, 2813, 85162, 2825, 2827, 2829, 2837, 2839, - 2842, 2857, 72, 2864, 2873, 2875, 2889, 2898, 2903, 2906, - 2909, 2914, 2919, 2923, 2926, 2937, 2941, 2955, 2961, 2495, - 2963, 2970, 2973, 2975, 2980, 2570, 2983, 2990, 2992, 2996, - 3014, 3030, 3032, 270, 3058, 3060, 313, 3064, 3067, 3069, - 3083, 3089, 3093, 3098, 3100, 25827, 26581, 25073, 20549, -5283, - 87698, 88966, -5283, 3520, 1461, -5283, 3494, 25073, -5283, -5283, - -5283, 3245, -5283, 3135, -5283, -5283, -5283, -5283, -5283, -5283, - 3112, -5283, 3143, -5283, -5283, 3181, 2658, -5283, 3126, -5283, - -5283, -5283, -5283, -5283, 2650, 3102, 3202, 3231, -5283, -5283, - -5283, -5283, 2942, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, 2679, 2788, -5283, 3126, - -5283, -5283, 55456, 72457, 52747, -5283, -5283, -5283, 68653, -5283, - -5283, 2459, 2925, 3364, -5283, 3474, -5283, 3470, 59560, 3507, - 1261, 433, 503, 519, 39935, 152, 80724, 527, 1197, 2991, - 64215, 40656, 3037, 320, 3099, -5283, 3101, 3103, 3106, 3109, - 3114, 3125, 3132, -5283, -5283, -5283, 3226, 3141, 2832, 1493, - -5283, -5283, 953, 3232, 934, -5283, 3488, -5283, 1493, -5283, - 35146, 3772, 491, -5283, 1015, -5283, 3826, -5283, -5283, 3247, - 3243, 3281, -5283, 2633, -5283, 2349, -5283, 752, -5283, 3772, - 1493, 491, -5283, 3449, 3531, 1091, 3858, -5283, 1553, -5283, - -5283, 3024, -5283, 3246, 87698, -5283, -5283, 3188, 72457, 72457, - 1088, 213, 3520, 3190, -5283, 20549, 3673, 4944, 36509, -5283, - 197, -5283, -5283, 87698, -5283, 3295, -5283, -5283, 1038, -5283, - 3616, -5283, 3197, -5283, 89600, 213, -5283, -5283, -58, 3594, - -5283, 3208, -5283, -5283, -5283, -5283, 72457, -5283, -5283, -5283, - -5283, -5283, -5283, 3211, -5283, -5283, 3416, 3299, -5283, 3249, - -5283, -5283, 536, 3905, -5283, 2095, 87698, -5283, -5283, 2779, - -5283, 2779, 2779, 2779, 2779, 2779, -5283, -5283, -5283, 3270, - 3554, -5283, 3555, -5283, 2743, 2225, 42674, 2902, 3762, 3248, - 408, 3250, 3723, 3786, -5283, -5283, -5283, 2216, -5283, -5283, - 2288, 3955, 3629, -5283, -5283, -5283, -5283, 2310, 3253, -5283, - -5283, -5283, -5283, -5283, 4015, -5283, 72457, 3455, 3637, 3637, - 3637, 4024, -5283, -5283, -5283, 72457, -5283, -5283, -5283, 534, - -5283, 54763, 1935, 87698, 72457, 3303, -5283, 72457, 20549, -5283, - -5283, 20549, 52080, 3620, 3520, -5283, -5283, 72457, 2256, -5283, - -5283, -5283, 4015, 3637, 72457, 4017, 72457, 3741, -5283, 3273, - -5283, 3265, -5283, -5283, -5283, 3868, -5283, -5283, -5283, 3280, - 2369, 56148, -5283, 835, 3640, 55456, 72457, -5283, -5283, 3651, - 3436, -5283, -5283, -5283, -5283, -5283, -5283, 3380, -5283, -5283, - 3310, -5283, -5283, -5283, 3312, -5283, 3312, 3312, -5283, -5283, - 3312, 55456, -5283, -5283, 54763, 1642, 6926, 3961, 3344, -5283, - 68653, -5283, 3611, 22057, -5283, -5283, -5283, 3585, 229, -131, - -5283, -5283, 3787, 87698, 3533, 3988, 3962, -5283, -5283, -5283, - -5283, -5283, -5283, 3791, 3324, 3941, 3321, -5283, -5283, 20549, - 3326, -5283, -5283, -5283, -5283, -5283, -5283, -5283, 72457, 3331, - 25073, 25073, -5283, 4088, 4088, 4088, 20549, 3124, 1281, 3683, - 20549, 20549, 20549, 2462, 3333, -5283, -5283, -5283, 1395, -5283, - 3336, 20549, 20549, 69287, 3337, -5283, 4740, 20549, 4036, 20549, - 20549, 20549, 20549, 20549, 4487, 20549, -5283, -5283, 88966, 69287, - 3789, 3346, -5283, 3342, -5283, 2518, 20549, 2535, 20549, -5283, - -5283, 20549, 20549, 3350, 20549, 20549, 27335, 3352, 20549, 20549, - 20549, 3354, 3484, 4088, 4088, 20549, 2552, -5283, 16025, -5283, - -5283, -5283, -5283, -5283, 4088, 4088, 20549, 20549, 2587, 20549, - 20549, 20549, -5283, 3358, 20549, 20549, 20549, 20549, 20549, 20549, - 20549, -5283, 20549, 20549, 20549, 20549, 20549, 20549, 1717, 20549, - 20549, 72457, 20549, 20549, 20549, 20549, 20549, 20549, 20549, 4029, - 72457, 20549, 20549, 20549, 20549, 4039, 20549, 20549, 20549, 3371, - 20549, 72457, 20549, -5283, 20549, 3206, 3206, -5283, 20549, 16025, - 20549, 3372, 69921, 20549, 20549, 20549, 20549, 21303, -5283, 21303, - -5283, -5283, 3373, 333, -5283, 3841, 20549, 3370, 64849, -5283, - -5283, -5283, -5283, 20549, 20549, 20549, 27335, -5283, 1512, -5283, - -5283, -5283, -5283, -5283, 15271, 27335, 27335, 3378, 27335, 27335, - 27335, 27335, 27335, 27335, 4005, 27335, 27335, 28089, 28843, 27335, - 27335, 27335, 27335, 2158, -5283, 83894, 25073, 74359, 3392, 4058, - -5283, 88966, -5283, 1315, 553, 1369, 5067, 30316, -5283, 3394, - -5283, 3892, 3399, -5283, 680, 3393, 72457, -5283, -5283, -5283, - 3974, 3405, 4078, 55456, 54763, 1841, 3402, 539, 3425, -5283, - -5283, 56148, 87698, -5283, -5283, -5283, -5283, -5283, 4146, 20549, - -5283, 55456, -5283, 1165, 14517, -5283, 1343, 1472, 320, -5283, - -5283, -5283, -5283, -5283, 14517, 87698, 60237, 3428, 3526, 3445, - 2779, 87698, 72457, 87698, 90234, 87698, 87698, 72457, 55456, 72457, - -5283, -5283, -5283, 87698, 1493, 491, 1082, 1493, 4076, -5283, - 1456, 1456, -5283, -5283, -5283, 81358, -5283, -5283, -5283, 1493, - 87698, 87698, 1493, 54763, -5283, 491, 1528, -5283, 3727, 3522, - -5283, -5283, -5283, 3773, -5283, -5283, 4122, 3451, -5283, 3797, - -5283, -5283, 3547, -5283, -5283, 72457, -5283, -5283, 491, -5283, - 491, 491, 20549, 1493, 1493, 1493, 2041, -5283, 3458, -5283, - 3461, -5283, -5283, 3457, 4104, 3466, -5283, -5283, 4040, 908, - -5283, 3886, -5283, 4023, -5283, 20549, 3673, 3520, -5283, -5283, - 3743, -5283, 3744, 3745, 3758, -5283, -5283, -5283, -5283, 3912, - 3765, -5283, 2349, 3766, -5283, -5283, 3493, -5283, -5283, -5283, - 30316, 83894, -5283, 3498, -5283, 3517, -5283, -5283, -5283, 92136, - -5283, 90868, -5283, 2349, -5283, -5283, -5283, 72457, 4001, -5283, - 2349, 1754, 87698, -5283, -5283, -5283, 965, -5283, -5283, -5283, - 3612, 1619, -5283, -5283, 680, 2052, 3690, -5283, -5283, -5283, - 83894, -5283, -5283, -5283, -5283, -5283, 4189, -5283, 56148, 54763, - 83894, 87698, 87698, 87698, 72457, 72457, 2779, -5283, -5283, 2779, - -5283, 2779, -5283, 2779, 3548, -5283, -5283, -5283, -5283, 211, - 341, 4248, -5283, 2622, -5283, 2978, 2622, 3741, 3772, -5283, - 4182, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, 3524, 3762, -5283, -5283, -5283, 3515, -5283, 3518, - 2629, 2902, -5283, -5283, -5283, -5283, -5283, -5283, 140, -5283, - -5283, -5283, 1426, 3879, 2818, -5283, 83894, 2818, -107, 1581, - -5283, 3521, 2349, 2893, -5283, 2893, -5283, 680, -5283, 3821, - -5283, 3822, 242, -5283, -5283, -5283, -5283, -5283, 72457, 3532, - -5283, 3708, 3527, 3535, 3520, 3520, 46744, 4268, 4006, 6095, - 137, 3583, -5283, -5283, -5283, -5283, -5283, 72457, -5283, -5283, - 1660, 3684, 4021, 3974, 3618, -5283, 3543, -5283, -5283, 403, - -5283, 4127, 87698, 4215, 76920, -5283, 72457, 87698, 835, 3551, - -5283, -5283, -5283, -5283, -5283, 320, -5283, 3560, 190, 72457, - 72457, 52080, -5283, 3549, -5283, -5283, 87698, -5283, -5283, -5283, - -5283, 4045, 429, 30958, 70555, -5283, 70555, 70555, -5283, -5283, - -5283, -5283, -5283, 1159, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, 43367, 3520, -5283, 72457, -5283, 4202, 356, -5283, 151, - 72457, -5283, -5283, 20549, -5283, 4209, 3698, 87698, -5283, 4275, - -5283, -5283, -5283, -5283, -5283, -5283, 3520, 87698, 87698, 52080, - 52080, 20549, -5283, 1414, 20549, -5283, 3576, -5283, 3578, 3581, - 3432, 3935, 20549, 20549, -5283, 3456, 402, 224, -5283, 3587, - 3600, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, 3592, - -5283, -5283, -5283, 342, 349, 3593, -5283, 3596, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, 4269, -5283, - 1125, -5283, -5283, 238, 252, 392, 398, 407, 3621, 413, - 3358, -218, 3602, 69287, 88966, 4088, 3608, 1496, 4088, 3610, - 419, 1622, 445, -5283, 1829, 1947, 3212, -5283, 602, 650, - 755, -5283, -5283, 3617, 3623, 233, 4088, 3624, 17533, 18287, - 19041, 3619, 3628, 3630, 3631, 760, 1957, 4088, 3641, 2022, - 2023, 2086, 88966, 801, 2154, 851, -5283, 2244, 873, 884, - 888, 969, 2165, 2173, 1072, 1080, 1122, 2283, -5283, -5283, - -5283, -5283, 3601, 2183, 2186, 3639, 3643, 2326, 2262, 2299, - 2363, 2354, 2376, 2383, 72457, 3645, 2386, 2397, 1233, 2389, - 72457, 2439, 2444, 1340, -5283, 2480, 3646, 1345, 257, 3647, - 3648, 2499, 3653, 1368, -5283, 88966, 87698, 3654, 3615, 260, - 200, 1437, 2529, 4487, 4487, -5283, 20549, 84, 193, 88966, - 1472, -5283, 4158, 2974, 1806, -5283, -5283, -5283, -5283, -5283, - -5283, 404, -5283, 3660, -5283, 3662, 3085, 3652, 20549, 3431, - 3652, 362, 3827, 1190, 1190, 27335, 3700, 3238, 21303, 362, - 21303, 362, 3652, 3652, 3652, -5283, 27335, 3663, 27335, 27335, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, 4227, 3668, 1890, - 3670, -5283, -5283, -5283, -5283, -5283, -5283, 78, 4074, -5283, - 3859, 271, 20549, 2349, -5283, 3697, 4183, 4184, 4186, -5283, - -5283, -5283, -5283, 55456, 55456, 72457, 4191, 20549, -5283, 1203, - 3687, -5283, -5283, 4364, 56148, 4369, -5283, 3703, 31600, 70555, - 70555, 70555, 87698, 87698, 14517, 59560, 4377, 4378, 320, 58883, - -5283, 3520, 320, -5283, 3709, 3710, -5283, -5283, 25073, 2492, - -5283, 3520, -5283, 1365, 3984, -5283, 3717, 3719, -5283, 3706, - 3718, 3720, 62945, 20549, -5283, 320, 1343, -5283, -5283, -5283, - -5283, -5283, 3725, 87698, -5283, -5283, -5283, 87698, -5283, -5283, - -5283, -5283, -5283, -5283, 2349, 20549, -5283, -5283, 1493, 87698, - 1493, -5283, 2349, 4392, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, 4066, -5283, 85162, 4267, 880, -5283, 3724, -5283, -5283, - -5283, -5283, -5283, 1493, -5283, -5283, -5283, -5283, -5283, 3894, - 3772, 2633, 4076, -5283, 491, 72457, 1493, 1493, 3520, -5283, - -5283, -5283, -5283, 87698, 4567, 4265, -5283, 3737, -5283, -5283, - -5283, 72457, -5283, 52080, 87698, 87698, -5283, 4275, 83894, 60914, - 72457, -5283, -5283, -5283, 2248, -5283, -5283, -5283, -5283, -5283, - 3520, -5283, 19795, 4440, -5283, -5283, -5283, -5283, 2349, -5283, - -5283, 5068, -5283, 72457, -5283, 66751, -5283, 66751, 1961, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - 418, 467, 3775, 3741, -5283, -5283, 72457, 955, 151, -5283, - 4497, -5283, -5283, -5283, -5283, -5283, 3740, -5283, 3790, -5283, - -5283, -5283, 3746, -5283, 4416, -5283, -5283, 156, 890, 242, - -5283, 59, 4336, 4337, -5283, -5283, 87698, -5283, 2779, -5283, - -5283, 2779, 72457, 2779, -5283, -5283, 87698, -5283, -5283, 2779, - -5283, 87698, 2779, -5283, -5283, -5283, 4252, 4252, -5283, 65483, - -5283, -5283, 4238, 4396, -5283, 87698, -5283, -5283, 2131, -5283, - 4419, -5283, -5283, 4127, -5283, 3757, -5283, 20549, -5283, 3764, - 3770, -5283, -5283, -5283, -5283, -5283, -5283, 2902, 378, -5283, - 320, 320, 3985, 4288, 4289, 3903, 2349, 4300, 4301, 4302, - -5283, -5283, -5283, 2349, 2349, -5283, -5283, 320, -5283, 2559, - -5283, -5283, -5283, -5283, 4330, 1022, -5283, 320, 320, -5283, - 2778, -5283, -5283, -5283, -5283, -5283, -5283, -5283, 1819, -5283, - -5283, 199, 2150, 54763, 4253, 4375, 3798, -5283, 72457, 4460, - -5283, -5283, 20549, 4303, -5283, -5283, 4006, -5283, 3816, 3817, - 3818, 3820, 3823, 3824, 3828, 3829, 3838, 3839, 3840, 3844, - 3849, 3851, 3856, 3857, 3864, 3869, 3870, 3871, 3872, 3875, - 3878, 3880, 3809, -5283, -5283, 3887, -5283, -5283, -5283, -5283, - 320, 320, 320, 320, -5283, 3396, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, 4080, 4229, -5283, 2139, 87698, 4306, - 76920, -5283, 20549, 4470, -5283, -5283, 2041, -5283, 3855, 680, - -5283, -5283, 56148, -5283, 83894, 55456, -5283, -5283, -5283, 3862, - 1414, 47411, -5283, -5283, 4556, -5283, 2411, -5283, 54763, 4315, - -5283, 70555, 3866, -5283, 3873, 4371, 4372, 4373, 4380, 52080, - 1203, -5283, -5283, 3884, -5283, -5283, 4040, 4252, 3911, 4159, - 4279, -5283, -5283, -5283, 2809, -5283, -5283, 3520, -5283, -5283, - -5283, 4532, 54065, 48078, 3888, -5283, -5283, -5283, 2454, -5283, - -5283, 94322, 94322, 94322, 4275, -5283, 1467, -5283, 20549, -5283, - -5283, 20549, -5283, 3520, 3777, 3453, 42026, -5283, 42026, 3453, - 20549, -5283, 3895, -5283, 4534, 4538, -5283, -5283, 20549, -5283, - 20549, -5283, 20549, -5283, 20549, 20549, 20549, 20549, 20549, 20549, - -5283, 27335, -5283, 3896, 3898, -5283, -5283, 3900, -5283, 20549, - -5283, 20549, -5283, -5283, 20549, 20549, 20549, 20549, -5283, -5283, - 20549, 20549, 3901, -5283, 20549, 3847, 20549, 3877, 20549, 3993, - 20549, -5283, -5283, -5283, 22811, -5283, 3908, -5283, -5283, -5283, - -5283, -5283, 20549, -5283, 20549, -5283, 20549, 20549, 20549, 20549, - 20549, -5283, -5283, 20549, 20549, 20549, -5283, 20549, -5283, 4479, - 20549, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, 20549, -5283, -5283, -5283, -5283, 20549, -5283, - 324, 23565, -5283, 20549, 20549, 20549, -5283, -5283, 20549, 3899, - 3904, -5283, 87698, -5283, 20549, 2606, 1913, 151, 3914, 20549, - -5283, 3921, 3926, 3190, -5283, 411, 2681, -5283, -5283, -5283, - 1856, -5283, -5283, -5283, 92770, 20549, -5283, -5283, -5283, -5283, - -5283, 27335, 263, 3918, 25073, -5283, 3827, 4487, 4487, 3173, - 20549, 3431, 3827, 87698, 4656, 3923, -5283, 20549, 88966, 20549, - 3927, 3925, -5283, 3930, -5283, -5283, -5283, 3933, -5283, 2373, - 1913, 4016, 4379, -5283, 3520, -5283, 30316, 4435, -5283, -5283, - 72457, 2295, -5283, 3248, 3248, 67385, -5283, -5283, -5283, 4476, - 87698, 4133, -5283, 55456, 54763, 70555, 4612, 4613, 4615, 4616, - 320, 320, -5283, -5283, 7397, 55456, 14517, -5283, -5283, -5283, - -5283, 4451, 4452, -5283, -5283, 1116, 4239, 4513, -5283, -5283, - -5283, 3951, -5283, -5283, -5283, 826, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, 3520, 14517, -5283, 3428, 3958, 33012, - 881, -5283, -5283, -5283, 3520, -5283, -5283, -5283, -5283, 3968, - -5283, 82626, -5283, 4299, 82626, 82626, 88966, -5283, -5283, 4553, - -5283, -5283, 4392, 3741, 491, -5283, -5283, 2662, 3965, 4606, - 4610, -5283, 4555, 2675, 4555, -5283, -5283, 3965, 69921, 2041, - 3974, 48745, -5283, 2472, -5283, 4731, 49412, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, 3982, -5283, 2492, - -5283, 3983, -5283, 3520, -5283, 4004, -5283, -5283, -5283, 3862, - 471, 4010, 3989, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - 3772, 147, -5283, -5283, -5283, -5283, -5283, 942, -5283, -5283, - -5283, 965, 2261, -5283, 151, 4219, -5283, -5283, 166, 4443, - -5283, 4253, 4668, 1294, 1294, 4584, 72457, 72457, 6811, 4330, - -5283, -5283, 87698, -5283, -5283, -5283, -5283, -5283, -5283, 1266, - -5283, 72457, -5283, -5283, -5283, 83894, 3999, -5283, -5283, 3997, - -5283, 20549, 680, 4118, -5283, -5283, -5283, 1856, 4745, 4670, - 3772, -5283, 3520, -5283, 4007, 19795, 4018, 4014, -5283, -5283, - 2622, -5283, 4022, -5283, 2629, 58883, 41377, -5283, 4389, 4393, - 1983, -5283, -5283, -5283, -5283, -5283, -5283, 3957, 1581, -5283, - 320, 320, -5283, 180, 320, -5283, -5283, 1085, -5283, -5283, - 3187, 56, 4330, -5283, 2349, 2349, 2349, 2349, 151, 2349, - 2349, 2481, -5283, 3957, 3957, 2893, -5283, 1358, -5283, -5283, - -5283, -5283, 4831, 114, -5283, -5283, 83894, -5283, 4523, 4525, - -5283, 4530, -5283, -5283, 139, -5283, 2971, -5283, 120, -5283, - 4583, 87698, 4789, 3798, -5283, 1242, 3520, 52080, 20549, -5283, - 4041, 4042, 151, 4052, 151, 151, 2349, 2349, 3968, 2349, - 151, 2349, 2349, 2349, 2349, 2349, 2349, 2349, 151, 2349, - 1043, 3704, 2349, 151, 6095, -5283, 2349, 1913, 3957, 3957, - 3684, -5283, 4720, 320, -5283, 4434, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, 379, -5283, 27335, -5283, -5283, - -5283, 4051, 2041, 959, 3520, 81992, 4604, 3741, 4072, -5283, - -5283, -5283, -5283, -5283, -5283, 1734, 4735, -5283, 4065, 20549, - -5283, -5283, 87698, 968, 4259, 4566, 4081, 77554, 54763, 54763, - 54763, 54763, 44076, 4661, 72457, -5283, 4728, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, 8271, -5283, -5283, -5283, 4387, 2602, 4079, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - 4083, -5283, 20549, -5283, -5283, 4446, -5283, -5283, -5283, -5283, - -5283, 50079, 20549, 3520, 3520, 20549, 4092, 4092, 4093, 4095, - -5283, -5283, 4736, 4092, 4092, -5283, 4092, 4743, 4092, 4092, - 4100, -5283, -5283, 4106, 4108, 4109, 3190, -5283, 20549, 20549, - 2537, 249, 2545, 2555, 1521, 1542, 278, -5283, 2566, 3686, - -5283, -5283, 2575, 2626, 2644, 2657, 1557, 2733, 1236, 282, - -5283, 3520, 20549, 3520, 20549, 3520, 20549, 3520, 21303, 2762, - -5283, 2521, 3711, -5283, 2530, 4113, 2773, 309, 2783, 1578, - 2549, 315, 2787, 2811, 2835, 2551, -5283, 1727, 4701, 2580, - 21303, 2862, 2884, 1594, 1651, 2887, 88966, 87698, 4107, 2891, - 4120, 4120, 214, -5283, 4119, -5283, -5283, -5283, 4124, -5283, - 2896, 20549, 20549, 4182, -5283, 399, 411, 4126, 3723, 4662, - -5283, 2622, -5283, 2216, 84, -5283, 4125, 3520, 4132, -5283, - -5283, 20549, -5283, -5283, -5283, -5283, 27335, 323, 4136, -5283, - 4227, -5283, 20549, -5283, 4715, 4137, 3190, -5283, 3520, -5283, - -5283, 87698, 27335, -5283, 20549, 3968, -5283, -5283, 4875, 4140, - 4160, 4147, 3933, -5283, 55456, -5283, 4693, 69921, 3515, 3515, - 432, 4149, 2599, 4681, -5283, -5283, -5283, 4145, -5283, 2614, - -5283, 4822, 3560, -5283, 4823, 54763, 54763, 54763, 54763, 14517, - 14517, -5283, -5283, -5283, 4155, 4156, -5, 4714, -5283, -5283, - -5283, -5283, 87698, 87698, 14517, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, 3860, -5283, 3772, -5283, -5283, 82626, -5283, - -5283, -5283, -5283, -5283, -5283, 1493, -5283, -5283, 4161, 361, - 2681, -5283, -5283, -5283, 2041, 3841, 336, -5283, -5283, -5283, - 4794, 4555, 4555, 3965, 4795, 4474, 4162, -5283, 320, -5283, - 4830, 4629, -5283, 87698, 4166, -5283, 4167, 85796, 19795, 4168, - -5283, 4726, -5283, -5283, 4835, 66751, 4172, -5283, 4397, -5283, - -5283, -5283, 4192, -5283, 4178, -5283, -5283, 54763, -5283, 4546, - -5283, -5283, -5283, -5283, -5283, 72457, -5283, -5283, 4540, 72457, - 320, 320, 320, 320, 320, 4221, 320, 320, 320, 320, - 320, 4544, 320, 320, 320, 320, 320, 320, 320, 320, - 320, 320, 121, 87698, 320, 320, 37857, -5283, -5283, 4757, - -5283, 6172, -5283, -5283, -5283, 320, 7840, 4330, 4194, 87698, - -5283, 3798, 4195, 499, -5283, 1523, -5283, 65483, 87698, 3520, - 4187, 1795, -5283, 4420, 4198, -5283, -5283, 20549, -5283, 4231, - -5283, -5283, 39214, -5283, 78188, -5283, -5283, -5283, 19795, -5283, - 2902, 4022, 4199, 2051, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, 324, 324, -5283, -5283, 324, 324, -5283, -5283, -5283, - -5283, 324, 324, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, 1022, -5283, -5283, -5283, 1819, -5283, 4129, 4599, - 4774, 4599, 4775, 4702, 3442, 320, 4779, 4946, -5283, 205, - 320, 4782, 4847, 4290, 4849, 4788, -5283, 4294, 4599, 4792, - 4409, 4796, 4797, 4800, -5283, -5283, 9355, -5283, -5283, -5283, - -5283, 806, 71189, -5283, -5283, -5283, -5283, -5283, 4725, 1580, - -5283, -5283, -5283, -5283, 992, 151, 151, 151, 3704, 2627, - -5283, 2971, 2095, 1823, 4729, 2320, -5283, 2630, -5283, 4982, - -5283, 169, -5283, 44743, 3520, 345, 380, -5283, 437, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, 87698, 3957, 4229, - -5283, -5283, 3827, 76920, 3741, -5283, 4571, 4772, 3524, -5283, - -5283, -5283, -5283, 3841, -5283, 3520, -5283, -5283, 4900, -5283, - -5283, 54763, -5283, -5283, 242, 242, 242, 242, 3309, 4593, - -5283, -5283, -5283, 4728, 4516, -5283, 1317, -5283, 4092, 4092, - 4092, -5283, 4093, 4806, 4093, -5283, 4633, 533, 1567, 4633, - -5283, 533, 4093, -5283, 4245, -5283, 4633, -5283, 533, 4092, - -5283, 4092, -5283, -5283, 533, 4092, -5283, 4247, 4093, -5283, - -5283, 4633, -5283, -5283, -5283, -5283, 1480, 2568, 4093, -5283, - -5283, -5283, 4092, -195, 4092, 4092, 4092, 4449, 4092, 4092, - 4146, -5283, -5283, -5283, -5283, -5283, 4093, 43, 4092, 4092, - 4092, 4092, 4095, 4952, 4922, 4924, -5283, 87698, -5283, 3520, - -5283, 52080, 94322, 278, 3520, 1971, -5283, -5283, -5283, 2097, - -5283, -5283, -5283, 4845, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, 4258, 4487, 4487, - -5283, 4999, 4798, -5283, -5283, 20549, 20549, -5283, 20549, -5283, - 1623, 4263, 4733, -5283, -5283, -5283, -5283, 20549, -5283, 20549, - -5283, -5283, 20549, 3520, 3520, 3520, 4487, -5283, -5283, 3279, - -5283, -5283, 3453, -5283, -5283, 20549, -5283, 20549, -5283, 20549, - -5283, 20549, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - 444, 4487, -5283, -5283, 20549, 20549, -5283, -5283, -5283, 87698, - -5283, 1913, 4271, 4539, -5283, -5283, -5283, 1913, 4402, -5283, - -5283, 1913, 151, -5283, -5283, -5283, -5283, 3524, 399, -5283, - 4272, 2491, -5283, -5283, -5283, -5283, -5283, -5283, 4273, 87698, - -5283, 2641, -5283, -5283, 20549, -5283, 4856, 4274, 1795, 5017, - 4283, -5283, 39214, -5283, 4286, 4291, -5283, -5283, -5283, 3827, - 4487, -5283, 4914, 4864, -5283, 1913, 87698, -5283, -5283, -5283, - 4293, -5283, 320, 3841, -5283, 3407, 432, 69921, -5283, 78822, - 2246, 3762, -5283, 87698, 54763, 54763, 3703, 3703, 3703, 3703, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, 320, 320, -5283, - 33012, 59560, -5283, -5283, -5283, -5283, -5283, -5283, -5283, 3772, - -5283, -5283, 3248, 4830, -5283, -5283, 1856, 2622, 3737, 84, - -5283, 3965, 4935, 4938, -5283, 3965, -5283, -5283, 69921, 3741, - 19795, 2556, 6014, -5283, -5283, -5283, 35806, -5283, 4304, -5283, - 4305, -5283, -5283, 2322, 4635, 4926, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, 19795, -5283, 2349, 2485, -5283, 4335, -5283, 4311, 4313, - 320, -5283, 176, 250, 251, 283, -5283, -5283, 3968, 151, - 151, 2349, 2349, 320, 151, 83894, 1934, 151, 3968, 3968, - 287, 2349, 1703, 176, -5283, -5283, -5283, 151, 176, 73725, - 72457, 4983, 87698, 4316, 4317, 4314, -5283, -5283, -5283, -5283, - -5283, 2523, -5283, 4873, 2779, 2248, 2248, -5283, 4318, 150, - -5283, -5283, 7996, -5283, 56834, -5283, -5283, -5283, 357, 4912, - 5078, -5283, 4463, -5283, -5283, -5283, -5283, 4430, 3798, 41377, - -5283, -5283, -5283, 20549, -5283, -5283, -5283, 680, 4329, 982, - 20549, 87698, -5283, 86430, -5283, -5283, -5283, -5283, 1967, -5283, - 19795, 4331, 4332, -5283, -5283, 2622, 2461, 2622, 4338, 2629, - -5283, -5283, 2902, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, 71823, 2779, -5283, 4983, 4368, -5283, -5283, -5283, 4984, - 2590, 565, 2590, 35806, 1523, 374, 4969, 2305, 5006, 4382, - 4904, 2590, 2590, 61591, 565, 69921, -5283, -5283, -5283, -5283, - 72457, 62268, 565, -5283, -5283, -5283, 87698, -5283, 2590, 565, - -5283, 565, 565, 35806, -5283, 11729, -5283, -5283, 38559, 1895, - -5283, -5283, -5283, 2349, -5283, -5283, -5283, -5283, -5283, 4936, - 4937, -5283, -5283, -5283, 4521, 20549, 20549, 4940, 87698, 4941, - -5283, 4744, -5283, 87698, -5283, 3841, -5283, -5283, -5283, 4643, - 4855, 2659, -5283, -5283, 2682, -5283, -5283, 2695, -5283, -5283, - -5283, -5283, -5283, 3855, -5283, -5283, 4698, 3757, -5283, 4554, - 242, 4826, 4826, 4826, 4826, 52080, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, 5005, -5283, -5283, 4633, 4633, 452, -5283, - 452, 320, -5283, -5283, 305, -5283, -5283, -5283, -5283, 261, - 42026, 5111, 4762, 3507, 4633, -5283, 4838, 533, -5283, -5283, - 452, 2052, -5283, -5283, 4633, -5283, -5283, -5283, 2052, 452, - -5283, 4844, -5283, -5283, -5283, 452, 4633, 4575, 87698, 4952, - 533, -5283, -5283, 91502, 533, 452, -5283, 4928, -5283, 261, - 5111, 533, 4633, 452, 452, 20549, -5283, -5283, 415, 4381, - -5283, 50746, -5283, 4376, 4383, 4384, 4386, 261, 2698, 4388, - 261, 261, -5283, 4390, 4391, 20549, 2052, 5004, 2900, 1825, - 2705, 4659, 4611, -5283, 4545, -5283, 2924, 2928, 2985, 1905, - 4093, -5283, -5283, -5283, -5283, 5027, 4092, -5283, 5123, -5283, - 4092, -5283, -5283, -5283, -5283, -5283, -5283, 4395, 2988, 3520, - 3520, 3002, -5283, -5283, -5283, 2716, 1932, 3009, 3039, -5283, - -5283, -5283, 4399, -5283, -5283, 381, -5283, 4400, 3757, -5283, - -5283, -5283, 4182, 1856, -5283, -5283, 2734, 5130, 2282, 20549, - -5283, 20549, -5283, -5283, -5283, 87698, 4403, 4488, 1150, -5283, - 2740, -5283, -5283, 4404, 69921, 19795, 1856, -5283, -5283, -5283, - 2246, -5283, 4401, 2622, 2288, 2622, -5283, 3524, -5283, -5283, - 3703, 3703, 14517, 14517, -5283, -5283, -5283, -5283, 3762, 3515, - 5560, 84, -5283, -5283, -5283, 4601, 4883, 3965, 3965, 4689, - 4886, 20549, 4407, -5283, 4127, -5283, -5283, 4614, 2139, 2139, - -5283, -5283, -5283, -5283, 4412, 4417, -5283, -5283, -5283, 85796, - -5283, 2742, -5283, -5283, 5172, 2753, -5283, -5283, 83894, 4421, - 87698, 87698, 2349, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, 4423, -5283, -5283, -5283, -5283, -5283, 2349, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, 4425, 4428, -5283, 339, -5283, 38559, - 4429, 5063, 5064, 2248, -5283, 2779, 72457, -5283, 73725, -5283, - 2779, 2779, 9770, 87698, -5283, 5183, -5283, -5283, -5283, -5283, - -5283, 435, 4394, -5283, -5283, 1844, 4557, -5283, 87698, -5283, - -5283, 2349, 5184, -5283, 4841, 1795, -5283, 20549, 4442, 4445, - -5283, -5283, -5283, -5283, 3520, 5196, 4447, -5283, -5283, -5283, - 79456, -5283, -5283, 19795, -5283, 5088, -5283, -5283, -5283, -5283, - 2902, -5283, -5283, -5283, 2095, 565, -5283, 2095, -5283, 73725, - 35806, 73725, -5283, 41377, 73725, 2590, 87698, -5283, -5283, 5086, - 73725, 73725, -5283, -5283, 35806, 4453, -5283, 1795, 2741, -5283, - -5283, -5283, 1913, 4919, 73725, 35806, -5283, 35806, -5283, 3950, - 2660, -5283, 4456, 87698, -5283, -5283, -5283, -5283, -5283, -5283, - 3520, 4487, 4848, -5283, -5283, 4569, 2349, 4817, -5283, 401, - -5283, 87698, 184, 52080, -5283, 151, -5283, 151, -5283, 151, - -5283, -5283, 4826, 1729, -5283, -5283, -5283, -5283, 51413, -5283, - 5096, 4966, -5283, -5283, 4925, 4949, -5283, -5283, -5283, -5283, - 87698, -5283, -5283, -5283, -5283, -5283, -5283, 320, -5283, -5283, - -5283, -5283, 2797, -5283, -5283, 2816, -5283, -5283, -5283, -5283, - 91502, 10871, -5283, 2821, -5283, -5283, -5283, 4952, 4461, -5283, - -5283, 4485, -5283, -5283, -5283, -5283, 5111, -5283, -5283, 3520, - 74993, -5283, -5283, -5283, 87698, 5141, 5142, -5283, -5283, -5283, - -5283, -5283, 5065, -5283, -5283, -5283, -5283, 4473, 1795, -5283, - -5283, 4478, 82626, -5283, -5283, 20549, -5283, 4706, -5283, 4813, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, 261, - -5283, -5283, -5283, -5283, 3968, -5283, -5283, -5283, 4484, -5283, - 151, 4127, -5283, -5283, 20549, -5283, -5283, 4486, 6092, 1795, - 1795, -5283, -5283, 151, -5283, 4379, 4489, 87698, -5283, 4864, - -5283, -5283, -5283, -5283, -5283, 2622, -5283, -5283, 80090, -5283, - -5283, -5283, -5283, 3757, -5283, -5283, 3524, -5283, -5283, 4493, - -5283, 4968, -5283, -5283, -5283, 4970, 3520, 87698, 4470, 2139, - 5238, 4990, -5283, 1118, -5283, -5283, 87698, -5283, -5283, 3968, - 4857, -5283, -5283, 4690, 87698, 2833, 1795, 4498, 2869, -5283, - 72457, -5283, -5283, 87698, 1856, -5283, 9355, -5283, 20549, 2779, - -5283, -5283, 73725, 4501, 4980, 1909, 73725, 73725, -5283, 5231, - -5283, 4496, -5283, 77, -5283, -5283, -5283, 4503, 4507, -5283, - 87698, -5283, -5283, 5200, 52080, -5283, -5283, -5283, 5098, 1823, - -5283, 4509, 4512, 8534, -5283, -5283, 10871, 4394, -5283, -5283, - 2300, 5138, -5283, 3520, -5283, -5283, 4518, 87698, -5283, -5283, - -5283, 1856, 2622, 5194, -5283, 5197, 1943, -5283, 73725, 1660, - 4146, -5283, 73725, 4417, -5283, -5283, 1734, -5283, 69921, -5283, - -5283, -5283, 5023, 1895, -5283, 87698, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, 4522, 2629, 4988, 2879, -5283, - -5283, -5283, -5283, 45410, -5283, -5283, -5283, -5283, 4716, -5283, - 1729, -5283, 5008, 72457, -5283, -5283, -5283, -5283, 261, 2052, - 261, 4952, -5283, -5283, 87698, -5283, 87698, 5116, -5283, -5283, - -5283, -5283, 37218, -5283, -5283, -5283, 4846, -5283, 2885, -5283, - -5283, 4528, 20549, -5283, -5283, -5283, 1194, 3044, -5283, -5283, - -5283, 4529, -5283, 4531, 3772, 4187, -5283, 4361, 4658, 4183, - 4184, 4186, 4707, 4871, -5283, 4709, -5283, -5283, -5283, 4542, - -5283, -5283, 1695, -5283, -5283, -5283, -5283, 1856, 3757, 4830, - 20549, 4543, 20549, 4548, 2894, -5283, -5283, 2139, 2139, -5283, - 1272, 4552, -5283, -5283, 4953, 4549, 2911, 680, 87698, -5283, - 5129, 680, 4558, 4559, -5283, -5283, 4757, 3050, 73725, 4980, - 1915, 87698, 5156, 1294, -5283, 1294, -5283, -5283, 4370, -5283, - -5283, 4292, 87698, 5007, -5283, 2035, -5283, -5283, -5283, -5283, - 4940, -5283, 87698, 1901, 4746, -5283, -5283, 53388, -5283, 5290, - 5291, 5239, 5293, 2300, -5283, 2467, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, 73725, 1097, -5283, 5261, 5263, 1895, -5283, - -5283, -5283, -5283, 565, -5283, 72457, -5283, -5283, 4417, 942, - 4657, -5283, 52080, 2246, 4522, 4570, 2232, 2216, -5283, -5283, - 1320, -5283, -5283, 87698, 87064, -5283, -5283, -5283, 3974, -5283, - -5283, -5283, -5283, -5283, 4563, -5283, 74993, -5283, -5283, -5283, - -5283, 94322, -5283, 1795, 82626, 82626, -5283, -5283, -5283, 2622, - 1455, -5283, 5325, 1536, -5283, -5283, 729, -5283, -5283, 87698, - 27335, 4660, -5283, -5283, 4642, -5283, -5283, 4500, -5283, 4182, - 5560, 3520, 87698, 3520, 87698, -5283, -5283, -5283, -5283, 2248, - -5283, 2248, -5283, 1272, -5283, -5283, 1022, 680, 2078, 1795, - 4578, 1757, -5283, 87698, 150, -5283, -5283, -5283, 1294, 2930, - -5283, 1440, 5162, -5283, 4580, -5283, 4582, 4585, -5283, 5217, - -5283, 2349, -5283, 4663, -5283, 4370, -5283, -5283, -5283, 4623, - 5224, 5182, 320, 83894, 29596, -5283, 5076, -5283, 5035, 5296, - -5283, 5347, 3410, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - 2320, -5283, -5283, 4802, -5283, 87698, -5283, 2052, 2052, 5334, - 2052, -5283, 5342, 5343, 2467, -5283, 5231, 1913, 4864, -5283, - -5283, 29596, -5283, -5283, -5283, 5248, -5283, 20549, 4958, -5283, - -5283, 2288, 2622, 2622, 4617, 2629, -5283, -5283, 2246, -5283, - 4803, 5341, 5344, -5283, -5283, 2934, -5283, -5283, 69921, -5283, - 87698, -5283, -5283, -5283, -5283, -5283, -5283, -5283, 4361, -5283, - -5283, 4748, 1716, -5283, 2945, -5283, -5283, -5283, 1913, -5283, - 4622, -5283, 4972, 320, 320, 4975, 320, 320, 320, 320, - 4624, 4500, -5283, 4973, -5283, -5283, 2951, 2964, 5297, 5297, - -5283, 2986, 1114, 4811, 2349, 320, 1485, 2078, -5283, -5283, - 320, -5283, -5283, 1485, 1757, -5283, -5283, 4627, -5283, 4630, - 4632, -5283, -5283, 87698, -5283, -5283, -5283, 1341, -5283, 87698, - 4634, 87698, 87698, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - 57520, -5283, 3704, 3704, 20549, -5283, -5283, -5283, -5283, -5283, - 3102, 5226, -5283, 4676, 1568, 320, -5283, 4872, 72457, 4744, - 87698, 4636, -5283, -5283, 2052, -5283, 2052, 2052, -5283, -5283, - -5283, 2999, -5283, -5283, 4637, 3520, 20549, -5283, 2622, 2136, - -5283, -5283, -5283, -5283, 2246, -5283, 2288, -5283, -5283, 401, - -5283, 4828, 4834, -5283, 87064, 4644, -5283, 320, 1523, -5283, - -5283, -5283, -5283, -5283, -5283, 87698, 4638, -5283, 4645, -5283, - -5283, 101, 320, 2349, 2349, 320, 3739, 3739, 1913, 83894, - 4732, -5283, -5283, 320, -5283, -5283, 2413, -5283, -5283, -5283, - 1294, 1294, 1485, 1114, -5283, -5283, -5283, 3657, -5283, 151, - -5283, 5268, 5094, -5283, 58206, -5283, -5283, -5283, 87698, 87698, - 4653, -5283, 438, 438, 3007, 87698, 3010, 3016, -5283, -5283, - -5283, -5283, -5283, -5283, 4654, 4665, -5283, 1117, -5283, -5283, - 4872, 5324, 5012, 4651, 87698, -5283, -5283, -5283, -5283, 4864, - 3520, -5283, 1856, 2622, -5283, -5283, -5283, -5283, -5283, 69921, - 19795, -5283, 4660, -5283, -5283, -5283, 3018, -5283, 24319, -5283, - -5283, -5283, 2349, -5283, -5283, 2349, -5283, -5283, -5283, -5283, - -5283, 3021, -5283, 83894, 5395, -5283, 5397, 4666, 4667, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, 3025, 3027, 87698, -5283, -5283, 1705, 5110, 5255, 5256, - 1114, 3034, 2078, 1757, -5283, 1696, -5283, 2751, 2751, 1758, - -5283, -5283, 87698, 4664, 3040, -5283, -5283, -5283, -5283, 5210, - -5283, -5283, 4645, -5283, 4673, -5283, 3827, -5283, -5283, 83894, - -5283, 4732, -5283, -5283, -5283, 85796, 85796, 4873, 1114, 3051, - -5283, -5283, -5283, 5159, 5377, -5283, 1114, -5283, -5283, -5283, - 4678, -5283, 2751, -5283, -5283, -5283, -5283, -5283, 1738, -5283, - -5283, -5283, 87698, -5283, 4977, 4841, -5283, 24319, 4680, 4500, - -5283, -5283, 4687, 3053, -5283, -5283, 1114, 438, 438, -5283, - -5283, -5283, -5283, 1738, -5283, 5378, -5283, 5429, 5138, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, 4821, 2052, - 5345, -5283, -5283, 5286, 4700, 1123, 2220, 63579, 5227, -5283, - -5283, 83894, -5283, -5283, -5283, -5283, -5283, 83894, 3070, -5283, - -5283, 69921, -5283, -5283, 52080, -5283, -5283, 66117, 4699, -5283, - 320, -5283, -5283, 69921, -5283, -5283, 19795, -5283, -5283 + 7483, 4635, 1905, 87971, -5092, 42, -5092, 848, -5092, -5092, + -5092, 3752, -5092, -5092, -5092, -5092, -5092, -5092, 267, 631, + -5092, 292, -5092, -5092, -5092, 83533, -17, 1146, -5092, -5092, + 84801, -5092, -69, -5092, 84801, -5092, -5092, 87971, -5092, 416, + -5092, 2828, 43, 553, 631, -66, -5092, -5092, 88605, 292, + 930, 72730, -5092, 1784, 87971, 292, -5092, -66, 87971, -5092, + 280, 283, -5092, 1894, 2869, 1389, 1315, -5092, -5092, 819, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, 3528, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + 73364, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, 378, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, 87971, 1719, 87971, + 1106, 1167, 87971, 1911, 1835, 84167, 87971, -5092, 1311, 78, + -5092, -5092, 1813, -5092, 1588, -5092, 631, 1980, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, 1440, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, 2163, 2208, 927, 2292, 2428, 87971, 1279, 1835, 2418, + 1835, 1835, 1835, 1835, 2444, 1835, 1835, 87971, -5092, 1835, + 1835, 106, 87971, 34022, -5092, 1220, 1059, 2423, -5092, -5092, + -5092, -5092, -5092, -5092, 52353, 631, 20822, 2557, 315, 4994, + 1895, -5092, 2419, -5092, -5092, 87971, -5092, -5092, 52353, 1131, + -5092, 2419, 34759, -5092, 32579, 11898, 2419, 631, 2510, -5092, + 20822, -5092, -5092, -5092, -5092, 2341, -66, -5092, 84167, -5092, + -5092, -5092, -5092, 2675, 20822, 290, -5092, -5092, -5092, 2288, + 87971, 2151, 1054, -95, 84167, 87971, 2208, 2593, -5092, 1688, + 1207, -5092, 2090, 2208, 2015, 2098, 2208, 2530, 87971, 2208, + -5092, -5092, 2063, 2063, 2063, 2350, 2063, -5092, 2063, -5092, + -5092, 2027, 87971, 2697, -5092, -5092, -5092, 2697, 2697, 2190, + 2750, 2754, 2758, 501, 1811, 223, 1860, 1813, 1773, 1588, + 1847, -5092, -5092, -5092, 2072, -5092, -5092, 248, -5092, 2225, + -5092, 2140, -5092, -5092, 1529, 55036, -5092, 87971, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, 1559, -5092, 2640, 594, + -5092, 2275, 2501, 2202, -5092, 2687, 84167, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, 2174, 87971, -5092, 2865, 20822, 2163, + -5092, 2677, -5092, -5092, -5092, -5092, 72730, -5092, 87971, -5092, + 2941, -5092, -5092, 2870, -5092, -5092, 76559, 545, 87971, 2889, + 87971, 87971, 87971, 87971, 87971, 87971, -5092, 84167, 2294, -5092, + -5092, 1835, 1835, -5092, 2842, 2388, 2343, 2261, 2222, 2529, + -5092, 2435, -5092, -5092, 2319, -5092, -5092, 142, -5092, -5092, + -5092, 179, 203, 212, 243, 2840, 260, -31, 306, 325, + -5092, -5092, -5092, 2756, 2850, 2282, -5092, 2639, 20822, -5092, + -5092, -5092, 2949, -5092, -5092, 954, 2729, 358, 72730, 93677, + 75915, 94595, 94595, 94595, -5092, 122, 2828, 87971, 94136, 87971, + 46350, -5092, 2301, -5092, -5092, 6781, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, 87971, -5092, -5092, 2349, 2753, -5092, + -5092, -5092, -5092, -5092, 2306, -5092, -5092, -5092, -5092, -5092, + -5092, 25346, -5092, 2321, 2332, 2334, 17052, 2338, 2342, 2369, + 2373, 2379, 2222, 2222, 2222, 2390, 2405, 2417, 2430, -5092, + 2432, 2442, 2445, 2450, -5092, 2453, -5092, 2460, 2480, 2482, + -5092, -5092, 83, 155, 2486, 2500, 21576, 2502, -5092, 68292, + 2517, 2534, 2537, 2549, -5092, -5092, 20822, 2390, 2554, -5092, + -5092, 2556, -5092, 2574, 2576, 2578, 2594, 2600, 2607, 2611, + 2613, 2619, 2888, 2625, 2628, 2641, 2651, 2390, -5092, 2658, + -5092, -5092, 2165, 2222, 2390, 2390, 2660, 2672, 2680, 2683, + 2694, 2704, 2720, 2723, 85435, 2739, 2741, 2752, 2765, 2771, + 2785, 2803, 68, 2807, 2811, 2814, 2822, 2827, 2829, 2846, + 2851, 2853, 2872, 2879, 2894, 2896, 2905, 2907, 2913, 2368, + 2918, 2921, 2929, 2948, 2952, 2464, 2957, 2964, 2975, 3007, + 3009, 3018, 3025, 229, 3032, 3045, 304, 3047, 3052, 3055, + 3061, 3065, 3073, 3077, 3080, 26100, 26854, 25346, 20822, -5092, + 87971, 89239, -5092, 3642, 2367, -5092, 3331, 25346, -5092, -5092, + -5092, 3131, -5092, 3158, -5092, -5092, -5092, -5092, -5092, -5092, + 2924, -5092, 2994, -5092, -5092, 3155, 2617, -5092, 3098, -5092, + -5092, -5092, -5092, -5092, 2609, 3083, 3190, 3223, -5092, -5092, + -5092, -5092, 2954, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, 2817, 2880, -5092, 3098, + -5092, -5092, 55729, 72730, 53020, -5092, -5092, -5092, 68926, -5092, + -5092, 2388, 3027, 3260, -5092, 3552, -5092, 3478, 59833, 3452, + -44, 49, 343, 390, 40208, 146, 80997, 425, 1000, 2966, + 64488, 40929, 2993, 287, 3081, -5092, 3086, 3093, 3096, 3103, + 3105, 3108, 3113, -5092, -5092, -5092, 3156, 3125, 3094, 1549, + -5092, -5092, 894, 3195, 641, -5092, 3474, -5092, 1549, -5092, + 35419, 3765, 2509, -5092, 981, -5092, 3812, -5092, -5092, 3239, + 3224, 3254, -5092, 2984, -5092, 2208, -5092, 854, -5092, 3765, + 1549, 2509, -5092, 3424, 3508, 1501, 3832, -5092, 1810, -5092, + -5092, 2949, -5092, 2988, 87971, -5092, -5092, 3157, 72730, 72730, + 1281, 257, 3642, 3163, -5092, 20822, 3646, 5738, 36782, -5092, + 197, -5092, -5092, 87971, -5092, 3269, -5092, -5092, 974, -5092, + 3593, -5092, 3172, -5092, 89873, 257, -5092, -5092, 1147, 3564, + -5092, 3177, -5092, -5092, -5092, -5092, 72730, -5092, -5092, -5092, + -5092, -5092, -5092, 3186, -5092, -5092, 3389, 3277, -5092, 3214, + -5092, -5092, 190, 3882, -5092, 2828, 87971, -5092, -5092, 2697, + -5092, 2697, 2697, 2697, 2697, 2697, -5092, -5092, -5092, 3244, + 3527, -5092, 3530, -5092, 2687, 1980, 42947, 467, 2327, 3215, + 248, 3216, 3694, 3758, -5092, -5092, -5092, 2116, -5092, -5092, + 2596, 3927, 3604, -5092, -5092, -5092, -5092, 2222, 3229, -5092, + -5092, -5092, -5092, -5092, 3995, -5092, 72730, 3433, 3617, 3617, + 3617, 4003, -5092, -5092, -5092, 72730, -5092, -5092, -5092, 594, + -5092, 55036, 1885, 87971, 72730, 3281, -5092, 72730, 20822, -5092, + -5092, 20822, 52353, 3597, 3642, -5092, -5092, 72730, 1330, -5092, + -5092, -5092, 3995, 3617, 72730, 3997, 72730, 3720, -5092, 3258, + -5092, 3255, -5092, -5092, -5092, 3847, -5092, -5092, -5092, 3256, + 2294, 56421, -5092, 1172, 3614, 55729, 72730, -5092, -5092, 3629, + 3408, -5092, -5092, -5092, -5092, -5092, -5092, 3357, -5092, -5092, + 3283, -5092, -5092, -5092, 3285, -5092, 3285, 3285, -5092, -5092, + 3285, 55729, -5092, -5092, 55036, 2074, 4966, 3941, 3349, -5092, + 68926, -5092, 3589, 22330, -5092, -5092, -5092, 3562, 241, 1216, + -5092, -5092, 3761, 87971, 3510, 3965, 3942, -5092, -5092, -5092, + -5092, -5092, -5092, 3771, 3305, 3922, 3300, -5092, -5092, 20822, + 3306, -5092, -5092, -5092, -5092, -5092, -5092, -5092, 72730, 3311, + 25346, 25346, -5092, 4070, 4070, 4070, 20822, 3130, 422, 3668, + 20822, 20822, 20822, 2403, 3326, -5092, -5092, -5092, 288, -5092, + 3327, 20822, 20822, 69560, 3328, -5092, 4741, 20822, 4029, 20822, + 20822, 20822, 20822, 20822, 4685, 20822, -5092, -5092, 89239, 69560, + 3781, 3336, -5092, 3332, -5092, 2570, 20822, 2589, 20822, -5092, + -5092, 20822, 20822, 3341, 20822, 20822, 27608, 3343, 20822, 20822, + 20822, 3345, 3475, 4070, 4070, 20822, 2608, -5092, 16298, -5092, + -5092, -5092, -5092, -5092, 4070, 4070, 20822, 20822, 2620, 20822, + 20822, 20822, -5092, 3342, 20822, 20822, 20822, 20822, 20822, 20822, + 20822, -5092, 20822, 20822, 20822, 20822, 20822, 20822, 1166, 20822, + 20822, 72730, 20822, 20822, 20822, 20822, 20822, 20822, 20822, 4020, + 72730, 20822, 20822, 20822, 20822, 4023, 20822, 20822, 20822, 3353, + 20822, 72730, 20822, -5092, 20822, 3851, 3851, -5092, 20822, 16298, + 20822, 3354, 70194, 20822, 20822, 20822, 20822, 21576, -5092, 21576, + -5092, -5092, 3355, 317, -5092, 3826, 20822, 3359, 65122, -5092, + -5092, -5092, -5092, 20822, 20822, 20822, 27608, -5092, 986, -5092, + -5092, -5092, -5092, -5092, 15544, 27608, 27608, 3364, 27608, 27608, + 27608, 27608, 27608, 27608, 3996, 27608, 27608, 28362, 29116, 27608, + 27608, 27608, 27608, 2131, -5092, 84167, 25346, 74632, 3372, 4036, + -5092, 89239, -5092, 1863, 589, 1276, 4994, 30589, -5092, 3373, + -5092, 3869, 3375, -5092, 1312, 3369, 72730, -5092, -5092, -5092, + 3949, 3378, 4051, 55729, 55036, 2076, 3379, 476, 3383, -5092, + -5092, 56421, 87971, -5092, -5092, -5092, -5092, -5092, 4115, 20822, + -5092, 55729, -5092, 1561, 14790, -5092, 1005, 1725, 287, -5092, + -5092, -5092, -5092, -5092, 14790, 87971, 60510, 3390, 3487, 3407, + 2697, 87971, 72730, 87971, 90507, 87971, 87971, 72730, 55729, 72730, + -5092, -5092, -5092, 87971, 1549, 2509, 988, 1549, 4038, -5092, + 1608, 1608, -5092, -5092, -5092, 81631, -5092, -5092, -5092, 1549, + 87971, 87971, 1549, 55036, -5092, 2509, 1965, -5092, 3688, 3481, + -5092, -5092, -5092, 3736, -5092, -5092, 4082, 3413, -5092, 3759, + -5092, -5092, 3509, -5092, -5092, 72730, -5092, -5092, 2509, -5092, + 2509, 2509, 20822, 1549, 1549, 1549, 2073, -5092, 3418, -5092, + 3422, -5092, -5092, 3416, 4072, 3436, -5092, -5092, 4002, 840, + -5092, 3854, -5092, 3993, -5092, 20822, 3646, 3642, -5092, -5092, + 3723, -5092, 3724, 3727, 3733, -5092, -5092, -5092, -5092, 3887, + 3737, -5092, 2208, 3738, -5092, -5092, 3467, -5092, -5092, -5092, + 30589, 84167, -5092, 3470, -5092, 3491, -5092, -5092, -5092, 92409, + -5092, 91141, -5092, 2208, -5092, -5092, -5092, 72730, 3975, -5092, + 2208, 1688, 87971, -5092, -5092, -5092, 1812, -5092, -5092, -5092, + 3585, 2015, -5092, -5092, 1312, 2063, 3663, -5092, -5092, -5092, + 84167, -5092, -5092, -5092, -5092, -5092, 4165, -5092, 56421, 55036, + 84167, 87971, 87971, 87971, 72730, 72730, 2697, -5092, -5092, 2697, + -5092, 2697, -5092, 2697, 3523, -5092, -5092, -5092, -5092, 135, + 1255, 4227, -5092, 488, -5092, 3049, 488, 3720, 3765, -5092, + 4160, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, 3504, 2327, -5092, -5092, -5092, 3498, -5092, 3500, + 2225, 467, -5092, -5092, -5092, -5092, -5092, -5092, 168, -5092, + -5092, -5092, 1204, 3861, 2645, -5092, 84167, 2645, 1090, 1828, + -5092, 3511, 2208, 1918, -5092, 1918, -5092, 1312, -5092, 3806, + -5092, 3807, 39, -5092, -5092, -5092, -5092, -5092, 72730, 3514, + -5092, 3695, 3517, 3518, 3642, 3642, 47017, 4254, 3992, 6198, + 200, 3570, -5092, -5092, -5092, -5092, -5092, 72730, -5092, -5092, + 1464, 3651, 4008, 3949, 3605, -5092, 3531, -5092, -5092, 836, + -5092, 4120, 87971, 4202, 77193, -5092, 72730, 87971, 1172, 3538, + -5092, -5092, -5092, -5092, -5092, 287, -5092, 3539, 130, 72730, + 72730, 52353, -5092, 3542, -5092, -5092, 87971, -5092, -5092, -5092, + -5092, 4040, 355, 31231, 70828, -5092, 70828, 70828, -5092, -5092, + -5092, -5092, -5092, -31, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, 43640, 3642, -5092, 72730, -5092, 4190, 220, -5092, 139, + 72730, -5092, -5092, 20822, -5092, 4189, 3678, 87971, -5092, 4256, + -5092, -5092, -5092, -5092, -5092, -5092, 3642, 87971, 87971, 52353, + 52353, 20822, -5092, 1300, 20822, -5092, 3553, -5092, 3554, 3556, + 3577, 3910, 20822, 20822, -5092, 3304, 426, 211, -5092, 3561, + 3572, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, 3566, + -5092, -5092, -5092, 328, 333, 3569, -5092, 3571, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, 4239, -5092, + 405, -5092, -5092, 231, 236, 344, 349, 353, 3582, 365, + 3342, 1973, 3574, 69560, 89239, 4070, 3576, 507, 4070, 3586, + 374, 759, 377, -5092, 1249, 1443, 3459, -5092, 387, 414, + 418, -5092, -5092, 3592, 3600, 240, 4070, 3608, 17806, 18560, + 19314, 3241, 3611, 3622, 3625, 428, 1462, 4070, 3626, 1558, + 2265, 1629, 89239, 569, 1741, 768, -5092, 2271, 843, 902, + 911, 1175, 1803, 1874, 1351, 1364, 1373, 2273, -5092, -5092, + -5092, -5092, 3588, 1915, 1941, 3603, 3628, 2355, 1947, 1972, + 1989, 2370, 2386, 2411, 72730, 3630, 2028, 2064, 1406, 2425, + 72730, 2069, 2083, 1434, -5092, 2102, 3633, 1454, 252, 3634, + 3638, 2148, 3631, 1504, -5092, 89239, 87971, 3640, 3639, 264, + 222, 1563, 2164, 4685, 4685, -5092, 20822, 493, 159, 89239, + 1725, -5092, 4106, 3181, 1368, -5092, -5092, -5092, -5092, -5092, + -5092, 313, -5092, 3584, -5092, 3648, 2552, 3654, 20822, 2999, + 3654, 379, 3795, 1945, 1945, 27608, 3022, 3435, 21576, 379, + 21576, 379, 3654, 3654, 3654, -5092, 27608, 3650, 27608, 27608, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, 4221, 3655, 1999, + 3656, -5092, -5092, -5092, -5092, -5092, -5092, 11, 4061, -5092, + 3846, 585, 20822, 2208, -5092, 3677, 4163, 4166, 4170, -5092, + -5092, -5092, -5092, 55729, 55729, 72730, 4167, 20822, -5092, 1678, + 3665, -5092, -5092, 4335, 56421, 4343, -5092, 3681, 31873, 70828, + 70828, 70828, 87971, 87971, 14790, 59833, 4355, 4356, 287, 59156, + -5092, 3642, 287, -5092, 3689, 3692, -5092, -5092, 25346, 2432, + -5092, 3642, -5092, 1392, 3967, -5092, 3693, 3697, -5092, 3698, + 3699, 3703, 63218, 20822, -5092, 287, 1005, -5092, -5092, -5092, + -5092, -5092, 3713, 87971, -5092, -5092, -5092, 87971, -5092, -5092, + -5092, -5092, -5092, -5092, 2208, 20822, -5092, -5092, 1549, 87971, + 1549, -5092, 2208, 4368, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, 4056, -5092, 85435, 4257, 818, -5092, 3712, -5092, -5092, + -5092, -5092, -5092, 1549, -5092, -5092, -5092, -5092, -5092, 3892, + 3765, 2984, 4038, -5092, 2509, 72730, 1549, 1549, 3642, -5092, + -5092, -5092, -5092, 87971, 4194, 4261, -5092, 3731, -5092, -5092, + -5092, 72730, -5092, 52353, 87971, 87971, -5092, 4256, 84167, 61187, + 72730, -5092, -5092, -5092, 1654, -5092, -5092, -5092, -5092, -5092, + 3642, -5092, 20068, 4434, -5092, -5092, -5092, -5092, 2208, -5092, + -5092, 4992, -5092, 72730, -5092, 67024, -5092, 67024, 2025, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + 235, 326, 3302, 3720, -5092, -5092, 72730, 775, 139, -5092, + 4491, -5092, -5092, -5092, -5092, -5092, 3735, -5092, 3783, -5092, + -5092, -5092, 3739, -5092, 4409, -5092, -5092, 214, 356, 39, + -5092, 69, 4326, 4328, -5092, -5092, 87971, -5092, 2697, -5092, + -5092, 2697, 72730, 2697, -5092, -5092, 87971, -5092, -5092, 2697, + -5092, 87971, 2697, -5092, -5092, -5092, 4245, 4245, -5092, 65756, + -5092, -5092, 4229, 4385, -5092, 87971, -5092, -5092, 2356, -5092, + 4411, -5092, -5092, 4120, -5092, 3747, -5092, 20822, -5092, 3753, + 3756, -5092, -5092, -5092, -5092, -5092, -5092, 467, 535, -5092, + 287, 287, 3977, 4274, 4275, 3881, 2208, 4279, 4280, 4282, + -5092, -5092, -5092, 2208, 2208, -5092, -5092, 287, -5092, 2366, + -5092, -5092, -5092, -5092, 4249, 1531, -5092, 287, 287, -5092, + 3087, -5092, -5092, -5092, -5092, -5092, -5092, -5092, 1121, -5092, + -5092, 153, 2224, 55036, 4235, 4359, 3774, -5092, 72730, 4445, + -5092, -5092, 20822, 4276, -5092, -5092, 3992, -5092, 3793, 3810, + 3813, 3814, 3815, 3818, 3821, 3830, 3831, 3833, 3834, 3836, + 3838, 3841, 3842, 3845, 3848, 3849, 3850, 3852, 3856, 3857, + 3862, 3864, 3789, -5092, -5092, 3855, -5092, -5092, -5092, -5092, + 287, 287, 287, 287, -5092, 4599, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, 4085, 3275, -5092, 2119, 87971, 4312, + 77193, -5092, 20822, 4461, -5092, -5092, 2073, -5092, 3839, 1312, + -5092, -5092, 56421, -5092, 84167, 55729, -5092, -5092, -5092, 3837, + 1300, 47684, -5092, -5092, 4528, -5092, 2457, -5092, 55036, 4297, + -5092, 70828, 3858, -5092, 3865, 4349, 4350, 4351, 4358, 52353, + 1678, -5092, -5092, 3871, -5092, -5092, 4002, 4245, 3884, 4131, + 4262, -5092, -5092, -5092, 2637, -5092, -5092, 3642, -5092, -5092, + -5092, 4506, 54338, 48351, 3870, -5092, -5092, -5092, 2462, -5092, + -5092, 94595, 94595, 94595, 4256, -5092, 1567, -5092, 20822, -5092, + -5092, 20822, -5092, 3642, 3583, 3338, 42299, -5092, 42299, 3338, + 20822, -5092, 3876, -5092, 4523, 4524, -5092, -5092, 20822, -5092, + 20822, -5092, 20822, -5092, 20822, 20822, 20822, 20822, 20822, 20822, + -5092, 27608, -5092, 3879, 3890, -5092, -5092, 3893, -5092, 20822, + -5092, 20822, -5092, -5092, 20822, 20822, 20822, 20822, -5092, -5092, + 20822, 20822, 3894, -5092, 20822, 3507, 20822, 3691, 20822, 3859, + 20822, -5092, -5092, -5092, 23084, -5092, 3895, -5092, -5092, -5092, + -5092, -5092, 20822, -5092, 20822, -5092, 20822, 20822, 20822, 20822, + 20822, -5092, -5092, 20822, 20822, 20822, -5092, 20822, -5092, 4463, + 20822, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, 20822, -5092, -5092, -5092, -5092, 20822, -5092, + 311, 23838, -5092, 20822, 20822, 20822, -5092, -5092, 20822, 3886, + 3891, -5092, 87971, -5092, 20822, 2623, 3430, 139, 3896, 20822, + -5092, 3909, 3913, 3163, -5092, 293, 2995, -5092, -5092, -5092, + 1757, -5092, -5092, -5092, 93043, 20822, -5092, -5092, -5092, -5092, + -5092, 27608, 269, 3900, 25346, -5092, 3795, 4685, 4685, 2909, + 20822, 2999, 3795, 87971, 4642, 3908, -5092, 20822, 89239, 20822, + 3912, 3914, -5092, 3915, 27608, -5092, -5092, 3918, -5092, 2329, + 3430, 3991, 4361, -5092, 3642, -5092, 30589, 4415, -5092, -5092, + 72730, 3000, -5092, 3215, 3215, 67658, -5092, -5092, -5092, 4454, + 87971, 4116, -5092, 55729, 55036, 70828, 4595, 4597, 4598, 4603, + 287, 287, -5092, -5092, 8025, 55729, 14790, -5092, -5092, -5092, + -5092, 4431, 4437, -5092, -5092, 900, 4224, 4496, -5092, -5092, + -5092, 3935, -5092, -5092, -5092, 483, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, 3642, 14790, -5092, 3390, 3943, 33285, + 737, -5092, -5092, -5092, 3642, -5092, -5092, -5092, -5092, 3952, + -5092, 82899, -5092, 4285, 82899, 82899, 89239, -5092, -5092, 4533, + -5092, -5092, 4368, 3720, 2509, -5092, -5092, 2362, 3948, 4584, + 4587, -5092, 4532, 2616, 4532, -5092, -5092, 3948, 70194, 2073, + 3949, 49018, -5092, 2469, -5092, 4706, 49685, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, 3957, -5092, 2432, + -5092, 3958, -5092, 3642, -5092, 3974, -5092, -5092, -5092, 3837, + 1139, 3976, 3962, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + 3765, 120, -5092, -5092, -5092, -5092, -5092, 1152, -5092, -5092, + -5092, 1812, 3431, -5092, 139, 4199, -5092, -5092, 253, 4414, + -5092, 4235, 4640, 982, 982, 4557, 72730, 72730, 8302, 4249, + -5092, -5092, 87971, -5092, -5092, -5092, -5092, -5092, -5092, 1158, + -5092, 72730, -5092, -5092, -5092, 84167, 3970, -5092, -5092, 3966, + -5092, 20822, 1312, 4094, -5092, -5092, -5092, 1757, 4722, 4646, + 3765, -5092, 3642, -5092, 3988, 20068, 3998, 3994, -5092, -5092, + 488, -5092, 4004, -5092, 2225, 59156, 41650, -5092, 4374, 4378, + 1934, -5092, -5092, -5092, -5092, -5092, -5092, 4643, 1828, -5092, + 287, 287, -5092, 209, 287, -5092, -5092, 221, -5092, -5092, + 1742, 450, 4249, -5092, 2208, 2208, 2208, 2208, 139, 2208, + 2208, 2473, -5092, 4643, 4643, 1918, -5092, 1091, -5092, -5092, + -5092, -5092, 6199, 943, -5092, -5092, 84167, -5092, 4497, 4507, + -5092, 4509, -5092, -5092, 162, -5092, 3200, -5092, 889, -5092, + 4562, 87971, 4766, 3774, -5092, 411, 3642, 52353, 20822, -5092, + 4017, 4019, 139, 4021, 139, 139, 2208, 2208, 3952, 2208, + 139, 2208, 2208, 2208, 2208, 2208, 2208, 2208, 139, 2208, + 1278, 3921, 2208, 139, 6198, -5092, 2208, 3430, 4643, 4643, + 3651, -5092, 4686, 287, -5092, 3366, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, 339, -5092, 27608, -5092, -5092, + -5092, 4018, 2073, 849, 3642, 82265, 4566, 3720, 4046, -5092, + -5092, -5092, -5092, -5092, -5092, 1402, 4698, -5092, 4049, 20822, + -5092, -5092, 87971, 386, 4231, 4552, 4066, 77827, 55036, 55036, + 55036, 55036, 44349, 4647, 72730, -5092, 4712, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, 8604, -5092, -5092, -5092, 4371, 2328, 4064, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + 4062, -5092, 20822, -5092, -5092, 4422, -5092, -5092, -5092, -5092, + -5092, 50352, 20822, 3642, 3642, 20822, 4074, 4074, 4075, 4076, + -5092, -5092, 4716, 4074, 4074, -5092, 4074, 4721, 4074, 4074, + 4083, -5092, -5092, 4087, 4088, 4089, 3163, -5092, 20822, 20822, + 2172, 132, 2276, 2304, 1585, 1593, 272, -5092, 2330, 3734, + -5092, -5092, 2359, 2364, 2414, 2424, 1646, 2569, 456, 275, + -5092, 3642, 20822, 3642, 20822, 3642, 20822, 3642, 21576, 2580, + -5092, 2491, 3809, -5092, 2520, 3973, 2598, 289, 2614, 1661, + 2522, 310, 2654, 2674, 2702, 2524, -5092, 1862, 4672, 2527, + 21576, 2707, 2711, 1689, 1785, 2732, 89239, 87971, 4084, 2748, + 4092, 4092, 295, -5092, 4091, -5092, -5092, -5092, 4093, -5092, + 2760, 20822, 20822, 4160, -5092, 2285, 293, 4096, 3694, 4627, + -5092, 488, -5092, 2116, 493, -5092, 4095, 3642, 4098, -5092, + -5092, 20822, -5092, -5092, -5092, -5092, 27608, 314, 4099, -5092, + 4221, -5092, 20822, -5092, 4682, 4103, 3163, -5092, 3642, -5092, + -5092, 87971, 4105, 3795, -5092, 20822, 3952, -5092, -5092, 4843, + 4108, 4125, 4111, 3918, -5092, 55729, -5092, 4659, 70194, 3498, + 3498, 1068, 4112, 2566, 4648, -5092, -5092, -5092, 4107, -5092, + 2581, -5092, 4785, 3539, -5092, 4786, 55036, 55036, 55036, 55036, + 14790, 14790, -5092, -5092, -5092, 4121, 4122, 831, 4677, -5092, + -5092, -5092, -5092, 87971, 87971, 14790, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, 3929, -5092, 3765, -5092, -5092, 82899, + -5092, -5092, -5092, -5092, -5092, -5092, 1549, -5092, -5092, 4124, + 189, 2995, -5092, -5092, -5092, 2073, 3826, 184, -5092, -5092, + -5092, 4761, 4532, 4532, 3948, 4762, 4114, 4126, -5092, 287, + -5092, 4798, 4596, -5092, 87971, 4133, -5092, 4134, 86069, 20068, + 4135, -5092, 4694, -5092, -5092, 4624, 67024, 4139, -5092, 4362, + -5092, -5092, -5092, 4156, -5092, 4141, -5092, -5092, 55036, -5092, + 4516, -5092, -5092, -5092, -5092, -5092, 72730, -5092, -5092, 4504, + 72730, 287, 287, 287, 287, 287, 4183, 287, 287, 287, + 287, 287, 4508, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 876, 87971, 287, 287, 38130, -5092, -5092, + 4717, -5092, 5209, -5092, -5092, -5092, 287, 6470, 4249, 4148, + 87971, -5092, 3774, 4150, 233, -5092, 1334, -5092, 65756, 87971, + 3642, 4152, 2354, -5092, 4381, 4155, -5092, -5092, 20822, -5092, + 4185, -5092, -5092, 39487, -5092, 78461, -5092, -5092, -5092, 20068, + -5092, 467, 4004, 4157, 1192, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, 311, 311, -5092, -5092, 311, 311, -5092, -5092, + -5092, -5092, 311, 311, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, 1531, -5092, -5092, -5092, 1121, -5092, 4538, + 4555, 4730, 4555, 4731, 4657, 3599, 287, 4733, 4900, -5092, + 208, 287, 4736, 4801, 4241, 4804, 4742, -5092, 4246, 4555, + 4744, 4360, 4746, 4747, 4748, -5092, -5092, 8573, -5092, -5092, + -5092, -5092, 452, 71462, -5092, -5092, -5092, -5092, -5092, 4679, + 1379, -5092, -5092, -5092, -5092, 1150, 139, 139, 139, 3921, + 2597, -5092, 3200, 2828, 239, 4676, 2303, -5092, 2621, -5092, + 4933, -5092, 198, -5092, 45016, 3642, 112, 114, -5092, 119, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, 87971, 4643, + 3275, -5092, -5092, 3795, 77193, 3720, -5092, 4521, 4724, 3504, + -5092, -5092, -5092, -5092, 3826, -5092, 3642, -5092, -5092, 4848, + -5092, -5092, 55036, -5092, -5092, 39, 39, 39, 39, 3257, + 4541, -5092, -5092, -5092, 4712, 4460, -5092, 1820, -5092, 4074, + 4074, 52, -5092, 4075, 4753, 4075, -5092, 4579, 1767, 2383, + 4579, -5092, 1767, 4075, -5092, 4191, -5092, 4579, -5092, 1767, + 4074, -5092, 4074, -5092, -5092, 1767, 4074, -5092, 4192, 4075, + -5092, -5092, 4579, -5092, -5092, -5092, -5092, 477, 1853, 4075, + -5092, -5092, -5092, 4074, 1534, 4074, 4074, 4074, 4395, 4074, + 4074, 4115, -5092, -5092, -5092, -5092, -5092, 4075, 413, 4074, + 4074, 4074, 4074, 4076, 4897, 4867, 4868, -5092, 87971, -5092, + 3642, -5092, 52353, 94595, 272, 3642, 2652, -5092, -5092, -5092, + 2882, -5092, -5092, -5092, 4788, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, 4201, 4685, + 4685, -5092, 4936, 4734, -5092, -5092, 20822, 20822, -5092, 20822, + -5092, 1224, 4203, 4673, -5092, -5092, -5092, -5092, 20822, -5092, + 20822, -5092, -5092, 20822, 3642, 3642, 3642, 4685, -5092, -5092, + 3316, -5092, -5092, 3338, -5092, -5092, 20822, -5092, 20822, -5092, + 20822, -5092, 20822, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, 278, 4685, -5092, -5092, 20822, 20822, -5092, -5092, -5092, + 87971, -5092, 3430, 4208, 4483, -5092, -5092, -5092, 3430, 4345, + -5092, -5092, 3430, 139, -5092, -5092, -5092, -5092, 3504, 2285, + -5092, 4213, 2622, -5092, -5092, -5092, -5092, -5092, -5092, 4214, + 87971, -5092, 2684, -5092, -5092, 20822, -5092, 4800, 4215, 2354, + 4956, 4220, -5092, 39487, -5092, 4222, 4226, -5092, -5092, -5092, + 4685, -5092, 4846, 4796, -5092, 3430, 87971, -5092, -5092, -5092, + 4228, -5092, 287, 3826, -5092, 2884, 1068, 70194, -5092, 79095, + 1215, 2327, -5092, 87971, 55036, 55036, 3681, 3681, 3681, 3681, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, 287, 287, -5092, + 33285, 59833, -5092, -5092, -5092, -5092, -5092, -5092, -5092, 3765, + -5092, -5092, 3215, 4798, -5092, -5092, 1757, 488, 3731, 493, + -5092, 3948, 4869, 4870, -5092, 3948, -5092, -5092, 70194, 3720, + 20068, 2548, 6223, -5092, -5092, -5092, 36079, -5092, 4232, -5092, + 4230, -5092, -5092, 2195, 4567, 4857, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, 20068, -5092, 2208, 2584, -5092, 4263, -5092, 4243, 4244, + 287, -5092, 204, 227, 261, 291, -5092, -5092, 3952, 139, + 139, 2208, 2208, 287, 139, 84167, 1984, 139, 3952, 3952, + 296, 2208, 2008, 204, -5092, -5092, -5092, 139, 204, 73998, + 72730, 4915, 87971, 4250, 4252, 4248, -5092, -5092, -5092, -5092, + -5092, 1640, -5092, 4805, 2697, 1654, 1654, -5092, 4251, 482, + -5092, -5092, 7819, -5092, 57107, -5092, -5092, -5092, 439, 4841, + 5007, -5092, 4392, -5092, -5092, -5092, -5092, 4363, 3774, 41650, + -5092, -5092, -5092, 20822, -5092, -5092, -5092, 1312, 4258, 460, + 20822, 87971, -5092, 86703, -5092, -5092, -5092, -5092, 2121, -5092, + 20068, 4259, 4264, -5092, -5092, 488, 2558, 488, 4267, 2225, + -5092, -5092, 467, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, 72096, 2697, -5092, 4915, 4300, -5092, -5092, -5092, 4916, + 2418, 292, 2418, 36079, 1334, 1849, 4902, 1835, 4941, 4301, + 4836, 2418, 2418, 61864, 292, 70194, -5092, -5092, -5092, -5092, + 72730, 62541, 292, -5092, -5092, -5092, 87971, -5092, 2418, 292, + -5092, 292, 292, 36079, -5092, 12158, -5092, -5092, 38832, 234, + -5092, -5092, -5092, 2208, -5092, -5092, -5092, -5092, -5092, 4863, + 4864, -5092, -5092, -5092, 4448, 20822, 20822, 4865, 87971, 4866, + -5092, 4680, -5092, 87971, -5092, 3826, -5092, -5092, -5092, 4574, + 4782, 2689, -5092, -5092, 2699, -5092, -5092, 2705, -5092, -5092, + -5092, -5092, -5092, 3839, -5092, -5092, 4623, 3747, -5092, 4480, + 39, 4755, 4755, 4755, 4755, 52353, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, 4932, -5092, -5092, 4579, 287, 4579, -5092, + -5092, 829, -5092, 829, -5092, 308, -5092, -5092, -5092, -5092, + 205, 42299, 5043, 4688, 3452, 4579, -5092, 4773, 1767, -5092, + -5092, 829, 2063, -5092, -5092, 4579, -5092, -5092, -5092, 2063, + 829, -5092, 4775, -5092, -5092, -5092, 829, 4579, 4510, 87971, + 4897, 1767, -5092, -5092, 91775, 1767, 829, -5092, 4858, -5092, + 205, 5043, 1767, 4579, 829, 829, 20822, -5092, -5092, 225, + 4309, -5092, 51019, -5092, 4310, 4311, 4314, 4319, 205, 2714, + 4322, 205, 205, -5092, 4324, 4325, 20822, 2063, 4938, 2763, + 1797, 2716, 4606, 4558, -5092, 4490, -5092, 2774, 2789, 2797, + 1480, 4075, -5092, -5092, -5092, -5092, 4969, 4074, -5092, 5061, + -5092, 4074, -5092, -5092, -5092, -5092, -5092, -5092, 4331, 2819, + 3642, 3642, 2835, -5092, -5092, -5092, 2725, 2022, 2868, 2892, + -5092, -5092, -5092, 4332, -5092, -5092, 430, -5092, 4333, 3747, + -5092, -5092, -5092, 4160, 1757, -5092, -5092, 2727, 5070, 1846, + 20822, -5092, 20822, -5092, -5092, -5092, 87971, 4429, 1048, -5092, + 2733, -5092, -5092, 4336, 70194, 20068, 1757, -5092, -5092, -5092, + 1215, -5092, 4337, 488, 2596, 488, -5092, 3504, -5092, -5092, + 3681, 3681, 14790, 14790, -5092, -5092, -5092, -5092, 2327, 3498, + 4527, 493, -5092, -5092, -5092, 4289, 4822, 3948, 3948, 4396, + 4823, 20822, 4347, -5092, 4120, -5092, -5092, 4545, 2119, 2119, + -5092, -5092, -5092, -5092, 4352, 4348, -5092, -5092, -5092, 86069, + -5092, 2744, -5092, -5092, 5103, 2749, -5092, -5092, 84167, 4357, + 87971, 87971, 2208, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, 4364, -5092, -5092, -5092, -5092, -5092, 2208, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, 4365, 4370, -5092, 330, -5092, 38832, + 4372, 4991, 4993, 1654, -5092, 2697, 72730, -5092, 73998, -5092, + 2697, 2697, 9395, 87971, -5092, 5110, -5092, -5092, -5092, -5092, + -5092, 924, 3565, -5092, -5092, 1304, 4487, -5092, 87971, -5092, + -5092, 2208, 5122, -5092, 4776, 2354, -5092, 20822, 4375, 4376, + -5092, -5092, -5092, -5092, 3642, 5128, 4377, -5092, -5092, -5092, + 79729, -5092, -5092, 20068, -5092, 5020, -5092, -5092, -5092, -5092, + 467, -5092, -5092, -5092, 2828, 292, -5092, 2828, -5092, 73998, + 36079, 73998, -5092, 41650, 73998, 2418, 87971, -5092, -5092, 5016, + 73998, 73998, -5092, -5092, 36079, 4382, -5092, 2354, 2557, -5092, + -5092, -5092, 3430, 4850, 73998, 36079, -5092, 36079, -5092, 3984, + 3601, -5092, 4389, 87971, -5092, -5092, -5092, -5092, -5092, -5092, + 3642, 4685, 4783, -5092, -5092, 4500, 2208, 4750, -5092, 561, + -5092, 87971, 207, 52353, -5092, 139, -5092, 139, -5092, 139, + -5092, -5092, 4755, 1735, -5092, -5092, -5092, -5092, 51686, -5092, + 5029, 4901, -5092, -5092, 87971, -5092, 4859, 4882, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, 287, -5092, -5092, + -5092, -5092, 2757, -5092, -5092, 2782, -5092, -5092, -5092, -5092, + 91775, 10886, -5092, 2786, -5092, -5092, -5092, 4897, 4398, -5092, + -5092, 4421, -5092, -5092, -5092, -5092, 5043, -5092, -5092, 3642, + 75266, -5092, -5092, -5092, 87971, 5077, 5079, -5092, -5092, -5092, + -5092, -5092, 5008, -5092, -5092, -5092, -5092, 4416, 2354, -5092, + -5092, 4419, 82899, -5092, -5092, 20822, -5092, 4651, -5092, 4756, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, 205, + -5092, -5092, -5092, -5092, 3952, -5092, -5092, -5092, 4424, -5092, + 139, 4120, -5092, -5092, 20822, -5092, -5092, 4425, 4369, 2354, + 2354, -5092, 139, -5092, 4361, 4423, 87971, -5092, 4796, -5092, + -5092, -5092, -5092, -5092, 488, -5092, -5092, 80363, -5092, -5092, + -5092, -5092, 3747, -5092, -5092, 3504, -5092, -5092, 4426, -5092, + 4908, -5092, -5092, -5092, 4909, 3642, 87971, 4461, 2119, 5182, + 4926, -5092, 1133, -5092, -5092, 87971, -5092, -5092, 3952, 4792, + -5092, -5092, 4628, 87971, 2798, 2354, 4438, 2815, -5092, 72730, + -5092, -5092, 87971, 1757, -5092, 8573, -5092, 20822, 2697, -5092, + -5092, 73998, 4440, 4917, 1271, 73998, 73998, -5092, 5172, -5092, + 4443, -5092, 19, -5092, -5092, -5092, 4446, 4442, -5092, 87971, + -5092, -5092, 5147, 52353, -5092, -5092, -5092, 5040, 239, -5092, + 4455, 4453, 8894, -5092, -5092, 10886, 3565, -5092, -5092, 2309, + 5080, -5092, 3642, -5092, -5092, 4459, 87971, -5092, -5092, -5092, + 1757, 488, 5139, -5092, 5141, 466, -5092, 73998, 1464, 4115, + -5092, 73998, 4348, -5092, -5092, 1402, -5092, 70194, -5092, -5092, + -5092, 4967, 234, -5092, 87971, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, 4464, 2225, 4931, 2836, -5092, -5092, + -5092, -5092, 45683, -5092, -5092, -5092, -5092, 4660, -5092, 1735, + -5092, 4950, 72730, -5092, -5092, -5092, -5092, 205, 2063, 205, + 4897, -5092, -5092, 87971, -5092, 87971, 5058, -5092, -5092, -5092, + -5092, 37491, -5092, -5092, -5092, 4789, -5092, 2847, -5092, -5092, + 4469, 20822, -5092, -5092, -5092, 1109, 2923, -5092, -5092, -5092, + 4471, -5092, 4473, 3765, 4152, -5092, 4501, 4602, 4163, 4166, + 4170, 4650, 4814, -5092, 4652, -5092, -5092, -5092, 4485, 27608, + -5092, 1437, -5092, -5092, -5092, -5092, 1757, 3747, 4798, 20822, + 4486, 20822, 4493, 2855, -5092, -5092, 2119, 2119, -5092, 1170, + 4479, -5092, -5092, 4905, 4494, 2866, 1312, 87971, -5092, 5076, + 1312, 4495, 4498, -5092, -5092, 4717, 2973, 73998, 4917, 1913, + 87971, 5109, 982, -5092, 982, -5092, -5092, 2738, -5092, -5092, + 3396, 87971, 4961, -5092, 2382, -5092, -5092, -5092, -5092, 4865, + -5092, 87971, 1879, 4701, -5092, -5092, 53661, -5092, 5238, 5240, + 5193, 5249, 2309, -5092, 2198, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, 73998, 1129, -5092, 5216, 5219, 234, -5092, -5092, + -5092, -5092, 292, -5092, 72730, -5092, -5092, 4348, 1152, 4613, + -5092, 52353, 1215, 4464, 4522, 2037, 2116, -5092, -5092, 804, + -5092, -5092, 87971, 87337, -5092, -5092, -5092, 3949, -5092, -5092, + -5092, -5092, -5092, 4517, -5092, 75266, -5092, -5092, -5092, -5092, + 94595, -5092, 2354, 82899, 82899, -5092, -5092, -5092, 488, 84, + -5092, 5277, 1636, -5092, -5092, 690, -5092, -5092, 87971, 4525, + 4609, -5092, -5092, 4605, -5092, -5092, 4024, -5092, 4160, 4527, + 3642, 87971, 3642, 87971, -5092, -5092, -5092, -5092, 1654, -5092, + 1654, -5092, 1170, -5092, -5092, 1531, 1312, 2816, 2354, 4529, + 1623, -5092, 87971, 482, -5092, -5092, -5092, 982, 2876, -5092, + 1342, 5117, -5092, 4535, -5092, 4540, 4542, -5092, 5174, -5092, + 2208, -5092, 4619, -5092, 2738, -5092, -5092, -5092, 4581, 5178, + 5137, 287, 84167, 29869, -5092, 5031, -5092, 4995, 5252, -5092, + 5303, 3796, -5092, -5092, -5092, -5092, -5092, -5092, -5092, 2303, + -5092, -5092, 4758, -5092, 87971, -5092, 2063, 2063, 5291, 2063, + -5092, 5295, 5296, 2198, -5092, 5172, 3430, 4796, -5092, -5092, + 29869, -5092, -5092, -5092, 5203, -5092, 20822, 4913, -5092, -5092, + 2596, 488, 488, 4568, 2225, -5092, -5092, 1215, -5092, 4763, + 5299, 5301, -5092, -5092, 2885, -5092, -5092, 70194, -5092, 87971, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, 4501, -5092, -5092, + 4704, 2045, -5092, 2910, -5092, -5092, -5092, 3430, -5092, 4582, + -5092, 4940, 287, 287, 4943, 287, 287, 287, 287, 4585, + 4024, -5092, 4921, -5092, -5092, 2935, 2940, 5257, 5257, -5092, + 2977, 1979, 4767, 2208, 287, 401, 2816, -5092, -5092, 287, + -5092, -5092, 401, 1623, -5092, -5092, 4590, -5092, 4593, 4604, + -5092, -5092, 87971, -5092, -5092, -5092, 1546, -5092, 87971, 4607, + 87971, 87971, -5092, -5092, -5092, -5092, -5092, -5092, -5092, 57793, + -5092, 3921, 3921, 20822, -5092, -5092, -5092, -5092, -5092, 3083, + 5191, -5092, 4649, 1596, 287, -5092, 3829, 72730, 4680, 87971, + 4608, -5092, -5092, 2063, -5092, 2063, 2063, -5092, -5092, -5092, + 2979, -5092, -5092, 4612, 3642, 20822, -5092, 488, 1889, -5092, + -5092, -5092, -5092, 1215, -5092, 2596, -5092, -5092, 561, -5092, + 4794, 4797, -5092, 87337, 4611, -5092, 287, 1334, -5092, -5092, + -5092, -5092, -5092, -5092, 87971, -5092, 4614, -5092, -5092, 99, + 287, 2208, 2208, 287, 3853, 3853, 3430, 84167, 4687, -5092, + -5092, 287, -5092, -5092, 2394, -5092, -5092, -5092, 982, 982, + 401, 1979, -5092, -5092, -5092, 3635, -5092, 139, -5092, 5237, + 5062, -5092, 58479, -5092, -5092, -5092, 87971, 87971, 4626, -5092, + 1081, 1081, 3003, 87971, 3019, 3026, -5092, -5092, -5092, -5092, + -5092, -5092, 4622, 4632, -5092, 1033, -5092, -5092, 3829, 5297, + 4989, 4631, 87971, -5092, -5092, -5092, -5092, 4796, 3642, -5092, + 1757, 488, -5092, -5092, -5092, -5092, -5092, 70194, 20068, -5092, + 4609, -5092, -5092, 3029, -5092, 24592, -5092, -5092, -5092, 2208, + -5092, -5092, 2208, -5092, -5092, -5092, -5092, -5092, 3042, -5092, + 84167, 5371, -5092, 5375, 4641, 4644, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, 3070, 3090, + 87971, -5092, -5092, 514, 5090, 5229, 5232, 1979, 3116, 2816, + 1623, -5092, 341, -5092, 2996, 2996, 1486, -5092, -5092, 87971, + 4645, 3128, -5092, -5092, -5092, -5092, 5185, -5092, -5092, 4614, + -5092, 4653, -5092, 3795, -5092, -5092, 84167, -5092, 4687, -5092, + -5092, -5092, 86069, 86069, 4805, 1979, 3134, -5092, -5092, -5092, + 5132, 5349, -5092, 1979, -5092, -5092, -5092, 4655, -5092, 2996, + -5092, -5092, -5092, -5092, -5092, 1792, -5092, -5092, -5092, 87971, + -5092, 4948, 4776, -5092, 24592, 4656, 4024, -5092, -5092, 4663, + 3137, -5092, -5092, 1979, 1081, 1081, -5092, -5092, -5092, -5092, + 1792, -5092, 5340, -5092, 5396, 5080, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, 4793, 2063, 5310, -5092, -5092, + 5258, 4668, 1702, 2054, 63852, 5199, -5092, -5092, 84167, -5092, + -5092, -5092, -5092, -5092, 84167, 3145, -5092, -5092, 70194, -5092, + -5092, 52353, -5092, -5092, 66390, 4669, -5092, 287, -5092, -5092, + 70194, -5092, -5092, 20068, -5092, -5092 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -3666,727 +3666,727 @@ means the default is an error. */ static const yytype_uint16 yydefact[] = { - 2512, 1132, 2359, 0, 452, 0, 1339, 736, 2217, 2353, - 2354, 2147, 2, 506, 223, 405, 2149, 2420, 0, 0, - 502, 1355, 874, 624, 2415, 330, 0, 0, 509, 2152, - 328, 223, 3056, 2261, 0, 3147, 2206, 0, 504, 2516, - 3430, 3292, 0, 0, 0, 3297, 69, 2116, 0, 1355, - 351, 0, 84, 0, 0, 1355, 2402, 3297, 0, 2431, - 0, 0, 2242, 0, 0, 0, 3, 8, 21, 0, + 2513, 1133, 2360, 0, 452, 0, 1340, 736, 2218, 2354, + 2355, 2148, 2, 506, 223, 405, 2150, 2421, 0, 0, + 502, 1356, 874, 624, 2416, 330, 0, 0, 509, 2153, + 328, 223, 3057, 2262, 0, 3148, 2207, 0, 504, 2517, + 3431, 3293, 0, 0, 0, 3298, 69, 2117, 0, 1356, + 351, 0, 84, 0, 0, 1356, 2403, 3298, 0, 2432, + 0, 0, 2243, 0, 0, 0, 3, 8, 21, 0, 43, 26, 31, 16, 20, 15, 45, 57, 51, 28, - 3294, 401, 402, 403, 404, 41, 3357, 40, 11, 60, + 3295, 401, 402, 403, 404, 41, 3358, 40, 11, 60, 61, 18, 48, 12, 14, 17, 39, 47, 35, 42, 55, 24, 25, 32, 49, 65, 22, 62, 58, 23, - 2359, 13, 27, 50, 44, 36, 59, 66, 37, 0, - 2513, 56, 38, 64, 30, 52, 29, 9, 10, 19, - 53, 54, 46, 67, 33, 63, 34, 1166, 0, 0, - 0, 0, 0, 0, 2145, 0, 0, 1248, 0, 1490, - 3355, 3356, 3357, 1356, 0, 1357, 0, 2512, 2554, 2555, - 2761, 2809, 2810, 2704, 2837, 2656, 2931, 2953, 2979, 2743, - 2745, 2744, 2746, 2747, 2748, 2749, 2750, 2751, 2629, 2752, - 2753, 2754, 2756, 2755, 2757, 2758, 2759, 2630, 2703, 2631, - 2709, 2760, 2711, 2710, 2762, 2632, 2633, 2763, 2764, 2765, - 2766, 2687, 2635, 2634, 2767, 2769, 2768, 2712, 2713, 2690, - 2770, 2771, 2772, 2774, 2636, 2637, 2638, 2639, 2640, 2773, - 2641, 2775, 2691, 2776, 2777, 2642, 2778, 2779, 2780, 2781, - 2783, 2782, 2684, 2784, 2785, 2787, 2788, 2789, 2786, 2790, - 2791, 2793, 2792, 2715, 2794, 2714, 2795, 2643, 2796, 2797, - 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2692, 2806, - 2807, 2808, 2829, 2705, 2811, 2813, 2812, 2716, 2814, 2815, - 2816, 2818, 2817, 2819, 2821, 2644, 2645, 2646, 2820, 2822, - 2823, 2824, 2825, 2827, 2826, 2831, 2832, 2717, 2647, 2688, - 2648, 2649, 2828, 2830, 3033, 2833, 2834, 2718, 2719, 2835, - 2650, 2706, 2836, 2693, 2839, 2838, 2651, 2840, 2652, 2841, - 2842, 2843, 2844, 2845, 2847, 2849, 2846, 2850, 2851, 2857, - 2653, 2848, 2852, 2853, 2854, 2855, 2856, 2858, 2720, 2859, - 2685, 2861, 2860, 2862, 2863, 2864, 2865, 2721, 2866, 2707, - 2867, 2868, 2869, 2882, 2883, 2873, 2874, 2876, 2877, 2880, - 2875, 2881, 2886, 2885, 2887, 2888, 2889, 2890, 2891, 2884, - 2871, 2878, 2879, 2872, 2892, 2893, 2870, 2894, 2896, 2895, - 2897, 2722, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, - 2907, 2906, 2908, 2723, 2724, 2725, 2909, 2910, 2911, 2700, - 2912, 2726, 2727, 2915, 2913, 2914, 2916, 2917, 2922, 2923, - 2924, 2686, 2919, 2918, 2920, 2921, 2728, 2729, 2730, 2925, - 2926, 2927, 2928, 2930, 2929, 2694, 2655, 2654, 2657, 2932, - 2933, 2658, 2934, 2936, 2935, 2702, 2659, 2937, 2938, 2940, - 2939, 2731, 2732, 2660, 2689, 2661, 2662, 2941, 2942, 2943, - 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2733, - 2734, 2954, 2955, 2956, 2958, 2957, 2959, 2960, 2961, 2962, - 2963, 2964, 2965, 2663, 2966, 2695, 2967, 2968, 2664, 2970, - 2969, 2665, 2971, 2972, 2973, 2974, 2975, 2701, 2696, 2976, - 2977, 2978, 2735, 2980, 2981, 2982, 2697, 2983, 2984, 2985, - 2666, 2986, 2987, 2736, 2708, 2667, 2988, 2990, 2698, 2668, - 2989, 2670, 2671, 2991, 2992, 2993, 2669, 2994, 2672, 2995, - 2996, 2998, 2997, 2999, 3000, 3001, 2673, 3002, 3003, 2674, - 3004, 2675, 3005, 3006, 3007, 3008, 3010, 3009, 3011, 3012, - 3013, 3014, 3015, 3016, 3018, 3020, 3019, 3017, 3021, 3022, - 2737, 3023, 2676, 2738, 3028, 3029, 2739, 3024, 3025, 3026, - 3027, 2699, 3030, 3031, 3032, 2679, 3034, 3035, 3037, 3036, - 2677, 2678, 3038, 3039, 2683, 3040, 3041, 3046, 2740, 2741, - 3042, 3043, 3055, 3044, 3045, 3048, 3047, 3049, 3050, 2599, - 2680, 3051, 3052, 2681, 3053, 2682, 3054, 2742, 241, 2559, - 2570, 225, 2571, 2596, 2594, 2598, 2592, 2593, 2597, 2591, - 2595, 454, 129, 0, 0, 0, 0, 2237, 2145, 2143, - 2145, 2145, 2145, 2145, 0, 2145, 2145, 0, 2148, 2145, - 2145, 0, 0, 0, 445, 2155, 2422, 0, 2438, 2439, - 2433, 3137, 3138, 3132, 407, 0, 0, 0, 0, 0, - 315, 327, 330, 323, 326, 0, 223, 1358, 407, 2215, - 329, 330, 0, 3058, 0, 2333, 330, 0, 2215, 2432, - 0, 2517, 2514, 1560, 1559, 0, 3297, 2560, 0, 1334, - 1366, 1292, 3298, 3299, 0, 72, 74, 2364, 352, 0, - 0, 0, 0, 2553, 0, 0, 0, 0, 1300, 0, - 3299, 3309, 0, 129, 1273, 0, 129, 2244, 0, 0, - 3413, 3414, 0, 0, 0, 3408, 0, 3415, 0, 1, - 5, 0, 0, 734, 1089, 1090, 1088, 734, 734, 0, - 0, 0, 0, 0, 3362, 3355, 3356, 3357, 2824, 2649, - 2936, 2346, 2358, 2344, 2548, 1453, 3330, 1407, 1392, 1394, - 1135, 1167, 2146, 1138, 0, 0, 1140, 0, 1155, 2576, - 2575, 2574, 1152, 1151, 1150, 1148, 0, 577, 0, 1250, - 223, 0, 0, 0, 3363, 3362, 0, 1311, 2348, 2349, - 2350, 2351, 2352, 2355, 243, 0, 465, 468, 0, 457, - 460, 0, 130, 131, 1337, 1340, 0, 737, 0, 165, - 0, 2241, 2240, 0, 2239, 2218, 0, 2237, 0, 0, - 0, 0, 0, 0, 0, 0, 223, 0, 2329, 223, - 2127, 2145, 2145, 507, 0, 3200, 3215, 3216, 1503, 3212, - 3217, 0, 3214, 3206, 0, 3210, 3204, 0, 3236, 3208, - 3213, 2817, 2646, 2831, 2945, 2949, 2965, 2968, 2698, 3011, - 3194, 3179, 3195, 0, 0, 3198, 3202, 0, 0, 2156, - 2157, 2158, 1246, 2423, 2424, 2425, 0, 2442, 0, 420, + 2360, 13, 27, 50, 44, 36, 59, 66, 37, 0, + 2514, 56, 38, 64, 30, 52, 29, 9, 10, 19, + 53, 54, 46, 67, 33, 63, 34, 1167, 0, 0, + 0, 0, 0, 0, 2146, 0, 0, 1249, 0, 1491, + 3356, 3357, 3358, 1357, 0, 1358, 0, 2513, 2555, 2556, + 2762, 2810, 2811, 2705, 2838, 2657, 2932, 2954, 2980, 2744, + 2746, 2745, 2747, 2748, 2749, 2750, 2751, 2752, 2630, 2753, + 2754, 2755, 2757, 2756, 2758, 2759, 2760, 2631, 2704, 2632, + 2710, 2761, 2712, 2711, 2763, 2633, 2634, 2764, 2765, 2766, + 2767, 2688, 2636, 2635, 2768, 2770, 2769, 2713, 2714, 2691, + 2771, 2772, 2773, 2775, 2637, 2638, 2639, 2640, 2641, 2774, + 2642, 2776, 2692, 2777, 2778, 2643, 2779, 2780, 2781, 2782, + 2784, 2783, 2685, 2785, 2786, 2788, 2789, 2790, 2787, 2791, + 2792, 2794, 2793, 2716, 2795, 2715, 2796, 2644, 2797, 2798, + 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2693, 2807, + 2808, 2809, 2830, 2706, 2812, 2814, 2813, 2717, 2815, 2816, + 2817, 2819, 2818, 2820, 2822, 2645, 2646, 2647, 2821, 2823, + 2824, 2825, 2826, 2828, 2827, 2832, 2833, 2718, 2648, 2689, + 2649, 2650, 2829, 2831, 3034, 2834, 2835, 2719, 2720, 2836, + 2651, 2707, 2837, 2694, 2840, 2839, 2652, 2841, 2653, 2842, + 2843, 2844, 2845, 2846, 2848, 2850, 2847, 2851, 2852, 2858, + 2654, 2849, 2853, 2854, 2855, 2856, 2857, 2859, 2721, 2860, + 2686, 2862, 2861, 2863, 2864, 2865, 2866, 2722, 2867, 2708, + 2868, 2869, 2870, 2883, 2884, 2874, 2875, 2877, 2878, 2881, + 2876, 2882, 2887, 2886, 2888, 2889, 2890, 2891, 2892, 2885, + 2872, 2879, 2880, 2873, 2893, 2894, 2871, 2895, 2897, 2896, + 2898, 2723, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, + 2908, 2907, 2909, 2724, 2725, 2726, 2910, 2911, 2912, 2701, + 2913, 2727, 2728, 2916, 2914, 2915, 2917, 2918, 2923, 2924, + 2925, 2687, 2920, 2919, 2921, 2922, 2729, 2730, 2731, 2926, + 2927, 2928, 2929, 2931, 2930, 2695, 2656, 2655, 2658, 2933, + 2934, 2659, 2935, 2937, 2936, 2703, 2660, 2938, 2939, 2941, + 2940, 2732, 2733, 2661, 2690, 2662, 2663, 2942, 2943, 2944, + 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2734, + 2735, 2955, 2956, 2957, 2959, 2958, 2960, 2961, 2962, 2963, + 2964, 2965, 2966, 2664, 2967, 2696, 2968, 2969, 2665, 2971, + 2970, 2666, 2972, 2973, 2974, 2975, 2976, 2702, 2697, 2977, + 2978, 2979, 2736, 2981, 2982, 2983, 2698, 2984, 2985, 2986, + 2667, 2987, 2988, 2737, 2709, 2668, 2989, 2991, 2699, 2669, + 2990, 2671, 2672, 2992, 2993, 2994, 2670, 2995, 2673, 2996, + 2997, 2999, 2998, 3000, 3001, 3002, 2674, 3003, 3004, 2675, + 3005, 2676, 3006, 3007, 3008, 3009, 3011, 3010, 3012, 3013, + 3014, 3015, 3016, 3017, 3019, 3021, 3020, 3018, 3022, 3023, + 2738, 3024, 2677, 2739, 3029, 3030, 2740, 3025, 3026, 3027, + 3028, 2700, 3031, 3032, 3033, 2680, 3035, 3036, 3038, 3037, + 2678, 2679, 3039, 3040, 2684, 3041, 3042, 3047, 2741, 2742, + 3043, 3044, 3056, 3045, 3046, 3049, 3048, 3050, 3051, 2600, + 2681, 3052, 3053, 2682, 3054, 2683, 3055, 2743, 241, 2560, + 2571, 225, 2572, 2597, 2595, 2599, 2593, 2594, 2598, 2592, + 2596, 454, 129, 0, 0, 0, 0, 2238, 2146, 2144, + 2146, 2146, 2146, 2146, 0, 2146, 2146, 0, 2149, 2146, + 2146, 0, 0, 0, 445, 2156, 2423, 0, 2439, 2440, + 2434, 3138, 3139, 3133, 407, 0, 0, 0, 0, 0, + 315, 327, 330, 323, 326, 0, 223, 1359, 407, 2216, + 329, 330, 0, 3059, 0, 2334, 330, 0, 2216, 2433, + 0, 2518, 2515, 1561, 1560, 0, 3298, 2561, 0, 1335, + 1367, 1293, 3299, 3300, 0, 72, 74, 2365, 352, 0, + 0, 0, 0, 2554, 0, 0, 0, 0, 1301, 0, + 3300, 3310, 0, 129, 1274, 0, 129, 2245, 0, 0, + 3414, 3415, 0, 0, 0, 3409, 0, 3416, 0, 1, + 5, 0, 0, 734, 1090, 1091, 1089, 734, 734, 0, + 0, 0, 0, 0, 3363, 3356, 3357, 3358, 2825, 2650, + 2937, 2347, 2359, 2345, 2549, 1454, 3331, 1408, 1393, 1395, + 1136, 1168, 2147, 1139, 0, 0, 1141, 0, 1156, 2577, + 2576, 2575, 1153, 1152, 1151, 1149, 0, 577, 0, 1251, + 223, 0, 0, 0, 3364, 3363, 0, 1312, 2349, 2350, + 2351, 2352, 2353, 2356, 243, 0, 465, 468, 0, 457, + 460, 0, 130, 131, 1338, 1341, 0, 737, 0, 165, + 0, 2242, 2241, 0, 2240, 2219, 0, 2238, 0, 0, + 0, 0, 0, 0, 0, 0, 223, 0, 2330, 223, + 2128, 2146, 2146, 507, 0, 3201, 3216, 3217, 1504, 3213, + 3218, 0, 3215, 3207, 0, 3211, 3205, 0, 3237, 3209, + 3214, 2818, 2647, 2832, 2946, 2950, 2966, 2969, 2699, 3012, + 3195, 3180, 3196, 0, 0, 3199, 3203, 0, 0, 2157, + 2158, 2159, 1247, 2424, 2425, 2426, 0, 2443, 0, 420, 0, 0, 0, 0, 409, 410, 476, 0, 416, 0, - 407, 391, 0, 390, 392, 2512, 411, 386, 394, 393, + 407, 391, 0, 390, 392, 2513, 411, 386, 394, 393, 395, 396, 397, 398, 0, 399, 400, 473, 0, 387, - 388, 503, 389, 2572, 0, 2573, 2601, 2603, 2600, 2602, - 1353, 0, 2502, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1503, 1503, 1503, 1500, 0, 0, 0, 2507, - 0, 0, 0, 0, 2498, 0, 2508, 0, 0, 0, - 2500, 2501, 2556, 2557, 0, 0, 0, 0, 2505, 0, - 0, 0, 0, 0, 2481, 1562, 0, 1500, 0, 2497, - 2504, 0, 2489, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1500, 2480, 0, - 2499, 2506, 0, 1503, 1500, 1500, 0, 0, 2744, 2629, - 2759, 2687, 2770, 2772, 0, 2636, 2637, 2638, 2639, 2640, - 2684, 2794, 2714, 2795, 2796, 2797, 2649, 2718, 2835, 2842, - 2860, 2862, 2721, 2901, 2903, 2908, 2723, 2724, 2725, 2913, - 2914, 2927, 2702, 2731, 2732, 2943, 2950, 2975, 2735, 2980, - 2985, 2988, 3007, 2738, 3028, 3029, 2739, 3027, 2699, 3040, - 3046, 3049, 3050, 2680, 2742, 0, 0, 0, 3341, 1561, - 0, 0, 1798, 875, 1515, 1521, 1535, 0, 1634, 1633, - 1636, 1638, 1644, 1554, 1665, 1605, 1606, 1608, 1727, 1607, - 1612, 1613, 0, 1775, 1614, 0, 0, 1611, 2494, 1610, - 1609, 2495, 2496, 1604, 2534, 2570, 0, 2558, 626, 625, - 2328, 2327, 0, 2416, 342, 337, 345, 339, 341, 340, + 388, 503, 389, 2573, 0, 2574, 2602, 2604, 2601, 2603, + 1354, 0, 2503, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1504, 1504, 1504, 1501, 0, 0, 0, 2508, + 0, 0, 0, 0, 2499, 0, 2509, 0, 0, 0, + 2501, 2502, 2557, 2558, 0, 0, 0, 0, 2506, 0, + 0, 0, 0, 0, 2482, 1563, 0, 1501, 0, 2498, + 2505, 0, 2490, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1501, 2481, 0, + 2500, 2507, 0, 1504, 1501, 1501, 0, 0, 2745, 2630, + 2760, 2688, 2771, 2773, 0, 2637, 2638, 2639, 2640, 2641, + 2685, 2795, 2715, 2796, 2797, 2798, 2650, 2719, 2836, 2843, + 2861, 2863, 2722, 2902, 2904, 2909, 2724, 2725, 2726, 2914, + 2915, 2928, 2703, 2732, 2733, 2944, 2951, 2976, 2736, 2981, + 2986, 2989, 3008, 2739, 3029, 3030, 2740, 3028, 2700, 3041, + 3047, 3050, 3051, 2681, 2743, 0, 0, 0, 3342, 1562, + 0, 0, 1799, 875, 1516, 1522, 1536, 0, 1635, 1634, + 1637, 1639, 1645, 1555, 1666, 1606, 1607, 1609, 1728, 1608, + 1613, 1614, 0, 1776, 1615, 0, 0, 1612, 2495, 1611, + 1610, 2496, 2497, 1605, 2535, 2571, 0, 2559, 626, 625, + 2329, 2328, 0, 2417, 342, 337, 345, 339, 341, 340, 346, 347, 348, 343, 338, 344, 331, 0, 316, 0, - 324, 3310, 0, 0, 407, 510, 2216, 2160, 0, 2159, - 349, 3200, 2745, 2949, 3168, 0, 3178, 0, 0, 0, - 0, 1010, 3081, 3082, 2700, 2702, 2701, 3083, 3024, 2628, - 0, 0, 2565, 0, 0, 2566, 2625, 2623, 2627, 2622, - 2626, 2621, 2624, 3057, 3067, 3063, 0, 0, 0, 2341, - 1085, 1084, 0, 0, 0, 2283, 0, 1010, 2341, 2284, - 0, 2038, 2331, 2334, 0, 3085, 2297, 1086, 3086, 2327, - 0, 2269, 2285, 2246, 2290, 129, 3087, 0, 2330, 2038, - 2341, 0, 2262, 0, 0, 0, 0, 1488, 0, 325, - 3148, 1246, 505, 0, 0, 478, 3293, 0, 0, 0, - 0, 3302, 1844, 2117, 76, 0, 78, 0, 0, 2550, - 1972, 3151, 3150, 0, 85, 0, 3427, 72, 0, 2408, - 0, 2406, 2403, 2405, 0, 3302, 1280, 1280, 0, 0, - 1272, 1274, 1275, 1280, 1280, 2245, 0, 3428, 3429, 2488, - 2486, 2487, 2561, 3410, 2485, 2484, 3419, 3421, 3404, 0, - 3407, 3406, 3416, 6, 68, 0, 0, 223, 223, 734, + 324, 3311, 0, 0, 407, 510, 2217, 2161, 0, 2160, + 349, 3201, 2746, 2950, 3169, 0, 3179, 0, 0, 0, + 0, 1011, 3082, 3083, 2701, 2703, 2702, 3084, 3025, 2629, + 0, 0, 2566, 0, 0, 2567, 2626, 2624, 2628, 2623, + 2627, 2622, 2625, 3058, 3068, 3064, 0, 0, 0, 2342, + 1086, 1085, 0, 0, 0, 2284, 0, 1011, 2342, 2285, + 0, 2039, 2332, 2335, 0, 3086, 2298, 1087, 3087, 2328, + 0, 2270, 2286, 2247, 2291, 129, 3088, 0, 2331, 2039, + 2342, 0, 2263, 0, 0, 0, 0, 1489, 0, 325, + 3149, 1247, 505, 0, 0, 478, 3294, 0, 0, 0, + 0, 3303, 1845, 2118, 76, 0, 78, 0, 0, 2551, + 1973, 3152, 3151, 0, 85, 0, 3428, 72, 0, 2409, + 0, 2407, 2404, 2406, 0, 3303, 1281, 1281, 0, 0, + 1273, 1275, 1276, 1281, 1281, 2246, 0, 3429, 3430, 2489, + 2487, 2488, 2562, 3411, 2486, 2485, 3420, 3422, 3405, 0, + 3408, 3407, 3417, 6, 68, 0, 0, 223, 223, 734, 167, 734, 734, 734, 734, 734, 150, 148, 152, 0, - 0, 158, 0, 154, 3362, 2512, 2361, 1456, 1461, 0, - 1407, 0, 0, 0, 3313, 3312, 3311, 3325, 1395, 1396, - 0, 1026, 0, 226, 3360, 3361, 3359, 1503, 2577, 2580, - 3358, 2581, 226, 1149, 0, 578, 0, 0, 0, 0, - 0, 0, 580, 579, 516, 0, 1254, 1255, 1249, 1251, - 1253, 0, 0, 0, 0, 0, 2360, 0, 245, 242, - 224, 0, 407, 0, 455, 461, 86, 0, 1341, 2136, - 2138, 164, 0, 0, 0, 2219, 0, 1979, 2221, 2225, - 2231, 2235, 2238, 2121, 2144, 0, 2124, 2130, 2129, 2123, - 2329, 0, 2133, 591, 0, 0, 0, 2134, 2118, 0, - 480, 482, 3201, 3199, 3233, 3232, 3237, 0, 3234, 3230, - 0, 3193, 3238, 3223, 3265, 3227, 3265, 3265, 3224, 3231, - 3265, 0, 3229, 3228, 0, 3196, 0, 0, 0, 1247, - 0, 2426, 2427, 0, 1376, 2444, 2443, 2440, 1972, 3134, - 3139, 414, 421, 0, 0, 2913, 0, 426, 425, 424, + 0, 158, 0, 154, 3363, 2513, 2362, 1457, 1462, 0, + 1408, 0, 0, 0, 3314, 3313, 3312, 3326, 1396, 1397, + 0, 1027, 0, 226, 3361, 3362, 3360, 1504, 2578, 2581, + 3359, 2582, 226, 1150, 0, 578, 0, 0, 0, 0, + 0, 0, 580, 579, 516, 0, 1255, 1256, 1250, 1252, + 1254, 0, 0, 0, 0, 0, 2361, 0, 245, 242, + 224, 0, 407, 0, 455, 461, 86, 0, 1342, 2137, + 2139, 164, 0, 0, 0, 2220, 0, 1980, 2222, 2226, + 2232, 2236, 2239, 2122, 2145, 0, 2125, 2131, 2130, 2124, + 2330, 0, 2134, 591, 0, 0, 0, 2135, 2119, 0, + 480, 482, 3202, 3200, 3234, 3233, 3238, 0, 3235, 3231, + 0, 3194, 3239, 3224, 3266, 3228, 3266, 3266, 3225, 3232, + 3266, 0, 3230, 3229, 0, 3197, 0, 0, 0, 1248, + 0, 2427, 2428, 0, 1377, 2445, 2444, 2441, 1973, 3135, + 3140, 414, 421, 0, 0, 2914, 0, 426, 425, 424, 277, 442, 414, 417, 434, 0, 0, 275, 408, 0, 440, 443, 496, 492, 500, 494, 474, 470, 0, 0, - 0, 0, 1639, 1977, 1977, 1977, 0, 0, 1852, 0, - 0, 0, 0, 1977, 0, 1671, 1650, 1651, 0, 1672, - 0, 0, 0, 0, 0, 3341, 0, 0, 1804, 0, - 0, 0, 0, 3341, 0, 0, 2556, 2557, 0, 0, - 0, 1846, 1848, 2534, 2558, 1977, 0, 1977, 0, 1508, - 1681, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1977, 1977, 0, 1977, 1689, 0, 2482, - 2503, 1693, 1695, 1694, 1977, 1977, 0, 0, 1977, 0, - 0, 0, 2491, 2490, 0, 0, 0, 0, 0, 0, - 0, 2509, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2511, 0, 0, 0, 2510, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1641, 0, - 1640, 1642, 0, 877, 876, 2512, 0, 0, 0, 1558, - 1557, 1556, 1555, 0, 0, 0, 0, 1564, 0, 1566, - 1568, 1563, 1565, 1567, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1643, 0, 0, 0, 0, 0, - 2483, 0, 1737, 0, 638, 0, 0, 0, 314, 1360, - 2582, 0, 1359, 1363, 3134, 489, 0, 2163, 2153, 2162, - 1884, 3199, 0, 0, 0, 3196, 0, 0, 3059, 3061, - 1009, 0, 0, 1012, 1014, 2180, 2179, 1013, 1022, 0, - 1011, 0, 3122, 0, 0, 3107, 0, 3088, 0, 1018, - 1020, 1019, 3102, 1017, 0, 0, 0, 3072, 0, 0, - 734, 0, 0, 0, 0, 0, 0, 0, 2312, 0, - 1488, 1488, 2263, 0, 2341, 2331, 0, 2341, 2337, 2296, - 0, 0, 790, 2040, 2289, 0, 2039, 2335, 2336, 2341, - 0, 0, 2341, 0, 2303, 2331, 2341, 2258, 0, 0, - 2250, 2255, 2251, 0, 2257, 2256, 2259, 2247, 2248, 0, - 2276, 2305, 0, 2288, 2295, 0, 2275, 2282, 0, 2293, - 2331, 2331, 0, 2341, 2341, 2341, 1889, 487, 2515, 2518, - 2522, 2526, 277, 0, 0, 1368, 1370, 1369, 1386, 1294, - 3301, 0, 3303, 0, 3305, 0, 78, 73, 79, 75, - 0, 2389, 0, 0, 0, 2383, 2385, 2388, 2384, 0, - 0, 2390, 129, 0, 2386, 2365, 2368, 2375, 1488, 2366, - 0, 0, 350, 353, 355, 0, 358, 1973, 1974, 0, - 3149, 0, 2549, 0, 71, 1298, 1301, 0, 2413, 2410, - 129, 0, 2697, 3308, 3306, 1268, 1284, 1266, 1278, 1279, - 0, 0, 1271, 1270, 3134, 0, 0, 3405, 3422, 3403, - 0, 3417, 3418, 3402, 7, 4, 0, 142, 0, 0, - 0, 0, 0, 0, 0, 0, 734, 1490, 1490, 734, - 160, 734, 156, 734, 0, 2347, 2345, 2362, 2363, 1889, - 2102, 0, 1393, 1480, 1445, 1457, 1480, 1979, 2038, 3323, - 1456, 1448, 3354, 3349, 3351, 3350, 3347, 3348, 3352, 1479, - 3353, 1478, 1490, 1462, 1476, 1477, 2189, 3331, 2175, 0, - 1397, 1456, 1453, 3327, 3326, 3316, 3321, 1027, 1026, 728, - 731, 730, 0, 0, 1139, 2579, 0, 1141, 0, 2329, - 1156, 0, 0, 2329, 527, 2329, 581, 3134, 1252, 2580, - 3264, 0, 3270, 3252, 3364, 3365, 1146, 1144, 0, 1312, - 1313, 1316, 0, 246, 248, 466, 407, 0, 0, 0, - 1351, 0, 1349, 1348, 1346, 1347, 1345, 0, 1336, 1342, - 1343, 2329, 519, 1884, 0, 2222, 2227, 2140, 2142, 2548, - 1980, 2029, 0, 0, 0, 2233, 0, 0, 591, 2126, - 3191, 594, 593, 2131, 592, 2181, 3250, 2125, 1256, 0, - 0, 407, 481, 427, 3226, 1504, 0, 3207, 3211, 3205, - 3209, 0, 3189, 0, 0, 3197, 0, 0, 3235, 3218, - 3222, 3221, 3219, 0, 3220, 3225, 3203, 406, 446, 2150, - 2428, 3040, 2429, 2421, 0, 2441, 0, 0, 3136, 2058, - 0, 3133, 422, 0, 414, 0, 0, 0, 437, 273, + 0, 0, 1640, 1978, 1978, 1978, 0, 0, 1853, 0, + 0, 0, 0, 1978, 0, 1672, 1651, 1652, 0, 1673, + 0, 0, 0, 0, 0, 3342, 0, 0, 1805, 0, + 0, 0, 0, 3342, 0, 0, 2557, 2558, 0, 0, + 0, 1847, 1849, 2535, 2559, 1978, 0, 1978, 0, 1509, + 1682, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1978, 1978, 0, 1978, 1690, 0, 2483, + 2504, 1694, 1696, 1695, 1978, 1978, 0, 0, 1978, 0, + 0, 0, 2492, 2491, 0, 0, 0, 0, 0, 0, + 0, 2510, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2512, 0, 0, 0, 2511, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1642, 0, + 1641, 1643, 0, 877, 876, 2513, 0, 0, 0, 1559, + 1558, 1557, 1556, 0, 0, 0, 0, 1565, 0, 1567, + 1569, 1564, 1566, 1568, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1644, 0, 0, 0, 0, 0, + 2484, 0, 1738, 0, 638, 0, 0, 0, 314, 1361, + 2583, 0, 1360, 1364, 3135, 489, 0, 2164, 2154, 2163, + 1885, 3200, 0, 0, 0, 3197, 0, 0, 3060, 3062, + 1010, 0, 0, 1013, 1015, 2181, 2180, 1014, 1023, 0, + 1012, 0, 3123, 0, 0, 3108, 0, 3089, 0, 1019, + 1021, 1020, 3103, 1018, 0, 0, 0, 3073, 0, 0, + 734, 0, 0, 0, 0, 0, 0, 0, 2313, 0, + 1489, 1489, 2264, 0, 2342, 2332, 0, 2342, 2338, 2297, + 0, 0, 790, 2041, 2290, 0, 2040, 2336, 2337, 2342, + 0, 0, 2342, 0, 2304, 2332, 2342, 2259, 0, 0, + 2251, 2256, 2252, 0, 2258, 2257, 2260, 2248, 2249, 0, + 2277, 2306, 0, 2289, 2296, 0, 2276, 2283, 0, 2294, + 2332, 2332, 0, 2342, 2342, 2342, 1890, 487, 2516, 2519, + 2523, 2527, 277, 0, 0, 1369, 1371, 1370, 1387, 1295, + 3302, 0, 3304, 0, 3306, 0, 78, 73, 79, 75, + 0, 2390, 0, 0, 0, 2384, 2386, 2389, 2385, 0, + 0, 2391, 129, 0, 2387, 2366, 2369, 2376, 1489, 2367, + 0, 0, 350, 353, 355, 0, 358, 1974, 1975, 0, + 3150, 0, 2550, 0, 71, 1299, 1302, 0, 2414, 2411, + 129, 0, 2698, 3309, 3307, 1269, 1285, 1267, 1279, 1280, + 0, 0, 1272, 1271, 3135, 0, 0, 3406, 3423, 3404, + 0, 3418, 3419, 3403, 7, 4, 0, 142, 0, 0, + 0, 0, 0, 0, 0, 0, 734, 1491, 1491, 734, + 160, 734, 156, 734, 0, 2348, 2346, 2363, 2364, 1890, + 2103, 0, 1394, 1481, 1446, 1458, 1481, 1980, 2039, 3324, + 1457, 1449, 3355, 3350, 3352, 3351, 3348, 3349, 3353, 1480, + 3354, 1479, 1491, 1463, 1477, 1478, 2190, 3332, 2176, 0, + 1398, 1457, 1454, 3328, 3327, 3317, 3322, 1028, 1027, 728, + 731, 730, 0, 0, 1140, 2580, 0, 1142, 0, 2330, + 1157, 0, 0, 2330, 527, 2330, 581, 3135, 1253, 2581, + 3265, 0, 3271, 3253, 3365, 3366, 1147, 1145, 0, 1313, + 1314, 1317, 0, 246, 248, 466, 407, 0, 0, 0, + 1352, 0, 1350, 1349, 1347, 1348, 1346, 0, 1337, 1343, + 1344, 2330, 519, 1885, 0, 2223, 2228, 2141, 2143, 2549, + 1981, 2030, 0, 0, 0, 2234, 0, 0, 591, 2127, + 3192, 594, 593, 2132, 592, 2182, 3251, 2126, 1257, 0, + 0, 407, 481, 427, 3227, 1505, 0, 3208, 3212, 3206, + 3210, 0, 3190, 0, 0, 3198, 0, 0, 3236, 3219, + 3223, 3222, 3220, 0, 3221, 3226, 3204, 406, 446, 2151, + 2429, 3041, 2430, 2422, 0, 2442, 0, 0, 3137, 2059, + 0, 3134, 422, 0, 414, 0, 0, 0, 437, 273, 418, 414, 427, 436, 486, 276, 412, 0, 0, 407, - 407, 0, 277, 3134, 0, 1978, 0, 1819, 0, 0, - 0, 0, 0, 0, 1620, 0, 0, 0, 1758, 0, - 1819, 1781, 2088, 2089, 2069, 2070, 2068, 2071, 1501, 0, - 2072, 2087, 1705, 0, 0, 0, 1779, 0, 1948, 1949, - 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, - 1961, 1966, 1962, 1963, 1964, 1965, 1960, 1967, 0, 1947, - 0, 1805, 1771, 0, 0, 0, 0, 877, 0, 0, - 0, 0, 0, 0, 0, 1977, 0, 0, 1977, 0, - 0, 0, 0, 1780, 0, 0, 0, 1778, 0, 0, - 0, 1777, 1663, 0, 0, 0, 1977, 0, 0, 0, - 0, 1596, 0, 0, 0, 0, 0, 1977, 0, 0, - 0, 0, 0, 0, 0, 0, 1589, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1970, 1968, - 1971, 1969, 0, 0, 1844, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1719, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1667, 0, 0, 0, 2539, 0, - 1055, 0, 0, 0, 0, 1635, 0, 0, 0, 0, - 3088, 1799, 1801, 1506, 1505, 1507, 1518, 1511, 1516, 1509, - 1513, 0, 1569, 2751, 1519, 0, 0, 1551, 3341, 1986, - 1552, 1540, 1533, 1538, 1539, 0, 1536, 1537, 0, 1542, - 0, 1541, 1548, 1549, 1550, 1553, 0, 0, 0, 0, - 1637, 1021, 1645, 1999, 1773, 1774, 1797, 2003, 0, 2535, - 1490, 1592, 1591, 1593, 1594, 1595, 639, 0, 633, 636, - 650, 0, 0, 0, 2417, 0, 2714, 2738, 2739, 332, - 335, 334, 336, 0, 0, 0, 0, 0, 2161, 2512, - 0, 2139, 1885, 0, 0, 0, 3254, 3176, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3105, 0, 0, - 3104, 3103, 0, 3124, 0, 0, 3109, 3130, 3131, 3128, - 3129, 3127, 3108, 0, 0, 3066, 3110, 3111, 3114, 0, - 0, 0, 0, 0, 3095, 0, 3024, 3068, 3069, 3074, - 3064, 2304, 0, 0, 2307, 2300, 2311, 2761, 2309, 2321, - 2308, 2302, 2313, 2301, 0, 0, 2318, 2314, 2341, 0, - 2341, 2316, 0, 2339, 2326, 2325, 2324, 2273, 2272, 2051, - 2052, 0, 2050, 0, 2041, 2044, 2049, 2047, 2266, 2332, - 2319, 2315, 223, 2341, 2271, 2270, 2252, 2253, 2254, 0, - 2038, 0, 2337, 2306, 2331, 0, 2341, 2341, 2322, 2323, - 2292, 2294, 1917, 0, 1859, 0, 1861, 1858, 1857, 1856, - 1887, 0, 1888, 407, 0, 0, 2520, 273, 0, 0, - 0, 623, 1386, 1372, 1388, 1296, 1295, 1293, 3300, 3304, - 1845, 77, 0, 2394, 2377, 2376, 2378, 2382, 129, 2387, - 2379, 0, 2391, 2392, 363, 0, 359, 0, 0, 2563, - 1976, 2564, 2588, 2586, 2590, 2584, 2585, 2589, 2583, 2587, - 2832, 2913, 0, 1979, 3153, 3426, 0, 1302, 2058, 2409, - 2411, 2404, 3307, 1269, 1286, 1285, 1281, 1282, 1287, 1277, - 1276, 2243, 3411, 3420, 3424, 3409, 735, 1026, 3187, 3270, - 192, 1105, 0, 0, 132, 134, 0, 151, 734, 149, + 407, 0, 277, 3135, 0, 1979, 0, 1820, 0, 0, + 0, 0, 0, 0, 1621, 0, 0, 0, 1759, 0, + 1820, 1782, 2089, 2090, 2070, 2071, 2069, 2072, 1502, 0, + 2073, 2088, 1706, 0, 0, 0, 1780, 0, 1949, 1950, + 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, + 1962, 1967, 1963, 1964, 1965, 1966, 1961, 1968, 0, 1948, + 0, 1806, 1772, 0, 0, 0, 0, 877, 0, 0, + 0, 0, 0, 0, 0, 1978, 0, 0, 1978, 0, + 0, 0, 0, 1781, 0, 0, 0, 1779, 0, 0, + 0, 1778, 1664, 0, 0, 0, 1978, 0, 0, 0, + 0, 1597, 0, 0, 0, 0, 0, 1978, 0, 0, + 0, 0, 0, 0, 0, 0, 1590, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1971, 1969, + 1972, 1970, 0, 0, 1845, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1720, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1668, 0, 0, 0, 2540, 0, + 1056, 0, 0, 0, 0, 1636, 0, 0, 0, 0, + 3089, 1800, 1802, 1507, 1506, 1508, 1519, 1512, 1517, 1510, + 1514, 0, 1570, 2752, 1520, 0, 0, 1552, 3342, 1987, + 1553, 1541, 1534, 1539, 1540, 0, 1537, 1538, 0, 1543, + 0, 1542, 1549, 1550, 1551, 1554, 0, 0, 0, 0, + 1638, 1022, 1646, 2000, 1774, 1775, 1798, 2004, 0, 2536, + 1491, 1593, 1592, 1594, 1595, 1596, 639, 0, 633, 636, + 650, 0, 0, 0, 2418, 0, 2715, 2739, 2740, 332, + 335, 334, 336, 0, 0, 0, 0, 0, 2162, 2513, + 0, 2140, 1886, 0, 0, 0, 3255, 3177, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3106, 0, 0, + 3105, 3104, 0, 3125, 0, 0, 3110, 3131, 3132, 3129, + 3130, 3128, 3109, 0, 0, 3067, 3111, 3112, 3115, 0, + 0, 0, 0, 0, 3096, 0, 3025, 3069, 3070, 3075, + 3065, 2305, 0, 0, 2308, 2301, 2312, 2762, 2310, 2322, + 2309, 2303, 2314, 2302, 0, 0, 2319, 2315, 2342, 0, + 2342, 2317, 0, 2340, 2327, 2326, 2325, 2274, 2273, 2052, + 2053, 0, 2051, 0, 2042, 2045, 2050, 2048, 2267, 2333, + 2320, 2316, 223, 2342, 2272, 2271, 2253, 2254, 2255, 0, + 2039, 0, 2338, 2307, 2332, 0, 2342, 2342, 2323, 2324, + 2293, 2295, 1918, 0, 1860, 0, 1862, 1859, 1858, 1857, + 1888, 0, 1889, 407, 0, 0, 2521, 273, 0, 0, + 0, 623, 1387, 1373, 1389, 1297, 1296, 1294, 3301, 3305, + 1846, 77, 0, 2395, 2378, 2377, 2379, 2383, 129, 2388, + 2380, 0, 2392, 2393, 363, 0, 359, 0, 0, 2564, + 1977, 2565, 2589, 2587, 2591, 2585, 2586, 2590, 2584, 2588, + 2833, 2914, 0, 1980, 3154, 3427, 0, 1303, 2059, 2410, + 2412, 2405, 3308, 1270, 1287, 1286, 1282, 1283, 1288, 1278, + 1277, 2244, 3412, 3421, 3425, 3410, 735, 1027, 3188, 3271, + 192, 1106, 0, 0, 132, 134, 0, 151, 734, 149, 153, 734, 0, 734, 170, 159, 0, 171, 168, 734, - 155, 0, 734, 1460, 1458, 1459, 0, 0, 2115, 0, - 2110, 2031, 0, 0, 1429, 0, 1446, 1450, 1451, 1427, - 1987, 3322, 1457, 2029, 1485, 1454, 1484, 0, 1475, 1490, - 0, 1411, 1398, 1399, 1408, 1439, 1438, 1456, 0, 729, - 2181, 2181, 0, 0, 0, 0, 0, 0, 0, 0, - 227, 236, 2578, 0, 0, 525, 526, 2181, 524, 567, - 568, 571, 572, 573, 0, 0, 574, 2181, 2181, 521, + 155, 0, 734, 1461, 1459, 1460, 0, 0, 2116, 0, + 2111, 2032, 0, 0, 1430, 0, 1447, 1451, 1452, 1428, + 1988, 3323, 1458, 2030, 1486, 1455, 1485, 0, 1476, 1491, + 0, 1412, 1399, 1400, 1409, 1440, 1439, 1457, 0, 729, + 2182, 2182, 0, 0, 0, 0, 0, 0, 0, 0, + 227, 236, 2579, 0, 0, 525, 526, 2182, 524, 567, + 568, 571, 572, 573, 0, 0, 574, 2182, 2182, 521, 547, 548, 551, 552, 553, 554, 555, 517, 0, 522, - 1133, 0, 0, 0, 3282, 1158, 3366, 1142, 0, 0, - 1315, 244, 0, 0, 453, 462, 456, 458, 0, 0, + 1134, 0, 0, 0, 3283, 1159, 3367, 1143, 0, 0, + 1316, 244, 0, 0, 453, 462, 456, 458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 87, 88, 109, 0, 1338, 1350, 2137, 1344, - 2181, 2181, 2181, 2181, 523, 556, 557, 560, 561, 562, - 563, 566, 564, 565, 0, 2329, 2223, 1463, 0, 0, - 0, 2551, 0, 2054, 2030, 2232, 1889, 2236, 2235, 3134, - 2122, 2132, 0, 2182, 0, 0, 1258, 1257, 2128, 2135, - 3134, 407, 302, 430, 484, 3269, 0, 3268, 0, 0, - 3186, 0, 3246, 3249, 2548, 0, 0, 0, 0, 407, - 2512, 2430, 1377, 1379, 1380, 1378, 1386, 0, 0, 3142, - 3143, 3141, 2063, 2059, 0, 3135, 3140, 415, 423, 438, + 0, 0, 87, 88, 109, 0, 1339, 1351, 2138, 1345, + 2182, 2182, 2182, 2182, 523, 556, 557, 560, 561, 562, + 563, 566, 564, 565, 0, 2330, 2224, 1464, 0, 0, + 0, 2552, 0, 2055, 2031, 2233, 1890, 2237, 2236, 3135, + 2123, 2133, 0, 2183, 0, 0, 1259, 1258, 2129, 2136, + 3135, 407, 302, 430, 484, 3270, 0, 3269, 0, 0, + 3187, 0, 3247, 3250, 2549, 0, 0, 0, 0, 407, + 2513, 2431, 1378, 1380, 1381, 1379, 1387, 0, 0, 3143, + 3144, 3142, 2064, 2060, 0, 3136, 3141, 415, 423, 438, 441, 0, 0, 407, 0, 419, 428, 432, 0, 444, - 497, 471, 471, 471, 273, 1354, 0, 1753, 0, 1754, - 1755, 0, 1621, 1853, 0, 0, 0, 1648, 0, 0, - 0, 1757, 0, 1502, 0, 0, 1624, 1616, 0, 1783, - 0, 1788, 0, 1786, 0, 0, 0, 0, 0, 0, - 1847, 0, 1849, 2535, 0, 1763, 1793, 0, 1761, 0, - 1782, 0, 1794, 1795, 0, 0, 0, 0, 1767, 1765, - 0, 0, 0, 1769, 0, 0, 0, 0, 0, 0, - 0, 1666, 1766, 1768, 0, 1701, 0, 1751, 1702, 1703, - 1704, 2538, 0, 1698, 0, 1699, 0, 0, 0, 0, - 0, 1652, 1653, 0, 0, 0, 1729, 0, 1654, 1709, - 0, 1629, 1730, 1711, 1659, 1660, 1731, 1732, 1733, 1626, - 1627, 1713, 1714, 0, 1735, 1628, 1715, 1718, 0, 1662, - 2058, 0, 1646, 0, 0, 0, 1664, 1692, 0, 0, - 0, 1625, 0, 1721, 0, 0, 0, 2058, 0, 0, - 1668, 0, 0, 878, 1906, 1422, 1480, 3329, 3328, 3337, - 3338, 3342, 1617, 2536, 0, 0, 1512, 1517, 1510, 1514, - 3341, 0, 0, 0, 0, 1531, 1530, 0, 0, 0, - 3341, 1986, 1534, 2001, 0, 0, 1791, 1842, 0, 0, - 0, 1747, 1748, 0, 1490, 632, 631, 0, 635, 711, - 0, 652, 640, 629, 2419, 2418, 0, 0, 1361, 1364, - 0, 0, 2167, 0, 0, 2512, 2173, 2154, 2164, 0, - 0, 0, 3177, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3092, 3062, 2512, 0, 0, 1025, 1024, 1023, - 3123, 0, 0, 3116, 3117, 0, 0, 0, 3089, 3090, - 3091, 0, 2611, 2567, 2569, 0, 2568, 2609, 2607, 2610, - 2605, 2606, 2604, 2608, 3098, 0, 3071, 3072, 3073, 0, - 0, 2299, 2310, 2342, 2343, 2267, 2320, 2317, 2338, 2058, - 2277, 0, 2490, 0, 0, 0, 0, 2298, 2268, 0, - 2291, 2249, 2339, 1979, 2331, 2264, 2265, 1917, 1889, 0, - 0, 1879, 1920, 0, 1920, 1881, 1882, 1889, 0, 1889, - 1884, 407, 2519, 0, 2524, 0, 407, 1335, 1375, 1367, - 1374, 1371, 1386, 1384, 1373, 1081, 1080, 0, 1387, 2200, - 2201, 80, 82, 2199, 83, 0, 2380, 2381, 2374, 2393, - 2369, 0, 354, 364, 356, 360, 361, 362, 357, 3164, - 3165, 3157, 3160, 3158, 3159, 3163, 3166, 3167, 3154, 3161, - 2038, 1309, 1307, 1306, 1308, 1297, 1303, 1304, 2414, 2412, - 2407, 1284, 0, 1267, 2058, 0, 3423, 143, 1026, 0, - 163, 3282, 0, 0, 0, 0, 0, 0, 738, 174, - 3399, 3387, 0, 144, 172, 161, 173, 169, 3396, 225, - 157, 0, 2562, 2111, 2114, 0, 2103, 2105, 2106, 2574, - 2108, 0, 3134, 0, 2095, 1447, 1452, 3314, 0, 1982, - 2038, 1490, 1491, 1491, 2534, 0, 0, 2194, 2187, 2174, - 1480, 1453, 1414, 3317, 1401, 0, 0, 1137, 0, 0, - 0, 230, 233, 231, 232, 576, 575, 0, 2329, 569, - 2181, 2181, 188, 2181, 2181, 187, 189, 0, 183, 180, - 190, 2181, 1157, 176, 0, 0, 0, 0, 2058, 0, - 0, 0, 194, 0, 0, 2329, 549, 528, 529, 532, - 533, 534, 1026, 0, 3257, 3256, 0, 3272, 0, 0, - 3274, 0, 3273, 3271, 3239, 3253, 0, 1154, 0, 1160, - 1162, 0, 0, 3366, 1314, 0, 247, 407, 0, 459, - 0, 0, 2058, 0, 2058, 2058, 0, 0, 2058, 0, - 2058, 0, 0, 0, 0, 0, 0, 0, 2058, 0, - 0, 0, 0, 2058, 0, 1352, 0, 0, 0, 0, - 2329, 558, 0, 2181, 518, 535, 536, 539, 540, 541, - 542, 543, 546, 544, 545, 1465, 1464, 0, 2220, 1467, - 2141, 2235, 1889, 2549, 1981, 0, 2229, 1979, 0, 2234, - 2120, 3192, 590, 789, 3251, 1256, 0, 303, 0, 0, - 427, 3266, 0, 3286, 0, 0, 0, 0, 0, 0, - 0, 0, 407, 2202, 0, 1386, 1390, 2434, 3145, 3146, - 3144, 2066, 2067, 2064, 2062, 2065, 439, 306, 308, 305, - 307, 2620, 0, 293, 279, 295, 0, 382, 288, 380, - 381, 2617, 2615, 2619, 2613, 2614, 2618, 2612, 2616, 477, + 497, 471, 471, 471, 273, 1355, 0, 1754, 0, 1755, + 1756, 0, 1622, 1854, 0, 0, 0, 1649, 0, 0, + 0, 1758, 0, 1503, 0, 0, 1625, 1617, 0, 1784, + 0, 1789, 0, 1787, 0, 0, 0, 0, 0, 0, + 1848, 0, 1850, 2536, 0, 1764, 1794, 0, 1762, 0, + 1783, 0, 1795, 1796, 0, 0, 0, 0, 1768, 1766, + 0, 0, 0, 1770, 0, 0, 0, 0, 0, 0, + 0, 1667, 1767, 1769, 0, 1702, 0, 1752, 1703, 1704, + 1705, 2539, 0, 1699, 0, 1700, 0, 0, 0, 0, + 0, 1653, 1654, 0, 0, 0, 1730, 0, 1655, 1710, + 0, 1630, 1731, 1712, 1660, 1661, 1732, 1733, 1734, 1627, + 1628, 1714, 1715, 0, 1736, 1629, 1716, 1719, 0, 1663, + 2059, 0, 1647, 0, 0, 0, 1665, 1693, 0, 0, + 0, 1626, 0, 1722, 0, 0, 0, 2059, 0, 0, + 1669, 0, 0, 878, 1907, 1423, 1481, 3330, 3329, 3338, + 3339, 3343, 1618, 2537, 0, 0, 1513, 1518, 1511, 1515, + 3342, 0, 0, 0, 0, 1532, 1531, 0, 0, 0, + 3342, 1987, 1535, 2002, 0, 0, 1792, 1843, 0, 0, + 0, 1748, 1749, 0, 0, 632, 631, 0, 635, 711, + 0, 652, 640, 629, 2420, 2419, 0, 0, 1362, 1365, + 0, 0, 2168, 0, 0, 2513, 2174, 2155, 2165, 0, + 0, 0, 3178, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3093, 3063, 2513, 0, 0, 1026, 1025, 1024, + 3124, 0, 0, 3117, 3118, 0, 0, 0, 3090, 3091, + 3092, 0, 2612, 2568, 2570, 0, 2569, 2610, 2608, 2611, + 2606, 2607, 2605, 2609, 3099, 0, 3072, 3073, 3074, 0, + 0, 2300, 2311, 2343, 2344, 2268, 2321, 2318, 2339, 2059, + 2278, 0, 2491, 0, 0, 0, 0, 2299, 2269, 0, + 2292, 2250, 2340, 1980, 2332, 2265, 2266, 1918, 1890, 0, + 0, 1880, 1921, 0, 1921, 1882, 1883, 1890, 0, 1890, + 1885, 407, 2520, 0, 2525, 0, 407, 1336, 1376, 1368, + 1375, 1372, 1387, 1385, 1374, 1082, 1081, 0, 1388, 2201, + 2202, 80, 82, 2200, 83, 0, 2381, 2382, 2375, 2394, + 2370, 0, 354, 364, 356, 360, 361, 362, 357, 3165, + 3166, 3158, 3161, 3159, 3160, 3164, 3167, 3168, 3155, 3162, + 2039, 1310, 1308, 1307, 1309, 1298, 1304, 1305, 2415, 2413, + 2408, 1285, 0, 1268, 2059, 0, 3424, 143, 1027, 0, + 163, 3283, 0, 0, 0, 0, 0, 0, 738, 174, + 3400, 3388, 0, 144, 172, 161, 173, 169, 3397, 225, + 157, 0, 2563, 2112, 2115, 0, 2104, 2106, 2107, 2575, + 2109, 0, 3135, 0, 2096, 1448, 1453, 3315, 0, 1983, + 2039, 1491, 1492, 1492, 2535, 0, 0, 2195, 2188, 2175, + 1481, 1454, 1415, 3318, 1402, 0, 0, 1138, 0, 0, + 0, 230, 233, 231, 232, 576, 575, 0, 2330, 569, + 2182, 2182, 188, 2182, 2182, 187, 189, 0, 183, 180, + 190, 2182, 1158, 176, 0, 0, 0, 0, 2059, 0, + 0, 0, 194, 0, 0, 2330, 549, 528, 529, 532, + 533, 534, 1027, 0, 3258, 3257, 0, 3273, 0, 0, + 3275, 0, 3274, 3272, 3240, 3254, 0, 1155, 0, 1161, + 1163, 0, 0, 3367, 1315, 0, 247, 407, 0, 459, + 0, 0, 2059, 0, 2059, 2059, 0, 0, 2059, 0, + 2059, 0, 0, 0, 0, 0, 0, 0, 2059, 0, + 0, 0, 0, 2059, 0, 1353, 0, 0, 0, 0, + 2330, 558, 0, 2182, 518, 535, 536, 539, 540, 541, + 542, 543, 546, 544, 545, 1466, 1465, 0, 2221, 1468, + 2142, 2236, 1890, 2550, 1982, 0, 2230, 1980, 0, 2235, + 2121, 3193, 590, 789, 3252, 1257, 0, 303, 0, 0, + 427, 3267, 0, 3287, 0, 0, 0, 0, 0, 0, + 0, 0, 407, 2203, 0, 1387, 1391, 2435, 3146, 3147, + 3145, 2067, 2068, 2065, 2063, 2066, 439, 306, 308, 305, + 307, 2621, 0, 293, 279, 295, 0, 382, 288, 380, + 381, 2618, 2616, 2620, 2614, 2615, 2619, 2613, 2617, 477, 0, 278, 0, 435, 427, 0, 491, 493, 472, 501, - 495, 407, 0, 1820, 1850, 0, 975, 975, 961, 979, - 1837, 1831, 1834, 0, 975, 1839, 975, 1832, 975, 0, - 0, 1829, 1830, 0, 0, 0, 1759, 1756, 0, 0, - 0, 1808, 0, 0, 0, 0, 0, 1545, 0, 1742, - 1764, 1762, 0, 0, 0, 0, 0, 0, 0, 0, - 1770, 1602, 0, 1600, 0, 1601, 0, 1603, 0, 0, - 1752, 0, 1571, 1590, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1845, 0, 0, 2074, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2540, 0, - 0, 0, 1044, 1050, 1053, 1054, 1056, 1048, 0, 1723, - 0, 0, 0, 1456, 1905, 3343, 1422, 0, 0, 0, - 3335, 1480, 3339, 3325, 0, 3340, 1802, 1800, 0, 1528, - 1524, 0, 1522, 1985, 1544, 1543, 0, 0, 0, 1532, - 2003, 2002, 0, 1790, 0, 0, 1843, 2537, 1491, 1738, - 1490, 642, 0, 634, 0, 2058, 637, 651, 0, 663, - 0, 0, 0, 333, 0, 1365, 0, 0, 2171, 2172, - 2512, 0, 0, 0, 2170, 2528, 2527, 2539, 717, 0, - 1945, 0, 3175, 3255, 0, 0, 0, 0, 0, 0, - 0, 3060, 3106, 3097, 0, 0, 0, 0, 3121, 3115, - 3112, 3113, 0, 0, 0, 3096, 3070, 3076, 3075, 3078, - 3080, 2287, 2286, 0, 2340, 2038, 2053, 2043, 0, 2046, - 2045, 2048, 2260, 2279, 2281, 2341, 1919, 1912, 0, 3320, - 1480, 1909, 1910, 1918, 1889, 0, 0, 1883, 1880, 1921, - 0, 1920, 1920, 1889, 0, 1863, 2207, 2210, 0, 1862, - 1469, 0, 2523, 0, 0, 479, 0, 1939, 0, 0, - 2372, 0, 2367, 2370, 0, 0, 0, 3152, 0, 1299, - 1305, 1283, 0, 1290, 1288, 3412, 3425, 0, 162, 0, - 1121, 1123, 1122, 1106, 1107, 0, 138, 140, 0, 0, - 2181, 2181, 2181, 2181, 2181, 0, 2181, 2181, 2181, 2181, - 2181, 0, 2181, 2181, 2181, 2181, 2181, 2181, 2181, 2181, - 2181, 2181, 0, 0, 2181, 2181, 835, 133, 605, 619, - 739, 742, 783, 767, 768, 0, 1026, 175, 0, 0, - 203, 3366, 0, 0, 146, 1015, 2107, 0, 0, 2533, - 2032, 2035, 1481, 0, 0, 1428, 3315, 0, 1983, 1994, - 1449, 1483, 1492, 1486, 0, 1491, 2190, 1490, 2191, 1410, - 1456, 1414, 0, 0, 1402, 1403, 788, 787, 235, 234, - 239, 240, 2084, 2085, 2082, 2083, 582, 595, 2086, 596, - 570, 2058, 2058, 2186, 2185, 2058, 2058, 182, 179, 2184, - 2183, 2058, 2058, 177, 198, 197, 199, 200, 202, 201, - 196, 1153, 0, 583, 584, 550, 0, 530, 1244, 1244, - 0, 1244, 0, 0, 1244, 2181, 0, 0, 623, 1262, - 2181, 0, 0, 0, 0, 0, 1228, 0, 1244, 0, - 0, 0, 0, 0, 1174, 1227, 740, 1134, 1173, 1175, - 1187, 619, 0, 1205, 1230, 1231, 1229, 3260, 0, 3262, - 3245, 3244, 3243, 3240, 0, 2058, 2058, 2058, 0, 2058, - 3281, 3283, 3295, 0, 0, 208, 3368, 0, 3370, 0, - 1318, 0, 1317, 407, 463, 2058, 2058, 102, 2058, 94, - 95, 90, 122, 123, 92, 93, 98, 97, 99, 100, - 103, 104, 101, 96, 91, 126, 128, 127, 105, 124, - 125, 89, 589, 588, 587, 586, 559, 0, 0, 2329, - 537, 1466, 1468, 0, 1979, 2552, 0, 2055, 1490, 2224, - 2226, 2119, 508, 2512, 485, 431, 483, 3267, 0, 3185, - 3190, 0, 3248, 3247, 3270, 3270, 3270, 3270, 449, 0, - 2151, 1381, 1386, 1390, 0, 1382, 2445, 955, 977, 975, - 975, 941, 961, 957, 961, 951, 992, 899, 899, 992, - 954, 899, 961, 956, 0, 953, 992, 952, 899, 0, - 945, 977, 893, 894, 899, 975, 912, 0, 961, 934, - 933, 992, 937, 938, 936, 940, 0, 942, 961, 947, - 935, 939, 0, 0, 975, 975, 975, 0, 0, 975, - 1022, 884, 886, 885, 887, 888, 961, 977, 977, 0, - 0, 975, 979, 384, 0, 0, 296, 0, 274, 429, - 433, 407, 471, 0, 1851, 0, 976, 1821, 1822, 0, - 1836, 963, 962, 0, 980, 1838, 1835, 1824, 1841, 1828, - 1833, 1840, 1826, 1619, 1649, 1623, 1622, 0, 0, 0, - 1679, 0, 1806, 1789, 1787, 0, 0, 1656, 0, 1658, - 0, 0, 1744, 1712, 1785, 1682, 1716, 0, 1661, 0, - 1688, 1686, 0, 1599, 1597, 1598, 0, 1669, 1696, 0, - 1588, 1697, 0, 1728, 1675, 0, 1677, 0, 1678, 0, - 1707, 0, 1680, 1710, 1734, 1615, 2076, 2075, 2073, 1630, - 2058, 0, 1683, 1647, 0, 0, 1720, 2541, 2542, 0, - 1722, 0, 0, 1055, 1041, 1042, 1043, 0, 1045, 1047, - 1049, 0, 2058, 1736, 1547, 1546, 3332, 1490, 3344, 3346, - 0, 3336, 1423, 1906, 3333, 3324, 1904, 1900, 1902, 0, - 1520, 0, 1529, 1526, 0, 1523, 2005, 2004, 2035, 0, - 0, 1739, 1492, 1749, 0, 643, 644, 646, 1491, 660, - 0, 713, 638, 0, 627, 0, 642, 630, 1362, 490, - 2168, 2177, 0, 2512, 2165, 613, 2512, 0, 717, 0, - 1456, 1461, 623, 0, 0, 0, 3172, 3171, 3170, 3169, - 3094, 3093, 3126, 3125, 3119, 3118, 3120, 0, 0, 3099, - 0, 0, 2080, 2081, 2079, 2077, 2078, 2278, 2042, 2038, - 2274, 1914, 0, 1469, 1894, 1895, 1897, 1480, 1908, 0, - 1860, 1889, 0, 0, 1868, 1889, 1864, 1866, 0, 1979, - 0, 0, 1972, 488, 2525, 1488, 0, 1942, 0, 1943, - 1940, 1941, 81, 2058, 0, 0, 372, 367, 375, 369, + 495, 407, 0, 1821, 1851, 0, 976, 976, 962, 980, + 1838, 1832, 1835, 0, 976, 1840, 976, 1833, 976, 0, + 0, 1830, 1831, 0, 0, 0, 1760, 1757, 0, 0, + 0, 1809, 0, 0, 0, 0, 0, 1546, 0, 1743, + 1765, 1763, 0, 0, 0, 0, 0, 0, 0, 0, + 1771, 1603, 0, 1601, 0, 1602, 0, 1604, 0, 0, + 1753, 0, 1572, 1591, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1846, 0, 0, 2075, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2541, 0, + 0, 0, 1045, 1051, 1054, 1055, 1057, 1049, 0, 1724, + 0, 0, 0, 1457, 1906, 3344, 1423, 0, 0, 0, + 3336, 1481, 3340, 3326, 0, 3341, 1803, 1801, 0, 1529, + 1525, 0, 1523, 1986, 1545, 1544, 0, 0, 0, 1533, + 2004, 2003, 0, 1791, 0, 0, 1844, 2538, 1492, 1739, + 1491, 642, 0, 660, 634, 0, 2059, 637, 651, 0, + 663, 0, 0, 0, 333, 0, 1366, 0, 0, 2172, + 2173, 2513, 0, 0, 0, 2171, 2529, 2528, 2540, 717, + 0, 1946, 0, 3176, 3256, 0, 0, 0, 0, 0, + 0, 0, 3061, 3107, 3098, 0, 0, 0, 0, 3122, + 3116, 3113, 3114, 0, 0, 0, 3097, 3071, 3077, 3076, + 3079, 3081, 2288, 2287, 0, 2341, 2039, 2054, 2044, 0, + 2047, 2046, 2049, 2261, 2280, 2282, 2342, 1920, 1913, 0, + 3321, 1481, 1910, 1911, 1919, 1890, 0, 0, 1884, 1881, + 1922, 0, 1921, 1921, 1890, 0, 1864, 2208, 2211, 0, + 1863, 1470, 0, 2524, 0, 0, 479, 0, 1940, 0, + 0, 2373, 0, 2368, 2371, 0, 0, 0, 3153, 0, + 1300, 1306, 1284, 0, 1291, 1289, 3413, 3426, 0, 162, + 0, 1122, 1124, 1123, 1107, 1108, 0, 138, 140, 0, + 0, 2182, 2182, 2182, 2182, 2182, 0, 2182, 2182, 2182, + 2182, 2182, 0, 2182, 2182, 2182, 2182, 2182, 2182, 2182, + 2182, 2182, 2182, 0, 0, 2182, 2182, 835, 133, 605, + 619, 739, 742, 783, 767, 768, 0, 1027, 175, 0, + 0, 203, 3367, 0, 0, 146, 1016, 2108, 0, 0, + 2534, 2033, 2036, 1482, 0, 0, 1429, 3316, 0, 1984, + 1995, 1450, 1484, 1493, 1487, 0, 1492, 2191, 1491, 2192, + 1411, 1457, 1415, 0, 0, 1403, 1404, 788, 787, 235, + 234, 239, 240, 2085, 2086, 2083, 2084, 582, 595, 2087, + 596, 570, 2059, 2059, 2187, 2186, 2059, 2059, 182, 179, + 2185, 2184, 2059, 2059, 177, 198, 197, 199, 200, 202, + 201, 196, 1154, 0, 583, 584, 550, 0, 530, 1245, + 1245, 0, 1245, 0, 0, 1245, 2182, 0, 0, 623, + 1263, 2182, 0, 0, 0, 0, 0, 1229, 0, 1245, + 0, 0, 0, 0, 0, 1175, 1228, 740, 1135, 1174, + 1176, 1188, 619, 0, 1206, 1231, 1232, 1230, 3261, 0, + 3263, 3246, 3245, 3244, 3241, 0, 2059, 2059, 2059, 0, + 2059, 3282, 3284, 3296, 0, 0, 208, 3369, 0, 3371, + 0, 1319, 0, 1318, 407, 463, 2059, 2059, 102, 2059, + 94, 95, 90, 122, 123, 92, 93, 98, 97, 99, + 100, 103, 104, 101, 96, 91, 126, 128, 127, 105, + 124, 125, 89, 589, 588, 587, 586, 559, 0, 0, + 2330, 537, 1467, 1469, 0, 1980, 2553, 0, 2056, 1491, + 2225, 2227, 2120, 508, 2513, 485, 431, 483, 3268, 0, + 3186, 3191, 0, 3249, 3248, 3271, 3271, 3271, 3271, 449, + 0, 2152, 1382, 1387, 1391, 0, 1383, 2446, 956, 978, + 976, 993, 942, 962, 958, 962, 952, 993, 899, 899, + 993, 955, 899, 962, 957, 0, 954, 993, 953, 899, + 0, 946, 978, 893, 894, 899, 976, 912, 0, 962, + 935, 934, 993, 938, 939, 937, 941, 0, 943, 962, + 948, 936, 940, 0, 0, 976, 976, 976, 0, 0, + 976, 1023, 884, 886, 885, 887, 888, 962, 978, 978, + 0, 0, 976, 980, 384, 0, 0, 296, 0, 274, + 429, 433, 407, 471, 0, 1852, 0, 977, 1822, 1823, + 0, 1837, 964, 963, 0, 981, 1839, 1836, 1825, 1842, + 1829, 1834, 1841, 1827, 1620, 1650, 1624, 1623, 0, 0, + 0, 1680, 0, 1807, 1790, 1788, 0, 0, 1657, 0, + 1659, 0, 0, 1745, 1713, 1786, 1683, 1717, 0, 1662, + 0, 1689, 1687, 0, 1600, 1598, 1599, 0, 1670, 1697, + 0, 1589, 1698, 0, 1729, 1676, 0, 1678, 0, 1679, + 0, 1708, 0, 1681, 1711, 1735, 1616, 2077, 2076, 2074, + 1631, 2059, 0, 1684, 1648, 0, 0, 1721, 2542, 2543, + 0, 1723, 0, 0, 1056, 1042, 1043, 1044, 0, 1046, + 1048, 1050, 0, 2059, 1737, 1548, 1547, 3333, 1491, 3345, + 3347, 0, 3337, 1424, 1907, 3334, 3325, 1905, 1901, 1903, + 0, 1521, 0, 1530, 1527, 0, 1524, 2006, 2005, 2036, + 0, 0, 1740, 1493, 1750, 0, 643, 644, 646, 648, + 0, 713, 638, 0, 627, 0, 642, 630, 1363, 490, + 2169, 2178, 0, 2513, 2166, 613, 2513, 0, 717, 0, + 1457, 1462, 623, 0, 0, 0, 3173, 3172, 3171, 3170, + 3095, 3094, 3127, 3126, 3120, 3119, 3121, 0, 0, 3100, + 0, 0, 2081, 2082, 2080, 2078, 2079, 2279, 2043, 2039, + 2275, 1915, 0, 1470, 1895, 1896, 1898, 1481, 1909, 0, + 1861, 1890, 0, 0, 1869, 1890, 1865, 1867, 0, 1980, + 0, 0, 1973, 488, 2526, 1489, 0, 1943, 0, 1944, + 1941, 1942, 81, 2059, 0, 0, 372, 367, 375, 369, 371, 370, 376, 377, 378, 379, 373, 368, 374, 366, - 365, 0, 1310, 0, 0, 3188, 0, 136, 0, 0, - 2181, 606, 2058, 2058, 2058, 2058, 765, 786, 2058, 2058, - 2058, 0, 0, 2181, 2058, 0, 0, 2058, 2058, 2058, - 2058, 0, 0, 2058, 773, 774, 772, 2058, 2058, 1128, - 0, 2659, 0, 0, 0, 805, 806, 808, 809, 810, - 811, 0, 836, 812, 734, 1082, 1082, 838, 2544, 2445, - 618, 620, 1026, 743, 0, 135, 271, 228, 0, 0, - 0, 269, 0, 803, 804, 802, 801, 0, 3366, 0, - 2112, 2104, 2109, 0, 2036, 2037, 2034, 3134, 1490, 1991, - 0, 0, 1455, 0, 1487, 1496, 1495, 2531, 2535, 2198, - 0, 0, 2192, 2196, 1400, 1480, 1457, 1480, 0, 1404, - 1453, 1415, 1456, 181, 186, 185, 178, 191, 184, 195, - 531, 1128, 734, 1245, 0, 0, 1209, 1212, 1210, 732, - 2143, 1355, 2143, 0, 0, 2143, 0, 2145, 0, 0, - 0, 2143, 2143, 0, 1355, 0, 621, 1265, 1263, 1264, - 0, 0, 1355, 1221, 1169, 1222, 0, 1170, 2143, 1355, - 1189, 1355, 1355, 0, 741, 1026, 1171, 1172, 835, 1259, - 3261, 3259, 3258, 0, 3241, 3277, 3275, 3276, 3279, 0, - 0, 3278, 3280, 3296, 0, 0, 0, 1159, 0, 211, - 209, 219, 3367, 0, 1145, 2512, 3370, 1320, 1321, 0, + 365, 0, 1311, 0, 0, 3189, 0, 136, 0, 0, + 2182, 606, 2059, 2059, 2059, 2059, 765, 786, 2059, 2059, + 2059, 0, 0, 2182, 2059, 0, 0, 2059, 2059, 2059, + 2059, 0, 0, 2059, 773, 774, 772, 2059, 2059, 1129, + 0, 2660, 0, 0, 0, 805, 806, 808, 809, 810, + 811, 0, 836, 812, 734, 1083, 1083, 838, 2545, 2446, + 618, 620, 1027, 743, 0, 135, 271, 228, 0, 0, + 0, 269, 0, 803, 804, 802, 801, 0, 3367, 0, + 2113, 2105, 2110, 0, 2037, 2038, 2035, 3135, 1491, 1992, + 0, 0, 1456, 0, 1488, 1497, 1496, 2532, 2536, 2199, + 0, 0, 2193, 2197, 1401, 1481, 1458, 1481, 0, 1405, + 1454, 1416, 1457, 181, 186, 185, 178, 191, 184, 195, + 531, 1129, 734, 1246, 0, 0, 1210, 1213, 1211, 732, + 2144, 1356, 2144, 0, 0, 2144, 0, 2146, 0, 0, + 0, 2144, 2144, 0, 1356, 0, 621, 1266, 1264, 1265, + 0, 0, 1356, 1222, 1170, 1223, 0, 1171, 2144, 1356, + 1190, 1356, 1356, 0, 741, 1027, 1172, 1173, 835, 1260, + 3262, 3260, 3259, 0, 3242, 3278, 3276, 3277, 3280, 0, + 0, 3279, 3281, 3297, 0, 0, 0, 1160, 0, 211, + 209, 219, 3368, 0, 1146, 2513, 3371, 1321, 1322, 0, 0, 0, 115, 117, 0, 119, 121, 0, 111, 113, - 520, 585, 538, 2235, 2228, 2056, 0, 2230, 304, 0, - 3270, 3284, 3284, 3284, 3284, 407, 445, 448, 2203, 1383, - 1391, 2447, 2446, 0, 978, 905, 992, 992, 965, 958, - 965, 990, 921, 993, 1035, 1029, 1033, 1030, 927, 1031, - 0, 1037, 900, 941, 992, 929, 0, 899, 920, 926, - 965, 0, 916, 924, 992, 892, 928, 915, 0, 965, - 930, 943, 946, 948, 950, 965, 992, 0, 0, 384, - 899, 914, 913, 0, 899, 965, 1008, 959, 944, 1031, - 1037, 899, 992, 965, 965, 0, 289, 298, 2058, 300, - 383, 407, 475, 0, 0, 0, 0, 1031, 0, 0, - 1031, 1031, 1760, 0, 0, 0, 0, 1812, 0, 0, - 0, 0, 0, 1618, 0, 1740, 0, 0, 0, 0, - 961, 1578, 1580, 1576, 1579, 0, 975, 1582, 0, 942, - 975, 1585, 1587, 1572, 1573, 1574, 1575, 0, 0, 1854, - 1855, 0, 2094, 2093, 2092, 0, 0, 0, 0, 2543, - 1039, 1725, 0, 1052, 1046, 1044, 1051, 0, 1907, 3345, - 1426, 3334, 1456, 0, 1803, 1525, 0, 0, 2007, 0, - 1990, 0, 1792, 1750, 647, 0, 0, 714, 0, 667, - 0, 665, 641, 0, 0, 0, 0, 3320, 2166, 2169, - 1456, 2529, 2540, 1480, 1457, 1480, 722, 1490, 1886, 1946, - 3174, 3173, 0, 0, 3077, 3079, 2280, 1911, 1461, 1913, - 1972, 0, 1899, 1898, 3342, 0, 1856, 1889, 1889, 0, - 1856, 0, 0, 2209, 2029, 2211, 1472, 0, 1463, 1463, - 1470, 1937, 3341, 1190, 0, 1191, 1202, 1204, 1389, 0, - 2399, 0, 2397, 2373, 2400, 0, 1289, 1291, 0, 0, - 0, 0, 0, 2091, 2090, 762, 755, 754, 757, 756, + 520, 585, 538, 2236, 2229, 2057, 0, 2231, 304, 0, + 3271, 3285, 3285, 3285, 3285, 407, 445, 448, 2204, 1384, + 1392, 2448, 2447, 0, 979, 905, 993, 991, 993, 919, + 994, 966, 959, 966, 922, 1036, 1030, 1034, 1031, 928, + 1032, 0, 1038, 900, 942, 993, 930, 0, 899, 921, + 927, 966, 0, 916, 925, 993, 892, 929, 915, 0, + 966, 931, 944, 947, 949, 951, 966, 993, 0, 0, + 384, 899, 914, 913, 0, 899, 966, 1009, 960, 945, + 1032, 1038, 899, 993, 966, 966, 0, 289, 298, 2059, + 300, 383, 407, 475, 0, 0, 0, 0, 1032, 0, + 0, 1032, 1032, 1761, 0, 0, 0, 0, 1813, 0, + 0, 0, 0, 0, 1619, 0, 1741, 0, 0, 0, + 0, 962, 1579, 1581, 1577, 1580, 0, 976, 1583, 0, + 943, 976, 1586, 1588, 1573, 1574, 1575, 1576, 0, 0, + 1855, 1856, 0, 2095, 2094, 2093, 0, 0, 0, 0, + 2544, 1040, 1726, 0, 1053, 1047, 1045, 1052, 0, 1908, + 3346, 1427, 3335, 1457, 0, 1804, 1526, 0, 0, 2008, + 0, 1991, 0, 1793, 1751, 647, 0, 714, 0, 667, + 0, 665, 641, 0, 0, 0, 0, 3321, 2167, 2170, + 1457, 2530, 2541, 1481, 1458, 1481, 722, 1491, 1887, 1947, + 3175, 3174, 0, 0, 3078, 3080, 2281, 1912, 1462, 1914, + 1973, 0, 1900, 1899, 3343, 0, 1857, 1890, 1890, 0, + 1857, 0, 0, 2210, 2030, 2212, 1473, 0, 1464, 1464, + 1471, 1938, 3342, 1191, 0, 1192, 1203, 1205, 1390, 0, + 2400, 0, 2398, 2374, 2401, 0, 1290, 1292, 0, 0, + 0, 0, 0, 2092, 2091, 762, 755, 754, 757, 756, 759, 758, 0, 751, 748, 760, 750, 775, 0, 763, 745, 799, 800, 798, 769, 776, 746, 747, 753, 752, 749, 791, 796, 794, 793, 792, 797, 795, 764, 782, - 761, 777, 837, 1129, 0, 0, 2547, 601, 597, 835, - 0, 0, 0, 1082, 828, 734, 0, 813, 1128, 1083, + 761, 777, 837, 1130, 0, 0, 2548, 601, 597, 835, + 0, 0, 0, 1083, 828, 734, 0, 813, 1129, 1084, 734, 734, 0, 0, 599, 724, 744, 781, 780, 778, - 779, 265, 3400, 511, 512, 0, 0, 3370, 249, 3394, - 228, 0, 0, 1016, 2448, 2035, 1482, 0, 0, 2098, - 2100, 1992, 1993, 1988, 1984, 0, 1995, 1997, 1494, 1493, - 0, 1491, 2188, 0, 1432, 1451, 1430, 1416, 1405, 1406, - 1456, 1413, 1441, 1440, 0, 1355, 1232, 0, 1207, 0, - 0, 0, 1181, 0, 0, 2143, 0, 1234, 1233, 0, - 0, 0, 1242, 1243, 0, 2025, 2027, 2035, 0, 1225, - 1240, 1241, 0, 0, 0, 0, 1197, 0, 1186, 1244, - 1244, 1206, 0, 0, 1261, 1208, 3263, 2061, 2060, 218, - 207, 0, 0, 1161, 1163, 0, 0, 1164, 3369, 0, - 1143, 1326, 0, 407, 107, 2058, 108, 2058, 106, 2058, - 2057, 3287, 3284, 0, 3183, 3182, 3181, 3180, 407, 450, - 0, 0, 917, 918, 967, 968, 966, 895, 891, 994, - 0, 1036, 902, 1032, 1028, 1038, 1034, 990, 901, 922, - 923, 897, 0, 1130, 909, 0, 898, 949, 896, 910, - 0, 0, 285, 0, 283, 292, 925, 384, 280, 907, - 911, 0, 919, 903, 904, 906, 1037, 889, 890, 385, - 2058, 294, 313, 312, 0, 0, 0, 973, 971, 974, - 972, 1823, 0, 1825, 1827, 1673, 1674, 1809, 2035, 1807, - 1814, 0, 0, 1813, 1706, 0, 1657, 0, 1741, 0, - 1717, 1687, 1685, 1670, 1581, 1577, 1584, 943, 1583, 1031, - 1700, 1676, 1708, 1631, 2058, 1684, 1690, 1691, 0, 1724, - 2058, 2029, 1903, 1527, 0, 2010, 2009, 0, 0, 2035, - 2035, 645, 648, 2058, 712, 640, 0, 0, 664, 0, - 628, 2176, 2178, 615, 617, 1480, 720, 719, 0, 612, - 723, 721, 610, 718, 3101, 3100, 1490, 1891, 1896, 0, - 1869, 0, 1873, 1878, 1874, 0, 1865, 0, 2054, 1463, - 0, 0, 1890, 1934, 1489, 1385, 0, 1944, 2395, 2058, - 0, 2371, 3162, 0, 0, 0, 2035, 1126, 0, 771, - 2392, 770, 607, 0, 0, 3320, 738, 807, 0, 734, - 1078, 1079, 1128, 1060, 1103, 2544, 1128, 1128, 842, 830, - 840, 2546, 725, 2512, 268, 266, 267, 0, 261, 263, - 0, 237, 229, 0, 407, 515, 513, 514, 0, 0, - 145, 0, 250, 0, 252, 253, 0, 3397, 3393, 3370, - 0, 2456, 2033, 1491, 2096, 1490, 0, 0, 2532, 2197, - 2195, 3314, 1480, 0, 1192, 0, 0, 1180, 0, 1341, - 1022, 1217, 0, 1176, 1219, 1220, 1256, 1178, 0, 2028, - 622, 1185, 0, 1259, 1177, 1199, 1183, 1211, 1260, 205, - 210, 220, 221, 1147, 1453, 1419, 3373, 3379, 0, 1327, - 1323, 1324, 1319, 407, 116, 120, 112, 3184, 0, 3291, - 3285, 3289, 0, 0, 969, 970, 991, 995, 1031, 0, - 1031, 384, 284, 287, 0, 290, 0, 0, 908, 322, - 321, 319, 407, 309, 317, 311, 0, 318, 0, 302, - 498, 0, 0, 1811, 1772, 1815, 1816, 0, 1743, 1745, - 1586, 0, 1040, 0, 2038, 2006, 2000, 0, 0, 0, - 0, 0, 0, 2019, 2011, 0, 1989, 1796, 715, 0, - 1490, 653, 670, 669, 666, 716, 2530, 3314, 1915, 1469, - 0, 0, 0, 0, 0, 2208, 1471, 1463, 1463, 1938, - 0, 0, 1203, 2398, 0, 0, 0, 3134, 0, 1125, - 0, 3134, 0, 0, 602, 604, 619, 0, 1128, 1103, - 2544, 0, 1064, 0, 814, 0, 818, 820, 844, 839, - 831, 852, 0, 784, 272, 265, 264, 238, 3401, 1490, - 216, 270, 0, 0, 0, 254, 3395, 0, 147, 0, - 0, 0, 0, 2449, 2451, 0, 2113, 2101, 2099, 1998, - 1996, 1431, 1412, 0, 1194, 733, 0, 0, 1259, 1182, - 1226, 1218, 1216, 1355, 2026, 0, 1215, 1198, 1200, 1302, - 212, 1165, 407, 1456, 1419, 0, 0, 3325, 3375, 3374, - 0, 3371, 1322, 0, 1329, 3290, 3288, 2204, 1884, 932, - 1131, 931, 291, 286, 281, 960, 2058, 299, 320, 301, - 297, 471, 964, 2035, 0, 0, 1655, 1632, 1726, 1480, - 0, 2016, 0, 0, 2014, 2013, 0, 2008, 2015, 0, - 0, 661, 677, 673, 0, 675, 676, 698, 611, 1456, - 1972, 1870, 0, 1875, 0, 1867, 1474, 1473, 1927, 0, - 1926, 0, 1932, 1936, 2521, 2401, 0, 3134, 1093, 2035, - 0, 1095, 766, 0, 2445, 832, 826, 822, 0, 0, - 1063, 0, 1068, 1104, 0, 816, 0, 0, 1058, 870, - 1006, 0, 873, 0, 843, 845, 999, 1000, 847, 0, - 0, 0, 0, 0, 0, 983, 0, 986, 0, 0, - 841, 0, 853, 982, 989, 2545, 609, 785, 262, 3388, - 208, 217, 251, 0, 259, 0, 3398, 0, 0, 0, - 0, 2450, 0, 0, 2457, 2459, 0, 0, 0, 1193, - 1224, 0, 1214, 1179, 623, 0, 1184, 0, 214, 222, - 3372, 1457, 1480, 1480, 0, 3376, 1453, 1420, 1456, 3318, - 0, 0, 0, 1328, 1333, 0, 1330, 1332, 0, 2435, - 0, 310, 499, 1810, 1818, 1817, 1425, 2017, 0, 2018, - 2021, 0, 0, 2022, 0, 657, 659, 1491, 0, 654, - 0, 671, 0, 2181, 2181, 0, 2181, 2181, 2181, 2181, - 691, 699, 701, 0, 1916, 1892, 0, 0, 1922, 1922, - 1933, 0, 1091, 0, 0, 2181, 1235, 1094, 1119, 1101, - 0, 1124, 1127, 1235, 1096, 1118, 1099, 0, 598, 0, - 0, 824, 1061, 0, 1065, 1066, 1067, 0, 1059, 0, - 0, 0, 0, 871, 872, 1007, 846, 1005, 998, 997, - 0, 988, 0, 0, 3341, 882, 883, 984, 880, 881, - 0, 0, 861, 0, 0, 990, 981, 854, 0, 219, - 0, 0, 2454, 2455, 0, 2452, 0, 0, 2458, 1213, - 1196, 0, 1223, 1188, 0, 213, 0, 206, 1480, 1433, - 1436, 1421, 3378, 3377, 1456, 1418, 1457, 1442, 1443, 0, - 3380, 0, 0, 1325, 0, 2205, 2213, 0, 1015, 282, - 2012, 2020, 2024, 2023, 655, 0, 0, 662, 684, 674, - 680, 0, 2181, 0, 0, 2181, 0, 0, 0, 0, - 0, 668, 700, 2181, 1872, 1877, 0, 1930, 1928, 193, - 0, 0, 1235, 1092, 1117, 1116, 1097, 0, 1111, 2058, - 139, 1237, 1236, 1102, 0, 141, 1100, 829, 0, 0, - 0, 1062, 0, 0, 0, 0, 0, 0, 1004, 1003, - 1001, 1002, 2493, 2492, 0, 1497, 987, 0, 856, 996, - 855, 0, 0, 257, 0, 2453, 2461, 2460, 1195, 0, - 215, 1437, 0, 1480, 1444, 3319, 3381, 3382, 1331, 0, - 0, 2436, 661, 658, 649, 684, 0, 682, 0, 678, - 672, 679, 0, 710, 704, 0, 706, 707, 705, 702, - 695, 0, 693, 0, 0, 1923, 0, 0, 0, 1108, - 1109, 137, 1098, 1120, 1110, 1239, 1238, 1115, 1114, 1112, - 1113, 0, 0, 0, 1074, 1073, 0, 0, 1070, 1069, - 1091, 0, 1093, 1095, 879, 0, 985, 848, 848, 862, - 1490, 221, 0, 255, 0, 1435, 1417, 2212, 2214, 2462, - 656, 681, 0, 689, 685, 687, 690, 709, 708, 0, - 692, 0, 703, 1925, 1924, 1939, 0, 0, 1091, 0, - 1077, 1075, 1076, 0, 0, 815, 1091, 819, 821, 1498, - 0, 859, 849, 851, 858, 864, 865, 863, 866, 3389, - 204, 258, 0, 1201, 0, 2448, 683, 0, 0, 698, - 697, 694, 0, 0, 827, 823, 1091, 0, 0, 817, - 1499, 850, 857, 867, 869, 0, 256, 0, 2456, 688, - 686, 696, 1931, 1929, 825, 1072, 1071, 868, 0, 0, - 2464, 3390, 2463, 0, 2468, 3385, 0, 0, 2475, 3383, - 3384, 0, 3391, 2466, 2467, 2465, 2470, 0, 0, 2472, - 2473, 0, 2437, 3386, 407, 2474, 2469, 0, 2476, 2478, - 0, 3392, 2471, 0, 1490, 2477, 0, 1491, 2479 + 779, 265, 3401, 511, 512, 0, 0, 3371, 249, 3395, + 228, 0, 0, 1017, 2449, 2036, 1483, 0, 0, 2099, + 2101, 1993, 1994, 1989, 1985, 0, 1996, 1998, 1495, 1494, + 0, 1492, 2189, 0, 1433, 1452, 1431, 1417, 1406, 1407, + 1457, 1414, 1442, 1441, 0, 1356, 1233, 0, 1208, 0, + 0, 0, 1182, 0, 0, 2144, 0, 1235, 1234, 0, + 0, 0, 1243, 1244, 0, 2026, 2028, 2036, 0, 1226, + 1241, 1242, 0, 0, 0, 0, 1198, 0, 1187, 1245, + 1245, 1207, 0, 0, 1262, 1209, 3264, 2062, 2061, 218, + 207, 0, 0, 1162, 1164, 0, 0, 1165, 3370, 0, + 1144, 1327, 0, 407, 107, 2059, 108, 2059, 106, 2059, + 2058, 3288, 3285, 0, 3184, 3183, 3182, 3181, 407, 450, + 0, 0, 917, 995, 0, 918, 968, 969, 967, 895, + 891, 1037, 902, 1033, 1029, 1039, 1035, 991, 901, 923, + 924, 897, 0, 1131, 909, 0, 898, 950, 896, 910, + 0, 0, 285, 0, 283, 292, 926, 384, 280, 907, + 911, 0, 920, 903, 904, 906, 1038, 889, 890, 385, + 2059, 294, 313, 312, 0, 0, 0, 974, 972, 975, + 973, 1824, 0, 1826, 1828, 1674, 1675, 1810, 2036, 1808, + 1815, 0, 0, 1814, 1707, 0, 1658, 0, 1742, 0, + 1718, 1688, 1686, 1671, 1582, 1578, 1585, 944, 1584, 1032, + 1701, 1677, 1709, 1632, 2059, 1685, 1691, 1692, 0, 1725, + 2059, 2030, 1904, 1528, 0, 2011, 2010, 0, 0, 2036, + 2036, 645, 2059, 712, 640, 0, 0, 664, 0, 628, + 2177, 2179, 615, 617, 1481, 720, 719, 0, 612, 723, + 721, 610, 718, 3102, 3101, 1491, 1892, 1897, 0, 1870, + 0, 1874, 1879, 1875, 0, 1866, 0, 2055, 1464, 0, + 0, 1891, 1935, 1490, 1386, 0, 1945, 2396, 2059, 0, + 2372, 3163, 0, 0, 0, 2036, 1127, 0, 771, 2393, + 770, 607, 0, 0, 3321, 738, 807, 0, 734, 1079, + 1080, 1129, 1061, 1104, 2545, 1129, 1129, 842, 830, 840, + 2547, 725, 2513, 268, 266, 267, 0, 261, 263, 0, + 237, 229, 0, 407, 515, 513, 514, 0, 0, 145, + 0, 250, 0, 252, 253, 0, 3398, 3394, 3371, 0, + 2457, 2034, 1492, 2097, 1491, 0, 0, 2533, 2198, 2196, + 3315, 1481, 0, 1193, 0, 0, 1181, 0, 1342, 1023, + 1218, 0, 1177, 1220, 1221, 1257, 1179, 0, 2029, 622, + 1186, 0, 1260, 1178, 1200, 1184, 1212, 1261, 205, 210, + 220, 221, 1148, 1454, 1420, 3374, 3380, 0, 1328, 1324, + 1325, 1320, 407, 116, 120, 112, 3185, 0, 3292, 3286, + 3290, 0, 0, 992, 970, 971, 996, 1032, 0, 1032, + 384, 284, 287, 0, 290, 0, 0, 908, 322, 321, + 319, 407, 309, 317, 311, 0, 318, 0, 302, 498, + 0, 0, 1812, 1773, 1816, 1817, 0, 1744, 1746, 1587, + 0, 1041, 0, 2039, 2007, 2001, 0, 0, 0, 0, + 0, 0, 2020, 2012, 0, 1990, 1797, 715, 0, 0, + 653, 670, 669, 666, 716, 2531, 3315, 1916, 1470, 0, + 0, 0, 0, 0, 2209, 1472, 1464, 1464, 1939, 0, + 0, 1204, 2399, 0, 0, 0, 3135, 0, 1126, 0, + 3135, 0, 0, 602, 604, 619, 0, 1129, 1104, 2545, + 0, 1065, 0, 814, 0, 818, 820, 844, 839, 831, + 852, 0, 784, 272, 265, 264, 238, 3402, 1491, 216, + 270, 0, 0, 0, 254, 3396, 0, 147, 0, 0, + 0, 0, 2450, 2452, 0, 2114, 2102, 2100, 1999, 1997, + 1432, 1413, 0, 1195, 733, 0, 0, 1260, 1183, 1227, + 1219, 1217, 1356, 2027, 0, 1216, 1199, 1201, 1303, 212, + 1166, 407, 1457, 1420, 0, 0, 3326, 3376, 3375, 0, + 3372, 1323, 0, 1330, 3291, 3289, 2205, 1885, 933, 1132, + 932, 291, 286, 281, 961, 2059, 299, 320, 301, 297, + 471, 965, 2036, 0, 0, 1656, 1633, 1727, 1481, 0, + 2017, 0, 0, 2015, 2014, 0, 2009, 2016, 0, 0, + 661, 677, 673, 0, 675, 676, 698, 611, 1457, 1973, + 1871, 0, 1876, 0, 1868, 1475, 1474, 1928, 0, 1927, + 0, 1933, 1937, 2522, 2402, 0, 3135, 1094, 2036, 0, + 1096, 766, 0, 2446, 832, 826, 822, 0, 0, 1064, + 0, 1069, 1105, 0, 816, 0, 0, 1059, 870, 1007, + 0, 873, 0, 843, 845, 1000, 1001, 847, 0, 0, + 0, 0, 0, 0, 984, 0, 987, 0, 0, 841, + 0, 853, 983, 990, 2546, 609, 785, 262, 3389, 208, + 217, 251, 0, 259, 0, 3399, 0, 0, 0, 0, + 2451, 0, 0, 2458, 2460, 0, 0, 0, 1194, 1225, + 0, 1215, 1180, 623, 0, 1185, 0, 214, 222, 3373, + 1458, 1481, 1481, 0, 3377, 1454, 1421, 1457, 3319, 0, + 0, 0, 1329, 1334, 0, 1331, 1333, 0, 2436, 0, + 310, 499, 1811, 1819, 1818, 1426, 2018, 0, 2019, 2022, + 0, 0, 2023, 0, 657, 659, 649, 0, 654, 0, + 671, 0, 2182, 2182, 0, 2182, 2182, 2182, 2182, 691, + 699, 701, 0, 1917, 1893, 0, 0, 1923, 1923, 1934, + 0, 1092, 0, 0, 2182, 1236, 1095, 1120, 1102, 0, + 1125, 1128, 1236, 1097, 1119, 1100, 0, 598, 0, 0, + 824, 1062, 0, 1066, 1067, 1068, 0, 1060, 0, 0, + 0, 0, 871, 872, 1008, 846, 1006, 999, 998, 0, + 989, 0, 0, 3342, 882, 883, 985, 880, 881, 0, + 0, 861, 0, 0, 991, 982, 854, 0, 219, 0, + 0, 2455, 2456, 0, 2453, 0, 0, 2459, 1214, 1197, + 0, 1224, 1189, 0, 213, 0, 206, 1481, 1434, 1437, + 1422, 3379, 3378, 1457, 1419, 1458, 1443, 1444, 0, 3381, + 0, 0, 1326, 0, 2206, 2214, 0, 1016, 282, 2013, + 2021, 2025, 2024, 655, 0, 662, 684, 674, 680, 0, + 2182, 0, 0, 2182, 0, 0, 0, 0, 0, 668, + 700, 2182, 1873, 1878, 0, 1931, 1929, 193, 0, 0, + 1236, 1093, 1118, 1117, 1098, 0, 1112, 2059, 139, 1238, + 1237, 1103, 0, 141, 1101, 829, 0, 0, 0, 1063, + 0, 0, 0, 0, 0, 0, 1005, 1004, 1002, 1003, + 2494, 2493, 0, 1498, 988, 0, 856, 997, 855, 0, + 0, 257, 0, 2454, 2462, 2461, 1196, 0, 215, 1438, + 0, 1481, 1445, 3320, 3382, 3383, 1332, 0, 0, 2437, + 661, 658, 684, 0, 682, 0, 678, 672, 679, 0, + 710, 704, 0, 706, 707, 705, 702, 695, 0, 693, + 0, 0, 1924, 0, 0, 0, 1109, 1110, 137, 1099, + 1121, 1111, 1240, 1239, 1116, 1115, 1113, 1114, 0, 0, + 0, 1075, 1074, 0, 0, 1071, 1070, 1092, 0, 1094, + 1096, 879, 0, 986, 848, 848, 862, 1491, 221, 0, + 255, 0, 1436, 1418, 2213, 2215, 2463, 656, 681, 0, + 689, 685, 687, 690, 709, 708, 0, 692, 0, 703, + 1926, 1925, 1940, 0, 0, 1092, 0, 1078, 1076, 1077, + 0, 0, 815, 1092, 819, 821, 1499, 0, 859, 849, + 851, 858, 864, 865, 863, 866, 3390, 204, 258, 0, + 1202, 0, 2449, 683, 0, 0, 698, 697, 694, 0, + 0, 827, 823, 1092, 0, 0, 817, 1500, 850, 857, + 867, 869, 0, 256, 0, 2457, 688, 686, 696, 1932, + 1930, 825, 1073, 1072, 868, 0, 0, 2465, 3391, 2464, + 0, 2469, 3386, 0, 0, 2476, 3384, 3385, 0, 3392, + 2467, 2468, 2466, 2471, 0, 0, 2473, 2474, 0, 2438, + 3387, 407, 2475, 2470, 0, 2477, 2479, 0, 3393, 2472, + 0, 1491, 2478, 0, 1492, 2480 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -5283, -5283, -5283, -5283, 2490, 4590, -5283, -5283, -5283, 4249, - -5283, -5283, -5283, -5283, 3691, -5283, -5283, 1842, -5283, -5283, - -5283, -5283, -5283, 2198, -5283, 604, -5283, 609, -5283, 610, - -2979, -593, 4307, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - 3625, 2949, -5283, -5283, -5283, 2350, -2926, -5283, -5283, 85, - 1708, -5283, -5283, 400, -5283, 36, -5283, -5283, -5283, -4252, - -112, -301, -5283, 113, 13, 4190, 721, -4365, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, 559, -5283, -3659, -5283, - -5283, 219, -5283, -5283, -5283, -5283, -5283, -1226, -630, -1351, - -5283, 586, -5283, 325, -5283, 215, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, 311, -5283, -5283, -5283, 160, 979, - -4360, -5283, -5283, -5283, -5283, 2882, -5283, 1850, -5283, -1668, - 3874, -5283, -5283, -5283, -5283, -5283, 3041, -2341, -5283, -5283, - -5283, 1874, -5283, 2772, -5283, -4141, 232, -807, 35, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -1012, -5283, -5283, -5283, - -5283, -5283, -5283, -1937, 2142, -5283, 2197, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, 1066, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, 2897, -5283, -5283, - 4749, -5283, -5283, -5283, -5283, 1533, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, 3479, -5283, 3480, 3481, -5283, 3485, - -5283, -2700, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, 4196, -5283, -5283, -5283, -2943, -5283, - -5283, -2923, 3606, -5283, -2340, -5283, -5283, -2394, -5283, -5283, - -2288, 1712, -5283, -5283, 2127, 1115, -5283, -1739, -2437, -2376, - -5283, -5283, -5283, -2552, -2547, -783, 3556, -1203, -2884, -5283, - -5283, -5283, -5283, -5283, 135, 468, -5283, -5283, -5283, 284, - 1731, 2321, -5283, -3696, -5283, -5283, 718, -5283, -5283, -5283, - -5283, -5283, 1415, 554, 1417, -5283, 935, 3263, -2648, -5283, - -5283, -5283, -5283, -5283, -5283, -90, 186, -175, -5283, -4928, - 560, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -3362, - -5283, -5283, -5283, -289, -5283, -5283, -250, -5283, -5283, -287, - -5283, 33, -5283, -5283, 1879, 1424, -5283, -5283, 943, -4266, - -5283, -5283, 3068, -1793, -5283, -540, -5283, -3592, 1768, -3405, - -3108, -5283, -5283, 303, -1214, -1181, -174, -5283, -5283, -5283, - -5283, 1180, -5283, 841, 1770, -3624, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -3617, -3578, -5283, -4723, -5283, -5283, -5283, - -4387, -5283, -5283, -5283, -5283, -5283, -5283, -205, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5282, -5283, -5283, 1, -8, - -5283, 116, 837, -5283, -803, -5283, -5283, -5283, -5283, -5283, - -2007, 1539, 1662, -5283, -5283, -5283, -5283, -2061, -3068, -186, - -1164, -3049, -1001, 1609, -1, -4974, -4662, -901, 170, -5283, - -5283, -2866, -4807, -5283, -2750, -648, -2670, -3077, -46, -5283, - -5283, -1606, -3843, 2418, -5283, 1126, -3652, -4116, -4132, 2132, - -5283, -5283, 1516, -5283, -1148, 1514, -5283, -5283, -5283, 1526, - -5283, -211, -5283, -5283, -5283, -5283, -3386, -5283, -2402, -3925, - -5283, -5283, 5524, 5525, -3100, -170, -169, -5283, -5283, -5283, - 354, -5283, -5283, -3256, -56, 61, 73, -3058, -4476, 371, - -3457, 1124, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, 1810, -1680, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -4500, -4134, -5283, -5283, 1228, -3373, -3165, -3144, -3615, - 4433, -5283, -5283, -5283, -5283, 4308, -3225, -4612, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, 3794, 1804, -5283, -5283, 2519, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, 307, - 2522, -5283, -5283, -5283, -5283, -5283, 3015, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, 2, -5283, -5283, -5283, -5283, - -5283, 509, 3674, -5283, -5283, -5283, -5283, 7, -5283, -5283, - -5283, -5283, 3330, -5283, -5283, -5283, -5283, 3198, -5283, -5283, - -5283, -5283, -5283, -5283, 2303, -5283, 2913, -5283, -2330, -5283, - -5283, 1728, -137, -5283, -5283, 4365, -5283, -5283, -5283, 1916, - -5283, -5283, 322, -5283, 2162, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, 3082, 850, 27, 4385, -3595, -1870, -5283, - -1272, -1263, -5283, -5283, -3829, -5283, -3384, -4037, -5283, -5283, - 3760, -1736, -3758, 2493, -1636, -5283, -146, -3070, 1538, -5283, - 2146, 836, 9030, -5283, -1510, -1424, -5283, -5283, -37, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, 2819, 2834, - -5283, -5283, 4096, -3082, -5283, -5283, -779, -5283, -2590, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - 2144, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, 4043, -1535, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, 1897, -5283, -2658, -5283, -5283, - -5283, -5283, -5283, -5283, -599, -5283, 4188, -5283, 4222, -5283, - -2880, -1763, 2623, 2071, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, 2636, -5283, -1940, -5283, -3441, -5283, -5283, -5283, -5283, - -5283, 1026, -5283, -3858, -5283, 1586, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, 2646, -5283, -5283, -2500, 145, - -5283, 297, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -122, - 1016, -120, -3770, -1437, 2334, -5283, -5283, -1391, 4246, -1797, - -5283, -5283, -5283, 2777, -5283, 1984, -5283, -5283, -5283, 593, - 597, -5283, -5283, 2195, -5283, -5283, -5283, -5283, 716, 198, - -5283, -5283, -5283, 579, -2499, -1930, -5283, 725, -3955, -1166, - -5283, -1121, -5283, -1665, 2122, 684, -2744, -5283, -391, -1449, - -504, -2869, -4149, -3066, -5283, -1473, -5283, 3165, -5283, -5283, - -5283, 611, -5283, -5283, -5283, 2007, -5283, -1831, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -488, -1120, -5283, - -5283, 3042, -2352, -133, 5629, -26, -5283, -5283, -6, -5283, - -5283, -5283, -5283, 4319, 4071, 3001, -5283, -5283, -3295, -2836, - -5283, 1094, -1065, -1613, 2526, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, 1497, -5283, -3024, -5283, -5283, -5283, -4, -5283, - -5283, -5283, 1532, -5283, 3, 5066, 0, -5283, -5283, -5283, - 4933, -5283, -5283, -5283, -5283, -5283, 3759, -1312, 4942, -5283, - -5283, -5283, -5283, -5283, -5283, 3322, -5283, -5283, -5283, -5283, - -5283, -5283, 4026, 5079, -653, -1546, -5283, -922, 3323, 2706, - -930, -5283, -5283, -5283, 4467, 5090, -5283, -5283, 5633, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, 3286, 698, - -5283, -5283, 712, -5283, -5283, -5283, -5283, 3931, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, 1837, -91, -5283, 462, -111, -5283, 300, -5283, -5283, - -5283, -5283, -5283, -148, -5283, -5283, -152, -5283, -1264, 4791, - -1677, -5283, -1601, -3189, -5283, -1500, 2160, -5283, -5283, -5283, - 3332, -5283, -5283, -5283, -5283, 1620, -5283, -5283, -3403, -831, - -1525, -3355, 230, -5283, -5283, -5283, -810, 4466, 4, 269, - -1092, -5283, -5283, 2865, -3, -792, -135, -724, -672, -863, - -5283, 7963, -5283, -5283, -5283, -5283, -625, -621, -580, 100, - -575, -352, -553, -478, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, 2764, -5283, -5283, -5283, 1602, - -5283, 5119, -5283, 3544, -1637, 5121, 3420, 2790, 2792, -5283, - -5283, -5283, -5283, -1641, -5283, -5283, -1620, 256, -5283, 3749, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, -5283, 3932, -539, -532, - 4128, 5133, 4671, -5283, 4405, -5283, -5283, -5283, -5283, -5283, - 1962, -5283, -1783, 2824, -1306, -2410, -5283, -5283, 3168, 1545, - -5283, 2468, -2412, -2941, -5283, 2667, -3046, -5283, -5283, 631, - -5283, -5283, -5283, 1960, 279, 5105, 4574, -5283, -5283, -5283, - -5283, -2811, -4618, -731, -5283, -5012, -5283, -1874, -5283, -1275, - 2201, -3410, -5283, -118, -5283, -5283, -3375, -3369, 1607, -1435, - 2765, 1149, -5283, -5283, -3236, 168, 5718, 5719, 5721, -398, - -5283, -3105, -5283, -4061, -5283, 179, -5283, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, 3287, -5283, -5283, -126, -5283, - -5283, -5283, -5283, -5283, -5283, -5283, 2458, -5283, -5283, -5283, - -5283, -5283, -5283, -5283, -5283, -5283 + -5092, -5092, -5092, -5092, 2463, 4559, -5092, -5092, -5092, 4219, + -5092, -5092, -5092, -5092, 3662, -5092, -5092, 1814, -5092, -5092, + -5092, -5092, -5092, 2166, -5092, 572, -5092, 577, -5092, 578, + -2966, -583, 4269, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + 3581, 2919, -5092, -5092, -5092, 2318, -2858, -5092, -5092, 54, + 1679, -5092, -5092, 367, -5092, 7, -5092, -5092, -5092, -4262, + -141, -330, -5092, 50, 97, 4161, 692, -4322, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, 530, -5092, -3500, -5092, + -5092, 191, -5092, -5092, -5092, -5092, -5092, -1285, -612, -481, + -5092, 556, -5092, 294, -5092, 187, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, 282, -5092, -5092, -5092, 123, 942, + -4362, -5092, -5092, -5092, -5092, 2796, -5092, 2158, -5092, -1671, + 3840, -5092, -5092, -5092, -5092, -5092, 3006, -2338, -5092, -5092, + -5092, 1838, -5092, 2735, -5092, -4223, 192, -844, 44, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -991, -5092, -5092, -5092, + -5092, -5092, -5092, -1937, 2101, -5092, 2159, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, 1024, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, 2859, -5092, -5092, + 4702, -5092, -5092, -5092, -5092, 1493, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, 3440, -5092, 3441, 3438, -5092, 3442, + -5092, -2696, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, 4149, -5092, -5092, -5092, -2832, -5092, + -5092, -3018, 3568, -5092, -2347, -5092, -5092, -2431, -5092, -5092, + -2345, 1676, -5092, -5092, 2249, 1824, -5092, -1762, -2447, -2405, + -5092, -5092, -5092, -2549, -2540, -733, 3519, -1218, -2632, -5092, + -5092, -5092, -5092, -5092, 92, 427, -5092, -5092, -5092, 245, + 1686, 2279, -5092, -3694, -5092, -5092, 674, -5092, -5092, -5092, + -5092, -5092, 1371, 510, 1370, -5092, 891, 3220, -2673, -5092, + -5092, -5092, -5092, -5092, -5092, -131, 297, -218, -5092, -5091, + 516, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -3746, + -5092, -5092, -5092, -329, -5092, -5092, -291, -5092, -5092, -328, + -5092, -11, -5092, -5092, 1833, 1374, -5092, -5092, 898, -4274, + -5092, -5092, 3023, -1790, -5092, -524, -5092, -3595, 1722, -3429, + -3094, -5092, -5092, 262, -1182, -1180, -217, -5092, -5092, -5092, + -5092, 1134, -5092, 799, 1727, -3625, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -3614, -3613, -5092, -4656, -5092, -5092, -5092, + -3661, -5092, -5092, -5092, -5092, -5092, -5092, -244, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -3876, -5092, -5092, -41, -50, + -5092, 74, 793, -5092, -686, -5092, -5092, -5092, -5092, -5092, + -2113, 1496, 1619, -5092, -5092, -5092, -5092, -1185, -3109, -1081, + -2332, -2993, -1062, 1566, -46, -4921, -4690, -548, -2217, -5092, + -5092, -3062, -3496, -5092, -3035, -648, -2654, -3077, -86, -5092, + -5092, -1617, -3839, 2377, -5092, 1078, -2598, -2660, -3502, 2084, + -5092, -5092, 1465, -5092, -1229, 1469, -5092, -5092, -5092, 1473, + -5092, -252, -5092, -5092, -5092, -5092, -3304, -5092, -2366, -3698, + -5092, -5092, 5477, 5478, -2424, -213, -211, -5092, -5092, -5092, + 312, -5092, -5092, -2487, -100, 20, 26, -3070, -4485, 327, + -3600, 1076, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, 1766, -3076, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -3649, -4050, -5092, -5092, 1184, -3519, -3156, -3153, -3584, + 4391, -5092, -5092, -5092, -5092, 4270, -3223, -3492, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, 3749, 1584, -5092, -5092, 2477, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, 273, + 2483, -5092, -5092, -5092, -5092, -5092, 2980, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -38, -5092, -5092, -5092, -5092, + -5092, 479, 3641, -5092, -5092, -5092, -5092, -16, -5092, -5092, + -5092, -5092, 3295, -5092, -5092, -5092, -5092, 3164, -5092, -5092, + -5092, -5092, -5092, -5092, 2269, -5092, 2881, -5092, -2348, -5092, + -5092, 1691, -136, -5092, -5092, 4330, -5092, -5092, -5092, 1876, + -5092, -5092, 298, -5092, 2120, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, 3044, 812, -9, 4341, -3587, -1861, -5092, + -1262, -1264, -5092, -5092, -3577, -5092, -3852, -4035, -5092, -5092, + 3726, -1770, -3748, 2452, -1603, -5092, -148, -3083, 1497, -5092, + 1780, 1948, 9306, -5092, -1500, -1435, -5092, -5092, -37, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, 2787, 2793, + -5092, -5092, 4057, -3673, -5092, -5092, -778, -5092, -2586, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + 2107, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, 4001, -1529, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, 1713, -5092, -2649, -5092, -5092, + -5092, -5092, -5092, -5092, -632, -5092, 4153, -5092, 4182, -5092, + -2907, -1768, 2582, 2029, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, 2590, -5092, -1928, -5092, -3409, -5092, -5092, -5092, -5092, + -5092, 985, -5092, -3851, -5092, 1533, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, 2601, -5092, -5092, -2517, 102, + -5092, 250, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -169, + 965, -168, -3627, -1401, 2182, -5092, -5092, -1398, 4197, -1798, + -5092, -5092, -5092, 2726, -5092, 1935, -5092, -5092, -5092, 546, + 552, -5092, -5092, 2149, -5092, -5092, -5092, -5092, 670, 154, + -5092, -5092, -5092, 533, -2476, -1918, -5092, 678, -3902, -1147, + -5092, -1132, -5092, -1675, 2077, 636, -2751, -5092, 186, -1439, + 707, -2889, -4130, -3054, -5092, -2033, -5092, 3117, -5092, -5092, + -5092, 563, -5092, -5092, -5092, 1960, -5092, -1825, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -531, -1115, -5092, + -5092, 2991, -1958, -132, 5584, -10, -5092, -5092, -6, -5092, + -5092, -5092, -5092, 4273, 4028, 2955, -5092, -5092, -3275, -2829, + -5092, 1052, -1066, 2513, 2476, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, 1447, -5092, -3089, -5092, -5092, -5092, -4, -5092, + -5092, -5092, 1482, -5092, -45, 5030, -1, -5092, -5092, -5092, + 4891, -5092, -5092, -5092, -5092, -5092, 3717, -1281, 4895, -5092, + -5092, -5092, -5092, -5092, -5092, 3282, -5092, -5092, -5092, -5092, + -5092, -5092, 3986, 5044, -652, -1588, -5092, -645, 3286, 2663, + -868, -5092, -5092, -5092, 4427, 5045, -5092, -5092, 5591, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, 3247, 656, + -5092, -5092, 672, -5092, -5092, -5092, -5092, 3897, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, 1794, -130, -5092, 421, -151, -5092, 254, -5092, -5092, + -5092, -5092, -5092, -189, -5092, -5092, -194, -5092, -1252, 4749, + -1677, -5092, -1600, -3188, -5092, -1521, 2113, -5092, -5092, -5092, + 3288, -5092, -5092, -5092, -5092, 1573, -5092, -5092, -3390, -846, + -1542, -3341, 196, -5092, -5092, -5092, -787, 4489, 4, -471, + -1235, -5092, -5092, 2821, -3, -845, -134, -661, -683, -891, + -5092, 8888, -5092, -5092, -5092, -5092, -629, -626, -611, 301, + -580, 100, -566, 70, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, 2719, -5092, -5092, -5092, 1553, + -5092, 5073, -5092, 3499, -1623, 5078, 3374, 2746, 2745, -5092, + -5092, -5092, -5092, -1612, -5092, -5092, -1624, 363, -5092, 3704, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, -5092, 3888, -537, -536, + 4080, 5085, 4629, -5092, 4342, -5092, -5092, -5092, -5092, -5092, + 1914, -5092, -1816, 2779, -1305, -2265, -5092, -5092, 3132, 1670, + -5092, 2422, -2419, -2926, -5092, 2627, -2855, -5092, -5092, 590, + -5092, -5092, -5092, 1917, 352, 5063, 4526, -5092, -5092, -5092, + -5092, -2835, -3352, -730, -5092, -4230, -5092, -1848, -5092, -1219, + 2152, -3408, -5092, -117, -5092, -5092, -3356, -3345, 1568, -1416, + 2721, 1102, -5092, -5092, -3258, 215, 5673, 5675, 5676, -160, + -5092, -3093, -5092, -4196, -5092, 136, -5092, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, 3242, -5092, -5092, -1930, -5092, + -5092, -5092, -5092, -5092, -5092, -5092, 2404, -5092, -5092, -5092, + -5092, -5092, -5092, -5092, -5092, -5092 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -4396,125 +4396,125 @@ 1205, 71, 1206, 1776, 1779, 2452, 3071, 3072, 72, 684, 73, 1949, 2652, 2653, 4437, 4438, 4431, 4432, 4434, 4435, 2654, 781, 782, 74, 3128, 3129, 4689, 4238, 4239, 2507, - 3701, 4308, 1857, 1856, 1858, 1863, 2529, 1861, 2523, 719, - 2524, 3134, 2525, 3135, 3696, 3202, 3203, 1260, 3122, 3211, - 3212, 2520, 4299, 4417, 5320, 4421, 5478, 5617, 5450, 3239, - 4857, 5321, 5322, 623, 3138, 1914, 4762, 2580, 5082, 2581, - 75, 774, 1329, 1942, 1943, 5091, 5092, 5093, 5094, 5077, - 5078, 5079, 5080, 4302, 4768, 4297, 4761, 2743, 870, 2039, - 2744, 4917, 4911, 4912, 4913, 4509, 3352, 3353, 3354, 4529, - 3355, 4930, 4935, 3317, 3318, 3893, 3356, 5182, 5183, 5184, - 641, 1099, 5185, 76, 77, 642, 651, 643, 1096, 2299, + 3702, 4308, 1857, 1856, 1858, 1863, 2529, 1861, 2523, 719, + 2524, 3134, 2525, 3135, 3697, 3202, 3203, 1260, 3122, 3211, + 3212, 2520, 4299, 4417, 5319, 4421, 5477, 5616, 5449, 3239, + 4857, 5320, 5321, 623, 3138, 1914, 4762, 2580, 5081, 2581, + 75, 774, 1329, 1942, 1943, 5090, 5091, 5092, 5093, 5076, + 5077, 5078, 5079, 4302, 4768, 4297, 4761, 2743, 870, 2039, + 2744, 4917, 4911, 4912, 4913, 4510, 3352, 3353, 3354, 4530, + 3355, 4930, 4935, 3317, 3318, 3894, 3356, 5181, 5182, 5183, + 641, 1099, 5184, 76, 77, 642, 651, 643, 1096, 2299, 1097, 78, 79, 679, 1802, 1803, 1804, 1805, 3088, 2465, - 3082, 3083, 4229, 4918, 3358, 4526, 871, 872, 873, 81, + 3082, 3083, 4229, 4918, 3358, 4527, 871, 872, 873, 81, 624, 874, 875, 876, 877, 1429, 2032, 2033, 878, 879, 880, 881, 882, 2703, 2747, 3372, 2704, 3319, 2748, 2043, - 883, 884, 885, 886, 1430, 847, 848, 2719, 3908, 4457, + 883, 884, 885, 886, 1430, 847, 848, 2719, 3909, 4457, 82, 601, 777, 778, 1948, 2626, 779, 2627, 3248, 4430, 780, 1331, 2623, 1333, 887, 3376, 888, 889, 2052, 890, 1420, 83, 1762, 1993, 813, 1371, 891, 1192, 2433, 1105, - 2307, 3377, 892, 2049, 2051, 2048, 3375, 5351, 2050, 84, - 634, 660, 622, 1369, 648, 4765, 5088, 753, 754, 789, + 2307, 3377, 892, 2049, 2051, 2048, 3375, 5350, 2050, 84, + 634, 660, 622, 1369, 648, 4765, 5087, 753, 754, 789, 2675, 755, 1341, 1303, 1919, 2607, 2608, 3217, 3218, 3284, 3285, 3286, 2599, 2600, 2601, 2664, 2665, 2666, 2588, 2589, 2590, 1923, 2585, 2586, 756, 1304, 1314, 2602, 2603, 2604, - 3290, 2668, 2669, 2670, 2671, 2605, 1983, 2606, 3746, 3687, - 5056, 5054, 5055, 3688, 4754, 2956, 5227, 4626, 4627, 4289, - 4290, 4291, 4828, 3063, 85, 637, 1079, 1634, 2290, 3532, - 2937, 2939, 2291, 3531, 4124, 4125, 4126, 2935, 2936, 5221, - 2941, 3529, 5371, 5732, 5514, 5515, 4128, 5519, 4134, 4620, - 4621, 4997, 5222, 5377, 5651, 5520, 5740, 5649, 5736, 5650, - 5738, 5848, 5804, 5805, 5661, 5751, 5752, 5809, 5849, 5530, - 5531, 5532, 3526, 4994, 3541, 4150, 4151, 5005, 4633, 5009, - 5073, 3117, 1908, 1909, 4808, 2526, 86, 3689, 3805, 3690, - 3691, 4702, 5446, 3692, 3693, 3694, 3312, 1711, 4728, 4714, - 4307, 4274, 4275, 4276, 4277, 4278, 5414, 5570, 5416, 5417, - 5560, 5690, 5559, 4279, 4280, 5269, 4744, 4370, 4281, 4282, - 4283, 4752, 5069, 5271, 5268, 5424, 5425, 5831, 5832, 5440, - 5789, 5441, 5838, 5862, 5863, 5426, 87, 636, 1582, 5585, - 5586, 5587, 3970, 3971, 4478, 3972, 3973, 3974, 3975, 3976, - 3977, 3978, 3979, 3980, 3981, 3982, 4922, 4000, 4001, 4887, - 3996, 3997, 4465, 4005, 5442, 5443, 4889, 4472, 4473, 4898, - 5597, 5427, 5444, 5429, 3983, 4480, 1667, 1668, 4310, 1681, - 1682, 2978, 2330, 2979, 1912, 4481, 4892, 4482, 4896, 4082, - 4978, 4088, 4089, 4090, 3472, 3473, 3474, 3475, 3476, 2888, - 5430, 4747, 5262, 5409, 5412, 5568, 5778, 4745, 4284, 4750, - 1181, 720, 4285, 4286, 5672, 5546, 5553, 5673, 5554, 5547, - 5264, 3125, 5674, 5675, 5676, 5556, 5549, 3653, 5045, 5046, + 3290, 2668, 2669, 2670, 2671, 2605, 1983, 2606, 3747, 3688, + 5055, 5053, 5054, 3689, 4754, 2956, 5226, 4626, 4627, 4289, + 4290, 4291, 4828, 3063, 85, 637, 1079, 1634, 2290, 3533, + 2937, 2939, 2291, 3532, 4125, 4126, 4127, 2935, 2936, 5220, + 2941, 3530, 5370, 5730, 5513, 5514, 3522, 5518, 4134, 4620, + 4621, 4996, 5221, 5376, 5649, 5519, 5737, 5647, 5733, 5648, + 5735, 5845, 5801, 5802, 5659, 5748, 5749, 5806, 5846, 5529, + 5530, 5531, 3527, 4993, 3542, 4150, 4151, 5004, 4633, 5008, + 5072, 3117, 1908, 1909, 4808, 2526, 86, 3690, 3806, 3691, + 3692, 4702, 5445, 3693, 3694, 3695, 3312, 1711, 4728, 4714, + 4307, 4274, 4275, 4276, 4277, 4278, 5413, 5569, 5415, 5416, + 5559, 5688, 5558, 4279, 4280, 5268, 4744, 4370, 4281, 4282, + 4283, 4752, 5068, 5270, 5267, 5423, 5424, 5828, 5829, 5439, + 5786, 5440, 5835, 5859, 5860, 5425, 87, 636, 1582, 5584, + 5585, 5586, 3971, 3972, 4479, 3973, 3974, 3975, 3976, 3977, + 3978, 3979, 3980, 3981, 3982, 3983, 4922, 4001, 4002, 4889, + 3997, 3998, 4465, 4006, 5441, 5442, 4883, 4469, 4470, 4898, + 5596, 5426, 5443, 5428, 3984, 4481, 1667, 1668, 4310, 1681, + 1682, 2978, 2330, 2979, 1912, 4482, 4892, 4483, 4896, 4083, + 4978, 4089, 4090, 4091, 3472, 3473, 3474, 3475, 3476, 2888, + 5429, 4747, 5261, 5408, 5411, 5567, 5775, 4745, 4284, 4750, + 1181, 720, 4285, 4286, 5670, 5545, 5552, 5671, 5553, 5546, + 5263, 3125, 5672, 5673, 5674, 5555, 5548, 3654, 5044, 5045, 4732, 4902, 88, 147, 3222, 1291, 1293, 1302, 3243, 2616, - 2615, 1307, 1306, 2594, 3240, 3835, 5143, 740, 3807, 5313, - 5119, 5319, 3808, 4674, 3809, 5304, 5469, 3810, 5135, 5317, - 5475, 4675, 4676, 3811, 3812, 3813, 5680, 5681, 5682, 4359, + 2615, 1307, 1306, 2594, 3240, 3836, 5142, 740, 3808, 5312, + 5118, 5318, 3809, 4674, 3810, 5303, 5468, 3811, 5134, 5316, + 5474, 4675, 4676, 3812, 3813, 3814, 5678, 5679, 5680, 4359, 1400, 758, 759, 1318, 1319, 1320, 2698, 4845, 4380, 89, 2498, 2493, 90, 1230, 1231, 1232, 1825, 1826, 2496, 2497, - 3113, 3644, 91, 1199, 2447, 1816, 2486, 92, 1218, 3105, - 3106, 3107, 3639, 93, 1327, 1939, 1940, 2620, 3842, 4429, - 4861, 5152, 5334, 5148, 5495, 5496, 94, 785, 1337, 95, + 3113, 3645, 91, 1199, 2447, 1816, 2486, 92, 1218, 3105, + 3106, 3107, 3640, 93, 1327, 1939, 1940, 2620, 3843, 4429, + 4861, 5151, 5333, 5147, 5494, 5495, 94, 785, 1337, 95, 603, 1958, 1959, 1960, 2656, 96, 1438, 156, 97, 1103, 1639, 1642, 1643, 98, 1198, 1764, 1765, 1766, 1767, 3059, - 99, 2024, 2722, 2723, 2724, 2725, 2442, 3626, 2443, 2444, - 3068, 3915, 100, 738, 3173, 1281, 1282, 1283, 4341, 3732, - 3733, 5487, 5325, 5326, 3487, 3488, 3489, 1872, 3157, 4334, - 5111, 5480, 5722, 2564, 4801, 5625, 2565, 1874, 1277, 1278, + 99, 2024, 2722, 2723, 2724, 2725, 2442, 3627, 2443, 2444, + 3068, 3916, 100, 738, 3173, 1281, 1282, 1283, 4341, 3733, + 3734, 5486, 5324, 5325, 3487, 3488, 3489, 1872, 3157, 4334, + 5110, 5479, 5720, 2564, 4801, 5624, 2565, 1874, 1277, 1278, 2552, 2566, 1877, 2534, 1892, 3297, 3298, 4202, 4670, 1893, - 1894, 5010, 2555, 2556, 1753, 5241, 2557, 3722, 4324, 5786, - 1459, 1381, 1202, 1044, 1045, 1046, 1594, 1595, 5431, 1047, - 1604, 2245, 4050, 4573, 4574, 4575, 4576, 4969, 2166, 2167, + 1894, 5009, 2555, 2556, 1753, 5240, 2557, 3723, 4324, 5783, + 1459, 1381, 1202, 1044, 1045, 1046, 1594, 1595, 5430, 1047, + 1604, 2245, 4051, 4574, 4575, 4576, 4577, 4969, 2166, 2167, 2285, 1048, 2152, 1049, 1050, 1051, 1052, 1053, 1054, 1055, - 1056, 1057, 1058, 1059, 2280, 4031, 4032, 4555, 2930, 2931, - 2932, 1060, 2770, 4017, 2780, 1061, 1062, 1063, 1064, 1065, - 3514, 1066, 4120, 4785, 1067, 1588, 2231, 2112, 4547, 4022, - 4947, 4951, 4952, 4953, 5195, 2056, 2758, 3400, 4537, 4540, - 4541, 3401, 3402, 3515, 2893, 1480, 1481, 1448, 1449, 3450, - 2424, 2425, 2426, 2427, 2428, 4661, 4662, 5230, 5021, 5232, - 5025, 3046, 3047, 2311, 2312, 2429, 2430, 2431, 2432, 3598, - 4651, 4106, 4603, 3492, 3483, 3484, 3485, 3599, 3600, 3601, - 3602, 4182, 4647, 4648, 5379, 3037, 3604, 4181, 3610, 5667, - 5391, 5392, 5758, 5757, 5393, 5239, 5240, 5032, 5033, 4208, - 4209, 4210, 3549, 2108, 2109, 2182, 1809, 1810, 2057, 1971, - 2682, 3719, 4320, 2915, 3159, 4117, 4783, 4322, 4786, 4787, - 2275, 2923, 3510, 2925, 4608, 4987, 4988, 5213, 5361, 5362, - 5367, 3816, 4825, 4826, 2683, 1878, 3151, 3710, 4316, 1714, - 1715, 1879, 2394, 3586, 3587, 3306, 2734, 4411, 4694, 3477, - 3459, 4680, 3747, 2080, 2081, 4695, 4585, 2546, 3714, 4778, - 4779, 4780, 2538, 2539, 3146, 3147, 3148, 1880, 2540, 3705, + 1056, 1057, 1058, 1059, 2280, 4032, 4033, 4556, 2930, 2931, + 2932, 1060, 2770, 4018, 2780, 1061, 1062, 1063, 1064, 1065, + 3514, 1066, 4121, 4785, 1067, 1588, 2231, 2112, 4548, 4023, + 4947, 4951, 4952, 4953, 5194, 2056, 2758, 3400, 4538, 4541, + 4542, 3401, 3402, 3515, 2893, 1480, 1481, 1448, 1449, 3450, + 2424, 2425, 2426, 2427, 2428, 4661, 4662, 5229, 5020, 5231, + 5024, 3046, 3047, 2311, 2312, 2429, 2430, 2431, 2432, 3599, + 4651, 4107, 4604, 3492, 3483, 3484, 3485, 3600, 3601, 3602, + 3603, 4182, 4647, 4648, 5378, 3037, 3605, 4181, 3611, 5665, + 5390, 5391, 5755, 5754, 5392, 5238, 5239, 5031, 5032, 4208, + 4209, 4210, 3550, 2108, 2109, 2182, 1809, 1810, 2057, 1971, + 2682, 3720, 4320, 2915, 3159, 4118, 4783, 4322, 4786, 4787, + 2275, 2923, 3510, 2925, 4609, 4987, 4988, 5212, 5360, 5361, + 5366, 3817, 4825, 4826, 2683, 1878, 3151, 3711, 4316, 1714, + 1715, 1879, 2394, 3587, 3588, 3306, 2734, 4411, 4694, 3477, + 3459, 4680, 3748, 2080, 2081, 4695, 4586, 2546, 3715, 4778, + 4779, 4780, 2538, 2539, 3146, 3147, 3148, 1880, 2540, 3706, 4774, 101, 674, 102, 1990, 1366, 1989, 3079, 1339, 1647, 1966, 1967, 800, 148, 621, 103, 625, 2720, 104, 649, - 2309, 852, 1108, 1648, 1649, 2957, 3537, 3542, 2958, 1897, - 4140, 4141, 2693, 3760, 3761, 3755, 3169, 3728, 1898, 2559, - 4331, 3166, 4332, 3167, 3074, 3910, 4880, 5498, 105, 658, - 4199, 3616, 3617, 5635, 5636, 1109, 106, 607, 1965, 795, - 1345, 1348, 1973, 2679, 3889, 1349, 1350, 2681, 796, 797, + 2309, 852, 1108, 1648, 1649, 2957, 3538, 3543, 2958, 1897, + 4140, 4141, 2693, 3761, 3762, 3756, 3169, 3729, 1898, 2559, + 4331, 3166, 4332, 3167, 3074, 3911, 4880, 5497, 105, 658, + 4199, 3617, 3618, 5634, 5635, 1109, 106, 607, 1965, 795, + 1345, 1348, 1973, 2679, 3890, 1349, 1350, 2681, 796, 797, 107, 697, 1236, 1736, 1737, 1738, 2410, 108, 655, 1182, - 3585, 4179, 2387, 1082, 1364, 1719, 1185, 1720, 2383, 3020, + 3586, 4179, 2387, 1082, 1364, 1719, 1185, 1720, 2383, 3020, 1702, 109, 1276, 1275, 773, 110, 111, 731, 157, 1866, - 112, 1207, 1795, 2463, 3632, 3633, 4214, 1796, 1797, 3080, - 3076, 4681, 4682, 5041, 113, 689, 1222, 1223, 1820, 1818, + 112, 1207, 1795, 2463, 3633, 3634, 4214, 1796, 1797, 3080, + 3076, 4681, 4682, 5040, 113, 689, 1222, 1223, 1820, 1818, 3110, 2489, 114, 638, 1083, 2294, 115, 626, 855, 1403, - 2023, 116, 117, 118, 857, 3916, 5638, 5799, 630, 2026, - 1407, 4755, 5101, 5293, 5294, 5296, 5464, 5465, 5845, 5884, - 5895, 5888, 5898, 5899, 5902, 5908, 5909, 1068, 1243, 1244, - 1069, 5589, 1070, 1071, 1072, 119, 120, 1194, 662, 1758, - 1759, 3055, 2436, 3053, 1760, 3544, 3545, 3163, 3711, 1073, - 3546, 4733, 1340, 1968, 682, 589, 1074, 590, 750, 1245, + 2023, 116, 117, 118, 857, 3917, 5637, 5796, 630, 2026, + 1407, 4755, 5100, 5292, 5293, 5295, 5463, 5464, 5842, 5881, + 5892, 5885, 5895, 5896, 5899, 5905, 5906, 1068, 1243, 1244, + 1069, 5588, 1070, 1071, 1072, 119, 120, 1194, 662, 1758, + 1759, 3055, 2436, 3053, 1760, 3545, 3546, 3163, 3712, 1073, + 3547, 4733, 1340, 1968, 682, 589, 1074, 590, 750, 1245, 3143, 2470, 1133, 2995, 1076, 894, 1298, 1640, 1930, 1931, 2471, 592, 895, 2996, 3360, 1135, 593, 594, 595, 596, 597, 598, 599, 600, 121, 654, 1118, 2326, 1658, 1143, - 1687, 1676, 1686, 2357, 3007, 2360, 3008, 3009, 4170, 3578, - 4171, 3579, 1188, 2352, 1659, 3580, 2345, 2346, 2347, 2348, - 3569, 1673, 2336, 2342, 122, 858, 2031, 633, 1409, 1410, - 2731, 123, 657, 124, 1811, 2483, 2484, 3098, 3636, 3099, + 1687, 1676, 1686, 2357, 3007, 2360, 3008, 3009, 4170, 3579, + 4171, 3580, 1188, 2352, 1659, 3581, 2345, 2346, 2347, 2348, + 3570, 1673, 2336, 2342, 122, 858, 2031, 633, 1409, 1410, + 2731, 123, 657, 124, 1811, 2483, 2484, 3098, 3637, 3099, 125, 1114, 1115, 126, 841, 3120, 2710, 1979, 1301, 1980, - 2007, 844, 1373, 845, 846, 1387, 1384, 1390, 1386, 3824, + 2007, 844, 1373, 845, 846, 1387, 1384, 1390, 1386, 3825, 3233, 3234, 2715, 1987, 1932, 2317, 3226, 4403, 1933, 1997, - 2706, 2707, 2614, 5159, 3831, 3237, 4874, 3899, 5160, 5161, - 127, 666, 128, 5083, 673, 1201, 1774, 129, 130, 131, - 132, 1287, 3715, 3716, 2568, 5328, 5629, 1289, 1290, 1881, + 2706, 2707, 2614, 5158, 3832, 3237, 4874, 3900, 5159, 5160, + 127, 666, 128, 5082, 673, 1201, 1774, 129, 130, 131, + 132, 1287, 3716, 3717, 2568, 5327, 5628, 1289, 1290, 1881, 3494, 1905, 2896, 2897, 1279, 2898, 2899, 2900, 2901, 1584, - 1585, 3495, 4097, 4098, 1895, 149, 150, 151, 152, 763, - 764, 3242, 3837, 4424, 4425, 5147, 5331, 5891, 5892, 2519, - 3699, 5598, 5865, 5885, 5904, 2527, 4770, 5096, 2528, 3702, - 5287, 2517, 3698, 5084, 133, 1250, 1246, 708, 1843, 1837, + 1585, 3495, 4098, 4099, 1895, 149, 150, 151, 152, 763, + 764, 3242, 3838, 4424, 4425, 5146, 5330, 5888, 5889, 2519, + 3700, 5597, 5862, 5882, 5901, 2527, 4770, 5095, 2528, 3703, + 5286, 2517, 3699, 5083, 133, 1250, 1246, 708, 1843, 1837, 1839, 2504, 3116, 134, 135, 136 }; @@ -4523,1289 +4523,1318 @@ number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 591, 739, 1184, 762, 665, 1875, 1131, 1180, 1288, 2079, - 752, 748, 1867, 1743, 1876, 1906, 588, 2027, 1104, 2270, - 768, 1299, 644, 2676, 2306, 1363, 2563, 644, 635, 1136, - 2087, 644, 2567, 1137, 659, 80, 2301, 2118, 2396, 1975, - 1716, 2684, 3067, 2354, 2547, 676, 669, 2217, 683, 2358, - 2395, 687, 3379, 3380, 3160, 691, 677, 3814, 1716, 1669, - 1672, 1674, 688, 1426, 2374, 2375, 3654, 1412, 1684, 1417, - 1418, 1419, 2136, 1300, 1138, 1203, 1423, 1910, 3815, 1139, - 2550, 898, 3868, 4105, 842, 2227, 2236, 3299, 2002, 3493, - 3891, 843, 4376, 3723, 2244, 898, 3403, 3121, 3404, 3737, - 1227, 1141, 2300, 1234, 4295, 2746, 2535, 734, 1482, 4118, - 1911, 3405, 3064, 842, 3806, 2569, 1834, 3538, 3539, 4107, - 1116, 3748, 1442, 3291, 3081, 4108, 3458, 4516, 3292, 1483, - 4447, 769, 2464, 3643, 741, 4335, 591, 2544, 3839, 591, - 2549, 3725, 751, 757, 652, 4758, 4650, 3748, 3748, 3823, - 3584, 770, 743, 771, 4356, 746, 899, 772, 3606, 2378, - 1984, 4357, 2462, 4610, 4360, 4853, 4362, 3615, 4932, 4372, - 899, 3220, 4194, 1256, 1523, 4427, 1142, 1257, 1258, 2403, - 2591, 2246, 2247, 4388, 2249, 2250, 2251, 2252, 2253, 2254, - 5150, 2256, 2257, 2259, 2261, 2262, 2263, 2264, 2265, 2301, - 4358, 1907, 1589, 1590, 2416, 2417, 3753, 1941, 1807, 1589, - 1590, 2885, 3748, 3748, 2501, 5048, 4377, 1907, 2696, -3242, - -1136, 2716, 2667, 2717, 2718, 3223, 4084, 1907, 1709, 2655, - -608, 1587, 3221, 1589, 1590, 5167, -726, 4693, 3288, 1641, - 1807, 3638, 1589, 1590, 1671, 4144, -727, 1589, 1590, 4099, - 1744, -2847, 4833, 5739, 724, 2732, 1578, 1580, 1581, 1745, - 3216, 1589, 1590, 4461, 695, 2300, 1589, 1590, 1624, 1589, - 1590, 3281, 1589, 1590, 3777, 3583, 3763, -1975, 4474, 4085, - 2732, 681, 897, 647, -413, 2533, 4293, 1589, 1590, 3523, - 1665, 1589, 1590, 1119, 1388, 3830, 897, 1426, 1338, 3289, - 671, 3189, 1140, 735, -3235, 692, 898, 2610, 898, 898, - 898, 4696, 4698, 2894, 4118, 898, 5123, 898, 1589, 1590, - 765, 4004, 4637, 631, 1589, 1590, 1269, 2810, 4652, 3773, - 3774, 4287, 1589, 1590, 1531, 4518, 690, 1119, 3998, 4598, - 733, 3123, 1589, 1590, 4700, 4008, 5270, 4009, 4718, 4011, - 631, 1589, 1590, 3759, 2732, 2732, 1264, 667, 1589, 1590, - 736, 4751, 3880, 4893, 4164, 4860, 4462, 1325, 4915, 5012, - 736, 4763, 2694, 1591, 39, 1592, 3817, -1975, 3039, 631, - 1591, 899, 1592, 899, 899, 899, 1665, 2732, 4924, 3853, - 899, 2732, 899, 4084, 3874, 3875, 3336, 5081, 1806, -3218, - 2942, 1589, 1590, 4893, 1591, 1882, 1592, 1589, 1590, 2697, - 2040, 2437, 767, 1591, 1665, 1592, 1589, 1590, 1591, -600, - 1592, 4893, 1589, 1590, 4893, 4893, 1772, 2028, 1589, 1590, - 4021, 1606, 1591, 2755, 1592, -1975, -3242, 1591, 2933, 1592, - 1591, 1401, 1592, 1591, 1284, 1592, 4085, 5133, 4122, 2732, - 1405, -3222, 3040, -2847, 1589, 1590, 4638, 4287, 1591, 2612, - 1592, 5428, 1591, 3041, 1592, 627, 5774, 1883, 5596, 3456, - 3042, -3221, 4378, 5622, -3219, 798, -603, 801, 802, 803, - 804, 1285, 806, 807, 2732, 799, 809, 810, 840, 1591, - 2906, 1592, 3832, 5301, 1593, 1591, 3224, 1592, -3155, 3043, - 2583, 1593, 1986, 1591, 2728, 1592, 2768, 897, 1828, 897, - 897, 897, 4507, 1591, 3583, 1592, 897, 840, 897, 2732, - -603, 5316, 1591, 1609, 1592, 1593, 2536, 4264, 2001, 1591, - 4582, 1592, 1563, 1197, 1593, 2966, 2967, 2968, 2969, 1593, - 5611, 2732, -3220, 2509, 3614, 2790, 2123, -3156, 2732, 1214, - 4474, 898, 5074, 1593, 1665, -3155, 5864, 4303, 1593, 5075, - 3044, 1593, 2729, 3630, 1593, 1119, -3225, 4508, 5246, 645, - 4932, 2502, 1591, -834, 1592, 1567, 2907, 1978, 1591, 1593, - 1592, 5877, 1739, 1593, 4475, 1717, -2554, 1591, 1080, 1592, - -2555, 3045, 2324, 1591, 761, 1592, 4300, 1929, 2029, 1591, - 2548, 1592, 4476, 757, -3156, 2584, 783, 3171, 1157, 5378, - 1593, 1589, 1590, 2353, 757, 1718, 1593, 2553, 5576, 814, - 751, 5076, 4304, 2684, 1593, 1591, 899, 1592, 4475, 1875, - 5144, 1326, 2085, 2030, 1593, 5318, 1286, -1409, 791, 4408, - -1424, 3881, 1101, 1593, 1884, 1885, 4265, 1316, 1482, 751, - 1593, 1134, 1157, 1483, 1886, 4329, 4131, 5775, 640, 1589, - 1590, 1578, 1580, 1841, 736, 751, 1402, -2687, 2120, 1483, - 1929, 5776, 1362, 792, 4764, 2908, 1406, 1209, 1367, 1368, - 1829, 751, 1215, 2972, 2766, -2235, 3100, 736, 2973, 2886, - 1216, 2286, 3818, 1593, 1910, 1237, 5472, 783, 3806, 1593, - 783, 2754, 1946, 1238, 4333, 4165, 5090, 4305, 1593, 1254, - 5795, 1769, 2551, -3155, 1593, 4583, 2593, 3156, 2953, 1850, - 1593, 1851, 1852, 1853, 1854, 1855, 2709, 1911, 2943, 39, - 4884, 5308, 5081, 3291, 896, 153, 5596, -2706, 3292, 5225, - 1265, 628, 751, 5609, 1305, 4982, 1593, 4802, 896, 2537, - 4656, 632, 897, -2707, 4660, 4885, 2287, 1716, 2673, 1102, - 3833, -2708, -3156, 751, 1589, 1590, 3124, 1773, 3631, 1589, - 1590, 3763, 1330, 1665, 2377, 1984, 5175, 2381, 632, 898, - 3220, 3583, 1591, 734, 1592, 1305, 2891, 2892, 3493, 2398, - 2315, 5794, 2401, 1351, 5178, 1353, 2404, 1355, 591, 591, - 591, 1359, 1305, 1666, 751, 3995, 2302, 632, 2332, 2959, - 1589, 1590, 3748, 2913, 1356, 1357, 1358, 784, 5061, 5016, - 5102, 2279, 842, 2419, 2420, 2421, 2415, 1483, 5510, 665, - 1591, 2916, 1592, 4350, 1532, 2372, 737, 2658, 646, 4143, - 2934, 3221, 2919, 4086, 2921, 2922, 2895, 2272, 3288, 1950, - 2591, 4628, 2066, 4893, 899, 734, 4475, 1416, 1887, 786, - 1589, 1590, 4599, 5735, 1421, 668, 1424, 4923, 3033, 3219, - 4466, 4467, 5129, 1321, 4476, 3775, 1864, 812, 1988, 5013, - 1157, 1431, 1589, 1590, 4137, 4941, 3876, 4756, 4943, 4944, - 4412, 900, -3235, 1589, 1590, 1274, 4497, 1589, 1590, 1666, - 3750, 1957, 5242, 1593, 2733, 2397, 4471, -3242, -1136, 3289, - 4775, 1957, 696, 1190, 4004, 4510, 4511, 4512, -608, 1361, - 4515, 2160, 1365, 3307, -726, 3225, 2667, 1666, 3325, 2733, - 1299, 4428, 4523, 5709, -727, 1591, 3287, 1592, 2177, -2847, - 1591, 2185, 1592, 2187, 1808, 1196, 5151, 2191, 2192, 2193, - 2053, 1593, 4379, 693, 1957, 2199, 4442, 3175, 3176, 896, - 2902, 896, 896, 896, 2887, -1975, 4087, -1975, 896, 2302, - 896, 1389, -413, 2422, 3187, 4477, 1808, 2423, 1589, 1590, - 897, 1591, 2316, 1592, 3213, 3214, 4932, -3218, 2769, 1670, - 1483, 1675, 5777, 5193, 4441, 1678, 1683, 2811, 3788, 1299, - 694, 2781, 2782, 2733, 2733, 3913, 2613, 3458, 3458, 1623, - 4086, 3458, 3458, 1775, 667, 2783, 2784, 3458, 3458, 4477, - 2872, 2873, 2738, 2883, 2884, 1712, 3500, 3501, 5451, 2745, - 5342, 1591, 1564, 1592, 5216, 5217, 2733, 1586, 5288, -3222, - 2733, 4027, 4028, 4287, 2288, 4041, 4042, 3276, 3277, 3278, - 3279, 2402, 4893, 1591, 4893, 1592, 1593, 155, 4616, -3221, - 1665, 1593, -3219, 1888, 1591, 1890, 1592, 1666, 1591, 3310, - 1592, 3204, 4054, 4055, -3362, 1568, 3457, 2733, 4060, 4061, - 3315, 1589, 1590, 604, 1081, 4410, 4113, 4114, 1408, 1589, - 1590, 5249, 629, 5694, 2730, 5696, 5697, 2226, 2733, 751, - 734, 1317, 1593, 4190, 4886, 734, 2774, -600, -114, -114, - 3620, 4192, 4193, 2775, 5511, 1657, 1619, 1620, 1621, 1622, - 2909, 751, 842, 751, -1893, 1929, 794, 751, 751, 2327, - -3220, 1589, 1590, 2733, 1589, 1590, 2592, 602, 768, 1426, - 3172, 1564, 4948, -118, -118, 4156, 4157, 4158, 4159, 1591, - 2363, 1592, 1593, 2954, -3225, -2554, 2785, 751, 2721, -2555, - 3490, 1842, 2786, 5145, 1901, 2767, 1775, -2235, 2733, 2562, - 1280, 2787, 2680, 3486, 1593, 4306, 4665, 2789, 2672, 783, - -2687, 783, 3554, 2799, 2472, 1593, -3155, 3119, 2473, 1593, - 2733, 1761, 5380, 2613, 4143, 734, 734, 2733, -260, 2459, - -110, -110, -2687, 4772, 896, 4802, 4989, 4333, 4990, 2801, - 1812, 3056, 5771, 5772, 1740, 4356, 5022, 5023, 1846, 5781, - 2959, 1823, 4357, 158, 159, 4372, 840, 2490, 3748, 2474, - 3814, -1935, 4773, 734, 2476, -3156, 3594, 3757, 2028, 1706, - 2289, -2235, 1589, 1590, 3030, 1589, 1590, 4477, 3840, 769, - -2706, 3815, 1591, 1847, 1592, 4687, 2478, 5234, 5228, 1606, - 1591, 4358, 1592, 2976, 2571, 3898, -2707, 2980, 1211, 770, - 1593, 771, -2706, 1868, -2708, 772, 4107, 5310, 3533, 4995, - 4781, 4782, 4108, 5512, 5030, 5031, 1666, 3806, -2707, 1716, - 3005, 5064, 2792, 1910, 3081, 1875, -2708, 5819, 631, 3581, - 3735, 3730, 1591, 734, 1592, 1591, 4791, 1592, 2323, 842, - 1703, 4655, 734, 1483, 2793, 4659, 2516, 5200, 751, 2522, - 591, 734, 3566, 2531, 734, 2569, 1911, 3291, 4039, 2487, - 791, 2479, 3292, 1644, 734, 3563, 1936, 1630, 1650, 3220, - 2445, 734, 3228, 1969, 2396, 2301, 4649, 2396, 2396, 1589, - 1590, 1609, 2831, 5490, 1589, 1590, 631, 2062, 751, 3589, - 3590, 2701, 751, 734, 3575, 792, 2805, 3419, 1638, 1610, - 1848, 1849, 1721, 1593, 3102, 3493, 3309, 1589, 1590, 4703, - 153, 1593, 4371, 2292, 4287, 5388, 2593, 3102, 751, 4716, - 4717, 751, 1981, 898, 4577, 605, 5670, 734, 5503, -1935, - 3221, 3499, 3323, -3065, 5692, 2879, 4875, 4876, 4877, 2029, - 2035, 2300, -2548, 1591, 2806, 1592, 1591, 1212, 1592, 2903, - 1104, 5276, 3800, 1593, 1741, 5513, 1593, 2333, 1768, 3865, - 4461, 5699, 896, 1770, 3729, 734, 2952, 2746, 898, 2379, - 2947, 2948, 3288, 3024, 5551, 3144, 1589, 1590, 3015, 2591, - 3017, 1748, 2072, 2232, 5116, 3543, 5118, 2477, 1119, 5121, - 2570, 853, 2673, 1799, 5256, 5125, 5126, 653, 899, 3583, - -1355, 3229, 3294, 3028, 1817, 3498, 1589, 1590, 3219, 4287, - 3504, 3505, 5544, 3205, 2073, 3508, 3035, 3036, 3595, 2953, - 2271, 3527, 4451, 4452, 4453, 4454, 898, 898, 1941, 2074, - 39, 2699, 2700, 3289, 3583, 1589, 1590, 5746, 5747, 2446, - 3890, 1392, 4501, 899, 3583, 3583, 5339, 4966, 5341, 2807, - 1591, 4968, 1592, 3618, 2824, 1591, 840, 1592, 3381, 5787, - 1589, 1590, 3712, 4462, 1593, 5768, 1920, 1593, 734, 3884, - 2075, 2667, 1596, 3103, 849, 1927, 3287, 734, 1591, 2343, - 1592, 1589, 1590, 5389, 1937, 1119, 3103, 1597, 734, 1442, - -1935, 2241, 661, 5889, 1982, 2832, 1589, 1590, 2076, 2218, - 4395, 899, 899, 1666, 1963, 2063, 1963, 3751, 3752, 2494, - 3754, 3756, 3336, 3022, 4474, 751, 1598, 1589, 1590, 1106, - 606, 4401, 1599, 3206, 897, 3573, 5545, 3866, 2237, 4483, - 3207, 5002, 3841, 1589, 1590, 5259, 1707, 4996, 3208, 5266, - 5267, 3582, 5536, 1213, 5537, 2834, 3758, 1591, 1200, 1592, - 5693, 3491, 751, 5452, 2276, 1704, 1600, 3785, 2396, 1700, - 1650, 1589, 1590, 2495, 3650, 3337, 2293, 2837, 2735, 897, - 3887, 1593, 1771, 734, 3025, 5236, 1593, 1591, 2838, 1592, - 751, 751, 2839, 154, 2692, 1806, 672, 1806, 751, 2328, - 1589, 1590, 3104, 5491, 1700, 854, 2466, 2077, 751, 1593, - 3878, 3231, 1957, 5467, -3065, 3104, 1591, 793, 1592, 663, - 664, 3209, 2355, 1657, 2238, 2597, 1749, 1722, 591, 734, - 591, 591, 591, 591, 734, 751, 734, 897, 897, 3867, - 591, 1591, 155, 1592, 2364, 2505, 2366, 2368, 2369, 2370, - 5890, 2518, 2521, 840, 5390, 2510, 2376, 2399, 591, 1957, - 751, 5109, 1591, -2235, 1592, 4184, 632, 2997, 3308, 2334, - 2405, 2998, 2613, 2840, 2400, 3567, 5120, 1591, 1593, 1592, - 811, 3210, 734, 2335, 4640, 4641, 4609, 3164, 1455, 1456, - 1457, 3651, 1951, 2072, 2380, 4104, 5372, 5354, 1591, 2281, - 1592, 3568, 2696, 4287, 4721, 1815, 5820, 5311, 1593, 5110, - 4502, 2186, 2999, 1157, 1591, 842, 1592, 3001, 5613, 1750, - 2195, 2582, 2962, 2239, 632, 2073, 4551, 5788, 1701, 5353, - 667, 2206, 3493, 2282, 1751, 850, 783, 1593, 751, 3002, - 2074, 5406, 1591, 3051, 1592, 3790, 2592, 4314, 2482, 1511, - 4894, 670, 5492, 1393, 734, 1589, 1590, 2485, 794, 2492, - 2344, 5671, 1593, 1701, 783, 1228, 5157, 5158, 3873, 2587, - 2003, 1591, 3314, 1592, 1589, 1590, 2843, 751, 1589, 1590, - 1107, 2075, 2004, 1593, 2844, 751, 751, 751, 2511, 2512, - 2513, 734, 734, 5386, 5387, 851, 4484, 3940, 1593, 5468, - 4315, 4468, 4402, 4470, 4186, 3077, 158, 159, 2283, 2076, - 1157, 4490, 4066, 3882, 3003, 1224, 1650, 5821, 2598, 1593, - 898, 1266, 2672, 4749, 4749, 5564, 2845, 4499, 2779, 1929, - 4475, 1661, 3293, 3703, 1426, 1593, 5507, 4505, -1355, 5642, - 4067, 5312, 2005, 1342, 1910, 3559, 3560, 5085, 4476, 2475, - 685, 2396, 1308, 751, 1157, 4517, 1229, 5489, 4160, 4161, - 1360, 4486, 2365, 1593, 2954, 2349, 2596, 2371, 761, 2373, - 3574, 2983, 3652, 4169, 3637, 734, 3370, 1911, 1309, 1284, - 4471, 678, 1617, 1618, 1619, 1620, 1621, 1622, 5466, 2284, - 1267, 2384, 1593, 2697, 734, 899, 1589, 1590, 5355, 3378, - 3378, 3378, 4552, 5086, 2350, 2955, 1589, 1590, 2077, 1351, - 2072, 2688, 2028, 734, 2690, 2414, 1285, 5509, 3131, 1716, - 1310, 3132, 5373, 5374, 1929, 2593, 734, 734, 686, 2531, - 709, 3885, 3141, 2705, 3720, 2385, 4112, 2863, 3101, 4040, - 2714, 2714, 2073, 2714, 2714, 1591, 1952, 1592, 4809, 1591, - 4811, 1592, 4142, 4814, 5419, 5565, 5306, 2074, 751, 4820, - 4821, 734, 3904, 3905, 3906, 3907, 5643, 734, 4533, 2318, - 1662, 1589, 1590, 5297, 2741, 775, 4834, 3219, 4872, 1716, - 2959, 2319, 4571, 5365, 2749, 814, 896, 4242, 4243, 4244, - 4245, 4246, 2587, 4248, 4249, 4250, 4251, 4252, 2075, 4254, - 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 710, - 1239, 4267, 4268, 698, 4722, 1311, 4723, 2673, 3299, 3299, - 5375, 897, 3294, 1239, 2514, 2515, 2076, 4444, 2006, 3332, - 1270, 896, 1953, 5566, 1954, 1589, 1590, 3108, 4129, 1272, - 1986, 2005, 1268, 2984, 2868, 5201, 5421, 1593, 2178, 2871, - 2179, 1294, 3562, 4724, 1312, 2302, 4534, 3361, 3517, 2351, - 712, 3362, 3776, 5087, 5368, 5544, 1593, 1591, 2386, 1592, - 1593, 1286, 2878, 1915, 2929, 3503, 1483, 1591, 1981, 1592, - 3287, 4725, 5548, 2029, 4535, 5555, 2597, 4415, 898, 896, - 896, 699, 5074, 842, 4533, 5376, 1240, 1241, 2078, 5075, - 3311, 5172, 3363, 1589, 1590, 5028, 898, 3365, 2617, 1240, - 1241, 3406, 4373, 2266, 1589, 1590, 5307, 4381, 1957, 840, - 5685, 3411, 1589, 1590, 1955, 2077, 3543, 158, 159, 3367, - 898, 734, 1589, 1590, 2271, 1589, 1590, 734, 898, 898, - 898, 2889, 1591, 5707, 1592, 5413, 2689, 5415, 1601, 1602, - 1603, 2397, 4843, 2880, 2397, 2397, 3591, 1271, 5422, -1434, - 4096, 5076, 1903, 899, 4002, 1754, 1273, 4601, 2240, 4007, - 3583, 3382, 742, 2713, 2713, 4012, 2713, 2713, 3444, 5545, - 1299, 899, 4534, 4536, 1426, 4416, 3825, 3826, 1593, 3370, - 3827, 3828, 3829, 1870, 2726, 1178, -1434, -2356, 1593, 2796, - 1408, 1956, 663, 664, 3368, 899, 1591, 1219, 1592, 3455, - 4538, 1589, 1590, 899, 899, 899, 4726, 1755, 1295, 2997, - 4340, 4477, 2267, 2998, 1904, 4025, 5737, 2320, 8, 5741, - 2587, 5548, 3553, 744, 2268, 3583, 1296, 2945, 5555, 5761, - 751, 751, 734, 3057, 1589, 1590, 4026, 5779, 1589, 1590, - 1982, 751, 4727, -2356, 1242, 2714, 2714, 2714, 2714, 2970, - 2971, 4037, 1657, 1593, 2999, 4187, 751, 1509, 3516, 3001, - 5584, 2545, 4844, 1934, 1591, 5327, 1592, 736, 5835, 2598, - 1869, 4749, 4057, 5285, 16, 1591, 5286, 1592, 1951, 897, - 5561, 3002, 5588, 1591, 1220, 1592, 2994, 745, 4074, 5893, - 3011, 1131, 3065, 1591, 591, 1592, 1591, 897, 1592, 4536, - 2269, 4711, 1589, 1590, 747, 5543, 591, 3066, 3013, 5289, - 3012, 3740, 5290, 1713, 1136, 2800, 3018, 1593, 1137, 5588, - 3366, 897, 3016, 5702, 5703, 1589, 1590, 3137, 3227, 897, - 897, 897, 4664, 3137, 3150, 2592, 1589, 1590, 1221, 1935, - -2356, -1434, 734, 3165, 2180, 4075, 138, 2181, 4712, 4177, - 3038, 1432, 141, -2356, 2859, 1713, 3003, 1871, 734, 1138, - 2865, 1761, 3054, 5836, 1139, 751, 3060, 734, 4371, 3299, - 5846, 29, 1591, 3734, 1592, 5894, 5544, 5646, 1589, 1590, - 3174, 4653, 3000, 1589, 1590, 1593, 1141, 3741, 4336, 5829, - 734, 5486, 783, 5122, 1716, 4799, 1593, 4337, 2055, 1871, - 4800, 5875, 5876, -2356, 1593, 1591, 1433, 1592, 5291, 1591, - -2356, 1592, 5204, 734, 1593, 4985, 5837, 1593, 4713, 1589, - 1590, -2356, 1100, 760, 3524, 2397, 3478, 2672, 898, 4964, - 3228, 1110, 3293, 898, 36, 2547, 1189, 4986, 1589, 1590, - 3525, 1313, 5754, 591, 3748, 3027, -2357, 5766, 736, 734, - 3085, 3086, 39, 3139, 2055, 1426, 5548, 5555, 591, 3130, - 2068, 1142, 766, 896, 4645, 1644, 3149, 5765, 1589, 1590, - 5755, 2055, 3154, 1591, 1434, 1592, 1589, 1590, 2713, 2713, - 2713, 2713, 775, 4200, 1589, 1590, 4740, 840, 2055, 3313, - 5545, 5292, 4666, 1593, 1589, 1590, 1591, 4667, 1592, 4672, - 776, 4668, -2357, 899, 3370, 1589, 1590, 1591, 899, 1592, - 3181, 4543, 4544, 1870, 1589, 1590, 2125, 3185, 3186, 4955, - 3748, 3748, 2802, 2055, 5756, 4450, 1593, 3087, 1713, 4794, - 1593, 4796, 1952, 2128, 1929, 1929, 1929, 1929, 5453, 4559, - 751, 667, 5759, 5760, 4741, 734, 5265, 3843, 3748, 1591, - 2146, 1592, 5408, 3470, 1591, 1435, 1592, 4692, -3320, 3229, - 4294, 1670, 4590, 1670, 4586, 1589, 1590, 3985, 3471, 1727, - 4708, 787, 1871, 3543, 1375, 3034, 2959, 3299, 3299, 3986, - 4669, 5502, 2927, 1589, 1590, 2157, 4077, 1140, 2788, 2928, - 1591, 3050, 1592, 4508, 1593, 4180, 1589, 1590, 4963, -2357, - 3062, 4138, -3320, 3618, 5327, 3301, 3294, 3303, 4753, 1591, - 5825, 1592, -2357, 4812, 4753, 2788, 4622, 1593, 1953, 751, - 1954, 751, 751, 4617, 898, 4975, 4365, 4776, 1593, 897, - 1376, 799, 3230, 1377, 897, 751, 5798, 3536, 2714, 1591, - 2803, 1592, 1284, 4838, 2542, 788, 5462, 1591, 5855, 1592, - 2825, 1098, 4742, 3645, 4419, 1591, 5859, 1592, 5463, 2927, - 1378, 4420, -2357, 790, 2684, 1591, 4790, 1592, 1379, -2357, - 1593, 805, 1589, 1590, 808, 1593, 1591, 856, 1592, 1285, - -2357, 4366, 3133, 5004, 4464, 1591, 5874, 1592, 4002, 3642, - 4002, 2635, 2636, 751, 2543, 751, -3320, 1078, 4002, 899, - 1195, 1589, 1590, 2542, 3065, 4494, 2648, 4464, 2397, 898, - 1955, 1593, 1589, 1590, 4002, 2828, 2829, 1775, 3522, 3066, - 4729, 3040, 1589, 1590, 4002, 4731, 1589, 1590, 4506, 4743, - 1593, 896, 3041, 2422, 4514, 639, 1591, 2423, 1592, 3611, - -3320, 4671, 4002, 4464, 4464, 4521, 4522, 3768, 1713, 896, - 1589, 1590, 1106, 2543, 1591, 1806, 1592, 1200, 898, 3231, - 1593, 1299, 1299, 1299, 1299, 1208, 3295, 1591, 1593, 1592, - 3296, 1210, 3364, 896, 1589, 1590, 1593, 5918, 1217, 2830, - 4827, 896, 896, 896, 899, 1226, 1593, 1956, 4503, -833, - 4504, 3847, 1871, 3849, 3850, 1233, 3341, 1593, 1235, 3855, - 1249, 1589, 1590, 2650, 2651, 4636, 1593, 3863, 4634, 3468, - -1057, 1690, 3870, 2316, 2316, 2316, 2316, 4635, 1253, 3232, - 1255, 3596, 5917, 1589, 1590, 897, 1589, 1590, 3342, 3612, - 1589, 1590, 4111, 899, 1286, 1589, 1590, 1259, 2994, 1589, - 1590, 5327, 650, 1591, 4328, 1592, 656, 2833, 663, 664, - 3511, 5833, 5833, 1299, 1261, 4859, 1262, 1593, 2841, 1263, - 3045, 1998, 1999, 1589, 1590, 2000, 2842, 1589, 1590, 4593, - 4495, 2713, 1591, 4595, 1592, 1593, 2848, 734, 3597, 2849, - 5418, 1213, 3547, 1591, 3343, 1592, -2356, 3550, 1593, -3341, - 751, 751, 2714, 1591, 3156, 1592, 5861, 1591, 1292, 1592, - 1728, 1315, 751, 1322, -2329, 4235, 4519, 4520, 2573, 1323, - 897, 1324, 3344, 1589, 1590, 2635, 2636, 5538, 1328, 5539, - 761, 1591, 1332, 1592, 1589, 1590, 1869, 1589, 1590, 1336, - 2648, 5014, 5015, 1343, 3000, 1354, 1134, 2835, 2836, 80, - 3706, 1589, 1590, 4646, 1729, 1591, 1730, 1592, 1589, 1590, - 1957, 1924, 1925, 2574, 1870, 2853, 4353, 5419, 4488, 897, - 2587, 1827, 1691, 1344, 1593, 4492, 1426, 1832, 1833, 1713, - 2271, 1670, 1591, 1178, 1592, 2218, 2846, 1775, 1589, 1590, - 4500, 2684, 1372, 1589, 1590, 1962, 1370, 4309, 1716, 1589, - 1590, 4795, 2854, 1593, 1591, 2575, 1592, 1591, 1374, 1592, - 4336, 1591, 1380, 1592, 1593, 2733, 1591, 4625, 1592, 4803, - 1591, 3345, 1592, 1871, 1593, -2396, -2396, 1383, 1593, 2852, - 1775, 3819, 1692, 1490, 1382, 2911, 3293, 2650, 2651, 4142, - 1870, 1693, 4642, 4643, 1591, 2597, 1592, 1385, 1591, 1731, - 1592, 1391, 1593, 1507, 1394, 1713, 1981, 2856, 1775, 5421, - 1512, 1513, 1395, 734, 734, 4485, 2855, 1397, 4489, 591, - 5117, 3885, 1396, 1589, 1590, 4493, 1593, 1399, 734, 2857, - 1775, 4496, 751, 1694, 5127, 3700, 2858, 1775, 1404, 2861, - 1427, 896, 2864, 1775, 1606, 5134, 896, 5136, 1732, 1871, - 2862, 1247, 1248, 1593, 1251, 1591, 1252, 1592, 1591, 1436, - 1592, 1437, 751, 751, 3321, 3322, 1443, 1929, 2545, 1444, - 3535, 5255, 1591, 3506, 1592, 1593, 2576, 1502, 1593, 1591, - 1445, 1592, 1593, -2329, 1450, 2713, 1451, 1593, 2577, 1452, - 3378, 1593, 2866, 1453, 700, 701, 1733, 2867, 3764, 3765, - 3766, 3767, 1454, 3769, 3770, -2357, 1549, 3373, 3374, 1591, - 2597, 1592, 1458, 751, 1591, 1593, 1592, 4903, 1460, 1593, - 1591, 5422, 1592, 1178, 4903, 3622, 3623, 5034, 3836, 4368, - 1461, 702, 1606, 2869, 3771, 3772, 1609, 4343, 4344, 2587, - 1462, 4345, 4346, 1695, 1463, 1589, 1590, 4347, 4348, 5017, - 3851, 3852, 2876, 3854, 1610, 3856, 3857, 3858, 3859, 3860, - 3861, 3862, 5329, 3864, 5323, 2396, 3869, 1464, 1696, 1625, - 3872, 1606, 4949, 703, 4048, 2836, 1593, 5196, 1982, 1593, - 898, 1555, 2890, 4051, 1775, 1465, 1734, 1626, 2598, -1776, - 4020, 2578, 1466, 1593, 1591, 1467, 1592, 1606, 4023, 1468, - 1593, 3921, 4058, 4059, 4065, 1775, 1469, 1735, 4024, 2705, - 1612, 1613, 1470, 3188, 1812, 751, 751, 751, 751, 4029, - 1627, 734, -2181, 1471, 1609, 1981, 2804, 4560, 4033, 4981, - 1593, 2058, 2059, 4069, 4070, 1593, 4369, 896, 1472, 4561, - 2069, 1593, 1610, 1589, 1590, 4636, 3656, 3657, 4634, 5011, - -2181, 4531, 4146, 4147, 2587, 899, 1475, 5007, 1628, 4562, - 4102, 3704, 2579, 1609, 2929, 1485, 5302, 4152, 4153, 4409, - 2733, 1486, 2126, 5131, 2129, 4455, 4456, 5215, 1242, 4034, - 1487, 1610, 1629, 4422, 4423, 1633, 4002, 1488, 5499, 1609, - 2143, 2144, 4563, 2147, 4605, 1775, 4890, 4035, 1612, 1613, - 1491, 2153, 2154, 2598, 5139, 2158, 1492, 1610, 1446, 1631, - 4036, 1665, 4864, 4865, -2571, 1593, 1591, 1493, 1592, 4550, - 1299, 1299, 896, 1494, 4405, 4406, 4407, 1635, 898, 898, - 1495, 1589, 1590, 1636, 5433, 4866, 4867, 1612, 1613, 1496, - 1981, 1497, 1178, 1498, 4433, 4436, 1499, 4439, 4868, 4869, - 704, 4939, 4942, 1500, 4078, 1589, 1590, 2765, 4956, 1775, - 3386, 5434, 1501, 1612, 1613, 1503, 1697, 705, 4365, 4973, - 4974, 896, 2316, 2316, 3759, 3387, 1504, 4564, 3825, 3826, - -614, 897, 3827, 3828, 3829, 1652, 4038, 4983, 1775, 1505, - 1606, 1506, 706, 4998, 4999, 5038, 5039, 1982, 1508, 1605, - 1514, 3388, 1515, 899, 899, 4606, 5042, 4793, 4127, 158, - 159, 1516, 1131, 3389, 1591, 4047, 1592, -614, 4336, 1589, - 1590, 751, 1517, 4366, 2218, 1637, 4053, 4803, 1518, -1057, - 1653, 707, 3215, 3390, -616, 1136, 4056, 1593, 713, 1137, - 4062, 1698, 751, 751, 751, 751, 3065, 4565, 1519, 1699, - 5168, 5169, 1520, 1606, 3912, 4882, 4883, 1178, 1654, 4167, - 4168, 3066, 3150, 2959, 4063, 1521, 3391, 663, 664, 5170, - 5169, 4330, 5435, 4899, 5173, 5174, 5436, 1524, -616, 1525, - 1138, 1526, 1609, 4904, 714, 1139, 5247, 5248, 4064, 1527, - 2099, 1528, 137, 4827, 1529, 4909, 5363, 2018, 4798, 5418, - 1610, 5623, 1591, -1087, 1592, 4342, 5624, 1141, 1607, 1530, - 4204, 4926, 1982, 5506, 4211, 4072, 1533, 5398, 1589, 1590, - 1608, 5401, 5251, 5248, 4367, 1534, 1591, 1535, 1592, 897, - 897, -833, 5332, 5333, 751, 1593, 1655, 4073, 5349, 5282, - 4076, 1536, 734, 1757, 4080, 1609, 734, 5385, 4153, 4093, - 1537, 663, 664, 4954, 138, 1538, 1612, 1613, 1539, 2100, - 4566, 1540, 4567, 1610, 5397, 5248, 1541, 2396, 2396, 4584, - 4266, 1542, -614, 4288, 4900, 1543, 5419, 4960, 1544, 5504, - 5505, 4961, 1142, 5562, 5563, 2761, 591, 5633, 5634, 1545, - 1591, 4597, 1592, 1546, 3149, 4312, 1611, 4916, 5644, 5645, - 5420, 4919, 4298, 2820, 5664, 4153, 4813, 1547, 4925, 4326, - 1589, 1590, 4049, 1548, 1426, 1550, 4325, 5665, 4153, 1612, - 1613, 3392, 1551, 1593, 2101, 1552, 2102, 1553, 5437, 715, - 1660, 2103, 1554, 3393, 4748, 1556, 5619, 5620, 4962, 5669, - 3772, 4971, 1557, 139, 1558, 1606, 4448, 1593, 1559, -2147, - -2599, 919, 5718, 4999, 2660, 4972, 158, 159, 1882, 1606, - 5780, 5248, 4976, 5782, 5248, 716, 1560, 5542, 5421, 5783, - 5248, 5801, 5802, 5595, 5810, 5811, 1589, 1590, 5817, 5248, - 5818, 5248, 1561, 926, 1562, 4413, 2072, 5826, 5248, 1591, - -3357, 1592, 4977, 5843, 4999, 2104, -2570, 5356, 4353, 4288, - 4030, -2329, 4805, 5405, 5856, 5248, 5873, 4679, 1140, 140, - 1565, 1593, 1566, 4568, 4569, 4878, 1569, 5581, 2073, 1570, - 1883, 1571, 4890, 5906, 5907, 1615, 1616, 1617, 1618, 1619, - 1620, 1621, 1622, 3742, 3394, 1572, 3395, 1609, 2105, 938, - 2914, 1573, 4697, 4699, 4701, 1574, 1589, 1590, 4704, 4705, - 1575, 1609, 1576, 4709, 1632, 1610, 4715, 2587, 1685, 4719, - -2596, 3089, -2594, 140, 4440, -2598, 4730, 950, -2593, 1610, - 4443, 1688, 5721, -2597, 3743, 4237, 1589, 1590, 3361, 4241, - 5422, 1591, 3362, 1592, -2591, 5003, 1606, 141, 751, 2209, - 2210, -2595, 898, 1689, 1705, 5340, 3090, 5363, 1708, 1713, - 5653, 5654, 3744, 5656, 5657, 5658, 5659, 4172, 1723, 1724, - 1593, 1612, 1613, 1615, 1616, 1617, 1618, 1619, 1620, 1621, - 1622, 1725, 5679, 3363, 1666, 1612, 1613, 2106, 3365, -2181, - -2181, 3432, 1726, 896, 1746, 1747, 4129, 2661, 2107, 4173, - 1752, 141, 1763, 1981, 1775, 1778, 1813, 1591, 1819, 1592, - 3367, 1821, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, - 1830, 3434, 1831, 5637, -3357, 1835, 971, 899, 898, 4570, - 3517, 1836, 1838, -835, 4530, 1844, 4351, 5796, 1609, 5535, - 1617, 1618, 1619, 1620, 1621, 1622, 1840, 1859, 3396, 142, - 1860, 1862, 1589, 1590, 2662, 4174, 1610, 1884, 1885, 736, - 1896, 3745, 1593, 1900, 2072, 1902, 1907, 1886, 5610, 1913, - 1918, 4368, 2794, 1916, 1921, 2797, 1922, 1591, 1926, 1592, - 1938, 1964, 1947, 4175, 1974, 3368, 1970, 1972, 5359, 5742, - 3385, -835, 5745, 2812, 1976, 714, 2073, 143, 5483, 1977, - 5753, 5481, 2660, 899, 2826, 1985, 5439, 1591, 1991, 1592, - 5482, 3742, 1612, 1613, 3065, 1992, 158, 159, 1994, 5647, - 1178, 1426, 2017, 1995, 1996, 2020, 4589, 2025, 1593, 3066, - 2036, 2034, 2037, 1716, 2038, 2041, 2042, 3436, 2044, 2045, - 2047, 896, 896, 2054, 2055, 2064, 2071, 4479, 4479, 2082, - 2086, 4479, 3743, 897, 2111, 3397, 4604, 2122, 4479, 2663, - 2123, 2124, 608, 2133, 4479, 2137, 5534, 2141, 2142, 4326, - 4710, 2194, 1589, 1590, 4052, 1982, 4325, 2162, 4369, 717, - 3744, 2200, 4176, 4127, 2204, 2214, 2225, 4933, 39, 2229, - 2248, 2255, 2397, -2147, 3547, 5423, 4632, -166, 1593, -835, - 4639, 751, 751, 3398, 2277, 2587, 1614, 2278, 2303, 2304, - 3280, 3366, -835, 2305, -3039, 4351, 2310, 1134, 1657, 2313, - 2314, 2322, 4777, 1591, 1670, 1592, 3399, 609, 1593, 897, - 2329, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 2325, - 715, 618, 2359, 5602, 5603, 2218, 5605, 144, 2361, 2362, - 2382, 145, 2406, 4677, 5637, 5062, 5618, 2407, 2408, 5748, - 5066, 5067, 3091, 5628, 2409, 2411, 5626, 2412, 718, 2413, - -835, 1887, 2434, 2435, 714, 5627, -835, 2438, 2439, 3745, - 2440, 2448, 2441, 5153, 4816, 2661, 2449, 4686, 2453, 2454, - 2455, 1981, 146, 3065, 1615, 1616, 1617, 1618, 1619, 1620, - 1621, 1622, 751, 2456, 2457, 4706, 4707, 2461, 3066, 3092, - 2458, 2460, 2467, 610, 2468, 4720, 4288, 734, 2488, 4736, - 2499, 2503, -2145, 2506, 2541, 2532, 1869, 5278, 2554, 2560, - -3357, 2561, 2572, 2595, 4888, 3361, -2582, 2611, 2619, 3362, - 2621, 4760, 2662, 1591, 1593, 1592, 2618, 2624, 4759, 2622, - 2625, 2657, 2674, -860, 4901, 2677, 751, 2678, 1871, 2686, - 898, 2702, 2708, 4906, 5806, 2692, 4353, 2727, 2276, 4908, - 4789, 4352, 3093, 5254, 2695, 898, 5433, 4788, -835, 4920, - 3363, 2739, 611, 2740, 2742, 3365, 5830, 4927, 4928, 2757, - 5715, 2759, 5716, 5717, 2760, 1670, 1426, 2762, 4288, 5628, - 2771, 5724, 5626, 5434, 2772, 2773, 2776, 3367, 1178, 2777, - 4677, 5627, 5900, 2778, 2791, 2847, 3094, 5580, 4810, 715, - 4823, 2795, 2218, 2798, 2788, 5347, 5910, 734, 4831, 902, - 2808, 4824, 5900, 4677, 2882, 899, 2809, 2813, 5910, 4832, - 4677, 2821, 2905, 2822, 2823, 4288, 4835, 2663, 4836, 4837, - 899, 158, 159, 2850, 2827, -835, 2851, 4846, 2860, 1622, - 2870, 2874, 2875, 1982, 1593, 591, 2877, 2881, 919, 2924, - 4858, -1057, -1570, 5806, 2910, 2920, 1888, 1889, 1890, 1891, - 2926, 4854, 3368, -1746, 2933, 2940, 1615, 1616, 1617, 1618, - 1619, 1620, 1621, 1622, 2946, 1531, 1563, 924, 1567, 2960, - 926, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 2950, 663, - 664, -3295, 2961, 2963, 5435, 930, 931, 2964, 5436, 2974, - 2975, 2981, 2982, 2985, 4433, 2988, 4436, 751, 4439, 158, - 159, 2986, 3190, 2987, 612, 5684, 3019, 2989, 3010, 2990, - 3021, 5418, 3023, 3026, 3029, 4353, 1589, 1590, 3048, -1057, - 4734, 3049, 3075, 3109, 3111, 4914, 938, 3112, 3115, 613, - 3114, 897, 3126, 3127, 3142, 5479, 3039, 3152, 3158, 5258, - 3153, 3161, 3095, 3096, 3097, 944, 897, -2193, 3177, 4354, - 4890, 898, 3168, 949, 950, 3178, 3179, 663, 664, 4933, - 2088, 2089, 2090, 2091, 2397, 2397, 3180, 3182, 3183, 3184, - 3236, 3238, 3245, 5043, 2573, 896, 2597, 614, 3366, 3378, - 3241, 663, 664, 3250, 3251, 3252, 3247, 3253, 5419, 5418, - 3254, 3255, 5730, 3274, 3282, 3256, 3257, 1615, 1616, 1617, - 1618, 1619, 1620, 1621, 1622, 3258, 3259, 3260, 3302, 5203, - 3040, 3261, 5420, 2092, 2093, 2094, 3262, 2660, 3263, 2574, - 898, 3041, 5218, 3264, 3265, 3275, 899, 3305, 3042, 3039, - 4829, 3266, 4127, 3364, 5522, 5882, 3267, 3268, 3269, 3270, - 5437, 2218, 3271, 968, 3308, 3272, 1957, 3273, 3320, 898, - 3324, 896, 970, 971, 972, 3326, 4355, 3043, 3328, 3329, - 3330, 2575, 3327, 3039, 2095, 2096, 5419, 3331, 3334, 3338, - 4196, 3339, -70, 3340, 3346, 3408, 3371, 4479, 3407, 3409, - 5421, 3420, 3283, 3421, 3430, 2928, -1784, 1591, 3466, 1592, - 5420, 3440, 3191, 3467, 3481, 899, 4211, 3479, 1670, 3482, - 4479, 3502, 3512, 3040, 4479, 751, 3513, 5047, 5047, 3520, - 3519, 4479, 3521, 615, 3041, 2934, 5049, 3528, 3044, 3530, - 2587, 3042, 3534, 3551, 899, 3548, 3555, 3556, 4354, 3557, - 3558, 616, 5051, 3564, 3565, 2097, 2344, 3040, 3192, 2343, - 3572, 2733, 3577, 3588, 5533, 4413, 3592, 2422, 3041, 3045, - 3043, 3039, 897, 3607, 898, 3042, 4288, 3608, 5421, 3609, - 5438, 5146, 3624, 734, 3627, 5065, 5208, 3628, 3646, 2598, - 5071, 3629, 617, 3635, 5209, 618, 4197, 3634, 3647, 3649, - 3655, 2597, 2576, 3707, 3043, 5095, 3708, 5113, 3713, 898, - 5115, 3717, 5422, 3718, 2577, 5098, 3724, 5020, 3727, 3738, - 2661, 3726, 619, 3739, 3731, 3820, 1981, 3821, 1593, 2098, - 620, 3044, 3822, 2088, 2089, 2090, 2091, 3834, 898, 3193, - 3838, 897, 2660, 3845, 3846, 3040, 4288, 4677, 4288, 899, - 751, 4288, 5114, 4677, 3848, 4355, 3041, 4288, 4288, 3877, - 3883, 4677, 3045, 3042, 3888, 3044, 2687, 3892, 3894, 3900, - 897, 4288, 4677, 3901, 4677, 3902, 3778, 3909, 3779, 3780, - 5138, 3914, 3984, 3987, 899, 5914, 2092, 2093, 2094, -2329, - 5422, 3988, 3043, 3991, 3995, 3999, 3045, 4003, 5149, 4006, - 5141, 3194, 3781, 4013, 3782, 5024, 4010, 3283, 5523, 4014, - 3783, 4015, 4016, 899, 4068, 5524, 4079, 2578, 5533, 3195, - 3196, 2099, 4081, 4091, 3197, 3198, 3199, 5166, 4092, 4101, - 5525, 4103, 1907, 5186, 4109, 4110, 4119, 2095, 2096, 4115, - 4121, 4132, 4133, 1178, 3784, 2587, 5433, 4135, 4139, 4136, - 4148, -1168, 4145, 3044, 4149, -2329, 4154, 4155, 4162, 4163, - 4166, 4191, 4195, 4201, 4183, 4203, 4198, 5187, 4205, 4206, - 4213, 5095, 4215, 5434, 4231, 897, 4236, 4232, 5439, 4233, - 158, 159, 4234, 4240, 3045, 3658, 4247, 4253, 2579, 3788, - 2100, 4313, 3200, 4317, 2598, 4933, 4296, 4301, 1982, 4777, - 4318, 1780, 4339, 896, 4321, 4353, 4361, 4363, 2097, 4364, - 897, 4374, 4375, 3785, 4382, 4383, 5063, 4385, 896, 4384, - 4386, 158, 159, 4387, 4389, 2661, 4390, 4400, 4391, 4392, - 4309, 1981, 4393, 4426, 5223, 4445, 4418, 4446, 4449, 897, - 3201, -1057, 4458, 4460, 4469, 4589, 4471, 4491, 3786, 4498, - 3364, 4513, 3787, 4525, 4527, 2101, 4528, 2102, 4539, 5526, - 3660, 4542, 2103, 3788, 3550, 4545, 4553, 5423, 2886, 4546, - 4554, 4086, 5527, 4677, 4591, 4600, -1901, 4607, 4609, 663, - 664, 5047, 2098, 4611, 5435, 3789, 4612, 734, 5436, 4614, - 5253, 5528, 2286, 158, 159, 4615, 4619, 4624, 5210, 5260, - 4413, 5211, 4657, 4288, 4288, 4658, 4683, 4678, 4684, 4679, - 5360, 5418, 4688, 4690, 5370, 4691, 4735, 5095, 4739, 4737, - 4738, 3661, 3662, 3663, 4746, 1780, 2104, 4753, 4766, 4767, - 4769, 4771, -2097, 4806, 4792, 4807, 4793, 5911, 4815, 4817, - 893, 4797, 1075, 4819, 2276, 5423, 3664, 4818, 1178, 4847, - 4848, 4849, 4856, 4862, 893, 4288, 4852, 4855, 4863, 4288, - 1132, 1187, 4870, 4873, 4871, 2218, 1075, 4881, 4895, 2105, - 4518, 3665, 4677, 5449, 2099, 4897, 4907, 4910, 4921, 4937, - 1075, 4950, 4957, 4934, 4958, 4959, 4938, 4939, 5419, 4940, - 4965, 3790, 4942, 4945, 4946, 4967, 4984, 4993, 4970, 3666, - 734, 3667, 4979, 1982, 4980, -1871, 4992, 5000, -1876, 5027, - 5008, 4914, 5420, 5344, 1178, 5035, 5029, 158, 159, 4216, - 3668, 5036, 5040, 5044, 896, 5050, 4217, 3791, 5052, 5529, - 5053, 5058, 5059, 5060, 5072, 5099, 5533, 5089, 3879, 3669, - 5437, 5100, 4218, 2100, 631, 5104, 3670, 5106, 5488, 5105, - 1870, 5107, 4219, 4220, 4221, 5124, 5132, 5128, 2106, 5137, - 3832, 3671, 4222, 5140, 5142, 5162, 5163, 5165, 5164, 2107, - 5176, 3672, 5177, 5189, 5190, 3792, 3793, 5192, 5191, 5198, - 5421, 5194, 3794, 5199, 1075, 5047, 3673, 5202, 5237, 5206, - 5231, 5220, 5233, 896, 3795, 4288, 5229, 5238, 5410, 5245, - 5250, 5244, 5263, 5261, 4740, 5272, 5274, 5277, 2101, 5445, - 2102, 5275, 5281, 3796, 5279, 2103, 5282, 5295, 5303, 5095, - 2273, 5305, 896, 5315, 5324, 5330, 5335, 5337, 5764, 5345, - 5348, 5352, 5357, 5364, 5358, 5365, 5366, 5368, 2271, 3797, - 4288, 5395, 5400, 3674, 5369, 5382, 5411, 3665, 5455, 5186, - 5384, 5396, 734, 3675, 1075, 5394, 5457, 5458, 5459, 5460, - 5473, 5402, 5470, 5403, 5471, 893, 5477, 893, 893, 893, - 5493, 5497, 5500, 5485, 893, 5508, 893, 5521, 5567, 2104, - 5518, 5552, 5569, 5187, 5571, 1781, 5573, 5572, 5577, 5575, - 3676, 898, 5422, 5578, 5579, 5591, 5592, 5593, 5594, 1782, - 5604, 1783, 4223, 3677, 5600, 3798, 5516, 1075, 5606, 5607, - 5614, 5616, 1075, 5630, 5631, 5652, 4224, 5632, 5655, 3550, - 5621, 3550, 2105, 5641, 5648, 5677, 5660, 896, 5663, 5666, - 5687, 1784, 5688, 5338, 5689, 5705, 5695, 5706, 5726, 5719, - 5557, 5734, 1075, 3678, 5727, 5714, 1785, 5735, 5729, 3679, - 3785, 1084, 1075, 5750, 3790, 5773, 5790, 5784, 1085, 5791, - 5792, 5813, 896, 5814, 5822, 5574, 899, 5785, 5815, 5816, - 751, 5823, 5824, 5842, 1086, 5844, 3799, 5847, 5857, 1786, - 5858, 5860, 5867, 5870, 1087, 1088, 1089, 3800, 3801, 3802, - 5872, 896, 5601, 5878, 1090, 5879, 5881, 1787, 5883, 5886, - 5901, 4225, 5887, 5913, 3561, 1428, 1814, 2451, 3680, 1781, - 4212, 2106, 3871, 5156, 5154, 3681, 4226, 5155, 3140, 3697, - 4349, 5541, 2107, 1782, 1742, 1783, 5599, 5712, 2530, 5280, - 5840, 5097, 1917, 5188, 5448, 2218, 5171, 5639, 5454, 5343, - 5350, 1075, 1075, 1075, 1075, 3682, 5501, 4931, 3084, 4230, - 2295, 5146, 4227, 1075, 3357, 1784, 3990, 3896, 5439, 5456, - 3683, 3684, 4879, 3249, 5749, 4532, 4228, 2750, 1335, 2751, - 1785, 2609, 2753, 3685, 2691, 2752, 3803, 1788, 1961, 5558, - 5404, 5273, 4396, 3804, 1789, 5474, 5130, 4618, 5678, 5219, - 4991, 2938, 897, 4623, 1790, 5733, 5517, 5800, 5869, 5224, - 5691, 5851, 5871, 1786, 5662, 4273, 5047, 1791, 5047, 5047, - 893, 1807, 4630, 5006, 4394, 3118, 5447, 5701, 4842, 5812, - 5057, 1787, 4399, 5834, 5700, 5704, 5708, 5612, 4572, 5070, - 4487, 4524, 5731, 3736, 1091, 734, 5710, 5713, 1792, -1168, - 4891, 1793, -1975, 4083, 4594, 4596, 5854, 5423, 1092, 4592, - 721, 722, 5827, 5407, 5828, 5686, 1794, 5762, 3313, 5399, - 5683, 4397, 4905, 4841, 1756, 2500, 5476, 1928, 5309, 3640, - 3641, 5497, 632, 3244, 2659, 2949, 5728, 3911, 3061, 3335, - -1975, 4459, 5516, -1975, 5839, 1899, 5484, 4338, 4100, 3170, - 5112, 5723, -1975, 2558, 3721, 3443, 751, 5743, 5744, -1975, - 4613, 1788, 1873, -1975, 4123, 2212, 3441, 2121, 1789, 2061, - 2274, 1075, 3619, 1798, 5850, 4188, -1975, 5018, 1790, 3613, - -1975, 5770, -1975, 3603, 5668, 5047, 5047, -1975, 5769, 4602, - 5540, 1791, 5047, 5852, -1975, 5037, 5853, -1975, 3509, 2070, - 5300, 4319, -1975, 5299, 5214, 4116, 5640, 5314, 1093, 5205, - 4178, 5793, 5235, 3155, 4311, 723, 5298, 2308, 5001, 2019, - 3300, 3333, 1792, -1975, 1191, 1793, 2218, 3762, 4685, 1347, - 4663, 2685, 5797, 3031, 1183, 3032, -1975, 2388, 3593, 1352, - 1794, -1975, 1865, 732, 1094, 1186, 5807, 3078, 5252, 5808, - 751, 5243, 2491, 4463, 5868, 5461, 5903, 5880, 1095, 5912, - -1975, 5915, 5905, 1510, 5608, 4189, 3052, 4629, 5916, 3496, - 5047, 3576, 4644, 1144, 2904, 1145, 3006, 3571, 3570, 2736, - 2508, 3235, 1651, 2321, -1975, 1117, 4404, 3552, 3648, 5841, - 3897, 5336, 4414, -1975, 1075, 1225, 4654, 1075, 893, 1824, - 4185, 2016, 3605, 5019, 725, 726, 751, 727, 5725, 0, - 3136, 0, 4211, 4211, 0, -1975, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 5711, 0, - 0, 0, 0, 0, 0, -1975, 0, 0, 0, 5866, - 0, 0, -1975, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -1975, 0, -1975, 0, 0, - -1975, 0, 0, 0, 0, 0, 0, 0, 0, 1075, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2218, 0, 0, 0, 751, 0, - 0, 0, 0, 0, 751, 1075, 0, 0, 2218, 0, - 0, 0, 0, 0, 2218, 0, 1075, 1075, 0, 0, - 2218, 0, 1075, 0, 0, 0, 1075, 1075, 1075, 0, - 0, 0, 0, 0, 0, 0, 0, 1075, 1075, 0, - 0, 0, 0, 1075, 0, 1075, 1075, 1075, 1075, 1075, - 0, 1075, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1075, 0, 1075, 0, 0, 1075, 1075, 0, - 1075, 1075, 1075, 0, 1075, 1075, 1075, 0, 0, 0, - 0, 1075, 0, 0, 1075, 0, 0, 0, 0, 0, - 0, 0, 1075, 1075, 0, 1075, 1075, 1075, 0, 0, - 1075, 1075, 1075, 1075, 1075, 1075, 1075, 0, 1075, 1075, - 1075, 1075, 1075, 1075, 896, 1075, 1075, 0, 1075, 1075, - 1075, 1075, 1075, 1075, 1075, 0, 0, 1075, 1075, 1075, - 1075, 0, 1075, 1075, 1075, 1807, 1075, 0, 1075, 0, - 1075, 0, 0, 0, 1075, 1075, 1075, 0, 0, 1075, - 1075, 1075, 1075, 1075, 0, 1075, 0, 0, 0, 0, - 0, 0, 1075, 0, 0, 0, -1975, 0, 0, 1075, - 1075, 1075, 1075, 0, 0, 0, 0, 0, 0, 0, - 1075, 1075, 1075, 0, 1075, 1075, 1075, 1075, 1075, 1075, - 0, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 0, - 0, 0, 1075, 0, -1975, 0, 0, -1975, 0, 0, - 0, 0, 0, 0, 0, 0, -1975, 5207, 0, 0, - 902, 0, 0, -1975, 0, 0, 0, -1975, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -1975, 0, 0, - -1975, 0, 0, 0, -1975, 1075, -1975, 0, 0, 0, - 1075, -1975, 0, 0, 0, 0, 0, 0, -1975, 919, - 1075, -1975, 0, 0, 0, 0, -1975, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2628, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -1975, 924, 0, - 0, 926, 0, 0, 0, 0, 0, 0, 0, 0, - -1975, 0, 0, 0, 0, -1975, 930, 931, 0, 0, - 0, 0, 0, 0, -1026, 0, -1026, 2629, 0, 0, - 0, 0, 0, 0, -1975, 0, 0, 0, 1075, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1907, 0, 0, 0, 938, -1975, 0, - 0, 1075, 0, 0, 2630, 0, 0, -1975, 0, 0, - 0, 0, 0, 0, 0, 0, 944, 0, 0, 0, - 0, 0, 0, 0, 949, 950, 0, 0, 0, -1975, - 0, 0, 0, 0, 0, 2469, 0, 0, 0, 0, - 0, 158, 159, 0, 0, 0, 3658, 0, 0, -1975, - 0, 0, 0, -1975, 0, -1975, -1975, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1808, 0, -1975, - 0, -1975, 0, 0, -1975, 0, 0, 0, 0, 0, - 0, 0, 0, -1975, -1975, 0, 0, -1975, -1975, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, - 0, 0, 0, 0, 968, 0, 0, 0, 0, 0, - 0, 3660, 0, 970, 971, 972, 0, 0, 3, 0, - 4, 0, 5, 0, 6, 0, 0, 0, 0, 0, - 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8, 0, 9, 10, 0, 0, - 0, 0, 893, 0, 11, 0, 0, 0, 0, 0, - 0, 12, 3661, 3662, 3663, 0, 0, 0, 0, 0, - 0, 0, 0, 13, 0, 0, 0, 0, 0, 14, - 0, 0, 0, 0, 0, 0, 0, 3664, 0, 0, - 0, 0, 15, 0, 0, 0, -1975, 893, 0, 0, - 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 17, 3665, 0, 0, 0, 0, 5208, 0, 0, - 0, 18, 0, 19, 0, 5209, 0, 0, 20, 0, + 591, 762, 739, 1184, 665, 635, 1131, 1180, 2270, 1288, + 2027, 752, 748, 1876, 1412, 1875, 1417, 1418, 1419, 2079, + 2306, 768, 644, 1423, 1867, 1136, 1426, 644, 1137, 1716, + 2217, 644, 1743, 677, 659, 2676, 1104, 2301, 2396, 688, + 2395, 2567, 1203, 1138, 80, 676, 669, 1716, 683, 2087, + 2547, 687, 2563, 2684, 3655, 691, 3379, 3380, 1669, 1672, + 1674, 2136, 1300, 2358, 2227, 3493, 3815, 1684, 898, 3816, + 1975, 1906, 2354, 2118, 1139, 1363, 3726, 3160, 3067, 2550, + 3724, 652, 898, 3869, 1299, 4106, 842, 843, 1141, 2002, + 3121, 3299, 3892, 1482, 3064, 4376, 2236, 2374, 2375, 3738, + 588, 2535, 4295, 2544, 2244, 2746, 2549, 734, 2300, 1910, + 1227, 1911, 3403, 1234, 3404, 842, 1116, 2378, 2569, 3458, + 3405, 1834, 4119, 1442, 3539, 3540, 3291, 3081, 3807, 2464, + 3585, 3607, 4517, 3749, 741, 3292, 591, 2403, 4108, 591, + 3616, 4447, 751, 757, 4335, 1984, 3644, 769, 4650, 4109, + 3840, 770, 1483, 771, 4356, 4853, 772, 2591, 2696, 3749, + 3749, 3220, 2416, 2417, 4758, 4357, 4358, 4932, 1589, 1590, + 2246, 2247, 3824, 2249, 2250, 2251, 2252, 2253, 2254, 3223, + 2256, 2257, 2259, 2261, 2262, 2263, 2264, 2265, 2716, 1256, + 2717, 2718, 1388, 1257, 1258, 2462, 4360, 1523, 4362, 2667, + 2301, 4372, -413, 3221, 4427, 4194, 5047, 5166, 1807, 2533, + 2501, 1641, 1941, 5149, 3639, 4388, 2732, 4611, 2732, 4377, + 1589, 1590, 4475, 2732, 3749, 3749, 3039, 4100, 3288, 1907, + 4860, 1589, 1590, 2885, 3281, 3754, 743, 1119, 1671, 746, + 1589, 1590, -3243, 2732, 3189, 1589, 1590, 681, -1137, 1589, + 1590, 5736, 1807, 3216, 1587, 1338, 2612, 1578, 1580, 1581, + 1426, 1589, 1590, 4293, 3524, 4693, 4144, 3881, 3584, 1624, + 3289, 2300, 1284, 1589, 1590, 1907, -2555, -1976, 1589, 1590, + 4005, 1589, 1590, -2688, 1589, 1590, 692, 4915, 4696, 695, + 1709, 4303, 2655, 898, -726, 898, 898, 898, 1589, 1590, + 3040, 724, 898, 2610, 898, 667, 733, 4085, 2732, 1285, + 3831, 3041, 1744, 4022, 1907, -3156, 39, 1841, 3042, 1589, + 1590, 1392, 4698, 1589, 1590, 761, 1589, 1590, 4119, 2732, + 1531, 2732, 1080, -727, 2810, 4652, 4833, 1589, 1590, 1591, + 1119, 1592, 1589, 1590, 3764, 2072, 4287, 3043, -2556, 2697, + 4599, 3123, 4700, 1589, 1590, -3236, 4304, 4718, 1589, 1590, + 4086, 5011, 1589, 1590, 4583, 2732, 631, 765, 2728, 3854, + -2848, 2933, -3156, 3758, 1589, 1590, 5610, 2073, 3336, -3219, + 1665, 627, 2732, 1589, 1590, 3778, 1589, 1590, -3223, -1976, + 647, 1591, 2074, 1592, 3999, 2732, 1589, 1590, 2072, 2906, + 2732, 4009, 1591, 4010, 1592, 4012, -3157, 671, 3044, 690, + -600, 1591, 5269, 1592, 1589, 1590, 1591, 3841, 1592, -3222, + 1591, 1806, 1592, 1589, 1590, 4467, 2729, 1589, 1590, 2755, + 2073, 2040, 1591, 2075, 1592, 4123, -3220, 1589, 1590, 3045, + 5080, 4305, 4085, 1665, 1591, 2074, 1592, -1976, 1606, 1591, + 3224, 1592, 1591, 4763, 1592, 1591, 3456, 1592, 4638, -3243, + 1593, 2076, 153, -3157, 1286, 1589, 1590, -603, 640, 1591, + 1772, 1592, 4287, -2549, 1986, 4378, 798, -1410, 801, 802, + 803, 804, -3221, 806, 807, 2907, 2075, 809, 810, 840, + 1591, 1563, 1592, 2768, 1591, 4086, 1592, 1591, 2062, 1592, + 2001, -3226, 2966, 2967, 2968, 2969, 1405, 3584, 1591, 4502, + 1592, -603, 1593, 1591, 2076, 1592, 1589, 1590, 840, 767, + 5595, 1665, -1425, 1593, 1591, 5506, 1592, 3615, 4476, 1591, + -3156, 1592, 1593, 1591, 1197, 1592, 1745, 1593, 898, 5305, + 1609, 1593, 1270, 3786, 2509, 1591, 4477, 1592, 4040, 4584, + 1214, 4843, 1157, 1593, 1591, 602, 1592, 1591, 5245, 1592, + 2077, 1869, -608, 4415, 1269, 1593, 1567, 1591, 4932, 1592, + 1593, 5089, -2848, 1593, 4637, 5817, 1593, -2707, 1589, 1590, + 2542, 3774, 3775, 2502, 2908, 1591, 1661, 1592, 4751, 1870, + 1593, 2324, 1739, 3137, 1591, 4461, 1592, 1630, 1591, 3137, + 1592, 3882, 653, 757, 1713, 1325, 783, 735, 1591, 4300, + 1592, 1593, 2353, 2077, 757, 1593, 2553, 2085, 1593, 814, + 751, -3157, 645, 1393, -2708, 661, 5791, 1978, 1638, 1593, + 2543, 4476, 1326, 1482, 1593, 2684, 1591, 4131, 1592, 1875, + 4333, 4408, 1101, 4329, 3789, 1593, 3875, 3876, 1871, 751, + 1593, 1134, 2709, 3119, 1593, 1157, 2548, 628, 791, -2709, + 1929, 4416, 1578, 1580, 736, 751, 1593, 670, 1769, 1271, + 672, 4844, 5364, 1362, 1213, 1593, 1483, 1209, 1593, 1367, + 1368, 751, 1215, 3899, 1665, 3100, 5818, 1591, 1593, 1592, + 1216, 2120, 1483, 792, 5174, 1237, 1102, 783, 4462, 5306, + 783, 2593, 2973, 1238, 899, 4519, 1593, 1316, 2766, 1254, + 1665, 2886, 2972, 3807, 2942, 1593, 2063, 1665, 899, 1593, + 1946, 3791, 2894, 3156, 1142, 1662, 1910, 2286, 1911, 1593, + 5224, 2551, 1406, 1929, 897, 1850, 3291, 1851, 1852, 1853, + 1854, 1855, 751, 2673, 1305, 3292, 1716, 3760, 897, 1591, + 811, 1592, 3759, 4982, 1140, 4802, 4764, 1593, 4781, 4782, + 1984, 1264, 2315, 751, 3171, 3493, 898, 4503, 1589, 1590, + 3220, 3842, 1330, 2934, 5080, 3584, 3124, 1589, 1590, 736, + 2332, 4143, 4656, 734, 155, 1305, 4660, 5595, 2959, 5509, + 5143, 2302, 2287, 1351, 632, 1353, -2688, 1355, 591, 591, + 591, 1359, 1305, 2613, 751, -3363, 1950, 2372, 1593, 5608, + 1321, 1773, 3221, 668, 3996, 1842, 5029, 5030, -2688, 2066, + 2916, 736, 2891, 2892, 842, 3749, 3033, 2591, 1081, 665, + 1532, 2919, 2913, 2921, 2922, 1988, 2377, 5489, 3288, 2381, + 3764, 4600, 2658, 3751, 2279, -2555, 3219, 736, 2272, 3877, + 1483, 2398, 1589, 1590, 2401, 734, 1361, 1416, 2404, 1365, + 4137, 5732, 4442, 4756, 1421, 2733, 1424, 2733, 3776, 1389, + 1593, 4628, 2733, 5101, 4005, -114, -114, -118, -118, 3225, + 3289, 1431, -110, -110, 1957, 2419, 2420, 2421, 2160, 5012, + -413, 631, 2733, 1666, 1957, 3325, 1775, 2422, 1356, 1357, + 1358, 2423, 5287, 2667, 5707, 2177, 4412, 2053, 2185, 4306, + 2187, 1589, 1590, 3287, 2191, 2192, 2193, -2556, 3307, 4478, + 1589, 1590, 2199, 4775, 4087, 5128, 2902, 4466, 2397, 899, + -3243, 899, 899, 899, 693, 896, -1137, 696, 899, 1591, + 899, 1592, 1274, -3236, 1808, 4350, 1706, 5341, 1591, 896, + 1592, 4190, -1894, 4498, 2302, 4379, 1666, 2733, 2730, 897, + 4428, 897, 897, 897, 1957, -1976, 786, -3219, 897, 5150, + 897, 2316, 4511, 4512, 4513, 2769, -3223, 4516, 2733, -1976, + 2733, 694, -726, 4932, 812, 5241, 2887, 3914, 1808, 4524, + 1670, 1564, 1675, 1299, 2781, 2782, 1678, 1683, 900, 2783, + 2784, 3458, 3458, -3156, 2811, 3458, 3458, -3222, 629, 1623, + 1280, 3458, 3458, 1483, 2733, 2872, 2873, 5450, 1196, 4924, + 1190, -727, 4478, 1591, -3220, 1592, 1712, 2883, 2884, 2909, + 604, 2733, 3500, 3501, 1666, 4028, 4029, 1586, 4042, 4043, + 2402, 5073, 2943, 2738, 2733, 5060, 5192, 4088, 5074, 2733, + 2745, 2078, 4055, 4056, 1408, 3486, 4003, 4287, -2848, 4087, + 1593, 4008, 1299, 3457, 2733, 3310, 1568, 4013, 3801, 1593, + -3221, 5015, 2237, 4061, 4062, 5510, 3315, 4114, 4115, 4410, + 2288, 2226, 1591, 5692, 1592, 5694, 5695, 5215, 5216, -3226, + -2707, 1591, 2774, 1592, -3157, 4192, 4193, 2775, -600, 751, + 734, 1564, 1426, 2415, 5826, 734, 3567, 4886, 2785, 5771, + 5075, 4665, -2707, 2786, 1864, 1657, 667, 2787, -2236, 2613, + 2692, 751, 3621, 751, 842, 2327, 3490, 751, 751, 2789, + 2721, -2236, 4887, 1619, 1620, 1621, 1622, -2708, 2799, 768, + 737, 2801, 4333, 5248, 1593, 1265, 794, 5490, 5063, 3555, + 2613, 2805, 3056, 663, 664, 3582, 4948, 751, 2238, -2708, + 896, 1317, 896, 896, 896, 1901, 2363, 5122, 2779, 896, + 2562, 896, -2709, 5132, 899, 3996, 5235, 4994, 2806, 783, + 2472, 783, 2807, 2473, 1589, 1590, 2592, 631, 1929, 2767, + 1775, 1761, 2824, 5379, -2709, 734, 734, 1666, 2474, 2959, + 4164, 5768, 5769, 1593, 897, 3818, -3066, 3102, 5778, 2459, + 1812, 2343, 1593, 4802, 4356, 4772, 4395, 1200, 1846, 4041, + 4989, 1823, 4990, 1666, 4610, 4357, 4358, 840, 2672, 2476, + 1666, 3631, 4773, 734, 631, 3595, 1119, 2490, 2570, 3815, + 3749, 4791, 3816, 2478, 5511, 2323, -1936, 4441, 5021, 5022, + -608, 1703, 3574, 1847, 5621, 2895, 4372, 2239, 1589, 1590, + 1211, 3833, 2976, 3030, 2571, 769, 2980, 5227, 4687, 770, + 2796, 771, 2445, 1868, 772, 3534, 2289, 2792, 1716, 1106, + 5309, 2437, 4264, 5387, 4655, 5816, 2487, 4812, 4659, 3005, + 2292, 4156, 4157, 4158, 4159, 4108, 5491, 3172, 3081, 1644, + 5772, 3807, 3144, 734, 1650, 1875, 4109, 1848, 1849, 1869, + 3731, 842, 734, 1707, 5773, 678, 1740, 4838, 751, 632, + 591, 734, 3651, 5144, 734, 1910, 3736, 1911, 2569, 1401, + 3220, 3291, 2516, 2832, 734, 2522, 1483, 2793, 1721, 2531, + 3292, 734, 605, 1969, 2396, 2379, 2301, 2396, 2396, 3590, + 3591, 3493, 1713, 4649, 2953, 1591, 3419, 1592, 751, 4703, + 1589, 1590, 751, 734, 3564, 39, 1119, 5084, 849, 4716, + 4717, 2593, 3221, 1589, 1590, 2831, 3103, 1589, 1590, 2701, + 898, 3024, 1589, 1590, 5385, 5386, 5512, 4552, 751, 709, + 4401, 751, 791, 3576, 1768, 710, 1871, 734, 4287, 5233, + 3730, 4265, 899, 3323, 4578, 896, 631, 3309, 712, 1212, + 2035, 3499, 2947, 2948, -1936, 1589, 1590, 2300, 2597, 4371, + 1936, 4340, 1951, 5085, 5177, 898, 2591, 792, 2879, 1591, + 2696, 1592, 897, 3288, 3544, 734, 3632, 2746, 1104, 3652, + 2536, 2446, 2903, 1589, 1590, 5784, 3596, 2673, 2597, 5697, + 5502, 5388, 1589, 1590, 2232, 3219, 5307, 3294, 2699, 2700, + 5255, 5258, 3584, 1589, 1590, 5265, 5266, 3583, 5115, 3381, + 5117, 1589, 1590, 5120, 1224, 3289, 1593, -3066, 736, 5124, + 5125, 4888, 2344, 898, 898, 5317, 4451, 4452, 4453, 4454, + 5792, 2271, 3337, 4287, 3498, 3104, 5550, 3584, 5371, 3523, + 3228, 3528, 1920, 1941, 3508, 4995, 3619, 3584, 3584, 3891, + 3015, 1927, 3017, 1589, 1590, 853, 3504, 3505, 2667, 3568, + 1937, 3819, 2800, 3287, 5743, 5744, 1741, 840, 3713, 3834, + 1107, 1591, 2834, 1592, 3885, 3028, 5001, 606, 734, 1957, + 1963, 4165, 1963, 2293, 1591, 3569, 1592, 734, 3035, 3036, + 1593, 1157, 5765, 1591, 1402, 1592, 1951, 2178, 734, 2179, + 1442, 2241, 2587, 4553, 1308, 3336, 1704, 1589, 1590, 2218, + 1799, 2754, 1589, 1590, 4966, -1936, 1589, 1590, 4968, 5275, + 3204, 1817, 3025, 5086, 3102, 751, 1591, 4464, 1592, 4468, + 1309, 4003, 2587, 4003, 1589, 1590, 1650, 4875, 4876, 4877, + -2236, 4003, 1589, 1590, 1957, 2680, 3022, 2837, 4495, 5690, + 4464, 2598, 5389, -2236, 1591, 632, 1592, 4003, 3308, 850, + 3653, 2697, 751, 1591, 2276, 1592, 1770, 4003, 2396, 3229, + 3888, 4507, 1310, 896, 1591, 5774, 1592, 4515, 1589, 1590, + 5315, 2598, 1591, 734, 1592, 4003, 4464, 4464, 4522, 4523, + 751, 751, 1593, 1722, 784, 1589, 1590, 5405, 751, 2328, + 2380, 4402, 632, 2537, 3866, 1593, 2838, 2466, 751, 1593, + 1589, 1590, 5353, 4740, 1593, 2839, 1952, 3491, 1806, 851, + 1806, 1157, 2355, 1657, 1591, 1700, 1592, -260, 591, 734, + 591, 591, 591, 591, 734, 751, 734, 2583, 1589, 1590, + 591, 1815, 2240, 5785, 5109, 5466, 2505, 1593, 5108, 2518, + 2521, 4480, 4480, 1828, 840, 4480, 2510, 2399, 591, 854, + 751, 4105, 4480, 2997, 5372, 5373, 2998, 1311, 4480, 1981, + 2405, 4741, 158, 159, 5116, 1593, 5119, 2186, 1591, 793, + 1592, 2999, 734, 1591, 1593, 1592, 2195, 1591, 5126, 1592, + 1589, 1590, 4184, 3103, 5535, 1593, 5536, 2206, 5300, 5133, + 5587, 5135, 1953, 1593, 1954, 1591, 1312, 1592, 3065, 3493, + 3164, 5427, 3001, 1591, 2028, 1592, 4287, 842, 2962, 5612, + 5310, 5451, 2582, 3066, 4475, 3704, 3002, 5563, 2364, 2954, + 2366, 2368, 2369, 2370, 1589, 1590, 783, 5587, 751, 1119, + 2376, 5352, 2584, 742, 3314, 1593, 1589, 1590, 2482, 1591, + 1952, 1592, 1589, 1590, 734, 5471, 4487, 2485, 2400, 2492, + 4893, 3051, 5374, 2333, 783, 5691, 1591, 4894, 1592, 3231, + 4143, 4186, 3867, 5157, 632, 1771, -2357, 751, 3874, 4742, + 1284, 1591, 1650, 1592, 1701, 751, 751, 751, 2511, 2512, + 2513, 734, 734, 744, 1955, 3777, 2592, 1426, 2028, 1593, + 4893, 1748, 3883, 2180, 1593, 646, 2181, 898, 1593, 1591, + 2028, 1592, 3104, 5354, 5377, 3077, 5171, 1285, 4893, 2479, + 794, 4893, 4893, 1589, 1590, 1829, 1593, -2182, 2365, 4640, + 4641, 5467, -2357, 2371, 1593, 2373, 1953, 5375, 1954, 3370, + 5734, 1982, 5311, 5738, 3560, 3561, 3378, 3378, 3378, 2477, + -2358, 2952, 2396, 751, 745, -2182, 4743, 5564, 5488, 4749, + 4749, 1591, 4923, 1592, 1589, 1590, 2596, 775, 5575, 3575, + 1593, 1956, 2672, 4461, 3868, 734, 1910, 4572, 1911, 2840, + 4941, 2414, 3293, 4943, 4944, 2029, 138, 1593, 4160, 4161, + 1589, 1590, 1929, 3638, 734, 3101, 1589, 1590, 2983, 5861, + 799, 5465, 1593, 4169, 2953, 1591, -2358, 1592, 1716, 1351, + 2593, 2688, -1435, 734, 2690, 39, 1665, 1591, 5264, 1592, + 2030, 1589, 1590, 1591, 5874, 1592, 734, 734, 1955, -2357, + 1593, 5543, 3205, 2705, 3131, 5565, 4142, 3132, 1589, 1590, + 2714, 2714, -2357, 2714, 2714, 2531, 4113, 4067, 3141, -1435, + 747, 1266, 2802, 3721, 1606, 3219, 899, 5156, 751, 5296, + 2959, 734, 3886, 3905, 3906, 3907, 3908, 734, 1716, 2029, + 760, 4872, 1286, 5683, 2741, 4068, 4462, 1589, 1590, 3760, + 4753, 2029, 1593, 8, 2749, 814, 897, 1929, -834, 4985, + 2514, 2515, -2357, 5843, 1591, 1294, 1592, 5284, 761, -2357, + 5285, 899, 2673, -2358, 1957, 1956, 5832, 3294, 5418, 4721, + -2357, 4986, 1986, 1589, 1590, 153, -2358, 5508, 1589, 1590, + 1267, 1239, 3299, 3299, 3563, 5200, 1593, 4444, 158, 159, + 4476, 897, 1589, 1590, 1957, 1591, 1749, 1592, 1593, 16, + 2302, 1700, 3206, 2384, 1593, 5544, 1609, 3332, 4477, 3207, + 2475, 1589, 1590, 3361, 1157, 2843, 3362, 3208, 3287, 899, + 899, 1591, 1903, 1592, 1610, 2334, -2358, 1591, 2844, 1592, + 2984, 3363, 2929, -2358, 2617, 898, 3503, 2845, 3406, 2335, + 4467, 3517, 5886, 4504, -2358, 4505, 2266, 2385, 3411, 897, + 897, 5758, 1591, 898, 1592, 842, 3311, 1589, 1590, 1483, + 5420, 5833, 3365, 1313, -1435, -1356, 3544, 1240, 1241, 1591, + 2863, 1592, 2689, 1589, 1590, 1593, 3367, 898, 2349, 1272, + 840, 1589, 1590, 1239, 1904, 898, 898, 898, 5027, 1750, + 3209, 734, 5412, 5890, 5414, 2271, 29, 734, 2868, 2713, + 2713, 1219, 2713, 2713, 1751, 3444, 2803, 1426, 1591, 775, + 1592, 141, 3370, 2880, 5834, 2735, 1593, 2350, 2871, 4097, + 2726, 1228, 1295, 3584, 5367, 2825, 1408, 667, 5641, 4003, + 4729, 5705, 1268, 2788, 2397, 4731, 3455, 2397, 2397, 3592, + 1296, 4508, 1593, 4963, 1591, 2597, 1592, 896, 1593, 1591, + 3210, 1592, 3826, 3827, 4602, 2267, 3828, 3829, 3830, 36, + 1701, 5668, 2003, 1591, 2318, 1592, 5485, 2268, 2878, 1240, + 1241, 4480, 5421, 1593, 2004, 2997, 2319, 39, 2998, 5891, + 2386, 3554, 1591, 1934, 1592, 1589, 1590, 3584, 1220, 5887, + 1593, 1882, 896, 2999, 4480, 3516, 4509, 2945, 4480, 2587, + 751, 751, 734, 1299, 3057, 4480, 1273, 2281, 1284, 4893, + 5326, 751, 1229, 1589, 1590, 2714, 2714, 2714, 2714, 2970, + 2971, 2828, 1657, 736, 3001, 1242, 751, 2889, 1591, 1593, + 1592, 3382, 3741, 1882, 2005, 766, 2005, 5560, 3002, 1589, + 1590, 2282, 1221, 2269, 1591, 1285, 1592, 5543, 154, 4026, + 896, 896, 1591, 1883, 1592, 5642, 2994, 4027, 5583, 1935, + 3011, 1131, -3321, 3986, 591, 1593, 4314, 685, 1589, 1590, + 1593, 5199, 2351, 1589, 1590, 3987, 591, 4749, 3013, 4722, + 1136, 4723, 4187, 1137, 1593, 1981, 3018, 5776, 5288, 2587, + 2859, 5289, 2830, 5700, 5701, 1883, 2865, 155, 1138, 2954, + 4475, 4664, 4809, 1593, 4811, 3150, -3321, 4814, 3742, 2055, + 4038, 3165, 734, 4820, 4821, 4484, 2283, 4653, 4724, 4315, + 3038, 4711, 3003, 1589, 1590, 4058, 2494, 1509, 734, 1139, + 4834, 1761, 3054, 1589, 1590, 751, 3060, 734, 2598, 4177, + 2955, 1432, 3299, 1141, 3735, 686, 4725, 5461, 1596, 1593, + 3525, 3174, 3027, 4075, 1716, 2592, 1591, 776, 1592, 5462, + 734, 5544, 783, 1597, 3012, 1593, 3526, 4337, 4712, 4336, + 667, 2068, 3227, 1593, 4371, 1981, 3016, 698, 1870, 4800, + 2495, 4478, 1754, 734, 1591, 898, 1592, 5290, 1426, 1666, + 898, 4799, 1598, 5751, -2182, -2182, 1433, 2284, 1599, 5073, + 1286, 1644, 1178, 899, 2833, 5203, 5074, 4893, 787, 4893, + 1591, 2547, 1592, 591, 2713, 2713, 2713, 2713, 2397, 734, + 2006, 5752, 2320, 3139, 5763, 3749, 5762, 788, 591, 799, + 1884, 1885, 1600, 897, 1755, -2357, 3149, 3370, 4713, 1591, + 1886, 1592, 3154, 805, 1591, 856, 1592, 2672, 4645, 4076, + 5872, 5873, 3293, 4200, 4666, 699, 2545, 1982, 840, 4667, + 3313, 4955, 2911, 4668, 1434, 4794, 2841, 4796, 5075, 5338, + 5291, 5340, 1884, 1885, 3228, 5753, 2055, 1593, 1589, 1590, + 3181, 4726, 1886, 1078, 3085, 3086, 5452, 3185, 3186, 1589, + 1590, 3597, 1178, -1356, 1591, 2055, 1592, 4450, 5756, 5757, + 3749, 3749, 4672, 1717, 1591, 1593, 1592, 1589, 1590, -2358, + 751, 3034, 1342, 3130, 2055, 734, 1098, 4727, 4544, 4545, + 5407, 1606, 3544, 1589, 1590, 2959, 2055, 3050, 3749, 1360, + 4294, 1593, 1670, 1718, 1670, 3844, 3062, 2842, 2125, 5795, + 3470, 4509, 4669, 4591, 4138, 1435, 4560, 1982, 3598, 5326, + 3299, 3299, 639, 3000, 5501, 3471, 3619, 2128, 1106, -3342, + 1593, 3087, 3294, 1589, 1590, 1593, 1195, 1929, 1929, 1929, + 1929, 4587, 4485, 3941, 3108, 3301, 2146, 3303, 2848, 4078, + 1870, 898, 4753, 1589, 1590, 1200, 5669, 1217, 2157, 751, + 1208, 751, 751, 4776, 3341, 1713, 4622, 1617, 1618, 1619, + 1620, 1621, 1622, 3229, 2849, 751, 4476, 4419, 2714, 4534, + 2853, 1589, 1590, 1609, 4420, 1593, 1589, 1590, 3133, 1210, + 1589, 1590, 5830, 5830, 4477, 1593, 3342, 1490, 4180, 4617, + 1157, 1610, 3040, 1713, 896, 2854, 2790, 2123, 4471, 1871, + 4473, 1589, 1590, 3041, 1887, 1226, 2684, 1507, 4491, 1591, + 3612, 1592, 2855, 1233, 1512, 1513, 4467, 1589, 1590, -3321, + 1591, 2927, 1592, 751, 4500, 751, 898, 5858, 2928, 1589, + 1590, 899, 1589, 1590, 4506, 2788, 3230, 1871, 1591, 5003, + 1592, -2330, 3343, 1589, 1590, 4975, 1887, 1612, 1613, 899, + 1235, 2861, 4518, 1249, 1591, 1253, 1592, 4535, 1589, 1590, + 1100, 897, 2397, -3321, 4671, 2573, 1589, 1590, 1255, 1110, + 3344, 1827, 3368, 899, 1189, 898, 3295, 1832, 1833, 897, + 3296, 899, 899, 899, 5914, 4536, 650, 2862, 1589, 1590, + 656, 5915, 2866, 4827, 1591, 2422, 1592, 2587, 1259, 2423, + 3613, 1213, 3366, 897, 1589, 1590, 2867, 158, 159, 1806, + 2574, 897, 897, 897, 1591, 790, 1592, 5121, 1292, 4594, + 1455, 1456, 1457, 4596, 1261, 2869, 808, -1058, 1262, 4112, + 1593, 3045, 1263, 2316, 2316, 2316, 2316, 1589, 1590, 3468, + 4496, 1593, 1591, 2927, 1592, 5326, 4635, 1591, 4634, 1592, + 4790, 1591, 2575, 1592, 1375, 1299, 1299, 1299, 1299, 1593, + 1315, 1589, 1590, 3231, 4859, 663, 664, 2713, 2994, 3345, + 5547, 2876, 1591, 5554, 1592, 1593, 4520, 4521, 1322, 3506, + 3511, 1511, 1323, 1981, 4537, 158, 159, 2890, 1591, 1324, + 1592, 4636, 1589, 1590, 761, 4021, 1328, 5417, 4328, 4534, + 1591, 1332, 1592, 1591, 1336, 1592, 1343, 734, 2733, 1888, + 1376, 1890, 3548, 1377, 1591, 1593, 1592, 3551, -2397, -2397, + 751, 751, 2714, 3232, 1344, 4235, 1370, -614, 1178, 1591, + 3156, 1592, 751, 1354, 3003, 1593, 1374, 1591, 1606, 1592, + 1378, 1372, 1589, 1590, 1380, 1924, 1925, 1299, 1379, 1382, + 1727, 1888, 1889, 1890, 1891, 663, 664, 1589, 1590, 1591, + 1426, 1592, 896, 1593, -614, 1383, 1134, 1385, 1593, 1589, + 1590, 3707, 1593, 2576, 5418, 1591, 1391, 1592, 80, 1962, + 896, -616, 5537, 1394, 5538, 2577, 1395, 4535, 2829, 1775, + 5013, 5014, 4646, 1593, 2835, 2836, 2846, 1775, 5419, 4024, + 1178, 2271, 1670, 3364, 896, 2218, 1396, 1716, 1591, 1593, + 1592, 1397, 896, 896, 896, 4539, 1998, 1999, 4309, 5547, + 2000, 1593, 1399, 2684, 1593, -616, 5554, 4025, 1606, 1427, + 1609, 1404, 1591, 3478, 1592, 1593, 4625, 1437, 4803, 1142, + 4336, 1502, 4142, 1443, 2635, 2636, 1436, 2542, 1610, 1549, + 1593, 1606, 3820, 4030, 1444, 1982, 1445, 4478, 1593, 2648, + 1450, 4642, 4643, 1591, 1451, 1592, 5420, 1247, 1248, 1140, + 1251, -1777, 1252, 5542, 1601, 1602, 1603, 4795, 2852, 1775, + 1593, 899, 4034, 734, 734, -1058, 899, 4035, 2578, 591, + 3188, 1452, 1713, 2856, 1775, 1453, 1593, 2543, 734, 1589, + 1590, 1454, 751, 1690, 1612, 1613, 3536, 3293, 3378, 2857, + 1775, 897, 1458, 1591, 4537, 1592, 897, 2058, 2059, -614, + 1609, 2713, 3886, 663, 664, 1625, 2069, 1460, 1591, 1593, + 1592, 1870, 751, 751, 2858, 1775, 1871, 4036, 1610, 1461, + 1591, 1627, 1592, 1609, 5543, 1555, 1713, 4037, 2864, 1775, + 1589, 1590, 1462, 1593, 1463, 5417, 2650, 2651, 2126, 2579, + 2129, 1610, 700, 701, 1464, 3000, 5254, 1465, 3765, 3766, + 3767, 3768, 1466, 3770, 3771, 1467, 2143, 2144, 5421, 2147, + 3321, 3322, 1468, 751, 1593, 3373, 3374, 2153, 2154, 3701, + 1871, 2158, 3623, 3624, 1612, 1613, 3772, 3773, 3837, 702, + 4903, 1929, 1469, 4486, 1470, 1915, 4490, 4903, 1471, 2545, + 1589, 1590, 5016, 4494, 4049, 2836, 5033, 1612, 1613, 4497, + 3852, 3853, 1472, 3855, 1475, 3857, 3858, 3859, 3860, 3861, + 3862, 3863, 5418, 3865, 1593, 2396, 3870, 5195, 898, 1485, + 3873, 703, 5322, 4052, 1775, 4059, 4060, 4066, 1775, 1593, + 4070, 4071, 5547, 5554, 1691, 4949, 1486, 5328, 5544, 1487, + 3646, 1593, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, + 1591, 1488, 1592, 1589, 1590, 2765, 1491, 899, 1492, 2705, + 1626, 1728, 3657, 3658, 1812, 751, 751, 751, 751, 4146, + 4147, 734, 4039, 4455, 4456, 2820, 1493, 3705, 1494, 4981, + 1495, 5301, 1628, 4048, 4152, 4153, 1605, 897, 3922, 4409, + 2733, 1629, 896, 5822, 1692, 3386, 1496, 896, 1589, 1590, + 1242, 4054, 1497, 1693, 5420, 1729, 5006, 1730, 4634, 1498, + 3387, 4103, 2929, 1499, 4561, 1500, 4964, 4057, 1631, 4474, + 4532, 1501, 4489, 1633, 4422, 4423, 4562, 1503, 5214, 4493, + 1504, 5852, 4890, 5130, 3769, 1757, 3388, 4551, 3089, 5856, + 1606, 4884, 899, 1505, 4501, 1694, 4563, -860, 3389, 5498, + 4901, 4636, 3537, 1506, 2597, 5010, -2572, 4063, 2914, 4906, + 1508, 1591, 1514, 1592, 1446, 4908, 898, 898, 3390, 5871, + 5432, 1593, 897, 3090, 1515, 4920, 1653, 4064, 3848, 4564, + 3850, 3851, 1516, 4927, 4928, 1517, 3856, 4606, 1775, 1635, + 5138, 899, 4864, 4865, 3864, 1607, 1518, 5433, 704, 3871, + 1731, 3391, 4866, 4867, 4079, 4065, 1519, 1608, 4868, 4869, + 4073, 2316, 2316, 5422, 4074, 705, 5421, 4939, 4942, 4956, + 1775, 897, 1520, 4607, 1591, 1521, 1592, 2072, 4973, 4974, + 4983, 1775, 1609, 1299, 1299, 4077, 4997, 4998, 663, 664, + 706, 1524, -2330, 1525, 1606, 158, 159, 5037, 5038, 1732, + 1610, 4081, 5041, 4793, 1526, 1695, 1589, 1590, 4128, 2073, + 5167, 5168, 1131, 4094, 4565, -1058, 4954, 1527, 1606, 1591, + 3913, 1592, 751, 1528, 2074, 2218, 4803, 4960, 4336, 707, + 1696, 1136, 1593, 1611, 1137, 5169, 5168, 1529, 896, 5172, + 5173, 2959, 4961, 751, 751, 751, 751, 1733, 2587, 1138, + 4962, 5246, 5247, 663, 664, 1530, 1612, 1613, 5434, 1533, + 4167, 4168, 5435, 1534, 3150, 2075, 1535, 713, 5250, 5247, + 4330, 1636, 4971, 2804, 1536, 4827, 1589, 1590, 5505, 1537, + 1139, 1538, 1589, 1590, 4566, 5417, 1609, 1652, 4972, 5331, + 5332, 3432, 2597, 2076, 1141, 1593, 5362, 2598, 1539, 4798, + 5348, 5281, 2018, 1540, 1610, 1541, 3392, 4342, 5384, 4153, + 1609, 4204, 5397, 714, 5623, 4211, 5400, 1637, 3393, 5396, + 5247, 4976, -3296, 896, 1542, 4365, 5622, 4365, 1610, 5561, + 5562, 1543, -1088, 2660, 1981, 751, 1654, 1734, 5632, 5633, + 1593, 1589, 1590, 734, 1655, 4977, 1544, 734, 1545, 1615, + 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1546, 1735, 1547, + 1612, 1613, 5418, 5643, 5644, 1548, 2396, 2396, 5503, 5504, + 1550, 4266, 896, 1551, 4288, 1660, 5355, 1591, 1426, 1592, + 4366, 1552, 4366, 2597, 1612, 1613, 5419, 591, 5662, 4153, + 1589, 1590, 2077, 5663, 4153, 3149, 4312, 4567, 3283, 4568, + 1553, 5618, 5619, 3065, 1554, 3065, 4813, 3826, 3827, 1556, + 4326, 3828, 3829, 3830, 5436, 2573, 1557, 4325, 3066, 3394, + 3066, 3395, 663, 664, 2660, -2600, 5404, 1558, 1697, 3091, + 5667, 3773, 5716, 4998, 158, 159, 2587, 2209, 2210, 1615, + 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1591, 4448, 1592, + 4748, 1178, -2571, 1591, 5420, 1592, 5777, 5247, 715, 1559, + 2574, 1560, 5541, 1616, 1617, 1618, 1619, 1620, 1621, 1622, + 1561, -2330, 5779, 5247, 3523, 3434, 3092, 1562, -2148, 5780, + 5247, 4367, 5798, 5799, 1565, 2598, 4413, 4298, -833, 3283, + -833, 608, 4900, 1606, 716, 5807, 5808, 1566, 1593, 1569, + 4288, 1688, 2575, 1698, 1570, 5580, 1982, 1571, 1589, 1590, + 4050, 1699, 1591, 1572, 1592, 4916, 2661, 1573, 4805, 4919, + 5432, 4884, 1981, 5814, 5247, 1574, 4925, 2587, 2794, 1575, + 2761, 2797, 1576, 4878, 5437, 1632, 3385, 5719, 140, 3093, + 1685, 3215, 4237, 5815, 5247, -2597, 4241, 5433, 4031, 2812, + 4569, 4570, -2595, 5432, 1606, -2599, 609, 1705, 1589, 1590, + 2826, 1591, -2594, 1592, -2598, 4440, 5421, -2592, 1593, 5823, + 5247, 4443, -2596, 3396, 1593, 3361, 2598, 1689, 3362, 898, + 5433, 5840, 4998, 3094, 1708, 1609, 5002, 5853, 5247, 751, + 5870, 4679, 1713, 3363, 1723, 158, 159, 5362, 5903, 5904, + 2072, 1724, 1725, 1610, 899, 1726, 5339, 2661, 4882, 1746, + 4885, 1763, 1747, 1981, 1752, -1058, 141, 1775, 1778, 3643, + 1813, 2635, 2636, 2576, 3365, 1819, 1821, 4899, 158, 159, + 1830, 1831, 2073, 1593, 897, 2577, 2648, 4904, 3367, 1178, + 1835, 5793, 610, 3436, 1836, 5636, 1609, 3743, -1058, 4909, + 1838, 1840, 1844, 663, 664, 4353, 898, 4353, 5434, 1612, + 1613, 1859, 5435, 1860, 1610, 4926, 1862, 1896, 919, 1900, + 736, 5534, 1589, 1590, 4053, 4531, 4172, 1902, 1907, 1591, + 3397, 1592, 1593, 1614, 1913, 5417, 663, 664, 3744, 1916, + 1918, 5434, 1921, 3517, 1982, 5435, 1922, 1926, 1938, 1947, + 926, 1964, 4405, 4406, 4407, 1970, 4571, -835, 4173, 2660, + 4351, 611, 1972, 1976, 1974, 1977, 3745, 5609, 5417, 1985, + 1612, 1613, 4433, 4436, 1426, 4439, 1991, 1992, 3398, 1591, + 1178, 1592, 5438, 2650, 2651, 1994, 1995, 1996, 2578, 3095, + 3096, 3097, 2017, 2020, 2025, 2034, 5358, 2036, 5481, 2037, + 5480, 3399, 899, 899, 2038, 2041, 938, 2042, 2045, 2044, + 2047, 1716, 5418, 2054, 4174, -835, 2055, 4590, 5645, 714, + 2064, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 2071, + 2082, 2086, 897, 897, 950, 1982, 5419, 2111, 3065, 2122, + 2123, 2124, 4175, 5482, 2133, 5418, 2137, 4605, 2141, 2142, + 1593, 2162, 2194, 3066, 5533, 2200, 2204, 2214, 2225, 2579, + 4326, 4710, 2587, 39, 5436, 3746, 2248, 4325, 2229, 5419, + 3880, 5422, 2255, 4128, 2277, 2278, 2304, 2303, 5521, 2305, + -3040, 2310, 2313, 2314, 3548, 896, 4632, 2325, 2322, 2329, + 4639, 751, 751, 1591, 2359, 1592, 3039, 5436, 717, 2361, + 1593, 2362, 2382, 2406, 5420, 2397, 2407, 1134, 1657, 5594, + 4777, 2408, -2148, 612, 2409, 1670, -166, 2411, 4368, 2412, + 4368, 2413, 2434, -835, 2435, 5636, 2438, 1617, 1618, 1619, + 1620, 1621, 1622, 971, 2441, 2218, 2439, 5420, 613, 2448, + 2440, 4176, 2661, 4677, 5601, 5602, 2449, 5604, 1981, 1615, + 1616, 1617, 1618, 1619, 1620, 1621, 1622, 5745, 2453, 2454, + 618, 5061, 2455, 5626, 715, 5625, 5065, 5066, 2456, 2457, + 3040, 2461, 2458, 2460, 2467, 4816, 3039, 4686, 2468, 5277, + 1142, 3041, 2488, 2499, 2503, 2099, 614, 718, 3042, 2506, + 2532, 5152, 751, 2541, 1869, 4706, 4707, 4585, 2554, 2662, + -835, 5617, 2560, 2561, 2572, 4720, 4288, 734, 5627, 4736, + 1140, -2583, 2611, 2595, 1593, 2619, 5421, 3043, 2618, 4598, + 2621, 3361, 2622, 2624, 3362, 4369, 2625, 4369, 2657, 2674, + 4196, 4760, 2677, 896, 896, 2678, 2686, 898, 4759, 3363, + 5803, 1871, 2692, 2695, 2702, 2727, 751, 2708, 1426, 5421, + 3040, 2739, 898, 2740, 2100, 2742, 2757, 2759, 2276, 2760, + 4789, 3041, 2762, 5253, 2771, 1178, 2772, 4788, 3042, 2773, + 3365, 3039, 2776, 2778, 2777, 2788, 2791, 5346, 3044, 2795, + 2905, -70, 5897, 5827, 3367, 4810, -1571, 1670, 4288, 2798, + 4353, 5713, 2847, 5714, 5715, 2808, 5907, 3043, 4824, 5626, + 4677, 5625, 5897, 2809, 2663, 5579, 4832, 2850, 5907, 3045, + 4823, 2813, 2218, 4835, 2821, 4836, 4837, 734, 4831, 2101, + 1982, 2102, 615, 4677, 5206, 2822, 2103, 902, 2823, 2827, + 4677, 2851, 5522, 2860, 2877, 4288, 4197, 2870, 2874, 5523, + 616, 3190, 2875, 2881, 5627, 3040, 5722, 4846, 2882, 5803, + 2910, 1622, 2920, 2924, 5524, 591, 3041, 2926, 3044, -1747, + 4858, 2933, 2940, 3042, 2946, 1531, 919, 2960, 1563, 4697, + 4699, 4701, 1567, 2961, 2950, 4704, 4705, 2963, 3039, -2330, + 4709, 617, 5438, 4715, 618, 2964, 4719, 2974, 2975, 3045, + 2104, 2981, 3043, 4730, 2982, 924, 2985, 2986, 926, 4343, + 4344, 2987, 3019, 4345, 4346, 5019, 4734, 2988, 2989, 4347, + 4348, 619, 2990, 930, 931, 5438, 3010, 5478, 751, 620, + 3021, 3026, 3023, 5682, 1615, 1616, 1617, 1618, 1619, 1620, + 1621, 1622, 3029, 2105, 3048, 3049, 3075, 3109, 2694, 3111, + 3112, 3115, 3126, 3114, 3127, 3378, 4914, 3142, 3152, 3153, + 3158, 3161, 3040, 3044, 938, 4854, -2194, 898, 3168, 902, + 3177, 3178, 3179, 3041, 3180, 899, 3182, 3183, 4884, 3184, + 3042, 5422, 3236, 944, 5257, 3238, 3241, 3245, 1807, 3247, + 3250, 949, 950, 5525, 3045, 1615, 1616, 1617, 1618, 1619, + 1620, 1621, 1622, 3274, 5042, 897, 5526, 3251, 919, 3043, + 3252, 3253, 3254, 4354, 5422, 3255, 2397, 2397, 3256, -1976, + 5728, -835, 5023, 3275, 4351, 5527, 4829, 3257, 3258, 3282, + 3259, 3260, 2106, 3261, 3368, 3262, 898, 924, 3263, 3264, + 926, 3191, 3265, 2107, 3302, 3266, 3267, 3268, 3305, 3269, + 3320, 1957, 899, 3270, 3271, 930, 931, -1976, 3308, 3272, + -1976, 3273, 3324, 4128, 3366, 898, 3328, 3329, 3330, -1976, + 3044, 2218, 3338, 3339, 5879, 3331, -1976, 3326, 3346, -835, + -1976, 968, 897, 714, 3327, 3334, 3340, 3192, 3371, 3407, + 970, 971, 972, -1976, 3408, 3409, 938, -1976, 2928, -1976, + -1785, 3045, 3065, 3420, -1976, 3466, 3421, 3430, 3440, 3479, + 3467, -1976, 3481, 3502, -1976, 944, 3482, 3066, 3512, -1976, + 4355, 3513, 3529, 949, 950, 3519, 4211, 3521, 3520, 1670, + 2934, 3531, 3535, 3549, 137, 751, 3552, 5046, 5046, 3556, + -1976, 3557, 3558, 3565, 1589, 1590, 5048, 3559, 1178, 3566, + 2072, 2344, 2343, -1976, 3573, 2733, 3593, 3578, -1976, 3589, + 2422, 3608, 5050, 5528, 3609, 4933, 3610, 3625, 3193, 3628, + 898, 3630, 3629, 3635, 5532, 4413, 3636, -1976, 3647, 3648, + 4352, 3650, 2073, 3656, 3708, 3709, 4288, -835, 2088, 2089, + 2090, 2091, 5145, 734, 3714, 5064, 138, 3743, 3718, 3719, + 5070, -1976, 158, 159, 5207, 898, 896, 3725, 3728, 3821, + -1976, 3727, 5208, 968, 3739, 5094, 3732, 5112, 3740, 3822, + 5114, 3823, 970, 971, 972, 5097, 3835, 3839, 715, 3846, + 3194, 3847, -1976, 3849, 898, 3878, 3889, 3884, 3744, 5113, + 3893, 2092, 2093, 2094, 2088, 2089, 2090, 2091, 3195, 3196, + 2687, 3901, -1976, 3197, 3198, 3199, 4288, 4677, 4288, -1976, + 751, 4288, 3895, 4677, -835, 3364, 3745, 4288, 4288, 3902, + 3903, 4677, -1976, 3910, -1976, 3915, 3985, -1976, 3988, 3992, + 3989, 4288, 4677, 896, 4677, 139, 3996, 4000, 4004, 4007, + 5137, 5911, 2095, 2096, 4011, 4069, 4014, 2092, 2093, 2094, + 4015, 4016, 4017, 4080, 4082, 4092, 4104, 4093, 5148, 4102, + 5140, 4111, 4116, 4120, 4110, 1591, 4122, 1592, 4129, 4132, + 4133, 3200, 4135, 4136, 4139, 4145, 4149, 4148, 5532, 4154, + 4155, 5163, -3358, 4166, 4162, 4163, 5207, 4183, 4191, 4195, + 4198, 4201, 4203, 5185, 5208, 4205, 4206, 4213, 2095, 2096, + 4215, 4231, 4232, 4233, 4353, 4234, 4236, 4240, 4247, 3789, + 4296, 4253, 4301, 2097, 4317, 3746, 4313, 4318, 4321, 3201, + 4339, 4353, 4361, 4363, 4364, 4374, 4375, 5186, 4382, 4383, + 4384, 5094, 4385, 899, 4386, 4387, 4389, 4390, 4391, 4392, + 4393, 4400, 5062, 4418, 4426, 4445, 4449, 4460, 899, 4446, + 4458, 4472, 4467, 4492, 4499, 140, 4777, 4514, 4526, 4528, + 4529, 4540, 4546, 897, 4543, 4547, 4554, 2660, 4216, 2097, + 4555, 4592, 2886, 816, 4087, 4217, 4601, -1902, 897, 4610, + 3368, 4608, 4612, 4613, 2286, 4615, 1593, 2098, 4619, 4309, + 4616, 4218, 4624, 5222, 4679, 4678, 4657, 4658, 4683, 4684, + 4688, 4219, 4220, 4221, 4590, 4690, 4691, 817, 4735, 1780, + 3366, 4222, 4739, 4737, -2330, 4738, 4746, 4766, 4767, 4769, + 4753, -2098, 4792, 3551, 4771, 4806, 4818, 4807, 4793, 819, + 4797, 4815, 4677, 141, 4817, 4819, 4847, 4848, 4849, 820, + 5046, 4852, 4855, 2098, 4862, 4863, 734, 4870, 4856, 5252, + 4871, 4433, 4873, 4436, 4881, 4439, -3358, 5908, 5259, 4413, + 4895, 4897, 4288, 4288, 821, 4519, 5209, 4907, 4921, 5210, + 2587, 4934, 4910, 4937, 4938, 4950, 5094, 4939, 5211, 2099, + 822, 142, 4940, 3175, 3176, 823, 4942, 4945, 4946, 4957, + 4959, 4958, 4965, 4967, 4970, 4979, 4984, 4980, 4992, 4999, + 3187, 158, 159, 2276, -1872, -1877, 5007, 5028, 824, 5026, + 3213, 3214, 5035, 5039, 4288, 5034, 4933, 4354, 4288, 5043, + 5058, 5071, 5059, 893, 2218, 1075, 5049, 5088, 5051, 143, + 5448, 4677, 5052, 5098, 5057, 2099, 5099, 893, 5103, 5105, + 5104, 5106, 1870, 1132, 1187, 5123, 5127, 5131, 2100, 1075, + 2661, 4223, 5136, 899, 5139, 3833, 1981, 5141, 5161, 734, + 5165, 5162, 5164, 1075, 896, 4224, 5202, 5175, 5176, 5188, + 4914, 5189, 5343, 3276, 3277, 3278, 3279, 825, 5217, 896, + 5191, 5190, 5193, 897, 5197, 5219, 5198, 5201, 5205, 5228, + 5230, 5232, 5236, 5237, 5532, 826, 5243, 5244, 5209, 5262, + 5249, 5210, 5260, 827, 2100, 4740, 5274, 2662, 5487, 5273, + 5359, 3364, 5271, 2101, 5276, 2102, 5278, 5281, 5280, 5294, + 2103, 2273, 899, 5302, 4355, 5304, 5323, 5314, 5329, 5336, + 5334, 5344, 5351, 5347, 5356, 828, 5357, 5363, 5364, 5365, + 5367, -1027, 5393, -1027, 5046, 829, 830, 5368, 5381, 5399, + 4225, 899, 897, 5394, 4288, 5383, 5395, 5409, 5401, 5410, + -1976, 3666, 5402, 5454, 5456, 4226, 5457, 1075, 5444, 2101, + 1907, 2102, 5458, 1178, 1808, 5459, 2103, 5469, 5094, 144, + 5470, 897, 5476, 145, 2104, 5484, 5499, 5507, 5516, 5517, + -1976, -1976, 5551, 5566, -1976, -1976, 5472, 5568, 2271, 4288, + 5520, 4227, 5570, 5572, 5571, 5574, 5576, 5577, 5185, 5578, + 5590, 734, 2663, 5592, 5593, 4228, 5591, 5603, 158, 159, + 5599, 5605, 5606, 3659, 146, 5613, 5615, 2105, 1982, 5492, + 5496, 5620, 5630, 5629, 5631, 898, 5661, 1075, 1084, 5640, + 2104, 5675, 5186, 5650, 5646, 1085, 5653, 5658, 893, 5664, + 893, 893, 893, 5685, -2146, 5686, 899, 893, 5337, 893, + 5703, 1086, -3358, 3280, 5724, 5515, 5687, 5725, 5747, 5693, + 5704, 1087, 1088, 1089, 5717, 5727, 5732, 5712, 3551, 3786, + 3551, 1090, 3791, 2105, 896, 5781, 897, 2008, 5770, 5787, + 1075, 899, 2009, 1781, 5782, 1075, 5788, 5810, 3661, 5556, + 5789, 5811, 2010, 5812, 5819, 5820, 5813, 1782, 5821, 1783, + 5841, 5854, 5855, 5864, 5839, 5875, 2106, 5844, 5857, 5867, + 899, 897, 5876, 5880, 5573, 1075, 5869, 2107, 5878, 751, + 5884, 5883, 5898, 5910, 1428, 1075, 1814, 3562, 2451, 1784, + 3872, 5155, 5153, 4212, 2530, 5154, 1742, 3698, 3140, 5540, + 897, 5600, 4349, 896, 1785, 5279, 5598, 5710, 5837, 3662, + 3663, 3664, 5096, 1917, 5187, 5447, 5170, 5342, 5500, 5453, + 5349, 4931, 2106, 3084, 4230, 3991, 2295, 3357, 5455, 3897, + 4879, 1335, 896, 2107, 3665, 3249, 4533, 1786, 2750, 2753, + 2751, 1961, 2752, 2609, 2218, 5557, 5638, 2691, 4396, 5272, + 5403, 3805, 5129, 4618, 5218, 1787, 4623, 4991, 2938, 3666, + 5473, 5145, 5797, 5731, 5223, 5866, 5369, 5848, 5868, 5660, + 4273, 1091, 4630, 5746, 1075, 1075, 1075, 1075, 5005, 4394, + 3118, 4933, 4842, 5809, 5446, 1092, 1075, 3667, 5056, 3668, + 4399, 5831, 5702, 5706, 5611, 5069, 4573, 5676, 4488, 4525, + 5708, 5729, 3737, 4891, 4595, 4084, -1027, 4593, 3669, 5689, + 2011, 4597, 5851, 721, 722, 5046, 5824, 5046, 5046, 5825, + 5406, 5759, 5681, 5684, 5398, 4905, 5699, 3670, 4397, 4841, + 2500, 2012, 1756, 5698, 3671, 1788, 2013, 896, 3642, 1928, + 3641, 5475, 1789, 893, 734, 5726, 5711, 5308, 3244, 3672, + 2949, 2659, 1790, 3912, 3061, 4459, 4101, 3335, 4338, 3673, + 1899, 3170, 5111, 3722, 5721, 1791, 3313, 2014, 1873, 2558, + 4614, 5483, 896, 3443, 3674, 3441, 2212, 4124, 2274, 2061, + 5496, 3620, 2121, 3614, 4188, 1093, 5017, 4603, 3604, 5836, + 5666, 5515, 5539, 5849, 5036, 5850, 1792, 3509, 2015, 1793, + 2070, 896, 5299, 4319, 751, 5740, 5741, 5298, 5213, 4117, + 5313, 5639, 5204, 5234, 1794, 3155, 4178, 5297, 4311, 3300, + 723, 1094, 5847, 2019, 2308, 3333, 5000, 3763, 4685, 5767, + 4663, 3675, 5794, 5046, 5046, 1095, 5766, 1347, 1191, 2685, + 5046, 3676, 1352, 3031, 1075, 3594, 1798, 2388, 3032, 1183, + 1186, 732, 1865, 3752, 3753, 5251, 3755, 3757, 3078, 5790, + 5242, 4463, 5865, 5460, 5877, 5909, 5912, 5607, 2491, 4189, + 4629, 1510, 3052, 4644, 2218, 3496, 3577, 1144, 3677, 2904, + 3006, 3571, 1145, 3572, 2736, 2321, 2508, 1117, 2016, 4404, + 1651, 3678, 3553, 5804, 3898, 3235, 5805, 751, 3649, 5335, + 4414, 1824, 4185, 1225, 5900, 1780, 5018, 4654, 3606, 725, + 5902, 726, 727, 5913, 5723, 3136, 0, 5046, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3679, 0, 0, 0, 0, 5838, 3680, 0, 0, + 0, 0, 0, 5709, 0, 0, 3879, 0, 0, 0, + 0, 0, 0, 751, 0, 0, 0, 0, 0, 4211, + 4211, 0, 0, 0, 0, 0, 0, 1075, 0, 0, + 1075, 893, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5863, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3681, 158, 159, 0, + 0, 0, 0, 3682, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5761, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2218, 0, 3683, 0, 751, 0, 0, 0, 0, + 0, 751, 1075, 0, 0, 2218, 0, 0, 3684, 3685, + 0, 2218, 0, 0, 0, 0, 0, 2218, 0, 0, + 0, 3686, 0, 0, 0, 0, 0, 0, 1075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1075, - 3666, 0, 3667, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 893, 893, 1075, 21, -1026, - 1075, 3668, 0, 0, 0, 0, 0, 0, 1075, 1075, - 0, 0, 22, 23, 0, 0, 0, 0, 0, 0, - 3669, 0, 24, 25, 0, 0, 0, 3670, 0, 0, - 0, 0, 0, 0, 26, 27, 28, 29, 0, 30, - 0, 2631, 3671, 0, 31, 0, 0, 0, 0, 0, - 0, 0, 3672, 0, 32, 0, 0, 0, 33, 34, - 0, 0, 0, 0, 0, 0, 0, 3673, 0, 0, - 0, 2632, 2633, 0, 2634, 2635, 2636, 2637, 2638, 0, - 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 0, 2647, - 2648, 2649, 0, 0, 1075, 1075, 1075, 0, 35, 0, + 1075, 0, 0, 0, 0, 1075, 0, 0, 0, 1075, + 1075, 1075, 0, 0, 0, 0, 0, 0, 0, 0, + 1075, 1075, 0, 0, 0, 0, 1075, 0, 1075, 1075, + 1075, 1075, 1075, 0, 1075, 0, 0, 0, 0, 0, + 0, 899, 0, 4292, 0, 1075, 0, 1075, 0, 0, + 1075, 1075, 0, 1075, 1075, 1075, 0, 1075, 1075, 1075, + 0, 0, 0, 0, 1075, 0, 0, 1075, 631, 0, + 0, 897, 0, 0, 0, 1075, 1075, 0, 1075, 1075, + 1075, 0, 0, 1075, 1075, 1075, 1075, 1075, 1075, 1075, + 0, 1075, 1075, 1075, 1075, 1075, 1075, 0, 1075, 1075, + 0, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 0, 0, + 1075, 1075, 1075, 1075, 0, 1075, 1075, 1075, 0, 1075, + 0, 1075, 0, 1075, 0, 0, 0, 1075, 1075, 1075, + 0, 0, 1075, 1075, 1075, 1075, 1075, 0, 1075, 0, + 0, 0, 0, 0, 0, 1075, 0, 0, 0, 0, + 0, 0, 1075, 1075, 1075, 1075, 0, 0, 0, 0, + 0, 0, 0, 1075, 1075, 1075, 0, 1075, 1075, 1075, + 1075, 1075, 1075, 0, 1075, 1075, 1075, 1075, 1075, 1075, + 1075, 1075, 0, 0, 0, 1075, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1781, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1782, 0, 1783, 0, 0, 1075, 0, + 0, 0, 0, 1075, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1075, 4242, 4243, 4244, 4245, 4246, 0, + 4248, 4249, 4250, 4251, 4252, 1784, 4254, 4255, 4256, 4257, + 4258, 4259, 4260, 4261, 4262, 4263, 0, 0, 4267, 4268, + 1785, 0, 896, 0, 3779, 0, 3780, 3781, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3782, 0, 3783, 1786, 1807, 0, 0, 0, 3784, 0, + 0, 1075, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1787, 0, 0, 0, 0, 0, 0, 0, 0, + 1907, 0, 0, 0, 1075, -1976, 0, 0, 0, 2628, + 0, 0, 3785, 0, 0, 0, 0, 0, 0, -1169, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2469, 4373, + 0, 0, 0, -1976, 4381, 0, -1976, 0, 158, 159, + 2629, 0, 0, 3659, 0, -1976, 0, 0, 0, 0, + 0, 0, -1976, 0, 0, 0, -1976, 0, 0, 0, + 0, 1788, 0, 0, 0, 0, -1976, 0, 1789, -1976, + 0, 3786, 0, -1976, 0, -1976, 0, 2630, 1790, 0, + -1976, 0, 0, 0, 0, 0, 0, -1976, 0, 0, + -1976, 1791, 0, 0, 0, -1976, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3787, 0, 0, 0, + 3788, 0, 0, 0, 0, 0, -1976, 0, 3661, 0, + 0, 3789, 1792, 0, 0, 1793, 0, 0, 0, -1976, + 0, 0, 0, 0, -1976, 0, 0, 0, 0, 0, + 1794, 0, 0, 3790, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -1976, 0, 0, 632, 0, 0, 0, + 0, 0, 0, 0, 0, 893, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -1976, 0, 3662, + 3663, 3664, 0, 0, 0, 0, -1976, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3665, 0, 0, 0, -1976, 0, + 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -1976, 3666, + 0, 0, 0, 0, -1976, -1976, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -1976, 3791, + -1976, 0, 1075, -1976, 0, 0, 0, 3667, 0, 3668, + 0, 1907, 0, 0, 0, 0, 0, 0, 893, 893, + 1075, 0, 0, 1075, 0, 0, 0, 0, 3669, 0, + -738, 1075, 1075, 0, 0, 3792, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3670, 0, 0, + 0, 0, 0, 0, 3671, 0, 0, 0, 0, 158, + 159, 0, 0, 0, 3659, 0, 0, 0, 0, 3672, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3673, + 0, 0, 0, 3793, 3794, 0, 0, 0, 0, 0, + 3795, 0, 0, 0, 3674, 0, 0, 0, 0, 0, + 0, 0, 3796, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1075, 1075, 1075, + 0, 3797, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3661, + 0, 0, 0, 0, 2631, -1976, 0, 3798, 0, 0, + 0, 3675, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3676, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2632, 2633, 0, 2634, 2635, 2636, + 2637, 2638, 0, 2639, 2640, 2641, 2642, 2643, 2644, 2645, + 2646, 0, 2647, 2648, 2649, 1075, 0, 0, 3677, 0, + 3662, 3663, 3664, 0, 0, 0, 0, 0, 0, 0, + 0, 3678, 0, 3799, 0, 0, 0, 1075, 0, 0, + 0, 0, 0, 0, 1075, 3665, 0, 1075, 0, 1075, + 0, 0, 0, 4692, 0, 1075, 0, 1075, 1075, 0, + 0, 0, 0, 0, 0, 0, 4708, 0, 0, 0, + 3666, 3679, 0, 0, 0, 0, 0, 3680, 0, 0, + 0, 1075, 0, 0, 0, 0, 0, 0, 1, 2, + 0, 0, 0, 0, 0, 0, 1075, 0, 3667, 0, + 3668, 0, 0, 0, 3800, 0, 0, 0, 3, 0, + 2650, 2651, 5, 1075, 6, 3801, 3802, 3803, 0, 3669, + 0, 0, 7, 0, 0, 0, 0, 1075, 0, 0, + 0, 0, 0, 0, 0, 0, 3681, 0, 3670, 0, + 0, 2993, 1075, 3682, 8, 3671, 9, 10, 0, 0, + 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, + 3672, 0, 0, 0, 1075, 0, 0, 0, 0, 0, + 3673, 0, 0, 3683, 0, 0, 0, 0, 0, 14, + 0, 0, 0, 0, 0, 3674, 0, 0, 3684, 3685, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 3686, 0, 0, 3804, 0, 0, 0, 0, 0, + 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 18, 893, 19, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1075, 3675, 0, 0, 0, 0, 0, 0, 0, + 1798, 0, 3676, 0, 0, 0, -1976, 0, 21, 0, + 0, 0, 0, 0, 0, 0, 0, -1169, 0, 0, + 1808, 0, 22, 23, 0, 0, 0, 0, 0, 0, + 0, 0, 24, 25, 0, 0, -1976, -1976, 0, 3677, + -1976, -1976, 0, 0, 26, 27, 0, 29, 0, 30, + 0, 0, 3678, 0, 31, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 0, 0, 0, 33, 34, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3679, 0, 0, 0, 1075, 0, 3680, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 36, 0, 37, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 38, 39, 0, - 0, 0, 0, 0, 3674, 40, 0, 0, 0, 0, - 0, 0, 0, 0, 3675, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, + 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 41, 0, 42, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3681, 0, 0, + 0, 1075, 0, 0, 3682, 0, 42, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, - 44, 3676, 1075, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3677, 0, 0, 2650, 2651, 0, - 0, 45, 0, 0, 1075, 0, 0, 0, 0, 0, - 0, 1075, 0, 0, 1075, 0, 1075, 0, 0, 0, - 0, 0, 1075, 0, 1075, 1075, 46, 0, 0, 0, - 0, 0, 0, 0, 3678, 0, 0, -1975, 47, 0, - 3679, 0, 0, 0, 0, 0, 0, 0, 1075, 0, - 0, 1808, 0, 0, 0, 0, 0, 48, 0, 0, - 0, 0, 0, 1075, 0, 0, 0, -1975, -1975, 0, - 49, -1975, -1975, 0, 0, 0, 0, 0, 0, 5210, - 1075, 0, 5211, 50, 0, 0, 51, 0, 0, 52, - 0, 5212, 0, 0, 1075, 0, 0, 0, 0, 3680, - 0, 0, 0, 0, 53, 0, 3681, 0, 2993, 1075, + 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3683, 0, 0, 0, 0, 0, + 0, 45, 0, 0, 0, 0, 0, 0, 0, 3684, + 3685, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1075, 3686, 0, 0, 0, 46, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, + 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 893, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3359, 893, 50, 0, 0, 51, 0, -738, 52, + 893, 893, 893, 0, 0, 0, 0, 1075, 0, 0, + 1075, 0, 0, 0, 53, 0, 0, 0, 0, 1075, + 0, 0, 0, 0, 0, 0, 0, 1075, 0, 1075, + 0, 1075, 0, 1075, 1075, 1075, 1075, 1075, 1075, 0, + 1075, 0, 0, 0, 0, 0, 0, 0, 1075, 0, + 1075, 0, 0, 1075, 1075, 1075, 1075, 0, 0, 1075, + 1075, 0, 0, 1075, 0, 1075, 0, 1075, 0, 1075, + 0, 0, 0, 1075, 0, 0, 0, 0, 0, 0, + 0, 1075, 0, 1075, 0, 1075, 1075, 1075, 1075, 1075, + 0, 0, 1075, 1075, 1075, 0, 1075, 0, 0, 1075, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1075, 0, 0, 0, 0, 1075, 0, 0, + 1075, 0, 1075, 1075, 1075, 0, 0, 1075, 0, 0, + 54, 0, 0, 1075, 0, 0, 0, 0, 1075, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2993, 1075, 0, 0, 0, 0, 55, + 1075, 0, 56, 1075, 0, 0, 0, 0, 0, 1075, + 0, 0, 57, 0, 0, 0, 1075, 0, 1075, 0, + 58, 0, 0, 1075, 0, 0, 0, 0, 0, 0, + 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 60, 0, 0, 61, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, + 1, 2, 0, 0, 1075, 0, 63, 0, 1132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1075, 0, -1026, 0, -1026, 3682, 0, 0, 0, + 3, 0, 4, 0, 5, 0, 6, 0, 0, 0, + 0, 64, 0, 0, 7, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 893, 0, 0, 0, 0, 893, 8, 0, 9, 10, + 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, + 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, + 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 0, 0, 3696, 0, 0, + 0, 0, 0, 18, 0, 19, 0, 0, 0, 0, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1075, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1075, 0, 0, 0, 0, 0, + 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 22, 23, 3750, 0, 0, 0, + 0, 0, 0, 0, 24, 25, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, + 0, 30, 3750, 3750, 0, 0, 31, 0, 0, 0, + 0, 3696, 0, 0, 0, 0, 32, 0, 0, 0, + 33, 34, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 893, 1075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3683, 3684, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1907, 0, 3685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 893, + 35, 0, 36, 0, 37, 0, 0, 3750, 3750, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, + 39, 0, 0, 0, 0, 0, 1075, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1075, 0, - 158, 159, 0, 0, 0, 3658, 0, 1798, 0, 0, - 54, 0, 0, 816, 0, 0, 4292, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3659, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, - 0, 0, 56, 0, 0, 0, 0, 817, 0, 0, - 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, - 58, 0, 0, 0, 0, 0, 0, 0, 0, 819, - 0, 0, 59, 0, 0, 0, 0, 0, 0, 820, - 3660, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 60, 0, 0, 61, 0, 0, 0, 0, 0, - 0, 0, 0, 1075, 821, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 41, 0, 42, 0, + 0, 893, 0, 0, 0, 43, 0, 0, 0, 0, + 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 822, 0, 0, 0, 0, 823, 62, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 0, 3661, 3662, 3663, 0, 0, 0, 0, 824, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 64, 0, 0, 0, 0, 3664, 0, 1075, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3665, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 825, 0, 3666, - 0, 3667, 0, 0, 0, 0, 0, 0, 1075, 0, - 0, 0, 0, 0, 0, 826, 0, 0, -1026, 0, - 3668, 0, 0, 827, 0, 0, 0, 893, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3669, - 0, 0, 0, 0, 0, 893, 3670, 0, 0, 0, - 0, 0, 0, 0, 0, 828, 0, 0, 0, 0, - 0, 3671, 0, 0, 0, 829, 830, 0, 3359, 893, - 0, 3672, 0, 0, 0, 0, 0, 893, 893, 893, - 0, 0, 0, 0, 1075, 0, 3673, 1075, 0, 0, - 0, 0, 0, 0, 0, 0, 1075, 0, 0, 0, - 0, 0, 0, 0, 1075, 0, 1075, 0, 1075, 0, - 1075, 1075, 1075, 1075, 1075, 1075, 0, 1075, 0, 0, - 0, 0, 0, 0, 0, 1075, 0, 1075, 0, 0, - 1075, 1075, 1075, 1075, 0, 0, 1075, 1075, 0, 0, - 1075, 0, 1075, 3674, 1075, 0, 1075, 0, 0, 0, - 1075, 0, 0, 3675, 0, 0, 0, 0, 1075, 0, - 1075, 0, 1075, 1075, 1075, 1075, 1075, 0, 0, 1075, - 1075, 1075, 0, 1075, 0, 0, 1075, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1075, - 3676, 0, 0, 0, 1075, 0, 0, 1075, 0, 1075, - 1075, 1075, 0, 3677, 1075, 0, 0, 2008, 0, 0, - 1075, 0, 2009, 0, 0, 1075, 0, 0, 0, 0, - 0, 0, 2010, 0, 0, 0, 0, 0, 0, 0, - 2993, 1075, 0, 0, 0, 0, 0, 1075, 0, 0, - 1075, 0, 0, 3678, 0, 0, 1075, 0, 0, 3679, - 0, 0, 0, 1075, 0, 1075, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 4, 0, 5, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 7, 0, - 0, 0, 1075, 0, 0, 0, 0, 0, 3680, 0, - 0, 0, 0, 0, 0, 3681, 0, 0, 0, 0, - 8, 0, 9, 10, 0, 0, 0, 0, 0, 0, - 11, 1075, 0, 0, 0, 1132, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3682, 0, 0, 0, 13, - 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, - 3683, 3684, 0, 0, 0, 0, 0, 0, 15, 0, - 0, 0, 0, 3685, 0, 0, 16, 893, 0, 0, - 2011, 0, 893, 0, 0, 0, 0, 17, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 18, 0, 19, - 0, 2012, 0, 0, 20, 0, 2013, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3686, 21, 0, 0, 2014, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 22, 23, - 0, 0, 0, 0, 3695, 0, 0, 0, 24, 25, - 0, 0, 0, 0, 0, 0, 0, 0, 2015, 0, - 26, 27, 28, 29, 0, 30, 0, 1075, 0, 0, - 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32, 1075, 0, 0, 33, 34, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3749, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 35, 0, 36, 0, 37, 3749, - 3749, 0, 0, 0, 0, 0, 0, 0, 3695, 0, - 0, 0, 0, 38, 39, 0, 0, 0, 0, 1, - 2, 40, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 893, 1075, 0, 0, 0, 0, 3, - 0, 0, 0, 5, 0, 6, 0, 0, 0, 0, - 41, 0, 42, 7, 0, 0, 0, 0, 0, 43, - 0, 0, 0, 0, 3749, 3749, 44, 0, 0, 0, - 0, 0, 0, 0, 0, 8, 0, 9, 10, 0, - 0, 0, 0, 1075, 0, 11, 0, 45, 0, 0, + 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, + 0, 1075, 0, 0, 0, 0, 0, 0, 0, 0, + 893, 1075, 0, 0, 1075, 0, 0, 0, 46, 0, + 1907, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 47, 0, 0, 0, 0, 0, 0, 1075, 1075, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1075, 49, 1075, 0, 1075, 0, 1075, 158, 159, + 0, 0, 0, 3659, 0, 50, 0, 0, 51, 0, + 0, 52, 0, 0, 0, 0, 0, 0, 0, 1075, + 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1075, 0, 0, 0, 0, - 14, 0, 46, 0, 0, 0, 0, 0, 893, 0, - 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, - 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 48, 0, 0, 0, 0, 0, 0, - 0, 0, 18, 0, 19, 0, 49, 0, 1075, 0, - 0, 0, 0, 0, 0, 0, 0, 893, 1075, 50, - 0, 1075, 51, 0, 0, 52, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, - 53, 0, 0, 0, 1075, 1075, 0, 0, 0, 0, - 0, 0, 0, 22, 23, 0, 0, 0, 0, 0, - 0, 0, 0, 24, 25, 0, 0, 0, 1075, 0, - 1075, 1907, 1075, 0, 1075, 26, 27, 0, 29, 0, - 30, 0, 0, 0, 0, 31, 0, 0, 0, 0, - -738, 0, 0, 0, 0, 32, 1075, 0, 0, 33, - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1075, 1075, 158, - 159, 0, 0, 0, 3658, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1075, 0, 35, - 0, 36, 1075, 37, 0, 0, 0, 0, 1075, 0, - 0, 0, 0, 0, 0, 0, 54, 0, 1075, 39, - 1075, 0, 0, 0, 0, 0, 40, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 55, 0, 0, 56, 0, - 0, 0, 0, 0, 0, 1075, 1075, 42, 57, 3660, - 0, 0, 0, 0, 43, 0, 58, 0, 0, 0, - 1075, 44, 0, 0, 0, 0, 0, 0, 59, 0, - 0, 0, 0, 0, 0, 0, 0, 1907, 0, 0, - 0, 0, 45, 0, 0, 0, 0, 60, 0, 0, - 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, - 3661, 3662, 3663, 0, 1075, 0, 0, 0, 0, 47, - 0, 0, 62, 0, 0, 158, 159, 0, 0, 0, - 3658, 0, 63, 0, 0, 3664, 0, 0, 48, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 49, 0, 0, 0, 0, 0, 64, 0, 0, - 3665, 0, 0, 0, 50, 0, 0, 51, 0, 0, - 52, 0, 0, 0, 0, 0, 0, 3695, 0, 0, - 0, 0, 3695, 0, 0, 53, 0, 0, 3666, 0, - 3667, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1075, 0, 3660, 0, 0, 0, 3668, + 1075, 1075, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1075, 0, 0, 0, 0, 1075, 0, 0, 0, 0, + 0, 1075, 0, 0, 0, 0, 0, 0, 3661, 0, + 0, 0, 0, 0, 1075, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 2, 0, 5651, 5652, 0, 5654, 5655, + 5656, 5657, 0, 0, 0, 0, 0, 0, 0, 1075, + 1075, 0, 3, 0, 4, 0, 5, 5677, 6, 0, + 0, 0, 0, 0, 1075, 0, 7, 0, 0, 3662, + 3663, 3664, 54, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, + 9, 10, 0, 0, 3665, 0, 0, 0, 11, 0, + 0, 55, 0, 0, 56, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 57, 0, 0, 13, 1075, 3666, + 0, 0, 58, 14, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 59, 0, 15, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 3667, 0, 3668, + 0, 0, 0, 60, 0, 17, 61, 0, 0, 0, + 0, 0, 0, 5739, 0, 18, 5742, 19, 3669, 0, + 0, 0, 20, 0, 5750, 0, 0, 0, 0, 0, + 0, 3696, 0, 0, 0, 0, 3696, 3670, 62, 0, + 0, 0, 0, 0, 3671, 0, 0, 0, 63, 0, + 0, 0, 21, 0, 0, 0, 0, 1075, 0, 3672, + 0, 0, 0, 0, 0, 0, 22, 23, 1075, 3673, + 0, 0, 0, 64, 0, 0, 24, 25, 0, 0, + 0, 0, 0, 0, 3674, 0, 0, 0, 26, 27, + 28, 29, 0, 30, 0, 0, 0, 0, 31, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, + 0, 0, 33, 34, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3675, 0, 0, 0, 0, 3696, 0, 0, 0, + 0, 3676, 35, 0, 36, 0, 37, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 38, 39, 0, 0, 0, 0, 0, 0, 40, + 0, 0, 0, 893, -1027, 0, -1027, 0, 3677, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3678, 0, 0, 0, 0, 0, 0, 41, 0, + 42, 0, 0, 1907, 0, 0, 0, 43, 3750, 0, + 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3679, 0, 0, 0, 45, 0, 3680, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 158, 159, 0, 0, 0, 3659, 0, 0, 0, + 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 47, 0, 0, 0, 0, 0, 3660, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 0, 0, 0, 0, 3681, 0, 0, 0, + 0, 0, 0, 3682, 49, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, + 51, 893, 893, 52, 0, 0, 0, 0, 0, 0, + 0, 3661, 0, 3683, 0, 0, 0, 0, 53, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3684, 3685, + 0, 0, 0, 0, 0, 1075, 1075, 0, 1075, 0, + 0, 3686, 0, 0, 0, 0, 0, 1075, 0, 1075, + 0, 0, 1075, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1075, 0, 1075, 0, 1075, + 0, 1075, 3662, 3663, 3664, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1075, 1075, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3665, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3666, 0, 1075, -1027, 0, -1027, 0, 0, + 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, + 3918, 3919, 0, 0, 0, 0, 3920, 3921, 0, 0, + 3667, 0, 3668, 0, 1907, 0, 3922, 0, 0, 0, + 0, 0, 0, 55, 0, 0, 56, 0, 0, -1027, + 0, 3669, 0, 0, 0, 0, 57, 0, 0, 1132, + 0, 0, 3923, 0, 58, 0, 0, 0, 0, 0, + 3670, 0, 0, 0, 3924, 0, 59, 3671, 0, 0, + 0, 0, 158, 159, 0, 0, 0, 3659, 0, 1075, + 0, 0, 3672, 0, 3925, 60, 0, 0, 61, 0, + 0, 0, 3673, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3674, 0, 0, + 1075, 0, 0, 0, 0, 0, 0, 3926, 0, 0, + 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 3927, 3928, 0, + 3929, 0, 0, 0, 0, 0, 0, 0, 3930, 3931, + 3932, 0, 3661, 0, 0, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 3675, 0, 0, 0, 3933, 0, + 0, 3696, 0, 0, 3676, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1075, 0, 0, 0, 0, 0, 0, 1075, + 0, 0, 3934, 0, 0, 0, 0, 0, 0, 1075, + 0, 3677, 0, 3662, 3663, 3664, 0, 0, 0, 0, + 0, 0, 0, 0, 3678, 0, 0, 3935, 0, 0, + 0, 0, 0, 3936, 0, 0, 0, 0, 3665, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3937, 3938, + 3939, 0, 0, 3666, 3679, 0, 0, 0, 0, 0, + 3680, 0, 0, 0, 3696, 0, 0, 0, 0, 0, + 0, 0, 0, 3940, 3941, 0, 0, 0, 0, 0, + 0, 3667, 0, 3668, 1075, 1075, 0, 0, 0, 0, + 3918, 3919, 0, 0, 0, 0, 3920, 3921, 0, 0, + -1027, 0, 3669, 0, 0, 0, 3922, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3681, + 3942, 3670, 3943, 3944, 893, 0, 3682, 0, 3671, 0, + 0, 0, 3923, 0, 0, 0, 0, 0, 3945, 0, + 0, 0, 0, 3672, 3924, 0, 0, 0, 0, 0, + 0, 0, 0, 3673, 0, 0, 3683, 0, 0, 0, + 0, 0, 0, 0, 3925, 0, 0, 0, 3674, 0, + 0, 3684, 3685, 0, 0, 3946, 0, 3947, 0, 0, + 0, 0, 0, 3359, 3686, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1075, 0, 3926, 0, 0, + 3948, 893, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1075, 0, 3927, 3928, 0, + 3929, 0, 3949, 0, 0, 3675, 0, 0, 3930, 3931, + 3932, 0, 0, 3950, 3951, 3676, 0, 0, 0, 0, + 0, 0, 0, 0, 3687, 0, 0, 0, 3933, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3952, 0, 0, 0, 0, + 0, 0, 3677, 0, 3953, 0, 0, 0, 0, 1075, + 0, 1075, 3934, 0, 0, 3678, 0, 0, 0, 0, 0, 0, 0, 0, 1075, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3669, 0, - 0, 0, 0, 0, 0, 3670, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3935, 0, 0, + 0, 1075, 1075, 3936, 0, 0, 0, 0, 0, 0, + 3954, 3955, 3956, 0, 0, 3679, 0, 0, 3957, 3958, + 1075, 3680, 0, 0, 0, 0, 0, 0, 3937, 3938, + 3939, 0, 0, 0, 3959, 3960, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3940, 3941, 0, 0, 0, 3961, 3962, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3963, 0, 0, + 3681, 0, 0, 0, 0, 0, 0, 3682, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3942, 0, 3943, 3944, 0, 0, 0, 0, 0, 3964, + 0, 0, 0, 0, 0, 0, 0, 3683, 3945, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3684, 3685, 0, 0, 1075, 0, 0, 0, + 0, 0, 0, 0, 0, 3686, 0, 0, 0, 0, + 0, 0, 1075, 0, 0, 3946, 0, 3947, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3965, 0, + 0, 3966, 0, 0, 3967, 0, 0, 0, 0, 0, + 3948, 3968, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3969, 0, 0, + 0, 0, 3949, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3950, 3951, 0, 3970, 0, 0, 0, + 0, 0, 893, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 893, 0, 0, + 0, 0, 0, 0, 0, 3952, 0, 0, 0, 0, + 0, 0, 0, 0, 3953, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3359, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3918, 3919, 0, 0, 0, 0, 3920, 3921, 0, + 0, 0, 0, 0, 0, 0, 0, 3922, 0, 0, + 3954, 3955, 3956, 0, 0, 0, 0, 0, 3957, 3958, + 0, 0, 0, 0, 1075, 0, 0, 0, 0, 0, + 0, 0, 0, 3923, 3959, 3960, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3924, 0, 0, 0, 0, + 0, 0, 0, 1075, 0, 0, 0, 0, 3961, 3962, + 0, 0, 0, 0, 0, 3925, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3963, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3926, 0, + 0, 0, 0, 0, 1077, 0, 0, 0, 0, 5282, + 0, 0, 0, 0, 0, 0, 0, 0, 3927, 3928, + 0, 3929, 0, 0, 3696, 0, 1075, 0, 1077, 3930, + 3931, 3932, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1077, 0, 0, 0, 0, 0, 0, 3933, + 0, 0, 893, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3965, 0, + 0, 3966, 0, 0, 3967, 0, 0, 0, 0, 0, + 0, 5283, 0, 3934, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3969, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3935, 0, + 0, 0, 0, 0, 3936, 0, 3970, 0, 0, 0, + 0, 893, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3937, + 3938, 3939, 0, 0, 0, 0, 1077, 0, 0, 0, + 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1075, 0, 0, 0, 3940, 3941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3671, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3672, 0, 0, 0, 0, 0, 3661, 3662, 3663, 0, - 0, 0, 0, 0, 0, 3673, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3664, 3695, 0, 0, 0, 0, 0, 0, 0, - 0, 54, 0, 0, 0, 0, 0, 3917, 3918, 0, - 0, 0, 0, 3919, 3920, 0, 3665, 0, 0, 0, - 0, 0, 0, 3921, 0, 0, 0, 0, 0, 893, - 55, 0, 3674, 56, 0, 0, 0, 0, 0, 0, - 0, 0, 3675, 57, 3666, 0, 3667, 0, 0, 3922, - 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3923, 0, 59, 3749, 3668, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3676, - 0, 3924, 60, 0, 3669, 61, 0, 0, 0, 0, - 0, 3670, 3677, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3671, 0, 0, 0, - 0, 0, 0, 0, 3925, 0, 3672, 62, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, - 0, 3673, 3678, 0, 3926, 3927, 0, 3928, 3679, 0, - 0, 0, 0, 0, 0, 3929, 3930, 3931, 0, 0, - 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3932, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 893, 893, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3674, 0, - 0, 0, 0, 0, 0, 0, 0, 3680, 3675, 3933, - 0, 0, 0, 0, 3681, 0, 0, 0, 0, 0, - 0, 1075, 1075, 0, 1075, 0, 0, 0, 0, 0, - 0, 0, 0, 1075, 3934, 1075, 0, 0, 1075, 0, - 3935, 0, 0, 0, 3682, 3676, 0, 0, 0, 0, - 0, 1075, 0, 1075, 0, 1075, 0, 1075, 3677, 3683, - 3684, 0, 0, 0, 0, 3936, 3937, 3938, 0, 0, - 1075, 1075, 3685, 0, 0, 0, 0, 0, 0, 0, - 3917, 3918, 0, 0, 0, 0, 3919, 3920, 0, 0, - 3939, 3940, 0, 0, 0, 0, 3921, 0, 3678, 0, - 0, 0, 0, 0, 3679, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1075, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1075, 0, 1075, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3922, 0, 0, 0, 0, 0, 0, 1077, - 0, 0, 0, 0, 3923, 0, 0, 3941, -738, 3942, - 3943, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1077, 3924, 3944, 0, 0, 0, 0, - 0, 0, 0, 3680, 0, 0, 1132, 1077, 0, 0, - 3681, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3925, 0, 0, - 0, 0, 3945, 0, 3946, 0, 1075, 0, 0, 0, - 3682, 0, 0, 0, 0, 0, 0, 3926, 3927, 0, - 3928, 0, 0, 0, 0, 3683, 3684, 3947, 3929, 3930, - 3931, 0, 0, 0, 0, 0, 0, 1075, 3685, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3932, 3948, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3949, 3950, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1077, 3933, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3951, 0, 0, 0, 0, 0, 3695, 0, - 0, 3952, 0, 0, 0, 0, 0, 3934, 0, 0, - 0, 0, 0, 3935, 0, 0, 0, 0, 0, 1075, - 0, 0, 0, 0, 0, 0, 1075, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1075, 0, 3936, 3937, - 3938, 0, 0, 0, 0, 0, 0, 3953, 3954, 3955, - 0, 1077, 0, 0, 0, 3956, 3957, 0, 0, 0, - 0, 0, 0, 3939, 3940, 0, 0, 0, 0, 0, - 0, 3958, 3959, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3960, 3961, 0, 0, 0, - 0, 3695, 0, 0, 1077, 0, 0, 0, 0, 1077, - 3941, 0, 3942, 3943, 3962, 0, 0, 0, 0, 0, - 0, 1075, 1075, 0, 0, 0, 0, 0, 3944, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1077, - 0, 0, 1484, 0, 0, 0, 3963, 0, 0, 1077, + 0, 3942, 0, 3943, 3944, 0, 1077, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3945, + 0, 0, 0, 0, 0, 0, 5431, 0, 0, 5431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 893, 0, 0, 0, 3945, 0, 3946, 0, 0, + 0, 0, 0, 0, 0, 893, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3946, 0, 3947, 1077, + 0, 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1484, 0, 0, - 3947, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3964, 0, 0, 3965, 0, - 0, 3966, 3948, 0, 0, 0, 0, 0, 3967, 3359, - 0, 0, 0, 3949, 3950, 0, 0, 0, 0, 0, - 0, 1075, 0, 0, 3968, 0, 0, 893, 1077, 1077, - 1077, 1077, 0, 0, 1484, 0, 0, 0, 0, 0, - 1077, 1075, 0, 3969, 0, 3951, 0, 0, 0, 0, - 0, 0, 0, 0, 3952, 0, 0, 0, 0, 0, + 893, 3948, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1077, 0, 0, 1484, 0, 0, + 0, 0, 0, 3949, 1077, 0, 0, 0, 0, 893, + 0, 0, 0, 0, 3950, 3951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1484, 0, 0, 0, 3952, 0, 0, 0, + 0, 0, 0, 0, 0, 3953, 5549, 0, 0, 5549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3953, 3954, 3955, 0, 0, 1075, 0, 1075, 3956, 3957, + 0, 0, 0, 5431, 0, 0, 0, 0, 0, 0, + 0, 0, 5589, 1077, 1077, 1077, 1077, 0, 0, 1484, + 5431, 3954, 3955, 3956, 0, 1077, 0, 0, 0, 3957, + 3958, 0, 1043, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3959, 3960, 0, 0, 5589, + 0, 0, 0, 0, 0, 1075, 1193, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3961, + 3962, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3963, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1075, 0, 0, 3958, 3959, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1075, 1075, - 0, 0, 0, 0, 0, 0, 0, 0, 3960, 3961, - 0, 0, 0, 0, 0, 0, 0, 1075, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3962, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1077, 5283, - 0, 1484, 0, 0, 0, 0, 0, 0, 0, 0, + 5549, 0, 0, 0, 0, 5549, 0, 0, 0, 0, + 0, 5067, 5549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1075, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1334, 5431, 0, 0, 0, 3965, + 0, 0, 3966, 1077, 0, 3967, 1484, 0, 0, 0, + 0, 0, 0, 0, 1075, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3964, 0, - 0, 3965, 0, 0, 3966, 0, 0, 0, 0, 0, - 0, 5284, 0, 1075, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3968, 0, 1075, + 0, 0, 0, 0, 1398, 0, 0, 0, 0, 0, + 5549, 0, 0, 0, 5760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1077, 0, 0, 1077, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1447, 0, 0, 0, 1077, 1075, 0, 1077, + 0, 0, 0, 0, 1075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 893, + 0, 0, 1474, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1489, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5549, 0, 5549, 5549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1077, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3359, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -1026, 0, -1026, + 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5549, 0, 0, 0, 0, 0, + 0, 0, 5549, 0, 0, 0, 0, 1077, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1077, 1077, + 0, 0, 0, 1075, 1077, 0, 0, 0, 1077, 1077, + 1077, 0, 5549, 0, 1583, 0, 0, 0, 0, 1077, + 1077, 1484, 0, 0, 0, 1077, 0, 1077, 1077, 1077, + 1077, 1077, 0, 1077, 0, 0, 1484, 1484, 0, 0, + 0, 0, 0, 0, 1077, 0, 1077, 0, 0, 1077, + 1077, 0, 1077, 1077, 1077, 0, 1077, 1077, 1077, 0, + 893, 0, 0, 1077, 0, 0, 1077, 0, 0, 0, + 0, 0, 1075, 0, 1077, 1077, 0, 1077, 1077, 1077, + 0, 0, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 0, + 1077, 1077, 1077, 1077, 1077, 1077, 0, 1077, 1077, 0, + 1077, 1077, 1077, 1077, 1077, 1077, 1077, 0, 0, 1077, + 1077, 1077, 1077, 0, 1077, 1077, 1077, 0, 1077, 0, + 1077, 0, 1077, 0, 0, 0, 1077, 1077, 1077, 0, + 0, 1077, 1077, 1077, 1077, 1077, 0, 1077, 0, 0, + 0, 0, 0, 0, 1077, 0, 0, 0, 0, 0, + 0, 1077, 1077, 1077, 1077, 0, 0, 0, 0, 0, + 0, 0, 1077, 1077, 1077, 0, 1077, 1077, 1077, 1077, + 1077, 1077, 0, 1077, 1077, 1077, 1077, 1077, 1077, 1077, + 1077, 1777, 0, 0, 1077, 0, 0, 0, 0, 1484, + 0, 0, 0, 0, 0, 1484, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1077, 0, 0, + 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1077, 1077, 0, 0, 0, 0, 1077, - 0, 0, 0, 1077, 1077, 1077, 1907, 0, 0, 0, - 0, 1075, 0, 0, 1077, 1077, 1484, 0, 0, 0, - 1077, 0, 1077, 1077, 1077, 1077, 1077, 0, 1077, 0, - 0, 1484, 1484, 0, 0, 0, 0, 0, 0, 1077, - 1075, 1077, 0, 0, 1077, 1077, 0, 1077, 1077, 1077, - 0, 1077, 1077, 1077, 158, 159, 0, 0, 1077, 3658, - 0, 1077, 0, 0, 0, 0, 0, 0, 0, 1077, - 1077, 0, 1077, 1077, 1077, 0, 0, 1077, 1077, 1077, - 1077, 1077, 1077, 1077, 0, 1077, 1077, 1077, 1077, 1077, - 1077, 0, 1077, 1077, 0, 1077, 1077, 1077, 1077, 1077, - 1077, 1077, 0, 0, 1077, 1077, 1077, 1077, 0, 1077, - 1077, 1077, 3695, 1077, 1075, 1077, 0, 1077, 0, 0, - 0, 1077, 1077, 1077, 0, 0, 1077, 1077, 1077, 1077, - 1077, 0, 1077, 0, 3660, 0, 0, 0, 0, 1077, - 893, 0, 0, 0, 0, 0, 1077, 1077, 1077, 1077, - 0, 0, 0, 0, 0, 0, 0, 1077, 1077, 1077, - 0, 1077, 1077, 1077, 1077, 1077, 1077, 0, 1077, 1077, - 1077, 1077, 1077, 1077, 1077, 1077, 0, 0, 0, 1077, - 0, 0, 0, 0, 1484, 0, 0, 0, 0, 0, - 1484, 0, 0, 0, 0, 3661, 3662, 3663, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 893, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3664, 0, 1077, 0, 0, 0, 0, 1077, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1077, 893, 0, - 0, 0, 0, 0, 0, 3665, 0, 0, 1075, 0, - 0, 0, 0, 0, 0, 0, 1043, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1484, 0, - 0, 0, 0, 3666, 0, 3667, 0, 0, 0, 0, - 1193, 0, 0, 0, 0, 0, 1075, 0, 1075, 0, - 0, 0, -1026, 0, 3668, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1077, 0, 0, 0, 0, - 0, 0, 0, 3669, 0, 0, 0, 0, 0, 0, - 3670, 0, 0, 0, 5432, 0, 0, 5432, 1077, 0, - 0, 0, 0, 0, 0, 3671, 0, 0, 0, 0, - 0, 0, 0, 893, 0, 3672, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1484, 0, 0, 0, 0, 0, 0, - 3673, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3917, 3918, 893, 0, - 0, 0, 3919, 3920, 0, 0, 0, 0, 0, 0, - 0, 0, 3921, 0, 0, 0, 0, 0, 1334, 0, - 0, 0, 0, 0, 0, 0, 0, 893, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3674, 3922, 0, - 0, 0, 0, 0, 0, 0, 1075, 3675, 0, 0, - 3923, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3924, 0, 0, 0, 5550, 0, 0, 5550, 0, 0, - 0, 0, 0, 0, 3676, 0, 0, 0, 1398, 0, - 0, 0, 0, 0, 0, 0, 0, 3677, 0, 0, - 0, 5432, 0, 3925, 0, 0, 0, 0, 0, 0, - 5590, 0, 0, 0, 0, 0, 0, 0, 5432, 0, - 0, 0, 0, 3926, 3927, 0, 3928, 0, 0, 0, - 0, 0, 0, 0, 3929, 3930, 3931, 3678, 0, 0, - 0, 0, 0, 3679, 0, 0, 1447, 5590, 0, 0, - 0, 0, 0, 1075, 3932, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1474, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1489, 0, 3933, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3680, 0, 0, 0, 1077, 0, 0, 3681, - 0, 0, 0, 3934, 0, 0, 0, 0, 5550, 3935, - 0, 0, 0, 5550, 1077, 0, 0, 1077, 0, 0, - 5550, 0, 0, 0, 0, 1077, 1077, 0, 0, 3682, - 0, 0, 0, 0, 3936, 3937, 3938, 0, 0, 0, - 0, 0, 0, 0, 3683, 3684, 0, 0, 0, 0, - 1075, 0, 0, 0, 0, 0, 0, 3685, 0, 3939, - 3940, 0, 0, 5432, 0, 0, 0, 0, 1583, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1075, 0, 0, 0, 1484, 1484, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3941, 0, 3942, 3943, - 0, 1077, 1077, 1077, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3944, 1484, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5550, - 0, 0, 0, 5763, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3945, 0, 3946, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5432, 0, 1484, 0, - 0, 0, 0, 0, 0, 0, 3947, 0, 0, 1077, - 0, 0, 1484, 0, 0, 0, 1075, 0, 0, 0, - 0, 0, 0, 0, 1075, 0, 0, 0, 3948, 0, - 0, 1077, 0, 0, 0, 0, 0, 0, 1077, 3949, - 3950, 1077, 0, 1077, 0, 0, 0, 0, 0, 1077, - 0, 1077, 1077, 0, 0, 1777, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5550, 0, 5550, 5550, - 0, 3951, 0, 0, 0, 1077, 0, 0, 0, 0, - 3952, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1944, 0, 0, 1945, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5550, 0, 0, 1077, 0, 0, - 0, 0, 5550, 0, 0, 0, 0, 0, 0, 0, - 0, 1077, 0, 0, 0, 0, 3953, 3954, 3955, 0, - 0, 0, 0, 1075, 3956, 3957, 1077, 0, 0, 0, - 0, 0, 5550, 0, 0, 0, 0, 0, 0, 0, - 3958, 3959, 0, 0, 0, 0, 0, 0, 1077, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3960, 3961, 1484, 0, 1944, 0, - 0, 1945, 0, 0, 0, 0, 0, 0, 0, 0, - 893, 0, 0, 3962, 0, 0, 0, 0, 0, 0, - 0, 0, 1075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1077, 5068, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1484, 0, - 1484, 0, 0, 2022, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2046, - 0, 0, 0, 0, 3964, 0, 0, 3965, 0, 0, - 3966, 0, 0, 0, 0, 0, 2060, 0, 0, 0, - 2065, 0, 2067, 0, 0, 0, 0, 0, 0, 0, - 0, 2083, 2084, 3968, 0, 0, 0, 2110, 0, 2113, - 2114, 2115, 2116, 2117, 0, 2119, 0, 0, 0, 0, - 0, 0, 3969, 0, 0, 0, 2127, 0, 2130, 0, - 1077, 2131, 2132, 0, 2134, 2135, 0, 0, 2138, 2139, - 2140, 0, 0, 0, 0, 2145, 0, 0, 2151, 0, - 0, 0, 0, 0, 0, 0, 2155, 2156, 0, 2159, - 0, 2161, 0, 0, 2163, 2164, 2165, 2168, 2169, 2170, - 2171, 0, 2172, 2173, 2174, 2175, 2176, 0, 0, 2183, - 2184, 0, 0, 2188, 2189, 2190, 0, 0, 0, 0, - 0, 2196, 2197, 2198, 0, 1077, 2201, 2202, 2203, 0, - 2205, 0, 2207, 0, 2208, 0, 0, 0, 2211, 2151, - 2213, 0, 0, 2219, 2220, 2221, 2222, 2223, 0, 2224, - 0, 0, 0, 0, 0, 0, 2228, 0, 0, 0, - 0, 0, 0, 2233, 2234, 2235, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2022, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2060, 0, 0, 0, 2065, 0, 2067, 0, + 0, 0, 0, 0, 0, 0, 0, 2083, 2084, 0, + 0, 0, 0, 2110, 0, 2113, 2114, 2115, 2116, 2117, + 0, 2119, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2127, 0, 2130, 0, 0, 2131, 2132, 0, + 2134, 2135, 0, 0, 2138, 2139, 2140, 0, 0, 0, + 0, 2145, 0, 0, 2151, 0, 0, 0, 0, 0, + 0, 0, 2155, 2156, 0, 2159, 0, 2161, 0, 0, + 2163, 2164, 2165, 2168, 2169, 2170, 2171, 0, 2172, 2173, + 2174, 2175, 2176, 0, 0, 2183, 2184, 0, 0, 2188, + 2189, 2190, 0, 0, 0, 0, 0, 2196, 2197, 2198, + 0, 0, 2201, 2202, 2203, 0, 2205, 0, 2207, 0, + 2208, 0, 0, 0, 2211, 2151, 2213, 0, 0, 2219, + 2220, 2221, 2222, 2223, 0, 2224, 0, 0, 0, 0, + 0, 0, 2228, 0, 0, 0, 0, 0, 0, 2233, + 2234, 2235, 3918, 3919, 0, 0, 0, 0, 3920, 3921, + 0, 0, 0, 0, 0, 0, 0, 0, 3922, 0, + 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1077, + 0, 0, 1077, 0, 3923, 0, 0, 0, 0, 0, + 1077, 1077, 0, 0, 0, 0, 3924, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2331, 3925, 0, 0, 0, + 2341, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2341, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3926, + 0, 1484, 1484, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3927, + 3928, 0, 3929, 0, 0, 0, 1077, 1077, 1077, 0, + 3930, 3931, 3932, 0, 0, 0, 0, 0, 0, 0, + 1484, 0, 0, 0, 0, 0, 0, 0, 2418, 0, + 3933, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2331, - 0, 0, 0, 0, 2341, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2341, 0, 0, 0, 0, 0, - 0, 1077, 0, 0, 1077, 0, 0, 0, 0, 0, - 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, - 0, 1077, 0, 1077, 0, 1077, 0, 1077, 1077, 1077, - 1077, 1077, 1077, 0, 1077, 0, 0, 0, 0, 0, - 0, 0, 1077, 0, 1077, 0, 0, 1077, 1077, 1077, - 1077, 0, 0, 1077, 1077, 0, 0, 1077, 0, 1077, - 0, 1077, 2418, 1077, 0, 0, 0, 1077, 0, 0, - 0, 0, 0, 0, 0, 1077, 0, 1077, 0, 1077, - 1077, 1077, 1077, 1077, 0, 2450, 1077, 1077, 1077, 0, - 1077, 0, 0, 1077, 0, 0, 0, 0, 0, 0, + 0, 2450, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3934, 0, 0, 0, 0, 0, + 0, 0, 0, 1484, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1077, 0, 0, 1484, 0, 3935, + 0, 0, 0, 0, 0, 3936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1077, 0, 0, 0, - 0, 1077, 0, 0, 1077, 0, 1077, 1077, 1077, 0, - 0, 1077, 0, 0, 0, 0, 0, 1077, 0, 0, - 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1077, 0, - 0, 0, 0, 0, 1077, 0, 0, 1077, 0, 0, - 0, 0, 0, 1077, 0, 0, 0, 3917, 3918, 0, - 1077, 1484, 1077, 3919, 3920, 0, 0, 0, 0, 0, - 0, 0, 0, 3921, 0, 0, 0, 0, 0, 1484, + 0, 0, 0, 1077, 0, 0, 1077, 0, 1077, 0, + 3937, 3938, 3939, 0, 1077, 0, 1077, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3922, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1077, - 0, 3923, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3924, 0, 0, 0, 0, 0, 0, 1077, 0, + 0, 0, 0, 0, 0, 3940, 3941, 0, 0, 0, + 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1484, 0, 0, 1484, 1484, 1484, - 0, 0, 0, 0, 3925, 0, 0, 0, 0, 0, + 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3942, 0, 3943, 3944, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3926, 3927, 0, 3928, 0, 0, - 0, 0, 0, 0, 0, 3929, 3930, 3931, 0, 0, + 3945, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3932, 0, 0, 0, 0, + 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3946, 0, 3947, + 0, 1484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2737, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3933, - 0, 1193, 0, 0, 2756, 0, 0, 0, 0, 0, - 0, 0, 2763, 2764, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3934, 0, 0, 0, 0, 0, - 3935, 0, 0, 0, 1077, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1077, 0, - 0, 0, 0, 0, 0, 3936, 3937, 3938, 0, 0, + 0, 0, 3948, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3949, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3950, 3951, 0, 0, 2737, + 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1484, 0, 1484, 0, 1193, 0, 0, + 2756, 0, 0, 0, 0, 0, 0, 3952, 2763, 2764, + 0, 0, 0, 0, 0, 0, 3953, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3939, 3940, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2815, 2817, - 2819, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3941, 0, 3942, - 3943, 1077, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3944, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1077, 0, 3945, 0, 3946, 0, 0, 0, 1484, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2912, 0, - 0, 0, 1077, 0, 0, 0, 0, 3947, 2917, 0, - 2918, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3948, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3949, 3950, 2944, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1077, 0, 2951, 0, 0, - 0, 0, 0, 0, 0, 1077, 0, 0, 1077, 0, - 0, 0, 3951, 0, 2341, 0, 0, 0, 0, 0, - 0, 3952, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1077, 1077, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3004, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1077, 0, 1077, 0, 1077, - 0, 1077, 0, 0, 0, 3014, 0, 3953, 3954, 3955, - 0, 0, 0, 0, 0, 3956, 3957, 0, 0, 0, - 0, 0, 0, 1077, 0, 0, 0, 0, 0, 1484, - 0, 3958, 3959, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1077, 1077, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3960, 3961, 0, 0, 0, - 0, 0, 0, 0, 1077, 0, 0, 0, 0, 1077, - 0, 0, 0, 0, 3962, 1077, 0, 0, 0, 0, - 0, 0, 3073, 0, 0, 1077, 0, 1077, 0, 0, + 0, 0, 3954, 3955, 3956, 0, 0, 0, 0, 0, + 3957, 3958, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1077, 3959, 3960, 0, 0, + 0, 0, 0, 0, 2815, 2817, 2819, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3961, 3962, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3963, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1077, 1077, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1077, 0, 0, + 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1484, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3964, 0, 0, 3965, 0, - 0, 3966, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3162, 0, 0, - 0, 1077, 0, 0, 3968, 0, 0, 0, 1484, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3969, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1146, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1080, 0, 0, 0, 0, - 0, 0, 3246, 0, 0, 0, 0, 0, 0, 0, - 1119, 0, 0, 0, 0, 0, 0, 0, 1147, 1148, - 0, 0, 0, 0, 0, 0, 0, 0, 1149, 0, - 1077, 0, 0, 0, 0, 0, 0, 1484, 0, 0, - 0, 1077, 0, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4839, 0, 3779, 158, 159, 0, - 0, 0, 1150, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1151, 0, 0, 0, - 3781, 0, 0, 0, 0, 0, 0, 0, 3783, 0, + 0, 0, 0, 0, 2912, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2917, 0, 2918, 0, 0, 0, + 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3965, 0, 0, 3966, 0, 0, 3967, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2944, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3969, + 0, 0, 0, 2951, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3970, 0, + 2341, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1077, 0, 0, 1077, + 0, 0, 0, 0, 0, 0, 0, 0, 1077, 3004, + 0, 0, 0, 0, 0, 0, 1077, 0, 1077, 0, + 1077, 0, 1077, 1077, 1077, 1077, 1077, 1077, 0, 1077, + 0, 3014, 0, 0, 0, 0, 0, 1077, 0, 1077, + 0, 0, 1077, 1077, 1077, 1077, 0, 0, 1077, 1077, + 0, 0, 1077, 0, 1077, 0, 1077, 0, 1077, 0, + 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, + 1077, 0, 1077, 0, 1077, 1077, 1077, 1077, 1077, 0, + 0, 1077, 1077, 1077, 0, 1077, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3383, 0, - 1907, 3384, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4840, 0, 0, 0, 0, 0, 3410, 0, - 0, 0, 3412, 0, 3413, 3414, 3415, 3416, 3417, 3418, - 0, 0, 0, 0, 0, 0, 0, 0, 1152, 3422, - 0, 3423, 0, 0, 3424, 3425, 3426, 3427, 158, 159, - 3428, 3429, 0, 3658, 3431, 0, 3433, 0, 3435, 0, - 3437, 0, 0, 0, 3439, 0, 0, 0, 0, 0, - 0, 0, 2165, 0, 3442, 0, 2165, 0, 3445, 3446, - 3447, 3785, 0, 3448, 3449, 3451, 0, 3452, 0, 0, - 3453, 0, 0, 0, 0, 0, 0, 0, 1153, 0, - 0, 0, 0, 3454, 0, 0, 0, 0, 0, 0, - 0, 3461, 0, 3462, 3463, 3464, 0, 0, 3465, 0, - 3787, 0, 0, 0, 3469, 0, 0, 0, 3660, 3480, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3497, 0, 0, 0, 1154, - 0, 0, 0, 3789, 0, 0, 0, 0, 0, 0, - 3507, 0, 0, 0, 1155, 0, 0, 0, 0, 3518, - 0, 0, 0, 1156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1157, 0, 0, 0, 3661, - 3662, 3663, 0, 0, 0, 0, 1158, 0, 1077, 1077, - 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, - 1077, 0, 1077, 0, 3664, 1077, 2341, 0, 0, 0, - 1159, 0, 0, 0, 0, 0, 0, 0, 1077, 0, - 1077, 0, 1077, 0, 1077, 0, 0, 0, 0, 3665, - 0, 0, 0, 0, 0, 2341, 0, 1077, 1077, 0, - 0, 0, -2329, 1160, 0, 0, 1161, 0, 1162, 3790, - 0, 0, 0, 0, 0, 0, 0, 3666, 0, 3667, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1163, 1164, 0, 0, 1077, 3668, 0, - 0, 1165, 1166, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3669, 1167, 0, - 0, 0, 0, 0, 3670, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3671, - 1168, 0, 0, 0, 0, 0, 0, 0, 0, 3672, - 0, 0, 0, 3792, 0, 0, 0, 0, 0, 0, - 3794, 1169, 0, 0, 3673, 0, 0, 0, 0, 0, + 0, 1077, 0, 0, 0, 0, 1077, 0, 3073, 1077, + 0, 1077, 1077, 1077, 0, 0, 1077, 0, 0, 0, + 0, 0, 1077, 0, 0, 0, 0, 1077, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1077, 0, 0, 0, 0, 0, 1077, + 0, 0, 1077, 0, 0, 0, 0, 0, 1077, 0, + 0, 0, 0, 0, 0, 1077, 1484, 1077, 0, 0, + 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, - 0, 3796, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3709, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1077, 3073, 1170, 0, 0, 0, - 0, 3674, 0, 0, 0, 0, 0, 0, 0, 0, - 1171, 3675, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1172, 0, 0, 1173, 1174, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1175, - 0, 0, 0, 0, 0, 0, 0, 0, 3676, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3677, 0, 3798, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1176, 1077, 0, 3844, 0, - 0, 0, 1177, 1077, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, - -3084, 3678, 1178, 0, 0, 0, 0, 3679, 0, 0, + 0, 0, 0, 3162, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1146, 0, 0, 0, 0, 1484, + 0, 0, 1484, 1484, 1484, 1080, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3246, 0, + 1119, 0, 0, 0, 0, 0, 0, 0, 1147, 1148, + 0, 0, 0, 0, 0, 0, 0, 0, 1149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3895, - 0, 0, -3084, 0, 0, 0, 0, 0, 1179, 0, - 0, 0, 0, 0, 0, 0, 3680, 0, 0, 0, - 0, 0, 0, 3681, 0, 0, 0, 0, 1077, 1077, + 0, 0, 0, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3989, 3682, 0, 0, 0, 0, 0, 0, - 0, 0, 3993, 0, 0, 3994, 0, 0, 3683, 3684, + 0, 0, 0, 0, 0, 0, 0, 158, 159, 0, + 0, 0, 1150, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1151, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3685, 0, 0, 0, 0, 0, 0, 4018, 4019, + 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3383, 0, 0, 3384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3410, 0, 0, 0, 3412, 0, + 3413, 3414, 3415, 3416, 3417, 3418, 0, 0, 1152, 0, + 0, 0, 0, 0, 0, 3422, 0, 3423, 0, 0, + 3424, 3425, 3426, 3427, 0, 0, 3428, 3429, 0, 0, + 3431, 0, 3433, 0, 3435, 0, 3437, 0, 0, 0, + 3439, 0, 0, 0, 0, 0, 1077, 0, 2165, 0, + 3442, 0, 2165, 0, 3445, 3446, 3447, 0, 0, 3448, + 3449, 3451, 0, 3452, 0, 0, 3453, 0, 1153, 0, + 0, 0, 0, 4839, 0, 3780, 0, 0, 0, 3454, + 0, 0, 0, 0, 0, 0, 0, 3461, 0, 3462, + 3463, 3464, 0, 0, 3465, 1077, 0, 0, 0, 3782, + 3469, 0, 0, 1484, 0, 3480, 0, 3784, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1077, 0, 1154, + 0, 3497, 0, 0, 0, 0, 0, 0, 0, 1907, + 0, 0, 0, 0, 1155, 0, 3507, 0, 0, 0, + 0, 4840, 0, 1156, 0, 3518, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1157, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1158, 0, 0, 0, + 1077, 0, 0, 0, 0, 0, 0, 158, 159, 0, + 1077, 0, 3659, 1077, 0, 0, 0, 0, 0, 0, + 1159, 0, 2341, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1077, 1077, 0, 0, + 3786, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2341, -2330, 1160, 0, 0, 1161, 0, 1162, 0, + 1077, 0, 1077, 0, 1077, 0, 1077, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3788, + 0, 0, 0, 1163, 1164, 0, 0, 3661, 1077, 0, + 0, 1165, 1166, 0, 1484, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1167, 1077, + 1077, 0, 3790, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1077, + 1168, 0, 0, 0, 1077, 0, 0, 0, 0, 0, + 1077, 0, 0, 0, 0, 0, 0, 0, 3662, 3663, + 3664, 1169, 0, 1077, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3665, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1077, 1077, + 0, 0, 0, 0, 0, 0, 0, 3710, 3666, 0, + 0, 0, 0, 1077, 0, 0, 1170, 0, 0, 0, + 0, 3073, 0, 0, 0, 0, 0, 1484, 3791, 0, + 1171, 0, 0, 0, 0, 0, 3667, 0, 3668, 0, + 0, 1172, 0, 0, 1173, 1174, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3669, 0, 1175, + 0, 0, 0, 0, 0, 0, 0, 1077, 0, 0, + 0, 0, 0, 0, 1484, 0, 3670, 0, 0, 0, + 0, 0, 0, 3671, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1176, 0, 0, 3672, 0, + 0, 0, 1177, 0, 3845, 0, 0, 0, 3673, 0, + 0, 0, 3793, 0, 0, 0, 0, 0, 0, 3795, + -3085, 0, 1178, 3674, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4043, 0, 4044, 0, 4045, 0, 4046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1077, 0, - 4071, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1077, 0, - 0, 4094, 4095, 0, 0, 0, 0, 0, 0, 0, + 3797, 0, 0, 0, 0, 0, 1077, 0, 0, 0, + 0, 0, 0, 1484, 0, 0, 0, 1077, 0, 0, + 0, 0, -3085, 0, 0, 3896, 0, 0, 1179, 0, + 3675, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3676, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3709, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4130, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3677, 3990, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3994, 0, + 3678, 3995, 3799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1077, 0, 1077, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1077, 2341, - 2341, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2341, 1077, 1077, 0, 0, 0, + 0, 0, 0, 0, 4019, 4020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1077, 0, 0, 0, 0, 0, + 3679, 0, 0, 0, 0, 0, 3680, 0, 4044, 0, + 4045, 0, 4046, 0, 4047, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3073, 0, + 0, 0, 0, 0, 0, 0, 0, 4095, 4096, 0, + 0, 0, 0, 0, 0, 3681, 0, 0, 0, 0, + 0, 0, 3682, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4130, 3683, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3684, 3685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3686, 0, 0, 0, 0, 0, 2341, 2341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1077, 1077, 0, 1077, 0, 0, + 0, 0, 0, 0, 0, 0, 1077, 0, 1077, 0, + 0, 1077, 0, 0, 0, 3073, 0, 0, 0, 0, + 0, 0, 0, 0, 1077, 0, 1077, 0, 1077, 0, + 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1077, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1077, 0, 0, 0, 0, 0, 0, 3709, 0, 0, - 0, 0, 0, 1484, 0, 0, 1077, 0, 3073, 0, + 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3710, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5814,60 +5843,60 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1484, 0, 0, 1077, 0, + 0, 1077, 0, 0, 0, 0, 0, 0, 1077, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1077, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4549, 4550, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4557, 0, 4558, 0, 0, 4559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4548, 4549, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4556, 0, 4557, - 0, 0, 4558, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4578, 0, 4579, 0, 4580, - 0, 4581, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4587, 4588, 0, 0, 0, 0, + 0, 0, 4579, 0, 4580, 0, 4581, 0, 4582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4588, 4589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1077, 0, 0, 0, 0, + 0, 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1077, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1077, 0, + 1077, 0, 0, 0, 0, 0, 3073, 0, 0, 0, + 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3073, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1077, 1077, 0, 0, 0, 0, 0, 3073, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1484, 1484, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3710, + 0, 0, 0, 0, 0, 0, 4784, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3709, 0, 0, 0, 0, 0, 0, - 4784, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1077, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1484, 0, + 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4850, 4851, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1484, 0, 0, 0, 0, 0, - 1077, 0, 0, 0, 0, 4850, 4851, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5877,23 +5906,22 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1077, 0, 0, - 0, 0, 0, 0, 0, 4929, 0, 0, 0, 0, + 0, 0, 4929, 0, 0, 0, 0, 0, 0, 0, + 1484, 0, 0, 1077, 0, 0, 0, 0, 0, 0, + 0, 0, 3710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3709, 0, 0, 0, 1077, + 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3710, 0, 3710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3073, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1077, 0, 0, 2341, 2341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3709, - 0, 3709, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3073, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2341, 2341, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5026, 0, 1077, 0, 0, 0, 0, 0, 0, - 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5902,15 +5930,16 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1077, + 0, 0, 0, 5102, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3073, + 0, 0, 0, 0, 0, 0, 0, 1077, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1077, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 5103, 0, 0, - 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5918,38 +5947,45 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1484, 1484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 5197, 0, 0, 0, 0, + 3710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3709, 0, 0, 0, 0, 0, + 0, 1484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1484, 0, + 0, 0, 0, 5256, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 5257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3710, 0, 0, + 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 5380, 0, 5382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3709, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5381, 0, 5383, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1077, 0, 0, 0, + 0, 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5960,249 +5996,1522 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5614, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2337, 0, 0, 0, + 0, 1077, 0, 0, 0, 0, 0, 2338, 902, 903, + 904, 905, 0, 0, 0, 0, 0, 0, 0, 906, + 907, 0, 908, 0, 0, 0, 0, 0, 0, 909, + 910, 0, 0, 911, 912, 913, 914, 0, 915, 916, + 0, 917, 918, 0, 0, 0, 0, 919, 0, 0, + 0, 2339, 0, 0, 921, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 922, 923, 924, 0, 925, 926, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1583, + 927, 928, 929, 0, 930, 931, 0, 0, 0, 932, + 933, 934, 0, 0, 0, 0, 0, 0, 0, 935, + 0, 936, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5718, 0, 0, 937, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 938, 0, 0, 0, 0, + 939, 940, 0, 941, 0, 0, 0, 0, 0, 942, + 0, 943, 0, 0, 944, 0, 0, 945, 946, 947, + 0, 948, 949, 950, 0, 951, 2340, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 952, 0, 0, 0, 953, 954, 955, 956, 0, 0, + 0, 0, 0, 0, 957, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 958, 959, 0, 0, 0, + 0, 0, 0, 0, 960, 0, 0, 961, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3073, 0, 0, 962, 0, 0, + 0, 0, 0, 963, 964, 0, 965, 966, 967, 0, + 0, 0, 968, 0, 0, 0, 0, 0, 0, 0, + 969, 970, 971, 972, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 973, 974, 975, 0, 0, 0, 0, + 0, 976, 0, 977, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 978, 172, 173, 174, + 175, 176, 177, 979, 179, 180, 181, 182, 183, 184, + 185, 980, 187, 188, 0, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 981, 202, 203, + 204, 205, 206, 207, 208, 209, 982, 211, 983, 984, + 213, 985, 986, 987, 988, 989, 0, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 990, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 991, 992, 993, 247, 994, 995, 250, 0, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 0, 3073, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 0, 996, 292, 293, 294, 295, 296, 997, + 298, 998, 300, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 999, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 1000, 1001, 334, 335, 336, + 1002, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 1003, 376, + 1004, 378, 379, 380, 381, 1005, 1006, 1007, 1008, 386, + 387, 388, 389, 390, 391, 392, 393, 1009, 1010, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 1011, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 1012, 426, + 427, 428, 429, 430, 1013, 1014, 433, 434, 435, 436, + 437, 438, 1015, 440, 441, 442, 443, 444, 445, 1016, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 1017, + 477, 478, 479, 480, 481, 1018, 1019, 484, 485, 486, + 487, 488, 1020, 490, 491, 492, 493, 494, 495, 1021, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 1022, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 1023, 1024, 1025, + 1026, 547, 548, 549, 1027, 1028, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 1029, + 566, 1030, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 1031, 1032, 579, 1033, 581, 582, 583, 0, 584, + 585, 586, 1034, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1035, 1036, 0, 0, 0, 0, 1037, 0, + 2242, 0, 1038, 0, 0, 1039, 1040, 0, 0, 1041, + 1042, 901, 902, 903, 904, 905, 0, 0, 0, 0, + 0, 0, 0, 906, 907, 0, 908, 0, 0, 0, + 0, 0, 0, 909, 910, 0, 0, 911, 912, 913, + 914, 0, 915, 916, 0, 917, 918, 0, 0, 0, + 0, 919, 0, 0, 0, 920, 0, 0, 921, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 922, 923, + 924, 0, 925, 926, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 927, 928, 929, 0, 930, 931, + 0, 0, 0, 932, 933, 934, 0, 0, 0, 0, + 0, 0, 0, 935, 0, 936, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 937, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 938, + 0, 0, 0, 0, 939, 940, 0, 941, 0, 0, + 0, 0, 0, 942, 0, 943, 0, 0, 944, 0, + 0, 945, 0, 947, 0, 948, 949, 950, 0, 951, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 952, 0, 0, 0, 953, 954, + 955, 956, 0, 0, 0, 0, 0, 0, 957, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 958, + 959, 0, 0, 0, 0, 0, 0, 0, 960, 0, + 0, 961, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 962, 0, 0, 0, 0, 0, 963, 964, 0, + 965, 966, 967, 0, 0, 0, 968, 0, 0, 0, + 0, 0, 0, 0, 969, 970, 971, 972, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, + 0, 0, 0, 0, 0, 976, 0, 977, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 978, 172, 173, 174, 175, 176, 2243, 979, 179, 180, + 181, 182, 183, 184, 185, 980, 187, 188, 0, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 981, 202, 203, 204, 205, 206, 207, 208, 209, + 982, 211, 983, 984, 213, 985, 986, 987, 988, 989, + 0, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 990, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 991, 992, 993, 247, + 994, 995, 250, 0, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 0, 0, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 0, 996, 292, 293, + 294, 295, 296, 997, 298, 998, 300, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 999, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 1000, + 1001, 334, 335, 336, 1002, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 1003, 376, 1004, 378, 379, 380, 381, 1005, + 1006, 1007, 1008, 386, 387, 388, 389, 390, 391, 392, + 393, 1009, 1010, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 1011, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 1012, 426, 427, 428, 429, 430, 1013, 1014, + 433, 434, 435, 436, 437, 438, 1015, 440, 441, 442, + 443, 444, 445, 1016, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 1017, 477, 478, 479, 480, 481, 1018, + 1019, 484, 485, 486, 487, 488, 1020, 490, 491, 492, + 493, 494, 495, 1021, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 1022, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 1023, 1024, 1025, 1026, 547, 548, 549, 1027, 1028, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 1029, 566, 1030, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 1031, 1032, 579, 1033, 581, + 582, 583, 0, 584, 585, 586, 1034, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1035, 1036, 0, 0, + 0, 0, 1037, 0, 0, 0, 1038, 0, 0, 1039, + 1040, 0, 0, 1041, 1042, 901, 902, 903, 904, 905, + 0, 0, 0, 2148, 0, 0, 0, 906, 907, 0, + 908, 0, 0, 0, 0, 0, 0, 909, 910, 0, + 0, 911, 912, 913, 914, 0, 915, 916, 0, 917, + 918, 0, 0, 0, 0, 919, 0, 0, 0, 920, + 0, 0, 921, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 922, 923, 924, 0, 925, 926, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 927, 928, + 929, 0, 930, 931, 0, 0, 0, 932, 933, 934, + 0, 0, 0, 0, 0, 0, 0, 935, 0, 936, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2149, 0, 937, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 938, 0, 0, 0, 0, 939, 940, + 0, 941, 0, 0, 0, 0, 0, 942, 0, 943, + 0, 0, 944, 0, 0, 945, 946, 947, 0, 948, + 949, 950, 0, 951, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 952, 0, + 0, 0, 953, 954, 955, 956, 0, 0, 0, 0, + 0, 0, 957, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 958, 959, 0, 0, 0, 0, 0, + 0, 0, 960, 0, 0, 961, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 962, 0, 0, 0, 0, + 0, 963, 964, 0, 965, 966, 967, 0, 0, 0, + 968, 0, 0, 0, 0, 0, 2150, 0, 969, 970, + 971, 972, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 973, 974, 975, 0, 0, 0, 0, 0, 976, + 0, 977, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 978, 172, 173, 174, 175, 176, + 177, 979, 179, 180, 181, 182, 183, 184, 185, 980, + 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 981, 202, 203, 204, 205, + 206, 207, 208, 209, 982, 211, 983, 984, 213, 985, + 986, 987, 988, 989, 0, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 990, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 991, 992, 993, 247, 994, 995, 250, 0, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 0, 996, 292, 293, 294, 295, 296, 997, 298, 998, + 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 999, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 1000, 1001, 334, 335, 336, 1002, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 1003, 376, 1004, 378, + 379, 380, 381, 1005, 1006, 1007, 1008, 386, 387, 388, + 389, 390, 391, 392, 393, 1009, 1010, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 1011, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 1012, 426, 427, 428, + 429, 430, 1013, 1014, 433, 434, 435, 436, 437, 438, + 1015, 440, 441, 442, 443, 444, 445, 1016, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 1017, 477, 478, + 479, 480, 481, 1018, 1019, 484, 485, 486, 487, 488, + 1020, 490, 491, 492, 493, 494, 495, 1021, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 1022, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 1023, 1024, 1025, 1026, 547, + 548, 549, 1027, 1028, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 1029, 566, 1030, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 1031, + 1032, 579, 1033, 581, 582, 583, 0, 584, 585, 586, + 1034, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1035, 1036, 0, 0, 0, 0, 1037, 0, 0, 0, + 1038, 0, 0, 1039, 1040, 0, 0, 1041, 1042, 901, + 902, 903, 904, 905, 0, 0, 0, 0, 0, 0, + 0, 906, 907, 0, 908, 0, 0, 0, 0, 0, + 0, 909, 910, 0, 0, 911, 912, 913, 914, 0, + 915, 916, 0, 917, 918, 0, 0, 0, 0, 919, + 0, 0, 0, 920, 0, 0, 921, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 922, 923, 924, 0, + 925, 926, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 927, 928, 929, 0, 930, 931, 0, 0, + 0, 932, 933, 934, 0, 0, 0, 0, 0, 0, + 0, 935, 0, 936, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 937, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 938, 0, 0, + 0, 0, 939, 940, 0, 941, 0, 0, 0, 0, + 0, 942, 0, 943, 0, 0, 944, 0, 0, 945, + 946, 947, 0, 948, 949, 950, 0, 951, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 952, 0, 0, 0, 953, 954, 955, 956, + 0, 0, 0, 0, 0, 0, 957, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 958, 959, 0, + 0, 0, 0, 0, 0, 0, 960, 0, 0, 961, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 962, + 0, 0, 0, 0, 0, 963, 964, 0, 965, 966, + 967, 0, 0, 0, 968, 0, 0, 0, 0, 0, + 0, 0, 969, 970, 971, 972, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 973, 974, 975, 0, 0, + 0, 0, 0, 976, 0, 977, 1446, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 978, 172, + 173, 174, 175, 176, 177, 979, 179, 180, 181, 182, + 183, 184, 185, 980, 187, 188, 0, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 981, + 202, 203, 204, 205, 206, 207, 208, 209, 982, 211, + 983, 984, 213, 985, 986, 987, 988, 989, 0, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 990, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 991, 992, 993, 247, 994, 995, + 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 0, 996, 292, 293, 294, 295, + 296, 997, 298, 998, 300, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 999, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 1000, 1001, 334, + 335, 336, 1002, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 1003, 376, 1004, 378, 379, 380, 381, 1005, 1006, 1007, + 1008, 386, 387, 388, 389, 390, 391, 392, 393, 1009, + 1010, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 1011, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 1012, 426, 427, 428, 429, 430, 1013, 1014, 433, 434, + 435, 436, 437, 438, 1015, 440, 441, 442, 443, 444, + 445, 1016, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 1017, 477, 478, 479, 480, 481, 1018, 1019, 484, + 485, 486, 487, 488, 1020, 490, 491, 492, 493, 494, + 495, 1021, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 1022, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 1023, + 1024, 1025, 1026, 547, 548, 549, 1027, 1028, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 1029, 566, 1030, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 1031, 1032, 579, 1033, 581, 582, 583, + 0, 584, 585, 586, 1034, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1035, 1036, 0, 0, 0, 0, + 1037, 0, 0, 0, 1038, 0, 0, 1039, 1040, 0, + 0, 1041, 1042, 901, 902, 903, 904, 905, 0, 0, + 0, 0, 0, 0, 0, 906, 907, 0, 908, 0, + 0, 0, 0, 0, 0, 909, 910, 0, 0, 911, + 912, 913, 914, 0, 915, 916, 0, 917, 918, 0, + 0, 0, 0, 919, 0, 0, 0, 920, 0, 0, + 921, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 922, 923, 924, 0, 925, 926, 0, 0, 0, 0, + 2814, 0, 0, 0, 0, 0, 927, 928, 929, 0, + 930, 931, 0, 0, 0, 932, 933, 934, 0, 0, + 0, 0, 0, 0, 0, 935, 0, 936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 937, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 938, 0, 0, 0, 0, 939, 940, 0, 941, + 0, 0, 0, 0, 0, 942, 0, 943, 0, 0, + 944, 0, 0, 945, 946, 947, 0, 948, 949, 950, + 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 952, 0, 0, 0, + 953, 954, 955, 956, 0, 0, 0, 0, 0, 0, + 957, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 958, 959, 0, 0, 0, 0, 0, 0, 0, + 960, 0, 0, 961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 962, 0, 0, 0, 0, 0, 963, + 964, 0, 965, 966, 967, 0, 0, 0, 968, 0, + 0, 0, 0, 0, 0, 0, 969, 970, 971, 972, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, + 974, 975, 0, 0, 0, 0, 0, 976, 0, 977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 978, 172, 173, 174, 175, 176, 177, 979, + 179, 180, 181, 182, 183, 184, 185, 980, 187, 188, + 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 981, 202, 203, 204, 205, 206, 207, + 208, 209, 982, 211, 983, 984, 213, 985, 986, 987, + 988, 989, 0, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 990, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 991, 992, + 993, 247, 994, 995, 250, 0, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 0, 996, + 292, 293, 294, 295, 296, 997, 298, 998, 300, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 999, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 1000, 1001, 334, 335, 336, 1002, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 1003, 376, 1004, 378, 379, 380, + 381, 1005, 1006, 1007, 1008, 386, 387, 388, 389, 390, + 391, 392, 393, 1009, 1010, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 1011, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 1012, 426, 427, 428, 429, 430, + 1013, 1014, 433, 434, 435, 436, 437, 438, 1015, 440, + 441, 442, 443, 444, 445, 1016, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 1017, 477, 478, 479, 480, + 481, 1018, 1019, 484, 485, 486, 487, 488, 1020, 490, + 491, 492, 493, 494, 495, 1021, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 1022, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 1023, 1024, 1025, 1026, 547, 548, 549, + 1027, 1028, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 1029, 566, 1030, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 1031, 1032, 579, + 1033, 581, 582, 583, 0, 584, 585, 586, 1034, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1035, 1036, + 0, 0, 0, 0, 1037, 0, 0, 0, 1038, 0, + 0, 1039, 1040, 0, 0, 1041, 1042, 901, 902, 903, + 904, 905, 0, 0, 0, 0, 0, 0, 0, 906, + 907, 0, 908, 0, 0, 0, 0, 0, 0, 909, + 910, 0, 0, 911, 912, 913, 914, 0, 915, 916, + 0, 917, 918, 0, 0, 0, 0, 919, 0, 0, + 0, 920, 0, 0, 921, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 922, 923, 924, 0, 925, 926, + 0, 0, 0, 0, 2816, 0, 0, 0, 0, 0, + 927, 928, 929, 0, 930, 931, 0, 0, 0, 932, + 933, 934, 0, 0, 0, 0, 0, 0, 0, 935, + 0, 936, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 937, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 938, 0, 0, 0, 0, + 939, 940, 0, 941, 0, 0, 0, 0, 0, 942, + 0, 943, 0, 0, 944, 0, 0, 945, 946, 947, + 0, 948, 949, 950, 0, 951, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 952, 0, 0, 0, 953, 954, 955, 956, 0, 0, + 0, 0, 0, 0, 957, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 958, 959, 0, 0, 0, + 0, 0, 0, 0, 960, 0, 0, 961, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 962, 0, 0, + 0, 0, 0, 963, 964, 0, 965, 966, 967, 0, + 0, 0, 968, 0, 0, 0, 0, 0, 0, 0, + 969, 970, 971, 972, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 973, 974, 975, 0, 0, 0, 0, + 0, 976, 0, 977, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 978, 172, 173, 174, + 175, 176, 177, 979, 179, 180, 181, 182, 183, 184, + 185, 980, 187, 188, 0, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 981, 202, 203, + 204, 205, 206, 207, 208, 209, 982, 211, 983, 984, + 213, 985, 986, 987, 988, 989, 0, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 990, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 991, 992, 993, 247, 994, 995, 250, 0, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 0, 996, 292, 293, 294, 295, 296, 997, + 298, 998, 300, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 999, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 1000, 1001, 334, 335, 336, + 1002, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 1003, 376, + 1004, 378, 379, 380, 381, 1005, 1006, 1007, 1008, 386, + 387, 388, 389, 390, 391, 392, 393, 1009, 1010, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 1011, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 1012, 426, + 427, 428, 429, 430, 1013, 1014, 433, 434, 435, 436, + 437, 438, 1015, 440, 441, 442, 443, 444, 445, 1016, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 1017, + 477, 478, 479, 480, 481, 1018, 1019, 484, 485, 486, + 487, 488, 1020, 490, 491, 492, 493, 494, 495, 1021, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 1022, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 1023, 1024, 1025, + 1026, 547, 548, 549, 1027, 1028, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 1029, + 566, 1030, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 1031, 1032, 579, 1033, 581, 582, 583, 0, 584, + 585, 586, 1034, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1035, 1036, 0, 0, 0, 0, 1037, 0, + 0, 0, 1038, 0, 0, 1039, 1040, 0, 0, 1041, + 1042, 901, 902, 903, 904, 905, 0, 0, 0, 0, + 0, 0, 0, 906, 907, 0, 908, 0, 0, 0, + 0, 0, 0, 909, 910, 0, 0, 911, 912, 913, + 914, 0, 915, 916, 0, 917, 918, 0, 0, 0, + 0, 919, 0, 0, 0, 920, 0, 0, 921, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 922, 923, + 924, 0, 925, 926, 0, 0, 0, 0, 2818, 0, + 0, 0, 0, 0, 927, 928, 929, 0, 930, 931, + 0, 0, 0, 932, 933, 934, 0, 0, 0, 0, + 0, 0, 0, 935, 0, 936, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 937, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 938, + 0, 0, 0, 0, 939, 940, 0, 941, 0, 0, + 0, 0, 0, 942, 0, 943, 0, 0, 944, 0, + 0, 945, 946, 947, 0, 948, 949, 950, 0, 951, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 952, 0, 0, 0, 953, 954, + 955, 956, 0, 0, 0, 0, 0, 0, 957, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 958, + 959, 0, 0, 0, 0, 0, 0, 0, 960, 0, + 0, 961, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 962, 0, 0, 0, 0, 0, 963, 964, 0, + 965, 966, 967, 0, 0, 0, 968, 0, 0, 0, + 0, 0, 0, 0, 969, 970, 971, 972, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, + 0, 0, 0, 0, 0, 976, 0, 977, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 978, 172, 173, 174, 175, 176, 177, 979, 179, 180, + 181, 182, 183, 184, 185, 980, 187, 188, 0, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 981, 202, 203, 204, 205, 206, 207, 208, 209, + 982, 211, 983, 984, 213, 985, 986, 987, 988, 989, + 0, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 990, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 991, 992, 993, 247, + 994, 995, 250, 0, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 0, 0, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 0, 996, 292, 293, + 294, 295, 296, 997, 298, 998, 300, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 999, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 1000, + 1001, 334, 335, 336, 1002, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 1003, 376, 1004, 378, 379, 380, 381, 1005, + 1006, 1007, 1008, 386, 387, 388, 389, 390, 391, 392, + 393, 1009, 1010, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 1011, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 1012, 426, 427, 428, 429, 430, 1013, 1014, + 433, 434, 435, 436, 437, 438, 1015, 440, 441, 442, + 443, 444, 445, 1016, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 1017, 477, 478, 479, 480, 481, 1018, + 1019, 484, 485, 486, 487, 488, 1020, 490, 491, 492, + 493, 494, 495, 1021, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 1022, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 1023, 1024, 1025, 1026, 547, 548, 549, 1027, 1028, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 1029, 566, 1030, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 1031, 1032, 579, 1033, 581, + 582, 583, 0, 584, 585, 586, 1034, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1035, 1036, 0, 0, + 0, 0, 1037, 0, 0, 0, 1038, 0, 0, 1039, + 1040, 0, 0, 1041, 1042, 901, 902, 903, 904, 905, + 0, 0, 0, 0, 0, 0, 0, 906, 907, 0, + 908, 0, 0, 0, 0, 0, 0, 909, 910, 0, + 0, 911, 912, 913, 914, 0, 915, 916, 0, 917, + 918, 0, 0, 0, 0, 919, 0, 0, 0, 3069, + 0, 0, 921, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 922, 923, 924, 0, 925, 926, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 927, 928, + 929, 0, 930, 931, 0, 0, 0, 932, 933, 934, + 0, 3070, 0, 0, 0, 0, 0, 935, 0, 936, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 937, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 938, 0, 0, 0, 0, 939, 940, + 0, 941, 0, 0, 0, 0, 0, 942, 0, 943, + 0, 0, 944, 0, 0, 945, 946, 947, 0, 948, + 949, 950, 0, 951, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 952, 0, + 0, 0, 953, 954, 955, 956, 0, 0, 0, 0, + 0, 0, 957, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 958, 959, 0, 0, 0, 0, 0, + 0, 0, 960, 0, 0, 961, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 962, 0, 0, 0, 0, + 0, 963, 964, 0, 965, 966, 967, 0, 0, 0, + 968, 0, 0, 0, 0, 0, 0, 0, 969, 970, + 971, 972, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 973, 974, 975, 0, 0, 0, 0, 0, 976, + 0, 977, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 978, 172, 173, 174, 175, 176, + 177, 979, 179, 180, 181, 182, 183, 184, 185, 980, + 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 981, 202, 203, 204, 205, + 206, 207, 208, 209, 982, 211, 983, 984, 213, 985, + 986, 987, 988, 989, 0, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 990, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 991, 992, 993, 247, 994, 995, 250, 0, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 0, 996, 292, 293, 294, 295, 296, 997, 298, 998, + 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 999, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 1000, 1001, 334, 335, 336, 1002, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 1003, 376, 1004, 378, + 379, 380, 381, 1005, 1006, 1007, 1008, 386, 387, 388, + 389, 390, 391, 392, 393, 1009, 1010, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 1011, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 1012, 426, 427, 428, + 429, 430, 1013, 1014, 433, 434, 435, 436, 437, 438, + 1015, 440, 441, 442, 443, 444, 445, 1016, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 1017, 477, 478, + 479, 480, 481, 1018, 1019, 484, 485, 486, 487, 488, + 1020, 490, 491, 492, 493, 494, 495, 1021, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 1022, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 1023, 1024, 1025, 1026, 547, + 548, 549, 1027, 1028, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 1029, 566, 1030, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 1031, + 1032, 579, 1033, 581, 582, 583, 0, 584, 585, 586, + 1034, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1035, 1036, 0, 0, 0, 0, 1037, 0, 0, 0, + 1038, 0, 0, 1039, 1040, 0, 0, 1041, 1042, 901, + 902, 903, 904, 905, 0, 0, 0, 0, 0, 0, + 0, 906, 907, 0, 908, 0, 0, 0, 0, 0, + 0, 909, 910, 0, 0, 911, 912, 913, 914, 0, + 915, 916, 0, 917, 918, 0, 0, 0, 0, 919, + 0, 0, 0, 920, 0, 0, 921, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 922, 923, 924, 0, + 925, 926, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 927, 928, 929, 0, 930, 931, 0, 0, + 0, 932, 933, 934, 0, 0, 0, 0, 0, 0, + 0, 935, 0, 936, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 937, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 938, 0, 0, + 0, 0, 939, 940, 0, 941, 0, 0, 0, 0, + 0, 942, 0, 943, 0, 0, 944, 0, 0, 945, + 946, 947, 0, 948, 949, 950, 0, 951, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 952, 0, 0, 0, 953, 954, 955, 956, + 0, 0, 0, 0, 0, 0, 957, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 958, 959, 0, + 0, 0, 0, 0, 0, 0, 960, 0, 0, 961, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 962, + 0, 0, 0, 0, 0, 963, 964, 0, 965, 966, + 967, 0, 0, 0, 968, 0, 0, 0, 0, 0, + 0, 0, 969, 970, 971, 972, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 973, 974, 975, 0, 0, + 0, 0, 0, 976, 0, 977, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 978, 172, + 173, 174, 175, 176, 177, 979, 179, 180, 181, 182, + 183, 184, 185, 980, 187, 188, 0, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 981, + 202, 203, 204, 205, 206, 207, 208, 209, 982, 211, + 983, 984, 213, 985, 986, 987, 988, 989, 0, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 990, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 991, 992, 993, 247, 994, 995, + 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 0, 996, 292, 293, 294, 295, + 296, 997, 298, 998, 300, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 999, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 1000, 1001, 334, + 335, 336, 1002, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 1003, 376, 1004, 378, 379, 380, 381, 1005, 1006, 1007, + 1008, 386, 387, 388, 389, 390, 391, 392, 393, 1009, + 1010, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 1011, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 1012, 426, 427, 428, 429, 430, 1013, 1014, 433, 434, + 435, 436, 437, 438, 1015, 440, 441, 442, 443, 444, + 445, 1016, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 1017, 477, 478, 479, 480, 481, 1018, 1019, 484, + 485, 486, 487, 488, 1020, 490, 491, 492, 493, 494, + 495, 1021, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 1022, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 1023, + 1024, 1025, 1026, 547, 548, 549, 1027, 1028, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 1029, 566, 1030, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 1031, 1032, 579, 1033, 581, 582, 583, + 0, 584, 585, 586, 1034, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1035, 1036, 0, 0, 0, 0, + 1037, 0, 0, 0, 1038, 0, 0, 1039, 1040, 0, + 0, 1041, 1042, 901, 902, 903, 904, 905, 0, 0, + 0, 0, 0, 0, 0, 906, 907, 0, 908, 0, + 0, 0, 0, 0, 0, 909, 910, 0, 0, 911, + 912, 913, 914, 0, 915, 916, 0, 917, 918, 0, + 0, 0, 0, 919, 0, 0, 0, 920, 0, 0, + 921, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 922, 923, 924, 0, 925, 926, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 927, 928, 929, 0, + 930, 931, 0, 0, 0, 932, 933, 934, 0, 0, + 0, 0, 0, 0, 0, 935, 0, 936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 937, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 938, 0, 0, 0, 0, 939, 940, 0, 941, + 0, 0, 0, 0, 0, 942, 0, 943, 0, 0, + 944, 0, 0, 945, 946, 947, 0, 948, 949, 950, + 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 952, 0, 0, 0, + 953, 954, 955, 956, 0, 0, 0, 0, 0, 0, + 957, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 958, 959, 0, 0, 0, 0, 0, 0, 0, + 960, 0, 0, 961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 962, 0, 0, 0, 0, 0, 963, + 964, 0, 965, 966, 967, 0, 0, 0, 968, 0, + 0, 0, 0, 0, 0, 0, 969, 970, 971, 972, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, + 974, 975, 0, 0, 0, 0, 0, 976, 0, 977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 978, 172, 173, 174, 175, 176, 177, 979, + 179, 180, 181, 182, 183, 184, 185, 980, 187, 188, + 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 981, 202, 203, 204, 205, 206, 207, + 208, 209, 982, 211, 983, 984, 213, 985, 986, 987, + 988, 989, 0, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 990, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 991, 992, + 993, 247, 994, 995, 250, 0, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 0, 996, + 292, 293, 294, 295, 296, 997, 298, 998, 300, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 999, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 1000, 1001, 334, 335, 336, 1002, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 1003, 376, 1004, 378, 379, 380, + 381, 1005, 1006, 1007, 1008, 386, 387, 388, 389, 390, + 391, 392, 393, 1009, 1010, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 1011, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 1012, 426, 427, 428, 429, 430, + 1013, 1014, 433, 434, 435, 436, 437, 438, 1015, 440, + 441, 442, 443, 444, 445, 1016, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 1017, 477, 478, 479, 480, + 481, 1018, 1019, 484, 485, 486, 487, 488, 1020, 490, + 491, 492, 493, 494, 495, 1021, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 1022, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 1023, 1024, 1025, 1026, 547, 548, 549, + 1027, 1028, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 1029, 566, 1030, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 1031, 1032, 579, + 1033, 581, 582, 583, 0, 584, 585, 586, 1034, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1035, 1036, + 0, 0, 0, 0, 1037, 0, 0, 0, 1473, 0, + 0, 1039, 1040, 0, 0, 1041, 1042, 901, 902, 903, + 904, 905, 0, 0, 0, 0, 0, 0, 0, 906, + 907, 0, 908, 0, 0, 0, 0, 0, 0, 909, + 910, 0, 0, 911, 912, 913, 914, 0, 915, 916, + 0, 917, 918, 0, 0, 0, 0, 919, 0, 0, + 0, 920, 0, 0, 921, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 922, 923, 924, 0, 925, 926, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 927, 928, 929, 0, 930, 931, 0, 0, 0, 932, + 933, 934, 0, 0, 0, 0, 0, 0, 0, 935, + 0, 936, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 937, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 938, 0, 0, 0, 0, + 939, 940, 0, 941, 0, 0, 0, 0, 0, 942, + 0, 943, 0, 0, 944, 0, 0, 945, 946, 947, + 0, 948, 949, 950, 0, 951, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 952, 0, 0, 0, 953, 954, 955, 956, 0, 0, + 0, 0, 0, 0, 957, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 958, 959, 0, 0, 0, + 0, 0, 0, 0, 960, 0, 0, 961, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 962, 0, 0, + 0, 0, 0, 963, 964, 0, 965, 966, 967, 0, + 0, 0, 968, 0, 0, 0, 0, 0, 0, 0, + 969, 970, 971, 972, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 973, 974, 975, 0, 0, 0, 0, + 0, 976, 0, 977, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 978, 172, 173, 174, + 175, 176, 177, 979, 179, 180, 181, 182, 183, 184, + 185, 980, 187, 188, 0, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 981, 202, 203, + 204, 205, 206, 207, 208, 209, 982, 211, 983, 984, + 213, 985, 986, 987, 988, 989, 0, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 990, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 991, 992, 993, 247, 994, 995, 250, 0, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 0, 996, 292, 293, 294, 295, 296, 997, + 298, 998, 300, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 999, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 1000, 1001, 334, 335, 336, + 1002, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 1003, 376, + 1004, 378, 379, 380, 381, 1005, 1006, 1007, 1008, 386, + 387, 388, 389, 390, 391, 392, 393, 1009, 1010, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 1011, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 1012, 426, + 427, 428, 429, 430, 1013, 1014, 433, 434, 435, 436, + 437, 438, 1015, 440, 441, 442, 443, 444, 445, 1016, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 1017, + 477, 478, 479, 480, 481, 1018, 1019, 484, 485, 486, + 487, 488, 1020, 490, 491, 492, 493, 494, 495, 1021, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 1022, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 1023, 1024, 1025, + 1026, 547, 548, 549, 1027, 1028, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 2021, + 566, 1030, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 1031, 1032, 579, 1033, 581, 582, 583, 0, 584, + 585, 586, 1034, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1035, 1036, 0, 0, 0, 0, 1037, 0, + 0, 0, 1038, 0, 0, 1039, 1040, 0, 0, 1041, + 1042, 901, 902, 903, 904, 905, 0, 0, 0, 0, + 0, 0, 0, 906, 907, 0, 908, 0, 0, 0, + 0, 0, 0, 909, 910, 0, 0, 911, 912, 913, + 914, 0, 915, 916, 0, 917, 918, 0, 0, 0, + 0, 919, 0, 0, 0, 920, 0, 0, 921, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 922, 923, + 924, 0, 925, 926, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 927, 928, 929, 0, 930, 931, + 0, 0, 0, 932, 933, 934, 0, 0, 0, 0, + 0, 0, 0, 935, 0, 3438, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 937, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 938, + 0, 0, 0, 0, 939, 940, 0, 941, 0, 0, + 0, 0, 0, 942, 0, 943, 0, 0, 944, 0, + 0, 945, 946, 947, 0, 948, 949, 950, 0, 951, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 952, 0, 0, 0, 953, 954, + 955, 956, 0, 0, 0, 0, 0, 0, 957, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 958, + 959, 0, 0, 0, 0, 0, 0, 0, 960, 0, + 0, 961, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 962, 0, 0, 0, 0, 0, 963, 964, 0, + 965, 966, 967, 0, 0, 0, 968, 0, 0, 0, + 0, 0, 0, 0, 969, 970, 971, 972, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, + 0, 0, 0, 0, 0, 976, 0, 977, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 978, 172, 173, 174, 175, 176, 177, 979, 179, 180, + 181, 182, 183, 184, 185, 980, 187, 188, 0, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 981, 202, 203, 204, 205, 206, 207, 208, 209, + 982, 211, 983, 984, 213, 985, 986, 987, 988, 989, + 0, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 990, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 991, 992, 993, 247, + 994, 995, 250, 0, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 0, 0, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 0, 996, 292, 293, + 294, 295, 296, 997, 298, 998, 300, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 999, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 1000, + 1001, 334, 335, 336, 1002, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 1003, 376, 1004, 378, 379, 380, 381, 1005, + 1006, 1007, 1008, 386, 387, 388, 389, 390, 391, 392, + 393, 1009, 1010, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 1011, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 1012, 426, 427, 428, 429, 430, 1013, 1014, + 433, 434, 435, 436, 437, 438, 1015, 440, 441, 442, + 443, 444, 445, 1016, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 1017, 477, 478, 479, 480, 481, 1018, + 1019, 484, 485, 486, 487, 488, 1020, 490, 491, 492, + 493, 494, 495, 1021, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 1022, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 1023, 1024, 1025, 1026, 547, 548, 549, 1027, 1028, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 1029, 566, 1030, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 1031, 1032, 579, 1033, 581, + 582, 583, 0, 584, 585, 586, 1034, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1035, 1036, 0, 0, + 0, 0, 1037, 0, 0, 0, 1038, 0, 0, 1039, + 1040, 0, 0, 1041, 1042, 901, 902, 903, 904, 905, + 0, 0, 0, 0, 0, 0, 0, 906, 907, 0, + 908, 0, 0, 0, 0, 0, 0, 909, 910, 0, + 0, 911, 912, 913, 914, 0, 915, 916, 0, 917, + 918, 0, 0, 0, 0, 919, 0, 0, 0, 920, + 0, 0, 921, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 922, 923, 924, 0, 925, 926, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 927, 928, + 929, 0, 930, 931, 0, 0, 0, 932, 933, 934, + 0, 0, 0, 0, 0, 0, 0, 935, 0, 3460, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 937, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 938, 0, 0, 0, 0, 939, 940, + 0, 941, 0, 0, 0, 0, 0, 942, 0, 943, + 0, 0, 944, 0, 0, 945, 946, 947, 0, 948, + 949, 950, 0, 951, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 952, 0, + 0, 0, 953, 954, 955, 956, 0, 0, 0, 0, + 0, 0, 957, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 958, 959, 0, 0, 0, 0, 0, + 0, 0, 960, 0, 0, 961, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 962, 0, 0, 0, 0, + 0, 963, 964, 0, 965, 966, 967, 0, 0, 0, + 968, 0, 0, 0, 0, 0, 0, 0, 969, 970, + 971, 972, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 973, 974, 975, 0, 0, 0, 0, 0, 976, + 0, 977, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 978, 172, 173, 174, 175, 176, + 177, 979, 179, 180, 181, 182, 183, 184, 185, 980, + 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 981, 202, 203, 204, 205, + 206, 207, 208, 209, 982, 211, 983, 984, 213, 985, + 986, 987, 988, 989, 0, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 990, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 991, 992, 993, 247, 994, 995, 250, 0, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 0, 996, 292, 293, 294, 295, 296, 997, 298, 998, + 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 999, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 1000, 1001, 334, 335, 336, 1002, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 1003, 376, 1004, 378, + 379, 380, 381, 1005, 1006, 1007, 1008, 386, 387, 388, + 389, 390, 391, 392, 393, 1009, 1010, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 1011, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 1012, 426, 427, 428, + 429, 430, 1013, 1014, 433, 434, 435, 436, 437, 438, + 1015, 440, 441, 442, 443, 444, 445, 1016, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 1017, 477, 478, + 479, 480, 481, 1018, 1019, 484, 485, 486, 487, 488, + 1020, 490, 491, 492, 493, 494, 495, 1021, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 1022, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 1023, 1024, 1025, 1026, 547, + 548, 549, 1027, 1028, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 1029, 566, 1030, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 1031, + 1032, 579, 1033, 581, 582, 583, 0, 584, 585, 586, + 1034, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1035, 1036, 0, 0, 0, 0, 1037, 0, 0, 0, + 1038, 0, 0, 1039, 1040, 0, 0, 1041, 1042, 901, + 902, 903, 904, 905, 0, 0, 0, 0, 0, 0, + 0, 906, 907, 0, 908, 0, 0, 0, 0, 0, + 0, 909, 910, 0, 0, 911, 912, 913, 914, 0, + 915, 916, 0, 917, 918, 0, 0, 0, 0, 919, + 0, 0, 0, 920, 0, 0, 921, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 922, 923, 924, 0, + 925, 926, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 927, 928, 929, 0, 930, 931, 0, 0, + 0, 932, 933, 934, 0, 0, 0, 0, 0, 0, + 0, 935, 0, 936, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 937, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 938, 0, 0, + 0, 0, 939, 940, 5800, 941, 0, 0, 0, 0, + 0, 942, 0, 943, 0, 0, 944, 0, 0, 945, + 0, 947, 0, 948, 949, 950, 0, 951, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 952, 0, 0, 0, 953, 954, 955, 956, + 0, 0, 0, 0, 0, 0, 957, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 958, 959, 0, + 0, 0, 0, 0, 0, 0, 960, 0, 0, 961, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 962, + 0, 0, 0, 0, 0, 963, 964, 0, 965, 966, + 967, 0, 0, 0, 968, 0, 0, 0, 0, 0, + 0, 0, 969, 970, 971, 972, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 973, 974, 975, 0, 0, + 0, 0, 0, 976, 0, 977, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 978, 172, + 173, 174, 175, 176, 177, 979, 179, 180, 181, 182, + 183, 184, 185, 980, 187, 188, 0, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 981, + 202, 203, 204, 205, 206, 207, 208, 209, 982, 211, + 983, 984, 213, 985, 986, 987, 988, 989, 0, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 990, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 991, 992, 993, 247, 994, 995, + 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 0, 996, 292, 293, 294, 295, + 296, 997, 298, 998, 300, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 999, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 1000, 1001, 334, + 335, 336, 1002, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 1003, 376, 1004, 378, 379, 380, 381, 1005, 1006, 1007, + 1008, 386, 387, 388, 389, 390, 391, 392, 393, 1009, + 1010, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 1011, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 1012, 426, 427, 428, 429, 430, 1013, 1014, 433, 434, + 435, 436, 437, 438, 1015, 440, 441, 442, 443, 444, + 445, 1016, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 1017, 477, 478, 479, 480, 481, 1018, 1019, 484, + 485, 486, 487, 488, 1020, 490, 491, 492, 493, 494, + 495, 1021, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 1022, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 1023, + 1024, 1025, 1026, 547, 548, 549, 1027, 1028, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 1029, 566, 1030, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 1031, 1032, 579, 1033, 581, 582, 583, + 0, 584, 585, 586, 1034, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1035, 1036, 0, 0, 0, 0, + 1037, 0, 0, 0, 1038, 0, 0, 1039, 1040, 0, + 0, 1041, 1042, 901, 902, 903, 904, 905, 0, 0, + 0, 0, 0, 0, 0, 906, 907, 0, 908, 0, + 0, 0, 0, 0, 0, 909, 910, 0, 0, 911, + 912, 913, 914, 0, 915, 916, 0, 917, 918, 0, + 0, 0, 0, 919, 0, 0, 0, 920, 0, 0, + 921, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 5615, 0, 0, + 922, 923, 924, 0, 925, 926, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 927, 928, 929, 0, + 930, 931, 0, 0, 0, 932, 933, 934, 0, 0, + 0, 0, 0, 0, 0, 935, 0, 1439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2337, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2338, 902, 903, 904, 905, 0, - 0, 0, 0, 0, 0, 0, 906, 907, 0, 908, - 0, 0, 0, 0, 0, 0, 909, 910, 0, 0, - 911, 912, 913, 914, 0, 915, 916, 0, 917, 918, - 0, 0, 0, 0, 919, 0, 0, 0, 2339, 0, - 0, 921, 0, 0, 0, 0, 0, 0, 0, 0, + 937, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 938, 0, 0, 0, 0, 939, 940, 0, 941, + 0, 0, 0, 0, 0, 942, 0, 943, 0, 0, + 944, 0, 0, 945, 0, 947, 0, 948, 949, 950, + 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 952, 0, 0, 0, + 953, 954, 955, 956, 0, 0, 0, 0, 0, 0, + 957, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 958, 959, 0, 0, 0, 0, 0, 0, 0, + 960, 0, 0, 961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 922, 923, 924, 0, 925, 926, 0, 0, 0, - 0, 0, 0, 0, 1583, 0, 0, 927, 928, 929, - 0, 930, 931, 0, 0, 0, 932, 933, 934, 0, - 0, 0, 0, 0, 0, 0, 935, 0, 936, 0, - 0, 0, 0, 0, 0, 0, 5720, 0, 0, 0, - 0, 937, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 938, 0, 0, 0, 0, 939, 940, 0, - 941, 0, 0, 0, 0, 0, 942, 0, 943, 0, - 0, 944, 0, 0, 945, 946, 947, 0, 948, 949, - 950, 0, 951, 2340, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 952, 0, 0, - 0, 953, 954, 955, 956, 0, 0, 0, 0, 0, - 0, 957, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 958, 959, 0, 0, 0, 0, 0, 0, - 0, 960, 0, 0, 961, 0, 0, 0, 0, 0, + 0, 0, 0, 962, 0, 0, 0, 0, 0, 963, + 964, 0, 965, 966, 967, 0, 0, 0, 968, 0, + 0, 0, 0, 0, 0, 0, 969, 970, 971, 972, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, + 974, 975, 0, 0, 0, 0, 0, 976, 0, 977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3073, 0, 0, 0, 962, 0, 0, 0, 0, 0, - 963, 964, 0, 965, 966, 967, 0, 0, 0, 968, - 0, 0, 0, 0, 0, 0, 0, 969, 970, 971, - 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 973, 974, 975, 0, 0, 0, 0, 0, 976, 0, - 977, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 978, 172, 173, 174, 175, 176, 177, - 979, 179, 180, 181, 182, 183, 184, 185, 980, 187, - 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 981, 202, 203, 204, 205, 206, - 207, 208, 209, 982, 211, 983, 984, 213, 985, 986, - 987, 988, 989, 0, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 990, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 991, - 992, 993, 247, 994, 995, 250, 0, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 0, 3073, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, - 996, 292, 293, 294, 295, 296, 997, 298, 998, 300, - 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, - 999, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 1000, 1001, 334, 335, 336, 1002, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 1003, 376, 1004, 378, 379, - 380, 381, 1005, 1006, 1007, 1008, 386, 387, 388, 389, - 390, 391, 392, 393, 1009, 1010, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 1011, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 1012, 426, 427, 428, 429, - 430, 1013, 1014, 433, 434, 435, 436, 437, 438, 1015, - 440, 441, 442, 443, 444, 445, 1016, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 1017, 477, 478, 479, - 480, 481, 1018, 1019, 484, 485, 486, 487, 488, 1020, - 490, 491, 492, 493, 494, 495, 1021, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 1022, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 1023, 1024, 1025, 1026, 547, 548, - 549, 1027, 1028, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 1029, 566, 1030, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 1031, 1032, - 579, 1033, 581, 582, 583, 0, 584, 585, 586, 1034, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1035, - 1036, 0, 0, 0, 0, 1037, 0, 2242, 0, 1038, - 0, 0, 1039, 1040, 0, 0, 1041, 1042, 901, 902, - 903, 904, 905, 0, 0, 0, 0, 0, 0, 0, - 906, 907, 0, 908, 0, 0, 0, 0, 0, 0, - 909, 910, 0, 0, 911, 912, 913, 914, 0, 915, - 916, 0, 917, 918, 0, 0, 0, 0, 919, 0, - 0, 0, 920, 0, 0, 921, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 922, 923, 924, 0, 925, - 926, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 927, 928, 929, 0, 930, 931, 0, 0, 0, - 932, 933, 934, 0, 0, 0, 0, 0, 0, 0, - 935, 0, 936, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 937, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 938, 0, 0, 0, - 0, 939, 940, 0, 941, 0, 0, 0, 0, 0, - 942, 0, 943, 0, 0, 944, 0, 0, 945, 0, - 947, 0, 948, 949, 950, 0, 951, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 952, 0, 0, 0, 953, 954, 955, 956, 0, - 0, 0, 0, 0, 0, 957, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 958, 959, 0, 0, - 0, 0, 0, 0, 0, 960, 0, 0, 961, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 962, 0, - 0, 0, 0, 0, 963, 964, 0, 965, 966, 967, - 0, 0, 0, 968, 0, 0, 0, 0, 0, 0, - 0, 969, 970, 971, 972, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 973, 974, 975, 0, 0, 0, - 0, 0, 976, 0, 977, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 978, 172, 173, - 174, 175, 176, 2243, 979, 179, 180, 181, 182, 183, - 184, 185, 980, 187, 188, 0, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 981, 202, - 203, 204, 205, 206, 207, 208, 209, 982, 211, 983, - 984, 213, 985, 986, 987, 988, 989, 0, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 990, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 991, 992, 993, 247, 994, 995, 250, - 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, - 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 0, 996, 292, 293, 294, 295, 296, - 997, 298, 998, 300, 301, 302, 303, 304, 305, 306, - 0, 307, 308, 309, 999, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 1000, 1001, 334, 335, - 336, 1002, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 1003, - 376, 1004, 378, 379, 380, 381, 1005, 1006, 1007, 1008, - 386, 387, 388, 389, 390, 391, 392, 393, 1009, 1010, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 1011, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 1012, - 426, 427, 428, 429, 430, 1013, 1014, 433, 434, 435, - 436, 437, 438, 1015, 440, 441, 442, 443, 444, 445, - 1016, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 1017, 477, 478, 479, 480, 481, 1018, 1019, 484, 485, - 486, 487, 488, 1020, 490, 491, 492, 493, 494, 495, - 1021, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 0, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 1022, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 1023, 1024, - 1025, 1026, 547, 548, 549, 1027, 1028, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 1029, 566, 1030, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 1031, 1032, 579, 1033, 581, 582, 583, 0, - 584, 585, 586, 1034, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1035, 1036, 0, 0, 0, 0, 1037, - 0, 0, 0, 1038, 0, 0, 1039, 1040, 0, 0, - 1041, 1042, 901, 902, 903, 904, 905, 0, 0, 0, - 2148, 0, 0, 0, 906, 907, 0, 908, 0, 0, - 0, 0, 0, 0, 909, 910, 0, 0, 911, 912, - 913, 914, 0, 915, 916, 0, 917, 918, 0, 0, - 0, 0, 919, 0, 0, 0, 920, 0, 0, 921, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 922, - 923, 924, 0, 925, 926, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 927, 928, 929, 0, 930, - 931, 0, 0, 0, 932, 933, 934, 0, 0, 0, - 0, 0, 0, 0, 935, 0, 936, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2149, 0, 937, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 938, 0, 0, 0, 0, 939, 940, 0, 941, 0, - 0, 0, 0, 0, 942, 0, 943, 0, 0, 944, - 0, 0, 945, 946, 947, 0, 948, 949, 950, 0, - 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 952, 0, 0, 0, 953, - 954, 955, 956, 0, 0, 0, 0, 0, 0, 957, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 958, 959, 0, 0, 0, 0, 0, 0, 0, 960, - 0, 0, 961, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 962, 0, 0, 0, 0, 0, 963, 964, - 0, 965, 966, 967, 0, 0, 0, 968, 0, 0, - 0, 0, 0, 2150, 0, 969, 970, 971, 972, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, - 975, 0, 0, 0, 0, 0, 976, 0, 977, 0, + 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 978, 172, 173, 174, 175, 176, 177, 979, + 179, 180, 181, 182, 183, 184, 185, 980, 187, 188, + 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 981, 202, 203, 204, 205, 206, 207, + 208, 209, 982, 211, 983, 984, 213, 985, 986, 987, + 988, 989, 0, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 990, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 991, 992, + 993, 247, 994, 995, 250, 0, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 0, 996, + 292, 293, 294, 295, 296, 997, 298, 998, 300, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 999, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 1000, 1001, 334, 335, 336, 1002, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 1003, 376, 1004, 378, 379, 380, + 381, 1005, 1006, 1007, 1008, 386, 387, 388, 389, 390, + 391, 392, 393, 1009, 1010, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 1011, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 1012, 426, 427, 428, 429, 430, + 1013, 1014, 433, 434, 435, 436, 437, 438, 1015, 440, + 441, 442, 443, 444, 445, 1016, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 1017, 477, 478, 479, 480, + 481, 1018, 1019, 484, 485, 486, 487, 488, 1020, 490, + 491, 492, 493, 494, 495, 1021, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 1022, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 1023, 1024, 1025, 1026, 547, 548, 549, + 1027, 1028, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 1029, 566, 1030, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 1031, 1032, 579, + 1033, 581, 582, 583, 0, 584, 585, 586, 1034, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1440, 1441, + 0, 0, 0, 0, 1037, 0, 0, 0, 1038, 0, + 0, 1039, 1040, 0, 0, 1041, 1042, 901, 902, 903, + 904, 905, 0, 0, 0, 0, 0, 0, 0, 906, + 907, 0, 908, 0, 0, 0, 0, 0, 0, 909, + 910, 0, 0, 911, 912, 913, 914, 0, 915, 916, + 0, 917, 918, 0, 0, 0, 0, 919, 0, 0, + 0, 920, 0, 0, 921, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 922, 923, 924, 0, 925, 926, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 927, 928, 929, 0, 930, 931, 0, 0, 0, 932, + 933, 934, 0, 0, 0, 0, 0, 0, 0, 935, + 0, 1577, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 937, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 938, 0, 0, 0, 0, + 939, 940, 0, 941, 0, 0, 0, 0, 0, 942, + 0, 943, 0, 0, 944, 0, 0, 945, 0, 947, + 0, 948, 949, 950, 0, 951, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 952, 0, 0, 0, 953, 954, 955, 956, 0, 0, + 0, 0, 0, 0, 957, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 958, 959, 0, 0, 0, + 0, 0, 0, 0, 960, 0, 0, 961, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 962, 0, 0, + 0, 0, 0, 963, 964, 0, 965, 966, 967, 0, + 0, 0, 968, 0, 0, 0, 0, 0, 0, 0, + 969, 970, 971, 972, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 973, 974, 975, 0, 0, 0, 0, + 0, 976, 0, 977, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 978, 172, 173, 174, + 175, 176, 177, 979, 179, 180, 181, 182, 183, 184, + 185, 980, 187, 188, 0, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 981, 202, 203, + 204, 205, 206, 207, 208, 209, 982, 211, 983, 984, + 213, 985, 986, 987, 988, 989, 0, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 990, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 991, 992, 993, 247, 994, 995, 250, 0, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 0, 996, 292, 293, 294, 295, 296, 997, + 298, 998, 300, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 999, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 1000, 1001, 334, 335, 336, + 1002, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 1003, 376, + 1004, 378, 379, 380, 381, 1005, 1006, 1007, 1008, 386, + 387, 388, 389, 390, 391, 392, 393, 1009, 1010, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 1011, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 1012, 426, + 427, 428, 429, 430, 1013, 1014, 433, 434, 435, 436, + 437, 438, 1015, 440, 441, 442, 443, 444, 445, 1016, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 1017, + 477, 478, 479, 480, 481, 1018, 1019, 484, 485, 486, + 487, 488, 1020, 490, 491, 492, 493, 494, 495, 1021, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 1022, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 1023, 1024, 1025, + 1026, 547, 548, 549, 1027, 1028, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 1029, + 566, 1030, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 1031, 1032, 579, 1033, 581, 582, 583, 0, 584, + 585, 586, 1034, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1440, 1441, 0, 0, 0, 0, 1037, 0, + 0, 0, 1038, 0, 0, 1039, 1040, 0, 0, 1041, + 1042, 901, 902, 903, 904, 905, 0, 0, 0, 0, + 0, 0, 0, 906, 907, 0, 908, 0, 0, 0, + 0, 0, 0, 909, 910, 0, 0, 911, 912, 913, + 914, 0, 915, 916, 0, 917, 918, 0, 0, 0, + 0, 919, 0, 0, 0, 920, 0, 0, 921, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 922, 923, + 924, 0, 925, 926, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 927, 928, 929, 0, 930, 931, + 0, 0, 0, 932, 933, 934, 0, 0, 0, 0, + 0, 0, 0, 935, 0, 1579, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 937, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 938, + 0, 0, 0, 0, 939, 940, 0, 941, 0, 0, + 0, 0, 0, 942, 0, 943, 0, 0, 944, 0, + 0, 945, 0, 947, 0, 948, 949, 950, 0, 951, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 952, 0, 0, 0, 953, 954, + 955, 956, 0, 0, 0, 0, 0, 0, 957, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 958, + 959, 0, 0, 0, 0, 0, 0, 0, 960, 0, + 0, 961, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 962, 0, 0, 0, 0, 0, 963, 964, 0, + 965, 966, 967, 0, 0, 0, 968, 0, 0, 0, + 0, 0, 0, 0, 969, 970, 971, 972, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, + 0, 0, 0, 0, 0, 976, 0, 977, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 978, 172, 173, 174, 175, 176, 177, 979, 179, 180, + 181, 182, 183, 184, 185, 980, 187, 188, 0, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 981, 202, 203, 204, 205, 206, 207, 208, 209, + 982, 211, 983, 984, 213, 985, 986, 987, 988, 989, + 0, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 990, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 991, 992, 993, 247, + 994, 995, 250, 0, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 0, 0, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 0, 996, 292, 293, + 294, 295, 296, 997, 298, 998, 300, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 999, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 1000, + 1001, 334, 335, 336, 1002, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 1003, 376, 1004, 378, 379, 380, 381, 1005, + 1006, 1007, 1008, 386, 387, 388, 389, 390, 391, 392, + 393, 1009, 1010, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 1011, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 1012, 426, 427, 428, 429, 430, 1013, 1014, + 433, 434, 435, 436, 437, 438, 1015, 440, 441, 442, + 443, 444, 445, 1016, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 1017, 477, 478, 479, 480, 481, 1018, + 1019, 484, 485, 486, 487, 488, 1020, 490, 491, 492, + 493, 494, 495, 1021, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 1022, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 1023, 1024, 1025, 1026, 547, 548, 549, 1027, 1028, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 1029, 566, 1030, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 1031, 1032, 579, 1033, 581, + 582, 583, 0, 584, 585, 586, 1034, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1440, 1441, 0, 0, + 0, 0, 1037, 0, 0, 0, 1038, 0, 0, 1039, + 1040, 0, 0, 1041, 1042, 901, 902, 903, 904, 905, + 0, 0, 0, 0, 0, 0, 0, 906, 907, 0, + 908, 0, 0, 0, 0, 0, 0, 909, 910, 0, + 0, 911, 912, 913, 914, 0, 915, 916, 0, 917, + 918, 0, 0, 0, 0, 919, 0, 0, 0, 920, + 0, 0, 921, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 922, 923, 924, 0, 925, 926, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 927, 928, + 929, 0, 930, 931, 0, 0, 0, 932, 933, 934, + 0, 0, 0, 0, 0, 0, 0, 935, 0, 936, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 937, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 938, 0, 0, 0, 0, 939, 940, + 0, 941, 0, 0, 0, 0, 0, 942, 0, 943, + 0, 0, 944, 0, 0, 945, 0, 947, 0, 948, + 949, 950, 0, 951, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 952, 0, + 0, 0, 953, 954, 955, 956, 0, 0, 0, 0, + 0, 0, 957, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 958, 959, 0, 0, 0, 0, 0, + 0, 0, 960, 0, 0, 961, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 962, 0, 0, 0, 0, + 0, 963, 964, 0, 965, 966, 967, 0, 0, 0, + 968, 0, 0, 0, 0, 0, 0, 0, 969, 970, + 971, 972, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 973, 974, 975, 0, 0, 0, 0, 0, 976, + 0, 977, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 978, 172, 173, 174, 175, 176, + 177, 979, 179, 180, 181, 182, 183, 184, 185, 980, + 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 981, 202, 203, 204, 205, + 206, 207, 208, 209, 982, 211, 983, 984, 213, 985, + 986, 987, 988, 989, 0, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 990, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 991, 992, 993, 247, 994, 995, 250, 0, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 0, 996, 292, 293, 294, 295, 296, 997, 298, 998, + 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 999, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 1000, 1001, 334, 335, 336, 1002, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 1003, 376, 1004, 378, + 379, 380, 381, 1005, 1006, 1007, 1008, 386, 387, 388, + 389, 390, 391, 392, 393, 1009, 1010, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 1011, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 1012, 426, 427, 428, + 429, 430, 1013, 1014, 433, 434, 435, 436, 437, 438, + 1015, 440, 441, 442, 443, 444, 445, 1016, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 1017, 477, 478, + 479, 480, 481, 1018, 1019, 484, 485, 486, 487, 488, + 1020, 490, 491, 492, 493, 494, 495, 1021, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 1022, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 1023, 1024, 1025, 1026, 547, + 548, 549, 1027, 1028, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 1029, 566, 1030, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 1031, + 1032, 579, 1033, 581, 582, 583, 0, 584, 585, 586, + 1034, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1035, 1036, 0, 0, 0, 0, 1037, 0, 0, 0, + 1038, 0, 0, 1039, 1040, 0, 0, 1041, 1042, 901, + 902, 903, 904, 905, 0, 0, 0, 0, 0, 0, + 0, 906, 907, 0, 908, 0, 0, 0, 0, 0, + 0, 909, 910, 0, 0, 911, 912, 913, 914, 0, + 915, 916, 0, 917, 918, 0, 0, 0, 0, 919, + 0, 0, 0, 920, 0, 0, 921, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 922, 923, 924, 0, + 925, 926, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 927, 928, 929, 0, 930, 931, 0, 0, + 0, 932, 933, 934, 0, 0, 0, 0, 0, 0, + 0, 935, 0, 2258, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 937, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 938, 0, 0, + 0, 0, 939, 940, 0, 941, 0, 0, 0, 0, + 0, 942, 0, 943, 0, 0, 944, 0, 0, 945, + 0, 947, 0, 948, 949, 950, 0, 951, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 952, 0, 0, 0, 953, 954, 955, 956, + 0, 0, 0, 0, 0, 0, 957, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 958, 959, 0, + 0, 0, 0, 0, 0, 0, 960, 0, 0, 961, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 962, + 0, 0, 0, 0, 0, 963, 964, 0, 965, 966, + 967, 0, 0, 0, 968, 0, 0, 0, 0, 0, + 0, 0, 969, 970, 971, 972, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 973, 974, 975, 0, 0, + 0, 0, 0, 976, 0, 977, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 978, 172, + 173, 174, 175, 176, 177, 979, 179, 180, 181, 182, + 183, 184, 185, 980, 187, 188, 0, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 981, + 202, 203, 204, 205, 206, 207, 208, 209, 982, 211, + 983, 984, 213, 985, 986, 987, 988, 989, 0, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 990, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 991, 992, 993, 247, 994, 995, + 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 0, 996, 292, 293, 294, 295, + 296, 997, 298, 998, 300, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 999, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 1000, 1001, 334, + 335, 336, 1002, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 1003, 376, 1004, 378, 379, 380, 381, 1005, 1006, 1007, + 1008, 386, 387, 388, 389, 390, 391, 392, 393, 1009, + 1010, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 1011, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 1012, 426, 427, 428, 429, 430, 1013, 1014, 433, 434, + 435, 436, 437, 438, 1015, 440, 441, 442, 443, 444, + 445, 1016, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 1017, 477, 478, 479, 480, 481, 1018, 1019, 484, + 485, 486, 487, 488, 1020, 490, 491, 492, 493, 494, + 495, 1021, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 1022, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 1023, + 1024, 1025, 1026, 547, 548, 549, 1027, 1028, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 1029, 566, 1030, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 1031, 1032, 579, 1033, 581, 582, 583, + 0, 584, 585, 586, 1034, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1035, 1036, 0, 0, 0, 0, + 1037, 0, 0, 0, 1038, 0, 0, 1039, 1040, 0, + 0, 1041, 1042, 901, 902, 903, 904, 905, 0, 0, + 0, 0, 0, 0, 0, 906, 907, 0, 908, 0, + 0, 0, 0, 0, 0, 909, 910, 0, 0, 911, + 912, 913, 914, 0, 915, 916, 0, 917, 918, 0, + 0, 0, 0, 919, 0, 0, 0, 920, 0, 0, + 921, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 978, 172, 173, 174, 175, 176, 177, 979, 179, - 180, 181, 182, 183, 184, 185, 980, 187, 188, 0, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 981, 202, 203, 204, 205, 206, 207, 208, - 209, 982, 211, 983, 984, 213, 985, 986, 987, 988, - 989, 0, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 990, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 991, 992, 993, - 247, 994, 995, 250, 0, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 0, 0, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 0, 996, 292, - 293, 294, 295, 296, 997, 298, 998, 300, 301, 302, - 303, 304, 305, 306, 0, 307, 308, 309, 999, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 1000, 1001, 334, 335, 336, 1002, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 1003, 376, 1004, 378, 379, 380, 381, - 1005, 1006, 1007, 1008, 386, 387, 388, 389, 390, 391, - 392, 393, 1009, 1010, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 1011, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 1012, 426, 427, 428, 429, 430, 1013, - 1014, 433, 434, 435, 436, 437, 438, 1015, 440, 441, - 442, 443, 444, 445, 1016, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 1017, 477, 478, 479, 480, 481, - 1018, 1019, 484, 485, 486, 487, 488, 1020, 490, 491, - 492, 493, 494, 495, 1021, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, - 521, 522, 523, 1022, 525, 526, 527, 528, 529, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 1023, 1024, 1025, 1026, 547, 548, 549, 1027, - 1028, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 1029, 566, 1030, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 1031, 1032, 579, 1033, - 581, 582, 583, 0, 584, 585, 586, 1034, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1035, 1036, 0, - 0, 0, 0, 1037, 0, 0, 0, 1038, 0, 0, - 1039, 1040, 0, 0, 1041, 1042, 901, 902, 903, 904, + 922, 923, 924, 0, 925, 926, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 927, 928, 929, 0, + 930, 931, 0, 0, 0, 932, 933, 934, 0, 0, + 0, 0, 0, 0, 0, 935, 0, 2260, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 937, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 938, 0, 0, 0, 0, 939, 940, 0, 941, + 0, 0, 0, 0, 0, 942, 0, 943, 0, 0, + 944, 0, 0, 945, 0, 947, 0, 948, 949, 950, + 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 952, 0, 0, 0, + 953, 954, 955, 956, 0, 0, 0, 0, 0, 0, + 957, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 958, 959, 0, 0, 0, 0, 0, 0, 0, + 960, 0, 0, 961, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 962, 0, 0, 0, 0, 0, 963, + 964, 0, 965, 966, 967, 0, 0, 0, 968, 0, + 0, 0, 0, 0, 0, 0, 969, 970, 971, 972, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, + 974, 975, 0, 0, 0, 0, 0, 976, 0, 977, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 978, 172, 173, 174, 175, 176, 177, 979, + 179, 180, 181, 182, 183, 184, 185, 980, 187, 188, + 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 981, 202, 203, 204, 205, 206, 207, + 208, 209, 982, 211, 983, 984, 213, 985, 986, 987, + 988, 989, 0, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 990, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 991, 992, + 993, 247, 994, 995, 250, 0, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 0, 996, + 292, 293, 294, 295, 296, 997, 298, 998, 300, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 999, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 1000, 1001, 334, 335, 336, 1002, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 1003, 376, 1004, 378, 379, 380, + 381, 1005, 1006, 1007, 1008, 386, 387, 388, 389, 390, + 391, 392, 393, 1009, 1010, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 1011, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 1012, 426, 427, 428, 429, 430, + 1013, 1014, 433, 434, 435, 436, 437, 438, 1015, 440, + 441, 442, 443, 444, 445, 1016, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 1017, 477, 478, 479, 480, + 481, 1018, 1019, 484, 485, 486, 487, 488, 1020, 490, + 491, 492, 493, 494, 495, 1021, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 1022, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 1023, 1024, 1025, 1026, 547, 548, 549, + 1027, 1028, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 1029, 566, 1030, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 1031, 1032, 579, + 1033, 581, 582, 583, 0, 584, 585, 586, 1034, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1035, 1036, + 0, 0, 0, 0, 1037, 0, 0, 0, 1038, 0, + 0, 1039, 1040, 0, 0, 1041, 1042, 902, 903, 904, 905, 0, 0, 0, 0, 0, 0, 0, 906, 907, 0, 908, 0, 0, 0, 0, 0, 0, 909, 910, 0, 0, 911, 912, 913, 914, 0, 915, 916, 0, @@ -6213,11 +7522,11 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 927, 928, 929, 0, 930, 931, 0, 0, 0, 932, 933, 934, 0, 0, 0, 0, 0, 0, 0, 935, 0, - 936, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 937, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 938, 0, 0, 0, 0, 939, 940, 0, 941, 0, 0, 0, 0, 0, 942, 0, - 943, 0, 0, 944, 0, 0, 945, 946, 947, 0, + 943, 0, 0, 944, 0, 0, 0, 0, 947, 0, 948, 949, 950, 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 952, 0, 0, 0, 953, 954, 955, 956, 0, 0, 0, @@ -6230,7 +7539,7 @@ 0, 968, 0, 0, 0, 0, 0, 0, 0, 969, 970, 971, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, 975, 0, 0, 0, 0, 0, - 976, 0, 977, 1446, 0, 0, 0, 0, 0, 0, + 976, 0, 977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 978, 172, 173, 174, 175, 176, 177, 979, 179, 180, 181, 182, 183, 184, 185, @@ -6274,1373 +7583,502 @@ 547, 548, 549, 1027, 1028, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 1029, 566, 1030, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 1031, 1032, 579, 1033, 581, 582, 583, 0, 584, 585, + 1031, 1032, 579, 1033, 581, 582, 583, 902, 584, 585, 586, 1034, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1035, 1036, 0, 0, 0, 0, 1037, 0, 0, - 0, 1038, 0, 0, 1039, 1040, 0, 0, 1041, 1042, - 901, 902, 903, 904, 905, 0, 0, 0, 0, 0, - 0, 0, 906, 907, 0, 908, 0, 0, 0, 0, - 0, 0, 909, 910, 0, 0, 911, 912, 913, 914, - 0, 915, 916, 0, 917, 918, 0, 0, 0, 0, - 919, 0, 0, 0, 920, 0, 0, 921, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 922, 923, 924, - 0, 925, 926, 0, 0, 0, 0, 2814, 0, 0, - 0, 0, 0, 927, 928, 929, 0, 930, 931, 0, - 0, 0, 932, 933, 934, 0, 0, 0, 0, 0, - 0, 0, 935, 0, 936, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 937, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 938, 0, - 0, 0, 0, 939, 940, 0, 941, 0, 0, 0, - 0, 0, 942, 0, 943, 0, 0, 944, 0, 0, - 945, 946, 947, 0, 948, 949, 950, 0, 951, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 952, 0, 0, 0, 953, 954, 955, - 956, 0, 0, 0, 0, 0, 0, 957, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 958, 959, - 0, 0, 0, 0, 0, 0, 0, 960, 0, 0, - 961, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 962, 0, 0, 0, 0, 0, 963, 964, 0, 965, - 966, 967, 0, 0, 0, 968, 0, 0, 0, 0, - 0, 0, 0, 969, 970, 971, 972, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 973, 974, 975, 0, - 0, 0, 0, 0, 976, 0, 977, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 978, - 172, 173, 174, 175, 176, 177, 979, 179, 180, 181, - 182, 183, 184, 185, 980, 187, 188, 0, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 981, 202, 203, 204, 205, 206, 207, 208, 209, 982, - 211, 983, 984, 213, 985, 986, 987, 988, 989, 0, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 990, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 991, 992, 993, 247, 994, - 995, 250, 0, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 0, 0, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 0, 996, 292, 293, 294, - 295, 296, 997, 298, 998, 300, 301, 302, 303, 304, - 305, 306, 0, 307, 308, 309, 999, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 1000, 1001, - 334, 335, 336, 1002, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 1003, 376, 1004, 378, 379, 380, 381, 1005, 1006, - 1007, 1008, 386, 387, 388, 389, 390, 391, 392, 393, - 1009, 1010, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 1011, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 1012, 426, 427, 428, 429, 430, 1013, 1014, 433, - 434, 435, 436, 437, 438, 1015, 440, 441, 442, 443, - 444, 445, 1016, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 1017, 477, 478, 479, 480, 481, 1018, 1019, - 484, 485, 486, 487, 488, 1020, 490, 491, 492, 493, - 494, 495, 1021, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 0, - 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, - 523, 1022, 525, 526, 527, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 1023, 1024, 1025, 1026, 547, 548, 549, 1027, 1028, 552, - 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 1029, 566, 1030, 568, 569, 570, 571, 572, - 573, 574, 575, 576, 1031, 1032, 579, 1033, 581, 582, - 583, 0, 584, 585, 586, 1034, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1035, 1036, 0, 0, 0, - 0, 1037, 0, 0, 0, 1038, 0, 0, 1039, 1040, - 0, 0, 1041, 1042, 901, 902, 903, 904, 905, 0, - 0, 0, 0, 0, 0, 0, 906, 907, 0, 908, - 0, 0, 0, 0, 0, 0, 909, 910, 0, 0, - 911, 912, 913, 914, 0, 915, 916, 0, 917, 918, - 0, 0, 0, 0, 919, 0, 0, 0, 920, 0, - 0, 921, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 922, 923, 924, 0, 925, 926, 0, 0, 0, - 0, 2816, 0, 0, 0, 0, 0, 927, 928, 929, - 0, 930, 931, 0, 0, 0, 932, 933, 934, 0, - 0, 0, 0, 0, 0, 0, 935, 0, 936, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 937, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 938, 0, 0, 0, 0, 939, 940, 0, - 941, 0, 0, 0, 0, 0, 942, 0, 943, 0, - 0, 944, 0, 0, 945, 946, 947, 0, 948, 949, - 950, 0, 951, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 952, 0, 0, - 0, 953, 954, 955, 956, 0, 0, 0, 0, 0, - 0, 957, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 958, 959, 0, 0, 0, 0, 0, 0, - 0, 960, 0, 0, 961, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 962, 0, 0, 0, 0, 0, - 963, 964, 0, 965, 966, 967, 0, 0, 0, 968, - 0, 0, 0, 0, 0, 0, 0, 969, 970, 971, - 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 973, 974, 975, 0, 0, 0, 0, 0, 976, 0, - 977, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 978, 172, 173, 174, 175, 176, 177, - 979, 179, 180, 181, 182, 183, 184, 185, 980, 187, - 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 981, 202, 203, 204, 205, 206, - 207, 208, 209, 982, 211, 983, 984, 213, 985, 986, - 987, 988, 989, 0, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 990, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 991, - 992, 993, 247, 994, 995, 250, 0, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 0, 0, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, - 996, 292, 293, 294, 295, 296, 997, 298, 998, 300, - 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, - 999, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 1000, 1001, 334, 335, 336, 1002, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 1003, 376, 1004, 378, 379, - 380, 381, 1005, 1006, 1007, 1008, 386, 387, 388, 389, - 390, 391, 392, 393, 1009, 1010, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 1011, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 1012, 426, 427, 428, 429, - 430, 1013, 1014, 433, 434, 435, 436, 437, 438, 1015, - 440, 441, 442, 443, 444, 445, 1016, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 1017, 477, 478, 479, - 480, 481, 1018, 1019, 484, 485, 486, 487, 488, 1020, - 490, 491, 492, 493, 494, 495, 1021, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 1022, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 1023, 1024, 1025, 1026, 547, 548, - 549, 1027, 1028, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 1029, 566, 1030, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 1031, 1032, - 579, 1033, 581, 582, 583, 0, 584, 585, 586, 1034, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1035, - 1036, 0, 0, 0, 0, 1037, 0, 0, 0, 1038, - 0, 0, 1039, 1040, 0, 0, 1041, 1042, 901, 902, - 903, 904, 905, 0, 0, 0, 0, 0, 0, 0, - 906, 907, 0, 908, 0, 0, 0, 0, 0, 0, - 909, 910, 0, 0, 911, 912, 913, 914, 0, 915, - 916, 0, 917, 918, 0, 0, 0, 0, 919, 0, - 0, 0, 920, 0, 0, 921, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 922, 923, 924, 0, 925, - 926, 0, 0, 0, 0, 2818, 0, 0, 0, 0, - 0, 927, 928, 929, 0, 930, 931, 0, 0, 0, - 932, 933, 934, 0, 0, 0, 0, 0, 0, 0, - 935, 0, 936, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 937, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 938, 0, 0, 0, - 0, 939, 940, 0, 941, 0, 0, 0, 0, 0, - 942, 0, 943, 0, 0, 944, 0, 0, 945, 946, - 947, 0, 948, 949, 950, 0, 951, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 952, 0, 0, 0, 953, 954, 955, 956, 0, - 0, 0, 0, 0, 0, 957, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 958, 959, 0, 0, - 0, 0, 0, 0, 0, 960, 0, 0, 961, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 962, 0, - 0, 0, 0, 0, 963, 964, 0, 965, 966, 967, - 0, 0, 0, 968, 0, 0, 0, 0, 0, 0, - 0, 969, 970, 971, 972, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 973, 974, 975, 0, 0, 0, - 0, 0, 976, 0, 977, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 978, 172, 173, - 174, 175, 176, 177, 979, 179, 180, 181, 182, 183, - 184, 185, 980, 187, 188, 0, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 981, 202, - 203, 204, 205, 206, 207, 208, 209, 982, 211, 983, - 984, 213, 985, 986, 987, 988, 989, 0, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 990, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 991, 992, 993, 247, 994, 995, 250, - 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, - 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 0, 996, 292, 293, 294, 295, 296, - 997, 298, 998, 300, 301, 302, 303, 304, 305, 306, - 0, 307, 308, 309, 999, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 1000, 1001, 334, 335, - 336, 1002, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 1003, - 376, 1004, 378, 379, 380, 381, 1005, 1006, 1007, 1008, - 386, 387, 388, 389, 390, 391, 392, 393, 1009, 1010, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 1011, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 1012, - 426, 427, 428, 429, 430, 1013, 1014, 433, 434, 435, - 436, 437, 438, 1015, 440, 441, 442, 443, 444, 445, - 1016, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 1017, 477, 478, 479, 480, 481, 1018, 1019, 484, 485, - 486, 487, 488, 1020, 490, 491, 492, 493, 494, 495, - 1021, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 0, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 1022, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 1023, 1024, - 1025, 1026, 547, 548, 549, 1027, 1028, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 1029, 566, 1030, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 1031, 1032, 579, 1033, 581, 582, 583, 0, - 584, 585, 586, 1034, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1035, 1036, 0, 0, 0, 0, 1037, - 0, 0, 0, 1038, 0, 0, 1039, 1040, 0, 0, - 1041, 1042, 901, 902, 903, 904, 905, 0, 0, 0, - 0, 0, 0, 0, 906, 907, 0, 908, 0, 0, - 0, 0, 0, 0, 909, 910, 0, 0, 911, 912, - 913, 914, 0, 915, 916, 0, 917, 918, 0, 0, - 0, 0, 919, 0, 0, 0, 3069, 0, 0, 921, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 922, - 923, 924, 0, 925, 926, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 927, 928, 929, 0, 930, - 931, 0, 0, 0, 932, 933, 934, 0, 3070, 0, - 0, 0, 0, 0, 935, 0, 936, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 937, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 938, 0, 0, 0, 0, 939, 940, 0, 941, 0, - 0, 0, 0, 0, 942, 0, 943, 0, 0, 944, - 0, 0, 945, 946, 947, 0, 948, 949, 950, 0, - 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 952, 0, 0, 0, 953, - 954, 955, 956, 0, 0, 0, 0, 0, 0, 957, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 958, 959, 0, 0, 0, 0, 0, 0, 0, 960, - 0, 0, 961, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 962, 0, 0, 0, 0, 0, 963, 964, - 0, 965, 966, 967, 0, 0, 0, 968, 0, 0, - 0, 0, 0, 0, 0, 969, 970, 971, 972, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, - 975, 0, 0, 0, 0, 0, 976, 0, 977, 0, + 0, 5581, 5582, 0, 0, 0, 0, 0, 0, 0, + 0, 5583, 0, 0, 0, 1040, 0, 0, 1041, 1042, + 0, 0, 0, 0, 0, 0, 919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 978, 172, 173, 174, 175, 176, 177, 979, 179, - 180, 181, 182, 183, 184, 185, 980, 187, 188, 0, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 981, 202, 203, 204, 205, 206, 207, 208, - 209, 982, 211, 983, 984, 213, 985, 986, 987, 988, - 989, 0, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 990, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 991, 992, 993, - 247, 994, 995, 250, 0, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 0, 0, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 0, 996, 292, - 293, 294, 295, 296, 997, 298, 998, 300, 301, 302, - 303, 304, 305, 306, 0, 307, 308, 309, 999, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 1000, 1001, 334, 335, 336, 1002, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 1003, 376, 1004, 378, 379, 380, 381, - 1005, 1006, 1007, 1008, 386, 387, 388, 389, 390, 391, - 392, 393, 1009, 1010, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 1011, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 1012, 426, 427, 428, 429, 430, 1013, - 1014, 433, 434, 435, 436, 437, 438, 1015, 440, 441, - 442, 443, 444, 445, 1016, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 1017, 477, 478, 479, 480, 481, - 1018, 1019, 484, 485, 486, 487, 488, 1020, 490, 491, - 492, 493, 494, 495, 1021, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, - 521, 522, 523, 1022, 525, 526, 527, 528, 529, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 1023, 1024, 1025, 1026, 547, 548, 549, 1027, - 1028, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 1029, 566, 1030, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 1031, 1032, 579, 1033, - 581, 582, 583, 0, 584, 585, 586, 1034, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1035, 1036, 0, - 0, 0, 0, 1037, 0, 0, 0, 1038, 0, 0, - 1039, 1040, 0, 0, 1041, 1042, 901, 902, 903, 904, - 905, 0, 0, 0, 0, 0, 0, 0, 906, 907, - 0, 908, 0, 0, 0, 0, 0, 0, 909, 910, - 0, 0, 911, 912, 913, 914, 0, 915, 916, 0, - 917, 918, 0, 0, 0, 0, 919, 0, 0, 0, - 920, 0, 0, 921, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 922, 923, 924, 0, 925, 926, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 927, - 928, 929, 0, 930, 931, 0, 0, 0, 932, 933, - 934, 0, 0, 0, 0, 0, 0, 0, 935, 0, - 936, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 937, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 938, 0, 0, 0, 0, 939, - 940, 0, 941, 0, 0, 0, 0, 0, 942, 0, - 943, 0, 0, 944, 0, 0, 945, 946, 947, 0, - 948, 949, 950, 0, 951, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 952, - 0, 0, 0, 953, 954, 955, 956, 0, 0, 0, - 0, 0, 0, 957, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 958, 959, 0, 0, 0, 0, - 0, 0, 0, 960, 0, 0, 961, 0, 0, 0, + 0, 0, 0, 0, 0, 924, 0, 0, 926, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 962, 0, 0, 0, - 0, 0, 963, 964, 0, 965, 966, 967, 0, 0, - 0, 968, 0, 0, 0, 0, 0, 0, 0, 969, + 0, 0, 0, 930, 931, 0, 0, 0, 1476, 1477, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 938, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 944, 0, 0, 0, 0, 0, 0, + 0, 949, 950, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 968, 0, 0, 0, 0, 0, 0, 0, 0, 970, 971, 972, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 973, 974, 975, 0, 0, 0, 0, 0, - 976, 0, 977, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 978, 172, 173, 174, 175, - 176, 177, 979, 179, 180, 181, 182, 183, 184, 185, - 980, 187, 188, 0, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 981, 202, 203, 204, - 205, 206, 207, 208, 209, 982, 211, 983, 984, 213, - 985, 986, 987, 988, 989, 0, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 990, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 1478, 213, + 214, 215, 216, 217, 218, 0, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 991, 992, 993, 247, 994, 995, 250, 0, 251, + 243, 244, 2296, 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 0, 996, 292, 293, 294, 295, 296, 997, 298, - 998, 300, 301, 302, 303, 304, 305, 306, 0, 307, - 308, 309, 999, 311, 312, 313, 314, 315, 316, 317, + 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 1000, 1001, 334, 335, 336, 1002, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 1003, 376, 1004, - 378, 379, 380, 381, 1005, 1006, 1007, 1008, 386, 387, - 388, 389, 390, 391, 392, 393, 1009, 1010, 396, 397, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 1011, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 1012, 426, 427, - 428, 429, 430, 1013, 1014, 433, 434, 435, 436, 437, - 438, 1015, 440, 441, 442, 443, 444, 445, 1016, 447, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 1017, 477, - 478, 479, 480, 481, 1018, 1019, 484, 485, 486, 487, - 488, 1020, 490, 491, 492, 493, 494, 495, 1021, 497, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 1022, 525, 526, + 508, 509, 510, 511, 512, 2711, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 1023, 1024, 1025, 1026, - 547, 548, 549, 1027, 1028, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 1029, 566, - 1030, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 1031, 1032, 579, 1033, 581, 582, 583, 0, 584, 585, - 586, 1034, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1035, 1036, 0, 0, 0, 0, 1037, 0, 0, - 0, 1038, 0, 0, 1039, 1040, 0, 0, 1041, 1042, - 901, 902, 903, 904, 905, 0, 0, 0, 0, 0, - 0, 0, 906, 907, 0, 908, 0, 0, 0, 0, - 0, 0, 909, 910, 0, 0, 911, 912, 913, 914, - 0, 915, 916, 0, 917, 918, 0, 0, 0, 0, - 919, 0, 0, 0, 920, 0, 0, 921, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 922, 923, 924, - 0, 925, 926, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 927, 928, 929, 0, 930, 931, 0, - 0, 0, 932, 933, 934, 0, 0, 0, 0, 0, - 0, 0, 935, 0, 936, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 937, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 938, 0, - 0, 0, 0, 939, 940, 0, 941, 0, 0, 0, - 0, 0, 942, 0, 943, 0, 0, 944, 0, 0, - 945, 946, 947, 0, 948, 949, 950, 0, 951, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 952, 0, 0, 0, 953, 954, 955, - 956, 0, 0, 0, 0, 0, 0, 957, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 958, 959, - 0, 0, 0, 0, 0, 0, 0, 960, 0, 0, - 961, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 962, 0, 0, 0, 0, 0, 963, 964, 0, 965, - 966, 967, 0, 0, 0, 968, 0, 0, 0, 0, - 0, 0, 0, 969, 970, 971, 972, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 973, 974, 975, 0, - 0, 0, 0, 0, 976, 0, 977, 0, 0, 0, + 537, 538, 539, 540, 541, 542, 2297, 544, 545, 2298, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 0, 584, 585, + 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, + 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1041, 1042, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 0, 213, 214, 215, 216, 217, 218, 0, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, + 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 2965, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 0, + 584, 585, 586, 587, 0, 0, 0, 0, 0, 0, + 0, 0, 158, 159, 0, 2712, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 978, - 172, 173, 174, 175, 176, 177, 979, 179, 180, 181, - 182, 183, 184, 185, 980, 187, 188, 0, 189, 190, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 981, 202, 203, 204, 205, 206, 207, 208, 209, 982, - 211, 983, 984, 213, 985, 986, 987, 988, 989, 0, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 990, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 991, 992, 993, 247, 994, - 995, 250, 0, 251, 252, 253, 254, 255, 256, 257, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 0, 996, 292, 293, 294, - 295, 296, 997, 298, 998, 300, 301, 302, 303, 304, - 305, 306, 0, 307, 308, 309, 999, 311, 312, 313, + 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 1000, 1001, - 334, 335, 336, 1002, 338, 339, 340, 341, 342, 343, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 1003, 376, 1004, 378, 379, 380, 381, 1005, 1006, - 1007, 1008, 386, 387, 388, 389, 390, 391, 392, 393, - 1009, 1010, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 1011, 412, 413, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 1012, 426, 427, 428, 429, 430, 1013, 1014, 433, - 434, 435, 436, 437, 438, 1015, 440, 441, 442, 443, - 444, 445, 1016, 447, 448, 449, 450, 451, 452, 453, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 1017, 477, 478, 479, 480, 481, 1018, 1019, - 484, 485, 486, 487, 488, 1020, 490, 491, 492, 493, - 494, 495, 1021, 497, 498, 499, 500, 501, 502, 503, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, - 523, 1022, 525, 526, 527, 528, 529, 530, 531, 532, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 1023, 1024, 1025, 1026, 547, 548, 549, 1027, 1028, 552, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 1029, 566, 1030, 568, 569, 570, 571, 572, - 573, 574, 575, 576, 1031, 1032, 579, 1033, 581, 582, - 583, 0, 584, 585, 586, 1034, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1035, 1036, 0, 0, 0, - 0, 1037, 0, 0, 0, 1473, 0, 0, 1039, 1040, - 0, 0, 1041, 1042, 901, 902, 903, 904, 905, 0, - 0, 0, 0, 0, 0, 0, 906, 907, 0, 908, - 0, 0, 0, 0, 0, 0, 909, 910, 0, 0, - 911, 912, 913, 914, 0, 915, 916, 0, 917, 918, - 0, 0, 0, 0, 919, 0, 0, 0, 920, 0, - 0, 921, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 922, 923, 924, 0, 925, 926, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 927, 928, 929, - 0, 930, 931, 0, 0, 0, 932, 933, 934, 0, - 0, 0, 0, 0, 0, 0, 935, 0, 936, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 937, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 938, 0, 0, 0, 0, 939, 940, 0, - 941, 0, 0, 0, 0, 0, 942, 0, 943, 0, - 0, 944, 0, 0, 945, 946, 947, 0, 948, 949, - 950, 0, 951, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 952, 0, 0, - 0, 953, 954, 955, 956, 0, 0, 0, 0, 0, - 0, 957, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 958, 959, 0, 0, 0, 0, 0, 0, - 0, 960, 0, 0, 961, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 962, 0, 0, 0, 0, 0, - 963, 964, 0, 965, 966, 967, 0, 0, 0, 968, - 0, 0, 0, 0, 0, 0, 0, 969, 970, 971, - 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 973, 974, 975, 0, 0, 0, 0, 0, 976, 0, - 977, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 978, 172, 173, 174, 175, 176, 177, - 979, 179, 180, 181, 182, 183, 184, 185, 980, 187, - 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 981, 202, 203, 204, 205, 206, - 207, 208, 209, 982, 211, 983, 984, 213, 985, 986, - 987, 988, 989, 0, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 990, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 991, - 992, 993, 247, 994, 995, 250, 0, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 0, 0, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, - 996, 292, 293, 294, 295, 296, 997, 298, 998, 300, - 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, - 999, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 1000, 1001, 334, 335, 336, 1002, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 1003, 376, 1004, 378, 379, - 380, 381, 1005, 1006, 1007, 1008, 386, 387, 388, 389, - 390, 391, 392, 393, 1009, 1010, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 1011, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 1012, 426, 427, 428, 429, - 430, 1013, 1014, 433, 434, 435, 436, 437, 438, 1015, - 440, 441, 442, 443, 444, 445, 1016, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 1017, 477, 478, 479, - 480, 481, 1018, 1019, 484, 485, 486, 487, 488, 1020, - 490, 491, 492, 493, 494, 495, 1021, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 1022, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 1023, 1024, 1025, 1026, 547, 548, - 549, 1027, 1028, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 2021, 566, 1030, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 1031, 1032, - 579, 1033, 581, 582, 583, 0, 584, 585, 586, 1034, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1035, - 1036, 0, 0, 0, 0, 1037, 0, 0, 0, 1038, - 0, 0, 1039, 1040, 0, 0, 1041, 1042, 901, 902, - 903, 904, 905, 0, 0, 0, 0, 0, 0, 0, - 906, 907, 0, 908, 0, 0, 0, 0, 0, 0, - 909, 910, 0, 0, 911, 912, 913, 914, 0, 915, - 916, 0, 917, 918, 0, 0, 0, 0, 919, 0, - 0, 0, 920, 0, 0, 921, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 922, 923, 924, 0, 925, - 926, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 927, 928, 929, 0, 930, 931, 0, 0, 0, - 932, 933, 934, 0, 0, 0, 0, 0, 0, 0, - 935, 0, 3438, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 937, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 938, 0, 0, 0, - 0, 939, 940, 0, 941, 0, 0, 0, 0, 0, - 942, 0, 943, 0, 0, 944, 0, 0, 945, 946, - 947, 0, 948, 949, 950, 0, 951, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 952, 0, 0, 0, 953, 954, 955, 956, 0, - 0, 0, 0, 0, 0, 957, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 958, 959, 0, 0, - 0, 0, 0, 0, 0, 960, 0, 0, 961, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 962, 0, - 0, 0, 0, 0, 963, 964, 0, 965, 966, 967, - 0, 0, 0, 968, 0, 0, 0, 0, 0, 0, - 0, 969, 970, 971, 972, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 973, 974, 975, 0, 0, 0, - 0, 0, 976, 0, 977, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 978, 172, 173, - 174, 175, 176, 177, 979, 179, 180, 181, 182, 183, - 184, 185, 980, 187, 188, 0, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 981, 202, - 203, 204, 205, 206, 207, 208, 209, 982, 211, 983, - 984, 213, 985, 986, 987, 988, 989, 0, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 990, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 991, 992, 993, 247, 994, 995, 250, - 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, - 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 0, 996, 292, 293, 294, 295, 296, - 997, 298, 998, 300, 301, 302, 303, 304, 305, 306, - 0, 307, 308, 309, 999, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 1000, 1001, 334, 335, - 336, 1002, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 1003, - 376, 1004, 378, 379, 380, 381, 1005, 1006, 1007, 1008, - 386, 387, 388, 389, 390, 391, 392, 393, 1009, 1010, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 1011, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 1012, - 426, 427, 428, 429, 430, 1013, 1014, 433, 434, 435, - 436, 437, 438, 1015, 440, 441, 442, 443, 444, 445, - 1016, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 1017, 477, 478, 479, 480, 481, 1018, 1019, 484, 485, - 486, 487, 488, 1020, 490, 491, 492, 493, 494, 495, - 1021, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 0, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 1022, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 1023, 1024, - 1025, 1026, 547, 548, 549, 1027, 1028, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 1029, 566, 1030, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 1031, 1032, 579, 1033, 581, 582, 583, 0, - 584, 585, 586, 1034, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1035, 1036, 0, 0, 0, 0, 1037, - 0, 0, 0, 1038, 0, 0, 1039, 1040, 0, 0, - 1041, 1042, 901, 902, 903, 904, 905, 0, 0, 0, - 0, 0, 0, 0, 906, 907, 0, 908, 0, 0, - 0, 0, 0, 0, 909, 910, 0, 0, 911, 912, - 913, 914, 0, 915, 916, 0, 917, 918, 0, 0, - 0, 0, 919, 0, 0, 0, 920, 0, 0, 921, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 922, - 923, 924, 0, 925, 926, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 927, 928, 929, 0, 930, - 931, 0, 0, 0, 932, 933, 934, 0, 0, 0, - 0, 0, 0, 0, 935, 0, 3460, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 937, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 938, 0, 0, 0, 0, 939, 940, 0, 941, 0, - 0, 0, 0, 0, 942, 0, 943, 0, 0, 944, - 0, 0, 945, 946, 947, 0, 948, 949, 950, 0, - 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 952, 0, 0, 0, 953, - 954, 955, 956, 0, 0, 0, 0, 0, 0, 957, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 958, 959, 0, 0, 0, 0, 0, 0, 0, 960, - 0, 0, 961, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 962, 0, 0, 0, 0, 0, 963, 964, - 0, 965, 966, 967, 0, 0, 0, 968, 0, 0, - 0, 0, 0, 0, 0, 969, 970, 971, 972, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, - 975, 0, 0, 0, 0, 0, 976, 0, 977, 0, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 1119, 584, 585, 586, 587, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2712, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1120, 0, 680, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 158, 159, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 978, 172, 173, 174, 175, 176, 177, 979, 179, - 180, 181, 182, 183, 184, 185, 980, 187, 188, 0, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 981, 202, 203, 204, 205, 206, 207, 208, - 209, 982, 211, 983, 984, 213, 985, 986, 987, 988, - 989, 0, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 990, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 991, 992, 993, - 247, 994, 995, 250, 0, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 0, 0, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 0, 996, 292, - 293, 294, 295, 296, 997, 298, 998, 300, 301, 302, - 303, 304, 305, 306, 0, 307, 308, 309, 999, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 1000, 1001, 334, 335, 336, 1002, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 1003, 376, 1004, 378, 379, 380, 381, - 1005, 1006, 1007, 1008, 386, 387, 388, 389, 390, 391, - 392, 393, 1009, 1010, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 1011, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 1012, 426, 427, 428, 429, 430, 1013, - 1014, 433, 434, 435, 436, 437, 438, 1015, 440, 441, - 442, 443, 444, 445, 1016, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 1017, 477, 478, 479, 480, 481, - 1018, 1019, 484, 485, 486, 487, 488, 1020, 490, 491, - 492, 493, 494, 495, 1021, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, - 521, 522, 523, 1022, 525, 526, 527, 528, 529, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 1023, 1024, 1025, 1026, 547, 548, 549, 1027, - 1028, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 1029, 566, 1030, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 1031, 1032, 579, 1033, - 581, 582, 583, 0, 584, 585, 586, 1034, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1035, 1036, 0, - 0, 0, 0, 1037, 0, 0, 0, 1038, 0, 0, - 1039, 1040, 0, 0, 1041, 1042, 901, 902, 903, 904, - 905, 0, 0, 0, 0, 0, 0, 0, 906, 907, - 0, 908, 0, 0, 0, 0, 0, 0, 909, 910, - 0, 0, 911, 912, 913, 914, 0, 915, 916, 0, - 917, 918, 0, 0, 0, 0, 919, 0, 0, 0, - 920, 0, 0, 921, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 922, 923, 924, 0, 925, 926, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 927, - 928, 929, 0, 930, 931, 0, 0, 0, 932, 933, - 934, 0, 0, 0, 0, 0, 0, 0, 935, 0, - 936, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 937, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 938, 0, 0, 0, 0, 939, - 940, 5803, 941, 0, 0, 0, 0, 0, 942, 0, - 943, 0, 0, 944, 0, 0, 945, 0, 947, 0, - 948, 949, 950, 0, 951, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 952, - 0, 0, 0, 953, 954, 955, 956, 0, 0, 0, - 0, 0, 0, 957, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 958, 959, 0, 0, 0, 0, - 0, 0, 0, 960, 0, 0, 961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 962, 0, 0, 0, - 0, 0, 963, 964, 0, 965, 966, 967, 0, 0, - 0, 968, 0, 0, 0, 0, 0, 0, 0, 969, - 970, 971, 972, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 973, 974, 975, 0, 0, 0, 0, 0, - 976, 0, 977, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 978, 172, 173, 174, 175, - 176, 177, 979, 179, 180, 181, 182, 183, 184, 185, - 980, 187, 188, 0, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 981, 202, 203, 204, - 205, 206, 207, 208, 209, 982, 211, 983, 984, 213, - 985, 986, 987, 988, 989, 0, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 990, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 1121, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 0, 213, + 214, 215, 216, 217, 218, 0, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 991, 992, 993, 247, 994, 995, 250, 0, 251, + 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 0, 996, 292, 293, 294, 295, 296, 997, 298, - 998, 300, 301, 302, 303, 304, 305, 306, 0, 307, - 308, 309, 999, 311, 312, 313, 314, 315, 316, 317, + 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 1122, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 1000, 1001, 334, 335, 336, 1002, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 1123, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 1003, 376, 1004, - 378, 379, 380, 381, 1005, 1006, 1007, 1008, 386, 387, - 388, 389, 390, 391, 392, 393, 1009, 1010, 396, 397, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 1124, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 1011, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 1012, 426, 427, - 428, 429, 430, 1013, 1014, 433, 434, 435, 436, 437, - 438, 1015, 440, 441, 442, 443, 444, 445, 1016, 447, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 1125, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 1017, 477, - 478, 479, 480, 481, 1018, 1019, 484, 485, 486, 487, - 488, 1020, 490, 491, 492, 493, 494, 495, 1021, 497, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 1126, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 1127, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 1022, 525, 526, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 1023, 1024, 1025, 1026, - 547, 548, 549, 1027, 1028, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 1029, 566, - 1030, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 1031, 1032, 579, 1033, 581, 582, 583, 0, 584, 585, - 586, 1034, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1035, 1036, 0, 0, 0, 0, 1037, 0, 0, - 0, 1038, 0, 0, 1039, 1040, 0, 0, 1041, 1042, - 901, 902, 903, 904, 905, 0, 0, 0, 0, 0, - 0, 0, 906, 907, 0, 908, 0, 0, 0, 0, - 0, 0, 909, 910, 0, 0, 911, 912, 913, 914, - 0, 915, 916, 0, 917, 918, 0, 0, 0, 0, - 919, 0, 0, 0, 920, 0, 0, 921, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 922, 923, 924, - 0, 925, 926, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 927, 928, 929, 0, 930, 931, 0, - 0, 0, 932, 933, 934, 0, 0, 0, 0, 0, - 0, 0, 935, 0, 1439, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 937, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 938, 0, - 0, 0, 0, 939, 940, 0, 941, 0, 0, 0, - 0, 0, 942, 0, 943, 0, 0, 944, 0, 0, - 945, 0, 947, 0, 948, 949, 950, 0, 951, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 952, 0, 0, 0, 953, 954, 955, - 956, 0, 0, 0, 0, 0, 0, 957, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 958, 959, - 0, 0, 0, 0, 0, 0, 0, 960, 0, 0, - 961, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 962, 0, 0, 0, 0, 0, 963, 964, 0, 965, - 966, 967, 0, 0, 0, 968, 0, 0, 0, 0, - 0, 0, 0, 969, 970, 971, 972, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 973, 974, 975, 0, - 0, 0, 0, 0, 976, 0, 977, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 978, - 172, 173, 174, 175, 176, 177, 979, 179, 180, 181, - 182, 183, 184, 185, 980, 187, 188, 0, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 981, 202, 203, 204, 205, 206, 207, 208, 209, 982, - 211, 983, 984, 213, 985, 986, 987, 988, 989, 0, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 990, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 991, 992, 993, 247, 994, - 995, 250, 0, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 0, 0, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 0, 996, 292, 293, 294, - 295, 296, 997, 298, 998, 300, 301, 302, 303, 304, - 305, 306, 0, 307, 308, 309, 999, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 1000, 1001, - 334, 335, 336, 1002, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 1003, 376, 1004, 378, 379, 380, 381, 1005, 1006, - 1007, 1008, 386, 387, 388, 389, 390, 391, 392, 393, - 1009, 1010, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 1011, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 1012, 426, 427, 428, 429, 430, 1013, 1014, 433, - 434, 435, 436, 437, 438, 1015, 440, 441, 442, 443, - 444, 445, 1016, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 1017, 477, 478, 479, 480, 481, 1018, 1019, - 484, 485, 486, 487, 488, 1020, 490, 491, 492, 493, - 494, 495, 1021, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 0, - 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, - 523, 1022, 525, 526, 527, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 1023, 1024, 1025, 1026, 547, 548, 549, 1027, 1028, 552, - 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 1029, 566, 1030, 568, 569, 570, 571, 572, - 573, 574, 575, 576, 1031, 1032, 579, 1033, 581, 582, - 583, 0, 584, 585, 586, 1034, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1440, 1441, 0, 0, 0, - 0, 1037, 0, 0, 0, 1038, 0, 0, 1039, 1040, - 0, 0, 1041, 1042, 901, 902, 903, 904, 905, 0, - 0, 0, 0, 0, 0, 0, 906, 907, 0, 908, - 0, 0, 0, 0, 0, 0, 909, 910, 0, 0, - 911, 912, 913, 914, 0, 915, 916, 0, 917, 918, - 0, 0, 0, 0, 919, 0, 0, 0, 920, 0, - 0, 921, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 922, 923, 924, 0, 925, 926, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 927, 928, 929, - 0, 930, 931, 0, 0, 0, 932, 933, 934, 0, - 0, 0, 0, 0, 0, 0, 935, 0, 1577, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 937, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 938, 0, 0, 0, 0, 939, 940, 0, - 941, 0, 0, 0, 0, 0, 942, 0, 943, 0, - 0, 944, 0, 0, 945, 0, 947, 0, 948, 949, - 950, 0, 951, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 952, 0, 0, - 0, 953, 954, 955, 956, 0, 0, 0, 0, 0, - 0, 957, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 958, 959, 0, 0, 0, 0, 0, 0, - 0, 960, 0, 0, 961, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 962, 0, 0, 0, 0, 0, - 963, 964, 0, 965, 966, 967, 0, 0, 0, 968, - 0, 0, 0, 0, 0, 0, 0, 969, 970, 971, - 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 973, 974, 975, 0, 0, 0, 0, 0, 976, 0, - 977, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 978, 172, 173, 174, 175, 176, 177, - 979, 179, 180, 181, 182, 183, 184, 185, 980, 187, - 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 981, 202, 203, 204, 205, 206, - 207, 208, 209, 982, 211, 983, 984, 213, 985, 986, - 987, 988, 989, 0, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 990, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 991, - 992, 993, 247, 994, 995, 250, 0, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 0, 0, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, - 996, 292, 293, 294, 295, 296, 997, 298, 998, 300, - 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, - 999, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 1000, 1001, 334, 335, 336, 1002, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 1003, 376, 1004, 378, 379, - 380, 381, 1005, 1006, 1007, 1008, 386, 387, 388, 389, - 390, 391, 392, 393, 1009, 1010, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 1011, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 1012, 426, 427, 428, 429, - 430, 1013, 1014, 433, 434, 435, 436, 437, 438, 1015, - 440, 441, 442, 443, 444, 445, 1016, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 1017, 477, 478, 479, - 480, 481, 1018, 1019, 484, 485, 486, 487, 488, 1020, - 490, 491, 492, 493, 494, 495, 1021, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 1022, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 1023, 1024, 1025, 1026, 547, 548, - 549, 1027, 1028, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 1029, 566, 1030, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 1031, 1032, - 579, 1033, 581, 582, 583, 0, 584, 585, 586, 1034, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1440, - 1441, 0, 0, 0, 0, 1037, 0, 0, 0, 1038, - 0, 0, 1039, 1040, 0, 0, 1041, 1042, 901, 902, - 903, 904, 905, 0, 0, 0, 0, 0, 0, 0, - 906, 907, 0, 908, 0, 0, 0, 0, 0, 0, - 909, 910, 0, 0, 911, 912, 913, 914, 0, 915, - 916, 0, 917, 918, 0, 0, 0, 0, 919, 0, - 0, 0, 920, 0, 0, 921, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 922, 923, 924, 0, 925, - 926, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 927, 928, 929, 0, 930, 931, 0, 0, 0, - 932, 933, 934, 0, 0, 0, 0, 0, 0, 0, - 935, 0, 1579, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 937, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 938, 0, 0, 0, - 0, 939, 940, 0, 941, 0, 0, 0, 0, 0, - 942, 0, 943, 0, 0, 944, 0, 0, 945, 0, - 947, 0, 948, 949, 950, 0, 951, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 952, 0, 0, 0, 953, 954, 955, 956, 0, - 0, 0, 0, 0, 0, 957, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 958, 959, 0, 0, - 0, 0, 0, 0, 0, 960, 0, 0, 961, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 962, 0, - 0, 0, 0, 0, 963, 964, 0, 965, 966, 967, - 0, 0, 0, 968, 0, 0, 0, 0, 0, 0, - 0, 969, 970, 971, 972, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 973, 974, 975, 0, 0, 0, - 0, 0, 976, 0, 977, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 978, 172, 173, - 174, 175, 176, 177, 979, 179, 180, 181, 182, 183, - 184, 185, 980, 187, 188, 0, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 981, 202, - 203, 204, 205, 206, 207, 208, 209, 982, 211, 983, - 984, 213, 985, 986, 987, 988, 989, 0, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 990, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 991, 992, 993, 247, 994, 995, 250, - 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, - 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 0, 996, 292, 293, 294, 295, 296, - 997, 298, 998, 300, 301, 302, 303, 304, 305, 306, - 0, 307, 308, 309, 999, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 1000, 1001, 334, 335, - 336, 1002, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 1003, - 376, 1004, 378, 379, 380, 381, 1005, 1006, 1007, 1008, - 386, 387, 388, 389, 390, 391, 392, 393, 1009, 1010, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 1011, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 1012, - 426, 427, 428, 429, 430, 1013, 1014, 433, 434, 435, - 436, 437, 438, 1015, 440, 441, 442, 443, 444, 445, - 1016, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 1017, 477, 478, 479, 480, 481, 1018, 1019, 484, 485, - 486, 487, 488, 1020, 490, 491, 492, 493, 494, 495, - 1021, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 0, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 1022, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 1023, 1024, - 1025, 1026, 547, 548, 549, 1027, 1028, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 1029, 566, 1030, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 1031, 1032, 579, 1033, 581, 582, 583, 0, - 584, 585, 586, 1034, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1440, 1441, 0, 0, 0, 0, 1037, - 0, 0, 0, 1038, 0, 0, 1039, 1040, 0, 0, - 1041, 1042, 901, 902, 903, 904, 905, 0, 0, 0, - 0, 0, 0, 0, 906, 907, 0, 908, 0, 0, - 0, 0, 0, 0, 909, 910, 0, 0, 911, 912, - 913, 914, 0, 915, 916, 0, 917, 918, 0, 0, - 0, 0, 919, 0, 0, 0, 920, 0, 0, 921, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 922, - 923, 924, 0, 925, 926, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 927, 928, 929, 0, 930, - 931, 0, 0, 0, 932, 933, 934, 0, 0, 0, - 0, 0, 0, 0, 935, 0, 936, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 937, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 938, 0, 0, 0, 0, 939, 940, 0, 941, 0, - 0, 0, 0, 0, 942, 0, 943, 0, 0, 944, - 0, 0, 945, 0, 947, 0, 948, 949, 950, 0, - 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 952, 0, 0, 0, 953, - 954, 955, 956, 0, 0, 0, 0, 0, 0, 957, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 958, 959, 0, 0, 0, 0, 0, 0, 0, 960, - 0, 0, 961, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 962, 0, 0, 0, 0, 0, 963, 964, - 0, 965, 966, 967, 0, 0, 0, 968, 0, 0, - 0, 0, 0, 0, 0, 969, 970, 971, 972, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 973, 974, - 975, 0, 0, 0, 0, 0, 976, 0, 977, 0, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 1128, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 1129, 580, 581, 582, 583, 1119, 584, 585, + 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1120, 0, 0, 1130, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 158, 159, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 978, 172, 173, 174, 175, 176, 177, 979, 179, - 180, 181, 182, 183, 184, 185, 980, 187, 188, 0, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 981, 202, 203, 204, 205, 206, 207, 208, - 209, 982, 211, 983, 984, 213, 985, 986, 987, 988, - 989, 0, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 990, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 991, 992, 993, - 247, 994, 995, 250, 0, 251, 252, 253, 254, 255, + 199, 200, 1121, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 0, 213, 214, 215, 216, 217, + 218, 0, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 0, 996, 292, - 293, 294, 295, 296, 997, 298, 998, 300, 301, 302, - 303, 304, 305, 306, 0, 307, 308, 309, 999, 311, + 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 1122, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 1000, 1001, 334, 335, 336, 1002, 338, 339, 340, 341, + 332, 333, 334, 335, 336, 337, 338, 1123, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 1003, 376, 1004, 378, 379, 380, 381, - 1005, 1006, 1007, 1008, 386, 387, 388, 389, 390, 391, - 392, 393, 1009, 1010, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 1011, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 1124, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 1012, 426, 427, 428, 429, 430, 1013, - 1014, 433, 434, 435, 436, 437, 438, 1015, 440, 441, - 442, 443, 444, 445, 1016, 447, 448, 449, 450, 451, + 422, 423, 424, 1125, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 1017, 477, 478, 479, 480, 481, - 1018, 1019, 484, 485, 486, 487, 488, 1020, 490, 491, - 492, 493, 494, 495, 1021, 497, 498, 499, 500, 501, + 472, 473, 474, 475, 476, 1126, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 1127, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, - 521, 522, 523, 1022, 525, 526, 527, 528, 529, 530, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 1023, 1024, 1025, 1026, 547, 548, 549, 1027, - 1028, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 1029, 566, 1030, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 1031, 1032, 579, 1033, - 581, 582, 583, 0, 584, 585, 586, 1034, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1035, 1036, 0, - 0, 0, 0, 1037, 0, 0, 0, 1038, 0, 0, - 1039, 1040, 0, 0, 1041, 1042, 901, 902, 903, 904, - 905, 0, 0, 0, 0, 0, 0, 0, 906, 907, - 0, 908, 0, 0, 0, 0, 0, 0, 909, 910, - 0, 0, 911, 912, 913, 914, 0, 915, 916, 0, - 917, 918, 0, 0, 0, 0, 919, 0, 0, 0, - 920, 0, 0, 921, 0, 0, 0, 0, 0, 0, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 1129, 580, + 581, 582, 583, 0, 584, 585, 586, 587, 815, 816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 922, 923, 924, 0, 925, 926, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 927, - 928, 929, 0, 930, 931, 0, 0, 0, 932, 933, - 934, 0, 0, 0, 0, 0, 0, 0, 935, 0, - 2258, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 937, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 938, 0, 0, 0, 0, 939, - 940, 0, 941, 0, 0, 0, 0, 0, 942, 0, - 943, 0, 0, 944, 0, 0, 945, 0, 947, 0, - 948, 949, 950, 0, 951, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 952, - 0, 0, 0, 953, 954, 955, 956, 0, 0, 0, - 0, 0, 0, 957, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 958, 959, 0, 0, 0, 0, - 0, 0, 0, 960, 0, 0, 961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 962, 0, 0, 0, - 0, 0, 963, 964, 0, 965, 966, 967, 0, 0, - 0, 968, 0, 0, 0, 0, 0, 0, 0, 969, - 970, 971, 972, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 973, 974, 975, 0, 0, 0, 0, 0, - 976, 0, 977, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 978, 172, 173, 174, 175, - 176, 177, 979, 179, 180, 181, 182, 183, 184, 185, - 980, 187, 188, 0, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 981, 202, 203, 204, - 205, 206, 207, 208, 209, 982, 211, 983, 984, 213, - 985, 986, 987, 988, 989, 0, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 990, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 991, 992, 993, 247, 994, 995, 250, 0, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 0, 996, 292, 293, 294, 295, 296, 997, 298, - 998, 300, 301, 302, 303, 304, 305, 306, 0, 307, - 308, 309, 999, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 1000, 1001, 334, 335, 336, 1002, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 1003, 376, 1004, - 378, 379, 380, 381, 1005, 1006, 1007, 1008, 386, 387, - 388, 389, 390, 391, 392, 393, 1009, 1010, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 1011, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 1012, 426, 427, - 428, 429, 430, 1013, 1014, 433, 434, 435, 436, 437, - 438, 1015, 440, 441, 442, 443, 444, 445, 1016, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 1017, 477, - 478, 479, 480, 481, 1018, 1019, 484, 485, 486, 487, - 488, 1020, 490, 491, 492, 493, 494, 495, 1021, 497, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 1022, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 1023, 1024, 1025, 1026, - 547, 548, 549, 1027, 1028, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 1029, 566, - 1030, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 1031, 1032, 579, 1033, 581, 582, 583, 0, 584, 585, - 586, 1034, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1035, 1036, 0, 0, 0, 0, 1037, 0, 0, - 0, 1038, 0, 0, 1039, 1040, 0, 0, 1041, 1042, - 901, 902, 903, 904, 905, 0, 0, 0, 0, 0, - 0, 0, 906, 907, 0, 908, 0, 0, 0, 0, - 0, 0, 909, 910, 0, 0, 911, 912, 913, 914, - 0, 915, 916, 0, 917, 918, 0, 0, 0, 0, - 919, 0, 0, 0, 920, 0, 0, 921, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 922, 923, 924, - 0, 925, 926, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 927, 928, 929, 0, 930, 931, 0, - 0, 0, 932, 933, 934, 0, 0, 0, 0, 0, - 0, 0, 935, 0, 2260, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 937, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 938, 0, - 0, 0, 0, 939, 940, 0, 941, 0, 0, 0, - 0, 0, 942, 0, 943, 0, 0, 944, 0, 0, - 945, 0, 947, 0, 948, 949, 950, 0, 951, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 952, 0, 0, 0, 953, 954, 955, - 956, 0, 0, 0, 0, 0, 0, 957, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 958, 959, - 0, 0, 0, 0, 0, 0, 0, 960, 0, 0, - 961, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 962, 0, 0, 0, 0, 0, 963, 964, 0, 965, - 966, 967, 0, 0, 0, 968, 0, 0, 0, 0, - 0, 0, 0, 969, 970, 971, 972, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 973, 974, 975, 0, - 0, 0, 0, 0, 976, 0, 977, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 978, - 172, 173, 174, 175, 176, 177, 979, 179, 180, 181, - 182, 183, 184, 185, 980, 187, 188, 0, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 981, 202, 203, 204, 205, 206, 207, 208, 209, 982, - 211, 983, 984, 213, 985, 986, 987, 988, 989, 0, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 990, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 991, 992, 993, 247, 994, - 995, 250, 0, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 0, 0, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 0, 996, 292, 293, 294, - 295, 296, 997, 298, 998, 300, 301, 302, 303, 304, - 305, 306, 0, 307, 308, 309, 999, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 1000, 1001, - 334, 335, 336, 1002, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 1003, 376, 1004, 378, 379, 380, 381, 1005, 1006, - 1007, 1008, 386, 387, 388, 389, 390, 391, 392, 393, - 1009, 1010, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 1011, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 1012, 426, 427, 428, 429, 430, 1013, 1014, 433, - 434, 435, 436, 437, 438, 1015, 440, 441, 442, 443, - 444, 445, 1016, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 1017, 477, 478, 479, 480, 481, 1018, 1019, - 484, 485, 486, 487, 488, 1020, 490, 491, 492, 493, - 494, 495, 1021, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 0, - 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, - 523, 1022, 525, 526, 527, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 1023, 1024, 1025, 1026, 547, 548, 549, 1027, 1028, 552, - 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 1029, 566, 1030, 568, 569, 570, 571, 572, - 573, 574, 575, 576, 1031, 1032, 579, 1033, 581, 582, - 583, 0, 584, 585, 586, 1034, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1035, 1036, 0, 0, 0, - 0, 1037, 0, 0, 0, 1038, 0, 0, 1039, 1040, - 0, 0, 1041, 1042, 902, 903, 904, 905, 0, 0, - 0, 0, 0, 0, 0, 906, 907, 0, 908, 0, - 0, 0, 0, 0, 0, 909, 910, 0, 0, 911, - 912, 913, 914, 0, 915, 916, 0, 917, 918, 0, - 0, 0, 0, 919, 0, 0, 0, 920, 0, 0, - 921, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1130, 0, 0, 0, 0, + 0, 0, 0, 817, 0, 0, 0, 0, 818, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 922, 923, 924, 0, 925, 926, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 927, 928, 929, 0, - 930, 931, 0, 0, 0, 932, 933, 934, 0, 0, - 0, 0, 0, 0, 0, 935, 0, 1439, 0, 0, + 0, 0, 0, 0, 0, 819, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 820, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 937, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 938, 0, 0, 0, 0, 939, 940, 0, 941, - 0, 0, 0, 0, 0, 942, 0, 943, 0, 0, - 944, 0, 0, 0, 0, 947, 0, 948, 949, 950, - 0, 951, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 952, 0, 0, 0, - 953, 954, 955, 956, 0, 0, 0, 0, 0, 0, - 957, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 958, 959, 0, 0, 0, 0, 0, 0, 0, - 960, 0, 0, 961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 962, 0, 0, 0, 0, 0, 963, - 964, 0, 965, 966, 967, 0, 0, 0, 968, 0, - 0, 0, 0, 0, 0, 0, 969, 970, 971, 972, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, - 974, 975, 0, 0, 0, 0, 0, 976, 0, 977, + 821, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 158, 159, 0, 0, 0, 822, 0, 0, 0, + 0, 823, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 749, 0, 0, + 0, 0, 0, 0, 824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 978, 172, 173, 174, 175, 176, 177, 979, - 179, 180, 181, 182, 183, 184, 185, 980, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 981, 202, 203, 204, 205, 206, 207, - 208, 209, 982, 211, 983, 984, 213, 985, 986, 987, - 988, 989, 0, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 990, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 991, 992, - 993, 247, 994, 995, 250, 0, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 0, 996, - 292, 293, 294, 295, 296, 997, 298, 998, 300, 301, - 302, 303, 304, 305, 306, 0, 307, 308, 309, 999, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 1000, 1001, 334, 335, 336, 1002, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 1003, 376, 1004, 378, 379, 380, - 381, 1005, 1006, 1007, 1008, 386, 387, 388, 389, 390, - 391, 392, 393, 1009, 1010, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 1011, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 1012, 426, 427, 428, 429, 430, - 1013, 1014, 433, 434, 435, 436, 437, 438, 1015, 440, - 441, 442, 443, 444, 445, 1016, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 1017, 477, 478, 479, 480, - 481, 1018, 1019, 484, 485, 486, 487, 488, 1020, 490, - 491, 492, 493, 494, 495, 1021, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 1022, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 1023, 1024, 1025, 1026, 547, 548, 549, - 1027, 1028, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 1029, 566, 1030, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 1031, 1032, 579, - 1033, 581, 582, 583, 902, 584, 585, 586, 1034, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 5582, 5583, - 0, 0, 0, 0, 0, 0, 0, 0, 5584, 0, - 0, 0, 1040, 0, 0, 1041, 1042, 0, 0, 0, - 0, 0, 0, 919, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 924, 0, 0, 926, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 930, 931, 0, 0, 0, 1476, 1477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 938, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 826, 0, 0, 0, 0, 0, 0, 0, 827, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 944, 0, 0, 0, 0, 0, 0, 0, 949, 950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 667, 0, 0, 0, 0, 0, + 0, 828, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 829, 830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 831, 273, 274, 275, 276, 832, 278, + 0, 0, 279, 280, 281, 282, 283, 284, 833, 286, + 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 834, 442, 443, 444, + 835, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 836, 463, 464, + 465, 466, 837, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 838, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 839, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 0, 584, 585, 586, 587, 1111, 816, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 817, 0, 0, 0, 0, 818, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 819, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 820, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 821, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 158, 159, + 0, 0, 0, 822, 0, 0, 0, 0, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 968, 0, - 0, 0, 0, 0, 0, 0, 0, 970, 971, 972, + 0, 0, 0, 0, 749, 0, 0, 0, 0, 0, + 0, 824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 1478, 213, 214, 215, 216, - 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 2296, - 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 2711, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 2297, 544, 545, 2298, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 0, 584, 585, 586, 587, 0, - 0, 0, 0, 0, 0, 0, 0, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1041, 1042, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 825, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 826, 0, + 0, 0, 0, 0, 0, 0, 827, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 667, 0, 0, 0, 0, 0, 0, 828, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 829, 830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 1112, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 0, 213, + 214, 215, 216, 217, 218, 0, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 831, 273, 274, 275, 276, 832, 278, 0, 0, 279, + 280, 281, 282, 283, 284, 833, 286, 287, 288, 289, + 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 834, 442, 443, 444, 1113, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 836, 463, 464, 465, 466, 837, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 838, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 1710, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 839, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 0, 584, 585, + 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7649,57 +8087,269 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 0, 213, 214, - 215, 216, 217, 218, 0, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 0, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 2965, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 0, 584, 585, 586, - 587, 0, 0, 0, 0, 0, 0, 0, 0, 158, - 159, 0, 2712, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 0, 213, + 214, 215, 216, 217, 218, 0, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 4673, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 0, 584, 585, + 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 158, 159, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 0, 213, + 214, 215, 216, 217, 218, 0, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 1800, 584, 585, + 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1476, 1477, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 4, 584, 585, 586, 587, 0, 0, 0, 0, 859, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1801, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 860, 0, + 0, 0, 0, 13, 0, 0, 0, 0, 861, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 158, 159, 15, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 862, 0, 0, + 0, 0, 0, 0, 863, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, + 0, 0, 864, 865, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, + 0, 0, 0, 0, 0, 0, 160, 161, 162, 0, + 164, 0, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 0, 179, 180, 181, 182, 183, + 184, 185, 186, 0, 866, 0, 0, 190, 191, 192, + 193, 194, 0, 0, 197, 198, 199, 200, 0, 0, + 0, 204, 205, 206, 207, 208, 867, 210, 211, 212, + 0, 213, 0, 0, 0, 0, 0, 0, 219, 0, + 221, 0, 223, 224, 0, 226, 227, 228, 229, 230, + 231, 0, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 0, 248, 249, 250, + 0, 251, 252, 253, 254, 255, 256, 257, 0, 259, + 260, 261, 262, 0, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 278, 0, + 868, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 0, 0, 0, 0, 0, 292, 293, 294, 295, 296, + 297, 298, 299, 0, 301, 302, 0, 304, 305, 0, + 0, 307, 0, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 0, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 0, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 869, + 0, 0, 0, 419, 420, 0, 422, 423, 424, 425, + 0, 427, 428, 429, 430, 431, 432, 0, 0, 0, + 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 0, 464, 0, + 466, 467, 0, 469, 470, 0, 472, 473, 474, 475, + 476, 477, 0, 479, 480, 481, 482, 483, 484, 485, + 0, 487, 488, 489, 0, 491, 492, 493, 494, 0, + 496, 497, 0, 0, 500, 0, 0, 503, 504, 505, + 0, 507, 0, 509, 510, 511, 512, 0, 513, 514, + 515, 0, 517, 518, 0, 520, 4269, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 0, 543, 544, + 545, 546, 547, 548, 549, 550, 0, 552, 553, 554, + 0, 556, 557, 558, 559, 0, 0, 562, 563, 0, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 0, 714, 581, 582, 0, 0, + 584, 0, 586, 587, 0, 0, 0, 0, 0, 158, + 159, 0, 0, 0, 3065, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 5345, 0, 0, 0, 3066, + 0, 0, 0, 0, 0, 0, 4270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7708,11 +8358,14 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -2513, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, @@ -7740,7 +8393,7 @@ 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 4271, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, @@ -7756,89 +8409,17 @@ 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, 1119, 584, + 576, 577, 578, 579, 580, 581, 582, 583, 4269, 584, 585, 586, 587, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2712, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1120, 0, 680, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 158, 159, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 1121, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 0, 213, 214, 215, 216, - 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 1122, - 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 1123, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 1124, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 1125, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 1126, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 1127, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 1128, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 1129, - 580, 581, 582, 583, 1119, 584, 585, 586, 587, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1120, 0, 0, 1130, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 158, 159, 0, 0, 0, 3065, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 158, 159, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3066, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7849,6 +8430,7 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7858,7 +8440,7 @@ 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 1121, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, @@ -7869,63 +8451,199 @@ 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 1122, 302, 303, 304, 305, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 1123, 340, 341, 342, 343, 344, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 1124, 390, 391, 392, 393, 394, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 1125, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 425, 4271, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 1126, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 1127, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, + 505, 506, 507, 508, 509, 510, 511, 512, 4323, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 1129, 580, 581, 582, 583, - 0, 584, 585, 586, 587, 815, 816, 0, 0, 0, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 0, 584, 585, 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 158, 159, 0, 0, + 0, 4272, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 667, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 0, 213, 214, 215, + 216, 217, 218, 0, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 0, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 0, 0, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 1663, 584, 585, 586, 587, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1664, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 158, 159, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 749, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1665, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 0, 213, 214, + 215, 216, 217, 218, 0, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 1679, 584, 585, 586, + 587, 0, 0, 0, 0, 1666, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1130, 0, 0, 0, 0, 0, 0, 0, - 817, 0, 0, 0, 0, 818, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 819, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 820, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 158, 159, - 0, 0, 0, 822, 0, 0, 0, 0, 823, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 749, 0, 0, 0, 0, 0, - 0, 824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 825, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 826, 0, - 0, 0, 0, 0, 0, 0, 827, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 667, 0, 0, 0, 0, 0, 0, 828, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 829, 830, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, @@ -7940,8 +8658,8 @@ 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 831, 273, 274, 275, 276, 832, 278, 0, 0, 279, - 280, 281, 282, 283, 284, 833, 286, 287, 288, 289, + 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, @@ -7957,238 +8675,98 @@ 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 834, 442, 443, 444, 835, 446, 447, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 461, 836, 463, 464, 465, 466, 837, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 838, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 839, 529, 530, 531, 532, 533, 534, 535, 536, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 0, 584, 585, - 586, 587, 1111, 816, 0, 0, 0, 0, 0, 0, + 577, 578, 579, 580, 581, 582, 583, 1663, 584, 585, + 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 817, 0, 0, - 0, 0, 818, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 819, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 820, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1664, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 821, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 158, 159, 0, 0, 0, - 822, 0, 0, 0, 0, 823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 749, 0, 0, 0, 0, 0, 0, 824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 158, + 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 825, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 826, 0, 0, 0, 0, - 0, 0, 0, 827, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 667, 0, - 0, 0, 0, 0, 0, 828, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 829, 830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 1112, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 0, 213, 214, 215, 216, - 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 831, 273, 274, - 275, 276, 832, 278, 0, 0, 279, 280, 281, 282, - 283, 284, 833, 286, 287, 288, 289, 290, 0, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 834, 442, 443, 444, 1113, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 836, 463, 464, 465, 466, 837, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 838, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 1710, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 839, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 0, 584, 585, 586, 587, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 158, 159, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 749, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 667, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 0, 213, 214, 215, 216, - 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 4673, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 0, 584, 585, 586, 587, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 158, 159, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 0, 213, 214, 215, 216, - 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 1800, 584, 585, 586, 587, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1476, 1477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 0, + 213, 214, 215, 216, 217, 218, 0, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 0, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 0, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 1663, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 0, 584, + 585, 586, 587, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8201,6 +8779,7 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8240,89 +8819,21 @@ 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, + 508, 509, 510, 511, 512, 1239, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 4, 584, 585, - 586, 587, 0, 0, 0, 0, 859, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1801, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 860, 0, 0, 0, 0, - 13, 0, 0, 0, 0, 861, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 158, 159, 15, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 862, 0, 0, 0, 0, 0, - 0, 863, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 28, 0, 0, 0, 0, 0, 864, - 865, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 577, 578, 579, 580, 581, 582, 583, 0, 584, 585, + 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1240, 1241, 0, 0, 0, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, - 0, 0, 0, 160, 161, 162, 0, 164, 0, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 0, 179, 180, 181, 182, 183, 184, 185, 186, - 0, 866, 0, 0, 190, 191, 192, 193, 194, 0, - 0, 197, 198, 199, 200, 0, 0, 0, 204, 205, - 206, 207, 208, 867, 210, 211, 212, 0, 213, 0, - 0, 0, 0, 0, 0, 219, 0, 221, 0, 223, - 224, 0, 226, 227, 228, 229, 230, 231, 0, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 0, 248, 249, 250, 0, 251, 252, - 253, 254, 255, 256, 257, 0, 259, 260, 261, 262, - 0, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 0, 0, 0, 278, 0, 868, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 0, 0, 0, - 0, 0, 292, 293, 294, 295, 296, 297, 298, 299, - 0, 301, 302, 0, 304, 305, 0, 0, 307, 0, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 0, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 869, 0, 0, 0, - 419, 420, 0, 422, 423, 424, 425, 0, 427, 428, - 429, 430, 431, 432, 0, 0, 0, 0, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 462, 0, 464, 0, 466, 467, 0, - 469, 470, 0, 472, 473, 474, 475, 476, 477, 0, - 479, 480, 481, 482, 483, 484, 485, 0, 487, 488, - 489, 0, 491, 492, 493, 494, 0, 496, 497, 0, - 0, 500, 0, 0, 503, 504, 505, 0, 507, 0, - 509, 510, 511, 512, 0, 513, 514, 515, 0, 517, - 518, 0, 520, 4269, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 0, 543, 544, 545, 546, 547, - 548, 549, 550, 0, 552, 553, 554, 0, 556, 557, - 558, 559, 0, 0, 562, 563, 0, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 0, 714, 581, 582, 0, 0, 584, 0, 586, - 587, 0, 0, 0, 0, 0, 158, 159, 0, 0, - 0, 3065, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5346, 0, 0, 0, 3066, 0, 0, 0, - 0, 0, 0, 4270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8331,14 +8842,12 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -2512, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, @@ -8366,7 +8875,7 @@ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 4271, 427, 428, 429, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, @@ -8382,18 +8891,16 @@ 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 4269, 584, 585, 586, 587, + 579, 580, 581, 582, 583, 1297, 584, 585, 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 714, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 158, 159, - 0, 0, 0, 3065, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3066, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 158, + 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8402,631 +8909,218 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 0, 213, - 214, 215, 216, 217, 218, 0, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 0, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 4271, 427, - 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 4323, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 0, 584, 585, - 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 158, 159, 0, 0, 0, 4272, 0, + 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 0, + 213, 214, 215, 216, 217, 218, 0, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 0, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 0, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 0, 510, 511, 512, 0, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 4, 584, + 585, 586, 587, 0, 0, 0, 0, 859, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -447, -447, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 860, 0, 0, 0, + 0, 13, 0, 0, 0, 0, 861, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 158, 159, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 862, 0, 0, 0, 0, + 0, 0, 863, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, + 864, 865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 667, 0, 0, 0, + 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, + 0, 0, 0, 0, 160, 161, 162, 0, 164, 0, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 0, 179, 180, 181, 182, 183, 184, 185, + 186, 0, 866, 0, 0, 190, 191, 192, 193, 194, + 0, 0, 197, 198, 199, 200, 0, 0, 0, 204, + 205, 206, 207, 208, 867, 210, 211, 212, 0, 213, + 0, 0, 0, 0, 0, 0, 219, 0, 221, 0, + 223, 224, 0, 226, 227, 228, 229, 230, 231, 0, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 0, 248, 249, 250, 0, 251, + 252, 253, 254, 255, 256, 257, 0, 259, 260, 261, + 262, -447, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 0, 0, 0, 278, 0, 868, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 0, 0, + 0, 0, 0, 292, 293, 294, 295, 296, 297, 298, + 299, 0, 301, 302, 0, 304, 305, 0, 0, 307, + 0, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 0, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 0, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 0, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 869, 0, 0, + 0, 419, 420, 0, 422, 423, 424, 425, 0, 427, + 428, 429, 430, 431, 432, 0, 0, 0, 0, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 0, 464, 0, 466, 467, + 0, 469, 470, 0, 472, 473, 474, 475, 476, 477, + 0, 479, 480, 481, 482, 483, 484, 485, 0, 487, + 488, 489, 0, 491, 492, 493, 494, 0, 496, 497, + 0, 0, 500, 0, 0, 503, 504, 505, 0, 507, + 0, 509, 510, 511, 512, 0, 513, 514, 515, 0, + 517, 518, 0, 520, 0, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 4, 543, 544, 545, 546, + 547, 548, 549, 550, 859, 552, 553, 554, 0, 556, + 557, 558, 559, 0, 0, 562, 563, 0, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 0, 0, 581, 582, 0, 0, 584, 0, + 586, 587, -467, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 860, 0, 0, 0, 0, 13, 0, + 0, 0, 0, 861, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 158, 159, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 862, 0, 0, 0, 0, 0, 0, 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 0, 213, 214, 215, 216, 217, 218, - 0, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 0, 0, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, - 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, - 582, 583, 1663, 584, 585, 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1664, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 28, 0, 0, 0, 0, 0, 864, 865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -467, 0, 38, 0, 0, 0, 0, 0, 0, 0, + 0, 160, 161, 162, 0, 164, 0, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 0, + 179, 180, 181, 182, 183, 184, 185, 186, 0, 866, + 0, 0, 190, 191, 192, 193, 194, 0, 0, 197, + 198, 199, 200, 0, 0, 0, 204, 205, 206, 207, + 208, 867, 210, 211, 212, 0, 213, 0, 0, 0, + 0, 0, 0, 219, 0, 221, 0, 223, 224, 0, + 226, 227, 228, 229, 230, 231, 0, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 0, 248, 249, 250, 0, 251, 252, 253, 254, + 255, 256, 257, 0, 259, 260, 261, 262, -467, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 0, 0, 0, 278, 0, 868, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 0, 0, 0, 0, 0, + 292, 293, 294, 295, 296, 297, 298, 299, 0, 301, + 302, 0, 304, 305, 0, 0, 307, 0, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 869, 0, 0, 0, 419, 420, + 0, 422, 423, 424, 425, 0, 427, 428, 429, 430, + 431, 432, 0, 0, 0, 0, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 0, 464, 0, 466, 467, 0, 469, 470, + 0, 472, 473, 474, 475, 476, 477, 0, 479, 480, + 481, 482, 483, 484, 485, 0, 487, 488, 489, 0, + 491, 492, 493, 494, 0, 496, 497, 0, 0, 500, + 0, 0, 503, 504, 505, 0, 507, 0, 509, 510, + 511, 512, 0, 513, 514, 515, 0, 517, 518, 0, + 520, 0, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 4, 543, 544, 545, 546, 547, 548, 549, + 550, 859, 552, 553, 554, 0, 556, 557, 558, 559, + 0, 0, 562, 563, 0, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 0, + 0, 581, 582, 0, 0, 584, 0, 586, 587, -464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 860, 0, 0, 0, 0, 13, 0, 0, 0, 0, + 861, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 158, 159, 15, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 862, + 0, 0, 0, 0, 0, 0, 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 667, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, + 0, 0, 0, 0, 864, 865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 0, 213, 214, 215, 216, 217, - 218, 0, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 0, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 0, 0, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 0, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, - 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 1679, 584, 585, 586, 587, 0, 0, - 0, 0, 1666, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1680, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 158, 159, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 749, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 667, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 0, 213, 214, 215, 216, - 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 1663, 584, 585, 586, 587, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1664, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 158, 159, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 667, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 0, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 0, 0, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 1663, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 0, 584, 585, 586, 587, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 158, 159, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 749, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 667, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 0, 213, 214, 215, 216, - 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 1239, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 0, 584, 585, 586, 587, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1240, 1241, - 0, 0, 0, 158, 159, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1242, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 0, 213, 214, 215, 216, 217, 218, - 0, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 0, 0, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, - 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, - 582, 583, 1297, 584, 585, 586, 587, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 158, 159, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 667, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 0, 213, 214, 215, - 216, 217, 218, 0, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 0, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 0, 0, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 0, - 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 4, 584, 585, 586, 587, - 0, 0, 0, 0, 859, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1571, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -447, -447, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 860, 0, 0, 0, 0, 13, 0, - 0, 0, 0, 861, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 158, 159, 15, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 862, 0, 0, 0, 0, 0, 0, 863, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 28, 0, 0, 0, 0, 0, 864, 865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, - 0, 160, 161, 162, 0, 164, 0, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 0, - 179, 180, 181, 182, 183, 184, 185, 186, 0, 866, - 0, 0, 190, 191, 192, 193, 194, 0, 0, 197, - 198, 199, 200, 0, 0, 0, 204, 205, 206, 207, - 208, 867, 210, 211, 212, 0, 213, 0, 0, 0, - 0, 0, 0, 219, 0, 221, 0, 223, 224, 0, - 226, 227, 228, 229, 230, 231, 0, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 0, 248, 249, 250, 0, 251, 252, 253, 254, - 255, 256, 257, 0, 259, 260, 261, 262, -447, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 0, 0, 0, 278, 0, 868, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 0, 0, 0, 0, 0, - 292, 293, 294, 295, 296, 297, 298, 299, 0, 301, - 302, 0, 304, 305, 0, 0, 307, 0, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 869, 0, 0, 0, 419, 420, - 0, 422, 423, 424, 425, 0, 427, 428, 429, 430, - 431, 432, 0, 0, 0, 0, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 0, 464, 0, 466, 467, 0, 469, 470, - 0, 472, 473, 474, 475, 476, 477, 0, 479, 480, - 481, 482, 483, 484, 485, 0, 487, 488, 489, 0, - 491, 492, 493, 494, 0, 496, 497, 0, 0, 500, - 0, 0, 503, 504, 505, 0, 507, 0, 509, 510, - 511, 512, 0, 513, 514, 515, 0, 517, 518, 0, - 520, 0, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 4, 543, 544, 545, 546, 547, 548, 549, - 550, 859, 552, 553, 554, 0, 556, 557, 558, 559, - 0, 0, 562, 563, 0, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 0, - 0, 581, 582, 0, 0, 584, 0, 586, 587, -467, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 860, 0, 0, 0, 0, 13, 0, 0, 0, 0, - 861, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 158, 159, 15, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 862, - 0, 0, 0, 0, 0, 0, 863, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, - 0, 0, 0, 0, 864, 865, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -467, 0, 38, + 0, 0, 0, 0, 0, 0, 0, -464, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, 0, 164, 0, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 0, 179, 180, 181, @@ -9038,7 +9132,7 @@ 229, 230, 231, 0, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, - 0, 259, 260, 261, 262, -467, 264, 265, 266, 267, + 0, 259, 260, 261, 262, -464, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, 278, 0, 868, 279, 280, 281, 282, 283, 284, 285, 286, 287, 0, 0, 0, 0, 0, 292, 293, 294, @@ -9071,7 +9165,7 @@ 553, 554, 0, 556, 557, 558, 559, 0, 0, 562, 563, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 0, 0, 581, 582, - 0, 0, 584, 0, 586, 587, -464, 0, 0, 0, + 0, 0, 584, 0, 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 860, 0, 0, 0, 0, 13, 0, 0, 0, 0, 861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 158, @@ -9093,7 +9187,7 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -464, 0, 38, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, 0, 164, 0, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 0, 179, 180, 181, 182, 183, 184, @@ -9105,7 +9199,7 @@ 0, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, 0, 259, 260, - 261, 262, -464, 264, 265, 266, 267, 268, 269, 270, + 261, 262, 1425, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, 278, 0, 868, 279, 280, 281, 282, 283, 284, 285, 286, 287, 0, 0, 0, 0, 0, 292, 293, 294, 295, 296, 297, @@ -9171,7 +9265,7 @@ 0, 226, 227, 228, 229, 230, 231, 0, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, 248, 249, 250, 0, 251, 252, 253, - 254, 255, 256, 257, 0, 259, 260, 261, 262, 1425, + 254, 255, 256, 257, 0, 259, 260, 261, 262, -469, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, 278, 0, 868, 279, 280, 281, 282, 283, 284, 285, 286, 287, 0, 0, 0, 0, @@ -9238,7 +9332,7 @@ 228, 229, 230, 231, 0, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, - 257, 0, 259, 260, 261, 262, -469, 264, 265, 266, + 257, 0, 259, 260, 261, 262, 3316, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, 278, 0, 868, 279, 280, 281, 282, 283, 284, 285, 286, 287, 0, 0, 0, 0, 0, 292, 293, @@ -9305,7 +9399,7 @@ 231, 0, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, 0, 259, - 260, 261, 262, 3316, 264, 265, 266, 267, 268, 269, + 260, 261, 262, 3369, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, 278, 0, 868, 279, 280, 281, 282, 283, 284, 285, 286, 287, 0, 0, 0, 0, 0, 292, 293, 294, 295, 296, @@ -9372,7 +9466,7 @@ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, 0, 259, 260, 261, 262, - 3369, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 3622, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, 278, 0, 868, 279, 280, 281, 282, 283, 284, 285, 286, 287, 0, 0, 0, 0, 0, 292, 293, 294, 295, 296, 297, 298, 299, @@ -9438,7 +9532,7 @@ 227, 228, 229, 230, 231, 0, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, 248, 249, 250, 0, 251, 252, 253, 254, 255, - 256, 257, 0, 259, 260, 261, 262, 3621, 264, 265, + 256, 257, 0, 259, 260, 261, 262, 3626, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, 278, 0, 868, 279, 280, 281, 282, 283, 284, 285, 286, 287, 0, 0, 0, 0, 0, 292, @@ -9505,7 +9599,7 @@ 230, 231, 0, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, 0, - 259, 260, 261, 262, 3625, 264, 265, 266, 267, 268, + 259, 260, 261, 262, 3993, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, 278, 0, 868, 279, 280, 281, 282, 283, 284, 285, 286, 287, 0, 0, 0, 0, 0, 292, 293, 294, 295, @@ -9572,7 +9666,7 @@ 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, 0, 259, 260, 261, - 262, 3992, 264, 265, 266, 267, 268, 269, 270, 271, + 262, 4936, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, 278, 0, 868, 279, 280, 281, 282, 283, 284, 285, 286, 287, 0, 0, 0, 0, 0, 292, 293, 294, 295, 296, 297, 298, @@ -9638,7 +9732,7 @@ 226, 227, 228, 229, 230, 231, 0, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, 248, 249, 250, 0, 251, 252, 253, 254, - 255, 256, 257, 0, 259, 260, 261, 262, 4936, 264, + 255, 256, 257, 0, 259, 260, 261, 262, -451, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, 278, 0, 868, 279, 280, 281, 282, 283, 284, 285, 286, 287, 0, 0, 0, 0, 0, @@ -9705,7 +9799,7 @@ 229, 230, 231, 0, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, - 0, 259, 260, 261, 262, -451, 264, 265, 266, 267, + 0, 259, 260, 261, 262, 0, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, 278, 0, 868, 279, 280, 281, 282, 283, 284, 285, 286, 287, 0, 0, 0, 0, 0, 292, 293, 294, @@ -9798,153 +9892,155 @@ 487, 488, 489, 0, 491, 492, 493, 494, 0, 496, 497, 0, 0, 500, 0, 0, 503, 504, 505, 0, 507, 0, 509, 510, 511, 512, 0, 513, 514, 515, - 0, 517, 518, 0, 520, 0, 522, 523, 524, 525, + 4, 517, 518, 0, 520, 0, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 4, 543, 544, 545, - 546, 547, 548, 549, 550, 859, 552, 553, 554, 0, - 556, 557, 558, 559, 0, 0, 562, 563, 0, 565, + 536, 537, 538, 539, 540, 541, 0, 543, 544, 545, + 546, 547, 548, 549, 550, 0, 552, 553, 554, 0, + 556, 557, 558, 559, 0, 0, 562, 1645, 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 0, 0, 581, 582, 0, 0, 584, + 576, 577, 578, 13, 0, 581, 582, 0, 0, 584, 0, 586, 587, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 860, 0, 0, 0, 0, 13, - 0, 0, 0, 0, 861, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 158, 159, 15, 0, + 158, 159, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 862, 0, 0, 0, 0, 0, 0, - 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 28, 0, 0, 0, 0, 0, 864, 865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, + 0, 0, 864, 865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, - 0, 0, 160, 161, 162, 0, 164, 0, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 0, 179, 180, 181, 182, 183, 184, 185, 186, 0, - 866, 0, 0, 190, 191, 192, 193, 194, 0, 0, - 197, 198, 199, 200, 0, 0, 0, 204, 205, 206, - 207, 208, 867, 210, 211, 212, 0, 213, 0, 0, - 0, 0, 0, 0, 219, 0, 221, 0, 223, 224, - 0, 226, 227, 228, 229, 230, 231, 0, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 0, 248, 249, 250, 0, 251, 252, 253, - 254, 255, 256, 257, 0, 259, 260, 261, 262, 0, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 0, 0, 0, 278, 0, 868, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 0, 0, 0, 0, - 0, 292, 293, 294, 295, 296, 297, 298, 299, 0, - 301, 302, 0, 304, 305, 0, 0, 307, 0, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 0, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 0, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 869, 0, 0, 0, 419, - 420, 0, 422, 423, 424, 425, 0, 427, 428, 429, - 430, 431, 432, 0, 0, 0, 0, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 461, 462, 0, 464, 0, 466, 467, 0, 469, - 470, 0, 472, 473, 474, 475, 476, 477, 0, 479, - 480, 481, 482, 483, 484, 485, 0, 487, 488, 489, - 0, 491, 492, 493, 494, 0, 496, 497, 0, 0, - 500, 0, 0, 503, 504, 505, 0, 507, 0, 509, - 510, 511, 512, 0, 513, 514, 515, 4, 517, 518, - 0, 520, 0, 522, 523, 524, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 0, 543, 544, 545, 546, 547, 548, - 549, 550, 0, 552, 553, 554, 0, 556, 557, 558, - 559, 0, 0, 562, 1645, 0, 565, 566, 567, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 13, 0, 581, 582, 0, 0, 584, 0, 586, 587, - 0, 0, 0, 0, 0, 0, 0, 158, 159, 15, + 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, + 0, 0, 0, 0, 0, 0, 160, 161, 162, 0, + 164, 0, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 0, 179, 180, 181, 182, 183, + 184, 185, 186, 0, 866, 0, 0, 190, 191, 192, + 193, 194, 0, 0, 197, 198, 199, 200, 0, 0, + 0, 204, 205, 206, 207, 208, 0, 210, 211, 212, + 0, 213, 0, 0, 0, 0, 0, 0, 219, 0, + 221, 0, 223, 224, 0, 226, 227, 228, 229, 230, + 231, 0, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 0, 248, 249, 250, + 0, 251, 252, 253, 254, 255, 256, 257, 0, 259, + 260, 261, 262, 0, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 0, 0, 0, 278, 0, + 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 0, 0, 0, 0, 0, 292, 293, 294, 295, 296, + 297, 298, 299, 0, 301, 302, 0, 304, 305, 0, + 0, 307, 0, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 0, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 0, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 0, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 0, + 0, 0, 0, 419, 420, 0, 422, 423, 424, 425, + 0, 427, 428, 429, 430, 431, 432, 0, 0, 0, + 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 0, 464, 0, + 466, 467, 0, 469, 470, 0, 472, 473, 474, 475, + 476, 477, 0, 479, 480, 481, 482, 483, 484, 485, + 0, 487, 488, 489, 0, 491, 492, 493, 494, 0, + 496, 497, 0, 0, 500, 0, 0, 503, 504, 505, + 0, 507, 0, 509, 510, 511, 512, 0, 513, 514, + 515, 0, 517, 518, 0, 520, 0, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 0, 543, 544, + 545, 546, 547, 548, 549, 550, 0, 552, 553, 554, + 0, 556, 557, 558, 559, 3347, 3348, 562, 563, 0, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 0, 0, 581, 582, 0, 0, + 584, 0, 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 28, 0, 0, 0, 0, 0, 864, - 865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, - 0, 0, 0, 160, 161, 162, 0, 164, 0, 166, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 0, 179, 180, 181, 182, 183, 184, 185, 186, - 0, 866, 0, 0, 190, 191, 192, 193, 194, 0, - 0, 197, 198, 199, 200, 0, 0, 0, 204, 205, - 206, 207, 208, 0, 210, 211, 212, 0, 213, 0, - 0, 0, 0, 0, 0, 219, 0, 221, 0, 223, - 224, 0, 226, 227, 228, 229, 230, 231, 0, 233, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 0, 213, 214, + 215, 216, 217, 218, 0, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 0, 248, 249, 250, 0, 251, 252, - 253, 254, 255, 256, 257, 0, 259, 260, 261, 262, - 0, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 0, 0, 0, 278, 0, 0, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 0, 0, 0, - 0, 0, 292, 293, 294, 295, 296, 297, 298, 299, - 0, 301, 302, 0, 304, 305, 0, 0, 307, 0, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 3349, 3350, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 0, 331, 332, 333, 334, 335, 336, 337, 338, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 0, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 0, 0, 0, 0, - 419, 420, 0, 422, 423, 424, 425, 0, 427, 428, - 429, 430, 431, 432, 0, 0, 0, 0, 437, 438, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 462, 0, 464, 0, 466, 467, 0, - 469, 470, 0, 472, 473, 474, 475, 476, 477, 0, - 479, 480, 481, 482, 483, 484, 485, 0, 487, 488, - 489, 0, 491, 492, 493, 494, 0, 496, 497, 0, - 0, 500, 0, 0, 503, 504, 505, 0, 507, 0, - 509, 510, 511, 512, 0, 513, 514, 515, 0, 517, - 518, 0, 520, 0, 522, 523, 524, 525, 526, 527, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 0, 543, 544, 545, 546, 547, - 548, 549, 550, 0, 552, 553, 554, 0, 556, 557, - 558, 559, 3347, 3348, 562, 563, 0, 565, 566, 567, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 0, 0, 581, 582, 0, 0, 584, 0, 586, - 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 578, 3351, 580, 581, 582, 583, 0, 584, 585, 586, + 587, 1297, 818, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9956,63 +10052,64 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 0, 213, 214, 215, 216, 217, - 218, 0, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 0, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 3349, 3350, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 0, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, - 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 3351, 580, - 581, 582, 583, 0, 584, 585, 586, 587, 1297, 818, + 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 0, 213, 214, 215, 216, + 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 1297, 584, 585, 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 749, 0, + 0, 0, 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10025,8 +10122,214 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, + 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 0, 213, + 214, 215, 216, 217, 218, 0, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 818, 584, 585, + 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 749, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 667, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 0, 213, 214, 215, 216, 217, 218, 0, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, + 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 0, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 0, + 584, 585, 586, 587, 2072, 0, 0, 0, 4757, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2073, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3743, 0, 0, 0, 0, 158, 159, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3744, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3745, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 667, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3746, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 0, 213, 214, 215, + 216, 217, 218, 0, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 0, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 0, 0, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 0, 584, 585, 586, 587, + 2072, 0, 0, 0, 5696, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2073, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3743, 0, 0, + 0, 0, 158, 159, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3744, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3745, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, @@ -10073,9 +10376,76 @@ 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, - 583, 1297, 584, 585, 586, 587, 0, 0, 0, 0, + 583, 0, 584, 585, 586, 587, 2072, 0, 0, 0, + 5764, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2073, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3743, 0, 0, 0, 0, 158, 159, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3745, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3746, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 0, 213, + 214, 215, 216, 217, 218, 0, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 2977, 584, 585, + 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10142,20 +10512,12 @@ 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 818, 584, 585, 586, 587, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 158, 159, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 749, 0, 0, 0, 0, 0, 0, + 580, 581, 582, 583, 1656, 584, 585, 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10164,280 +10526,13 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 0, 213, 214, - 215, 216, 217, 218, 0, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 0, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 0, 584, 585, 586, - 587, 2072, 0, 0, 0, 4757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2073, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3742, 0, - 0, 0, 0, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3743, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3744, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 667, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3745, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 0, 213, 214, 215, 216, 217, 218, - 0, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 0, 0, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, - 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, - 582, 583, 0, 584, 585, 586, 587, 2072, 0, 0, - 0, 5698, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2073, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3742, 0, 0, 0, 0, 158, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3743, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3744, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3745, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 0, - 213, 214, 215, 216, 217, 218, 0, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 0, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 0, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 0, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, 0, 584, - 585, 586, 587, 2072, 0, 0, 0, 5767, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2073, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3742, 0, 0, 0, 0, 158, 159, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3743, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3744, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 667, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3745, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 0, 213, 214, 215, 216, - 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 2977, 584, 585, 586, 587, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 158, 159, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 749, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10549,10 +10644,10 @@ 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 546, 2356, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, 1656, 584, + 576, 577, 578, 579, 580, 581, 582, 583, 3058, 584, 585, 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10616,11 +10711,11 @@ 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 2356, 548, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 3058, 584, 585, 586, 587, + 579, 580, 581, 582, 583, 4822, 584, 585, 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10688,7 +10783,7 @@ 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, - 582, 583, 4822, 584, 585, 586, 587, 0, 0, 0, + 582, 583, 4830, 584, 585, 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10755,7 +10850,7 @@ 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 4830, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 2991, 584, 585, 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10776,7 +10871,7 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10795,11 +10890,11 @@ 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 300, 0, 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 0, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, @@ -10814,7 +10909,7 @@ 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 489, 490, 491, 492, 493, 0, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, @@ -10823,15 +10918,8 @@ 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 2991, 584, 585, 586, - 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 158, 159, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 578, 2992, 580, 581, 582, 583, 0, 584, 585, 586, + 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10843,59 +10931,61 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 0, 213, 214, 215, 216, 217, - 218, 0, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 0, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 0, 0, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 0, 302, - 303, 304, 305, 306, 0, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 334, 335, 336, 337, 338, 0, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 0, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, - 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 2992, 580, - 581, 582, 583, 0, 584, 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 2215, 213, 214, 215, 216, 217, 218, 0, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 0, 584, 585, 586, 587, 0, 0, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 5893, 0, 0, 0, 0, + 0, 2216, 5894, 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10908,57 +10998,57 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 2215, 213, - 214, 215, 216, 217, 218, 0, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 0, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 0, 584, 585, - 586, 587, 0, 0, 158, 159, 0, 0, 0, 0, + 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 0, 213, 214, + 215, 216, 217, 218, 0, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 0, 584, 585, 586, + 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5896, 0, 0, 0, 0, 0, 2216, 5897, - 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 749, 1677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10970,58 +11060,59 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 0, 213, 214, 215, 216, 217, - 218, 0, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 0, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 0, 0, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 0, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, - 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 0, 584, 585, 586, 587, 158, 159, + 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 0, 584, 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 749, 1677, 0, 0, 0, 0, + 0, 749, 2230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11033,59 +11124,58 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 0, 213, - 214, 215, 216, 217, 218, 0, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 0, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 0, 584, 585, - 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 749, 2230, + 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 0, 213, 214, 215, 216, + 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 0, 584, 585, 586, 587, 158, + 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11097,59 +11187,59 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 0, 213, 214, 215, 216, 217, 218, 0, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 0, 0, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 0, - 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, - 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, - 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, - 583, 0, 584, 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3145, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 2215, + 213, 214, 215, 216, 217, 218, 0, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 0, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 0, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 0, 584, + 585, 586, 587, 1476, 1477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2216, + 5894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11165,54 +11255,54 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 2215, 213, 214, 215, - 216, 217, 218, 0, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 0, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 0, 0, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 0, 584, 585, 586, 587, - 1476, 1477, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 0, 213, 214, 215, 216, 217, 218, + 0, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 0, 0, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 0, 584, 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2216, 5897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1801, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11228,54 +11318,55 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 0, 213, 214, 215, 216, 217, 218, 0, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, - 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, - 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 0, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 0, - 584, 585, 586, 587, 158, 159, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, + 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 2215, 213, 214, + 215, 216, 217, 218, 0, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 0, 584, 585, 586, + 587, 1476, 1477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3541, 0, 0, 0, 0, 0, 2216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1801, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11291,54 +11382,55 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 2215, 213, 214, 215, 216, 217, - 218, 0, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 0, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 0, 0, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 0, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, - 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 0, 584, 585, 586, 587, 1476, 1477, + 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 1478, 213, 214, 215, 216, 217, 218, 0, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 0, 584, 585, 586, 587, 158, 159, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1646, 0, + 0, 0, 0, 0, 1479, 0, 0, 0, 0, 0, + 0, 1041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3540, 0, - 0, 0, 0, 0, 2216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11354,54 +11446,53 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 0, 213, 214, 215, 216, + 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 0, 584, 585, 586, 587, 1476, + 1477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 1478, 213, - 214, 215, 216, 217, 218, 0, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 0, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 0, 584, 585, - 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1646, 0, 0, 0, 0, - 0, 1479, 0, 0, 0, 0, 0, 0, 1041, 0, + 0, 0, 0, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11418,54 +11509,54 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 0, 213, 214, 215, 216, 217, 218, 0, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 0, 0, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 0, - 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, - 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, - 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, - 583, 0, 584, 585, 586, 587, 1476, 1477, 0, 0, + 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 1478, + 213, 214, 215, 216, 217, 218, 0, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 0, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 0, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 0, 584, + 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11481,54 +11572,54 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 2215, 213, 214, 215, 216, 217, 218, + 0, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 0, 0, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 0, 584, 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 1478, 213, 214, 215, - 216, 217, 218, 0, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 0, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 0, 0, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 0, 584, 585, 586, 587, - 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1041, 0, 0, 0, + 0, 0, 0, 2216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11545,54 +11636,55 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 2215, 213, 214, 215, 216, 217, 218, 0, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, - 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, - 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 0, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 0, - 584, 585, 586, 587, 158, 159, 0, 0, 0, 0, + 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 0, 213, 214, + 215, 216, 217, 218, 0, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 0, 584, 585, 586, + 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2712, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11607,55 +11699,56 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 0, 584, 585, 586, 587, 158, 159, 4804, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4398, 0, 0, 0, 0, 0, + 0, 4272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 0, 213, 214, 215, 216, 217, - 218, 0, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 0, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 0, 0, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 0, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, - 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 0, 584, 585, 586, 587, 158, 159, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11670,55 +11763,55 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 0, 213, 214, 215, 216, + 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 0, 584, 585, 586, 587, 158, + 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 0, 213, - 214, 215, 216, 217, 218, 0, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 0, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 0, 584, 585, - 586, 587, 158, 159, 4804, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4398, 0, 0, 0, 0, 0, 0, 4272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11733,43 +11826,487 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 0, + 213, 214, 215, 216, 217, 218, 0, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 0, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 0, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 0, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 0, 584, + 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 212, 0, 213, 214, 215, 216, 217, 218, 0, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 0, 0, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 0, 213, 214, 215, 216, 217, 218, + 0, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 0, 0, 279, 280, 728, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 0, 729, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 730, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 0, 584, 585, 586, 587, 158, 159, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 680, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 0, 213, 214, + 215, 216, 217, 218, 0, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 0, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 0, 584, 585, 586, + 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4272, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 2732, 584, 585, 586, 587, 158, 159, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2273, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 663, 664, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5178, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 5179, 640, + 5180, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 0, 213, 214, 215, 216, + 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 0, 584, 585, 586, 587, 1413, + 0, 0, 0, 0, 1414, 0, 0, 0, 0, 2733, + 0, 0, 0, 0, 158, 159, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 0, 213, 214, 215, 216, 217, + 218, 0, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 0, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 0, 0, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 1415, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 1346, 584, 585, 586, 587, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 158, 159, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 0, 213, + 214, 215, 216, 217, 218, 0, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 0, 584, 585, + 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 0, 213, 214, 215, 216, 217, 218, 0, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 0, 0, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, @@ -11780,9 +12317,9 @@ 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 0, 584, 585, 586, 587, 158, 159, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2687, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11843,9 +12380,9 @@ 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 0, 584, 585, 586, 587, - 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, + 1476, 1477, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11875,8 +12412,8 @@ 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, - 0, 279, 280, 728, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 0, 729, 292, 293, 294, 295, 296, + 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, @@ -11889,7 +12426,7 @@ 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 730, 424, 425, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, @@ -11907,9 +12444,9 @@ 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 0, 584, 585, 586, 587, 158, 159, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11969,10 +12506,10 @@ 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 0, 584, 585, 586, 587, 158, 159, + 581, 582, 583, 0, 584, 585, 586, 587, 1476, 1477, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12032,21 +12569,21 @@ 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 2732, 584, 585, + 577, 578, 579, 580, 581, 582, 583, 0, 584, 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5107, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 663, 664, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 5180, 640, 5181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12096,10 +12633,10 @@ 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, - 583, 0, 584, 585, 586, 587, 1413, 0, 0, 0, - 0, 1414, 0, 0, 0, 0, 2733, 0, 0, 0, - 0, 158, 159, 0, 0, 0, 0, 0, 0, 0, + 583, 0, 584, 585, 586, 587, 158, 159, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12109,134 +12646,192 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 0, 213, 214, 215, + 216, 217, 218, 0, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 0, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 0, 0, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 0, 584, 585, 586, 587, + 1476, 1477, 0, 0, 1666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 1415, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 1346, 584, 585, 586, 587, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 2393, 213, 214, 215, 216, 217, 218, 0, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, + 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 0, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 0, + 584, 585, 586, 587, 1476, 1477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3887, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 0, 213, 214, 215, 216, - 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 0, 584, 585, 586, 587, 158, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 2393, 213, 214, 215, 216, 217, + 218, 0, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 0, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 0, 0, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 0, 584, 585, 586, 587, 1476, 1477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2390, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12245,54 +12840,54 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 0, - 213, 214, 215, 216, 217, 218, 0, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 0, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 0, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 0, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, 0, 584, - 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2687, 0, 0, 0, 0, 0, + 0, 2392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 2393, 213, + 214, 215, 216, 217, 218, 0, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 0, 584, 585, + 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12304,59 +12899,61 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 639, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 0, 213, 214, 215, 216, 217, 218, - 0, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 0, 0, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, - 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, - 582, 583, 0, 584, 585, 586, 587, 1476, 1477, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 0, 213, 214, 215, 216, 217, 218, 0, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 0, 0, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 0, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 0, 584, 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12368,56 +12965,56 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 0, 213, 214, - 215, 216, 217, 218, 0, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 0, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 0, 584, 585, 586, - 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4327, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 0, 213, 214, 215, + 216, 217, 218, 0, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 0, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 0, 0, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 0, 584, 585, 586, 587, + 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12430,62 +13027,63 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 0, 584, 585, 586, 587, 1476, 1477, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4631, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 0, 213, 214, 215, 216, 217, 218, 0, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, + 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 0, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 0, + 584, 585, 586, 587, 1476, 1477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12499,52 +13097,50 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 0, 213, 214, 215, 216, - 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 0, 584, 585, 586, 587, 158, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5108, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 0, 213, 214, 215, 216, 217, + 218, 0, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 0, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 0, 0, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 0, 584, 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12553,6 +13149,7 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12562,54 +13159,52 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 0, - 213, 214, 215, 216, 217, 218, 0, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 0, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 0, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 0, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, 0, 584, - 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5226, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 0, 213, + 214, 215, 216, 217, 218, 0, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 0, 584, 585, + 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12618,193 +13213,134 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 0, 213, 214, 215, 216, 217, 218, - 0, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 0, 0, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, - 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, - 582, 583, 0, 584, 585, 586, 587, 1476, 1477, 0, - 0, 1666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2390, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 952, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 0, 213, 214, 215, 216, 217, 218, 0, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 0, 0, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 0, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 0, 584, 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2391, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5493, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 2393, 213, 214, - 215, 216, 217, 218, 0, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 0, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 0, 584, 585, 586, - 587, 1476, 1477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3886, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 0, 213, 214, 215, + 216, 217, 218, 0, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 0, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 0, 0, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 0, 584, 585, 586, 587, + 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 2393, 213, 214, 215, 216, 217, 218, 0, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 0, 584, 585, 586, 587, 1476, 1477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12812,55 +13348,54 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 0, 213, 214, 215, 216, 217, 218, 0, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, + 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 0, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 0, + 584, 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 2393, 213, 214, 215, 216, - 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 0, 584, 585, 586, 587, 158, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12872,61 +13407,57 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 639, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 0, - 213, 214, 215, 216, 217, 218, 0, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 0, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 0, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 0, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, 0, 584, - 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 0, 213, 214, 215, 216, 217, + 218, 0, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 0, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 0, 0, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 311, + 312, 313, 675, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 0, 584, 585, 586, 587, 1476, 1477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12938,60 +13469,59 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 0, 213, 214, 215, 216, 217, 218, - 0, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 0, 0, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, - 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, - 582, 583, 0, 584, 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 0, 213, + 214, 215, 216, 217, 218, 0, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 0, 584, 585, + 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -13000,63 +13530,61 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 0, 213, 214, - 215, 216, 217, 218, 0, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 0, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 0, 584, 585, 586, - 587, 1476, 1477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1522, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 0, 213, 214, 215, 216, 217, 218, 0, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 0, 0, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 1822, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 0, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 0, 584, 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -13069,51 +13597,6 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 0, 584, 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -13121,8 +13604,52 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2367, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 0, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 0, 213, 214, 215, + 216, 217, 218, 0, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 0, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 0, 0, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 0, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 0, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 0, 584, 585, 586, 587, + 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -13133,51 +13660,6 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 0, 213, 214, 215, 216, - 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 0, 584, 585, 586, 587, 158, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -13185,6 +13667,51 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 0, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 0, 213, 214, 215, 216, 217, 218, 0, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 0, + 0, 279, 280, 281, 282, 283, 284, 285, 2480, 287, + 288, 289, 290, 0, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 2481, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 0, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 0, + 584, 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -13192,55 +13719,9 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 0, - 213, 214, 215, 216, 217, 218, 0, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 0, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 0, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 0, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, 0, 584, - 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -13249,8 +13730,51 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 0, 213, 214, 215, 216, 217, + 218, 0, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 0, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 0, 0, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 0, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 0, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 0, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 3351, 580, + 581, 582, 583, 0, 584, 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -13259,57 +13783,6 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 0, 213, 214, 215, 216, 217, 218, - 0, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 0, 0, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, - 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, - 582, 583, 0, 584, 585, 586, 587, 158, 159, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -13321,54 +13794,51 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 0, 213, 214, - 215, 216, 217, 218, 0, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 0, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 0, 584, 585, 586, - 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 0, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 0, 213, + 214, 215, 216, 217, 218, 0, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 0, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 0, 0, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 0, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 0, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 0, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 0, 580, 581, 582, 583, 0, 584, 585, + 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -13383,54 +13853,55 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 0, 307, 308, 309, 310, 311, 312, 313, 675, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 0, 584, 585, 586, 587, 1476, 1477, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 0, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 0, 213, 214, 215, 216, 217, 218, 0, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 0, 0, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 0, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 0, 302, 303, 304, + 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 0, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 0, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 0, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 2992, 580, 581, 582, + 583, 0, 584, 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -13449,25 +13920,71 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1411, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 160, 161, 162, 0, 164, 0, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 0, 179, 180, 181, 182, 183, 184, 185, 186, 0, + 0, 0, 0, 190, 191, 192, 193, 194, 0, 0, + 197, 198, 199, 200, 0, 0, 0, 204, 205, 206, + 207, 208, 0, 210, 211, 212, 0, 213, 0, 0, + 0, 0, 0, 0, 219, 0, 221, 0, 223, 224, + 0, 226, 227, 228, 229, 230, 231, 0, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 0, 248, 249, 250, 0, 251, 252, 253, + 254, 255, 256, 257, 0, 259, 260, 261, 262, 0, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 0, 0, 0, 278, 0, 0, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 0, 0, 0, 0, + 0, 292, 293, 294, 295, 296, 297, 298, 299, 0, + 301, 302, 0, 304, 305, 0, 0, 307, 0, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 0, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 0, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 0, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 158, 159, 0, 0, 419, + 420, 0, 422, 423, 424, 425, 0, 427, 428, 429, + 430, 431, 432, 0, 0, 0, 0, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 0, 464, 0, 466, 467, 0, 469, + 470, 0, 472, 473, 474, 475, 476, 477, 0, 479, + 480, 481, 482, 483, 484, 485, 0, 487, 488, 489, + 0, 491, 492, 493, 494, 0, 496, 497, 0, 0, + 500, 0, 0, 503, 504, 505, 0, 507, 0, 509, + 510, 511, 512, 0, 513, 514, 515, 0, 517, 518, + 0, 520, 0, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 0, 543, 544, 545, 546, 547, 548, + 549, 550, 0, 552, 553, 554, 0, 556, 557, 558, + 559, 0, 0, 562, 563, 0, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 0, 0, 581, 582, 0, 0, 584, 0, 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 0, 213, 214, 215, 216, - 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 1422, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 160, 161, 162, 0, 164, 0, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 0, + 179, 180, 181, 182, 183, 184, 185, 186, 0, 0, + 0, 0, 190, 191, 192, 193, 194, 0, 0, 197, + 198, 199, 200, 0, 0, 0, 204, 205, 206, 207, + 208, 0, 210, 211, 212, 0, 213, 0, 0, 0, + 0, 0, 0, 219, 0, 221, 0, 223, 224, 0, + 226, 227, 228, 229, 230, 231, 0, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 246, 0, 248, 249, 250, 0, 251, 252, 253, 254, + 255, 256, 257, 0, 259, 260, 261, 262, 0, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 0, 0, 0, 278, 0, 0, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 0, 0, 0, 0, 0, + 292, 293, 294, 295, 296, 297, 298, 299, 0, 301, + 302, 0, 304, 305, 0, 0, 307, 0, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 0, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, @@ -13475,1938 +13992,1387 @@ 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 0, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 158, 159, 0, 0, 419, 420, + 0, 422, 423, 424, 425, 0, 427, 428, 429, 430, + 431, 432, 0, 0, 0, 0, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 461, 462, 0, 464, 0, 466, 467, 0, 469, 470, + 0, 472, 473, 474, 475, 476, 477, 0, 479, 480, + 481, 482, 483, 484, 485, 0, 487, 488, 489, 0, + 491, 492, 493, 494, 0, 496, 497, 0, 0, 500, + 0, 0, 503, 504, 505, 0, 507, 0, 509, 510, + 511, 512, 0, 513, 514, 515, 0, 517, 518, 0, + 520, 0, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 0, 584, 585, 586, 587, 158, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 0, - 213, 214, 215, 216, 217, 218, 0, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 0, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 0, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 0, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 1822, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, 0, 584, - 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2367, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 0, 213, 214, 215, 216, 217, 218, - 0, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 0, 0, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 0, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 0, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, - 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, - 582, 583, 0, 584, 585, 586, 587, 158, 159, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 0, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 0, 213, 214, - 215, 216, 217, 218, 0, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 0, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 0, 0, 279, 280, - 281, 282, 283, 284, 285, 2480, 287, 288, 289, 290, - 0, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 0, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 2481, 395, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 0, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 0, 584, 585, 586, - 587, 158, 159, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 540, 541, 0, 543, 544, 545, 546, 547, 548, 549, + 550, 0, 552, 553, 554, 0, 556, 557, 558, 559, + 0, 0, 562, 563, 0, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 0, + 0, 581, 582, 0, 0, 584, 0, 586, 587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 0, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 0, 213, 214, 215, 216, 217, 218, 0, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 0, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 0, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 3351, 580, 581, 582, 583, - 0, 584, 585, 586, 587, 158, 159, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 0, 213, 214, 215, 216, - 217, 218, 0, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 0, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 0, 0, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 0, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 0, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 0, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 0, - 580, 581, 582, 583, 0, 584, 585, 586, 587, 158, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 667, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 0, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 0, - 213, 214, 215, 216, 217, 218, 0, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 0, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 0, 0, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 0, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 0, 302, 303, 304, 305, 306, 0, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 0, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 0, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 0, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 2992, 580, 581, 582, 583, 0, 584, - 585, 586, 587, 158, 159, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1411, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, - 161, 162, 0, 164, 0, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 0, 179, 180, - 181, 182, 183, 184, 185, 186, 0, 0, 0, 0, - 190, 191, 192, 193, 194, 0, 0, 197, 198, 199, - 200, 0, 0, 0, 204, 205, 206, 207, 208, 0, - 210, 211, 212, 0, 213, 0, 0, 0, 0, 0, - 0, 219, 0, 221, 0, 223, 224, 0, 226, 227, - 228, 229, 230, 231, 0, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, - 248, 249, 250, 0, 251, 252, 253, 254, 255, 256, - 257, 0, 259, 260, 261, 262, 0, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 0, 0, - 0, 278, 0, 0, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 0, 0, 0, 0, 0, 292, 293, - 294, 295, 296, 297, 298, 299, 0, 301, 302, 0, - 304, 305, 0, 0, 307, 0, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 0, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 0, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 158, 159, 0, 0, 419, 420, 0, 422, - 423, 424, 425, 0, 427, 428, 429, 430, 431, 432, - 0, 0, 0, 0, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 0, 464, 0, 466, 467, 0, 469, 470, 0, 472, - 473, 474, 475, 476, 477, 0, 479, 480, 481, 482, - 483, 484, 485, 0, 487, 488, 489, 0, 491, 492, - 493, 494, 0, 496, 497, 0, 0, 500, 0, 0, - 503, 504, 505, 0, 507, 0, 509, 510, 511, 512, - 0, 513, 514, 515, 0, 517, 518, 0, 520, 0, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 0, 543, 544, 545, 546, 547, 548, 549, 550, 0, - 552, 553, 554, 0, 556, 557, 558, 559, 0, 0, - 562, 563, 0, 565, 566, 567, 568, 569, 570, 571, - 572, 573, 574, 575, 576, 577, 578, 0, 0, 581, - 582, 0, 0, 584, 0, 586, 587, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1422, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 160, 161, - 162, 0, 164, 0, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 0, 179, 180, 181, - 182, 183, 184, 185, 186, 0, 0, 0, 0, 190, - 191, 192, 193, 194, 0, 0, 197, 198, 199, 200, - 0, 0, 0, 204, 205, 206, 207, 208, 0, 210, - 211, 212, 0, 213, 0, 0, 0, 0, 0, 0, - 219, 0, 221, 0, 223, 224, 0, 226, 227, 228, - 229, 230, 231, 0, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 0, 248, - 249, 250, 0, 251, 252, 253, 254, 255, 256, 257, - 0, 259, 260, 261, 262, 0, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 0, 0, 0, - 278, 0, 0, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 0, 0, 0, 0, 0, 292, 293, 294, - 295, 296, 297, 298, 299, 0, 301, 302, 0, 304, - 305, 0, 0, 307, 0, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 0, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 0, 331, 332, 333, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 0, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 158, 159, 0, 0, 419, 420, 0, 422, 423, - 424, 425, 0, 427, 428, 429, 430, 431, 432, 0, - 0, 0, 0, 437, 438, 439, 440, 441, 442, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 461, 462, 0, - 464, 0, 466, 467, 0, 469, 470, 0, 472, 473, - 474, 475, 476, 477, 0, 479, 480, 481, 482, 483, - 484, 485, 0, 487, 488, 489, 0, 491, 492, 493, - 494, 0, 496, 497, 0, 0, 500, 0, 0, 503, - 504, 505, 0, 507, 0, 509, 510, 511, 512, 0, - 513, 514, 515, 0, 517, 518, 0, 520, 0, 522, - 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 0, - 543, 544, 545, 546, 547, 548, 549, 550, 0, 552, - 553, 554, 0, 556, 557, 558, 559, 0, 0, 562, - 563, 0, 565, 566, 567, 568, 569, 570, 571, 572, - 573, 574, 575, 576, 577, 578, 0, 0, 581, 582, - 0, 0, 584, 0, 586, 587, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 160, 161, 162, - 0, 164, 0, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 0, 179, 180, 181, 182, - 183, 184, 185, 186, 0, 0, 0, 0, 190, 191, - 192, 193, 194, 0, 0, 197, 198, 199, 200, 0, - 0, 0, 204, 205, 206, 207, 208, 0, 210, 211, - 212, 0, 213, 0, 0, 0, 0, 0, 0, 219, - 0, 221, 0, 223, 224, 0, 226, 227, 228, 229, - 230, 231, 0, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 0, 248, 249, - 250, 0, 251, 252, 253, 254, 255, 256, 257, 0, - 259, 260, 261, 262, 0, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 0, 0, 0, 278, - 0, 0, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 0, 0, 0, 0, 0, 292, 293, 294, 295, - 296, 297, 298, 299, 0, 301, 302, 0, 304, 305, - 0, 0, 307, 0, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 0, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 0, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 0, 0, 0, 0, 419, 420, 0, 422, 423, 424, - 425, 0, 427, 428, 429, 430, 431, 432, 0, 0, - 0, 0, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 0, 464, - 0, 466, 467, 0, 469, 470, 0, 472, 473, 474, - 475, 476, 477, 0, 479, 480, 481, 482, 483, 484, - 485, 0, 487, 488, 489, 0, 491, 492, 493, 494, - 0, 496, 497, 0, 0, 500, 0, 0, 503, 504, - 505, 0, 507, 0, 509, 510, 511, 512, 0, 513, - 514, 515, 0, 517, 518, 0, 520, 0, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 0, 543, - 544, 545, 546, 547, 548, 549, 550, 0, 552, 553, - 554, 0, 556, 557, 558, 559, 0, 0, 562, 563, - 0, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 0, 0, 581, 582, 0, - 0, 584, 0, 586, 587 + 160, 161, 162, 0, 164, 0, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 0, 179, + 180, 181, 182, 183, 184, 185, 186, 0, 0, 0, + 0, 190, 191, 192, 193, 194, 0, 0, 197, 198, + 199, 200, 0, 0, 0, 204, 205, 206, 207, 208, + 0, 210, 211, 212, 0, 213, 0, 0, 0, 0, + 0, 0, 219, 0, 221, 0, 223, 224, 0, 226, + 227, 228, 229, 230, 231, 0, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 0, 248, 249, 250, 0, 251, 252, 253, 254, 255, + 256, 257, 0, 259, 260, 261, 262, 0, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 0, + 0, 0, 278, 0, 0, 279, 280, 281, 282, 283, + 284, 285, 286, 287, 0, 0, 0, 0, 0, 292, + 293, 294, 295, 296, 297, 298, 299, 0, 301, 302, + 0, 304, 305, 0, 0, 307, 0, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 0, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 0, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 0, 0, 0, 0, 419, 420, 0, + 422, 423, 424, 425, 0, 427, 428, 429, 430, 431, + 432, 0, 0, 0, 0, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 0, 464, 0, 466, 467, 0, 469, 470, 0, + 472, 473, 474, 475, 476, 477, 0, 479, 480, 481, + 482, 483, 484, 485, 0, 487, 488, 489, 0, 491, + 492, 493, 494, 0, 496, 497, 0, 0, 500, 0, + 0, 503, 504, 505, 0, 507, 0, 509, 510, 511, + 512, 0, 513, 514, 515, 0, 517, 518, 0, 520, + 0, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 0, 543, 544, 545, 546, 547, 548, 549, 550, + 0, 552, 553, 554, 0, 556, 557, 558, 559, 0, + 0, 562, 563, 0, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 0, 0, + 581, 582, 0, 0, 584, 0, 586, 587 }; static const yytype_int16 yycheck[] = { - 3, 119, 655, 149, 41, 1277, 654, 655, 739, 1458, - 145, 144, 1276, 1179, 1277, 1290, 3, 1408, 648, 1625, - 157, 745, 25, 1963, 1644, 808, 1900, 30, 21, 654, - 1465, 34, 1902, 654, 37, 0, 1637, 1474, 1715, 1351, - 1161, 1971, 2444, 1684, 1875, 48, 42, 1572, 51, 1686, - 1715, 54, 2752, 2753, 2553, 58, 49, 3222, 1179, 1124, - 1125, 1126, 55, 870, 1700, 1701, 3124, 859, 1133, 861, - 862, 863, 1496, 745, 654, 674, 868, 1291, 3222, 654, - 1877, 634, 3271, 3493, 623, 1585, 1596, 2677, 1394, 2900, - 3315, 623, 3788, 3163, 1604, 648, 2766, 2509, 2768, 3176, - 693, 654, 1637, 696, 3696, 2042, 1869, 110, 939, 3512, - 1291, 2769, 2442, 652, 3222, 1908, 1236, 2953, 2954, 3494, - 652, 3187, 901, 2675, 2465, 3494, 2870, 3970, 2675, 939, - 3888, 157, 1800, 3112, 137, 3730, 139, 1873, 3243, 142, - 1876, 3165, 145, 146, 31, 4294, 4183, 3213, 3214, 10, - 3019, 157, 139, 157, 3778, 142, 634, 157, 3038, 1705, - 1363, 3778, 1798, 4118, 3779, 4417, 3781, 3047, 4528, 3784, - 648, 2608, 3613, 713, 984, 6, 654, 717, 718, 1725, - 1919, 1605, 1606, 3798, 1608, 1609, 1610, 1611, 1612, 1613, - 6, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1800, - 3778, 61, 9, 10, 1750, 1751, 26, 1327, 11, 9, - 10, 11, 3278, 3279, 1834, 4691, 11, 61, 28, 80, - 80, 2004, 1961, 2006, 2007, 26, 12, 61, 1158, 92, - 80, 1041, 2608, 9, 10, 4897, 80, 61, 2675, 1102, - 11, 94, 9, 10, 92, 3540, 80, 9, 10, 3485, - 1180, 80, 4386, 152, 86, 104, 1035, 1036, 1037, 1181, - 2600, 9, 10, 113, 6, 1800, 9, 10, 1047, 9, - 10, 2665, 9, 10, 3217, 3019, 3202, 80, 17, 65, - 104, 51, 634, 27, 80, 74, 3691, 9, 10, 2937, - 234, 9, 10, 32, 50, 3236, 648, 1104, 786, 2675, - 44, 2589, 654, 229, 176, 6, 859, 1927, 861, 862, - 863, 61, 61, 229, 3717, 868, 4816, 870, 9, 10, - 152, 3389, 4151, 260, 9, 10, 724, 94, 4186, 3213, - 3214, 3686, 9, 10, 262, 292, 57, 32, 3387, 4097, - 110, 282, 9, 10, 61, 3394, 5069, 3396, 61, 3398, - 260, 9, 10, 297, 104, 104, 260, 262, 9, 10, - 286, 4286, 3285, 4479, 369, 4426, 216, 765, 4509, 4635, - 286, 14, 1985, 180, 297, 182, 262, 148, 42, 260, - 180, 859, 182, 861, 862, 863, 234, 104, 4520, 3258, - 868, 104, 870, 12, 3278, 3279, 2726, 4762, 1208, 176, - 129, 9, 10, 4519, 180, 6, 182, 9, 10, 219, - 1422, 1762, 156, 180, 234, 182, 9, 10, 180, 80, - 182, 4537, 9, 10, 4540, 4541, 213, 558, 9, 10, - 181, 69, 180, 2053, 182, 206, 297, 180, 360, 182, - 180, 375, 182, 180, 83, 182, 65, 4834, 3518, 104, - 148, 176, 116, 282, 9, 10, 4152, 3812, 180, 217, - 182, 5268, 180, 127, 182, 114, 28, 68, 5442, 145, - 134, 176, 267, 5485, 176, 608, 137, 610, 611, 612, - 613, 120, 615, 616, 104, 111, 619, 620, 623, 180, - 86, 182, 372, 5111, 301, 180, 297, 182, 80, 163, - 607, 301, 1365, 180, 148, 182, 282, 859, 566, 861, - 862, 863, 707, 180, 3258, 182, 868, 652, 870, 104, - 181, 5133, 180, 161, 182, 301, 185, 406, 1391, 180, - 86, 182, 262, 668, 301, 2318, 2319, 2320, 2321, 301, - 5468, 104, 176, 1849, 3044, 763, 764, 80, 104, 684, - 17, 1104, 117, 301, 234, 137, 5838, 58, 301, 124, - 224, 301, 206, 92, 301, 32, 176, 762, 5044, 639, - 4930, 1835, 180, 199, 182, 262, 172, 1360, 180, 301, - 182, 5863, 1175, 301, 323, 94, 193, 180, 17, 182, - 193, 255, 1657, 180, 247, 182, 3701, 1321, 729, 180, - 1875, 182, 341, 606, 137, 712, 602, 229, 347, 5227, - 301, 9, 10, 1678, 617, 124, 301, 1880, 5425, 622, - 623, 186, 123, 2553, 301, 180, 1104, 182, 323, 1901, - 229, 766, 1463, 764, 301, 5135, 275, 229, 113, 3828, - 229, 262, 645, 301, 245, 246, 525, 113, 1479, 652, - 301, 654, 347, 1463, 255, 3725, 3525, 219, 243, 9, - 10, 1440, 1441, 127, 286, 668, 600, 234, 1478, 1479, - 1394, 233, 807, 148, 317, 271, 374, 680, 811, 812, - 738, 684, 685, 2324, 282, 282, 2483, 286, 2325, 489, - 686, 138, 578, 301, 1908, 698, 5308, 693, 3806, 301, - 696, 2052, 1332, 699, 3728, 710, 4767, 208, 301, 712, - 5722, 1199, 1878, 295, 301, 271, 1919, 2548, 286, 1259, - 301, 1261, 1262, 1263, 1264, 1265, 297, 1908, 457, 297, - 278, 5118, 5097, 3285, 634, 170, 5710, 234, 3285, 5005, - 644, 390, 745, 5466, 747, 4603, 301, 4342, 648, 408, - 4191, 688, 1104, 234, 4195, 303, 203, 1878, 1961, 646, - 640, 234, 295, 766, 9, 10, 707, 554, 297, 9, - 10, 3697, 775, 234, 1704, 1978, 4917, 1707, 688, 1332, - 3217, 3525, 180, 786, 182, 788, 2223, 2224, 3599, 1719, - 1653, 5719, 1722, 796, 4926, 798, 1726, 800, 801, 802, - 803, 804, 805, 747, 807, 762, 1637, 688, 1671, 2309, - 9, 10, 3878, 2248, 801, 802, 803, 727, 4743, 4648, - 4775, 1631, 1361, 1753, 1754, 1755, 1748, 1637, 99, 866, - 180, 2255, 182, 3776, 762, 1698, 762, 1957, 719, 762, - 762, 3217, 2266, 629, 2268, 2269, 762, 1626, 3285, 1337, - 2589, 4146, 1451, 4969, 1332, 858, 323, 860, 459, 603, - 9, 10, 4098, 762, 867, 770, 869, 4519, 2414, 2608, - 3919, 3920, 4827, 760, 341, 3215, 1274, 621, 1366, 4637, - 347, 884, 9, 10, 3532, 4537, 3280, 4292, 4540, 4541, - 3831, 635, 764, 9, 10, 727, 3945, 9, 10, 747, - 3188, 764, 5036, 301, 753, 1715, 373, 768, 768, 3285, - 4313, 764, 654, 657, 3982, 3964, 3965, 3966, 768, 806, - 3969, 1520, 809, 2686, 768, 726, 2665, 747, 2711, 753, - 1654, 762, 3981, 5595, 768, 180, 2675, 182, 1537, 768, - 180, 1540, 182, 1542, 747, 666, 762, 1546, 1547, 1548, - 1438, 301, 747, 654, 764, 1554, 3879, 2570, 2571, 859, - 767, 861, 862, 863, 764, 768, 752, 738, 868, 1800, - 870, 727, 768, 762, 2587, 714, 747, 766, 9, 10, - 1332, 180, 1654, 182, 2597, 2598, 5346, 764, 764, 1124, - 1800, 1126, 554, 4948, 3878, 1130, 1131, 764, 192, 1723, - 701, 763, 764, 753, 753, 3335, 764, 3751, 3752, 1046, - 629, 3755, 3756, 764, 262, 763, 764, 3761, 3762, 714, - 763, 764, 2034, 763, 764, 1160, 763, 764, 5280, 2041, - 5171, 180, 762, 182, 4989, 4990, 753, 1040, 5099, 764, - 753, 763, 764, 4398, 491, 763, 764, 2660, 2661, 2662, - 2663, 1723, 5168, 180, 5170, 182, 301, 492, 4128, 764, - 234, 301, 764, 664, 180, 666, 182, 747, 180, 2689, - 182, 49, 763, 764, 727, 762, 752, 753, 763, 764, - 2700, 9, 10, 182, 513, 3829, 763, 764, 858, 9, - 10, 5046, 741, 5569, 738, 5571, 5572, 764, 753, 1102, - 1103, 567, 301, 767, 652, 1108, 764, 768, 763, 764, - 3050, 3611, 3612, 764, 385, 1118, 754, 755, 756, 757, - 716, 1124, 1661, 1126, 763, 1849, 601, 1130, 1131, 1661, - 764, 9, 10, 753, 9, 10, 1919, 513, 1275, 1946, - 762, 762, 4545, 763, 764, 3555, 3556, 3557, 3558, 180, - 1690, 182, 301, 721, 764, 762, 764, 1160, 2021, 762, - 2896, 625, 764, 762, 1282, 763, 764, 764, 753, 1900, - 762, 764, 769, 762, 301, 676, 4200, 764, 1961, 1175, - 747, 1177, 2965, 764, 1809, 301, 768, 297, 1809, 301, - 753, 1194, 5229, 764, 762, 1198, 1199, 753, 763, 1792, - 763, 764, 769, 4308, 1104, 4800, 4609, 4231, 4611, 764, - 1213, 2437, 5688, 5689, 462, 4839, 4657, 4658, 1255, 5695, - 2720, 1224, 4839, 109, 110, 4840, 1361, 1820, 4294, 1809, - 4395, 113, 4309, 1236, 1809, 768, 3033, 152, 558, 305, - 687, 282, 9, 10, 2410, 9, 10, 714, 6, 1275, - 747, 4395, 180, 1256, 182, 4234, 1809, 5027, 5016, 69, - 180, 4839, 182, 2328, 1912, 297, 747, 2332, 206, 1275, - 301, 1275, 769, 1276, 747, 1275, 4651, 5120, 2946, 129, - 298, 299, 4651, 554, 4668, 4669, 747, 4395, 769, 2410, - 2355, 4748, 2123, 2507, 3635, 2567, 769, 5773, 260, 418, - 3174, 3171, 180, 1306, 182, 180, 4330, 182, 769, 1848, - 357, 4191, 1315, 2123, 2124, 4195, 1856, 4969, 1321, 1859, - 1323, 1324, 206, 1863, 1327, 3118, 2507, 3879, 92, 1817, - 113, 1809, 3879, 1103, 1337, 2976, 1323, 1068, 1108, 3776, - 432, 1344, 350, 1346, 3021, 2946, 4182, 3024, 3025, 9, - 10, 161, 2162, 33, 9, 10, 260, 76, 1361, 3024, - 3025, 1991, 1365, 1366, 3005, 148, 764, 2791, 1099, 179, - 1257, 1258, 357, 301, 432, 4186, 2688, 9, 10, 4248, - 170, 301, 3784, 14, 4739, 113, 2589, 432, 1391, 4258, - 4259, 1394, 557, 1946, 4052, 494, 282, 1400, 5353, 281, - 3776, 2911, 2708, 206, 63, 2215, 4452, 4453, 4454, 729, - 1413, 2946, 568, 180, 764, 182, 180, 355, 182, 2229, - 2050, 5080, 616, 301, 672, 696, 301, 262, 1198, 386, - 113, 5580, 1332, 345, 3170, 1438, 233, 3374, 1991, 357, - 2303, 2304, 3879, 563, 5399, 2537, 9, 10, 2378, 3188, - 2380, 360, 57, 1588, 4809, 2955, 4811, 1809, 32, 4814, - 34, 456, 2665, 1207, 5056, 4820, 4821, 671, 1946, 4213, - 260, 479, 2675, 2403, 1218, 2910, 9, 10, 3217, 4834, - 2917, 2918, 368, 461, 89, 2920, 2416, 2417, 3034, 286, - 1625, 2940, 3904, 3905, 3906, 3907, 2049, 2050, 2618, 104, - 297, 1989, 1990, 3879, 4248, 9, 10, 5656, 5657, 601, - 3307, 352, 32, 1991, 4258, 4259, 5168, 4566, 5170, 764, - 180, 4570, 182, 3048, 764, 180, 1661, 182, 2754, 412, - 9, 10, 3152, 216, 301, 5684, 1306, 301, 1541, 3302, - 145, 3280, 81, 601, 148, 1315, 3285, 1550, 180, 206, - 182, 9, 10, 281, 1324, 32, 601, 96, 1561, 2338, - 442, 1598, 209, 440, 729, 764, 9, 10, 173, 1572, - 764, 2049, 2050, 747, 1344, 294, 1346, 3190, 3191, 614, - 3193, 3194, 3912, 2393, 17, 1588, 125, 9, 10, 148, - 689, 11, 131, 571, 1946, 769, 482, 554, 86, 32, - 578, 4625, 360, 9, 10, 5062, 672, 457, 586, 5066, - 5067, 730, 5382, 769, 5384, 764, 531, 180, 10, 182, - 279, 2896, 1625, 5282, 1627, 672, 165, 142, 3305, 136, - 1400, 9, 10, 668, 340, 2727, 267, 764, 2029, 1991, - 3305, 301, 554, 1646, 764, 5029, 301, 180, 764, 182, - 1653, 1654, 764, 443, 764, 2465, 736, 2467, 1661, 1662, - 9, 10, 720, 343, 136, 660, 1801, 272, 1671, 301, - 3283, 679, 764, 576, 477, 720, 180, 460, 182, 167, - 168, 659, 1685, 1686, 172, 327, 595, 672, 1691, 1692, - 1693, 1694, 1695, 1696, 1697, 1698, 1699, 2049, 2050, 656, - 1703, 180, 492, 182, 1691, 1840, 1693, 1694, 1695, 1696, - 587, 1857, 1858, 1848, 442, 1850, 1703, 1720, 1721, 764, - 1723, 4791, 180, 764, 182, 3599, 688, 2352, 769, 564, - 1726, 2352, 764, 764, 1721, 619, 4813, 180, 301, 182, - 644, 719, 1745, 578, 4154, 4155, 764, 2557, 912, 913, - 914, 457, 92, 57, 672, 3491, 61, 563, 180, 444, - 182, 645, 28, 5118, 61, 727, 61, 5122, 301, 4793, - 290, 1541, 2352, 347, 180, 2314, 182, 2352, 5474, 688, - 1550, 1916, 2314, 271, 688, 89, 163, 670, 295, 5192, - 262, 1561, 4603, 478, 703, 399, 1792, 301, 1801, 2352, - 104, 5258, 180, 2433, 182, 320, 2589, 12, 1811, 973, - 4480, 114, 492, 654, 1817, 9, 10, 1813, 601, 1822, - 477, 707, 301, 295, 1820, 206, 4872, 98, 3277, 471, - 188, 180, 2695, 182, 9, 10, 764, 1840, 9, 10, - 399, 145, 200, 301, 764, 1848, 1849, 1850, 1851, 1852, - 1853, 1854, 1855, 5237, 5238, 459, 289, 290, 301, 762, - 65, 3922, 282, 3924, 3600, 2458, 109, 110, 553, 173, - 347, 3932, 145, 3297, 2352, 267, 1646, 172, 520, 301, - 2433, 200, 2665, 4285, 4286, 445, 764, 3948, 763, 2613, - 323, 630, 2675, 627, 2701, 301, 441, 3958, 688, 183, - 173, 5126, 260, 788, 3118, 2970, 2971, 63, 341, 1809, - 583, 3588, 5, 1916, 347, 3976, 297, 5327, 3559, 3560, - 805, 3928, 1692, 301, 721, 453, 1922, 1697, 247, 1699, - 2995, 566, 638, 3574, 3100, 1938, 2743, 3118, 31, 83, - 373, 385, 752, 753, 754, 755, 756, 757, 5303, 634, - 269, 495, 301, 219, 1957, 2433, 9, 10, 764, 2751, - 2752, 2753, 339, 119, 492, 762, 9, 10, 272, 1972, - 57, 1974, 558, 1976, 1977, 1745, 120, 441, 2518, 3100, - 73, 2521, 287, 288, 2708, 3188, 1989, 1990, 661, 2529, - 0, 3303, 2532, 1996, 3160, 539, 3506, 764, 2486, 763, - 2003, 2004, 89, 2006, 2007, 180, 346, 182, 4360, 180, - 4362, 182, 3537, 4365, 276, 575, 73, 104, 2021, 4371, - 4372, 2024, 3328, 3329, 3330, 3331, 310, 2030, 57, 188, - 769, 9, 10, 5103, 2037, 769, 4388, 3776, 4450, 3160, - 3540, 200, 4049, 588, 2047, 2048, 1946, 3660, 3661, 3662, - 3663, 3664, 471, 3666, 3667, 3668, 3669, 3670, 145, 3672, - 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3680, 3681, 80, - 18, 3684, 3685, 583, 371, 168, 373, 3280, 4668, 4669, - 385, 2433, 3285, 18, 1854, 1855, 173, 3884, 446, 2719, - 319, 1991, 432, 653, 434, 9, 10, 2488, 3522, 319, - 2963, 260, 421, 738, 764, 4974, 368, 301, 391, 764, - 393, 526, 2975, 410, 207, 2946, 145, 2742, 2928, 647, - 589, 2742, 764, 279, 588, 368, 301, 180, 672, 182, - 301, 275, 764, 1297, 2280, 2914, 2946, 180, 557, 182, - 3879, 438, 5398, 729, 173, 5401, 327, 324, 2701, 2049, - 2050, 661, 117, 2692, 57, 460, 104, 105, 763, 124, - 2692, 4911, 2742, 9, 10, 4664, 2719, 2742, 1938, 104, - 105, 2770, 3785, 15, 9, 10, 233, 3790, 764, 2314, - 5553, 2780, 9, 10, 524, 272, 3686, 109, 110, 2742, - 2743, 2194, 9, 10, 2329, 9, 10, 2200, 2751, 2752, - 2753, 764, 180, 635, 182, 5263, 1976, 5265, 747, 748, - 749, 3021, 317, 2216, 3024, 3025, 3026, 446, 480, 83, - 3483, 186, 6, 2701, 3388, 672, 446, 4101, 716, 3393, - 4974, 764, 84, 2003, 2004, 3399, 2006, 2007, 2837, 482, - 2964, 2719, 145, 272, 3051, 422, 517, 518, 301, 3056, - 521, 522, 523, 122, 2024, 674, 120, 63, 301, 763, - 2030, 601, 167, 168, 2742, 2743, 180, 513, 182, 2868, - 173, 9, 10, 2751, 2752, 2753, 573, 724, 693, 2904, - 229, 714, 124, 2904, 68, 764, 5648, 446, 63, 5651, - 471, 5547, 2964, 747, 136, 5039, 711, 2293, 5554, 5672, - 2303, 2304, 2305, 2438, 9, 10, 764, 5693, 9, 10, - 729, 2314, 609, 119, 262, 2318, 2319, 2320, 2321, 2322, - 2323, 764, 2325, 301, 2904, 3600, 2329, 262, 2927, 2904, - 762, 200, 437, 398, 180, 5146, 182, 286, 580, 520, - 94, 4743, 764, 5093, 119, 180, 5096, 182, 92, 2701, - 5408, 2904, 5434, 180, 600, 182, 2352, 747, 764, 139, - 2363, 3009, 114, 180, 2367, 182, 180, 2719, 182, 272, - 212, 437, 9, 10, 99, 297, 2379, 129, 2374, 79, - 2367, 398, 82, 137, 3009, 763, 2382, 301, 3009, 5471, - 2742, 2743, 2379, 5582, 5583, 9, 10, 2523, 248, 2751, - 2752, 2753, 4199, 2529, 2539, 3188, 9, 10, 654, 474, - 216, 275, 2415, 2559, 697, 764, 111, 700, 484, 3585, - 2423, 92, 398, 229, 2194, 137, 2904, 181, 2431, 3009, - 2200, 2434, 2435, 675, 3009, 2438, 2439, 2440, 4840, 5029, - 5802, 216, 180, 3174, 182, 225, 368, 5517, 9, 10, - 2568, 4187, 2352, 9, 10, 301, 3009, 474, 3730, 763, - 2463, 229, 2458, 4815, 3585, 4339, 301, 3730, 6, 181, - 4340, 5857, 5858, 279, 301, 180, 147, 182, 178, 180, - 286, 182, 4981, 2486, 301, 203, 728, 301, 554, 9, - 10, 297, 642, 719, 121, 3305, 2887, 3280, 3051, 4560, - 350, 651, 3285, 3056, 279, 4336, 656, 225, 9, 10, - 137, 604, 99, 2516, 5580, 2402, 63, 5682, 286, 2522, - 559, 560, 297, 2526, 6, 3332, 5782, 5783, 2531, 2516, - 68, 3009, 747, 2433, 4171, 2305, 2539, 5681, 9, 10, - 127, 6, 2545, 180, 215, 182, 9, 10, 2318, 2319, - 2320, 2321, 769, 3618, 9, 10, 33, 2692, 6, 2694, - 482, 261, 6, 301, 9, 10, 180, 11, 182, 4205, - 294, 15, 119, 3051, 3381, 9, 10, 180, 3056, 182, - 2576, 4018, 4019, 122, 9, 10, 68, 2583, 2584, 764, - 5656, 5657, 763, 6, 181, 3901, 301, 636, 137, 4335, - 301, 4337, 346, 68, 3328, 3329, 3330, 3331, 707, 4046, - 2613, 262, 5670, 5671, 91, 2618, 707, 3247, 5684, 180, - 68, 182, 707, 17, 180, 296, 182, 4240, 137, 479, - 3695, 2766, 4081, 2768, 4071, 9, 10, 35, 32, 6, - 4253, 216, 181, 4143, 633, 2415, 4146, 5237, 5238, 47, - 94, 5351, 762, 9, 10, 68, 3466, 3009, 753, 769, - 180, 2431, 182, 762, 301, 3595, 9, 10, 763, 216, - 2440, 3534, 181, 4198, 5485, 2678, 3879, 2680, 769, 180, - 5780, 182, 229, 4363, 769, 753, 4135, 301, 432, 2692, - 434, 2694, 2695, 4130, 3247, 763, 36, 4317, 301, 3051, - 689, 111, 552, 692, 3056, 2708, 5730, 412, 2711, 180, - 763, 182, 83, 4393, 92, 99, 249, 180, 5818, 182, - 763, 721, 199, 3114, 404, 180, 5826, 182, 261, 762, - 719, 411, 279, 606, 4664, 180, 769, 182, 727, 286, - 301, 99, 9, 10, 617, 301, 180, 122, 182, 120, - 297, 91, 2522, 4627, 3918, 180, 5856, 182, 3922, 498, - 3924, 500, 501, 2766, 142, 2768, 137, 26, 3932, 3247, - 325, 9, 10, 92, 114, 3939, 515, 3941, 3588, 3332, - 524, 301, 9, 10, 3948, 763, 763, 764, 2934, 129, - 4263, 116, 9, 10, 3958, 4268, 9, 10, 3962, 276, - 301, 2701, 127, 762, 3968, 233, 180, 766, 182, 134, - 181, 4202, 3976, 3977, 3978, 3979, 3980, 3208, 137, 2719, - 9, 10, 148, 142, 180, 3635, 182, 10, 3381, 679, - 301, 3555, 3556, 3557, 3558, 402, 697, 180, 301, 182, - 701, 568, 2742, 2743, 9, 10, 301, 5917, 94, 763, - 4375, 2751, 2752, 2753, 3332, 655, 301, 601, 290, 199, - 292, 3252, 181, 3254, 3255, 655, 57, 301, 260, 3260, - 443, 9, 10, 612, 613, 4150, 301, 3268, 4150, 2882, - 129, 49, 3273, 3555, 3556, 3557, 3558, 4150, 768, 739, - 111, 229, 5916, 9, 10, 3247, 9, 10, 89, 224, - 9, 10, 3501, 3381, 275, 9, 10, 648, 2904, 9, - 10, 5722, 30, 180, 3724, 182, 34, 763, 167, 168, - 2923, 5787, 5788, 3647, 114, 4425, 114, 301, 763, 114, - 255, 1386, 1387, 9, 10, 1390, 763, 9, 10, 4087, - 3941, 2711, 180, 4091, 182, 301, 763, 2950, 286, 763, - 199, 769, 2955, 180, 145, 182, 762, 2960, 301, 297, - 2963, 2964, 2965, 180, 4795, 182, 5832, 180, 718, 182, - 337, 260, 2975, 643, 415, 3647, 3977, 3978, 160, 421, - 3332, 727, 173, 9, 10, 500, 501, 5389, 762, 5391, - 247, 180, 76, 182, 9, 10, 94, 9, 10, 267, - 515, 4642, 4643, 5, 2904, 84, 3009, 763, 764, 2974, - 3145, 9, 10, 4179, 381, 180, 383, 182, 9, 10, - 764, 1309, 1310, 205, 122, 763, 366, 276, 3929, 3381, - 471, 1227, 200, 94, 301, 3936, 3843, 1233, 1234, 137, - 3175, 3176, 180, 674, 182, 3048, 763, 764, 9, 10, - 3951, 4981, 593, 9, 10, 1343, 124, 3705, 4179, 9, - 10, 4336, 763, 301, 180, 247, 182, 180, 633, 182, - 4342, 180, 762, 182, 301, 753, 180, 4142, 182, 4342, - 180, 272, 182, 181, 301, 763, 764, 570, 301, 763, - 764, 3226, 260, 947, 460, 10, 3879, 612, 613, 4624, - 122, 269, 4167, 4168, 180, 327, 182, 688, 180, 476, - 182, 176, 301, 967, 267, 137, 557, 763, 764, 368, - 974, 975, 176, 3126, 3127, 3928, 763, 412, 3931, 3132, - 4810, 4443, 764, 9, 10, 3938, 301, 113, 3141, 763, - 764, 3944, 3145, 311, 4824, 3132, 763, 764, 342, 763, - 768, 3051, 763, 764, 69, 4835, 3056, 4837, 525, 181, - 763, 703, 704, 301, 706, 180, 708, 182, 180, 333, - 182, 771, 3175, 3176, 763, 764, 762, 3901, 200, 762, - 2950, 5055, 180, 10, 182, 301, 368, 193, 301, 180, - 762, 182, 301, 415, 762, 2965, 762, 301, 380, 762, - 3992, 301, 763, 762, 333, 334, 573, 763, 3204, 3205, - 3206, 3207, 762, 3209, 3210, 762, 721, 763, 764, 180, - 327, 182, 762, 3226, 180, 301, 182, 4491, 762, 301, - 180, 480, 182, 674, 4498, 763, 764, 4672, 3241, 579, - 762, 370, 69, 763, 763, 764, 161, 3751, 3752, 471, - 762, 3755, 3756, 421, 762, 9, 10, 3761, 3762, 4650, - 3256, 3257, 763, 3259, 179, 3261, 3262, 3263, 3264, 3265, - 3266, 3267, 5146, 3269, 5144, 4952, 3272, 762, 446, 34, - 3276, 69, 4546, 412, 763, 764, 301, 4952, 729, 301, - 3843, 721, 763, 763, 764, 762, 663, 162, 520, 187, - 763, 483, 762, 301, 180, 762, 182, 69, 763, 762, - 301, 32, 763, 764, 763, 764, 762, 684, 763, 3322, - 235, 236, 762, 764, 3327, 3328, 3329, 3330, 3331, 763, - 187, 3334, 145, 762, 161, 557, 124, 58, 763, 4602, - 301, 1444, 1445, 763, 764, 301, 686, 3247, 762, 70, - 1453, 301, 179, 9, 10, 4630, 3126, 3127, 4630, 4634, - 173, 3991, 763, 764, 471, 3843, 762, 4630, 187, 90, - 3488, 3141, 554, 161, 3520, 762, 5112, 763, 764, 752, - 753, 762, 1485, 4832, 1487, 76, 77, 4988, 262, 763, - 762, 179, 734, 763, 764, 193, 4560, 762, 5338, 161, - 1503, 1504, 123, 1506, 763, 764, 4471, 763, 235, 236, - 762, 1514, 1515, 520, 4851, 1518, 762, 179, 294, 769, - 763, 234, 763, 764, 193, 301, 180, 762, 182, 4028, - 4154, 4155, 3332, 762, 3825, 3826, 3827, 495, 3991, 3992, - 762, 9, 10, 764, 34, 763, 764, 235, 236, 762, - 557, 762, 674, 762, 3845, 3846, 762, 3848, 763, 764, - 589, 763, 764, 762, 3467, 9, 10, 11, 763, 764, - 17, 61, 762, 235, 236, 762, 644, 606, 36, 763, - 764, 3381, 4154, 4155, 297, 32, 762, 208, 517, 518, - 83, 3843, 521, 522, 523, 570, 763, 763, 764, 762, - 69, 762, 631, 763, 764, 763, 764, 729, 762, 15, - 762, 58, 762, 3991, 3992, 4114, 763, 764, 3521, 109, - 110, 762, 4170, 70, 180, 763, 182, 120, 4800, 9, - 10, 3534, 762, 91, 3537, 747, 763, 4800, 762, 129, - 176, 670, 764, 90, 137, 4170, 763, 301, 49, 4170, - 763, 719, 3555, 3556, 3557, 3558, 114, 278, 762, 727, - 763, 764, 762, 69, 3334, 4466, 4467, 674, 94, 3572, - 3573, 129, 3707, 5073, 763, 762, 123, 167, 168, 763, - 764, 3727, 172, 4484, 763, 764, 176, 762, 181, 762, - 4170, 762, 161, 4494, 95, 4170, 763, 764, 763, 762, - 394, 762, 49, 5128, 762, 4506, 5207, 263, 4339, 199, - 179, 5485, 180, 114, 182, 3733, 5486, 4170, 124, 762, - 3623, 4522, 729, 5359, 3627, 763, 762, 5247, 9, 10, - 136, 5251, 763, 764, 192, 762, 180, 762, 182, 3991, - 3992, 199, 763, 764, 3647, 301, 176, 763, 763, 764, - 763, 762, 3655, 407, 763, 161, 3659, 763, 764, 763, - 762, 167, 168, 763, 111, 762, 235, 236, 762, 463, - 391, 762, 393, 179, 763, 764, 762, 5354, 5355, 4070, - 3683, 762, 275, 3686, 4487, 762, 276, 763, 762, 5354, - 5355, 763, 4170, 763, 764, 263, 3699, 763, 764, 762, - 180, 4092, 182, 762, 3707, 3708, 212, 4510, 763, 764, - 300, 4514, 3699, 94, 763, 764, 4364, 762, 4521, 3722, - 9, 10, 11, 762, 4531, 762, 3722, 763, 764, 235, - 236, 278, 762, 301, 528, 762, 530, 762, 328, 240, - 233, 535, 762, 290, 4284, 762, 5482, 5483, 763, 763, - 764, 763, 762, 200, 762, 69, 3893, 301, 762, 260, - 769, 57, 763, 764, 368, 763, 109, 110, 6, 69, - 763, 764, 763, 763, 764, 276, 762, 5397, 368, 763, - 764, 763, 764, 373, 763, 764, 9, 10, 763, 764, - 763, 764, 762, 89, 762, 3832, 57, 763, 764, 180, - 247, 182, 763, 763, 764, 599, 769, 763, 366, 3812, - 124, 415, 4352, 763, 763, 764, 763, 764, 4170, 320, - 762, 301, 762, 544, 545, 4455, 762, 5433, 89, 762, - 68, 762, 4897, 763, 764, 750, 751, 752, 753, 754, - 755, 756, 757, 104, 391, 762, 393, 161, 642, 145, - 419, 762, 4243, 4244, 4245, 762, 9, 10, 4249, 4250, - 762, 161, 762, 4254, 762, 179, 4257, 471, 769, 4260, - 769, 96, 769, 320, 3877, 769, 4267, 173, 769, 179, - 3883, 655, 5618, 769, 145, 3655, 9, 10, 4513, 3659, - 480, 180, 4513, 182, 769, 4626, 69, 398, 3901, 1565, - 1566, 769, 4455, 762, 672, 5169, 131, 5508, 420, 137, - 5523, 5524, 173, 5526, 5527, 5528, 5529, 57, 92, 672, - 301, 235, 236, 750, 751, 752, 753, 754, 755, 756, - 757, 688, 5545, 4513, 747, 235, 236, 731, 4513, 752, - 753, 94, 661, 3843, 495, 414, 5370, 551, 742, 89, - 92, 398, 764, 557, 764, 282, 661, 180, 342, 182, - 4513, 764, 750, 751, 752, 753, 754, 755, 756, 757, - 376, 94, 764, 5498, 421, 764, 272, 4455, 4531, 700, - 4790, 565, 683, 33, 3987, 80, 36, 5723, 161, 5380, - 752, 753, 754, 755, 756, 757, 747, 727, 545, 446, - 446, 446, 9, 10, 608, 145, 179, 245, 246, 286, - 762, 272, 301, 763, 57, 229, 61, 255, 5467, 390, - 5, 579, 2125, 770, 569, 2128, 389, 180, 4, 182, - 727, 14, 412, 173, 769, 4513, 295, 764, 5204, 5652, - 263, 91, 5655, 2146, 176, 95, 89, 494, 5323, 769, - 5663, 5323, 368, 4531, 2157, 415, 646, 180, 407, 182, - 5323, 104, 235, 236, 114, 629, 109, 110, 688, 5518, - 674, 4878, 111, 763, 762, 464, 4079, 492, 301, 129, - 547, 294, 94, 5204, 122, 294, 762, 94, 147, 768, - 764, 3991, 3992, 762, 6, 412, 763, 3927, 3928, 763, - 763, 3931, 145, 4455, 68, 652, 4109, 318, 3938, 713, - 764, 769, 49, 763, 3944, 763, 5379, 763, 634, 4122, - 4255, 92, 9, 10, 11, 729, 4122, 769, 686, 630, - 173, 92, 272, 4136, 763, 763, 763, 4528, 297, 769, - 762, 136, 4952, 644, 4147, 735, 4149, 648, 301, 199, - 4153, 4154, 4155, 700, 762, 471, 662, 99, 764, 267, - 764, 4513, 33, 764, 771, 36, 192, 4170, 4171, 764, - 92, 769, 4318, 180, 4309, 182, 723, 114, 301, 4531, - 34, 750, 751, 752, 753, 754, 755, 756, 757, 764, - 240, 692, 764, 5457, 5458, 4198, 5460, 644, 672, 754, - 124, 648, 475, 4206, 5729, 4745, 5481, 685, 435, 5658, - 4750, 4751, 437, 5488, 92, 764, 5488, 420, 719, 672, - 91, 459, 764, 762, 95, 5488, 276, 770, 124, 272, - 764, 345, 192, 4863, 4367, 551, 213, 4233, 495, 495, - 495, 557, 689, 114, 750, 751, 752, 753, 754, 755, - 756, 757, 4255, 495, 342, 4251, 4252, 764, 129, 484, - 495, 495, 764, 200, 747, 4261, 4269, 4270, 267, 4272, - 658, 581, 719, 84, 26, 727, 94, 5084, 754, 764, - 727, 763, 403, 762, 4470, 4910, 465, 465, 580, 4910, - 763, 4294, 608, 180, 301, 182, 764, 29, 4294, 764, - 294, 718, 281, 11, 4490, 687, 4309, 764, 181, 94, - 4863, 762, 267, 4499, 5738, 764, 366, 115, 4321, 4505, - 4323, 192, 547, 5054, 764, 4878, 34, 4323, 199, 4515, - 4910, 122, 269, 635, 59, 4910, 5785, 4523, 4524, 763, - 5604, 763, 5606, 5607, 763, 4480, 5153, 412, 4351, 5624, - 763, 5626, 5624, 61, 754, 763, 763, 4910, 674, 763, - 4363, 5624, 5887, 94, 762, 764, 591, 5432, 4361, 240, - 4373, 763, 4375, 763, 753, 5182, 5901, 4380, 4381, 18, - 763, 4374, 5907, 4386, 769, 4863, 763, 763, 5913, 4382, - 4393, 763, 234, 763, 763, 4398, 4389, 713, 4391, 4392, - 4878, 109, 110, 764, 763, 276, 763, 4403, 763, 757, - 764, 764, 764, 729, 301, 4418, 763, 763, 57, 192, - 4423, 129, 762, 5847, 762, 762, 664, 665, 666, 667, - 762, 4418, 4910, 763, 360, 576, 750, 751, 752, 753, - 754, 755, 756, 757, 747, 262, 262, 86, 262, 762, - 89, 751, 752, 753, 754, 755, 756, 757, 267, 167, - 168, 67, 98, 94, 172, 104, 105, 764, 176, 92, - 92, 762, 762, 489, 4865, 769, 4867, 4480, 4869, 109, - 110, 764, 152, 764, 421, 5550, 94, 769, 763, 769, - 424, 199, 225, 769, 600, 366, 9, 10, 233, 129, - 4270, 764, 62, 6, 764, 4508, 145, 717, 92, 446, - 764, 4863, 176, 176, 262, 5322, 42, 279, 99, 5059, - 124, 764, 747, 748, 749, 164, 4878, 763, 543, 579, - 5595, 5084, 762, 172, 173, 247, 247, 167, 168, 4930, - 53, 54, 55, 56, 5354, 5355, 643, 247, 247, 247, - 297, 176, 92, 4688, 160, 4455, 327, 494, 4910, 5351, - 762, 167, 168, 747, 747, 747, 263, 747, 276, 199, - 747, 747, 5637, 764, 494, 747, 747, 750, 751, 752, - 753, 754, 755, 756, 757, 747, 747, 747, 282, 4980, - 116, 747, 300, 106, 107, 108, 747, 368, 747, 205, - 5153, 127, 4993, 747, 747, 718, 5084, 137, 134, 42, - 4380, 747, 4615, 4513, 114, 5879, 747, 747, 747, 747, - 328, 4624, 747, 262, 769, 747, 764, 747, 72, 5182, - 315, 4531, 271, 272, 273, 769, 686, 163, 267, 267, - 267, 247, 769, 42, 157, 158, 276, 267, 764, 738, - 176, 492, 589, 374, 122, 121, 768, 4487, 763, 121, - 368, 763, 433, 763, 763, 769, 187, 180, 769, 182, - 300, 763, 342, 769, 753, 5153, 4679, 763, 4813, 753, - 4510, 763, 26, 116, 4514, 4688, 763, 4690, 4691, 764, - 763, 4521, 762, 630, 127, 762, 4692, 681, 224, 320, - 471, 134, 267, 570, 5182, 229, 94, 94, 579, 94, - 94, 648, 4708, 262, 262, 228, 477, 116, 388, 206, - 769, 753, 764, 424, 5377, 4762, 173, 762, 127, 255, - 163, 42, 5084, 127, 5287, 134, 4739, 127, 368, 184, - 448, 4859, 11, 4746, 762, 4748, 385, 764, 529, 520, - 4753, 747, 689, 764, 393, 692, 282, 747, 315, 91, - 176, 327, 368, 764, 163, 4768, 769, 4804, 650, 5322, - 4807, 26, 480, 103, 380, 4771, 769, 176, 764, 390, - 551, 763, 719, 390, 762, 262, 557, 262, 301, 302, - 727, 224, 262, 53, 54, 55, 56, 214, 5351, 469, - 11, 5153, 368, 762, 762, 116, 4809, 4810, 4811, 5287, - 4813, 4814, 4805, 4816, 762, 686, 127, 4820, 4821, 99, - 769, 4824, 255, 134, 220, 224, 754, 92, 763, 570, - 5182, 4834, 4835, 267, 4837, 754, 5, 176, 7, 8, - 4843, 113, 455, 764, 5322, 5910, 106, 107, 108, 415, - 480, 768, 163, 407, 762, 762, 255, 762, 4861, 123, - 4856, 531, 31, 763, 33, 176, 123, 433, 368, 763, - 39, 763, 763, 5351, 173, 375, 769, 483, 5531, 549, - 550, 394, 762, 764, 554, 555, 556, 4890, 764, 763, - 390, 229, 61, 4930, 769, 763, 181, 157, 158, 763, - 763, 26, 762, 674, 73, 471, 34, 747, 215, 762, - 229, 80, 763, 224, 769, 415, 94, 94, 763, 763, - 206, 127, 127, 93, 763, 296, 764, 4930, 762, 762, - 762, 4934, 206, 61, 762, 5287, 390, 540, 646, 747, - 109, 110, 764, 403, 255, 114, 725, 403, 554, 192, - 463, 764, 622, 533, 520, 5346, 762, 762, 729, 5105, - 762, 17, 763, 4863, 733, 366, 192, 192, 228, 267, - 5322, 192, 26, 142, 192, 128, 4746, 128, 4878, 689, - 192, 109, 110, 689, 192, 551, 577, 262, 192, 192, - 5638, 557, 192, 11, 4997, 424, 267, 225, 98, 5351, - 670, 129, 409, 487, 198, 5008, 373, 762, 177, 762, - 4910, 562, 181, 61, 92, 528, 92, 530, 173, 519, - 189, 763, 535, 192, 5027, 26, 763, 735, 489, 231, - 297, 629, 532, 5036, 763, 763, 763, 181, 764, 167, - 168, 5044, 302, 26, 172, 214, 763, 5050, 176, 763, - 5053, 551, 138, 109, 110, 764, 192, 764, 697, 5062, - 5097, 700, 127, 5066, 5067, 127, 431, 763, 142, 764, - 709, 199, 737, 762, 5220, 762, 93, 5080, 764, 763, - 763, 250, 251, 252, 211, 17, 599, 769, 176, 11, - 627, 661, 763, 725, 763, 111, 764, 5904, 129, 93, - 634, 763, 636, 199, 5107, 735, 275, 725, 674, 173, - 173, 590, 368, 470, 648, 5118, 176, 176, 263, 5122, - 654, 655, 424, 297, 570, 5128, 660, 122, 17, 642, - 292, 300, 5135, 5279, 394, 373, 292, 562, 210, 763, - 674, 137, 483, 762, 533, 600, 763, 763, 276, 763, - 123, 320, 764, 763, 763, 32, 26, 669, 763, 328, - 5163, 330, 763, 729, 764, 282, 763, 763, 282, 762, - 769, 5174, 300, 5176, 674, 763, 562, 109, 110, 344, - 349, 764, 10, 762, 5084, 762, 351, 356, 763, 689, - 762, 762, 129, 129, 11, 11, 5849, 640, 764, 368, - 328, 360, 367, 463, 260, 763, 375, 11, 5326, 764, - 122, 764, 377, 378, 379, 129, 297, 764, 731, 763, - 372, 390, 387, 654, 407, 129, 260, 278, 303, 742, - 769, 400, 747, 92, 92, 404, 405, 764, 173, 533, - 368, 763, 411, 430, 778, 5248, 415, 763, 10, 763, - 282, 762, 282, 5153, 423, 5258, 763, 267, 5261, 569, - 762, 404, 282, 762, 33, 769, 763, 67, 528, 5272, - 530, 764, 763, 442, 176, 535, 764, 139, 84, 5282, - 762, 84, 5182, 260, 762, 297, 570, 279, 5679, 173, - 444, 763, 763, 635, 763, 588, 425, 588, 5433, 468, - 5303, 348, 173, 472, 762, 762, 150, 300, 562, 5346, - 762, 762, 5315, 482, 848, 763, 26, 26, 79, 26, - 5313, 763, 61, 764, 61, 859, 669, 861, 862, 863, - 5333, 5334, 769, 763, 868, 10, 870, 695, 176, 599, - 680, 763, 762, 5346, 762, 401, 129, 762, 725, 686, - 519, 5904, 480, 129, 172, 279, 321, 61, 11, 415, - 26, 417, 527, 532, 562, 534, 5369, 901, 26, 26, - 122, 413, 906, 570, 33, 403, 541, 33, 403, 5382, - 763, 5384, 642, 635, 762, 574, 762, 5287, 415, 92, - 763, 447, 762, 5163, 762, 169, 762, 721, 570, 762, - 5403, 763, 936, 572, 570, 769, 462, 762, 764, 578, - 142, 344, 946, 681, 320, 762, 92, 763, 351, 407, - 769, 26, 5322, 26, 314, 5421, 5904, 762, 762, 762, - 5433, 176, 176, 769, 367, 225, 605, 764, 279, 495, - 63, 763, 465, 763, 377, 378, 379, 616, 617, 618, - 763, 5351, 5455, 75, 387, 26, 635, 513, 113, 173, - 233, 626, 762, 764, 2974, 875, 1217, 1776, 637, 401, - 3628, 731, 3274, 4869, 4865, 644, 641, 4867, 2529, 3129, - 3772, 5396, 742, 415, 1177, 417, 5450, 5599, 1863, 5089, - 5791, 4770, 1302, 4934, 5275, 5498, 4910, 5500, 5283, 5174, - 5189, 1035, 1036, 1037, 1038, 674, 5346, 4528, 2467, 3635, - 1636, 5629, 677, 1047, 2742, 447, 3374, 3320, 646, 5287, - 689, 690, 4456, 2626, 5659, 3992, 691, 2048, 779, 2049, - 462, 1925, 2051, 702, 1978, 2050, 705, 593, 1342, 5404, - 5256, 5073, 3811, 3222, 600, 5315, 4828, 4132, 5544, 4995, - 4615, 2288, 5904, 4136, 610, 5645, 5370, 5732, 5847, 4999, - 5563, 5811, 5849, 495, 5531, 3686, 5569, 623, 5571, 5572, - 1104, 11, 4148, 4630, 3806, 2507, 5273, 5580, 4398, 5753, - 4739, 513, 3812, 5788, 5580, 5584, 5594, 5471, 4049, 4752, - 3928, 3982, 5638, 3175, 527, 5598, 5597, 5600, 654, 768, - 4474, 657, 42, 3471, 4088, 4091, 5817, 735, 541, 4083, - 86, 86, 5782, 5259, 5783, 5554, 672, 5673, 5753, 5248, - 5547, 3811, 4498, 4395, 1191, 1831, 5319, 1319, 5119, 3107, - 3111, 5634, 688, 2618, 1960, 2305, 5634, 3334, 2440, 2726, - 80, 3913, 5645, 83, 5790, 1280, 5324, 3731, 3486, 2567, - 4800, 5624, 92, 1893, 3161, 2836, 5659, 5653, 5654, 99, - 4122, 593, 1277, 103, 3520, 1569, 2832, 1479, 600, 1447, - 1627, 1205, 3049, 1207, 5809, 3604, 116, 4651, 610, 3043, - 120, 5684, 122, 3037, 5539, 5688, 5689, 127, 5684, 4103, - 5393, 623, 5695, 5815, 134, 4679, 5816, 137, 2921, 1453, - 5107, 3717, 142, 5106, 4988, 3510, 5508, 5128, 641, 4984, - 3588, 5714, 5028, 2548, 3707, 86, 5105, 1646, 4624, 1400, - 2678, 2720, 654, 163, 658, 657, 5729, 3201, 4231, 796, - 4198, 1972, 5729, 2411, 655, 2412, 176, 1711, 3032, 797, - 672, 181, 1275, 110, 677, 655, 5742, 2461, 5050, 5745, - 5753, 5039, 1821, 3916, 5845, 5293, 5891, 5868, 691, 5907, - 200, 5913, 5897, 972, 5464, 3605, 2434, 4147, 5914, 2904, - 5773, 3007, 4170, 654, 2230, 654, 2356, 2987, 2986, 2030, - 1848, 2613, 1111, 1655, 224, 652, 3824, 2963, 3121, 5792, - 3322, 5160, 3832, 233, 1328, 690, 4189, 1331, 1332, 1225, - 3599, 1396, 3037, 4654, 86, 86, 5809, 86, 5629, -1, - 2523, -1, 5815, 5816, -1, 255, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 5598, -1, - -1, -1, -1, -1, -1, 275, -1, -1, -1, 5842, - -1, -1, 282, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 295, -1, 297, -1, -1, - 300, -1, -1, -1, -1, -1, -1, -1, -1, 1403, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 5887, -1, -1, -1, 5891, -1, - -1, -1, -1, -1, 5897, 1429, -1, -1, 5901, -1, - -1, -1, -1, -1, 5907, -1, 1440, 1441, -1, -1, - 5913, -1, 1446, -1, -1, -1, 1450, 1451, 1452, -1, - -1, -1, -1, -1, -1, -1, -1, 1461, 1462, -1, - -1, -1, -1, 1467, -1, 1469, 1470, 1471, 1472, 1473, - -1, 1475, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1486, -1, 1488, -1, -1, 1491, 1492, -1, - 1494, 1495, 1496, -1, 1498, 1499, 1500, -1, -1, -1, - -1, 1505, -1, -1, 1508, -1, -1, -1, -1, -1, - -1, -1, 1516, 1517, -1, 1519, 1520, 1521, -1, -1, - 1524, 1525, 1526, 1527, 1528, 1529, 1530, -1, 1532, 1533, - 1534, 1535, 1536, 1537, 5904, 1539, 1540, -1, 1542, 1543, - 1544, 1545, 1546, 1547, 1548, -1, -1, 1551, 1552, 1553, - 1554, -1, 1556, 1557, 1558, 11, 1560, -1, 1562, -1, - 1564, -1, -1, -1, 1568, 1569, 1570, -1, -1, 1573, - 1574, 1575, 1576, 1577, -1, 1579, -1, -1, -1, -1, - -1, -1, 1586, -1, -1, -1, 42, -1, -1, 1593, - 1594, 1595, 1596, -1, -1, -1, -1, -1, -1, -1, - 1604, 1605, 1606, -1, 1608, 1609, 1610, 1611, 1612, 1613, - -1, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, -1, - -1, -1, 1626, -1, 80, -1, -1, 83, -1, -1, - -1, -1, -1, -1, -1, -1, 92, 15, -1, -1, - 18, -1, -1, 99, -1, -1, -1, 103, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 113, -1, -1, - 116, -1, -1, -1, 120, 1669, 122, -1, -1, -1, - 1674, 127, -1, -1, -1, -1, -1, -1, 134, 57, - 1684, 137, -1, -1, -1, -1, 142, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 163, 86, -1, - -1, 89, -1, -1, -1, -1, -1, -1, -1, -1, - 176, -1, -1, -1, -1, 181, 104, 105, -1, -1, - -1, -1, -1, -1, 32, -1, 34, 112, -1, -1, - -1, -1, -1, -1, 200, -1, -1, -1, 1752, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 61, -1, -1, -1, 145, 224, -1, - -1, 1775, -1, -1, 149, -1, -1, 233, -1, -1, - -1, -1, -1, -1, -1, -1, 164, -1, -1, -1, - -1, -1, -1, -1, 172, 173, -1, -1, -1, 255, - -1, -1, -1, -1, -1, 1809, -1, -1, -1, -1, - -1, 109, 110, -1, -1, -1, 114, -1, -1, 275, - -1, -1, -1, 733, -1, 281, 282, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 747, -1, 295, - -1, 297, -1, -1, 300, -1, -1, -1, -1, -1, - -1, -1, -1, 763, 764, -1, -1, 767, 768, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 7, 8, - -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, - -1, 189, -1, 271, 272, 273, -1, -1, 27, -1, - 29, -1, 31, -1, 33, -1, -1, -1, -1, -1, - -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 63, -1, 65, 66, -1, -1, - -1, -1, 1946, -1, 73, -1, -1, -1, -1, -1, - -1, 80, 250, 251, 252, -1, -1, -1, -1, -1, - -1, -1, -1, 92, -1, -1, -1, -1, -1, 98, - -1, -1, -1, -1, -1, -1, -1, 275, -1, -1, - -1, -1, 111, -1, -1, -1, 442, 1991, -1, -1, - 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 130, 300, -1, -1, -1, -1, 385, -1, -1, - -1, 140, -1, 142, -1, 393, -1, -1, 147, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 2033, - 328, -1, 330, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2049, 2050, 2051, 177, 347, - 2054, 349, -1, -1, -1, -1, -1, -1, 2062, 2063, - -1, -1, 191, 192, -1, -1, -1, -1, -1, -1, - 368, -1, 201, 202, -1, -1, -1, 375, -1, -1, - -1, -1, -1, -1, 213, 214, 215, 216, -1, 218, - -1, 466, 390, -1, 223, -1, -1, -1, -1, -1, - -1, -1, 400, -1, 233, -1, -1, -1, 237, 238, - -1, -1, -1, -1, -1, -1, -1, 415, -1, -1, - -1, 496, 497, -1, 499, 500, 501, 502, 503, -1, - 505, 506, 507, 508, 509, 510, 511, 512, -1, 514, - 515, 516, -1, -1, 2148, 2149, 2150, -1, 277, -1, - 279, -1, 281, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 296, 297, -1, - -1, -1, -1, -1, 472, 304, -1, -1, -1, -1, - -1, -1, -1, -1, 482, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 333, -1, 335, -1, -1, -1, - -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, - 349, 519, 2226, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 532, -1, -1, 612, 613, -1, - -1, 370, -1, -1, 2248, -1, -1, -1, -1, -1, - -1, 2255, -1, -1, 2258, -1, 2260, -1, -1, -1, - -1, -1, 2266, -1, 2268, 2269, 395, -1, -1, -1, - -1, -1, -1, -1, 572, -1, -1, 733, 407, -1, - 578, -1, -1, -1, -1, -1, -1, -1, 2292, -1, - -1, 747, -1, -1, -1, -1, -1, 426, -1, -1, - -1, -1, -1, 2307, -1, -1, -1, 763, 764, -1, - 439, 767, 768, -1, -1, -1, -1, -1, -1, 697, - 2324, -1, 700, 452, -1, -1, 455, -1, -1, 458, - -1, 709, -1, -1, 2338, -1, -1, -1, -1, 637, - -1, -1, -1, -1, 473, -1, 644, -1, 2352, 2353, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2375, -1, 32, -1, 34, 674, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 689, 690, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 61, -1, 702, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 2433, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 2452, -1, - 109, 110, -1, -1, -1, 114, -1, 2461, -1, -1, - 589, -1, -1, 7, -1, -1, 764, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 136, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 618, - -1, -1, 621, -1, -1, -1, -1, 41, -1, -1, - -1, -1, 631, -1, -1, -1, -1, -1, -1, -1, - 639, -1, -1, -1, -1, -1, -1, -1, -1, 63, - -1, -1, 651, -1, -1, -1, -1, -1, -1, 73, - 189, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 670, -1, -1, 673, -1, -1, -1, -1, -1, - -1, -1, -1, 2557, 98, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 114, -1, -1, -1, -1, 119, 705, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 715, -1, -1, -1, - -1, 250, 251, 252, -1, -1, -1, -1, 142, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 740, -1, -1, -1, -1, 275, -1, 2622, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 300, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 211, -1, 328, - -1, 330, -1, -1, -1, -1, -1, -1, 2682, -1, - -1, -1, -1, -1, -1, 229, -1, -1, 347, -1, - 349, -1, -1, 237, -1, -1, -1, 2701, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 368, - -1, -1, -1, -1, -1, 2719, 375, -1, -1, -1, - -1, -1, -1, -1, -1, 269, -1, -1, -1, -1, - -1, 390, -1, -1, -1, 279, 280, -1, 2742, 2743, - -1, 400, -1, -1, -1, -1, -1, 2751, 2752, 2753, - -1, -1, -1, -1, 2758, -1, 415, 2761, -1, -1, - -1, -1, -1, -1, -1, -1, 2770, -1, -1, -1, - -1, -1, -1, -1, 2778, -1, 2780, -1, 2782, -1, - 2784, 2785, 2786, 2787, 2788, 2789, -1, 2791, -1, -1, - -1, -1, -1, -1, -1, 2799, -1, 2801, -1, -1, - 2804, 2805, 2806, 2807, -1, -1, 2810, 2811, -1, -1, - 2814, -1, 2816, 472, 2818, -1, 2820, -1, -1, -1, - 2824, -1, -1, 482, -1, -1, -1, -1, 2832, -1, - 2834, -1, 2836, 2837, 2838, 2839, 2840, -1, -1, 2843, - 2844, 2845, -1, 2847, -1, -1, 2850, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 2863, - 519, -1, -1, -1, 2868, -1, -1, 2871, -1, 2873, - 2874, 2875, -1, 532, 2878, -1, -1, 421, -1, -1, - 2884, -1, 426, -1, -1, 2889, -1, -1, -1, -1, - -1, -1, 436, -1, -1, -1, -1, -1, -1, -1, - 2904, 2905, -1, -1, -1, -1, -1, 2911, -1, -1, - 2914, -1, -1, 572, -1, -1, 2920, -1, -1, 578, - -1, -1, -1, 2927, -1, 2929, -1, -1, -1, -1, - -1, -1, -1, -1, 7, 8, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 27, -1, 29, -1, 31, -1, - 33, -1, -1, -1, -1, -1, -1, -1, 41, -1, - -1, -1, 2976, -1, -1, -1, -1, -1, 637, -1, - -1, -1, -1, -1, -1, 644, -1, -1, -1, -1, - 63, -1, 65, 66, -1, -1, -1, -1, -1, -1, - 73, 3005, -1, -1, -1, 3009, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 674, -1, -1, -1, 92, - -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, - 689, 690, -1, -1, -1, -1, -1, -1, 111, -1, - -1, -1, -1, 702, -1, -1, 119, 3051, -1, -1, - 594, -1, 3056, -1, -1, -1, -1, 130, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 140, -1, 142, - -1, 615, -1, -1, 147, -1, 620, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 762, 177, -1, -1, 651, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 191, 192, - -1, -1, -1, -1, 3128, -1, -1, -1, 201, 202, - -1, -1, -1, -1, -1, -1, -1, -1, 682, -1, - 213, 214, 215, 216, -1, 218, -1, 3151, -1, -1, - 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 233, 3165, -1, -1, 237, 238, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3187, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 277, -1, 279, -1, 281, 3213, - 3214, -1, -1, -1, -1, -1, -1, -1, 3222, -1, - -1, -1, -1, 296, 297, -1, -1, -1, -1, 7, - 8, 304, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3247, 3248, -1, -1, -1, -1, 27, - -1, -1, -1, 31, -1, 33, -1, -1, -1, -1, - 333, -1, 335, 41, -1, -1, -1, -1, -1, 342, - -1, -1, -1, -1, 3278, 3279, 349, -1, -1, -1, - -1, -1, -1, -1, -1, 63, -1, 65, 66, -1, - -1, -1, -1, 3297, -1, 73, -1, 370, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 3319, -1, -1, -1, -1, - 98, -1, 395, -1, -1, -1, -1, -1, 3332, -1, - -1, -1, -1, -1, 407, -1, -1, -1, -1, -1, - -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 130, 426, -1, -1, -1, -1, -1, -1, - -1, -1, 140, -1, 142, -1, 439, -1, 3372, -1, - -1, -1, -1, -1, -1, -1, -1, 3381, 3382, 452, - -1, 3385, 455, -1, -1, 458, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, - 473, -1, -1, -1, 3408, 3409, -1, -1, -1, -1, - -1, -1, -1, 191, 192, -1, -1, -1, -1, -1, - -1, -1, -1, 201, 202, -1, -1, -1, 3432, -1, - 3434, 61, 3436, -1, 3438, 213, 214, -1, 216, -1, - 218, -1, -1, -1, -1, 223, -1, -1, -1, -1, - 80, -1, -1, -1, -1, 233, 3460, -1, -1, 237, - 238, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3481, 3482, 109, - 110, -1, -1, -1, 114, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3501, -1, 277, - -1, 279, 3506, 281, -1, -1, -1, -1, 3512, -1, - -1, -1, -1, -1, -1, -1, 589, -1, 3522, 297, - 3524, -1, -1, -1, -1, -1, 304, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 618, -1, -1, 621, -1, - -1, -1, -1, -1, -1, 3559, 3560, 335, 631, 189, - -1, -1, -1, -1, 342, -1, 639, -1, -1, -1, - 3574, 349, -1, -1, -1, -1, -1, -1, 651, -1, - -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, - -1, -1, 370, -1, -1, -1, -1, 670, -1, -1, - 673, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 395, -1, -1, - 250, 251, 252, -1, 3628, -1, -1, -1, -1, 407, - -1, -1, 705, -1, -1, 109, 110, -1, -1, -1, - 114, -1, 715, -1, -1, 275, -1, -1, 426, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 439, -1, -1, -1, -1, -1, 740, -1, -1, - 300, -1, -1, -1, 452, -1, -1, 455, -1, -1, - 458, -1, -1, -1, -1, -1, -1, 3691, -1, -1, - -1, -1, 3696, -1, -1, 473, -1, -1, 328, -1, - 330, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3717, -1, 189, -1, -1, -1, 349, - -1, -1, -1, -1, 3728, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 368, -1, - -1, -1, -1, -1, -1, 375, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 390, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 400, -1, -1, -1, -1, -1, 250, 251, 252, -1, - -1, -1, -1, -1, -1, 415, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 275, 3806, -1, -1, -1, -1, -1, -1, -1, - -1, 589, -1, -1, -1, -1, -1, 16, 17, -1, - -1, -1, -1, 22, 23, -1, 300, -1, -1, -1, - -1, -1, -1, 32, -1, -1, -1, -1, -1, 3843, - 618, -1, 472, 621, -1, -1, -1, -1, -1, -1, - -1, -1, 482, 631, 328, -1, 330, -1, -1, 58, - -1, 639, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 70, -1, 651, 3878, 349, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 519, - -1, 90, 670, -1, 368, 673, -1, -1, -1, -1, - -1, 375, 532, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 390, -1, -1, -1, - -1, -1, -1, -1, 123, -1, 400, 705, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 715, -1, -1, - -1, 415, 572, -1, 143, 144, -1, 146, 578, -1, - -1, -1, -1, -1, -1, 154, 155, 156, -1, -1, - -1, -1, 740, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 174, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3991, 3992, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 472, -1, - -1, -1, -1, -1, -1, -1, -1, 637, 482, 208, - -1, -1, -1, -1, 644, -1, -1, -1, -1, -1, - -1, 4025, 4026, -1, 4028, -1, -1, -1, -1, -1, - -1, -1, -1, 4037, 233, 4039, -1, -1, 4042, -1, - 239, -1, -1, -1, 674, 519, -1, -1, -1, -1, - -1, 4055, -1, 4057, -1, 4059, -1, 4061, 532, 689, - 690, -1, -1, -1, -1, 264, 265, 266, -1, -1, - 4074, 4075, 702, -1, -1, -1, -1, -1, -1, -1, - 16, 17, -1, -1, -1, -1, 22, 23, -1, -1, - 289, 290, -1, -1, -1, -1, 32, -1, 572, -1, - -1, -1, -1, -1, 578, -1, -1, -1, -1, -1, - 4114, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 58, -1, -1, -1, -1, -1, -1, 636, - -1, -1, -1, -1, 70, -1, -1, 336, 768, 338, - 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 660, 90, 354, -1, -1, -1, -1, - -1, -1, -1, 637, -1, -1, 4170, 674, -1, -1, - 644, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 123, -1, -1, - -1, -1, 391, -1, 393, -1, 4200, -1, -1, -1, - 674, -1, -1, -1, -1, -1, -1, 143, 144, -1, - 146, -1, -1, -1, -1, 689, 690, 416, 154, 155, - 156, -1, -1, -1, -1, -1, -1, 4231, 702, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 174, 438, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 449, 450, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 778, 208, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 481, -1, -1, -1, -1, -1, 4292, -1, - -1, 490, -1, -1, -1, -1, -1, 233, -1, -1, - -1, -1, -1, 239, -1, -1, -1, -1, -1, 4313, - -1, -1, -1, -1, -1, -1, 4320, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 4330, -1, 264, 265, - 266, -1, -1, -1, -1, -1, -1, 536, 537, 538, - -1, 848, -1, -1, -1, 544, 545, -1, -1, -1, - -1, -1, -1, 289, 290, -1, -1, -1, -1, -1, - -1, 560, 561, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 584, 585, -1, -1, -1, - -1, 4395, -1, -1, 901, -1, -1, -1, -1, 906, - 336, -1, 338, 339, 603, -1, -1, -1, -1, -1, - -1, 4415, 4416, -1, -1, -1, -1, -1, 354, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 936, - -1, -1, 939, -1, -1, -1, 635, -1, -1, 946, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4455, -1, -1, -1, 391, -1, 393, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 984, -1, -1, - 416, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 694, -1, -1, 697, -1, - -1, 700, 438, -1, -1, -1, -1, -1, 707, 4513, - -1, -1, -1, 449, 450, -1, -1, -1, -1, -1, - -1, 4525, -1, -1, 723, -1, -1, 4531, 1035, 1036, - 1037, 1038, -1, -1, 1041, -1, -1, -1, -1, -1, - 1047, 4545, -1, 742, -1, 481, -1, -1, -1, -1, - -1, -1, -1, -1, 490, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 536, 537, 538, -1, -1, 4609, -1, 4611, 544, 545, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4625, -1, -1, 560, 561, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 4642, 4643, - -1, -1, -1, -1, -1, -1, -1, -1, 584, 585, - -1, -1, -1, -1, -1, -1, -1, 4661, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 603, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1205, 635, - -1, 1208, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, - -1, 697, -1, -1, 700, -1, -1, -1, -1, -1, - -1, 707, -1, 4777, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 723, -1, 4793, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 742, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1328, -1, -1, 1331, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 4863, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4878, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1403, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 4910, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 32, -1, 34, - -1, -1, 1429, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1440, 1441, -1, -1, -1, -1, 1446, - -1, -1, -1, 1450, 1451, 1452, 61, -1, -1, -1, - -1, 4955, -1, -1, 1461, 1462, 1463, -1, -1, -1, - 1467, -1, 1469, 1470, 1471, 1472, 1473, -1, 1475, -1, - -1, 1478, 1479, -1, -1, -1, -1, -1, -1, 1486, - 4984, 1488, -1, -1, 1491, 1492, -1, 1494, 1495, 1496, - -1, 1498, 1499, 1500, 109, 110, -1, -1, 1505, 114, - -1, 1508, -1, -1, -1, -1, -1, -1, -1, 1516, - 1517, -1, 1519, 1520, 1521, -1, -1, 1524, 1525, 1526, - 1527, 1528, 1529, 1530, -1, 1532, 1533, 1534, 1535, 1536, - 1537, -1, 1539, 1540, -1, 1542, 1543, 1544, 1545, 1546, - 1547, 1548, -1, -1, 1551, 1552, 1553, 1554, -1, 1556, - 1557, 1558, 5056, 1560, 5058, 1562, -1, 1564, -1, -1, - -1, 1568, 1569, 1570, -1, -1, 1573, 1574, 1575, 1576, - 1577, -1, 1579, -1, 189, -1, -1, -1, -1, 1586, - 5084, -1, -1, -1, -1, -1, 1593, 1594, 1595, 1596, - -1, -1, -1, -1, -1, -1, -1, 1604, 1605, 1606, - -1, 1608, 1609, 1610, 1611, 1612, 1613, -1, 1615, 1616, - 1617, 1618, 1619, 1620, 1621, 1622, -1, -1, -1, 1626, - -1, -1, -1, -1, 1631, -1, -1, -1, -1, -1, - 1637, -1, -1, -1, -1, 250, 251, 252, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 5153, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 275, -1, 1669, -1, -1, -1, -1, 1674, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1684, 5182, -1, - -1, -1, -1, -1, -1, 300, -1, -1, 5192, -1, - -1, -1, -1, -1, -1, -1, 636, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1715, -1, - -1, -1, -1, 328, -1, 330, -1, -1, -1, -1, - 660, -1, -1, -1, -1, -1, 5230, -1, 5232, -1, - -1, -1, 347, -1, 349, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1752, -1, -1, -1, -1, - -1, -1, -1, 368, -1, -1, -1, -1, -1, -1, - 375, -1, -1, -1, 5268, -1, -1, 5271, 1775, -1, - -1, -1, -1, -1, -1, 390, -1, -1, -1, -1, - -1, -1, -1, 5287, -1, 400, -1, -1, -1, -1, - -1, -1, -1, 1800, -1, -1, -1, -1, -1, -1, - 415, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 16, 17, 5322, -1, - -1, -1, 22, 23, -1, -1, -1, -1, -1, -1, - -1, -1, 32, -1, -1, -1, -1, -1, 778, -1, - -1, -1, -1, -1, -1, -1, -1, 5351, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 472, 58, -1, - -1, -1, -1, -1, -1, -1, 5370, 482, -1, -1, - 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 90, -1, -1, -1, 5398, -1, -1, 5401, -1, -1, - -1, -1, -1, -1, 519, -1, -1, -1, 848, -1, - -1, -1, -1, -1, -1, -1, -1, 532, -1, -1, - -1, 5425, -1, 123, -1, -1, -1, -1, -1, -1, - 5434, -1, -1, -1, -1, -1, -1, -1, 5442, -1, - -1, -1, -1, 143, 144, -1, 146, -1, -1, -1, - -1, -1, -1, -1, 154, 155, 156, 572, -1, -1, - -1, -1, -1, 578, -1, -1, 906, 5471, -1, -1, - -1, -1, -1, 5477, 174, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 936, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 946, -1, 208, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 637, -1, -1, -1, 2033, -1, -1, 644, - -1, -1, -1, 233, -1, -1, -1, -1, 5542, 239, - -1, -1, -1, 5547, 2051, -1, -1, 2054, -1, -1, - 5554, -1, -1, -1, -1, 2062, 2063, -1, -1, 674, - -1, -1, -1, -1, 264, 265, 266, -1, -1, -1, - -1, -1, -1, -1, 689, 690, -1, -1, -1, -1, - 5584, -1, -1, -1, -1, -1, -1, 702, -1, 289, - 290, -1, -1, 5597, -1, -1, -1, -1, 1038, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 5616, -1, -1, -1, 2123, 2124, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 336, -1, 338, 339, - -1, 2148, 2149, 2150, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 354, 2162, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 5673, + 3, 149, 119, 655, 41, 21, 654, 655, 1625, 739, + 1408, 145, 144, 1277, 859, 1277, 861, 862, 863, 1458, + 1644, 157, 25, 868, 1276, 654, 870, 30, 654, 1161, + 1572, 34, 1179, 49, 37, 1963, 648, 1637, 1715, 55, + 1715, 1902, 674, 654, 0, 48, 42, 1179, 51, 1465, + 1875, 54, 1900, 1971, 3124, 58, 2752, 2753, 1124, 1125, + 1126, 1496, 745, 1686, 1585, 2900, 3222, 1133, 634, 3222, + 1351, 1290, 1684, 1474, 654, 808, 3165, 2553, 2444, 1877, + 3163, 31, 648, 3271, 745, 3493, 623, 623, 654, 1394, + 2509, 2677, 3315, 939, 2442, 3789, 1596, 1700, 1701, 3176, + 3, 1869, 3697, 1873, 1604, 2042, 1876, 110, 1637, 1291, + 693, 1291, 2766, 696, 2768, 652, 652, 1705, 1908, 2870, + 2769, 1236, 3512, 901, 2953, 2954, 2675, 2465, 3222, 1800, + 3019, 3038, 3971, 3187, 137, 2675, 139, 1725, 3494, 142, + 3047, 3889, 145, 146, 3731, 1363, 3112, 157, 4183, 3494, + 3243, 157, 939, 157, 3779, 4417, 157, 1919, 28, 3213, + 3214, 2608, 1750, 1751, 4294, 3779, 3779, 4529, 9, 10, + 1605, 1606, 10, 1608, 1609, 1610, 1611, 1612, 1613, 26, + 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 2004, 713, + 2006, 2007, 50, 717, 718, 1798, 3780, 984, 3782, 1961, + 1800, 3785, 80, 2608, 6, 3614, 4691, 4897, 11, 74, + 1834, 1102, 1327, 6, 94, 3799, 104, 4119, 104, 11, + 9, 10, 17, 104, 3278, 3279, 42, 3485, 2675, 61, + 4426, 9, 10, 11, 2665, 26, 139, 32, 92, 142, + 9, 10, 80, 104, 2589, 9, 10, 51, 80, 9, + 10, 152, 11, 2600, 1041, 786, 217, 1035, 1036, 1037, + 1104, 9, 10, 3692, 2937, 61, 3541, 3285, 3019, 1047, + 2675, 1800, 83, 9, 10, 61, 193, 80, 9, 10, + 3389, 9, 10, 234, 9, 10, 6, 4510, 61, 6, + 1158, 58, 92, 859, 80, 861, 862, 863, 9, 10, + 116, 86, 868, 1927, 870, 262, 110, 12, 104, 120, + 3236, 127, 1180, 181, 61, 80, 297, 127, 134, 9, + 10, 352, 61, 9, 10, 247, 9, 10, 3718, 104, + 262, 104, 17, 80, 94, 4186, 4386, 9, 10, 180, + 32, 182, 9, 10, 3202, 57, 3687, 163, 193, 219, + 4098, 282, 61, 9, 10, 176, 123, 61, 9, 10, + 65, 4635, 9, 10, 86, 104, 260, 152, 148, 3258, + 80, 360, 137, 152, 9, 10, 5467, 89, 2726, 176, + 234, 114, 104, 9, 10, 3217, 9, 10, 176, 148, + 27, 180, 104, 182, 3387, 104, 9, 10, 57, 86, + 104, 3394, 180, 3396, 182, 3398, 80, 44, 224, 57, + 80, 180, 5068, 182, 9, 10, 180, 6, 182, 176, + 180, 1208, 182, 9, 10, 373, 206, 9, 10, 2053, + 89, 1422, 180, 145, 182, 3518, 176, 9, 10, 255, + 4762, 208, 12, 234, 180, 104, 182, 206, 69, 180, + 297, 182, 180, 14, 182, 180, 145, 182, 4152, 297, + 301, 173, 170, 137, 275, 9, 10, 137, 243, 180, + 213, 182, 3813, 568, 1365, 267, 608, 229, 610, 611, + 612, 613, 176, 615, 616, 172, 145, 619, 620, 623, + 180, 262, 182, 282, 180, 65, 182, 180, 76, 182, + 1391, 176, 2318, 2319, 2320, 2321, 148, 3258, 180, 32, + 182, 181, 301, 180, 173, 182, 9, 10, 652, 156, + 5441, 234, 229, 301, 180, 441, 182, 3044, 323, 180, + 295, 182, 301, 180, 668, 182, 1181, 301, 1104, 73, + 161, 301, 319, 142, 1849, 180, 341, 182, 92, 271, + 684, 317, 347, 301, 180, 513, 182, 180, 5043, 182, + 272, 94, 80, 324, 724, 301, 262, 180, 4930, 182, + 301, 4767, 282, 301, 4151, 61, 301, 234, 9, 10, + 92, 3213, 3214, 1835, 271, 180, 630, 182, 4286, 122, + 301, 1657, 1175, 2523, 180, 113, 182, 1068, 180, 2529, + 182, 262, 671, 606, 137, 765, 602, 229, 180, 3702, + 182, 301, 1678, 272, 617, 301, 1880, 1463, 301, 622, + 623, 295, 639, 654, 234, 209, 5717, 1360, 1099, 301, + 142, 323, 766, 1479, 301, 2553, 180, 3526, 182, 1901, + 3729, 3829, 645, 3726, 192, 301, 3278, 3279, 181, 652, + 301, 654, 297, 297, 301, 347, 1875, 390, 113, 234, + 1321, 422, 1440, 1441, 286, 668, 301, 114, 1199, 446, + 736, 437, 588, 807, 769, 301, 1463, 680, 301, 811, + 812, 684, 685, 297, 234, 2483, 172, 180, 301, 182, + 686, 1478, 1479, 148, 4917, 698, 646, 693, 216, 233, + 696, 1919, 2325, 699, 634, 292, 301, 113, 282, 712, + 234, 489, 2324, 3807, 129, 301, 294, 234, 648, 301, + 1332, 320, 229, 2548, 654, 769, 1908, 138, 1908, 301, + 5004, 1878, 374, 1394, 634, 1259, 3285, 1261, 1262, 1263, + 1264, 1265, 745, 1961, 747, 3285, 1878, 297, 648, 180, + 644, 182, 531, 4604, 654, 4342, 317, 301, 298, 299, + 1978, 260, 1653, 766, 229, 3600, 1332, 290, 9, 10, + 3217, 360, 775, 762, 5096, 3526, 707, 9, 10, 286, + 1671, 762, 4191, 786, 492, 788, 4195, 5708, 2309, 99, + 229, 1637, 203, 796, 688, 798, 747, 800, 801, 802, + 803, 804, 805, 764, 807, 727, 1337, 1698, 301, 5465, + 760, 554, 3217, 770, 762, 625, 4668, 4669, 769, 1451, + 2255, 286, 2223, 2224, 1361, 3879, 2414, 2589, 513, 866, + 762, 2266, 2248, 2268, 2269, 1366, 1704, 33, 3285, 1707, + 3698, 4099, 1957, 3188, 1631, 762, 2608, 286, 1626, 3280, + 1637, 1719, 9, 10, 1722, 858, 806, 860, 1726, 809, + 3533, 762, 3880, 4292, 867, 753, 869, 753, 3215, 727, + 301, 4146, 753, 4775, 3983, 763, 764, 763, 764, 726, + 3285, 884, 763, 764, 764, 1753, 1754, 1755, 1520, 4637, + 768, 260, 753, 747, 764, 2711, 764, 762, 801, 802, + 803, 766, 5098, 2665, 5594, 1537, 3832, 1438, 1540, 676, + 1542, 9, 10, 2675, 1546, 1547, 1548, 762, 2686, 714, + 9, 10, 1554, 4313, 629, 4827, 767, 3920, 1715, 859, + 768, 861, 862, 863, 654, 634, 768, 654, 868, 180, + 870, 182, 727, 764, 747, 3777, 305, 5170, 180, 648, + 182, 767, 763, 3946, 1800, 747, 747, 753, 738, 859, + 762, 861, 862, 863, 764, 768, 603, 764, 868, 762, + 870, 1654, 3965, 3966, 3967, 764, 764, 3970, 753, 738, + 753, 701, 768, 5345, 621, 5035, 764, 3335, 747, 3982, + 1124, 762, 1126, 1654, 763, 764, 1130, 1131, 635, 763, + 764, 3752, 3753, 768, 764, 3756, 3757, 764, 741, 1046, + 762, 3762, 3763, 1800, 753, 763, 764, 5279, 666, 4521, + 657, 768, 714, 180, 764, 182, 1160, 763, 764, 716, + 182, 753, 763, 764, 747, 763, 764, 1040, 763, 764, + 1723, 117, 457, 2034, 753, 4743, 4948, 752, 124, 753, + 2041, 763, 763, 764, 858, 762, 3388, 4398, 768, 629, + 301, 3393, 1723, 752, 753, 2689, 762, 3399, 616, 301, + 764, 4648, 86, 763, 764, 385, 2700, 763, 764, 3830, + 491, 764, 180, 5568, 182, 5570, 5571, 4989, 4990, 764, + 747, 180, 764, 182, 768, 3612, 3613, 764, 768, 1102, + 1103, 762, 1946, 1748, 763, 1108, 206, 278, 764, 28, + 186, 4200, 769, 764, 1274, 1118, 262, 764, 282, 764, + 764, 1124, 3050, 1126, 1661, 1661, 2896, 1130, 1131, 764, + 2021, 282, 303, 754, 755, 756, 757, 747, 764, 1275, + 762, 764, 4231, 5045, 301, 644, 601, 343, 4748, 2965, + 764, 764, 2437, 167, 168, 418, 4546, 1160, 172, 769, + 859, 567, 861, 862, 863, 1282, 1690, 4816, 763, 868, + 1900, 870, 747, 4834, 1104, 762, 5028, 129, 764, 1175, + 1809, 1177, 764, 1809, 9, 10, 1919, 260, 1849, 763, + 764, 1194, 764, 5228, 769, 1198, 1199, 747, 1809, 2720, + 369, 5686, 5687, 301, 1104, 262, 206, 432, 5693, 1792, + 1213, 206, 301, 4800, 4839, 4308, 764, 10, 1255, 763, + 4610, 1224, 4612, 747, 764, 4839, 4839, 1361, 1961, 1809, + 747, 92, 4309, 1236, 260, 3033, 32, 1820, 34, 4395, + 4294, 4330, 4395, 1809, 554, 769, 113, 3879, 4657, 4658, + 768, 357, 769, 1256, 5484, 762, 4840, 271, 9, 10, + 206, 372, 2328, 2410, 1912, 1275, 2332, 5015, 4234, 1275, + 763, 1275, 432, 1276, 1275, 2946, 687, 2123, 2410, 148, + 5119, 1762, 406, 113, 4191, 5770, 1817, 4363, 4195, 2355, + 14, 3556, 3557, 3558, 3559, 4651, 492, 762, 3636, 1103, + 219, 4395, 2537, 1306, 1108, 2567, 4651, 1257, 1258, 94, + 3171, 1848, 1315, 672, 233, 385, 462, 4393, 1321, 688, + 1323, 1324, 340, 762, 1327, 2507, 3174, 2507, 3118, 375, + 3777, 3880, 1856, 764, 1337, 1859, 2123, 2124, 357, 1863, + 3880, 1344, 494, 1346, 3021, 357, 2946, 3024, 3025, 3024, + 3025, 4186, 137, 4182, 286, 180, 2791, 182, 1361, 4248, + 9, 10, 1365, 1366, 2976, 297, 32, 63, 148, 4258, + 4259, 2589, 3777, 9, 10, 2162, 601, 9, 10, 1991, + 1946, 563, 9, 10, 5236, 5237, 696, 163, 1391, 0, + 11, 1394, 113, 3005, 1198, 80, 181, 1400, 4739, 5026, + 3170, 525, 1332, 2708, 4053, 1104, 260, 2688, 589, 355, + 1413, 2911, 2303, 2304, 281, 9, 10, 2946, 327, 3785, + 1323, 229, 92, 119, 4926, 1991, 3188, 148, 2215, 180, + 28, 182, 1332, 3880, 2955, 1438, 297, 3374, 2050, 457, + 185, 601, 2229, 9, 10, 412, 3034, 2665, 327, 5579, + 5352, 281, 9, 10, 1588, 3217, 5117, 2675, 1989, 1990, + 5055, 5061, 4213, 9, 10, 5065, 5066, 730, 4809, 2754, + 4811, 9, 10, 4814, 267, 3880, 301, 477, 286, 4820, + 4821, 652, 477, 2049, 2050, 5134, 3905, 3906, 3907, 3908, + 5720, 1625, 2727, 4834, 2910, 720, 5398, 4248, 61, 2934, + 350, 2940, 1306, 2618, 2920, 457, 3048, 4258, 4259, 3307, + 2378, 1315, 2380, 9, 10, 456, 2917, 2918, 3280, 619, + 1324, 578, 763, 3285, 5654, 5655, 672, 1661, 3152, 640, + 399, 180, 764, 182, 3302, 2403, 4625, 689, 1541, 764, + 1344, 710, 1346, 267, 180, 645, 182, 1550, 2416, 2417, + 301, 347, 5682, 180, 600, 182, 92, 391, 1561, 393, + 2338, 1598, 471, 339, 5, 3913, 672, 9, 10, 1572, + 1207, 2052, 9, 10, 4567, 442, 9, 10, 4571, 5079, + 49, 1218, 764, 279, 432, 1588, 180, 3919, 182, 3921, + 31, 3923, 471, 3925, 9, 10, 1400, 4452, 4453, 4454, + 764, 3933, 9, 10, 764, 769, 2393, 764, 3940, 63, + 3942, 520, 442, 764, 180, 688, 182, 3949, 769, 399, + 638, 219, 1625, 180, 1627, 182, 345, 3959, 3305, 479, + 3305, 3963, 73, 1332, 180, 554, 182, 3969, 9, 10, + 5132, 520, 180, 1646, 182, 3977, 3978, 3979, 3980, 3981, + 1653, 1654, 301, 672, 727, 9, 10, 5257, 1661, 1662, + 672, 282, 688, 408, 386, 301, 764, 1801, 1671, 301, + 9, 10, 563, 33, 301, 764, 346, 2896, 2465, 459, + 2467, 347, 1685, 1686, 180, 136, 182, 763, 1691, 1692, + 1693, 1694, 1695, 1696, 1697, 1698, 1699, 607, 9, 10, + 1703, 727, 716, 670, 4793, 576, 1840, 301, 4791, 1857, + 1858, 3928, 3929, 566, 1848, 3932, 1850, 1720, 1721, 660, + 1723, 3491, 3939, 2352, 287, 288, 2352, 168, 3945, 557, + 1726, 91, 109, 110, 4810, 301, 4813, 1541, 180, 460, + 182, 2352, 1745, 180, 301, 182, 1550, 180, 4824, 182, + 9, 10, 3600, 601, 5381, 301, 5383, 1561, 5110, 4835, + 5433, 4837, 432, 301, 434, 180, 207, 182, 114, 4604, + 2557, 5267, 2352, 180, 558, 182, 5117, 2314, 2314, 5473, + 5121, 5281, 1916, 129, 17, 627, 2352, 445, 1691, 721, + 1693, 1694, 1695, 1696, 9, 10, 1792, 5470, 1801, 32, + 1703, 5191, 712, 84, 2695, 301, 9, 10, 1811, 180, + 346, 182, 9, 10, 1817, 5307, 3929, 1813, 1721, 1822, + 4480, 2433, 385, 262, 1820, 279, 180, 4481, 182, 679, + 762, 3601, 554, 98, 688, 554, 63, 1840, 3277, 199, + 83, 180, 1646, 182, 295, 1848, 1849, 1850, 1851, 1852, + 1853, 1854, 1855, 747, 524, 764, 2589, 2701, 558, 301, + 4520, 360, 3297, 697, 301, 719, 700, 2433, 301, 180, + 558, 182, 720, 764, 5226, 2458, 4911, 120, 4538, 1809, + 601, 4541, 4542, 9, 10, 738, 301, 145, 1692, 4154, + 4155, 762, 119, 1697, 301, 1699, 432, 460, 434, 2743, + 5646, 729, 5125, 5649, 2970, 2971, 2751, 2752, 2753, 1809, + 63, 233, 3589, 1916, 747, 173, 276, 575, 5326, 4285, + 4286, 180, 4520, 182, 9, 10, 1922, 769, 5424, 2995, + 301, 601, 2665, 113, 656, 1938, 3118, 4050, 3118, 764, + 4538, 1745, 2675, 4541, 4542, 729, 111, 301, 3560, 3561, + 9, 10, 2613, 3100, 1957, 2486, 9, 10, 566, 5835, + 111, 5302, 301, 3575, 286, 180, 119, 182, 3100, 1972, + 3188, 1974, 83, 1976, 1977, 297, 234, 180, 707, 182, + 764, 9, 10, 180, 5860, 182, 1989, 1990, 524, 216, + 301, 368, 461, 1996, 2518, 653, 3538, 2521, 9, 10, + 2003, 2004, 229, 2006, 2007, 2529, 3506, 145, 2532, 120, + 99, 200, 763, 3160, 69, 3777, 1946, 4872, 2021, 5102, + 3541, 2024, 3303, 3328, 3329, 3330, 3331, 2030, 3160, 729, + 719, 4450, 275, 5552, 2037, 173, 216, 9, 10, 297, + 769, 729, 301, 63, 2047, 2048, 1946, 2708, 199, 203, + 1854, 1855, 279, 5799, 180, 526, 182, 5092, 247, 286, + 5095, 1991, 3280, 216, 764, 601, 580, 3285, 276, 61, + 297, 225, 2963, 9, 10, 170, 229, 441, 9, 10, + 269, 18, 4668, 4669, 2975, 4974, 301, 3885, 109, 110, + 323, 1991, 9, 10, 764, 180, 595, 182, 301, 119, + 2946, 136, 571, 495, 301, 482, 161, 2719, 341, 578, + 1809, 9, 10, 2742, 347, 764, 2742, 586, 3880, 2049, + 2050, 180, 6, 182, 179, 564, 279, 180, 764, 182, + 738, 2742, 2280, 286, 1938, 2701, 2914, 764, 2770, 578, + 373, 2928, 440, 290, 297, 292, 15, 539, 2780, 2049, + 2050, 5670, 180, 2719, 182, 2692, 2692, 9, 10, 2946, + 368, 675, 2742, 604, 275, 260, 3687, 104, 105, 180, + 764, 182, 1976, 9, 10, 301, 2742, 2743, 453, 319, + 2314, 9, 10, 18, 68, 2751, 2752, 2753, 4664, 688, + 659, 2194, 5262, 139, 5264, 2329, 216, 2200, 764, 2003, + 2004, 513, 2006, 2007, 703, 2837, 763, 3051, 180, 769, + 182, 398, 3056, 2216, 728, 2029, 301, 492, 764, 3483, + 2024, 206, 693, 4974, 588, 763, 2030, 262, 183, 4561, + 4263, 635, 421, 753, 3021, 4268, 2868, 3024, 3025, 3026, + 711, 707, 301, 763, 180, 327, 182, 1946, 301, 180, + 719, 182, 517, 518, 4102, 124, 521, 522, 523, 279, + 295, 282, 188, 180, 188, 182, 229, 136, 764, 104, + 105, 4488, 480, 301, 200, 2904, 200, 297, 2904, 225, + 672, 2964, 180, 398, 182, 9, 10, 5038, 600, 587, + 301, 6, 1991, 2904, 4511, 2927, 762, 2293, 4515, 471, + 2303, 2304, 2305, 2964, 2438, 4522, 446, 444, 83, 4969, + 5145, 2314, 297, 9, 10, 2318, 2319, 2320, 2321, 2322, + 2323, 763, 2325, 286, 2904, 262, 2329, 764, 180, 301, + 182, 764, 398, 6, 260, 747, 260, 5407, 2904, 9, + 10, 478, 654, 212, 180, 120, 182, 368, 443, 764, + 2049, 2050, 180, 68, 182, 310, 2352, 764, 762, 474, + 2363, 3009, 137, 35, 2367, 301, 12, 583, 9, 10, + 301, 4969, 647, 9, 10, 47, 2379, 4743, 2374, 371, + 3009, 373, 3601, 3009, 301, 557, 2382, 5691, 79, 471, + 2194, 82, 763, 5581, 5582, 68, 2200, 492, 3009, 721, + 17, 4199, 4360, 301, 4362, 2539, 181, 4365, 474, 6, + 764, 2559, 2415, 4371, 4372, 32, 553, 4187, 410, 65, + 2423, 437, 2352, 9, 10, 764, 614, 262, 2431, 3009, + 4388, 2434, 2435, 9, 10, 2438, 2439, 2440, 520, 3586, + 762, 92, 5028, 3009, 3174, 661, 438, 249, 81, 301, + 121, 2568, 2402, 764, 3586, 3188, 180, 294, 182, 261, + 2463, 482, 2458, 96, 2367, 301, 137, 3731, 484, 3731, + 262, 68, 248, 301, 4840, 557, 2379, 583, 122, 4340, + 668, 714, 672, 2486, 180, 3051, 182, 178, 3332, 747, + 3056, 4339, 125, 99, 752, 753, 147, 634, 131, 117, + 275, 2305, 674, 2433, 763, 4981, 124, 5167, 216, 5169, + 180, 4336, 182, 2516, 2318, 2319, 2320, 2321, 3305, 2522, + 446, 127, 446, 2526, 5680, 5579, 5679, 99, 2531, 111, + 245, 246, 165, 2433, 724, 762, 2539, 3381, 554, 180, + 255, 182, 2545, 99, 180, 122, 182, 3280, 4171, 764, + 5854, 5855, 3285, 3619, 6, 661, 200, 729, 2692, 11, + 2694, 764, 10, 15, 215, 4335, 763, 4337, 186, 5167, + 261, 5169, 245, 246, 350, 181, 6, 301, 9, 10, + 2576, 573, 255, 26, 559, 560, 707, 2583, 2584, 9, + 10, 229, 674, 688, 180, 6, 182, 3902, 5668, 5669, + 5654, 5655, 4205, 94, 180, 301, 182, 9, 10, 762, + 2613, 2415, 788, 2516, 6, 2618, 721, 609, 4019, 4020, + 707, 69, 4143, 9, 10, 4146, 6, 2431, 5682, 805, + 3696, 301, 2766, 124, 2768, 3247, 2440, 763, 68, 5728, + 17, 762, 94, 4082, 3535, 296, 4047, 729, 286, 5484, + 5236, 5237, 233, 2352, 5350, 32, 4198, 68, 148, 297, + 301, 636, 3880, 9, 10, 301, 325, 3328, 3329, 3330, + 3331, 4072, 289, 290, 2488, 2678, 68, 2680, 763, 3466, + 122, 3247, 769, 9, 10, 10, 707, 94, 68, 2692, + 402, 2694, 2695, 4317, 57, 137, 4135, 752, 753, 754, + 755, 756, 757, 479, 763, 2708, 323, 404, 2711, 57, + 763, 9, 10, 161, 411, 301, 9, 10, 2522, 568, + 9, 10, 5784, 5785, 341, 301, 89, 947, 3596, 4130, + 347, 179, 116, 137, 2433, 763, 763, 764, 3923, 181, + 3925, 9, 10, 127, 459, 655, 4664, 967, 3933, 180, + 134, 182, 763, 655, 974, 975, 373, 9, 10, 137, + 180, 762, 182, 2766, 3949, 2768, 3332, 5829, 769, 9, + 10, 2701, 9, 10, 3959, 753, 552, 181, 180, 4627, + 182, 415, 145, 9, 10, 763, 459, 235, 236, 2719, + 260, 763, 3977, 443, 180, 768, 182, 145, 9, 10, + 642, 2701, 3589, 181, 4202, 160, 9, 10, 111, 651, + 173, 1227, 2742, 2743, 656, 3381, 697, 1233, 1234, 2719, + 701, 2751, 2752, 2753, 5913, 173, 30, 763, 9, 10, + 34, 5914, 763, 4375, 180, 762, 182, 471, 648, 766, + 224, 769, 2742, 2743, 9, 10, 763, 109, 110, 3636, + 205, 2751, 2752, 2753, 180, 606, 182, 4815, 718, 4088, + 912, 913, 914, 4092, 114, 763, 617, 129, 114, 3501, + 301, 255, 114, 3556, 3557, 3558, 3559, 9, 10, 2882, + 3942, 301, 180, 762, 182, 5720, 4150, 180, 4150, 182, + 769, 180, 247, 182, 633, 3556, 3557, 3558, 3559, 301, + 260, 9, 10, 679, 4425, 167, 168, 2711, 2904, 272, + 5397, 763, 180, 5400, 182, 301, 3978, 3979, 643, 10, + 2923, 973, 421, 557, 272, 109, 110, 763, 180, 727, + 182, 4150, 9, 10, 247, 763, 762, 199, 3725, 57, + 180, 76, 182, 180, 267, 182, 5, 2950, 753, 664, + 689, 666, 2955, 692, 180, 301, 182, 2960, 763, 764, + 2963, 2964, 2965, 739, 94, 3648, 124, 83, 674, 180, + 4795, 182, 2975, 84, 2904, 301, 633, 180, 69, 182, + 719, 593, 9, 10, 762, 1309, 1310, 3648, 727, 460, + 6, 664, 665, 666, 667, 167, 168, 9, 10, 180, + 3844, 182, 2701, 301, 120, 570, 3009, 688, 301, 9, + 10, 3145, 301, 368, 276, 180, 176, 182, 2974, 1343, + 2719, 137, 5388, 267, 5390, 380, 176, 145, 763, 764, + 4642, 4643, 4179, 301, 763, 764, 763, 764, 300, 763, + 674, 3175, 3176, 2742, 2743, 3048, 764, 4179, 180, 301, + 182, 412, 2751, 2752, 2753, 173, 1386, 1387, 3706, 5546, + 1390, 301, 113, 4981, 301, 181, 5553, 763, 69, 768, + 161, 342, 180, 2887, 182, 301, 4142, 771, 4342, 3009, + 4342, 193, 4624, 762, 500, 501, 333, 92, 179, 721, + 301, 69, 3226, 763, 762, 729, 762, 714, 301, 515, + 762, 4167, 4168, 180, 762, 182, 368, 703, 704, 3009, + 706, 187, 708, 297, 747, 748, 749, 4336, 763, 764, + 301, 3051, 763, 3126, 3127, 129, 3056, 763, 483, 3132, + 764, 762, 137, 763, 764, 762, 301, 142, 3141, 9, + 10, 762, 3145, 49, 235, 236, 2950, 3880, 3993, 763, + 764, 3051, 762, 180, 272, 182, 3056, 1444, 1445, 275, + 161, 2965, 4443, 167, 168, 34, 1453, 762, 180, 301, + 182, 122, 3175, 3176, 763, 764, 181, 763, 179, 762, + 180, 187, 182, 161, 368, 721, 137, 763, 763, 764, + 9, 10, 762, 301, 762, 199, 612, 613, 1485, 554, + 1487, 179, 333, 334, 762, 2904, 5054, 762, 3204, 3205, + 3206, 3207, 762, 3209, 3210, 762, 1503, 1504, 480, 1506, + 763, 764, 762, 3226, 301, 763, 764, 1514, 1515, 3132, + 181, 1518, 763, 764, 235, 236, 763, 764, 3241, 370, + 4492, 3902, 762, 3929, 762, 1297, 3932, 4499, 762, 200, + 9, 10, 4650, 3939, 763, 764, 4672, 235, 236, 3945, + 3256, 3257, 762, 3259, 762, 3261, 3262, 3263, 3264, 3265, + 3266, 3267, 276, 3269, 301, 4952, 3272, 4952, 3844, 762, + 3276, 412, 5143, 763, 764, 763, 764, 763, 764, 301, + 763, 764, 5779, 5780, 200, 4547, 762, 5145, 482, 762, + 3114, 301, 750, 751, 752, 753, 754, 755, 756, 757, + 180, 762, 182, 9, 10, 11, 762, 3247, 762, 3322, + 162, 337, 3126, 3127, 3327, 3328, 3329, 3330, 3331, 763, + 764, 3334, 763, 76, 77, 94, 762, 3141, 762, 4603, + 762, 5111, 187, 763, 763, 764, 15, 3247, 32, 752, + 753, 734, 3051, 5777, 260, 17, 762, 3056, 9, 10, + 262, 763, 762, 269, 368, 381, 4630, 383, 4630, 762, + 32, 3488, 3520, 762, 58, 762, 4561, 763, 769, 3927, + 3992, 762, 3930, 193, 763, 764, 70, 762, 4988, 3937, + 762, 5815, 4473, 4832, 3208, 407, 58, 4029, 96, 5823, + 69, 4467, 3332, 762, 3952, 311, 90, 11, 70, 5337, + 4491, 4630, 412, 762, 327, 4634, 193, 763, 419, 4500, + 762, 180, 762, 182, 294, 4506, 3992, 3993, 90, 5853, + 34, 301, 3332, 131, 762, 4516, 176, 763, 3252, 123, + 3254, 3255, 762, 4524, 4525, 762, 3260, 763, 764, 495, + 4851, 3381, 763, 764, 3268, 124, 762, 61, 589, 3273, + 476, 123, 763, 764, 3467, 763, 762, 136, 763, 764, + 763, 4154, 4155, 735, 763, 606, 480, 763, 764, 763, + 764, 3381, 762, 4115, 180, 762, 182, 57, 763, 764, + 763, 764, 161, 4154, 4155, 763, 763, 764, 167, 168, + 631, 762, 415, 762, 69, 109, 110, 763, 764, 525, + 179, 763, 763, 764, 762, 421, 9, 10, 3521, 89, + 763, 764, 4170, 763, 208, 129, 763, 762, 69, 180, + 3334, 182, 3535, 762, 104, 3538, 4800, 763, 4800, 670, + 446, 4170, 301, 212, 4170, 763, 764, 762, 3247, 763, + 764, 5072, 763, 3556, 3557, 3558, 3559, 573, 471, 4170, + 763, 763, 764, 167, 168, 762, 235, 236, 172, 762, + 3573, 3574, 176, 762, 3708, 145, 762, 49, 763, 764, + 3728, 764, 763, 124, 762, 5127, 9, 10, 5358, 762, + 4170, 762, 9, 10, 278, 199, 161, 570, 763, 763, + 764, 94, 327, 173, 4170, 301, 5206, 520, 762, 4339, + 763, 764, 263, 762, 179, 762, 278, 3734, 763, 764, + 161, 3624, 5246, 95, 5485, 3628, 5250, 747, 290, 763, + 764, 763, 67, 3332, 762, 36, 5484, 36, 179, 763, + 764, 762, 114, 368, 557, 3648, 94, 663, 763, 764, + 301, 9, 10, 3656, 176, 763, 762, 3660, 762, 750, + 751, 752, 753, 754, 755, 756, 757, 762, 684, 762, + 235, 236, 276, 763, 764, 762, 5353, 5354, 5353, 5354, + 762, 3684, 3381, 762, 3687, 233, 763, 180, 4532, 182, + 91, 762, 91, 327, 235, 236, 300, 3700, 763, 764, + 9, 10, 272, 763, 764, 3708, 3709, 391, 433, 393, + 762, 5481, 5482, 114, 762, 114, 4364, 517, 518, 762, + 3723, 521, 522, 523, 328, 160, 762, 3723, 129, 391, + 129, 393, 167, 168, 368, 769, 763, 762, 644, 437, + 763, 764, 763, 764, 109, 110, 471, 1565, 1566, 750, + 751, 752, 753, 754, 755, 756, 757, 180, 3894, 182, + 4284, 674, 769, 180, 368, 182, 763, 764, 240, 762, + 205, 762, 5396, 751, 752, 753, 754, 755, 756, 757, + 762, 415, 763, 764, 5219, 94, 484, 762, 260, 763, + 764, 192, 763, 764, 762, 520, 3833, 3700, 199, 433, + 199, 49, 4488, 69, 276, 763, 764, 762, 301, 762, + 3813, 655, 247, 719, 762, 5432, 729, 762, 9, 10, + 11, 727, 180, 762, 182, 4511, 551, 762, 4352, 4515, + 34, 4897, 557, 763, 764, 762, 4522, 471, 2125, 762, + 263, 2128, 762, 4455, 448, 762, 263, 5617, 320, 547, + 769, 764, 3656, 763, 764, 769, 3660, 61, 124, 2146, + 544, 545, 769, 34, 69, 769, 114, 672, 9, 10, + 2157, 180, 769, 182, 769, 3878, 480, 769, 301, 763, + 764, 3884, 769, 545, 301, 4514, 520, 762, 4514, 4455, + 61, 763, 764, 591, 420, 161, 4626, 763, 764, 3902, + 763, 764, 137, 4514, 92, 109, 110, 5507, 763, 764, + 57, 672, 688, 179, 3844, 661, 5168, 551, 4466, 495, + 4468, 764, 414, 557, 92, 129, 398, 764, 282, 498, + 661, 500, 501, 368, 4514, 342, 764, 4485, 109, 110, + 376, 764, 89, 301, 3844, 380, 515, 4495, 4514, 674, + 764, 5721, 200, 94, 565, 5497, 161, 104, 129, 4507, + 683, 747, 80, 167, 168, 366, 4532, 366, 172, 235, + 236, 727, 176, 446, 179, 4523, 446, 762, 57, 763, + 286, 5379, 9, 10, 11, 3988, 57, 229, 61, 180, + 652, 182, 301, 662, 390, 199, 167, 168, 145, 770, + 5, 172, 569, 4790, 729, 176, 389, 4, 727, 412, + 89, 14, 3826, 3827, 3828, 295, 700, 33, 89, 368, + 36, 269, 764, 176, 769, 769, 173, 5466, 199, 415, + 235, 236, 3846, 3847, 4878, 3849, 407, 629, 700, 180, + 674, 182, 646, 612, 613, 688, 763, 762, 483, 747, + 748, 749, 111, 464, 492, 294, 5203, 547, 5322, 94, + 5322, 723, 3992, 3993, 122, 294, 145, 762, 768, 147, + 764, 5203, 276, 762, 145, 91, 6, 4080, 5517, 95, + 412, 750, 751, 752, 753, 754, 755, 756, 757, 763, + 763, 763, 3992, 3993, 173, 729, 300, 68, 114, 318, + 764, 769, 173, 5322, 763, 276, 763, 4110, 763, 634, + 301, 769, 92, 129, 5378, 92, 763, 763, 763, 554, + 4123, 4255, 471, 297, 328, 272, 762, 4123, 769, 300, + 764, 735, 136, 4136, 762, 99, 267, 764, 114, 764, + 771, 192, 764, 92, 4147, 3844, 4149, 764, 769, 34, + 4153, 4154, 4155, 180, 764, 182, 42, 328, 630, 672, + 301, 754, 124, 475, 368, 4952, 685, 4170, 4171, 373, + 4318, 435, 644, 421, 92, 4309, 648, 764, 579, 420, + 579, 672, 764, 199, 762, 5727, 770, 752, 753, 754, + 755, 756, 757, 272, 192, 4198, 124, 368, 446, 345, + 764, 272, 551, 4206, 5456, 5457, 213, 5459, 557, 750, + 751, 752, 753, 754, 755, 756, 757, 5656, 495, 495, + 692, 4745, 495, 5487, 240, 5487, 4750, 4751, 495, 342, + 116, 764, 495, 495, 764, 4367, 42, 4233, 747, 5083, + 4170, 127, 267, 658, 581, 394, 494, 719, 134, 84, + 727, 4863, 4255, 26, 94, 4251, 4252, 4071, 754, 608, + 276, 5480, 764, 763, 403, 4261, 4269, 4270, 5487, 4272, + 4170, 465, 465, 762, 301, 580, 480, 163, 764, 4093, + 763, 4910, 764, 29, 4910, 686, 294, 686, 718, 281, + 176, 4294, 687, 3992, 3993, 764, 94, 4863, 4294, 4910, + 5735, 181, 764, 764, 762, 115, 4309, 267, 5152, 480, + 116, 122, 4878, 635, 463, 59, 763, 763, 4321, 763, + 4323, 127, 412, 5053, 763, 674, 754, 4323, 134, 763, + 4910, 42, 763, 94, 763, 753, 762, 5181, 224, 763, + 234, 589, 5884, 5782, 4910, 4361, 762, 4481, 4351, 763, + 366, 5603, 764, 5605, 5606, 763, 5898, 163, 4374, 5623, + 4363, 5623, 5904, 763, 713, 5431, 4382, 764, 5910, 255, + 4373, 763, 4375, 4389, 763, 4391, 4392, 4380, 4381, 528, + 729, 530, 630, 4386, 15, 763, 535, 18, 763, 763, + 4393, 763, 368, 763, 763, 4398, 282, 764, 764, 375, + 648, 152, 764, 763, 5623, 116, 5625, 4403, 769, 5844, + 762, 757, 762, 192, 390, 4418, 127, 762, 224, 763, + 4423, 360, 576, 134, 747, 262, 57, 762, 262, 4243, + 4244, 4245, 262, 98, 267, 4249, 4250, 94, 42, 415, + 4254, 689, 646, 4257, 692, 764, 4260, 92, 92, 255, + 599, 762, 163, 4267, 762, 86, 489, 764, 89, 3752, + 3753, 764, 94, 3756, 3757, 176, 4270, 769, 769, 3762, + 3763, 719, 769, 104, 105, 646, 763, 5321, 4481, 727, + 424, 769, 225, 5549, 750, 751, 752, 753, 754, 755, + 756, 757, 600, 642, 233, 764, 62, 6, 1985, 764, + 717, 92, 176, 764, 176, 5350, 4509, 262, 279, 124, + 99, 764, 116, 224, 145, 4418, 763, 5083, 762, 18, + 543, 247, 247, 127, 643, 4455, 247, 247, 5594, 247, + 134, 735, 297, 164, 5058, 176, 762, 92, 11, 263, + 747, 172, 173, 519, 255, 750, 751, 752, 753, 754, + 755, 756, 757, 764, 4688, 4455, 532, 747, 57, 163, + 747, 747, 747, 579, 735, 747, 5353, 5354, 747, 42, + 5636, 33, 176, 718, 36, 551, 4380, 747, 747, 494, + 747, 747, 731, 747, 4514, 747, 5152, 86, 747, 747, + 89, 342, 747, 742, 282, 747, 747, 747, 137, 747, + 72, 764, 4532, 747, 747, 104, 105, 80, 769, 747, + 83, 747, 315, 4616, 4514, 5181, 267, 267, 267, 92, + 224, 4624, 738, 492, 5876, 267, 99, 769, 122, 91, + 103, 262, 4532, 95, 769, 764, 374, 388, 768, 763, + 271, 272, 273, 116, 121, 121, 145, 120, 769, 122, + 187, 255, 114, 763, 127, 769, 763, 763, 763, 763, + 769, 134, 753, 763, 137, 164, 753, 129, 26, 142, + 686, 763, 681, 172, 173, 763, 4679, 762, 764, 4813, + 762, 320, 267, 229, 49, 4688, 570, 4690, 4691, 94, + 163, 94, 94, 262, 9, 10, 4692, 94, 674, 262, + 57, 477, 206, 176, 769, 753, 173, 764, 181, 424, + 762, 127, 4708, 689, 127, 4529, 184, 11, 469, 762, + 5286, 747, 764, 747, 5376, 4762, 764, 200, 529, 315, + 192, 91, 89, 176, 764, 769, 4739, 199, 53, 54, + 55, 56, 4859, 4746, 650, 4748, 111, 104, 26, 103, + 4753, 224, 109, 110, 385, 5321, 4455, 769, 764, 262, + 233, 763, 393, 262, 390, 4768, 762, 4804, 390, 262, + 4807, 262, 271, 272, 273, 4771, 214, 11, 240, 762, + 531, 762, 255, 762, 5350, 99, 220, 769, 145, 4805, + 92, 106, 107, 108, 53, 54, 55, 56, 549, 550, + 754, 570, 275, 554, 555, 556, 4809, 4810, 4811, 282, + 4813, 4814, 763, 4816, 276, 4514, 173, 4820, 4821, 267, + 754, 4824, 295, 176, 297, 113, 455, 300, 764, 407, + 768, 4834, 4835, 4532, 4837, 200, 762, 762, 762, 123, + 4843, 5907, 157, 158, 123, 173, 763, 106, 107, 108, + 763, 763, 763, 769, 762, 764, 229, 764, 4861, 763, + 4856, 763, 763, 181, 769, 180, 763, 182, 763, 26, + 762, 622, 747, 762, 215, 763, 769, 229, 5530, 94, + 94, 4884, 247, 206, 763, 763, 385, 763, 127, 127, + 764, 93, 296, 4930, 393, 762, 762, 762, 157, 158, + 206, 762, 540, 747, 366, 764, 390, 403, 725, 192, + 762, 403, 762, 228, 533, 272, 764, 762, 733, 670, + 763, 366, 192, 192, 267, 192, 26, 4930, 192, 128, + 689, 4934, 128, 4863, 192, 689, 192, 577, 192, 192, + 192, 262, 4746, 267, 11, 424, 98, 487, 4878, 225, + 409, 198, 373, 762, 762, 320, 5104, 562, 61, 92, + 92, 173, 26, 4863, 763, 231, 763, 368, 344, 228, + 297, 763, 489, 7, 629, 351, 763, 763, 4878, 764, + 4910, 181, 26, 763, 138, 763, 301, 302, 192, 5637, + 764, 367, 764, 4996, 764, 763, 127, 127, 431, 142, + 737, 377, 378, 379, 5007, 762, 762, 41, 93, 17, + 4910, 387, 764, 763, 415, 763, 211, 176, 11, 627, + 769, 763, 763, 5026, 661, 725, 725, 111, 764, 63, + 763, 129, 5035, 398, 93, 199, 173, 173, 590, 73, + 5043, 176, 176, 302, 470, 263, 5049, 424, 368, 5052, + 570, 4865, 297, 4867, 122, 4869, 421, 5901, 5061, 5096, + 17, 373, 5065, 5066, 98, 292, 697, 292, 210, 700, + 471, 762, 562, 763, 763, 137, 5079, 763, 709, 394, + 114, 446, 763, 2570, 2571, 119, 764, 763, 763, 483, + 600, 533, 123, 32, 763, 763, 26, 764, 669, 763, + 2587, 109, 110, 5106, 282, 282, 769, 562, 142, 762, + 2597, 2598, 764, 10, 5117, 763, 4930, 579, 5121, 762, + 129, 11, 129, 634, 5127, 636, 762, 640, 763, 494, + 5278, 5134, 762, 11, 762, 394, 360, 648, 763, 11, + 764, 764, 122, 654, 655, 129, 764, 297, 463, 660, + 551, 527, 763, 5083, 654, 372, 557, 407, 129, 5162, + 278, 260, 303, 674, 4863, 541, 4980, 769, 747, 92, + 5173, 92, 5175, 2660, 2661, 2662, 2663, 211, 4992, 4878, + 764, 173, 763, 5083, 533, 762, 430, 763, 763, 763, + 282, 282, 10, 267, 5846, 229, 404, 569, 697, 282, + 762, 700, 762, 237, 463, 33, 764, 608, 5325, 763, + 709, 4910, 769, 528, 67, 530, 176, 764, 763, 139, + 535, 762, 5152, 84, 686, 84, 762, 260, 297, 279, + 570, 173, 763, 444, 763, 269, 763, 635, 588, 425, + 588, 32, 763, 34, 5247, 279, 280, 762, 762, 173, + 626, 5181, 5152, 348, 5257, 762, 762, 5260, 763, 150, + 733, 300, 764, 562, 26, 641, 26, 778, 5271, 528, + 61, 530, 79, 674, 747, 26, 535, 61, 5281, 644, + 61, 5181, 669, 648, 599, 763, 769, 10, 763, 680, + 763, 764, 763, 176, 767, 768, 5312, 762, 5432, 5302, + 695, 677, 762, 129, 762, 686, 725, 129, 5345, 172, + 279, 5314, 713, 61, 11, 691, 321, 26, 109, 110, + 562, 26, 26, 114, 689, 122, 413, 642, 729, 5332, + 5333, 763, 33, 570, 33, 5901, 415, 848, 344, 635, + 599, 574, 5345, 403, 762, 351, 403, 762, 859, 92, + 861, 862, 863, 763, 719, 762, 5286, 868, 5162, 870, + 169, 367, 727, 764, 570, 5368, 762, 570, 681, 762, + 721, 377, 378, 379, 762, 764, 762, 769, 5381, 142, + 5383, 387, 320, 642, 5083, 763, 5286, 421, 762, 92, + 901, 5321, 426, 401, 762, 906, 407, 26, 189, 5402, + 769, 26, 436, 762, 314, 176, 762, 415, 176, 417, + 225, 279, 63, 465, 769, 75, 731, 764, 763, 763, + 5350, 5321, 26, 113, 5420, 936, 763, 742, 635, 5432, + 762, 173, 233, 764, 875, 946, 1217, 2974, 1776, 447, + 3274, 4869, 4865, 3629, 1863, 4867, 1177, 3129, 2529, 5395, + 5350, 5454, 3773, 5152, 462, 5088, 5449, 5598, 5788, 250, + 251, 252, 4770, 1302, 4934, 5274, 4910, 5173, 5345, 5282, + 5188, 4529, 731, 2467, 3636, 3374, 1636, 2742, 5286, 3320, + 4456, 779, 5181, 742, 275, 2626, 3993, 495, 2048, 2051, + 2049, 1342, 2050, 1925, 5497, 5403, 5499, 1978, 3812, 5072, + 5255, 3222, 4828, 4132, 4994, 513, 4136, 4616, 2288, 300, + 5314, 5628, 5730, 5644, 4998, 5844, 5219, 5808, 5846, 5530, + 3687, 527, 4148, 5657, 1035, 1036, 1037, 1038, 4630, 3807, + 2507, 5345, 4398, 5750, 5272, 541, 1047, 328, 4739, 330, + 3813, 5785, 5583, 5593, 5470, 4752, 4050, 5543, 3929, 3983, + 5596, 5637, 3175, 4475, 4089, 3471, 347, 4084, 349, 5562, + 594, 4092, 5814, 86, 86, 5568, 5779, 5570, 5571, 5780, + 5258, 5671, 5546, 5553, 5247, 4499, 5579, 368, 3812, 4395, + 1831, 615, 1191, 5579, 375, 593, 620, 5286, 3111, 1319, + 3107, 5318, 600, 1104, 5597, 5633, 5599, 5118, 2618, 390, + 2305, 1960, 610, 3334, 2440, 3914, 3486, 2726, 3732, 400, + 1280, 2567, 4800, 3161, 5623, 623, 5750, 651, 1277, 1893, + 4123, 5323, 5321, 2836, 415, 2832, 1569, 3520, 1627, 1447, + 5633, 3049, 1479, 3043, 3605, 641, 4651, 4104, 3037, 5787, + 5538, 5644, 5392, 5812, 4679, 5813, 654, 2921, 682, 657, + 1453, 5350, 5106, 3718, 5657, 5651, 5652, 5105, 4988, 3510, + 5127, 5507, 4984, 5027, 672, 2548, 3589, 5104, 3708, 2678, + 86, 677, 5806, 1400, 1646, 2720, 4624, 3201, 4231, 5682, + 4198, 472, 5727, 5686, 5687, 691, 5682, 796, 658, 1972, + 5693, 482, 797, 2411, 1205, 3032, 1207, 1711, 2412, 655, + 655, 110, 1275, 3190, 3191, 5049, 3193, 3194, 2461, 5712, + 5038, 3917, 5842, 5292, 5865, 5904, 5910, 5463, 1821, 3606, + 4147, 972, 2434, 4170, 5727, 2904, 3007, 654, 519, 2230, + 2356, 2986, 654, 2987, 2030, 1655, 1848, 652, 1396, 3825, + 1111, 532, 2963, 5739, 3322, 2613, 5742, 5750, 3121, 5159, + 3833, 1225, 3600, 690, 5888, 17, 4654, 4189, 3037, 86, + 5894, 86, 86, 5911, 5628, 2523, -1, 5770, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 572, -1, -1, -1, -1, 5789, 578, -1, -1, + -1, -1, -1, 5597, -1, -1, 3283, -1, -1, -1, + -1, -1, -1, 5806, -1, -1, -1, -1, -1, 5812, + 5813, -1, -1, -1, -1, -1, -1, 1328, -1, -1, + 1331, 1332, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 5839, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 637, 109, 110, -1, + -1, -1, -1, 644, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5677, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 391, -1, 393, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 5710, -1, 2215, -1, - -1, -1, -1, -1, -1, -1, 416, -1, -1, 2226, - -1, -1, 2229, -1, -1, -1, 5730, -1, -1, -1, - -1, -1, -1, -1, 5738, -1, -1, -1, 438, -1, - -1, 2248, -1, -1, -1, -1, -1, -1, 2255, 449, - 450, 2258, -1, 2260, -1, -1, -1, -1, -1, 2266, - -1, 2268, 2269, -1, -1, 1205, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 5780, -1, 5782, 5783, - -1, 481, -1, -1, -1, 2292, -1, -1, -1, -1, - 490, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2307, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 5818, -1, -1, 2324, -1, -1, - -1, -1, 5826, -1, -1, -1, -1, -1, -1, -1, - -1, 2338, -1, -1, -1, -1, 536, 537, 538, -1, - -1, -1, -1, 5847, 544, 545, 2353, -1, -1, -1, - -1, -1, 5856, -1, -1, -1, -1, -1, -1, -1, - 560, 561, -1, -1, -1, -1, -1, -1, 2375, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 584, 585, 2393, -1, 1328, -1, - -1, 1331, -1, -1, -1, -1, -1, -1, -1, -1, - 5904, -1, -1, 603, -1, -1, -1, -1, -1, -1, - -1, -1, 5916, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2452, 646, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 2465, -1, - 2467, -1, -1, 1403, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1429, - -1, -1, -1, -1, 694, -1, -1, 697, -1, -1, - 700, -1, -1, -1, -1, -1, 1446, -1, -1, -1, - 1450, -1, 1452, -1, -1, -1, -1, -1, -1, -1, - -1, 1461, 1462, 723, -1, -1, -1, 1467, -1, 1469, - 1470, 1471, 1472, 1473, -1, 1475, -1, -1, -1, -1, - -1, -1, 742, -1, -1, -1, 1486, -1, 1488, -1, - 2557, 1491, 1492, -1, 1494, 1495, -1, -1, 1498, 1499, - 1500, -1, -1, -1, -1, 1505, -1, -1, 1508, -1, - -1, -1, -1, -1, -1, -1, 1516, 1517, -1, 1519, - -1, 1521, -1, -1, 1524, 1525, 1526, 1527, 1528, 1529, - 1530, -1, 1532, 1533, 1534, 1535, 1536, -1, -1, 1539, - 1540, -1, -1, 1543, 1544, 1545, -1, -1, -1, -1, - -1, 1551, 1552, 1553, -1, 2622, 1556, 1557, 1558, -1, - 1560, -1, 1562, -1, 1564, -1, -1, -1, 1568, 1569, - 1570, -1, -1, 1573, 1574, 1575, 1576, 1577, -1, 1579, - -1, -1, -1, -1, -1, -1, 1586, -1, -1, -1, - -1, -1, -1, 1593, 1594, 1595, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2682, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1669, - -1, -1, -1, -1, 1674, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1684, -1, -1, -1, -1, -1, - -1, 2758, -1, -1, 2761, -1, -1, -1, -1, -1, - -1, -1, -1, 2770, -1, -1, -1, -1, -1, -1, - -1, 2778, -1, 2780, -1, 2782, -1, 2784, 2785, 2786, - 2787, 2788, 2789, -1, 2791, -1, -1, -1, -1, -1, - -1, -1, 2799, -1, 2801, -1, -1, 2804, 2805, 2806, - 2807, -1, -1, 2810, 2811, -1, -1, 2814, -1, 2816, - -1, 2818, 1752, 2820, -1, -1, -1, 2824, -1, -1, - -1, -1, -1, -1, -1, 2832, -1, 2834, -1, 2836, - 2837, 2838, 2839, 2840, -1, 1775, 2843, 2844, 2845, -1, - 2847, -1, -1, 2850, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2863, -1, -1, -1, - -1, 2868, -1, -1, 2871, -1, 2873, 2874, 2875, -1, - -1, 2878, -1, -1, -1, -1, -1, 2884, -1, -1, - -1, -1, 2889, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 2905, -1, - -1, -1, -1, -1, 2911, -1, -1, 2914, -1, -1, - -1, -1, -1, 2920, -1, -1, -1, 16, 17, -1, - 2927, 2928, 2929, 22, 23, -1, -1, -1, -1, -1, - -1, -1, -1, 32, -1, -1, -1, -1, -1, 2946, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 2976, - -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 90, -1, -1, -1, -1, -1, -1, 3005, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 3021, -1, -1, 3024, 3025, 3026, - -1, -1, -1, -1, 123, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 143, 144, -1, 146, -1, -1, - -1, -1, -1, -1, -1, 154, 155, 156, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 174, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 2033, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 208, - -1, 2051, -1, -1, 2054, -1, -1, -1, -1, -1, - -1, -1, 2062, 2063, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 233, -1, -1, -1, -1, -1, - 239, -1, -1, -1, 3151, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 3165, -1, - -1, -1, -1, -1, -1, 264, 265, 266, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 289, 290, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 2148, 2149, - 2150, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 336, -1, 338, - 339, 3248, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 354, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 3297, -1, 391, -1, 393, -1, -1, -1, 3305, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 2248, -1, - -1, -1, 3319, -1, -1, -1, -1, 416, 2258, -1, - 2260, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 438, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 449, 450, 2292, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 3372, -1, 2307, -1, -1, - -1, -1, -1, -1, -1, 3382, -1, -1, 3385, -1, - -1, -1, 481, -1, 2324, -1, -1, -1, -1, -1, - -1, 490, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3408, 3409, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 2353, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 3432, -1, 3434, -1, 3436, - -1, 3438, -1, -1, -1, 2375, -1, 536, 537, 538, - -1, -1, -1, -1, -1, 544, 545, -1, -1, -1, - -1, -1, -1, 3460, -1, -1, -1, -1, -1, 3466, - -1, 560, 561, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 3481, 3482, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 584, 585, -1, -1, -1, - -1, -1, -1, -1, 3501, -1, -1, -1, -1, 3506, - -1, -1, -1, -1, 603, 3512, -1, -1, -1, -1, - -1, -1, 2452, -1, -1, 3522, -1, 3524, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3559, 3560, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3574, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3588, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 694, -1, -1, 697, -1, - -1, 700, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2557, -1, -1, - -1, 3628, -1, -1, 723, -1, -1, -1, 3635, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 742, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 6, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 17, -1, -1, -1, -1, - -1, -1, 2622, -1, -1, -1, -1, -1, -1, -1, - 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, - -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, - 3717, -1, -1, -1, -1, -1, -1, 3724, -1, -1, - -1, 3728, -1, 65, 66, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2682, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 5, -1, 7, 109, 110, -1, - -1, -1, 114, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 128, -1, -1, -1, - 31, -1, -1, -1, -1, -1, -1, -1, 39, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 2758, -1, - 61, 2761, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 73, -1, -1, -1, -1, -1, 2778, -1, - -1, -1, 2782, -1, 2784, 2785, 2786, 2787, 2788, 2789, - -1, -1, -1, -1, -1, -1, -1, -1, 200, 2799, - -1, 2801, -1, -1, 2804, 2805, 2806, 2807, 109, 110, - 2810, 2811, -1, 114, 2814, -1, 2816, -1, 2818, -1, - 2820, -1, -1, -1, 2824, -1, -1, -1, -1, -1, - -1, -1, 2832, -1, 2834, -1, 2836, -1, 2838, 2839, - 2840, 142, -1, 2843, 2844, 2845, -1, 2847, -1, -1, - 2850, -1, -1, -1, -1, -1, -1, -1, 260, -1, - -1, -1, -1, 2863, -1, -1, -1, -1, -1, -1, - -1, 2871, -1, 2873, 2874, 2875, -1, -1, 2878, -1, - 181, -1, -1, -1, 2884, -1, -1, -1, 189, 2889, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2905, -1, -1, -1, 311, - -1, -1, -1, 214, -1, -1, -1, -1, -1, -1, - 2920, -1, -1, -1, 326, -1, -1, -1, -1, 2929, - -1, -1, -1, 335, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 347, -1, -1, -1, 250, - 251, 252, -1, -1, -1, -1, 358, -1, 4025, 4026, - -1, 4028, -1, -1, -1, -1, -1, -1, -1, -1, - 4037, -1, 4039, -1, 275, 4042, 2976, -1, -1, -1, - 382, -1, -1, -1, -1, -1, -1, -1, 4055, -1, - 4057, -1, 4059, -1, 4061, -1, -1, -1, -1, 300, - -1, -1, -1, -1, -1, 3005, -1, 4074, 4075, -1, - -1, -1, 414, 415, -1, -1, 418, -1, 420, 320, - -1, -1, -1, -1, -1, -1, -1, 328, -1, 330, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 445, 446, -1, -1, 4114, 349, -1, - -1, 453, 454, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 368, 470, -1, - -1, -1, -1, -1, 375, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 390, - 492, -1, -1, -1, -1, -1, -1, -1, -1, 400, - -1, -1, -1, 404, -1, -1, -1, -1, -1, -1, - 411, 513, -1, -1, 415, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 4200, -1, -1, -1, -1, -1, -1, + -1, 5884, -1, 674, -1, 5888, -1, -1, -1, -1, + -1, 5894, 1403, -1, -1, 5898, -1, -1, 689, 690, + -1, 5904, -1, -1, -1, -1, -1, 5910, -1, -1, + -1, 702, -1, -1, -1, -1, -1, -1, 1429, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1440, + 1441, -1, -1, -1, -1, 1446, -1, -1, -1, 1450, + 1451, 1452, -1, -1, -1, -1, -1, -1, -1, -1, + 1461, 1462, -1, -1, -1, -1, 1467, -1, 1469, 1470, + 1471, 1472, 1473, -1, 1475, -1, -1, -1, -1, -1, + -1, 5901, -1, 764, -1, 1486, -1, 1488, -1, -1, + 1491, 1492, -1, 1494, 1495, 1496, -1, 1498, 1499, 1500, + -1, -1, -1, -1, 1505, -1, -1, 1508, 260, -1, + -1, 5901, -1, -1, -1, 1516, 1517, -1, 1519, 1520, + 1521, -1, -1, 1524, 1525, 1526, 1527, 1528, 1529, 1530, + -1, 1532, 1533, 1534, 1535, 1536, 1537, -1, 1539, 1540, + -1, 1542, 1543, 1544, 1545, 1546, 1547, 1548, -1, -1, + 1551, 1552, 1553, 1554, -1, 1556, 1557, 1558, -1, 1560, + -1, 1562, -1, 1564, -1, -1, -1, 1568, 1569, 1570, + -1, -1, 1573, 1574, 1575, 1576, 1577, -1, 1579, -1, + -1, -1, -1, -1, -1, 1586, -1, -1, -1, -1, + -1, -1, 1593, 1594, 1595, 1596, -1, -1, -1, -1, + -1, -1, -1, 1604, 1605, 1606, -1, 1608, 1609, 1610, + 1611, 1612, 1613, -1, 1615, 1616, 1617, 1618, 1619, 1620, + 1621, 1622, -1, -1, -1, 1626, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 401, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 415, -1, 417, -1, -1, 1669, -1, + -1, -1, -1, 1674, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1684, 3661, 3662, 3663, 3664, 3665, -1, + 3667, 3668, 3669, 3670, 3671, 447, 3673, 3674, 3675, 3676, + 3677, 3678, 3679, 3680, 3681, 3682, -1, -1, 3685, 3686, + 462, -1, 5901, -1, 5, -1, 7, 8, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 31, -1, 33, 495, 11, -1, -1, -1, 39, -1, + -1, 1752, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 513, -1, -1, -1, -1, -1, -1, -1, -1, + 61, -1, -1, -1, 1775, 42, -1, -1, -1, 71, + -1, -1, 73, -1, -1, -1, -1, -1, -1, 80, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1809, 3786, + -1, -1, -1, 80, 3791, -1, 83, -1, 109, 110, + 112, -1, -1, 114, -1, 92, -1, -1, -1, -1, + -1, -1, 99, -1, -1, -1, 103, -1, -1, -1, + -1, 593, -1, -1, -1, -1, 113, -1, 600, 116, + -1, 142, -1, 120, -1, 122, -1, 149, 610, -1, + 127, -1, -1, -1, -1, -1, -1, 134, -1, -1, + 137, 623, -1, -1, -1, 142, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, + 181, -1, -1, -1, -1, -1, 163, -1, 189, -1, + -1, 192, 654, -1, -1, 657, -1, -1, -1, 176, + -1, -1, -1, -1, 181, -1, -1, -1, -1, -1, + 672, -1, -1, 214, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 200, -1, -1, 688, -1, -1, -1, + -1, -1, -1, -1, -1, 1946, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 224, -1, 250, + 251, 252, -1, -1, -1, -1, 233, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 275, -1, -1, -1, 255, -1, + 1991, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 275, 300, + -1, -1, -1, -1, 281, 282, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 295, 320, + 297, -1, 2033, 300, -1, -1, -1, 328, -1, 330, + -1, 61, -1, -1, -1, -1, -1, -1, 2049, 2050, + 2051, -1, -1, 2054, -1, -1, -1, -1, 349, -1, + 80, 2062, 2063, -1, -1, 356, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 368, -1, -1, + -1, -1, -1, -1, 375, -1, -1, -1, -1, 109, + 110, -1, -1, -1, 114, -1, -1, -1, -1, 390, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 400, + -1, -1, -1, 404, 405, -1, -1, -1, -1, -1, + 411, -1, -1, -1, 415, -1, -1, -1, -1, -1, + -1, -1, 423, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2148, 2149, 2150, -1, 442, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3151, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4231, 3165, 568, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 189, + -1, -1, -1, -1, 466, 442, -1, 468, -1, -1, -1, 472, -1, -1, -1, -1, -1, -1, -1, -1, - 582, 482, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 593, -1, -1, 596, 597, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 611, - -1, -1, -1, -1, -1, -1, -1, -1, 519, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 532, -1, 534, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 647, 4313, -1, 3248, -1, - -1, -1, 654, 4320, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 4330, -1, -1, -1, -1, -1, -1, - 672, 572, 674, -1, -1, -1, -1, 578, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 482, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 496, 497, -1, 499, 500, 501, + 502, 503, -1, 505, 506, 507, 508, 509, 510, 511, + 512, -1, 514, 515, 516, 2226, -1, -1, 519, -1, + 250, 251, 252, -1, -1, -1, -1, -1, -1, -1, + -1, 532, -1, 534, -1, -1, -1, 2248, -1, -1, + -1, -1, -1, -1, 2255, 275, -1, 2258, -1, 2260, + -1, -1, -1, 4240, -1, 2266, -1, 2268, 2269, -1, + -1, -1, -1, -1, -1, -1, 4253, -1, -1, -1, + 300, 572, -1, -1, -1, -1, -1, 578, -1, -1, + -1, 2292, -1, -1, -1, -1, -1, -1, 7, 8, + -1, -1, -1, -1, -1, -1, 2307, -1, 328, -1, + 330, -1, -1, -1, 605, -1, -1, -1, 27, -1, + 612, 613, 31, 2324, 33, 616, 617, 618, -1, 349, + -1, -1, 41, -1, -1, -1, -1, 2338, -1, -1, + -1, -1, -1, -1, -1, -1, 637, -1, 368, -1, + -1, 2352, 2353, 644, 63, 375, 65, 66, -1, -1, + -1, -1, -1, -1, 73, -1, -1, -1, -1, -1, + 390, -1, -1, -1, 2375, -1, -1, -1, -1, -1, + 400, -1, -1, 674, -1, -1, -1, -1, -1, 98, + -1, -1, -1, -1, -1, 415, -1, -1, 689, 690, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 119, 702, -1, -1, 705, -1, -1, -1, -1, -1, + -1, 130, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 140, 2433, 142, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2452, 472, -1, -1, -1, -1, -1, -1, -1, + 2461, -1, 482, -1, -1, -1, 733, -1, 177, -1, + -1, -1, -1, -1, -1, -1, -1, 768, -1, -1, + 747, -1, 191, 192, -1, -1, -1, -1, -1, -1, + -1, -1, 201, 202, -1, -1, 763, 764, -1, 519, + 767, 768, -1, -1, 213, 214, -1, 216, -1, 218, + -1, -1, 532, -1, 223, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 233, -1, -1, -1, 237, 238, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 3319, - -1, -1, 724, -1, -1, -1, -1, -1, 730, -1, - -1, -1, -1, -1, -1, -1, 637, -1, -1, -1, - -1, -1, -1, 644, -1, -1, -1, -1, 4415, 4416, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3372, 674, -1, -1, -1, -1, -1, -1, - -1, -1, 3382, -1, -1, 3385, -1, -1, 689, 690, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 702, -1, -1, -1, -1, -1, -1, 3408, 3409, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3432, -1, 3434, -1, 3436, -1, 3438, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 4525, -1, - 3460, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 4545, -1, - -1, 3481, 3482, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3512, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 3524, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 4609, -1, 4611, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 4625, 3559, - 3560, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 3574, 4642, 4643, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4661, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 572, -1, -1, -1, 2557, -1, 578, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 277, -1, + 279, -1, 281, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 297, -1, + -1, -1, -1, -1, -1, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 3628, -1, + -1, -1, -1, -1, -1, -1, -1, 637, -1, -1, + -1, 2622, -1, -1, 644, -1, 335, -1, -1, -1, + -1, -1, -1, 342, -1, -1, -1, -1, -1, -1, + 349, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 674, -1, -1, -1, -1, -1, + -1, 370, -1, -1, -1, -1, -1, -1, -1, 689, + 690, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2682, 702, -1, -1, -1, 395, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 407, -1, + 2701, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 426, 2719, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 439, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2742, 2743, 452, -1, -1, 455, -1, 768, 458, + 2751, 2752, 2753, -1, -1, -1, -1, 2758, -1, -1, + 2761, -1, -1, -1, 473, -1, -1, -1, -1, 2770, + -1, -1, -1, -1, -1, -1, -1, 2778, -1, 2780, + -1, 2782, -1, 2784, 2785, 2786, 2787, 2788, 2789, -1, + 2791, -1, -1, -1, -1, -1, -1, -1, 2799, -1, + 2801, -1, -1, 2804, 2805, 2806, 2807, -1, -1, 2810, + 2811, -1, -1, 2814, -1, 2816, -1, 2818, -1, 2820, + -1, -1, -1, 2824, -1, -1, -1, -1, -1, -1, + -1, 2832, -1, 2834, -1, 2836, 2837, 2838, 2839, 2840, + -1, -1, 2843, 2844, 2845, -1, 2847, -1, -1, 2850, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2863, -1, -1, -1, -1, 2868, -1, -1, + 2871, -1, 2873, 2874, 2875, -1, -1, 2878, -1, -1, + 589, -1, -1, 2884, -1, -1, -1, -1, 2889, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2904, 2905, -1, -1, -1, -1, 618, + 2911, -1, 621, 2914, -1, -1, -1, -1, -1, 2920, + -1, -1, 631, -1, -1, -1, 2927, -1, 2929, -1, + 639, -1, -1, 2934, -1, -1, -1, -1, -1, -1, + -1, -1, 651, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 670, -1, -1, 673, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2976, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 705, -1, -1, -1, + 7, 8, -1, -1, 3005, -1, 715, -1, 3009, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 27, -1, 29, -1, 31, -1, 33, -1, -1, -1, + -1, 740, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 3051, -1, -1, -1, -1, 3056, 63, -1, 65, 66, + -1, -1, -1, -1, -1, -1, 73, -1, -1, -1, + -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 92, -1, -1, -1, -1, + -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, + -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 130, -1, -1, -1, 3128, -1, -1, + -1, -1, -1, 140, -1, 142, -1, -1, -1, -1, + 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 3151, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3165, -1, -1, -1, -1, -1, + 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 191, 192, 3187, -1, -1, -1, + -1, -1, -1, -1, 201, 202, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 213, 214, 215, 216, + -1, 218, 3213, 3214, -1, -1, 223, -1, -1, -1, + -1, 3222, -1, -1, -1, -1, 233, -1, -1, -1, + 237, 238, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3247, 3248, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 277, -1, 279, -1, 281, -1, -1, 3278, 3279, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 296, + 297, -1, -1, -1, -1, -1, 3297, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3319, -1, + -1, -1, -1, -1, -1, -1, 333, -1, 335, -1, + -1, 3332, -1, -1, -1, 342, -1, -1, -1, -1, + -1, -1, 349, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 370, -1, -1, -1, -1, -1, -1, + -1, 3372, -1, -1, -1, -1, -1, -1, -1, -1, + 3381, 3382, -1, -1, 3385, -1, -1, -1, 395, -1, + 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 407, -1, -1, -1, -1, -1, -1, 3408, 3409, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 426, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3432, 439, 3434, -1, 3436, -1, 3438, 109, 110, + -1, -1, -1, 114, -1, 452, -1, -1, 455, -1, + -1, 458, -1, -1, -1, -1, -1, -1, -1, 3460, + -1, -1, -1, -1, -1, -1, 473, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 3481, 3482, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 3501, -1, -1, -1, -1, 3506, -1, -1, -1, -1, + -1, 3512, -1, -1, -1, -1, -1, -1, 189, -1, + -1, -1, -1, -1, 3525, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 7, 8, -1, 5522, 5523, -1, 5525, 5526, + 5527, 5528, -1, -1, -1, -1, -1, -1, -1, 3560, + 3561, -1, 27, -1, 29, -1, 31, 5544, 33, -1, + -1, -1, -1, -1, 3575, -1, 41, -1, -1, 250, + 251, 252, 589, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 63, -1, + 65, 66, -1, -1, 275, -1, -1, -1, 73, -1, + -1, 618, -1, -1, 621, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 631, -1, -1, 92, 3629, 300, + -1, -1, 639, 98, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 651, -1, 111, -1, -1, -1, + -1, -1, -1, -1, 119, -1, -1, 328, -1, 330, + -1, -1, -1, 670, -1, 130, 673, -1, -1, -1, + -1, -1, -1, 5650, -1, 140, 5653, 142, 349, -1, + -1, -1, 147, -1, 5661, -1, -1, -1, -1, -1, + -1, 3692, -1, -1, -1, -1, 3697, 368, 705, -1, + -1, -1, -1, -1, 375, -1, -1, -1, 715, -1, + -1, -1, 177, -1, -1, -1, -1, 3718, -1, 390, + -1, -1, -1, -1, -1, -1, 191, 192, 3729, 400, + -1, -1, -1, 740, -1, -1, 201, 202, -1, -1, + -1, -1, -1, -1, 415, -1, -1, -1, 213, 214, + 215, 216, -1, 218, -1, -1, -1, -1, 223, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 233, -1, + -1, -1, 237, 238, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 472, -1, -1, -1, -1, 3807, -1, -1, -1, + -1, 482, 277, -1, 279, -1, 281, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 296, 297, -1, -1, -1, -1, -1, -1, 304, + -1, -1, -1, 3844, 32, -1, 34, -1, 519, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 532, -1, -1, -1, -1, -1, -1, 333, -1, + 335, -1, -1, 61, -1, -1, -1, 342, 3879, -1, + -1, -1, -1, -1, 349, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 572, -1, -1, -1, 370, -1, 578, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 109, 110, -1, -1, -1, 114, -1, -1, -1, + 395, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 407, -1, -1, -1, -1, -1, 136, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 426, -1, -1, -1, -1, 637, -1, -1, -1, + -1, -1, -1, 644, 439, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 452, -1, -1, + 455, 3992, 3993, 458, -1, -1, -1, -1, -1, -1, + -1, 189, -1, 674, -1, -1, -1, -1, 473, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 689, 690, + -1, -1, -1, -1, -1, 4026, 4027, -1, 4029, -1, + -1, 702, -1, -1, -1, -1, -1, 4038, -1, 4040, + -1, -1, 4043, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4056, -1, 4058, -1, 4060, + -1, 4062, 250, 251, 252, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4075, 4076, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 275, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 4777, -1, -1, -1, -1, -1, -1, 3717, -1, -1, - -1, -1, -1, 4790, -1, -1, 4793, -1, 3728, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 300, -1, 4115, 32, -1, 34, -1, -1, + -1, -1, -1, -1, 589, -1, -1, -1, -1, -1, + 16, 17, -1, -1, -1, -1, 22, 23, -1, -1, + 328, -1, 330, -1, 61, -1, 32, -1, -1, -1, + -1, -1, -1, 618, -1, -1, 621, -1, -1, 347, + -1, 349, -1, -1, -1, -1, 631, -1, -1, 4170, + -1, -1, 58, -1, 639, -1, -1, -1, -1, -1, + 368, -1, -1, -1, 70, -1, 651, 375, -1, -1, + -1, -1, 109, 110, -1, -1, -1, 114, -1, 4200, + -1, -1, 390, -1, 90, 670, -1, -1, 673, -1, + -1, -1, 400, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 415, -1, -1, + 4231, -1, -1, -1, -1, -1, -1, 123, -1, -1, + 705, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 715, -1, -1, -1, -1, -1, -1, 143, 144, -1, + 146, -1, -1, -1, -1, -1, -1, -1, 154, 155, + 156, -1, 189, -1, -1, 740, -1, -1, -1, -1, + -1, -1, -1, -1, 472, -1, -1, -1, 174, -1, + -1, 4292, -1, -1, 482, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4313, -1, -1, -1, -1, -1, -1, 4320, + -1, -1, 208, -1, -1, -1, -1, -1, -1, 4330, + -1, 519, -1, 250, 251, 252, -1, -1, -1, -1, + -1, -1, -1, -1, 532, -1, -1, 233, -1, -1, + -1, -1, -1, 239, -1, -1, -1, -1, 275, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 264, 265, + 266, -1, -1, 300, 572, -1, -1, -1, -1, -1, + 578, -1, -1, -1, 4395, -1, -1, -1, -1, -1, + -1, -1, -1, 289, 290, -1, -1, -1, -1, -1, + -1, 328, -1, 330, 4415, 4416, -1, -1, -1, -1, + 16, 17, -1, -1, -1, -1, 22, 23, -1, -1, + 347, -1, 349, -1, -1, -1, 32, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 637, + 336, 368, 338, 339, 4455, -1, 644, -1, 375, -1, + -1, -1, 58, -1, -1, -1, -1, -1, 354, -1, + -1, -1, -1, 390, 70, -1, -1, -1, -1, -1, + -1, -1, -1, 400, -1, -1, 674, -1, -1, -1, + -1, -1, -1, -1, 90, -1, -1, -1, 415, -1, + -1, 689, 690, -1, -1, 391, -1, 393, -1, -1, + -1, -1, -1, 4514, 702, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4526, -1, 123, -1, -1, + 416, 4532, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4546, -1, 143, 144, -1, + 146, -1, 438, -1, -1, 472, -1, -1, 154, 155, + 156, -1, -1, 449, 450, 482, -1, -1, -1, -1, + -1, -1, -1, -1, 762, -1, -1, -1, 174, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 481, -1, -1, -1, -1, + -1, -1, 519, -1, 490, -1, -1, -1, -1, 4610, + -1, 4612, 208, -1, -1, 532, -1, -1, -1, -1, + -1, -1, -1, -1, 4625, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 233, -1, -1, + -1, 4642, 4643, 239, -1, -1, -1, -1, -1, -1, + 536, 537, 538, -1, -1, 572, -1, -1, 544, 545, + 4661, 578, -1, -1, -1, -1, -1, -1, 264, 265, + 266, -1, -1, -1, 560, 561, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 289, 290, -1, -1, -1, 584, 585, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 603, -1, -1, + 637, -1, -1, -1, -1, -1, -1, 644, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 336, -1, 338, 339, -1, -1, -1, -1, -1, 635, + -1, -1, -1, -1, -1, -1, -1, 674, 354, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 689, 690, -1, -1, 4777, -1, -1, -1, + -1, -1, -1, -1, -1, 702, -1, -1, -1, -1, + -1, -1, 4793, -1, -1, 391, -1, 393, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, + -1, 697, -1, -1, 700, -1, -1, -1, -1, -1, + 416, 707, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 723, -1, -1, + -1, -1, 438, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 449, 450, -1, 742, -1, -1, -1, + -1, -1, 4863, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4878, -1, -1, + -1, -1, -1, -1, -1, 481, -1, -1, -1, -1, + -1, -1, -1, -1, 490, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 4910, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 16, 17, -1, -1, -1, -1, 22, 23, -1, + -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, + 536, 537, 538, -1, -1, -1, -1, -1, 544, 545, + -1, -1, -1, -1, 4955, -1, -1, -1, -1, -1, + -1, -1, -1, 58, 560, 561, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, + -1, -1, -1, 4984, -1, -1, -1, -1, 584, 585, + -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 603, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, + -1, -1, -1, -1, 636, -1, -1, -1, -1, 635, + -1, -1, -1, -1, -1, -1, -1, -1, 143, 144, + -1, 146, -1, -1, 5055, -1, 5057, -1, 660, 154, + 155, 156, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 674, -1, -1, -1, -1, -1, -1, 174, + -1, -1, 5083, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 694, -1, + -1, 697, -1, -1, 700, -1, -1, -1, -1, -1, + -1, 707, -1, 208, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 723, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 233, -1, + -1, -1, -1, -1, 239, -1, 742, -1, -1, -1, + -1, 5152, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 264, + 265, 266, -1, -1, -1, -1, 778, -1, -1, -1, + 5181, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 5191, -1, -1, -1, 289, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 5219, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 5229, -1, + 5231, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 336, -1, 338, 339, -1, 848, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 354, + -1, -1, -1, -1, -1, -1, 5267, -1, -1, 5270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 5286, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 391, -1, 393, 901, + -1, -1, -1, -1, 906, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 5321, 416, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 936, -1, -1, 939, -1, -1, + -1, -1, -1, 438, 946, -1, -1, -1, -1, 5350, + -1, -1, -1, -1, 449, 450, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 984, -1, -1, -1, 481, -1, -1, -1, + -1, -1, -1, -1, -1, 490, 5397, -1, -1, 5400, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 5424, -1, -1, -1, -1, -1, -1, + -1, -1, 5433, 1035, 1036, 1037, 1038, -1, -1, 1041, + 5441, 536, 537, 538, -1, 1047, -1, -1, -1, 544, + 545, -1, 636, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 560, 561, -1, -1, 5470, + -1, -1, -1, -1, -1, 5476, 660, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 584, + 585, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 603, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 4952, -1, -1, 4955, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 4984, -1, -1, + 5541, -1, -1, -1, -1, 5546, -1, -1, -1, -1, + -1, 646, 5553, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 5583, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 778, 5596, -1, -1, -1, 694, + -1, -1, 697, 1205, -1, 700, 1208, -1, -1, -1, + -1, -1, -1, -1, 5615, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 723, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 848, -1, -1, -1, -1, -1, + 5671, -1, -1, -1, 5675, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5708, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 5058, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 906, -1, -1, -1, 1328, 5728, -1, 1331, + -1, -1, -1, -1, 5735, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 936, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 946, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 5777, -1, 5779, 5780, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 4025, 4026, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 4037, -1, 4039, - -1, -1, 4042, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 4055, -1, 4057, -1, 4059, - -1, 4061, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4074, 4075, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1403, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 5815, -1, -1, -1, -1, -1, + -1, -1, 5823, -1, -1, -1, -1, 1429, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1440, 1441, + -1, -1, -1, 5844, 1446, -1, -1, -1, 1450, 1451, + 1452, -1, 5853, -1, 1038, -1, -1, -1, -1, 1461, + 1462, 1463, -1, -1, -1, 1467, -1, 1469, 1470, 1471, + 1472, 1473, -1, 1475, -1, -1, 1478, 1479, -1, -1, + -1, -1, -1, -1, 1486, -1, 1488, -1, -1, 1491, + 1492, -1, 1494, 1495, 1496, -1, 1498, 1499, 1500, -1, + 5901, -1, -1, 1505, -1, -1, 1508, -1, -1, -1, + -1, -1, 5913, -1, 1516, 1517, -1, 1519, 1520, 1521, + -1, -1, 1524, 1525, 1526, 1527, 1528, 1529, 1530, -1, + 1532, 1533, 1534, 1535, 1536, 1537, -1, 1539, 1540, -1, + 1542, 1543, 1544, 1545, 1546, 1547, 1548, -1, -1, 1551, + 1552, 1553, 1554, -1, 1556, 1557, 1558, -1, 1560, -1, + 1562, -1, 1564, -1, -1, -1, 1568, 1569, 1570, -1, + -1, 1573, 1574, 1575, 1576, 1577, -1, 1579, -1, -1, + -1, -1, -1, -1, 1586, -1, -1, -1, -1, -1, + -1, 1593, 1594, 1595, 1596, -1, -1, -1, -1, -1, + -1, -1, 1604, 1605, 1606, -1, 1608, 1609, 1610, 1611, + 1612, 1613, -1, 1615, 1616, 1617, 1618, 1619, 1620, 1621, + 1622, 1205, -1, -1, 1626, -1, -1, -1, -1, 1631, + -1, -1, -1, -1, -1, 1637, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1669, -1, -1, + -1, -1, 1674, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1684, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 5192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1715, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 5230, -1, 5232, -1, -1, -1, -1, + -1, -1, -1, -1, 1328, -1, -1, 1331, -1, -1, + 1752, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1775, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1800, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 4200, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1403, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4231, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1429, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1446, -1, -1, -1, 1450, -1, 1452, -1, + -1, -1, -1, -1, -1, -1, -1, 1461, 1462, -1, + -1, -1, -1, 1467, -1, 1469, 1470, 1471, 1472, 1473, + -1, 1475, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1486, -1, 1488, -1, -1, 1491, 1492, -1, + 1494, 1495, -1, -1, 1498, 1499, 1500, -1, -1, -1, + -1, 1505, -1, -1, 1508, -1, -1, -1, -1, -1, + -1, -1, 1516, 1517, -1, 1519, -1, 1521, -1, -1, + 1524, 1525, 1526, 1527, 1528, 1529, 1530, -1, 1532, 1533, + 1534, 1535, 1536, -1, -1, 1539, 1540, -1, -1, 1543, + 1544, 1545, -1, -1, -1, -1, -1, 1551, 1552, 1553, + -1, -1, 1556, 1557, 1558, -1, 1560, -1, 1562, -1, + 1564, -1, -1, -1, 1568, 1569, 1570, -1, -1, 1573, + 1574, 1575, 1576, 1577, -1, 1579, -1, -1, -1, -1, + -1, -1, 1586, -1, -1, -1, -1, -1, -1, 1593, + 1594, 1595, 16, 17, -1, -1, -1, -1, 22, 23, + -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, + -1, 2033, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2051, + -1, -1, 2054, -1, 58, -1, -1, -1, -1, -1, + 2062, 2063, -1, -1, -1, -1, 70, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1669, 90, -1, -1, -1, + 1674, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1684, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, + -1, 2123, 2124, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 143, + 144, -1, 146, -1, -1, -1, 2148, 2149, 2150, -1, + 154, 155, 156, -1, -1, -1, -1, -1, -1, -1, + 2162, -1, -1, -1, -1, -1, -1, -1, 1752, -1, + 174, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1775, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 208, -1, -1, -1, -1, -1, + -1, -1, -1, 2215, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2226, -1, -1, 2229, -1, 233, + -1, -1, -1, -1, -1, 239, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2248, -1, -1, -1, + -1, -1, -1, 2255, -1, -1, 2258, -1, 2260, -1, + 264, 265, 266, -1, 2266, -1, 2268, 2269, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 289, 290, -1, -1, -1, + 2292, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2307, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2324, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 336, -1, 338, 339, 2338, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 354, 2353, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2375, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 391, -1, 393, + -1, 2393, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 416, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 438, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 449, 450, -1, -1, 2033, + 2452, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2465, -1, 2467, -1, 2051, -1, -1, + 2054, -1, -1, -1, -1, -1, -1, 481, 2062, 2063, + -1, -1, -1, -1, -1, -1, 490, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 536, 537, 538, -1, -1, -1, -1, -1, + 544, 545, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2557, 560, 561, -1, -1, + -1, -1, -1, -1, 2148, 2149, 2150, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 584, 585, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 603, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2622, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2248, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2258, -1, 2260, -1, -1, -1, + 2682, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 694, -1, -1, 697, -1, -1, 700, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2292, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 723, + -1, -1, -1, 2307, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 742, -1, + 2324, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2758, -1, -1, 2761, + -1, -1, -1, -1, -1, -1, -1, -1, 2770, 2353, + -1, -1, -1, -1, -1, -1, 2778, -1, 2780, -1, + 2782, -1, 2784, 2785, 2786, 2787, 2788, 2789, -1, 2791, + -1, 2375, -1, -1, -1, -1, -1, 2799, -1, 2801, + -1, -1, 2804, 2805, 2806, 2807, -1, -1, 2810, 2811, + -1, -1, 2814, -1, 2816, -1, 2818, -1, 2820, -1, + -1, -1, 2824, -1, -1, -1, -1, -1, -1, -1, + 2832, -1, 2834, -1, 2836, 2837, 2838, 2839, 2840, -1, + -1, 2843, 2844, 2845, -1, 2847, -1, -1, 2850, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2863, -1, -1, -1, -1, 2868, -1, 2452, 2871, + -1, 2873, 2874, 2875, -1, -1, 2878, -1, -1, -1, + -1, -1, 2884, -1, -1, -1, -1, 2889, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2905, -1, -1, -1, -1, -1, 2911, + -1, -1, 2914, -1, -1, -1, -1, -1, 2920, -1, + -1, -1, -1, -1, -1, 2927, 2928, 2929, -1, -1, + -1, -1, 2934, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2946, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2557, 2976, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3005, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 6, -1, -1, -1, -1, 3021, + -1, -1, 3024, 3025, 3026, 17, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2622, -1, + 32, -1, -1, -1, -1, -1, -1, -1, 40, 41, + -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 65, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2682, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 5354, 5355, -1, + -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, + -1, -1, 114, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 128, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3151, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 5370, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 4313, -1, -1, -1, -1, -1, -1, - 4320, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 4330, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3165, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2758, -1, -1, 2761, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2778, -1, -1, -1, 2782, -1, + 2784, 2785, 2786, 2787, 2788, 2789, -1, -1, 200, -1, + -1, -1, -1, -1, -1, 2799, -1, 2801, -1, -1, + 2804, 2805, 2806, 2807, -1, -1, 2810, 2811, -1, -1, + 2814, -1, 2816, -1, 2818, -1, 2820, -1, -1, -1, + 2824, -1, -1, -1, -1, -1, 3248, -1, 2832, -1, + 2834, -1, 2836, -1, 2838, 2839, 2840, -1, -1, 2843, + 2844, 2845, -1, 2847, -1, -1, 2850, -1, 260, -1, + -1, -1, -1, 5, -1, 7, -1, -1, -1, 2863, + -1, -1, -1, -1, -1, -1, -1, 2871, -1, 2873, + 2874, 2875, -1, -1, 2878, 3297, -1, -1, -1, 31, + 2884, -1, -1, 3305, -1, 2889, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3319, -1, 311, + -1, 2905, -1, -1, -1, -1, -1, -1, -1, 61, + -1, -1, -1, -1, 326, -1, 2920, -1, -1, -1, + -1, 73, -1, 335, -1, 2929, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 347, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 358, -1, -1, -1, + 3372, -1, -1, -1, -1, -1, -1, 109, 110, -1, + 3382, -1, 114, 3385, -1, -1, -1, -1, -1, -1, + 382, -1, 2976, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3408, 3409, -1, -1, + 142, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3005, 414, 415, -1, -1, 418, -1, 420, -1, + 3432, -1, 3434, -1, 3436, -1, 3438, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 181, + -1, -1, -1, 445, 446, -1, -1, 189, 3460, -1, + -1, 453, 454, -1, 3466, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 470, 3481, + 3482, -1, 214, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3501, + 492, -1, -1, -1, 3506, -1, -1, -1, -1, -1, + 3512, -1, -1, -1, -1, -1, -1, -1, 250, 251, + 252, 513, -1, 3525, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 275, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3560, 3561, + -1, -1, -1, -1, -1, -1, -1, 3151, 300, -1, + -1, -1, -1, 3575, -1, -1, 568, -1, -1, -1, + -1, 3165, -1, -1, -1, -1, -1, 3589, 320, -1, + 582, -1, -1, -1, -1, -1, 328, -1, 330, -1, + -1, 593, -1, -1, 596, 597, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 349, -1, 611, + -1, -1, -1, -1, -1, -1, -1, 3629, -1, -1, + -1, -1, -1, -1, 3636, -1, 368, -1, -1, -1, + -1, -1, -1, 375, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 647, -1, -1, 390, -1, + -1, -1, 654, -1, 3248, -1, -1, -1, 400, -1, + -1, -1, 404, -1, -1, -1, -1, -1, -1, 411, + 672, -1, 674, 415, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 5434, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 442, -1, -1, -1, -1, -1, 3718, -1, -1, -1, + -1, -1, -1, 3725, -1, -1, -1, 3729, -1, -1, + -1, -1, 724, -1, -1, 3319, -1, -1, 730, -1, + 472, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 482, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 5471, -1, -1, -1, -1, -1, - 5477, -1, -1, -1, -1, 4415, 4416, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 519, 3372, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3382, -1, + 532, 3385, 534, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3408, 3409, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 572, -1, -1, -1, -1, -1, 578, -1, 3432, -1, + 3434, -1, 3436, -1, 3438, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3481, 3482, -1, + -1, -1, -1, -1, -1, 637, -1, -1, -1, -1, + -1, -1, 644, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3525, 674, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 689, 690, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 702, -1, -1, -1, -1, -1, 3560, 3561, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3575, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 5584, -1, -1, - -1, -1, -1, -1, -1, 4525, -1, -1, -1, -1, + -1, -1, -1, -1, 4026, 4027, -1, 4029, -1, -1, + -1, -1, -1, -1, -1, -1, 4038, -1, 4040, -1, + -1, 4043, -1, -1, -1, 3629, -1, -1, -1, -1, + -1, -1, -1, -1, 4056, -1, 4058, -1, 4060, -1, + 4062, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4075, 4076, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 4545, -1, -1, -1, 5616, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4115, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3718, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3729, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 4609, - -1, 4611, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 4625, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 4642, 4643, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4661, -1, 5730, -1, -1, -1, -1, -1, -1, - -1, 5738, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 4200, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 4231, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -15414,64 +15380,84 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 4777, -1, -1, - 5847, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 4793, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4313, -1, -1, -1, -1, -1, -1, 4320, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 4330, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 5916, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4415, 4416, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4026, 4027, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4038, -1, 4040, -1, -1, 4043, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4056, -1, 4058, -1, 4060, -1, 4062, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4075, 4076, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 4955, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4526, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4984, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4546, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 4610, -1, + 4612, -1, -1, -1, -1, -1, 4200, -1, -1, -1, + -1, -1, -1, 4625, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 5058, -1, + 4642, 4643, -1, -1, -1, -1, -1, 4231, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 4661, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 4313, + -1, -1, -1, -1, -1, -1, 4320, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4330, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4777, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 4790, -1, + -1, 4793, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4415, 4416, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 5192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 5230, -1, 5232, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4526, -1, -1, -1, -1, -1, -1, -1, + 4952, -1, -1, 4955, -1, -1, -1, -1, -1, -1, + -1, -1, 4546, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4984, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4610, -1, 4612, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4625, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 5057, -1, -1, 4642, 4643, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4661, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -15482,1675 +15468,36 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5191, + -1, -1, -1, 4777, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 4793, + -1, -1, -1, -1, -1, -1, -1, 5219, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5229, -1, 5231, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 5477, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 6, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 17, 18, 19, 20, 21, -1, - -1, -1, -1, -1, -1, -1, 29, 30, -1, 32, - -1, -1, -1, -1, -1, -1, 39, 40, -1, -1, - 43, 44, 45, 46, -1, 48, 49, -1, 51, 52, - -1, -1, -1, -1, 57, -1, -1, -1, 61, -1, - -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 84, 85, 86, -1, 88, 89, -1, -1, -1, - -1, -1, -1, -1, 5584, -1, -1, 100, 101, 102, - -1, 104, 105, -1, -1, -1, 109, 110, 111, -1, - -1, -1, -1, -1, -1, -1, 119, -1, 121, -1, - -1, -1, -1, -1, -1, -1, 5616, -1, -1, -1, - -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 145, -1, -1, -1, -1, 150, 151, -1, - 153, -1, -1, -1, -1, -1, 159, -1, 161, -1, - -1, 164, -1, -1, 167, 168, 169, -1, 171, 172, - 173, -1, 175, 176, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 190, -1, -1, - -1, 194, 195, 196, 197, -1, -1, -1, -1, -1, - -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 215, 216, -1, -1, -1, -1, -1, -1, - -1, 224, -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 5730, -1, -1, -1, 247, -1, -1, -1, -1, -1, - 253, 254, -1, 256, 257, 258, -1, -1, -1, 262, - -1, -1, -1, -1, -1, -1, -1, 270, 271, 272, - 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 283, 284, 285, -1, -1, -1, -1, -1, 291, -1, - 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, -1, 5916, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, - 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, - 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, - 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, - 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, - 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, - 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, - 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, - 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, - 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, - 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, - 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, - 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, - 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, - 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, - 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, - 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, - 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 752, - 753, -1, -1, -1, -1, 758, -1, 6, -1, 762, - -1, -1, 765, 766, -1, -1, 769, 770, 17, 18, - 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, - 29, 30, -1, 32, -1, -1, -1, -1, -1, -1, - 39, 40, -1, -1, 43, 44, 45, 46, -1, 48, - 49, -1, 51, 52, -1, -1, -1, -1, 57, -1, - -1, -1, 61, -1, -1, 64, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 84, 85, 86, -1, 88, - 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 100, 101, 102, -1, 104, 105, -1, -1, -1, - 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, - 119, -1, 121, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 145, -1, -1, -1, - -1, 150, 151, -1, 153, -1, -1, -1, -1, -1, - 159, -1, 161, -1, -1, 164, -1, -1, 167, -1, - 169, -1, 171, 172, 173, -1, 175, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 190, -1, -1, -1, 194, 195, 196, 197, -1, - -1, -1, -1, -1, -1, 204, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 215, 216, -1, -1, - -1, -1, -1, -1, -1, 224, -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, - -1, -1, -1, -1, 253, 254, -1, 256, 257, 258, - -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, - -1, 270, 271, 272, 273, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 283, 284, 285, -1, -1, -1, - -1, -1, 291, -1, 293, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, - -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, - 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, - 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, - 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, - 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, - 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, - 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, - 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, - 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, - 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, - 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, - 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, - 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, - 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 752, 753, -1, -1, -1, -1, 758, - -1, -1, -1, 762, -1, -1, 765, 766, -1, -1, - 769, 770, 17, 18, 19, 20, 21, -1, -1, -1, - 25, -1, -1, -1, 29, 30, -1, 32, -1, -1, - -1, -1, -1, -1, 39, 40, -1, -1, 43, 44, - 45, 46, -1, 48, 49, -1, 51, 52, -1, -1, - -1, -1, 57, -1, -1, -1, 61, -1, -1, 64, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, - 85, 86, -1, 88, 89, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 100, 101, 102, -1, 104, - 105, -1, -1, -1, 109, 110, 111, -1, -1, -1, - -1, -1, -1, -1, 119, -1, 121, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 132, -1, 134, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 145, -1, -1, -1, -1, 150, 151, -1, 153, -1, - -1, -1, -1, -1, 159, -1, 161, -1, -1, 164, - -1, -1, 167, 168, 169, -1, 171, 172, 173, -1, - 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 190, -1, -1, -1, 194, - 195, 196, 197, -1, -1, -1, -1, -1, -1, 204, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 215, 216, -1, -1, -1, -1, -1, -1, -1, 224, - -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 247, -1, -1, -1, -1, -1, 253, 254, - -1, 256, 257, 258, -1, -1, -1, 262, -1, -1, - -1, -1, -1, 268, -1, 270, 271, 272, 273, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 283, 284, - 285, -1, -1, -1, -1, -1, 291, -1, 293, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, -1, 739, 740, 741, 742, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 752, 753, -1, - -1, -1, -1, 758, -1, -1, -1, 762, -1, -1, - 765, 766, -1, -1, 769, 770, 17, 18, 19, 20, - 21, -1, -1, -1, -1, -1, -1, -1, 29, 30, - -1, 32, -1, -1, -1, -1, -1, -1, 39, 40, - -1, -1, 43, 44, 45, 46, -1, 48, 49, -1, - 51, 52, -1, -1, -1, -1, 57, -1, -1, -1, - 61, -1, -1, 64, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 84, 85, 86, -1, 88, 89, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, - 101, 102, -1, 104, 105, -1, -1, -1, 109, 110, - 111, -1, -1, -1, -1, -1, -1, -1, 119, -1, - 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 145, -1, -1, -1, -1, 150, - 151, -1, 153, -1, -1, -1, -1, -1, 159, -1, - 161, -1, -1, 164, -1, -1, 167, 168, 169, -1, - 171, 172, 173, -1, 175, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 190, - -1, -1, -1, 194, 195, 196, 197, -1, -1, -1, - -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 215, 216, -1, -1, -1, -1, - -1, -1, -1, 224, -1, -1, 227, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 247, -1, -1, -1, - -1, -1, 253, 254, -1, 256, 257, 258, -1, -1, - -1, 262, -1, -1, -1, -1, -1, -1, -1, 270, - 271, 272, 273, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 283, 284, 285, -1, -1, -1, -1, -1, - 291, -1, 293, 294, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, - 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, - 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, - 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, - 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, - 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, - 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, - 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, - 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, - 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, - 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, - 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, - 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, - 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, - 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, - 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 752, 753, -1, -1, -1, -1, 758, -1, -1, - -1, 762, -1, -1, 765, 766, -1, -1, 769, 770, - 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, - -1, -1, 29, 30, -1, 32, -1, -1, -1, -1, - -1, -1, 39, 40, -1, -1, 43, 44, 45, 46, - -1, 48, 49, -1, 51, 52, -1, -1, -1, -1, - 57, -1, -1, -1, 61, -1, -1, 64, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, - -1, 88, 89, -1, -1, -1, -1, 94, -1, -1, - -1, -1, -1, 100, 101, 102, -1, 104, 105, -1, - -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, - -1, -1, 119, -1, 121, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 145, -1, - -1, -1, -1, 150, 151, -1, 153, -1, -1, -1, - -1, -1, 159, -1, 161, -1, -1, 164, -1, -1, - 167, 168, 169, -1, 171, 172, 173, -1, 175, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 190, -1, -1, -1, 194, 195, 196, - 197, -1, -1, -1, -1, -1, -1, 204, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 215, 216, - -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, - 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 247, -1, -1, -1, -1, -1, 253, 254, -1, 256, - 257, 258, -1, -1, -1, 262, -1, -1, -1, -1, - -1, -1, -1, 270, 271, 272, 273, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 283, 284, 285, -1, - -1, -1, -1, -1, 291, -1, 293, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, - 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, - 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, - 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, - 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, - 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, - 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, - 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, - 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, - 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, - 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, - 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, - 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, - 737, -1, 739, 740, 741, 742, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 752, 753, -1, -1, -1, - -1, 758, -1, -1, -1, 762, -1, -1, 765, 766, - -1, -1, 769, 770, 17, 18, 19, 20, 21, -1, - -1, -1, -1, -1, -1, -1, 29, 30, -1, 32, - -1, -1, -1, -1, -1, -1, 39, 40, -1, -1, - 43, 44, 45, 46, -1, 48, 49, -1, 51, 52, - -1, -1, -1, -1, 57, -1, -1, -1, 61, -1, - -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 84, 85, 86, -1, 88, 89, -1, -1, -1, - -1, 94, -1, -1, -1, -1, -1, 100, 101, 102, - -1, 104, 105, -1, -1, -1, 109, 110, 111, -1, - -1, -1, -1, -1, -1, -1, 119, -1, 121, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 145, -1, -1, -1, -1, 150, 151, -1, - 153, -1, -1, -1, -1, -1, 159, -1, 161, -1, - -1, 164, -1, -1, 167, 168, 169, -1, 171, 172, - 173, -1, 175, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 190, -1, -1, - -1, 194, 195, 196, 197, -1, -1, -1, -1, -1, - -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 215, 216, -1, -1, -1, -1, -1, -1, - -1, 224, -1, -1, 227, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 247, -1, -1, -1, -1, -1, - 253, 254, -1, 256, 257, 258, -1, -1, -1, 262, - -1, -1, -1, -1, -1, -1, -1, 270, 271, 272, - 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 283, 284, 285, -1, -1, -1, -1, -1, 291, -1, - 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, - 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, - 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, - 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, - 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, - 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, - 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, - 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, - 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, - 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, - 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, - 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, - 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, - 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, - 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, - 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, - 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, - 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 752, - 753, -1, -1, -1, -1, 758, -1, -1, -1, 762, - -1, -1, 765, 766, -1, -1, 769, 770, 17, 18, - 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, - 29, 30, -1, 32, -1, -1, -1, -1, -1, -1, - 39, 40, -1, -1, 43, 44, 45, 46, -1, 48, - 49, -1, 51, 52, -1, -1, -1, -1, 57, -1, - -1, -1, 61, -1, -1, 64, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 84, 85, 86, -1, 88, - 89, -1, -1, -1, -1, 94, -1, -1, -1, -1, - -1, 100, 101, 102, -1, 104, 105, -1, -1, -1, - 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, - 119, -1, 121, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 145, -1, -1, -1, - -1, 150, 151, -1, 153, -1, -1, -1, -1, -1, - 159, -1, 161, -1, -1, 164, -1, -1, 167, 168, - 169, -1, 171, 172, 173, -1, 175, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 190, -1, -1, -1, 194, 195, 196, 197, -1, - -1, -1, -1, -1, -1, 204, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 215, 216, -1, -1, - -1, -1, -1, -1, -1, 224, -1, -1, 227, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, - -1, -1, -1, -1, 253, 254, -1, 256, 257, 258, - -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, - -1, 270, 271, 272, 273, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 283, 284, 285, -1, -1, -1, - -1, -1, 291, -1, 293, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, - -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, - 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, - 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, - 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, - 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, - 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, - 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, - 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, - 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, - 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, - 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, - 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, - 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, - 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 752, 753, -1, -1, -1, -1, 758, - -1, -1, -1, 762, -1, -1, 765, 766, -1, -1, - 769, 770, 17, 18, 19, 20, 21, -1, -1, -1, - -1, -1, -1, -1, 29, 30, -1, 32, -1, -1, - -1, -1, -1, -1, 39, 40, -1, -1, 43, 44, - 45, 46, -1, 48, 49, -1, 51, 52, -1, -1, - -1, -1, 57, -1, -1, -1, 61, -1, -1, 64, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, - 85, 86, -1, 88, 89, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 100, 101, 102, -1, 104, - 105, -1, -1, -1, 109, 110, 111, -1, 113, -1, - -1, -1, -1, -1, 119, -1, 121, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 145, -1, -1, -1, -1, 150, 151, -1, 153, -1, - -1, -1, -1, -1, 159, -1, 161, -1, -1, 164, - -1, -1, 167, 168, 169, -1, 171, 172, 173, -1, - 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 190, -1, -1, -1, 194, - 195, 196, 197, -1, -1, -1, -1, -1, -1, 204, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 215, 216, -1, -1, -1, -1, -1, -1, -1, 224, - -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 247, -1, -1, -1, -1, -1, 253, 254, - -1, 256, 257, 258, -1, -1, -1, 262, -1, -1, - -1, -1, -1, -1, -1, 270, 271, 272, 273, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 283, 284, - 285, -1, -1, -1, -1, -1, 291, -1, 293, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, -1, 739, 740, 741, 742, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 752, 753, -1, - -1, -1, -1, 758, -1, -1, -1, 762, -1, -1, - 765, 766, -1, -1, 769, 770, 17, 18, 19, 20, - 21, -1, -1, -1, -1, -1, -1, -1, 29, 30, - -1, 32, -1, -1, -1, -1, -1, -1, 39, 40, - -1, -1, 43, 44, 45, 46, -1, 48, 49, -1, - 51, 52, -1, -1, -1, -1, 57, -1, -1, -1, - 61, -1, -1, 64, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 84, 85, 86, -1, 88, 89, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, - 101, 102, -1, 104, 105, -1, -1, -1, 109, 110, - 111, -1, -1, -1, -1, -1, -1, -1, 119, -1, - 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 145, -1, -1, -1, -1, 150, - 151, -1, 153, -1, -1, -1, -1, -1, 159, -1, - 161, -1, -1, 164, -1, -1, 167, 168, 169, -1, - 171, 172, 173, -1, 175, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 190, - -1, -1, -1, 194, 195, 196, 197, -1, -1, -1, - -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 215, 216, -1, -1, -1, -1, - -1, -1, -1, 224, -1, -1, 227, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 247, -1, -1, -1, - -1, -1, 253, 254, -1, 256, 257, 258, -1, -1, - -1, 262, -1, -1, -1, -1, -1, -1, -1, 270, - 271, 272, 273, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 283, 284, 285, -1, -1, -1, -1, -1, - 291, -1, 293, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, - 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, - 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, - 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, - 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, - 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, - 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, - 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, - 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, - 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, - 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, - 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, - 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, - 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, - 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, - 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 752, 753, -1, -1, -1, -1, 758, -1, -1, - -1, 762, -1, -1, 765, 766, -1, -1, 769, 770, - 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, - -1, -1, 29, 30, -1, 32, -1, -1, -1, -1, - -1, -1, 39, 40, -1, -1, 43, 44, 45, 46, - -1, 48, 49, -1, 51, 52, -1, -1, -1, -1, - 57, -1, -1, -1, 61, -1, -1, 64, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, - -1, 88, 89, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 100, 101, 102, -1, 104, 105, -1, - -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, - -1, -1, 119, -1, 121, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 145, -1, - -1, -1, -1, 150, 151, -1, 153, -1, -1, -1, - -1, -1, 159, -1, 161, -1, -1, 164, -1, -1, - 167, 168, 169, -1, 171, 172, 173, -1, 175, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 190, -1, -1, -1, 194, 195, 196, - 197, -1, -1, -1, -1, -1, -1, 204, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 215, 216, - -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, - 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 247, -1, -1, -1, -1, -1, 253, 254, -1, 256, - 257, 258, -1, -1, -1, 262, -1, -1, -1, -1, - -1, -1, -1, 270, 271, 272, 273, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 283, 284, 285, -1, - -1, -1, -1, -1, 291, -1, 293, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, - 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, - 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, - 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, - 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, - 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, - 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, - 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, - 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, - 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, - 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, - 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, - 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, - 737, -1, 739, 740, 741, 742, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 752, 753, -1, -1, -1, - -1, 758, -1, -1, -1, 762, -1, -1, 765, 766, - -1, -1, 769, 770, 17, 18, 19, 20, 21, -1, - -1, -1, -1, -1, -1, -1, 29, 30, -1, 32, - -1, -1, -1, -1, -1, -1, 39, 40, -1, -1, - 43, 44, 45, 46, -1, 48, 49, -1, 51, 52, - -1, -1, -1, -1, 57, -1, -1, -1, 61, -1, - -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 84, 85, 86, -1, 88, 89, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, - -1, 104, 105, -1, -1, -1, 109, 110, 111, -1, - -1, -1, -1, -1, -1, -1, 119, -1, 121, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 145, -1, -1, -1, -1, 150, 151, -1, - 153, -1, -1, -1, -1, -1, 159, -1, 161, -1, - -1, 164, -1, -1, 167, 168, 169, -1, 171, 172, - 173, -1, 175, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 190, -1, -1, - -1, 194, 195, 196, 197, -1, -1, -1, -1, -1, - -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 215, 216, -1, -1, -1, -1, -1, -1, - -1, 224, -1, -1, 227, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 247, -1, -1, -1, -1, -1, - 253, 254, -1, 256, 257, 258, -1, -1, -1, 262, - -1, -1, -1, -1, -1, -1, -1, 270, 271, 272, - 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 283, 284, 285, -1, -1, -1, -1, -1, 291, -1, - 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, - 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, - 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, - 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, - 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, - 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, - 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, - 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, - 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, - 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, - 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, - 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, - 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, - 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, - 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, - 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, - 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, - 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 752, - 753, -1, -1, -1, -1, 758, -1, -1, -1, 762, - -1, -1, 765, 766, -1, -1, 769, 770, 17, 18, - 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, - 29, 30, -1, 32, -1, -1, -1, -1, -1, -1, - 39, 40, -1, -1, 43, 44, 45, 46, -1, 48, - 49, -1, 51, 52, -1, -1, -1, -1, 57, -1, - -1, -1, 61, -1, -1, 64, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 84, 85, 86, -1, 88, - 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 100, 101, 102, -1, 104, 105, -1, -1, -1, - 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, - 119, -1, 121, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 145, -1, -1, -1, - -1, 150, 151, -1, 153, -1, -1, -1, -1, -1, - 159, -1, 161, -1, -1, 164, -1, -1, 167, 168, - 169, -1, 171, 172, 173, -1, 175, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 190, -1, -1, -1, 194, 195, 196, 197, -1, - -1, -1, -1, -1, -1, 204, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 215, 216, -1, -1, - -1, -1, -1, -1, -1, 224, -1, -1, 227, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, - -1, -1, -1, -1, 253, 254, -1, 256, 257, 258, - -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, - -1, 270, 271, 272, 273, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 283, 284, 285, -1, -1, -1, - -1, -1, 291, -1, 293, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, - -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, - 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, - 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, - 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, - 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, - 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, - 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, - 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, - 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, - 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, - 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, - 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, - 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, - 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 752, 753, -1, -1, -1, -1, 758, - -1, -1, -1, 762, -1, -1, 765, 766, -1, -1, - 769, 770, 17, 18, 19, 20, 21, -1, -1, -1, - -1, -1, -1, -1, 29, 30, -1, 32, -1, -1, - -1, -1, -1, -1, 39, 40, -1, -1, 43, 44, - 45, 46, -1, 48, 49, -1, 51, 52, -1, -1, - -1, -1, 57, -1, -1, -1, 61, -1, -1, 64, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, - 85, 86, -1, 88, 89, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 100, 101, 102, -1, 104, - 105, -1, -1, -1, 109, 110, 111, -1, -1, -1, - -1, -1, -1, -1, 119, -1, 121, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 145, -1, -1, -1, -1, 150, 151, -1, 153, -1, - -1, -1, -1, -1, 159, -1, 161, -1, -1, 164, - -1, -1, 167, 168, 169, -1, 171, 172, 173, -1, - 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 190, -1, -1, -1, 194, - 195, 196, 197, -1, -1, -1, -1, -1, -1, 204, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 215, 216, -1, -1, -1, -1, -1, -1, -1, 224, - -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 247, -1, -1, -1, -1, -1, 253, 254, - -1, 256, 257, 258, -1, -1, -1, 262, -1, -1, - -1, -1, -1, -1, -1, 270, 271, 272, 273, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 283, 284, - 285, -1, -1, -1, -1, -1, 291, -1, 293, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, -1, 739, 740, 741, 742, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 752, 753, -1, - -1, -1, -1, 758, -1, -1, -1, 762, -1, -1, - 765, 766, -1, -1, 769, 770, 17, 18, 19, 20, - 21, -1, -1, -1, -1, -1, -1, -1, 29, 30, - -1, 32, -1, -1, -1, -1, -1, -1, 39, 40, - -1, -1, 43, 44, 45, 46, -1, 48, 49, -1, - 51, 52, -1, -1, -1, -1, 57, -1, -1, -1, - 61, -1, -1, 64, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 84, 85, 86, -1, 88, 89, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, - 101, 102, -1, 104, 105, -1, -1, -1, 109, 110, - 111, -1, -1, -1, -1, -1, -1, -1, 119, -1, - 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 145, -1, -1, -1, -1, 150, - 151, 152, 153, -1, -1, -1, -1, -1, 159, -1, - 161, -1, -1, 164, -1, -1, 167, -1, 169, -1, - 171, 172, 173, -1, 175, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 190, - -1, -1, -1, 194, 195, 196, 197, -1, -1, -1, - -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 215, 216, -1, -1, -1, -1, - -1, -1, -1, 224, -1, -1, 227, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 247, -1, -1, -1, - -1, -1, 253, 254, -1, 256, 257, 258, -1, -1, - -1, 262, -1, -1, -1, -1, -1, -1, -1, 270, - 271, 272, 273, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 283, 284, 285, -1, -1, -1, -1, -1, - 291, -1, 293, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, - 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, - 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, - 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, - 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, - 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, - 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, - 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, - 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, - 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, - 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, - 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, - 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, - 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, - 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, - 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 752, 753, -1, -1, -1, -1, 758, -1, -1, - -1, 762, -1, -1, 765, 766, -1, -1, 769, 770, - 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, - -1, -1, 29, 30, -1, 32, -1, -1, -1, -1, - -1, -1, 39, 40, -1, -1, 43, 44, 45, 46, - -1, 48, 49, -1, 51, 52, -1, -1, -1, -1, - 57, -1, -1, -1, 61, -1, -1, 64, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, - -1, 88, 89, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 100, 101, 102, -1, 104, 105, -1, - -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, - -1, -1, 119, -1, 121, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 145, -1, - -1, -1, -1, 150, 151, -1, 153, -1, -1, -1, - -1, -1, 159, -1, 161, -1, -1, 164, -1, -1, - 167, -1, 169, -1, 171, 172, 173, -1, 175, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 190, -1, -1, -1, 194, 195, 196, - 197, -1, -1, -1, -1, -1, -1, 204, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 215, 216, - -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, - 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 247, -1, -1, -1, -1, -1, 253, 254, -1, 256, - 257, 258, -1, -1, -1, 262, -1, -1, -1, -1, - -1, -1, -1, 270, 271, 272, 273, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 283, 284, 285, -1, - -1, -1, -1, -1, 291, -1, 293, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, - 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, - 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, - 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, - 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, - 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, - 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, - 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, - 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, - 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, - 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, - 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, - 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, - 737, -1, 739, 740, 741, 742, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 752, 753, -1, -1, -1, - -1, 758, -1, -1, -1, 762, -1, -1, 765, 766, - -1, -1, 769, 770, 17, 18, 19, 20, 21, -1, - -1, -1, -1, -1, -1, -1, 29, 30, -1, 32, - -1, -1, -1, -1, -1, -1, 39, 40, -1, -1, - 43, 44, 45, 46, -1, 48, 49, -1, 51, 52, - -1, -1, -1, -1, 57, -1, -1, -1, 61, -1, - -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 84, 85, 86, -1, 88, 89, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, - -1, 104, 105, -1, -1, -1, 109, 110, 111, -1, - -1, -1, -1, -1, -1, -1, 119, -1, 121, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 145, -1, -1, -1, -1, 150, 151, -1, - 153, -1, -1, -1, -1, -1, 159, -1, 161, -1, - -1, 164, -1, -1, 167, -1, 169, -1, 171, 172, - 173, -1, 175, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 190, -1, -1, - -1, 194, 195, 196, 197, -1, -1, -1, -1, -1, - -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 215, 216, -1, -1, -1, -1, -1, -1, - -1, 224, -1, -1, 227, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 247, -1, -1, -1, -1, -1, - 253, 254, -1, 256, 257, 258, -1, -1, -1, 262, - -1, -1, -1, -1, -1, -1, -1, 270, 271, 272, - 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 283, 284, 285, -1, -1, -1, -1, -1, 291, -1, - 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, - 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, - 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, - 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, - 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, - 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, - 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, - 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, - 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, - 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, - 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, - 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, - 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, - 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, - 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, - 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, - 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, - 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, - 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 752, - 753, -1, -1, -1, -1, 758, -1, -1, -1, 762, - -1, -1, 765, 766, -1, -1, 769, 770, 17, 18, - 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, - 29, 30, -1, 32, -1, -1, -1, -1, -1, -1, - 39, 40, -1, -1, 43, 44, 45, 46, -1, 48, - 49, -1, 51, 52, -1, -1, -1, -1, 57, -1, - -1, -1, 61, -1, -1, 64, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 84, 85, 86, -1, 88, - 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 100, 101, 102, -1, 104, 105, -1, -1, -1, - 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, - 119, -1, 121, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 145, -1, -1, -1, - -1, 150, 151, -1, 153, -1, -1, -1, -1, -1, - 159, -1, 161, -1, -1, 164, -1, -1, 167, -1, - 169, -1, 171, 172, 173, -1, 175, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 190, -1, -1, -1, 194, 195, 196, 197, -1, - -1, -1, -1, -1, -1, 204, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 215, 216, -1, -1, - -1, -1, -1, -1, -1, 224, -1, -1, 227, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, - -1, -1, -1, -1, 253, 254, -1, 256, 257, 258, - -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, - -1, 270, 271, 272, 273, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 283, 284, 285, -1, -1, -1, - -1, -1, 291, -1, 293, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, - -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, - 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, - 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, - 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, - 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, - 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, - 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, - 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, - 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, - 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, - 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, - 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, - 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, - 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 752, 753, -1, -1, -1, -1, 758, - -1, -1, -1, 762, -1, -1, 765, 766, -1, -1, - 769, 770, 17, 18, 19, 20, 21, -1, -1, -1, - -1, -1, -1, -1, 29, 30, -1, 32, -1, -1, - -1, -1, -1, -1, 39, 40, -1, -1, 43, 44, - 45, 46, -1, 48, 49, -1, 51, 52, -1, -1, - -1, -1, 57, -1, -1, -1, 61, -1, -1, 64, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, - 85, 86, -1, 88, 89, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 100, 101, 102, -1, 104, - 105, -1, -1, -1, 109, 110, 111, -1, -1, -1, - -1, -1, -1, -1, 119, -1, 121, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 145, -1, -1, -1, -1, 150, 151, -1, 153, -1, - -1, -1, -1, -1, 159, -1, 161, -1, -1, 164, - -1, -1, 167, -1, 169, -1, 171, 172, 173, -1, - 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 190, -1, -1, -1, 194, - 195, 196, 197, -1, -1, -1, -1, -1, -1, 204, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 215, 216, -1, -1, -1, -1, -1, -1, -1, 224, - -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 247, -1, -1, -1, -1, -1, 253, 254, - -1, 256, 257, 258, -1, -1, -1, 262, -1, -1, - -1, -1, -1, -1, -1, 270, 271, 272, 273, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 283, 284, - 285, -1, -1, -1, -1, -1, 291, -1, 293, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, -1, 739, 740, 741, 742, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 752, 753, -1, - -1, -1, -1, 758, -1, -1, -1, 762, -1, -1, - 765, 766, -1, -1, 769, 770, 17, 18, 19, 20, - 21, -1, -1, -1, -1, -1, -1, -1, 29, 30, - -1, 32, -1, -1, -1, -1, -1, -1, 39, 40, - -1, -1, 43, 44, 45, 46, -1, 48, 49, -1, - 51, 52, -1, -1, -1, -1, 57, -1, -1, -1, - 61, -1, -1, 64, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 84, 85, 86, -1, 88, 89, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, - 101, 102, -1, 104, 105, -1, -1, -1, 109, 110, - 111, -1, -1, -1, -1, -1, -1, -1, 119, -1, - 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 145, -1, -1, -1, -1, 150, - 151, -1, 153, -1, -1, -1, -1, -1, 159, -1, - 161, -1, -1, 164, -1, -1, 167, -1, 169, -1, - 171, 172, 173, -1, 175, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 190, - -1, -1, -1, 194, 195, 196, 197, -1, -1, -1, - -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 215, 216, -1, -1, -1, -1, - -1, -1, -1, 224, -1, -1, 227, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 247, -1, -1, -1, - -1, -1, 253, 254, -1, 256, 257, 258, -1, -1, - -1, 262, -1, -1, -1, -1, -1, -1, -1, 270, - 271, 272, 273, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 283, 284, 285, -1, -1, -1, -1, -1, - 291, -1, 293, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, - 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, - 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, - 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, - 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, - 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, - 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, - 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, - 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, - 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, - 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, - 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, - 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, - 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, - 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, - 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 752, 753, -1, -1, -1, -1, 758, -1, -1, - -1, 762, -1, -1, 765, 766, -1, -1, 769, 770, - 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, - -1, -1, 29, 30, -1, 32, -1, -1, -1, -1, - -1, -1, 39, 40, -1, -1, 43, 44, 45, 46, - -1, 48, 49, -1, 51, 52, -1, -1, -1, -1, - 57, -1, -1, -1, 61, -1, -1, 64, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, - -1, 88, 89, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 100, 101, 102, -1, 104, 105, -1, - -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, - -1, -1, 119, -1, 121, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 145, -1, - -1, -1, -1, 150, 151, -1, 153, -1, -1, -1, - -1, -1, 159, -1, 161, -1, -1, 164, -1, -1, - 167, -1, 169, -1, 171, 172, 173, -1, 175, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 190, -1, -1, -1, 194, 195, 196, - 197, -1, -1, -1, -1, -1, -1, 204, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 215, 216, - -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, - 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 247, -1, -1, -1, -1, -1, 253, 254, -1, 256, - 257, 258, -1, -1, -1, 262, -1, -1, -1, -1, - -1, -1, -1, 270, 271, 272, 273, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 283, 284, 285, -1, - -1, -1, -1, -1, 291, -1, 293, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, - 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, - 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, - 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, - 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, - 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, - 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, - 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, - 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, - 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, - 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, - 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, - 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, - 737, -1, 739, 740, 741, 742, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 752, 753, -1, -1, -1, - -1, 758, -1, -1, -1, 762, -1, -1, 765, 766, - -1, -1, 769, 770, 18, 19, 20, 21, -1, -1, - -1, -1, -1, -1, -1, 29, 30, -1, 32, -1, - -1, -1, -1, -1, -1, 39, 40, -1, -1, 43, - 44, 45, 46, -1, 48, 49, -1, 51, 52, -1, - -1, -1, -1, 57, -1, -1, -1, 61, -1, -1, - 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 84, 85, 86, -1, 88, 89, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, - 104, 105, -1, -1, -1, 109, 110, 111, -1, -1, - -1, -1, -1, -1, -1, 119, -1, 121, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 145, -1, -1, -1, -1, 150, 151, -1, 153, - -1, -1, -1, -1, -1, 159, -1, 161, -1, -1, - 164, -1, -1, -1, -1, 169, -1, 171, 172, 173, - -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 190, -1, -1, -1, - 194, 195, 196, 197, -1, -1, -1, -1, -1, -1, - 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 215, 216, -1, -1, -1, -1, -1, -1, -1, - 224, -1, -1, 227, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 247, -1, -1, -1, -1, -1, 253, - 254, -1, 256, 257, 258, -1, -1, -1, 262, -1, - -1, -1, -1, -1, -1, -1, 270, 271, 272, 273, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 283, - 284, 285, -1, -1, -1, -1, -1, 291, -1, 293, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, - 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, 18, 739, 740, 741, 742, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 752, 753, - -1, -1, -1, -1, -1, -1, -1, -1, 762, -1, - -1, -1, 766, -1, -1, 769, 770, -1, -1, -1, - -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 86, -1, -1, 89, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 104, 105, -1, -1, -1, 109, 110, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 164, -1, -1, -1, -1, -1, -1, -1, 172, 173, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, - -1, -1, -1, -1, -1, -1, -1, 271, 272, 273, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, - 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, 24, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, -1, 739, 740, 741, 742, -1, - -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 769, 770, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5353, 5354, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4955, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4984, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5433, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 5470, -1, + -1, -1, -1, 5057, 5476, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -17160,57 +15507,14 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, - 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, - 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, - 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, - 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, - 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, - 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, - 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, - 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, - 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, - 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, - 662, 663, 664, 665, 24, 667, 668, 669, 670, 671, - 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, - 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, - 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, - 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, - 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, - 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, - 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, - 742, -1, -1, -1, -1, -1, -1, -1, -1, 109, - 110, -1, 754, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5583, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5191, -1, -1, + -1, -1, -1, 5615, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 5229, -1, 5231, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -17218,25 +15522,67 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 5728, -1, -1, -1, + -1, -1, -1, 5735, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 5844, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 5476, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 6, -1, -1, -1, + -1, 5913, -1, -1, -1, -1, -1, 17, 18, 19, + 20, 21, -1, -1, -1, -1, -1, -1, -1, 29, + 30, -1, 32, -1, -1, -1, -1, -1, -1, 39, + 40, -1, -1, 43, 44, 45, 46, -1, 48, 49, + -1, 51, 52, -1, -1, -1, -1, 57, -1, -1, + -1, 61, -1, -1, 64, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 84, 85, 86, -1, 88, 89, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5583, + 100, 101, 102, -1, 104, 105, -1, -1, -1, 109, + 110, 111, -1, -1, -1, -1, -1, -1, -1, 119, + -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5615, -1, -1, 134, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 145, -1, -1, -1, -1, + 150, 151, -1, 153, -1, -1, -1, -1, -1, 159, + -1, 161, -1, -1, 164, -1, -1, 167, 168, 169, + -1, 171, 172, 173, -1, 175, 176, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 190, -1, -1, -1, 194, 195, 196, 197, -1, -1, + -1, -1, -1, -1, 204, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 215, 216, -1, -1, -1, + -1, -1, -1, -1, 224, -1, -1, 227, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 5728, -1, -1, 247, -1, -1, + -1, -1, -1, 253, 254, -1, 256, 257, 258, -1, + -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, + 270, 271, 272, 273, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 283, 284, 285, -1, -1, -1, -1, + -1, 291, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 420, 421, 422, 423, 424, 425, 426, 427, -1, 5913, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, @@ -17267,40 +15613,271 @@ 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, - 730, 731, 732, 733, 734, 735, 736, 737, 32, 739, + 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 754, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 61, -1, 769, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 752, 753, -1, -1, -1, -1, 758, -1, + 6, -1, 762, -1, -1, 765, 766, -1, -1, 769, + 770, 17, 18, 19, 20, 21, -1, -1, -1, -1, + -1, -1, -1, 29, 30, -1, 32, -1, -1, -1, + -1, -1, -1, 39, 40, -1, -1, 43, 44, 45, + 46, -1, 48, 49, -1, 51, 52, -1, -1, -1, + -1, 57, -1, -1, -1, 61, -1, -1, 64, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, + 86, -1, 88, 89, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 100, 101, 102, -1, 104, 105, + -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, + -1, -1, -1, 119, -1, 121, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 145, + -1, -1, -1, -1, 150, 151, -1, 153, -1, -1, + -1, -1, -1, 159, -1, 161, -1, -1, 164, -1, + -1, 167, -1, 169, -1, 171, 172, 173, -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 190, -1, -1, -1, 194, 195, + 196, 197, -1, -1, -1, -1, -1, -1, 204, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 215, + 216, -1, -1, -1, -1, -1, -1, -1, 224, -1, + -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 247, -1, -1, -1, -1, -1, 253, 254, -1, + 256, 257, 258, -1, -1, -1, 262, -1, -1, -1, + -1, -1, -1, -1, 270, 271, 272, 273, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 283, 284, 285, + -1, -1, -1, -1, -1, 291, -1, 293, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, -1, 739, 740, 741, 742, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 752, 753, -1, -1, + -1, -1, 758, -1, -1, -1, 762, -1, -1, 765, + 766, -1, -1, 769, 770, 17, 18, 19, 20, 21, + -1, -1, -1, 25, -1, -1, -1, 29, 30, -1, + 32, -1, -1, -1, -1, -1, -1, 39, 40, -1, + -1, 43, 44, 45, 46, -1, 48, 49, -1, 51, + 52, -1, -1, -1, -1, 57, -1, -1, -1, 61, + -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 84, 85, 86, -1, 88, 89, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, + 102, -1, 104, 105, -1, -1, -1, 109, 110, 111, + -1, -1, -1, -1, -1, -1, -1, 119, -1, 121, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 132, -1, 134, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 145, -1, -1, -1, -1, 150, 151, + -1, 153, -1, -1, -1, -1, -1, 159, -1, 161, + -1, -1, 164, -1, -1, 167, 168, 169, -1, 171, + 172, 173, -1, 175, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 190, -1, + -1, -1, 194, 195, 196, 197, -1, -1, -1, -1, + -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 215, 216, -1, -1, -1, -1, -1, + -1, -1, 224, -1, -1, 227, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 247, -1, -1, -1, -1, + -1, 253, 254, -1, 256, 257, 258, -1, -1, -1, + 262, -1, -1, -1, -1, -1, 268, -1, 270, 271, + 272, 273, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 283, 284, 285, -1, -1, -1, -1, -1, 291, + -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, + 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, + 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 752, 753, -1, -1, -1, -1, 758, -1, -1, -1, + 762, -1, -1, 765, 766, -1, -1, 769, 770, 17, + 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, + -1, 29, 30, -1, 32, -1, -1, -1, -1, -1, + -1, 39, 40, -1, -1, 43, 44, 45, 46, -1, + 48, 49, -1, 51, 52, -1, -1, -1, -1, 57, + -1, -1, -1, 61, -1, -1, 64, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, + 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 100, 101, 102, -1, 104, 105, -1, -1, + -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, + -1, 119, -1, 121, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 145, -1, -1, + -1, -1, 150, 151, -1, 153, -1, -1, -1, -1, + -1, 159, -1, 161, -1, -1, 164, -1, -1, 167, + 168, 169, -1, 171, 172, 173, -1, 175, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 190, -1, -1, -1, 194, 195, 196, 197, + -1, -1, -1, -1, -1, -1, 204, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 215, 216, -1, + -1, -1, -1, -1, -1, -1, 224, -1, -1, 227, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, + -1, -1, -1, -1, -1, 253, 254, -1, 256, 257, + 258, -1, -1, -1, 262, -1, -1, -1, -1, -1, + -1, -1, 270, 271, 272, 273, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 283, 284, 285, -1, -1, + -1, -1, -1, 291, -1, 293, 294, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, + 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + -1, 739, 740, 741, 742, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 752, 753, -1, -1, -1, -1, + 758, -1, -1, -1, 762, -1, -1, 765, 766, -1, + -1, 769, 770, 17, 18, 19, 20, 21, -1, -1, + -1, -1, -1, -1, -1, 29, 30, -1, 32, -1, + -1, -1, -1, -1, -1, 39, 40, -1, -1, 43, + 44, 45, 46, -1, 48, 49, -1, 51, 52, -1, + -1, -1, -1, 57, -1, -1, -1, 61, -1, -1, + 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 84, 85, 86, -1, 88, 89, -1, -1, -1, -1, + 94, -1, -1, -1, -1, -1, 100, 101, 102, -1, + 104, 105, -1, -1, -1, 109, 110, 111, -1, -1, + -1, -1, -1, -1, -1, 119, -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 145, -1, -1, -1, -1, 150, 151, -1, 153, + -1, -1, -1, -1, -1, 159, -1, 161, -1, -1, + 164, -1, -1, 167, 168, 169, -1, 171, 172, 173, + -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 190, -1, -1, -1, + 194, 195, 196, 197, -1, -1, -1, -1, -1, -1, + 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 215, 216, -1, -1, -1, -1, -1, -1, -1, + 224, -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 247, -1, -1, -1, -1, -1, 253, + 254, -1, 256, 257, 258, -1, -1, -1, 262, -1, + -1, -1, -1, -1, -1, -1, 270, 271, 272, 273, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 283, + 284, 285, -1, -1, -1, -1, -1, 291, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, @@ -17338,40 +15915,271 @@ 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, 32, 739, 740, 741, 742, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 61, -1, -1, 770, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 734, 735, 736, 737, -1, 739, 740, 741, 742, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 752, 753, + -1, -1, -1, -1, 758, -1, -1, -1, 762, -1, + -1, 765, 766, -1, -1, 769, 770, 17, 18, 19, + 20, 21, -1, -1, -1, -1, -1, -1, -1, 29, + 30, -1, 32, -1, -1, -1, -1, -1, -1, 39, + 40, -1, -1, 43, 44, 45, 46, -1, 48, 49, + -1, 51, 52, -1, -1, -1, -1, 57, -1, -1, + -1, 61, -1, -1, 64, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 84, 85, 86, -1, 88, 89, + -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, + 100, 101, 102, -1, 104, 105, -1, -1, -1, 109, + 110, 111, -1, -1, -1, -1, -1, -1, -1, 119, + -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 145, -1, -1, -1, -1, + 150, 151, -1, 153, -1, -1, -1, -1, -1, 159, + -1, 161, -1, -1, 164, -1, -1, 167, 168, 169, + -1, 171, 172, 173, -1, 175, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 190, -1, -1, -1, 194, 195, 196, 197, -1, -1, + -1, -1, -1, -1, 204, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 215, 216, -1, -1, -1, + -1, -1, -1, -1, 224, -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 247, -1, -1, + -1, -1, -1, 253, 254, -1, 256, 257, 258, -1, + -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, + 270, 271, 272, 273, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 283, 284, 285, -1, -1, -1, -1, + -1, 291, -1, 293, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, + 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, + 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 752, 753, -1, -1, -1, -1, 758, -1, + -1, -1, 762, -1, -1, 765, 766, -1, -1, 769, + 770, 17, 18, 19, 20, 21, -1, -1, -1, -1, + -1, -1, -1, 29, 30, -1, 32, -1, -1, -1, + -1, -1, -1, 39, 40, -1, -1, 43, 44, 45, + 46, -1, 48, 49, -1, 51, 52, -1, -1, -1, + -1, 57, -1, -1, -1, 61, -1, -1, 64, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, + 86, -1, 88, 89, -1, -1, -1, -1, 94, -1, + -1, -1, -1, -1, 100, 101, 102, -1, 104, 105, + -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, + -1, -1, -1, 119, -1, 121, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 145, + -1, -1, -1, -1, 150, 151, -1, 153, -1, -1, + -1, -1, -1, 159, -1, 161, -1, -1, 164, -1, + -1, 167, 168, 169, -1, 171, 172, 173, -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 190, -1, -1, -1, 194, 195, + 196, 197, -1, -1, -1, -1, -1, -1, 204, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 215, + 216, -1, -1, -1, -1, -1, -1, -1, 224, -1, + -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 247, -1, -1, -1, -1, -1, 253, 254, -1, + 256, 257, 258, -1, -1, -1, 262, -1, -1, -1, + -1, -1, -1, -1, 270, 271, 272, 273, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 283, 284, 285, + -1, -1, -1, -1, -1, 291, -1, 293, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, -1, 739, 740, 741, 742, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 752, 753, -1, -1, + -1, -1, 758, -1, -1, -1, 762, -1, -1, 765, + 766, -1, -1, 769, 770, 17, 18, 19, 20, 21, + -1, -1, -1, -1, -1, -1, -1, 29, 30, -1, + 32, -1, -1, -1, -1, -1, -1, 39, 40, -1, + -1, 43, 44, 45, 46, -1, 48, 49, -1, 51, + 52, -1, -1, -1, -1, 57, -1, -1, -1, 61, + -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 84, 85, 86, -1, 88, 89, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, + 102, -1, 104, 105, -1, -1, -1, 109, 110, 111, + -1, 113, -1, -1, -1, -1, -1, 119, -1, 121, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 145, -1, -1, -1, -1, 150, 151, + -1, 153, -1, -1, -1, -1, -1, 159, -1, 161, + -1, -1, 164, -1, -1, 167, 168, 169, -1, 171, + 172, 173, -1, 175, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 190, -1, + -1, -1, 194, 195, 196, 197, -1, -1, -1, -1, + -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 215, 216, -1, -1, -1, -1, -1, + -1, -1, 224, -1, -1, 227, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 247, -1, -1, -1, -1, + -1, 253, 254, -1, 256, 257, 258, -1, -1, -1, + 262, -1, -1, -1, -1, -1, -1, -1, 270, 271, + 272, 273, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 283, 284, 285, -1, -1, -1, -1, -1, 291, + -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, + 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, + 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 752, 753, -1, -1, -1, -1, 758, -1, -1, -1, + 762, -1, -1, 765, 766, -1, -1, 769, 770, 17, + 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, + -1, 29, 30, -1, 32, -1, -1, -1, -1, -1, + -1, 39, 40, -1, -1, 43, 44, 45, 46, -1, + 48, 49, -1, 51, 52, -1, -1, -1, -1, 57, + -1, -1, -1, 61, -1, -1, 64, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, + 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 100, 101, 102, -1, 104, 105, -1, -1, + -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, + -1, 119, -1, 121, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 145, -1, -1, + -1, -1, 150, 151, -1, 153, -1, -1, -1, -1, + -1, 159, -1, 161, -1, -1, 164, -1, -1, 167, + 168, 169, -1, 171, 172, 173, -1, 175, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 190, -1, -1, -1, 194, 195, 196, 197, + -1, -1, -1, -1, -1, -1, 204, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 215, 216, -1, + -1, -1, -1, -1, -1, -1, 224, -1, -1, 227, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, + -1, -1, -1, -1, -1, 253, 254, -1, 256, 257, + 258, -1, -1, -1, 262, -1, -1, -1, -1, -1, + -1, -1, 270, 271, 272, 273, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 283, 284, 285, -1, -1, + -1, -1, -1, 291, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, + 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, @@ -17396,129 +16204,57 @@ 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, - 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, - 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, - 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, - 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, - 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, - 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, - 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, - 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, - 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, - 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, - -1, 739, 740, 741, 742, 6, 7, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 770, -1, -1, -1, -1, -1, -1, -1, - 41, -1, -1, -1, -1, 46, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 63, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, - -1, -1, -1, 114, -1, -1, -1, -1, 119, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, - -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 211, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 229, -1, - -1, -1, -1, -1, -1, -1, 237, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 262, -1, -1, -1, -1, -1, -1, 269, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 279, 280, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, - 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, - 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, - 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, - 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, - 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, - 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, - 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, - 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, - 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, - 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, - 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, - 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, - 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, - 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, - 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, - 741, 742, 6, 7, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, - -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 73, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, - 114, -1, -1, -1, -1, 119, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 135, -1, -1, -1, -1, -1, -1, 142, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 211, -1, -1, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, + 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + -1, 739, 740, 741, 742, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 752, 753, -1, -1, -1, -1, + 758, -1, -1, -1, 762, -1, -1, 765, 766, -1, + -1, 769, 770, 17, 18, 19, 20, 21, -1, -1, + -1, -1, -1, -1, -1, 29, 30, -1, 32, -1, + -1, -1, -1, -1, -1, 39, 40, -1, -1, 43, + 44, 45, 46, -1, 48, 49, -1, 51, 52, -1, + -1, -1, -1, 57, -1, -1, -1, 61, -1, -1, + 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 229, -1, -1, -1, -1, - -1, -1, -1, 237, -1, -1, -1, -1, -1, -1, + 84, 85, 86, -1, 88, 89, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, + 104, 105, -1, -1, -1, 109, 110, 111, -1, -1, + -1, -1, -1, -1, -1, 119, -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, - -1, -1, -1, -1, -1, 269, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 279, 280, -1, -1, -1, + 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 145, -1, -1, -1, -1, 150, 151, -1, 153, + -1, -1, -1, -1, -1, 159, -1, 161, -1, -1, + 164, -1, -1, 167, 168, 169, -1, 171, 172, 173, + -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 190, -1, -1, -1, + 194, 195, 196, 197, -1, -1, -1, -1, -1, -1, + 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 215, 216, -1, -1, -1, -1, -1, -1, -1, + 224, -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 247, -1, -1, -1, -1, -1, 253, + 254, -1, 256, 257, 258, -1, -1, -1, 262, -1, + -1, -1, -1, -1, -1, -1, 270, 271, 272, 273, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 283, + 284, 285, -1, -1, -1, -1, -1, 291, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, @@ -17549,7 +16285,7 @@ 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, 6, 667, 668, 669, 670, 671, 672, 673, + 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, @@ -17557,34 +16293,345 @@ 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 752, 753, + -1, -1, -1, -1, 758, -1, -1, -1, 762, -1, + -1, 765, 766, -1, -1, 769, 770, 17, 18, 19, + 20, 21, -1, -1, -1, -1, -1, -1, -1, 29, + 30, -1, 32, -1, -1, -1, -1, -1, -1, 39, + 40, -1, -1, 43, 44, 45, 46, -1, 48, 49, + -1, 51, 52, -1, -1, -1, -1, 57, -1, -1, + -1, 61, -1, -1, 64, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 84, 85, 86, -1, 88, 89, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 100, 101, 102, -1, 104, 105, -1, -1, -1, 109, + 110, 111, -1, -1, -1, -1, -1, -1, -1, 119, + -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 145, -1, -1, -1, -1, + 150, 151, -1, 153, -1, -1, -1, -1, -1, 159, + -1, 161, -1, -1, 164, -1, -1, 167, 168, 169, + -1, 171, 172, 173, -1, 175, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 190, -1, -1, -1, 194, 195, 196, 197, -1, -1, + -1, -1, -1, -1, 204, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 215, 216, -1, -1, -1, + -1, -1, -1, -1, 224, -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 247, -1, -1, + -1, -1, -1, 253, 254, -1, 256, 257, 258, -1, + -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, + 270, 271, 272, 273, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 283, 284, 285, -1, -1, -1, -1, + -1, 291, -1, 293, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, + 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, + 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 752, 753, -1, -1, -1, -1, 758, -1, + -1, -1, 762, -1, -1, 765, 766, -1, -1, 769, + 770, 17, 18, 19, 20, 21, -1, -1, -1, -1, + -1, -1, -1, 29, 30, -1, 32, -1, -1, -1, + -1, -1, -1, 39, 40, -1, -1, 43, 44, 45, + 46, -1, 48, 49, -1, 51, 52, -1, -1, -1, + -1, 57, -1, -1, -1, 61, -1, -1, 64, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, + 86, -1, 88, 89, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 100, 101, 102, -1, 104, 105, + -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, + -1, -1, -1, 119, -1, 121, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 145, + -1, -1, -1, -1, 150, 151, -1, 153, -1, -1, + -1, -1, -1, 159, -1, 161, -1, -1, 164, -1, + -1, 167, 168, 169, -1, 171, 172, 173, -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 190, -1, -1, -1, 194, 195, + 196, 197, -1, -1, -1, -1, -1, -1, 204, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 215, + 216, -1, -1, -1, -1, -1, -1, -1, 224, -1, + -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, + -1, 247, -1, -1, -1, -1, -1, 253, 254, -1, + 256, 257, 258, -1, -1, -1, 262, -1, -1, -1, + -1, -1, -1, -1, 270, 271, 272, 273, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 283, 284, 285, + -1, -1, -1, -1, -1, 291, -1, 293, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, -1, 739, 740, 741, 742, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 752, 753, -1, -1, + -1, -1, 758, -1, -1, -1, 762, -1, -1, 765, + 766, -1, -1, 769, 770, 17, 18, 19, 20, 21, + -1, -1, -1, -1, -1, -1, -1, 29, 30, -1, + 32, -1, -1, -1, -1, -1, -1, 39, 40, -1, + -1, 43, 44, 45, 46, -1, 48, 49, -1, 51, + 52, -1, -1, -1, -1, 57, -1, -1, -1, 61, + -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 84, 85, 86, -1, 88, 89, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, + 102, -1, 104, 105, -1, -1, -1, 109, 110, 111, + -1, -1, -1, -1, -1, -1, -1, 119, -1, 121, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 145, -1, -1, -1, -1, 150, 151, + -1, 153, -1, -1, -1, -1, -1, 159, -1, 161, + -1, -1, 164, -1, -1, 167, 168, 169, -1, 171, + 172, 173, -1, 175, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 190, -1, + -1, -1, 194, 195, 196, 197, -1, -1, -1, -1, + -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 215, 216, -1, -1, -1, -1, -1, + -1, -1, 224, -1, -1, 227, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 247, -1, -1, -1, -1, + -1, 253, 254, -1, 256, 257, 258, -1, -1, -1, + 262, -1, -1, -1, -1, -1, -1, -1, 270, 271, + 272, 273, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 283, 284, 285, -1, -1, -1, -1, -1, 291, + -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, + 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, + 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 752, 753, -1, -1, -1, -1, 758, -1, -1, -1, + 762, -1, -1, 765, 766, -1, -1, 769, 770, 17, + 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, + -1, 29, 30, -1, 32, -1, -1, -1, -1, -1, + -1, 39, 40, -1, -1, 43, 44, 45, 46, -1, + 48, 49, -1, 51, 52, -1, -1, -1, -1, 57, + -1, -1, -1, 61, -1, -1, 64, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, + 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 100, 101, 102, -1, 104, 105, -1, -1, + -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, + -1, 119, -1, 121, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 145, -1, -1, + -1, -1, 150, 151, 152, 153, -1, -1, -1, -1, + -1, 159, -1, 161, -1, -1, 164, -1, -1, 167, + -1, 169, -1, 171, 172, 173, -1, 175, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 190, -1, -1, -1, 194, 195, 196, 197, + -1, -1, -1, -1, -1, -1, 204, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 215, 216, -1, + -1, -1, -1, -1, -1, -1, 224, -1, -1, 227, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, + -1, -1, -1, -1, -1, 253, 254, -1, 256, 257, + 258, -1, -1, -1, 262, -1, -1, -1, -1, -1, + -1, -1, 270, 271, 272, 273, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 283, 284, 285, -1, -1, + -1, -1, -1, 291, -1, 293, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, + 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + -1, 739, 740, 741, 742, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 752, 753, -1, -1, -1, -1, + 758, -1, -1, -1, 762, -1, -1, 765, 766, -1, + -1, 769, 770, 17, 18, 19, 20, 21, -1, -1, + -1, -1, -1, -1, -1, 29, 30, -1, 32, -1, + -1, -1, -1, -1, -1, 39, 40, -1, -1, 43, + 44, 45, 46, -1, 48, 49, -1, 51, 52, -1, + -1, -1, -1, 57, -1, -1, -1, 61, -1, -1, + 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 84, 85, 86, -1, 88, 89, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, + 104, 105, -1, -1, -1, 109, 110, 111, -1, -1, + -1, -1, -1, -1, -1, 119, -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 145, -1, -1, -1, -1, 150, 151, -1, 153, + -1, -1, -1, -1, -1, 159, -1, 161, -1, -1, + 164, -1, -1, 167, -1, 169, -1, 171, 172, 173, + -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 190, -1, -1, -1, + 194, 195, 196, 197, -1, -1, -1, -1, -1, -1, + 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 215, 216, -1, -1, -1, -1, -1, -1, -1, + 224, -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 247, -1, -1, -1, -1, -1, 253, + 254, -1, 256, 257, 258, -1, -1, -1, 262, -1, + -1, -1, -1, -1, -1, -1, 270, 271, 272, 273, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 283, + 284, 285, -1, -1, -1, -1, -1, 291, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, @@ -17615,7 +16662,7 @@ 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, 6, 667, 668, 669, 670, 671, 672, 673, + 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, @@ -17623,34 +16670,345 @@ 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 752, 753, + -1, -1, -1, -1, 758, -1, -1, -1, 762, -1, + -1, 765, 766, -1, -1, 769, 770, 17, 18, 19, + 20, 21, -1, -1, -1, -1, -1, -1, -1, 29, + 30, -1, 32, -1, -1, -1, -1, -1, -1, 39, + 40, -1, -1, 43, 44, 45, 46, -1, 48, 49, + -1, 51, 52, -1, -1, -1, -1, 57, -1, -1, + -1, 61, -1, -1, 64, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 84, 85, 86, -1, 88, 89, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 100, 101, 102, -1, 104, 105, -1, -1, -1, 109, + 110, 111, -1, -1, -1, -1, -1, -1, -1, 119, + -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 145, -1, -1, -1, -1, + 150, 151, -1, 153, -1, -1, -1, -1, -1, 159, + -1, 161, -1, -1, 164, -1, -1, 167, -1, 169, + -1, 171, 172, 173, -1, 175, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 190, -1, -1, -1, 194, 195, 196, 197, -1, -1, + -1, -1, -1, -1, 204, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 215, 216, -1, -1, -1, + -1, -1, -1, -1, 224, -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 247, -1, -1, + -1, -1, -1, 253, 254, -1, 256, 257, 258, -1, + -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, + 270, 271, 272, 273, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 283, 284, 285, -1, -1, -1, -1, + -1, 291, -1, 293, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, + 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, + 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 752, 753, -1, -1, -1, -1, 758, -1, + -1, -1, 762, -1, -1, 765, 766, -1, -1, 769, + 770, 17, 18, 19, 20, 21, -1, -1, -1, -1, + -1, -1, -1, 29, 30, -1, 32, -1, -1, -1, + -1, -1, -1, 39, 40, -1, -1, 43, 44, 45, + 46, -1, 48, 49, -1, 51, 52, -1, -1, -1, + -1, 57, -1, -1, -1, 61, -1, -1, 64, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, + 86, -1, 88, 89, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 100, 101, 102, -1, 104, 105, + -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, + -1, -1, -1, 119, -1, 121, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 145, + -1, -1, -1, -1, 150, 151, -1, 153, -1, -1, + -1, -1, -1, 159, -1, 161, -1, -1, 164, -1, + -1, 167, -1, 169, -1, 171, 172, 173, -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 190, -1, -1, -1, 194, 195, + 196, 197, -1, -1, -1, -1, -1, -1, 204, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 215, + 216, -1, -1, -1, -1, -1, -1, -1, 224, -1, + -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 247, -1, -1, -1, -1, -1, 253, 254, -1, + 256, 257, 258, -1, -1, -1, 262, -1, -1, -1, + -1, -1, -1, -1, 270, 271, 272, 273, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 283, 284, 285, + -1, -1, -1, -1, -1, 291, -1, 293, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, -1, 739, 740, 741, 742, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 752, 753, -1, -1, + -1, -1, 758, -1, -1, -1, 762, -1, -1, 765, + 766, -1, -1, 769, 770, 17, 18, 19, 20, 21, + -1, -1, -1, -1, -1, -1, -1, 29, 30, -1, + 32, -1, -1, -1, -1, -1, -1, 39, 40, -1, + -1, 43, 44, 45, 46, -1, 48, 49, -1, 51, + 52, -1, -1, -1, -1, 57, -1, -1, -1, 61, + -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 84, 85, 86, -1, 88, 89, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, + 102, -1, 104, 105, -1, -1, -1, 109, 110, 111, + -1, -1, -1, -1, -1, -1, -1, 119, -1, 121, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 145, -1, -1, -1, -1, 150, 151, + -1, 153, -1, -1, -1, -1, -1, 159, -1, 161, + -1, -1, 164, -1, -1, 167, -1, 169, -1, 171, + 172, 173, -1, 175, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 190, -1, + -1, -1, 194, 195, 196, 197, -1, -1, -1, -1, + -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 215, 216, -1, -1, -1, -1, -1, + -1, -1, 224, -1, -1, 227, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 247, -1, -1, -1, -1, + -1, 253, 254, -1, 256, 257, 258, -1, -1, -1, + 262, -1, -1, -1, -1, -1, -1, -1, 270, 271, + 272, 273, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 283, 284, 285, -1, -1, -1, -1, -1, 291, + -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, + 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, + 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 752, 753, -1, -1, -1, -1, 758, -1, -1, -1, + 762, -1, -1, 765, 766, -1, -1, 769, 770, 17, + 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, + -1, 29, 30, -1, 32, -1, -1, -1, -1, -1, + -1, 39, 40, -1, -1, 43, 44, 45, 46, -1, + 48, 49, -1, 51, 52, -1, -1, -1, -1, 57, + -1, -1, -1, 61, -1, -1, 64, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, + 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 100, 101, 102, -1, 104, 105, -1, -1, + -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, + -1, 119, -1, 121, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 145, -1, -1, + -1, -1, 150, 151, -1, 153, -1, -1, -1, -1, + -1, 159, -1, 161, -1, -1, 164, -1, -1, 167, + -1, 169, -1, 171, 172, 173, -1, 175, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 190, -1, -1, -1, 194, 195, 196, 197, + -1, -1, -1, -1, -1, -1, 204, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 215, 216, -1, + -1, -1, -1, -1, -1, -1, 224, -1, -1, 227, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, + -1, -1, -1, -1, -1, 253, 254, -1, 256, 257, + 258, -1, -1, -1, 262, -1, -1, -1, -1, -1, + -1, -1, 270, 271, 272, 273, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 283, 284, 285, -1, -1, + -1, -1, -1, 291, -1, 293, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, + 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + -1, 739, 740, 741, 742, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 752, 753, -1, -1, -1, -1, + 758, -1, -1, -1, 762, -1, -1, 765, 766, -1, + -1, 769, 770, 17, 18, 19, 20, 21, -1, -1, + -1, -1, -1, -1, -1, 29, 30, -1, 32, -1, + -1, -1, -1, -1, -1, 39, 40, -1, -1, 43, + 44, 45, 46, -1, 48, 49, -1, 51, 52, -1, + -1, -1, -1, 57, -1, -1, -1, 61, -1, -1, + 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 84, 85, 86, -1, 88, 89, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, + 104, 105, -1, -1, -1, 109, 110, 111, -1, -1, + -1, -1, -1, -1, -1, 119, -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 145, -1, -1, -1, -1, 150, 151, -1, 153, + -1, -1, -1, -1, -1, 159, -1, 161, -1, -1, + 164, -1, -1, 167, -1, 169, -1, 171, 172, 173, + -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 190, -1, -1, -1, + 194, 195, 196, 197, -1, -1, -1, -1, -1, -1, + 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 215, 216, -1, -1, -1, -1, -1, -1, -1, + 224, -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 247, -1, -1, -1, -1, -1, 253, + 254, -1, 256, 257, 258, -1, -1, -1, 262, -1, + -1, -1, -1, -1, -1, -1, 270, 271, 272, 273, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 283, + 284, 285, -1, -1, -1, -1, -1, 291, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, @@ -17688,23 +17046,98 @@ 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, 35, 739, 740, 741, 742, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, + 734, 735, 736, 737, -1, 739, 740, 741, 742, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 752, 753, + -1, -1, -1, -1, 758, -1, -1, -1, 762, -1, + -1, 765, 766, -1, -1, 769, 770, 18, 19, 20, + 21, -1, -1, -1, -1, -1, -1, -1, 29, 30, + -1, 32, -1, -1, -1, -1, -1, -1, 39, 40, + -1, -1, 43, 44, 45, 46, -1, 48, 49, -1, + 51, 52, -1, -1, -1, -1, 57, -1, -1, -1, + 61, -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 84, 85, 86, -1, 88, 89, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, + 101, 102, -1, 104, 105, -1, -1, -1, 109, 110, + 111, -1, -1, -1, -1, -1, -1, -1, 119, -1, + 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 145, -1, -1, -1, -1, 150, + 151, -1, 153, -1, -1, -1, -1, -1, 159, -1, + 161, -1, -1, 164, -1, -1, -1, -1, 169, -1, + 171, 172, 173, -1, 175, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 190, + -1, -1, -1, 194, 195, 196, 197, -1, -1, -1, + -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 215, 216, -1, -1, -1, -1, + -1, -1, -1, 224, -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 247, -1, -1, -1, + -1, -1, 253, 254, -1, 256, 257, 258, -1, -1, + -1, 262, -1, -1, -1, -1, -1, -1, -1, 270, + 271, 272, 273, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 283, 284, 285, -1, -1, -1, -1, -1, + 291, -1, 293, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 18, 739, 740, + 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 752, 753, -1, -1, -1, -1, -1, -1, -1, + -1, 762, -1, -1, -1, 766, -1, -1, 769, 770, + -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 86, -1, -1, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 104, 105, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 164, -1, -1, -1, -1, -1, -1, + -1, 172, 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -17713,6 +17146,8 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, + 271, 272, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, @@ -17720,7 +17155,7 @@ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, @@ -17751,90 +17186,82 @@ 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, + 661, 662, 663, 664, 665, 24, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, 29, 739, 740, - 741, 742, -1, -1, -1, -1, 38, -1, -1, -1, + 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, + 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, + 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 769, 770, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 770, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, - 92, -1, -1, -1, -1, 97, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, - -1, 133, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 215, -1, -1, -1, -1, -1, 221, - 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 296, -1, -1, -1, -1, -1, - -1, -1, -1, 305, 306, 307, -1, 309, -1, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, - -1, 333, -1, -1, 336, 337, 338, 339, 340, -1, - -1, 343, 344, 345, 346, -1, -1, -1, 350, 351, - 352, 353, 354, 355, 356, 357, 358, -1, 360, -1, - -1, -1, -1, -1, -1, 367, -1, 369, -1, 371, - 372, -1, 374, 375, 376, 377, 378, 379, -1, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, -1, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, - -1, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, -1, -1, -1, 427, -1, 429, 430, 431, - 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, - -1, -1, 444, 445, 446, 447, 448, 449, 450, 451, - -1, 453, 454, -1, 456, 457, -1, -1, 460, -1, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, -1, 474, 475, 476, 477, 478, 479, 480, 481, - 482, -1, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, -1, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 567, 568, -1, -1, -1, - 572, 573, -1, 575, 576, 577, 578, -1, 580, 581, - 582, 583, 584, 585, -1, -1, -1, -1, 590, 591, - 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, - 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, - 612, 613, 614, 615, -1, 617, -1, 619, 620, -1, - 622, 623, -1, 625, 626, 627, 628, 629, 630, -1, - 632, 633, 634, 635, 636, 637, 638, -1, 640, 641, - 642, -1, 644, 645, 646, 647, -1, 649, 650, -1, - -1, 653, -1, -1, 656, 657, 658, -1, 660, -1, - 662, 663, 664, 665, -1, 667, 668, 669, -1, 671, - 672, -1, 674, 36, 676, 677, 678, 679, 680, 681, - 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, - 692, 693, 694, 695, -1, 697, 698, 699, 700, 701, - 702, 703, 704, -1, 706, 707, 708, -1, 710, 711, - 712, 713, -1, -1, 716, 717, -1, 719, 720, 721, - 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, - 732, -1, 95, 735, 736, -1, -1, 739, -1, 741, - 742, -1, -1, -1, -1, -1, 109, 110, -1, -1, - -1, 114, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 764, -1, -1, -1, 129, -1, -1, -1, - -1, -1, -1, 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, + -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, + 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, + 659, 660, 661, 662, 663, 664, 665, 24, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, + 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, + 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, + 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, + -1, -1, 109, 110, -1, 754, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -17842,67 +17269,67 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 229, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 240, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 297, -1, -1, -1, -1, -1, - -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, - 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, - 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, - 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, - 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, - 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, - 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, - 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, - 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, - 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, - 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, - 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, - 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, - 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, - 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, - 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, - 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, - 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, - 733, 734, 735, 736, 737, 36, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, 32, 739, 740, 741, 742, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 754, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 61, -1, 769, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, - -1, -1, -1, 114, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -17913,7 +17340,9 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 240, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -17956,92 +17385,27 @@ 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, 11, 667, 668, 669, 670, + 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, + 731, 732, 733, 734, 735, 736, 737, 32, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 109, 110, -1, -1, -1, 769, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, - -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, - 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, - 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, - 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, - 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, - 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, - 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, - 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, - 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, - 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, - 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, - 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, - 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, - 736, 737, 17, 739, 740, 741, 742, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 61, -1, -1, 770, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -18050,10 +17414,8 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 234, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -18101,19 +17463,230 @@ 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, 17, 739, 740, 741, 742, -1, -1, - -1, -1, 747, -1, -1, -1, -1, -1, -1, -1, + 735, 736, 737, -1, 739, 740, 741, 742, 6, 7, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 770, -1, -1, -1, -1, + -1, -1, -1, 41, -1, -1, -1, -1, 46, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 63, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 73, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 109, 110, -1, -1, -1, 114, -1, -1, -1, + -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, + -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 211, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 229, -1, -1, -1, -1, -1, -1, -1, 237, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, + -1, 269, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, + 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + -1, 739, 740, 741, 742, 6, 7, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 41, -1, -1, -1, -1, 46, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 63, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, + -1, -1, -1, 114, -1, -1, -1, -1, 119, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, + -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 211, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 229, -1, + -1, -1, -1, -1, -1, -1, 237, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 262, -1, -1, -1, -1, -1, -1, 269, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 279, 280, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, + 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, 6, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, + 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, + 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, 6, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, + 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -18125,67 +17698,65 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, + 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 35, 739, 740, + 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, - 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, - 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, 17, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, + -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -18197,128 +17768,196 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, + 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 29, 739, 740, 741, 742, -1, -1, -1, -1, 38, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 770, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, - 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, - 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, - 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, - 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, - 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, - 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, - 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, - 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, - 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, - 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, - 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, - 663, 664, 665, 17, 667, 668, 669, 670, 671, 672, - 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, - 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, - 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, - 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, - 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, - 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, + -1, -1, -1, -1, -1, -1, -1, -1, 87, -1, + -1, -1, -1, 92, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, + 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 126, -1, -1, + -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 215, -1, -1, -1, + -1, -1, 221, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 296, -1, -1, + -1, -1, -1, -1, -1, -1, 305, 306, 307, -1, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, + 329, 330, 331, -1, 333, -1, -1, 336, 337, 338, + 339, 340, -1, -1, 343, 344, 345, 346, -1, -1, + -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, + -1, 360, -1, -1, -1, -1, -1, -1, 367, -1, + 369, -1, 371, 372, -1, 374, 375, 376, 377, 378, + 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, -1, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, -1, 408, + 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, -1, -1, -1, 427, -1, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + -1, -1, -1, -1, -1, 444, 445, 446, 447, 448, + 449, 450, 451, -1, 453, 454, -1, 456, 457, -1, + -1, 460, -1, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, + 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, -1, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + -1, -1, -1, 572, 573, -1, 575, 576, 577, 578, + -1, 580, 581, 582, 583, 584, 585, -1, -1, -1, + -1, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, -1, 617, -1, + 619, 620, -1, 622, 623, -1, 625, 626, 627, 628, + 629, 630, -1, 632, 633, 634, 635, 636, 637, 638, + -1, 640, 641, 642, -1, 644, 645, 646, 647, -1, + 649, 650, -1, -1, 653, -1, -1, 656, 657, 658, + -1, 660, -1, 662, 663, 664, 665, -1, 667, 668, + 669, -1, 671, 672, -1, 674, 36, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, -1, 697, 698, + 699, 700, 701, 702, 703, 704, -1, 706, 707, 708, + -1, 710, 711, 712, 713, -1, -1, 716, 717, -1, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, -1, 95, 735, 736, -1, -1, + 739, -1, 741, 742, -1, -1, -1, -1, -1, 109, + 110, -1, -1, -1, 114, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 764, -1, -1, -1, 129, + -1, -1, -1, -1, -1, -1, 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, - 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, - 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, 18, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, -1, 739, 740, 741, 742, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 104, 105, - -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 229, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 240, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 297, -1, -1, + -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, + 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, + 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 36, 739, + 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 769, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 109, 110, -1, -1, -1, 114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -18327,64 +17966,64 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 240, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, - -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, - 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, - 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, - 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, - 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, - 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, - 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, - 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, - 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, - 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, - 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, - 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, - 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, - 736, 737, 45, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 11, 667, + 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + -1, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, + -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -18436,7 +18075,7 @@ 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, - 653, 654, 655, 656, 657, 658, 659, 660, 661, -1, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, @@ -18444,26 +18083,20 @@ 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, - 733, 734, 735, 736, 737, 29, 739, 740, 741, 742, - -1, -1, -1, -1, 38, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 762, + 733, 734, 735, 736, 737, 17, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 76, 77, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 87, -1, -1, -1, -1, 92, -1, - -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 126, -1, -1, -1, -1, -1, -1, 133, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 215, -1, -1, -1, -1, -1, 221, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -18471,585 +18104,406 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 296, -1, -1, -1, -1, -1, -1, -1, - -1, 305, 306, 307, -1, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, - 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, - -1, -1, 336, 337, 338, 339, 340, -1, -1, 343, - 344, 345, 346, -1, -1, -1, 350, 351, 352, 353, - 354, 355, 356, 357, 358, -1, 360, -1, -1, -1, - -1, -1, -1, 367, -1, 369, -1, 371, 372, -1, - 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, -1, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - -1, -1, -1, 427, -1, 429, 430, 431, 432, 433, - 434, 435, 436, 437, 438, -1, -1, -1, -1, -1, - 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, - 454, -1, 456, 457, -1, -1, 460, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, -1, - 474, 475, 476, 477, 478, 479, 480, 481, 482, -1, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - -1, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, -1, -1, -1, 572, 573, - -1, 575, 576, 577, 578, -1, 580, 581, 582, 583, - 584, 585, -1, -1, -1, -1, 590, 591, 592, 593, - 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, -1, 617, -1, 619, 620, -1, 622, 623, - -1, 625, 626, 627, 628, 629, 630, -1, 632, 633, - 634, 635, 636, 637, 638, -1, 640, 641, 642, -1, - 644, 645, 646, 647, -1, 649, 650, -1, -1, 653, - -1, -1, 656, 657, 658, -1, 660, -1, 662, 663, - 664, 665, -1, 667, 668, 669, -1, 671, 672, -1, - 674, -1, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, 29, 697, 698, 699, 700, 701, 702, 703, - 704, 38, 706, 707, 708, -1, 710, 711, 712, 713, - -1, -1, 716, 717, -1, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, -1, - -1, 735, 736, -1, -1, 739, -1, 741, 742, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 87, -1, -1, -1, -1, 92, -1, -1, -1, -1, - 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, - -1, -1, -1, -1, -1, -1, 133, -1, -1, -1, + -1, -1, 234, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, + 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, + 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 17, 739, 740, 741, + 742, -1, -1, -1, -1, 747, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 215, -1, - -1, -1, -1, -1, 221, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 294, -1, 296, - -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, - 307, -1, 309, -1, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, -1, 324, 325, 326, - 327, 328, 329, 330, 331, -1, 333, -1, -1, 336, - 337, 338, 339, 340, -1, -1, 343, 344, 345, 346, - -1, -1, -1, 350, 351, 352, 353, 354, 355, 356, - 357, 358, -1, 360, -1, -1, -1, -1, -1, -1, - 367, -1, 369, -1, 371, 372, -1, 374, 375, 376, - 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, -1, 396, - 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, - -1, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, - 427, -1, 429, 430, 431, 432, 433, 434, 435, 436, - 437, 438, -1, -1, -1, -1, -1, 444, 445, 446, - 447, 448, 449, 450, 451, -1, 453, 454, -1, 456, - 457, -1, -1, 460, -1, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, - 477, 478, 479, 480, 481, 482, -1, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, -1, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, - 567, 568, -1, -1, -1, 572, 573, -1, 575, 576, - 577, 578, -1, 580, 581, 582, 583, 584, 585, -1, - -1, -1, -1, 590, 591, 592, 593, 594, 595, 596, - 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 614, 615, -1, - 617, -1, 619, 620, -1, 622, 623, -1, 625, 626, - 627, 628, 629, 630, -1, 632, 633, 634, 635, 636, - 637, 638, -1, 640, 641, 642, -1, 644, 645, 646, - 647, -1, 649, 650, -1, -1, 653, -1, -1, 656, - 657, 658, -1, 660, -1, 662, 663, 664, 665, -1, - 667, 668, 669, -1, 671, 672, -1, 674, -1, 676, - 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, - 687, 688, 689, 690, 691, 692, 693, 694, 695, 29, - 697, 698, 699, 700, 701, 702, 703, 704, 38, 706, - 707, 708, -1, 710, 711, 712, 713, -1, -1, 716, - 717, -1, 719, 720, 721, 722, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 732, -1, -1, 735, 736, - -1, -1, 739, -1, 741, 742, 76, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 87, -1, -1, - -1, -1, 92, -1, -1, -1, -1, 97, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, - 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 126, -1, -1, -1, - -1, -1, -1, 133, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 147, -1, -1, + -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 215, -1, -1, -1, -1, - -1, 221, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 294, -1, 296, -1, -1, -1, - -1, -1, -1, -1, -1, 305, 306, 307, -1, 309, - -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, - 330, 331, -1, 333, -1, -1, 336, 337, 338, 339, - 340, -1, -1, 343, 344, 345, 346, -1, -1, -1, - 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, - 360, -1, -1, -1, -1, -1, -1, 367, -1, 369, - -1, 371, 372, -1, 374, 375, 376, 377, 378, 379, - -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, -1, 396, 397, 398, -1, - 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, -1, -1, -1, 427, -1, 429, - 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, - -1, -1, -1, -1, 444, 445, 446, 447, 448, 449, - 450, 451, -1, 453, 454, -1, 456, 457, -1, -1, - 460, -1, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, - 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, -1, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, -1, - -1, -1, 572, 573, -1, 575, 576, 577, 578, -1, - 580, 581, 582, 583, 584, 585, -1, -1, -1, -1, - 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, - 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, - 610, 611, 612, 613, 614, 615, -1, 617, -1, 619, - 620, -1, 622, 623, -1, 625, 626, 627, 628, 629, - 630, -1, 632, 633, 634, 635, 636, 637, 638, -1, - 640, 641, 642, -1, 644, 645, 646, 647, -1, 649, - 650, -1, -1, 653, -1, -1, 656, 657, 658, -1, - 660, -1, 662, 663, 664, 665, -1, 667, 668, 669, - -1, 671, 672, -1, 674, -1, 676, 677, 678, 679, - 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, - 690, 691, 692, 693, 694, 695, 29, 697, 698, 699, - 700, 701, 702, 703, 704, 38, 706, 707, 708, -1, - 710, 711, 712, 713, -1, -1, 716, 717, -1, 719, - 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, - 730, 731, 732, -1, -1, 735, 736, -1, -1, 739, - -1, 741, 742, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 87, -1, -1, -1, -1, 92, - -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 109, 110, 111, -1, + -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, - 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, + 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 17, 739, 740, + 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 215, -1, -1, -1, -1, -1, 221, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, + 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 296, -1, -1, -1, -1, -1, -1, - -1, -1, 305, 306, 307, -1, 309, -1, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - -1, 324, 325, 326, 327, 328, 329, 330, 331, -1, - 333, -1, -1, 336, 337, 338, 339, 340, -1, -1, - 343, 344, 345, 346, -1, -1, -1, 350, 351, 352, - 353, 354, 355, 356, 357, 358, -1, 360, -1, -1, - -1, -1, -1, -1, 367, -1, 369, -1, 371, 372, - -1, 374, 375, 376, 377, 378, 379, -1, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, -1, 396, 397, 398, -1, 400, 401, 402, - 403, 404, 405, 406, -1, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, -1, -1, -1, 427, -1, 429, 430, 431, 432, - 433, 434, 435, 436, 437, 438, -1, -1, -1, -1, - -1, 444, 445, 446, 447, 448, 449, 450, 451, -1, - 453, 454, -1, 456, 457, -1, -1, 460, -1, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - -1, 474, 475, 476, 477, 478, 479, 480, 481, 482, - -1, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, - 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 553, -1, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 565, 566, 567, 568, -1, -1, -1, 572, - 573, -1, 575, 576, 577, 578, -1, 580, 581, 582, - 583, 584, 585, -1, -1, -1, -1, 590, 591, 592, - 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, - 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, - 613, 614, 615, -1, 617, -1, 619, 620, -1, 622, - 623, -1, 625, 626, 627, 628, 629, 630, -1, 632, - 633, 634, 635, 636, 637, 638, -1, 640, 641, 642, - -1, 644, 645, 646, 647, -1, 649, 650, -1, -1, - 653, -1, -1, 656, 657, 658, -1, 660, -1, 662, - 663, 664, 665, -1, 667, 668, 669, -1, 671, 672, - -1, 674, -1, 676, 677, 678, 679, 680, 681, 682, - 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, - 693, 694, 695, 29, 697, 698, 699, 700, 701, 702, - 703, 704, 38, 706, 707, 708, -1, 710, 711, 712, - 713, -1, -1, 716, 717, -1, 719, 720, 721, 722, - 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, - -1, -1, 735, 736, -1, -1, 739, -1, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 87, -1, -1, -1, -1, 92, -1, -1, -1, - -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 126, -1, -1, -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 215, - -1, -1, -1, -1, -1, 221, 222, -1, -1, -1, + -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, + 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 17, 667, 668, 669, + 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, + 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 296, -1, -1, -1, -1, -1, -1, -1, -1, 305, - 306, 307, -1, 309, -1, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, - 326, 327, 328, 329, 330, 331, -1, 333, -1, -1, - 336, 337, 338, 339, 340, -1, -1, 343, 344, 345, - 346, -1, -1, -1, 350, 351, 352, 353, 354, 355, - 356, 357, 358, -1, 360, -1, -1, -1, -1, -1, - -1, 367, -1, 369, -1, 371, 372, -1, 374, 375, - 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, -1, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, - -1, 427, -1, 429, 430, 431, 432, 433, 434, 435, - 436, 437, 438, -1, -1, -1, -1, -1, 444, 445, - 446, 447, 448, 449, 450, 451, -1, 453, 454, -1, - 456, 457, -1, -1, 460, -1, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, - 476, 477, 478, 479, 480, 481, 482, -1, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, -1, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, -1, -1, -1, 572, 573, -1, 575, - 576, 577, 578, -1, 580, 581, 582, 583, 584, 585, - -1, -1, -1, -1, 590, 591, 592, 593, 594, 595, - 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, - 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, - -1, 617, -1, 619, 620, -1, 622, 623, -1, 625, - 626, 627, 628, 629, 630, -1, 632, 633, 634, 635, - 636, 637, 638, -1, 640, 641, 642, -1, 644, 645, - 646, 647, -1, 649, 650, -1, -1, 653, -1, -1, - 656, 657, 658, -1, 660, -1, 662, 663, 664, 665, - -1, 667, 668, 669, -1, 671, 672, -1, 674, -1, - 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, - 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, - 29, 697, 698, 699, 700, 701, 702, 703, 704, 38, - 706, 707, 708, -1, 710, 711, 712, 713, -1, -1, - 716, 717, -1, 719, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, -1, -1, 735, - 736, -1, -1, 739, -1, 741, 742, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 87, -1, - -1, -1, -1, 92, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 126, -1, -1, - -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 215, -1, -1, -1, - -1, -1, 221, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 296, -1, -1, - -1, -1, -1, -1, -1, -1, 305, 306, 307, -1, - 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, - 329, 330, 331, -1, 333, -1, -1, 336, 337, 338, - 339, 340, -1, -1, 343, 344, 345, 346, -1, -1, - -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, - -1, 360, -1, -1, -1, -1, -1, -1, 367, -1, - 369, -1, 371, 372, -1, 374, 375, 376, 377, 378, - 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, -1, 396, 397, 398, - -1, 400, 401, 402, 403, 404, 405, 406, -1, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, -1, -1, -1, 427, -1, - 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, - -1, -1, -1, -1, -1, 444, 445, 446, 447, 448, - 449, 450, 451, -1, 453, 454, -1, 456, 457, -1, - -1, 460, -1, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, - 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, -1, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, - -1, -1, -1, 572, 573, -1, 575, 576, 577, 578, - -1, 580, 581, 582, 583, 584, 585, -1, -1, -1, - -1, 590, 591, 592, 593, 594, 595, 596, 597, 598, - 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, - 609, 610, 611, 612, 613, 614, 615, -1, 617, -1, - 619, 620, -1, 622, 623, -1, 625, 626, 627, 628, - 629, 630, -1, 632, 633, 634, 635, 636, 637, 638, - -1, 640, 641, 642, -1, 644, 645, 646, 647, -1, - 649, 650, -1, -1, 653, -1, -1, 656, 657, 658, - -1, 660, -1, 662, 663, 664, 665, -1, 667, 668, - 669, -1, 671, 672, -1, 674, -1, 676, 677, 678, - 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, - 689, 690, 691, 692, 693, 694, 695, 29, 697, 698, - 699, 700, 701, 702, 703, 704, 38, 706, 707, 708, - -1, 710, 711, 712, 713, -1, -1, 716, 717, -1, - 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, -1, -1, 735, 736, -1, -1, - 739, -1, 741, 742, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, - 92, -1, -1, -1, -1, 97, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 109, 110, 111, + -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, + 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, 18, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, + 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 104, 105, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, - -1, 133, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 215, -1, -1, -1, -1, -1, 221, - 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 296, -1, -1, -1, -1, -1, - -1, -1, -1, 305, 306, 307, -1, 309, -1, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, - -1, 333, -1, -1, 336, 337, 338, 339, 340, -1, - -1, 343, 344, 345, 346, -1, -1, -1, 350, 351, - 352, 353, 354, 355, 356, 357, 358, -1, 360, -1, - -1, -1, -1, -1, -1, 367, -1, 369, -1, 371, - 372, -1, 374, 375, 376, 377, 378, 379, -1, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, -1, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, -1, -1, -1, 427, -1, 429, 430, 431, - 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, - -1, -1, 444, 445, 446, 447, 448, 449, 450, 451, - -1, 453, 454, -1, 456, 457, -1, -1, 460, -1, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, -1, 474, 475, 476, 477, 478, 479, 480, 481, - 482, -1, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, -1, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 567, 568, -1, -1, -1, - 572, 573, -1, 575, 576, 577, 578, -1, 580, 581, - 582, 583, 584, 585, -1, -1, -1, -1, 590, 591, - 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, - 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, - 612, 613, 614, 615, -1, 617, -1, 619, 620, -1, - 622, 623, -1, 625, 626, 627, 628, 629, 630, -1, - 632, 633, 634, 635, 636, 637, 638, -1, 640, 641, - 642, -1, 644, 645, 646, 647, -1, 649, 650, -1, - -1, 653, -1, -1, 656, 657, 658, -1, 660, -1, - 662, 663, 664, 665, -1, 667, 668, 669, -1, 671, - 672, -1, 674, -1, 676, 677, 678, 679, 680, 681, - 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, - 692, 693, 694, 695, 29, 697, 698, 699, 700, 701, - 702, 703, 704, 38, 706, 707, 708, -1, 710, 711, - 712, 713, -1, -1, 716, 717, -1, 719, 720, 721, - 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, - 732, -1, -1, 735, 736, -1, -1, 739, -1, 741, - 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 87, -1, -1, -1, -1, 92, -1, -1, - -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 126, -1, -1, -1, -1, -1, -1, 133, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, + 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, 45, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 215, -1, -1, -1, -1, -1, 221, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, + 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, -1, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, - 325, 326, 327, 328, 329, 330, 331, -1, 333, -1, - -1, 336, 337, 338, 339, 340, -1, -1, 343, 344, - 345, 346, -1, -1, -1, 350, 351, 352, 353, 354, - 355, 356, 357, 358, -1, 360, -1, -1, -1, -1, - -1, -1, 367, -1, 369, -1, 371, 372, -1, 374, - 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - -1, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, -1, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, - -1, -1, 427, -1, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, -1, -1, -1, -1, -1, 444, - 445, 446, 447, 448, 449, 450, 451, -1, 453, 454, - -1, 456, 457, -1, -1, 460, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, -1, 474, - 475, 476, 477, 478, 479, 480, 481, 482, -1, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, -1, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, -1, -1, -1, 572, 573, -1, - 575, 576, 577, 578, -1, 580, 581, 582, 583, 584, - 585, -1, -1, -1, -1, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, -1, 617, -1, 619, 620, -1, 622, 623, -1, - 625, 626, 627, 628, 629, 630, -1, 632, 633, 634, - 635, 636, 637, 638, -1, 640, 641, 642, -1, 644, - 645, 646, 647, -1, 649, 650, -1, -1, 653, -1, - -1, 656, 657, 658, -1, 660, -1, 662, 663, 664, - 665, -1, 667, 668, 669, -1, 671, 672, -1, 674, - -1, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 29, 697, 698, 699, 700, 701, 702, 703, 704, - 38, 706, 707, 708, -1, 710, 711, 712, 713, -1, - -1, 716, 717, -1, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, -1, -1, - 735, 736, -1, -1, 739, -1, 741, 742, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, - -1, -1, -1, -1, 92, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, - -1, -1, -1, -1, -1, 133, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 215, -1, -1, - -1, -1, -1, 221, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, + 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, -1, 663, 664, 665, -1, 667, 668, 669, + 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 29, 739, + 740, 741, 742, -1, -1, -1, -1, 38, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 296, -1, - -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, - -1, 309, -1, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, - 328, 329, 330, 331, -1, 333, -1, -1, 336, 337, - 338, 339, 340, -1, -1, 343, 344, 345, 346, -1, - -1, -1, 350, 351, 352, 353, 354, 355, 356, 357, - 358, -1, 360, -1, -1, -1, -1, -1, -1, 367, - -1, 369, -1, 371, 372, -1, 374, 375, 376, 377, - 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, -1, 396, 397, - 398, -1, 400, 401, 402, 403, 404, 405, 406, -1, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, -1, -1, -1, 427, - -1, 429, 430, 431, 432, 433, 434, 435, 436, 437, - 438, -1, -1, -1, -1, -1, 444, 445, 446, 447, - 448, 449, 450, 451, -1, 453, 454, -1, 456, 457, - -1, -1, 460, -1, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, - 478, 479, 480, 481, 482, -1, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, -1, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, -1, -1, -1, 572, 573, -1, 575, 576, 577, - 578, -1, 580, 581, 582, 583, 584, 585, -1, -1, - -1, -1, 590, 591, 592, 593, 594, 595, 596, 597, - 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - 608, 609, 610, 611, 612, 613, 614, 615, -1, 617, - -1, 619, 620, -1, 622, 623, -1, 625, 626, 627, - 628, 629, 630, -1, 632, 633, 634, 635, 636, 637, - 638, -1, 640, 641, 642, -1, 644, 645, 646, 647, - -1, 649, 650, -1, -1, 653, -1, -1, 656, 657, - 658, -1, 660, -1, 662, 663, 664, 665, -1, 667, - 668, 669, -1, 671, 672, -1, 674, -1, 676, 677, - 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, - 688, 689, 690, 691, 692, 693, 694, 695, 29, 697, - 698, 699, 700, 701, 702, 703, 704, 38, 706, 707, - 708, -1, 710, 711, 712, 713, -1, -1, 716, 717, - -1, 719, 720, 721, 722, 723, 724, 725, 726, 727, - 728, 729, 730, 731, 732, -1, -1, 735, 736, -1, - -1, 739, -1, 741, 742, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 92, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, @@ -19116,7 +18570,7 @@ 711, 712, 713, -1, -1, 716, 717, -1, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, -1, -1, 735, 736, -1, -1, 739, -1, - 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, + 741, 742, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 92, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, 111, -1, -1, @@ -19138,7 +18592,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 296, -1, -1, -1, -1, -1, -1, -1, + 294, -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, -1, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, @@ -19182,7 +18636,7 @@ 704, 38, 706, 707, 708, -1, 710, 711, 712, 713, -1, -1, 716, 717, -1, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, -1, - -1, 735, 736, -1, -1, 739, -1, 741, 742, -1, + -1, 735, 736, -1, -1, 739, -1, 741, 742, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, 92, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -19204,7 +18658,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 296, + -1, -1, -1, -1, -1, -1, -1, 294, -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, -1, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, 326, @@ -19283,7 +18737,7 @@ -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, -1, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, - 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, 427, -1, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, -1, -1, 444, 445, 446, 447, 448, 449, @@ -19349,7 +18803,7 @@ -1, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, -1, 396, 397, 398, -1, 400, 401, 402, - 403, 404, 405, 406, -1, 408, 409, 410, 411, -1, + 403, 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, 427, -1, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, -1, @@ -19367,907 +18821,687 @@ 553, -1, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, -1, -1, -1, 572, 573, -1, 575, 576, 577, 578, -1, 580, 581, 582, - 583, 584, 585, -1, -1, -1, -1, 590, 591, 592, - 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, - 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, - 613, 614, 615, -1, 617, -1, 619, 620, -1, 622, - 623, -1, 625, 626, 627, 628, 629, 630, -1, 632, - 633, 634, 635, 636, 637, 638, -1, 640, 641, 642, - -1, 644, 645, 646, 647, -1, 649, 650, -1, -1, - 653, -1, -1, 656, 657, 658, -1, 660, -1, 662, - 663, 664, 665, -1, 667, 668, 669, 29, 671, 672, - -1, 674, -1, 676, 677, 678, 679, 680, 681, 682, - 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, - 693, 694, 695, -1, 697, 698, 699, 700, 701, 702, - 703, 704, -1, 706, 707, 708, -1, 710, 711, 712, - 713, -1, -1, 716, 717, -1, 719, 720, 721, 722, - 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, - 92, -1, 735, 736, -1, -1, 739, -1, 741, 742, - -1, -1, -1, -1, -1, -1, -1, 109, 110, 111, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 215, -1, -1, -1, -1, -1, 221, - 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 296, -1, -1, -1, -1, -1, - -1, -1, -1, 305, 306, 307, -1, 309, -1, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, - -1, 333, -1, -1, 336, 337, 338, 339, 340, -1, - -1, 343, 344, 345, 346, -1, -1, -1, 350, 351, - 352, 353, 354, -1, 356, 357, 358, -1, 360, -1, - -1, -1, -1, -1, -1, 367, -1, 369, -1, 371, - 372, -1, 374, 375, 376, 377, 378, 379, -1, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, -1, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, - -1, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, -1, -1, -1, 427, -1, -1, 430, 431, - 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, - -1, -1, 444, 445, 446, 447, 448, 449, 450, 451, - -1, 453, 454, -1, 456, 457, -1, -1, 460, -1, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, -1, 474, 475, 476, 477, 478, 479, 480, 481, - 482, -1, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, -1, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 567, -1, -1, -1, -1, - 572, 573, -1, 575, 576, 577, 578, -1, 580, 581, - 582, 583, 584, 585, -1, -1, -1, -1, 590, 591, - 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, - 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, - 612, 613, 614, 615, -1, 617, -1, 619, 620, -1, - 622, 623, -1, 625, 626, 627, 628, 629, 630, -1, - 632, 633, 634, 635, 636, 637, 638, -1, 640, 641, - 642, -1, 644, 645, 646, 647, -1, 649, 650, -1, - -1, 653, -1, -1, 656, 657, 658, -1, 660, -1, - 662, 663, 664, 665, -1, 667, 668, 669, -1, 671, - 672, -1, 674, -1, 676, 677, 678, 679, 680, 681, - 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, - 692, 693, 694, 695, -1, 697, 698, 699, 700, 701, - 702, 703, 704, -1, 706, 707, 708, -1, 710, 711, - 712, 713, 37, 38, 716, 717, -1, 719, 720, 721, - 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, - 732, -1, -1, 735, 736, -1, -1, 739, -1, 741, - 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, -1, 739, 740, 741, 742, 45, 46, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, - 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, - 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, - 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, - 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, - 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, - 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, - 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, - 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, - 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, - 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, - 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, - 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, - 737, 45, 739, 740, 741, 742, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, - 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, - 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, 46, 739, 740, 741, 742, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, - 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, - 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, - 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, - 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, - 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, - 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, - 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, - 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, - 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, - 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, - 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, - 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, - 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, - 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, - 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, - 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, - 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, - 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, - 742, 57, -1, -1, -1, 61, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 583, 584, 585, -1, -1, -1, -1, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, -1, 617, -1, 619, 620, -1, 622, + 623, -1, 625, 626, 627, 628, 629, 630, -1, 632, + 633, 634, 635, 636, 637, 638, -1, 640, 641, 642, + -1, 644, 645, 646, 647, -1, 649, 650, -1, -1, + 653, -1, -1, 656, 657, 658, -1, 660, -1, 662, + 663, 664, 665, -1, 667, 668, 669, -1, 671, 672, + -1, 674, -1, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 29, 697, 698, 699, 700, 701, 702, + 703, 704, 38, 706, 707, 708, -1, 710, 711, 712, + 713, -1, -1, 716, 717, -1, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + -1, -1, 735, 736, -1, -1, 739, -1, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 89, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 104, -1, - -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, + -1, 87, -1, -1, -1, -1, 92, -1, -1, -1, + -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 126, -1, -1, -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 145, + -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 215, + -1, -1, -1, -1, -1, 221, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, - -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 296, -1, -1, -1, -1, -1, -1, -1, -1, 305, + 306, 307, -1, 309, -1, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, + 326, 327, 328, 329, 330, 331, -1, 333, -1, -1, + 336, 337, 338, 339, 340, -1, -1, 343, 344, 345, + 346, -1, -1, -1, 350, 351, 352, 353, 354, 355, + 356, 357, 358, -1, 360, -1, -1, -1, -1, -1, + -1, 367, -1, 369, -1, 371, 372, -1, 374, 375, + 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, -1, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, - 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 406, -1, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, + -1, 427, -1, 429, 430, 431, 432, 433, 434, 435, + 436, 437, 438, -1, -1, -1, -1, -1, 444, 445, + 446, 447, 448, 449, 450, 451, -1, 453, 454, -1, + 456, 457, -1, -1, 460, -1, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, + 476, 477, 478, 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 546, 547, 548, 549, 550, 551, 552, 553, -1, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, - 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 566, 567, 568, -1, -1, -1, 572, 573, -1, 575, + 576, 577, 578, -1, 580, 581, 582, 583, 584, 585, + -1, -1, -1, -1, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, - 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, - 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, - 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, + -1, 617, -1, 619, 620, -1, 622, 623, -1, 625, + 626, 627, 628, 629, 630, -1, 632, 633, 634, 635, + 636, 637, 638, -1, 640, 641, 642, -1, 644, 645, + 646, 647, -1, 649, 650, -1, -1, 653, -1, -1, + 656, 657, 658, -1, 660, -1, 662, 663, 664, 665, + -1, 667, 668, 669, -1, 671, 672, -1, 674, -1, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, - 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, - 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, - 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, - 736, 737, -1, 739, 740, 741, 742, 57, -1, -1, - -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 104, -1, -1, -1, -1, 109, - 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 145, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 173, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 272, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, - 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, - 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, - 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, - 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, - 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, - 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, - 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, - 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, - 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, - 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, - 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, - 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, - 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, - 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, - 740, 741, 742, 57, -1, -1, -1, 61, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 89, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 104, -1, -1, -1, -1, 109, 110, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 29, 697, 698, 699, 700, 701, 702, 703, 704, 38, + 706, 707, 708, -1, 710, 711, 712, 713, -1, -1, + 716, 717, -1, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, -1, -1, 735, + 736, -1, -1, 739, -1, 741, 742, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 87, -1, + -1, -1, -1, 92, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, + 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 126, -1, -1, + -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 215, -1, -1, -1, + -1, -1, 221, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, - 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, - 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, 61, 739, 740, 741, 742, -1, + -1, -1, -1, -1, -1, -1, -1, 296, -1, -1, + -1, -1, -1, -1, -1, -1, 305, 306, 307, -1, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, + 329, 330, 331, -1, 333, -1, -1, 336, 337, 338, + 339, 340, -1, -1, 343, 344, 345, 346, -1, -1, + -1, 350, 351, 352, 353, 354, 355, 356, 357, 358, + -1, 360, -1, -1, -1, -1, -1, -1, 367, -1, + 369, -1, 371, 372, -1, 374, 375, 376, 377, 378, + 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, -1, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, -1, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, -1, -1, -1, 427, -1, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + -1, -1, -1, -1, -1, 444, 445, 446, 447, 448, + 449, 450, 451, -1, 453, 454, -1, 456, 457, -1, + -1, 460, -1, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, + 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, -1, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + -1, -1, -1, 572, 573, -1, 575, 576, 577, 578, + -1, 580, 581, 582, 583, 584, 585, -1, -1, -1, + -1, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, -1, 617, -1, + 619, 620, -1, 622, 623, -1, 625, 626, 627, 628, + 629, 630, -1, 632, 633, 634, 635, 636, 637, 638, + -1, 640, 641, 642, -1, 644, 645, 646, 647, -1, + 649, 650, -1, -1, 653, -1, -1, 656, 657, 658, + -1, 660, -1, 662, 663, 664, 665, -1, 667, 668, + 669, -1, 671, 672, -1, 674, -1, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 29, 697, 698, + 699, 700, 701, 702, 703, 704, 38, 706, 707, 708, + -1, 710, 711, 712, 713, -1, -1, 716, 717, -1, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, -1, -1, 735, 736, -1, -1, + 739, -1, 741, 742, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, + 92, -1, -1, -1, -1, 97, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, + -1, 133, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 215, -1, -1, -1, -1, -1, 221, + 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 296, -1, -1, -1, -1, -1, + -1, -1, -1, 305, 306, 307, -1, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, + -1, 333, -1, -1, 336, 337, 338, 339, 340, -1, + -1, 343, 344, 345, 346, -1, -1, -1, 350, 351, + 352, 353, 354, 355, 356, 357, 358, -1, 360, -1, + -1, -1, -1, -1, -1, 367, -1, 369, -1, 371, + 372, -1, 374, 375, 376, 377, 378, 379, -1, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, -1, 396, 397, 398, -1, 400, 401, + 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, -1, -1, -1, 427, -1, 429, 430, 431, + 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, + -1, -1, 444, 445, 446, 447, 448, 449, 450, 451, + -1, 453, 454, -1, 456, 457, -1, -1, 460, -1, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, -1, 474, 475, 476, 477, 478, 479, 480, 481, + 482, -1, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, -1, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, -1, -1, -1, + 572, 573, -1, 575, 576, 577, 578, -1, 580, 581, + 582, 583, 584, 585, -1, -1, -1, -1, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, -1, 617, -1, 619, 620, -1, + 622, 623, -1, 625, 626, 627, 628, 629, 630, -1, + 632, 633, 634, 635, 636, 637, 638, -1, 640, 641, + 642, -1, 644, 645, 646, 647, -1, 649, 650, -1, + -1, 653, -1, -1, 656, 657, 658, -1, 660, -1, + 662, 663, 664, 665, -1, 667, 668, 669, -1, 671, + 672, -1, 674, -1, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 29, 697, 698, 699, 700, 701, + 702, 703, 704, 38, 706, 707, 708, -1, 710, 711, + 712, 713, -1, -1, 716, 717, -1, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, -1, -1, 735, 736, -1, -1, 739, -1, 741, + 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 87, -1, -1, -1, -1, 92, -1, -1, + -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 126, -1, -1, -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, - 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, - 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, - 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, - 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, - 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, - 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, - 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, - 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, - 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, - 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, - 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, - 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, - 737, 61, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 215, -1, -1, -1, -1, -1, 221, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, - 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, + 305, 306, 307, -1, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, + 325, 326, 327, 328, 329, 330, 331, -1, 333, -1, + -1, 336, 337, 338, 339, 340, -1, -1, 343, 344, + 345, 346, -1, -1, -1, 350, 351, 352, 353, 354, + 355, 356, 357, 358, -1, 360, -1, -1, -1, -1, + -1, -1, 367, -1, 369, -1, 371, 372, -1, 374, + 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + -1, 396, 397, 398, -1, 400, 401, 402, 403, 404, + 405, 406, -1, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, + -1, -1, 427, -1, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, -1, -1, -1, -1, -1, 444, + 445, 446, 447, 448, 449, 450, 451, -1, 453, 454, + -1, 456, 457, -1, -1, 460, -1, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, -1, 474, + 475, 476, 477, 478, 479, 480, 481, 482, -1, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, -1, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, -1, -1, -1, 572, 573, -1, + 575, 576, 577, 578, -1, 580, 581, 582, 583, 584, + 585, -1, -1, -1, -1, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, -1, 617, -1, 619, 620, -1, 622, 623, -1, + 625, 626, 627, 628, 629, 630, -1, 632, 633, 634, + 635, 636, 637, 638, -1, 640, 641, 642, -1, 644, + 645, 646, 647, -1, 649, 650, -1, -1, 653, -1, + -1, 656, 657, 658, -1, 660, -1, 662, 663, 664, + 665, -1, 667, 668, 669, -1, 671, 672, -1, 674, + -1, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 29, 697, 698, 699, 700, 701, 702, 703, 704, + 38, 706, 707, 708, -1, 710, 711, 712, 713, -1, + -1, 716, 717, -1, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, -1, -1, + 735, 736, -1, -1, 739, -1, 741, 742, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, + -1, -1, -1, -1, 92, -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, + -1, -1, -1, -1, -1, 133, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 215, -1, -1, + -1, -1, -1, 221, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, - 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, - 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, - 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, - 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, - 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, - 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, - 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, - 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, - 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, - 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, - 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, - 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, - 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, - 730, 731, 732, 733, 734, 735, 736, 737, 61, 739, - 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 296, -1, + -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, + -1, 309, -1, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, + 328, 329, 330, 331, -1, 333, -1, -1, 336, 337, + 338, 339, 340, -1, -1, 343, 344, 345, 346, -1, + -1, -1, 350, 351, 352, 353, 354, 355, 356, 357, + 358, -1, 360, -1, -1, -1, -1, -1, -1, 367, + -1, 369, -1, 371, 372, -1, 374, 375, 376, 377, + 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, -1, 396, 397, + 398, -1, 400, 401, 402, 403, 404, 405, 406, -1, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, -1, -1, -1, 427, + -1, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, -1, -1, -1, -1, -1, 444, 445, 446, 447, + 448, 449, 450, 451, -1, 453, 454, -1, 456, 457, + -1, -1, 460, -1, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, + 478, 479, 480, 481, 482, -1, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, -1, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, -1, -1, -1, 572, 573, -1, 575, 576, 577, + 578, -1, 580, 581, 582, 583, 584, 585, -1, -1, + -1, -1, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, -1, 617, + -1, 619, 620, -1, 622, 623, -1, 625, 626, 627, + 628, 629, 630, -1, 632, 633, 634, 635, 636, 637, + 638, -1, 640, 641, 642, -1, 644, 645, 646, 647, + -1, 649, 650, -1, -1, 653, -1, -1, 656, 657, + 658, -1, 660, -1, 662, 663, 664, 665, -1, 667, + 668, 669, -1, 671, 672, -1, 674, -1, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 29, 697, + 698, 699, 700, 701, 702, 703, 704, 38, 706, 707, + 708, -1, 710, 711, 712, 713, -1, -1, 716, 717, + -1, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, -1, -1, 735, 736, -1, + -1, 739, -1, 741, 742, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 87, -1, -1, -1, + -1, 92, -1, -1, -1, -1, 97, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, + 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 126, -1, -1, -1, -1, + -1, -1, 133, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 215, -1, -1, -1, -1, -1, + 221, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 296, -1, -1, -1, -1, + -1, -1, -1, -1, 305, 306, 307, -1, 309, -1, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, + 331, -1, 333, -1, -1, 336, 337, 338, 339, 340, + -1, -1, 343, 344, 345, 346, -1, -1, -1, 350, + 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, + -1, -1, -1, -1, -1, -1, 367, -1, 369, -1, + 371, 372, -1, 374, 375, 376, 377, 378, 379, -1, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, -1, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, -1, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, -1, -1, -1, 427, -1, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, + -1, -1, -1, 444, 445, 446, 447, 448, 449, 450, + 451, -1, 453, 454, -1, 456, 457, -1, -1, 460, + -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, + 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, -1, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, -1, -1, + -1, 572, 573, -1, 575, 576, 577, 578, -1, 580, + 581, 582, 583, 584, 585, -1, -1, -1, -1, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, -1, 617, -1, 619, 620, + -1, 622, 623, -1, 625, 626, 627, 628, 629, 630, + -1, 632, 633, 634, 635, 636, 637, 638, -1, 640, + 641, 642, -1, 644, 645, 646, 647, -1, 649, 650, + -1, -1, 653, -1, -1, 656, 657, 658, -1, 660, + -1, 662, 663, 664, 665, -1, 667, 668, 669, -1, + 671, 672, -1, 674, -1, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 29, 697, 698, 699, 700, + 701, 702, 703, 704, 38, 706, 707, 708, -1, 710, + 711, 712, 713, -1, -1, 716, 717, -1, 719, 720, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, -1, -1, 735, 736, -1, -1, 739, -1, + 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 87, -1, -1, -1, -1, 92, -1, + -1, -1, -1, 97, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 126, -1, -1, -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 215, -1, -1, -1, -1, -1, 221, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, - 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, - 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, - 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, - 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, - 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, - 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, - 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, - 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, - 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, - 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, - 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, - 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, - 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, - 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, - 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, - 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, - 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, - 733, 734, 735, 736, 737, 61, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 296, -1, -1, -1, -1, -1, -1, -1, + -1, 305, 306, 307, -1, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, + 324, 325, 326, 327, 328, 329, 330, 331, -1, 333, + -1, -1, 336, 337, 338, 339, 340, -1, -1, 343, + 344, 345, 346, -1, -1, -1, 350, 351, 352, 353, + 354, 355, 356, 357, 358, -1, 360, -1, -1, -1, + -1, -1, -1, 367, -1, 369, -1, 371, 372, -1, + 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, -1, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + -1, -1, -1, 427, -1, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, -1, -1, -1, -1, -1, + 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, + 454, -1, 456, 457, -1, -1, 460, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, -1, + 474, 475, 476, 477, 478, 479, 480, 481, 482, -1, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + -1, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, -1, -1, -1, 572, 573, + -1, 575, 576, 577, 578, -1, 580, 581, 582, 583, + 584, 585, -1, -1, -1, -1, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, -1, 617, -1, 619, 620, -1, 622, 623, + -1, 625, 626, 627, 628, 629, 630, -1, 632, 633, + 634, 635, 636, 637, 638, -1, 640, 641, 642, -1, + 644, 645, 646, 647, -1, 649, 650, -1, -1, 653, + -1, -1, 656, 657, 658, -1, 660, -1, 662, 663, + 664, 665, -1, 667, 668, 669, -1, 671, 672, -1, + 674, -1, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 29, 697, 698, 699, 700, 701, 702, 703, + 704, 38, 706, 707, 708, -1, 710, 711, 712, 713, + -1, -1, 716, 717, -1, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, -1, + -1, 735, 736, -1, -1, 739, -1, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 87, -1, -1, -1, -1, 92, -1, -1, -1, -1, + 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, + -1, -1, -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 215, -1, + -1, -1, -1, -1, 221, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 296, + -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, + 307, -1, 309, -1, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, -1, 324, 325, 326, + 327, 328, 329, 330, 331, -1, 333, -1, -1, 336, + 337, 338, 339, 340, -1, -1, 343, 344, 345, 346, + -1, -1, -1, 350, 351, 352, 353, 354, 355, 356, + 357, 358, -1, 360, -1, -1, -1, -1, -1, -1, + 367, -1, 369, -1, 371, 372, -1, 374, 375, 376, + 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, -1, 396, + 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, + -1, 408, 409, 410, 411, -1, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + 427, -1, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, -1, -1, -1, -1, -1, 444, 445, 446, + 447, 448, 449, 450, 451, -1, 453, 454, -1, 456, + 457, -1, -1, 460, -1, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, + 477, 478, 479, 480, 481, 482, -1, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, -1, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, -1, -1, -1, 572, 573, -1, 575, 576, + 577, 578, -1, 580, 581, 582, 583, 584, 585, -1, + -1, -1, -1, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, -1, + 617, -1, 619, 620, -1, 622, 623, -1, 625, 626, + 627, 628, 629, 630, -1, 632, 633, 634, 635, 636, + 637, 638, -1, 640, 641, 642, -1, 644, 645, 646, + 647, -1, 649, 650, -1, -1, 653, -1, -1, 656, + 657, 658, -1, 660, -1, 662, 663, 664, 665, -1, + 667, 668, 669, -1, 671, 672, -1, 674, -1, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 29, + 697, 698, 699, 700, 701, 702, 703, 704, 38, 706, + 707, 708, -1, 710, 711, 712, 713, -1, -1, 716, + 717, -1, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, -1, -1, 735, 736, + -1, -1, 739, -1, 741, 742, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 87, -1, -1, + -1, -1, 92, -1, -1, -1, -1, 97, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, + 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 126, -1, -1, -1, + -1, -1, -1, 133, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, - -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, - 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, - 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, - 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, - 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, - 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, - 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, - 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, - 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, - 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, - 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, - 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, - 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, - 736, 737, 61, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 215, -1, -1, -1, -1, + -1, 221, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 296, -1, -1, -1, + -1, -1, -1, -1, -1, 305, 306, 307, -1, 309, + -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, + 330, 331, -1, 333, -1, -1, 336, 337, 338, 339, + 340, -1, -1, 343, 344, 345, 346, -1, -1, -1, + 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, + 360, -1, -1, -1, -1, -1, -1, 367, -1, 369, + -1, 371, 372, -1, 374, 375, 376, 377, 378, 379, + -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, -1, 396, 397, 398, -1, + 400, 401, 402, 403, 404, 405, 406, -1, 408, 409, + 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, -1, -1, -1, 427, -1, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, -1, + -1, -1, -1, -1, 444, 445, 446, 447, 448, 449, + 450, 451, -1, 453, 454, -1, 456, 457, -1, -1, + 460, -1, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, -1, 474, 475, 476, 477, 478, 479, + 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, -1, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, -1, + -1, -1, 572, 573, -1, 575, 576, 577, 578, -1, + 580, 581, 582, 583, 584, 585, -1, -1, -1, -1, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, -1, 617, -1, 619, + 620, -1, 622, 623, -1, 625, 626, 627, 628, 629, + 630, -1, 632, 633, 634, 635, 636, 637, 638, -1, + 640, 641, 642, -1, 644, 645, 646, 647, -1, 649, + 650, -1, -1, 653, -1, -1, 656, 657, 658, -1, + 660, -1, 662, 663, 664, 665, -1, 667, 668, 669, + 29, 671, 672, -1, 674, -1, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, -1, 697, 698, 699, + 700, 701, 702, 703, 704, -1, 706, 707, 708, -1, + 710, 711, 712, 713, -1, -1, 716, 717, -1, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 92, -1, 735, 736, -1, -1, 739, + -1, 741, 742, -1, -1, -1, -1, -1, -1, -1, + 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 215, -1, -1, -1, + -1, -1, 221, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, + -1, -1, -1, -1, -1, -1, -1, 296, -1, -1, + -1, -1, -1, -1, -1, -1, 305, 306, 307, -1, + 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, + 329, 330, 331, -1, 333, -1, -1, 336, 337, 338, + 339, 340, -1, -1, 343, 344, 345, 346, -1, -1, + -1, 350, 351, 352, 353, 354, -1, 356, 357, 358, + -1, 360, -1, -1, -1, -1, -1, -1, 367, -1, + 369, -1, 371, 372, -1, 374, 375, 376, 377, 378, + 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, -1, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, -1, 408, + 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, -1, -1, -1, 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + -1, -1, -1, -1, -1, 444, 445, 446, 447, 448, + 449, 450, 451, -1, 453, 454, -1, 456, 457, -1, + -1, 460, -1, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, -1, 474, 475, 476, 477, 478, + 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, - 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 549, 550, 551, 552, 553, -1, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, -1, + -1, -1, -1, 572, 573, -1, 575, 576, 577, 578, + -1, 580, 581, 582, 583, 584, 585, -1, -1, -1, + -1, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, - 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, - 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, - 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, - 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, - 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, - 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, - 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 609, 610, 611, 612, 613, 614, 615, -1, 617, -1, + 619, 620, -1, 622, 623, -1, 625, 626, 627, 628, + 629, 630, -1, 632, 633, 634, 635, 636, 637, 638, + -1, 640, 641, 642, -1, 644, 645, 646, 647, -1, + 649, 650, -1, -1, 653, -1, -1, 656, 657, 658, + -1, 660, -1, 662, 663, 664, 665, -1, 667, 668, + 669, -1, 671, 672, -1, 674, -1, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, - 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, - 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 689, 690, 691, 692, 693, 694, 695, -1, 697, 698, + 699, 700, 701, 702, 703, 704, -1, 706, 707, 708, + -1, 710, 711, 712, 713, 37, 38, 716, 717, -1, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 734, 735, 736, 737, 61, - 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, + 729, 730, 731, 732, -1, -1, 735, 736, -1, -1, + 739, -1, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -20303,7 +19537,7 @@ 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, @@ -20322,217 +19556,98 @@ 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, - 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, - 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, - 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, - 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, - 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, - 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, - 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, - 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, - 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, - 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, - 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, - 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, - 732, 733, 734, 735, 736, 737, 61, 739, 740, 741, - 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, -1, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, -1, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, -1, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, - 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, - 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, - 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, - 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, - 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, - 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, - 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, - 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, - 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, - 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, - 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, - 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, - 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, - 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, - 741, 742, -1, -1, 109, 110, -1, -1, -1, -1, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, + 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, + 742, 45, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 763, -1, -1, -1, -1, -1, 769, 770, - 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 135, 770, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, + 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 45, 739, 740, 741, 742, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -20592,15 +19707,16 @@ 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, - 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, + 731, 732, 733, 734, 735, 736, 737, 46, 739, 740, + 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 135, 770, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -20608,64 +19724,72 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, - 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, - 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, - 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, - 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, - 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, - 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, - 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, - 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, - 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, - 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, - 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, - 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, - 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 770, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, + -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, + 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, + 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, + 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, + 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, + 739, 740, 741, 742, 57, -1, -1, -1, 61, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 104, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -20673,6 +19797,8 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -20681,7 +19807,7 @@ 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, @@ -20720,78 +19846,18 @@ 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, - 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 769, 770, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, - -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, - 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, - 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, - 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, - 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, - 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, - 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, - 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, - 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, - 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, - 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, - 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, - 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, - 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, + 57, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 770, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 89, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, + -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -20800,62 +19866,67 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, + -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, -1, 739, 740, 741, 742, 57, -1, -1, -1, + 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 763, -1, - -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 104, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -20864,6 +19935,8 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, @@ -20871,7 +19944,7 @@ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, @@ -20909,10 +19982,82 @@ 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, - 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 122, -1, -1, -1, -1, - -1, 762, -1, -1, -1, -1, -1, -1, 769, -1, + 731, 732, 733, 734, 735, 736, 737, 61, 739, 740, + 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, + 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 61, 739, 740, 741, 742, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -20973,10 +20118,82 @@ 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, - 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, + 737, 61, 739, 740, 741, 742, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, + 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, + 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, + 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, 61, 739, + 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -20998,7 +20215,7 @@ 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, @@ -21036,10 +20253,82 @@ 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, - 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, + 733, 734, 735, 736, 737, 61, 739, 740, 741, 742, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, + -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 61, 739, 740, 741, 742, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 769, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21062,7 +20351,7 @@ 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, + -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, @@ -21099,12 +20388,12 @@ 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, - 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 61, + 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21120,55 +20409,55 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 754, + 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, + 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, -1, 454, 455, 456, 457, 458, -1, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, -1, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, + 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, + 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21183,53 +20472,312 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, - 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, - 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, - 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, - 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, - 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, - 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, - 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, - 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, - 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, - 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, - 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, - 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, - 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, - 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, - 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, - 741, 742, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 762, -1, -1, -1, -1, -1, -1, 769, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, + 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + -1, 739, 740, 741, 742, -1, -1, 109, 110, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 763, -1, -1, -1, -1, + -1, 769, 770, 135, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, + 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, + 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, + 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 135, 770, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, + 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 135, 770, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, + 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, + 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 770, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, + 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, + 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 769, + 770, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21245,55 +20793,55 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, + -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, - 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, - 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, - 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, - 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, - 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, - 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, - 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, - 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, - 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, - 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, - 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, - 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, - 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 770, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21308,55 +20856,56 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 297, -1, -1, -1, -1, + -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, + 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, + 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 763, -1, -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, - 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, - 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, - 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, - 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, - 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, - 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, - 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, - 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, - 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, - 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, - 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, - 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, - 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, - 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, - 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, - 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, - 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, - 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, - 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21371,56 +20920,60 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, + 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 122, -1, + -1, -1, -1, -1, 762, -1, -1, -1, -1, -1, + -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, - -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, - 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, - 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, - 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, - 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, - 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, - 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, - 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, - 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, - 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, - 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, - 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, - 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, - 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21431,66 +20984,116 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, + 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, + 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 769, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, + 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, + 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21500,118 +21103,124 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, - 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, - 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, - 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, - 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, - 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, - 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, - 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, - 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, - 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, - 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, - 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, - 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, - 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, - 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, - 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, - 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, 104, 739, 740, - 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 167, 168, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 183, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 242, 243, 244, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, - 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, - 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, - 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, - 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, - 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, - 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, - 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, - 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, - 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, - 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, - 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, - 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, - 737, -1, 739, 740, 741, 742, 94, -1, -1, -1, - -1, 99, -1, -1, -1, -1, 753, -1, -1, -1, - -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, + 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, + 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, + 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 754, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21672,11 +21281,10 @@ 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, - 94, 739, 740, 741, 742, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 739, 740, 741, 742, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 762, -1, -1, -1, -1, -1, + -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21739,7 +21347,7 @@ 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21801,8 +21409,8 @@ 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 754, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21864,9 +21472,9 @@ 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 754, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21928,8 +21536,8 @@ 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 754, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21990,8 +21598,392 @@ 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, - -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 754, -1, -1, -1, + 104, 739, 740, 741, 742, 109, 110, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 762, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 167, 168, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 183, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 242, 243, + 244, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, + 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, -1, 739, 740, 741, 742, 94, + -1, -1, -1, -1, 99, -1, -1, -1, -1, 753, + -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, + 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, 94, 739, 740, 741, 742, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, + 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, + 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 754, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, + 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, + 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 754, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, + -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, + 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, + 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, + 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, + 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, + 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 754, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -22009,53 +22001,55 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, + 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 754, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, - 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, - 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, - 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 754, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -22070,56 +22064,55 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, + 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, + 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 754, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, - 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, - 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, - 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, - 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, - 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, - 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, - 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, - 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, - 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, - 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, - 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, - 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, - 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, - 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, - 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 754, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -22129,314 +22122,311 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 234, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, - -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, - 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, - 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, - 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, - 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, - 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, - 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, - 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, - 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, - 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, - 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, - 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, - 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, - 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, - -1, 747, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 754, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 173, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 190, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 234, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, - 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, - 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, - 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, - 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, - 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, - 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, - 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, - 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, - 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, - 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, - 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, - 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, - 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, - 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, - 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, - 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, - 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, - 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 145, -1, -1, + -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, + 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, + 109, 110, -1, -1, 747, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 173, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 190, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 225, -1, -1, + -1, 190, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, - 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, - 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, - 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, - 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, - 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, - 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, - 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, - 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, - 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, - 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, - 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, - 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, - -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, + -1, -1, -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, + -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, + 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, + 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, + 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, + 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, + 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 190, -1, -1, -1, + 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 190, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, - 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, - 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 190, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 233, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 243, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, - 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, - 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, - 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, - 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, - 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, - 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, - 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, - 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, - 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, - 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, - 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, - 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, - 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, - 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, - 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, + 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -22447,59 +22437,61 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 233, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 243, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, - -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, - 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, - 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, - 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, - 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, - 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, - 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, - 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, - 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, - 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, - 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, - 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, - 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, - 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -22511,129 +22503,129 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 243, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, + 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, + 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, - 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, - 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, - 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, - 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, - 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, - 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, - 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, - 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, - 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, - 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, - 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, - 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, - 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, - 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, - 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, - 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, - 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, - 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, - 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 243, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, + -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, + 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, + 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, + 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, + 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, + 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, - 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, - 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, - 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, - 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, - 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, - 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, - 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, - 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, - 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, - 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, - 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, - 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, - -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 199, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -22643,52 +22635,51 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, + 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, - 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, - 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, - 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -22696,6 +22687,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 199, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -22703,55 +22695,54 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, - 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, - 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, - 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, - 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, - 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, - 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, - 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, - 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, - 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, - 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, - 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, - 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, - 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, - 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, - 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, + 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, + 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -22760,61 +22751,61 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 199, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, - -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, - 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, - 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, - 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, - 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, - 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, - 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, - 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, - 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, - 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, - 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, - 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, - 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, - 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -22823,6 +22814,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 199, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -22833,52 +22825,53 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, + 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, + 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, - 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, - 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, - 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, - 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, - 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, - 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, - 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, - 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, - 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, - 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, - 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, - 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, - 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, - 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, - 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, - 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, - 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, - 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, - 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -22895,53 +22888,54 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, + -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, + 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, + 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, + 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, + 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, + 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, - 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, - 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, - 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, - 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, - 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, - 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, - 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, - 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, - 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, - 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, - 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, - 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, - -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -22958,54 +22952,53 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, + 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, - 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, - 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, - 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -23022,53 +23015,53 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, + 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, + 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, - 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, - 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, - 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, - 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, - 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, - 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, - 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, - 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, - 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, - 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, - 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, - 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, - 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, - 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, - 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -23085,53 +23078,53 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, - -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, - 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, - 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, - 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, - 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, - 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, - 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, - 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, - 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, - 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, - 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, - 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, - 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, - 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -23149,53 +23142,53 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, -1, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, + 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, + 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, -1, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, - 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, - 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, - 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, - 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, - 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, - 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, - 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, - 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, - 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, - 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, - 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, - 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, - 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, - 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, - 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, - 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, - 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, - 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, - 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -23212,53 +23205,53 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, -1, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, + -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, + 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, + 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, + 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, + 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, + 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, - 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, - 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, - 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, - 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, - 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, - 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, - 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, - 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, - 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, - 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, - 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, - 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, - -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -23276,53 +23269,52 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, + 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, - 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, - 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, -1, - 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, - 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -23337,55 +23329,54 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, -1, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, - 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, -1, 454, 455, 456, 457, 458, -1, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, -1, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, - 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, - 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, - 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, - 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, - 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, - 640, 641, 642, 643, 644, 645, 646, -1, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, - 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, - 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, - 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, - 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, - 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, - 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, - 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, - 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, -1, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, + 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, -1, 734, 735, 736, 737, -1, 739, 740, + 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -23400,147 +23391,210 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 294, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, - 306, 307, -1, 309, -1, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, - 326, 327, 328, 329, 330, 331, -1, -1, -1, -1, - 336, 337, 338, 339, 340, -1, -1, 343, 344, 345, - 346, -1, -1, -1, 350, 351, 352, 353, 354, -1, - 356, 357, 358, -1, 360, -1, -1, -1, -1, -1, - -1, 367, -1, 369, -1, 371, 372, -1, 374, 375, - 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, -1, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, -1, 408, 409, 410, 411, -1, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, -1, -1, - -1, 427, -1, -1, 430, 431, 432, 433, 434, 435, - 436, 437, 438, -1, -1, -1, -1, -1, 444, 445, - 446, 447, 448, 449, 450, 451, -1, 453, 454, -1, - 456, 457, -1, -1, 460, -1, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, -1, 474, 475, - 476, 477, 478, 479, 480, 481, 482, -1, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, -1, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 109, 110, -1, -1, 572, 573, -1, 575, - 576, 577, 578, -1, 580, 581, 582, 583, 584, 585, - -1, -1, -1, -1, 590, 591, 592, 593, 594, 595, - 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, - 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, - -1, 617, -1, 619, 620, -1, 622, 623, -1, 625, - 626, 627, 628, 629, 630, -1, 632, 633, 634, 635, - 636, 637, 638, -1, 640, 641, 642, -1, 644, 645, - 646, 647, -1, 649, 650, -1, -1, 653, -1, -1, - 656, 657, 658, -1, 660, -1, 662, 663, 664, 665, - -1, 667, 668, 669, -1, 671, 672, -1, 674, -1, - 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, - 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, - -1, 697, 698, 699, 700, 701, 702, 703, 704, -1, - 706, 707, 708, -1, 710, 711, 712, 713, -1, -1, - 716, 717, -1, 719, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, -1, -1, 735, - 736, -1, -1, 739, -1, 741, 742, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 294, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, - 307, -1, 309, -1, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, -1, 324, 325, 326, - 327, 328, 329, 330, 331, -1, -1, -1, -1, 336, - 337, 338, 339, 340, -1, -1, 343, 344, 345, 346, - -1, -1, -1, 350, 351, 352, 353, 354, -1, 356, - 357, 358, -1, 360, -1, -1, -1, -1, -1, -1, - 367, -1, 369, -1, 371, 372, -1, 374, 375, 376, - 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, -1, 396, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, - -1, 408, 409, 410, 411, -1, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, -1, -1, -1, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, - 437, 438, -1, -1, -1, -1, -1, 444, 445, 446, - 447, 448, 449, 450, 451, -1, 453, 454, -1, 456, - 457, -1, -1, 460, -1, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, -1, 474, 475, 476, - 477, 478, 479, 480, 481, 482, -1, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, + 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, -1, 555, 556, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, - 567, 109, 110, -1, -1, 572, 573, -1, 575, 576, - 577, 578, -1, 580, 581, 582, 583, 584, 585, -1, - -1, -1, -1, 590, 591, 592, 593, 594, 595, 596, - 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 614, 615, -1, - 617, -1, 619, 620, -1, 622, 623, -1, 625, 626, - 627, 628, 629, 630, -1, 632, 633, 634, 635, 636, - 637, 638, -1, 640, 641, 642, -1, 644, 645, 646, - 647, -1, 649, 650, -1, -1, 653, -1, -1, 656, - 657, 658, -1, 660, -1, 662, 663, 664, 665, -1, - 667, 668, 669, -1, 671, 672, -1, 674, -1, 676, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + -1, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, - 687, 688, 689, 690, 691, 692, 693, 694, 695, -1, - 697, 698, 699, 700, 701, 702, 703, 704, -1, 706, - 707, 708, -1, 710, 711, 712, 713, -1, -1, 716, - 717, -1, 719, 720, 721, 722, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 732, -1, -1, 735, 736, - -1, -1, 739, -1, 741, 742, -1, -1, -1, -1, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, - -1, 309, -1, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, - 328, 329, 330, 331, -1, -1, -1, -1, 336, 337, - 338, 339, 340, -1, -1, 343, 344, 345, 346, -1, - -1, -1, 350, 351, 352, 353, 354, -1, 356, 357, - 358, -1, 360, -1, -1, -1, -1, -1, -1, 367, - -1, 369, -1, 371, 372, -1, 374, 375, 376, 377, - 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, -1, 396, 397, - 398, -1, 400, 401, 402, 403, 404, 405, 406, -1, - 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, -1, -1, -1, 427, - -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, - 438, -1, -1, -1, -1, -1, 444, 445, 446, 447, - 448, 449, 450, 451, -1, 453, 454, -1, 456, 457, - -1, -1, 460, -1, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, -1, 474, 475, 476, 477, - 478, 479, 480, 481, 482, -1, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, -1, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - -1, -1, -1, -1, 572, 573, -1, 575, 576, 577, - 578, -1, 580, 581, 582, 583, 584, 585, -1, -1, - -1, -1, 590, 591, 592, 593, 594, 595, 596, 597, - 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - 608, 609, 610, 611, 612, 613, 614, 615, -1, 617, - -1, 619, 620, -1, 622, 623, -1, 625, 626, 627, - 628, 629, 630, -1, 632, 633, 634, 635, 636, 637, - 638, -1, 640, 641, 642, -1, 644, 645, 646, 647, - -1, 649, 650, -1, -1, 653, -1, -1, 656, 657, - 658, -1, 660, -1, 662, 663, 664, 665, -1, 667, - 668, 669, -1, 671, 672, -1, 674, -1, 676, 677, - 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, - 688, 689, 690, 691, 692, 693, 694, 695, -1, 697, - 698, 699, 700, 701, 702, 703, 704, -1, 706, 707, - 708, -1, 710, 711, 712, 713, -1, -1, 716, 717, - -1, 719, 720, 721, 722, 723, 724, 725, 726, 727, - 728, 729, 730, 731, 732, -1, -1, 735, 736, -1, - -1, 739, -1, 741, 742 + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 294, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 305, 306, 307, -1, 309, -1, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + -1, 324, 325, 326, 327, 328, 329, 330, 331, -1, + -1, -1, -1, 336, 337, 338, 339, 340, -1, -1, + 343, 344, 345, 346, -1, -1, -1, 350, 351, 352, + 353, 354, -1, 356, 357, 358, -1, 360, -1, -1, + -1, -1, -1, -1, 367, -1, 369, -1, 371, 372, + -1, 374, 375, 376, 377, 378, 379, -1, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, -1, 396, 397, 398, -1, 400, 401, 402, + 403, 404, 405, 406, -1, 408, 409, 410, 411, -1, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, -1, -1, -1, 427, -1, -1, 430, 431, 432, + 433, 434, 435, 436, 437, 438, -1, -1, -1, -1, + -1, 444, 445, 446, 447, 448, 449, 450, 451, -1, + 453, 454, -1, 456, 457, -1, -1, 460, -1, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + -1, 474, 475, 476, 477, 478, 479, 480, 481, 482, + -1, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, -1, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 109, 110, -1, -1, 572, + 573, -1, 575, 576, 577, 578, -1, 580, 581, 582, + 583, 584, 585, -1, -1, -1, -1, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, -1, 617, -1, 619, 620, -1, 622, + 623, -1, 625, 626, 627, 628, 629, 630, -1, 632, + 633, 634, 635, 636, 637, 638, -1, 640, 641, 642, + -1, 644, 645, 646, 647, -1, 649, 650, -1, -1, + 653, -1, -1, 656, 657, 658, -1, 660, -1, 662, + 663, 664, 665, -1, 667, 668, 669, -1, 671, 672, + -1, 674, -1, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, -1, 697, 698, 699, 700, 701, 702, + 703, 704, -1, 706, 707, 708, -1, 710, 711, 712, + 713, -1, -1, 716, 717, -1, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + -1, -1, 735, 736, -1, -1, 739, -1, 741, 742, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 294, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 305, 306, 307, -1, 309, -1, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, + 324, 325, 326, 327, 328, 329, 330, 331, -1, -1, + -1, -1, 336, 337, 338, 339, 340, -1, -1, 343, + 344, 345, 346, -1, -1, -1, 350, 351, 352, 353, + 354, -1, 356, 357, 358, -1, 360, -1, -1, -1, + -1, -1, -1, 367, -1, 369, -1, 371, 372, -1, + 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, -1, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, -1, 408, 409, 410, 411, -1, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + -1, -1, -1, 427, -1, -1, 430, 431, 432, 433, + 434, 435, 436, 437, 438, -1, -1, -1, -1, -1, + 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, + 454, -1, 456, 457, -1, -1, 460, -1, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, -1, + 474, 475, 476, 477, 478, 479, 480, 481, 482, -1, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + -1, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 109, 110, -1, -1, 572, 573, + -1, 575, 576, 577, 578, -1, 580, 581, 582, 583, + 584, 585, -1, -1, -1, -1, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, -1, 617, -1, 619, 620, -1, 622, 623, + -1, 625, 626, 627, 628, 629, 630, -1, 632, 633, + 634, 635, 636, 637, 638, -1, 640, 641, 642, -1, + 644, 645, 646, 647, -1, 649, 650, -1, -1, 653, + -1, -1, 656, 657, 658, -1, 660, -1, 662, 663, + 664, 665, -1, 667, 668, 669, -1, 671, 672, -1, + 674, -1, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, -1, 697, 698, 699, 700, 701, 702, 703, + 704, -1, 706, 707, 708, -1, 710, 711, 712, 713, + -1, -1, 716, 717, -1, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, -1, + -1, 735, 736, -1, -1, 739, -1, 741, 742, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 305, 306, 307, -1, 309, -1, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, + 325, 326, 327, 328, 329, 330, 331, -1, -1, -1, + -1, 336, 337, 338, 339, 340, -1, -1, 343, 344, + 345, 346, -1, -1, -1, 350, 351, 352, 353, 354, + -1, 356, 357, 358, -1, 360, -1, -1, -1, -1, + -1, -1, 367, -1, 369, -1, 371, 372, -1, 374, + 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + -1, 396, 397, 398, -1, 400, 401, 402, 403, 404, + 405, 406, -1, 408, 409, 410, 411, -1, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, + -1, -1, 427, -1, -1, 430, 431, 432, 433, 434, + 435, 436, 437, 438, -1, -1, -1, -1, -1, 444, + 445, 446, 447, 448, 449, 450, 451, -1, 453, 454, + -1, 456, 457, -1, -1, 460, -1, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, -1, 474, + 475, 476, 477, 478, 479, 480, 481, 482, -1, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, -1, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, -1, -1, -1, -1, 572, 573, -1, + 575, 576, 577, 578, -1, 580, 581, 582, 583, 584, + 585, -1, -1, -1, -1, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, -1, 617, -1, 619, 620, -1, 622, 623, -1, + 625, 626, 627, 628, 629, 630, -1, 632, 633, 634, + 635, 636, 637, 638, -1, 640, 641, 642, -1, 644, + 645, 646, 647, -1, 649, 650, -1, -1, 653, -1, + -1, 656, 657, 658, -1, 660, -1, 662, 663, 664, + 665, -1, 667, 668, 669, -1, 671, 672, -1, 674, + -1, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, -1, 697, 698, 699, 700, 701, 702, 703, 704, + -1, 706, 707, 708, -1, 710, 711, 712, 713, -1, + -1, 716, 717, -1, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, -1, -1, + 735, 736, -1, -1, 739, -1, 741, 742 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -23899,67 +23953,67 @@ 1423, 1951, 1535, 1943, 1952, 1963, 1825, 1434, 1961, 1436, 763, 764, 763, 1458, 1565, 1565, 10, 1434, 1961, 1575, 1584, 1826, 26, 763, 1482, 1505, 1506, 1818, 1434, 763, - 764, 762, 1428, 1070, 121, 137, 1104, 1611, 681, 1073, - 320, 1065, 1061, 901, 267, 1814, 412, 1658, 1661, 1661, - 763, 1106, 1659, 1797, 1807, 1808, 1812, 1826, 229, 1564, - 1826, 570, 1915, 1830, 1914, 94, 94, 94, 94, 1664, - 1664, 776, 1831, 1875, 262, 262, 206, 619, 645, 1872, - 1870, 1869, 769, 769, 1664, 1875, 1857, 764, 1861, 1863, - 1867, 418, 730, 1608, 1613, 1712, 1605, 1606, 424, 1605, - 1605, 1818, 173, 1721, 1571, 1717, 229, 286, 1531, 1539, - 1540, 1541, 1542, 1547, 1548, 1962, 1512, 127, 127, 184, - 1550, 134, 224, 1523, 1550, 1512, 1683, 1684, 1812, 1514, - 1525, 412, 763, 764, 11, 412, 1379, 762, 764, 747, - 92, 297, 1736, 1737, 747, 764, 1890, 1601, 94, 1334, - 1332, 1321, 498, 802, 1323, 1610, 529, 315, 1927, 91, - 340, 457, 638, 1259, 1259, 176, 1814, 1814, 114, 136, - 189, 250, 251, 252, 275, 300, 328, 330, 349, 368, - 375, 390, 400, 415, 472, 482, 519, 532, 572, 578, - 637, 644, 674, 689, 690, 702, 762, 1041, 1045, 1119, - 1121, 1122, 1125, 1126, 1127, 1819, 826, 827, 1994, 1982, - 846, 812, 1991, 627, 1814, 1631, 1828, 764, 769, 1434, - 1599, 1810, 1878, 650, 1620, 1944, 1945, 26, 103, 1573, - 1601, 1425, 1429, 1429, 769, 1676, 763, 764, 1669, 1423, - 1410, 762, 1391, 1392, 1945, 1949, 1215, 1209, 390, 390, - 398, 474, 104, 145, 173, 272, 1040, 1614, 1615, 1819, - 1022, 1665, 1665, 26, 1665, 1667, 1665, 152, 531, 297, - 1665, 1666, 1666, 828, 1820, 1820, 1820, 1820, 1610, 1820, - 1820, 763, 764, 1040, 1040, 1016, 764, 1010, 5, 7, - 8, 31, 33, 39, 73, 142, 177, 181, 192, 214, - 320, 356, 404, 405, 411, 423, 442, 468, 534, 605, - 616, 617, 618, 705, 1053, 1120, 1122, 1280, 1284, 1286, - 1289, 1295, 1296, 1297, 1299, 1300, 1593, 262, 578, 1828, - 262, 262, 262, 10, 1911, 517, 518, 521, 522, 523, - 1925, 1926, 372, 640, 214, 1277, 1826, 1974, 11, 1973, - 6, 360, 1340, 870, 1434, 762, 762, 1610, 762, 1610, - 1610, 1820, 1820, 1613, 1820, 1610, 1820, 1820, 1820, 1820, - 1820, 1820, 1820, 1610, 1820, 386, 554, 656, 1795, 1820, - 1610, 795, 1820, 1611, 1040, 1040, 1019, 99, 1665, 764, - 1013, 262, 1437, 769, 1513, 1699, 225, 1605, 220, 1696, - 1571, 1308, 92, 887, 763, 1434, 938, 1923, 297, 1929, - 570, 267, 754, 754, 1916, 1916, 1916, 1916, 950, 176, - 1677, 1376, 1814, 1380, 113, 1383, 1767, 16, 17, 22, - 23, 32, 58, 70, 90, 123, 143, 144, 146, 154, - 155, 156, 174, 208, 233, 239, 264, 265, 266, 289, - 290, 336, 338, 339, 354, 391, 393, 416, 438, 449, - 450, 481, 490, 536, 537, 538, 544, 545, 560, 561, - 584, 585, 603, 635, 694, 697, 700, 707, 723, 742, - 1174, 1175, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, - 1185, 1186, 1187, 1206, 455, 35, 47, 764, 768, 1434, - 936, 407, 412, 1434, 1434, 762, 1192, 1193, 1193, 762, - 1189, 1190, 1192, 762, 1190, 1195, 123, 1192, 1193, 1193, - 123, 1193, 1192, 763, 763, 763, 763, 1475, 1434, 1434, - 763, 181, 1491, 763, 763, 764, 764, 763, 764, 763, - 124, 1467, 1468, 763, 763, 763, 763, 764, 763, 92, - 763, 763, 764, 1434, 1434, 1434, 1434, 763, 763, 11, - 1444, 763, 11, 763, 763, 764, 763, 764, 763, 764, - 763, 764, 763, 763, 763, 763, 145, 173, 173, 763, - 764, 1434, 763, 763, 764, 764, 763, 1818, 1826, 769, - 763, 762, 1221, 1221, 12, 65, 629, 752, 1223, 1224, - 1225, 764, 764, 763, 1434, 1434, 1413, 1964, 1965, 1966, - 1396, 763, 1955, 229, 1423, 1953, 1533, 1958, 1959, 769, - 763, 1506, 1436, 763, 764, 763, 1585, 1577, 1810, 181, - 1484, 763, 1429, 1472, 1066, 1067, 1068, 1826, 1078, 1437, + 764, 762, 1078, 1437, 1070, 121, 137, 1104, 1611, 681, + 1073, 320, 1065, 1061, 901, 267, 1814, 412, 1658, 1661, + 1661, 763, 1106, 1659, 1797, 1807, 1808, 1812, 1826, 229, + 1564, 1826, 570, 1915, 1830, 1914, 94, 94, 94, 94, + 1664, 1664, 776, 1831, 1875, 262, 262, 206, 619, 645, + 1872, 1870, 1869, 769, 769, 1664, 1875, 1857, 764, 1861, + 1863, 1867, 418, 730, 1608, 1613, 1712, 1605, 1606, 424, + 1605, 1605, 1818, 173, 1721, 1571, 1717, 229, 286, 1531, + 1539, 1540, 1541, 1542, 1547, 1548, 1962, 1512, 127, 127, + 184, 1550, 134, 224, 1523, 1550, 1512, 1683, 1684, 1812, + 1514, 1525, 412, 763, 764, 11, 412, 1379, 762, 764, + 747, 92, 297, 1736, 1737, 747, 764, 1890, 1601, 94, + 1334, 1332, 1321, 498, 802, 1323, 1610, 529, 315, 1927, + 91, 340, 457, 638, 1259, 1259, 176, 1814, 1814, 114, + 136, 189, 250, 251, 252, 275, 300, 328, 330, 349, + 368, 375, 390, 400, 415, 472, 482, 519, 532, 572, + 578, 637, 644, 674, 689, 690, 702, 762, 1041, 1045, + 1119, 1121, 1122, 1125, 1126, 1127, 1819, 826, 827, 1994, + 1982, 846, 812, 1991, 627, 1814, 1631, 1828, 764, 769, + 1434, 1599, 1810, 1878, 650, 1620, 1944, 1945, 26, 103, + 1573, 1601, 1425, 1429, 1429, 769, 1676, 763, 764, 1669, + 1423, 1410, 762, 1391, 1392, 1945, 1949, 1215, 1209, 390, + 390, 398, 474, 104, 145, 173, 272, 1040, 1614, 1615, + 1819, 1022, 1665, 1665, 26, 1665, 1667, 1665, 152, 531, + 297, 1665, 1666, 1666, 828, 1820, 1820, 1820, 1820, 1610, + 1820, 1820, 763, 764, 1040, 1040, 1016, 764, 1010, 5, + 7, 8, 31, 33, 39, 73, 142, 177, 181, 192, + 214, 320, 356, 404, 405, 411, 423, 442, 468, 534, + 605, 616, 617, 618, 705, 1053, 1120, 1122, 1280, 1284, + 1286, 1289, 1295, 1296, 1297, 1299, 1300, 1593, 262, 578, + 1828, 262, 262, 262, 10, 1911, 517, 518, 521, 522, + 523, 1925, 1926, 372, 640, 214, 1277, 1826, 1974, 11, + 1973, 6, 360, 1340, 870, 1434, 762, 762, 1610, 762, + 1610, 1610, 1820, 1820, 1613, 1820, 1610, 1820, 1820, 1820, + 1820, 1820, 1820, 1820, 1610, 1820, 386, 554, 656, 1795, + 1820, 1610, 795, 1820, 1611, 1040, 1040, 1019, 99, 1665, + 764, 1013, 262, 1437, 769, 1513, 1699, 225, 1605, 220, + 1696, 1571, 1308, 92, 887, 763, 1434, 938, 1923, 297, + 1929, 570, 267, 754, 754, 1916, 1916, 1916, 1916, 950, + 176, 1677, 1376, 1814, 1380, 113, 1383, 1767, 16, 17, + 22, 23, 32, 58, 70, 90, 123, 143, 144, 146, + 154, 155, 156, 174, 208, 233, 239, 264, 265, 266, + 289, 290, 336, 338, 339, 354, 391, 393, 416, 438, + 449, 450, 481, 490, 536, 537, 538, 544, 545, 560, + 561, 584, 585, 603, 635, 694, 697, 700, 707, 723, + 742, 1174, 1175, 1177, 1178, 1179, 1180, 1181, 1182, 1183, + 1184, 1185, 1186, 1187, 1206, 455, 35, 47, 764, 768, + 1434, 936, 407, 412, 1434, 1434, 762, 1192, 1193, 1193, + 762, 1189, 1190, 1192, 762, 1190, 1195, 123, 1192, 1193, + 1193, 123, 1193, 1192, 763, 763, 763, 763, 1475, 1434, + 1434, 763, 181, 1491, 763, 763, 764, 764, 763, 764, + 763, 124, 1467, 1468, 763, 763, 763, 763, 764, 763, + 92, 763, 763, 764, 1434, 1434, 1434, 1434, 763, 763, + 11, 1444, 763, 11, 763, 763, 764, 763, 764, 763, + 764, 763, 764, 763, 763, 763, 763, 145, 173, 173, + 763, 764, 1434, 763, 763, 764, 764, 763, 1818, 1826, + 769, 763, 762, 1221, 1221, 12, 65, 629, 752, 1223, + 1224, 1225, 764, 764, 763, 1434, 1434, 1413, 1964, 1965, + 1966, 1396, 763, 1955, 229, 1423, 1953, 1533, 1958, 1959, + 769, 763, 1506, 1436, 763, 764, 763, 1585, 1577, 1810, + 181, 1484, 763, 1429, 1472, 1066, 1067, 1068, 1826, 763, 1434, 1613, 26, 762, 1080, 747, 762, 1070, 1831, 215, 1662, 1663, 1812, 762, 1660, 763, 763, 764, 229, 769, 1107, 1108, 763, 764, 94, 94, 1917, 1917, 1917, 1917, @@ -23993,22 +24047,22 @@ 961, 798, 799, 1610, 800, 801, 1610, 796, 797, 1610, 1826, 1040, 1013, 1826, 1571, 424, 225, 1424, 1384, 98, 1916, 1924, 1924, 1924, 1924, 76, 77, 951, 409, 1383, - 487, 113, 216, 1773, 1192, 1194, 1193, 1193, 1189, 198, - 1189, 373, 1199, 1200, 17, 323, 341, 714, 1176, 1200, - 1207, 1217, 1219, 32, 289, 1176, 1182, 1184, 1199, 1176, - 1189, 762, 1199, 1176, 1192, 1194, 1176, 1193, 762, 1189, - 1199, 32, 290, 290, 292, 1189, 1192, 707, 762, 877, - 1193, 1193, 1193, 562, 1192, 1193, 1214, 1189, 292, 1194, - 1194, 1192, 1192, 1193, 1195, 61, 917, 92, 92, 881, - 1826, 870, 967, 57, 145, 173, 272, 1500, 173, 173, - 1501, 1502, 763, 1565, 1565, 26, 231, 1490, 1434, 1434, - 1506, 163, 339, 763, 297, 1469, 1434, 1434, 1434, 1565, - 58, 70, 90, 123, 208, 278, 391, 393, 544, 545, - 700, 1182, 1183, 1445, 1446, 1447, 1448, 1499, 1434, 1434, - 1434, 1434, 86, 271, 1610, 1618, 1565, 1434, 1434, 1826, - 1611, 763, 1231, 1226, 1224, 1226, 1227, 1610, 1424, 1966, - 763, 1949, 1537, 1534, 1826, 763, 1506, 181, 1586, 764, - 1600, 26, 763, 1430, 763, 764, 1429, 1565, 1064, 192, + 487, 113, 216, 1773, 1192, 1194, 1193, 373, 1192, 1199, + 1200, 1189, 198, 1189, 1199, 17, 323, 341, 714, 1176, + 1200, 1207, 1217, 1219, 32, 289, 1176, 1182, 1184, 1199, + 1176, 1189, 762, 1199, 1176, 1192, 1194, 1176, 1193, 762, + 1189, 1199, 32, 290, 290, 292, 1189, 1192, 707, 762, + 877, 1193, 1193, 1193, 562, 1192, 1193, 1214, 1189, 292, + 1194, 1194, 1192, 1192, 1193, 1195, 61, 917, 92, 92, + 881, 1826, 870, 967, 57, 145, 173, 272, 1500, 173, + 173, 1501, 1502, 763, 1565, 1565, 26, 231, 1490, 1434, + 1434, 1506, 163, 339, 763, 297, 1469, 1434, 1434, 1434, + 1565, 58, 70, 90, 123, 208, 278, 391, 393, 544, + 545, 700, 1182, 1183, 1445, 1446, 1447, 1448, 1499, 1434, + 1434, 1434, 1434, 86, 271, 1610, 1618, 1565, 1434, 1434, + 1826, 1611, 763, 1231, 1226, 1224, 1226, 1227, 1610, 1424, + 1966, 763, 1949, 1537, 1534, 1826, 763, 1506, 181, 1586, + 764, 1600, 26, 763, 1430, 763, 764, 1565, 1064, 192, 1081, 1082, 1611, 1066, 764, 1664, 1049, 1050, 1660, 1807, 1107, 754, 1826, 1110, 1412, 1413, 1951, 1416, 1055, 1826, 1917, 1917, 1664, 1664, 1861, 1866, 1601, 1544, 1545, 1661, @@ -24035,8 +24089,8 @@ 1434, 1434, 176, 841, 846, 176, 368, 842, 1826, 1797, 1975, 1342, 470, 263, 763, 764, 763, 764, 763, 764, 424, 570, 1924, 297, 1928, 1928, 1928, 1928, 870, 947, - 1678, 122, 1199, 1199, 278, 303, 652, 1191, 1191, 1198, - 1664, 1217, 1218, 1219, 1208, 17, 1220, 373, 1201, 1199, + 1678, 122, 1199, 1198, 1664, 1199, 278, 303, 652, 1191, + 1191, 1217, 1218, 1219, 1208, 17, 1220, 373, 1201, 1199, 1176, 1191, 1263, 1790, 1199, 1263, 1191, 292, 1191, 1199, 562, 874, 875, 876, 1826, 917, 1176, 873, 915, 1176, 1191, 210, 1188, 1218, 1220, 1176, 1199, 1191, 1191, 1434, @@ -24046,99 +24100,99 @@ 763, 763, 763, 763, 1189, 123, 1193, 32, 1193, 1449, 763, 763, 763, 763, 764, 763, 763, 763, 1222, 763, 764, 1413, 1535, 763, 26, 203, 225, 1587, 1588, 1810, - 1810, 1068, 763, 669, 1105, 129, 457, 1083, 763, 764, - 763, 1663, 1676, 1945, 1949, 1109, 1110, 1413, 769, 1111, - 1423, 1951, 1111, 1424, 1875, 1875, 1416, 1569, 1533, 1963, - 176, 1520, 1527, 1527, 176, 1522, 1434, 762, 1596, 562, - 1418, 1418, 1559, 1560, 1961, 763, 764, 1562, 763, 764, - 10, 1745, 763, 1828, 762, 1260, 1261, 1826, 1260, 1820, - 762, 1820, 763, 762, 1043, 1044, 1042, 1135, 762, 129, - 129, 1241, 1117, 1814, 1262, 1826, 1117, 1117, 646, 1154, - 1174, 1826, 11, 1112, 117, 124, 186, 861, 862, 863, - 864, 849, 850, 1935, 1995, 63, 119, 279, 998, 640, - 1975, 857, 858, 859, 860, 1826, 1989, 848, 1820, 11, - 360, 1774, 1600, 1434, 763, 764, 11, 764, 754, 1429, - 1676, 1402, 1406, 1440, 1359, 1440, 1813, 1285, 1813, 1282, - 1209, 1813, 1644, 1293, 129, 1813, 1813, 1285, 764, 1600, - 1058, 1611, 297, 1152, 1285, 1290, 1285, 763, 1826, 1565, - 654, 1820, 407, 1278, 229, 762, 1955, 1977, 1345, 1826, - 6, 762, 1343, 870, 799, 801, 797, 1928, 98, 1925, - 1930, 1931, 129, 260, 303, 278, 1826, 1198, 763, 764, - 763, 873, 1206, 763, 764, 917, 769, 747, 1220, 183, - 242, 244, 889, 890, 891, 894, 1440, 1826, 858, 92, - 92, 173, 764, 1600, 763, 1496, 1605, 1434, 533, 430, - 1218, 1613, 763, 1610, 1596, 1599, 763, 15, 385, 393, - 697, 700, 709, 1589, 1590, 1794, 1600, 1600, 1610, 1065, - 762, 1071, 1084, 1826, 1082, 1111, 754, 1048, 1424, 763, - 1519, 282, 1521, 282, 1564, 1607, 1418, 10, 267, 1557, - 1558, 1427, 1294, 1744, 404, 569, 1260, 763, 764, 1600, - 762, 763, 1741, 1826, 1945, 1949, 1119, 1434, 1117, 1262, - 1826, 762, 1234, 282, 1252, 707, 1262, 1262, 1156, 1147, - 1148, 1155, 769, 1047, 763, 764, 860, 67, 919, 176, - 835, 763, 764, 635, 707, 1206, 1206, 1992, 1975, 79, - 82, 178, 261, 1775, 1776, 139, 1777, 1429, 1623, 1582, - 1581, 1944, 1423, 84, 1287, 84, 73, 233, 1152, 1353, - 1214, 1813, 1308, 1281, 1595, 260, 1309, 1291, 1293, 1283, - 836, 843, 844, 1410, 762, 1394, 1395, 1943, 1947, 1949, - 297, 1978, 763, 764, 1344, 570, 1931, 279, 1814, 1218, - 1790, 1218, 917, 875, 1826, 173, 764, 919, 444, 763, - 886, 989, 763, 1810, 563, 764, 763, 763, 763, 1601, - 709, 1590, 1591, 1794, 635, 588, 425, 1592, 588, 762, - 1428, 1074, 61, 287, 288, 385, 460, 1085, 1944, 1546, - 1419, 1434, 762, 1434, 762, 763, 1418, 1418, 113, 281, - 442, 1552, 1553, 1556, 763, 348, 762, 763, 1878, 1261, - 173, 1878, 763, 764, 1051, 763, 1262, 1252, 707, 1235, - 1826, 150, 1236, 1259, 1138, 1259, 1140, 1141, 199, 276, - 300, 368, 480, 735, 1157, 1158, 1167, 1203, 1204, 1205, - 1232, 1440, 1819, 34, 61, 172, 176, 328, 448, 646, - 1161, 1163, 1196, 1197, 1204, 1826, 1124, 1125, 863, 1428, - 840, 841, 860, 707, 877, 562, 918, 26, 26, 79, - 26, 1776, 249, 261, 1778, 1779, 1813, 576, 762, 1288, - 61, 61, 1309, 1359, 1814, 1292, 1331, 669, 838, 919, - 1403, 1412, 1413, 1951, 1394, 763, 229, 1393, 1955, 1953, - 33, 343, 492, 1826, 199, 1346, 1347, 1826, 1679, 1525, - 769, 890, 983, 1600, 1605, 1605, 1423, 441, 10, 441, - 99, 385, 554, 696, 1076, 1077, 1826, 1078, 680, 1079, - 1087, 695, 114, 368, 375, 390, 519, 532, 551, 689, - 1101, 1102, 1103, 1716, 1413, 1569, 1564, 1564, 1240, 1240, - 1553, 831, 1878, 297, 368, 482, 1247, 1251, 1255, 1258, - 1819, 1600, 763, 1248, 1250, 1255, 1257, 1826, 1046, 1144, - 1142, 1259, 763, 764, 445, 575, 653, 176, 1237, 762, - 1139, 762, 762, 129, 1820, 686, 1204, 725, 129, 172, - 1664, 1213, 752, 753, 762, 1171, 1172, 1173, 1455, 1793, - 1819, 279, 321, 61, 11, 373, 1197, 1202, 1983, 837, - 562, 1826, 1790, 1790, 26, 1790, 26, 26, 1779, 1148, - 1611, 1081, 1173, 1055, 122, 1434, 413, 839, 1951, 1423, - 1423, 763, 1947, 1949, 1410, 1407, 1412, 1413, 1951, 1948, - 570, 33, 33, 763, 764, 1685, 1686, 1812, 1768, 1826, - 1591, 635, 183, 310, 763, 764, 1429, 1611, 762, 1089, - 1091, 1086, 403, 1665, 1665, 403, 1665, 1665, 1665, 1665, - 762, 1096, 1103, 415, 763, 763, 92, 1551, 1551, 763, - 282, 707, 1246, 1249, 1254, 1255, 1256, 574, 1820, 1665, - 1298, 1299, 1300, 1258, 1664, 1298, 1257, 763, 762, 762, - 1143, 1826, 63, 279, 1260, 762, 1260, 1260, 61, 1614, - 1820, 1826, 1795, 1795, 1170, 169, 721, 635, 1171, 1198, - 1196, 1814, 842, 1826, 769, 1790, 1790, 1790, 763, 762, - 1434, 1423, 1404, 1407, 1951, 1977, 570, 570, 1347, 764, - 1664, 1210, 1075, 1077, 763, 762, 1090, 1091, 1092, 152, - 1088, 1091, 1665, 1820, 1820, 1665, 1614, 1614, 1611, 1828, - 681, 1097, 1098, 1665, 99, 127, 181, 1555, 1554, 1259, - 1259, 1298, 1256, 1819, 1610, 1300, 1299, 61, 1614, 1820, - 1826, 1260, 1260, 762, 28, 219, 233, 554, 1238, 1238, - 763, 1260, 763, 763, 763, 762, 1431, 412, 670, 1162, - 92, 407, 769, 1826, 1081, 1947, 1423, 1686, 1676, 1769, - 1079, 763, 764, 152, 1094, 1095, 1437, 1820, 1820, 1099, - 763, 764, 1128, 26, 26, 762, 762, 763, 763, 1260, - 61, 172, 314, 176, 176, 1246, 763, 1247, 1248, 763, - 1611, 1159, 1160, 1203, 1159, 580, 675, 728, 1164, 1428, - 843, 1826, 769, 763, 225, 1780, 1091, 764, 1093, 1100, - 1828, 1098, 1561, 1563, 1233, 1246, 763, 279, 63, 1246, - 763, 1203, 1165, 1166, 1167, 1984, 1826, 465, 1774, 1095, - 763, 1101, 763, 763, 1246, 1238, 1238, 1167, 75, 26, - 1777, 635, 1790, 113, 1781, 1985, 173, 762, 1783, 440, - 587, 1979, 1980, 139, 225, 1782, 763, 770, 1784, 1785, - 1812, 233, 1786, 1828, 1986, 1828, 763, 764, 1787, 1788, - 1812, 919, 1785, 764, 1664, 1788, 1428, 1676, 1429 + 1810, 1068, 669, 1105, 129, 457, 1083, 763, 764, 763, + 1663, 1676, 1945, 1949, 1109, 1110, 1413, 769, 1111, 1423, + 1951, 1111, 1424, 1875, 1875, 1416, 1569, 1533, 1963, 176, + 1520, 1527, 1527, 176, 1522, 1434, 762, 1596, 562, 1418, + 1418, 1559, 1560, 1961, 763, 764, 1562, 763, 764, 10, + 1745, 763, 1828, 762, 1260, 1261, 1826, 1260, 1820, 762, + 1820, 763, 762, 1043, 1044, 1042, 1135, 762, 129, 129, + 1241, 1117, 1814, 1262, 1826, 1117, 1117, 646, 1154, 1174, + 1826, 11, 1112, 117, 124, 186, 861, 862, 863, 864, + 849, 850, 1935, 1995, 63, 119, 279, 998, 640, 1975, + 857, 858, 859, 860, 1826, 1989, 848, 1820, 11, 360, + 1774, 1600, 1434, 763, 764, 11, 764, 754, 1429, 1676, + 1402, 1406, 1440, 1359, 1440, 1813, 1285, 1813, 1282, 1209, + 1813, 1644, 1293, 129, 1813, 1813, 1285, 764, 1600, 1058, + 1611, 297, 1152, 1285, 1290, 1285, 763, 1826, 1565, 654, + 1820, 407, 1278, 229, 762, 1955, 1977, 1345, 1826, 6, + 762, 1343, 870, 799, 801, 797, 1928, 98, 1925, 1930, + 1931, 129, 260, 1826, 303, 278, 1198, 763, 764, 763, + 873, 1206, 763, 764, 917, 769, 747, 1220, 183, 242, + 244, 889, 890, 891, 894, 1440, 1826, 858, 92, 92, + 173, 764, 1600, 763, 1496, 1605, 1434, 533, 430, 1218, + 1613, 763, 1610, 1596, 1599, 763, 15, 385, 393, 697, + 700, 709, 1589, 1590, 1794, 1600, 1600, 1610, 1065, 762, + 1071, 1084, 1826, 1082, 1111, 754, 1048, 1424, 763, 1519, + 282, 1521, 282, 1564, 1607, 1418, 10, 267, 1557, 1558, + 1427, 1294, 1744, 404, 569, 1260, 763, 764, 1600, 762, + 763, 1741, 1826, 1945, 1949, 1119, 1434, 1117, 1262, 1826, + 762, 1234, 282, 1252, 707, 1262, 1262, 1156, 1147, 1148, + 1155, 769, 1047, 763, 764, 860, 67, 919, 176, 835, + 763, 764, 635, 707, 1206, 1206, 1992, 1975, 79, 82, + 178, 261, 1775, 1776, 139, 1777, 1429, 1623, 1582, 1581, + 1944, 1423, 84, 1287, 84, 73, 233, 1152, 1353, 1214, + 1813, 1308, 1281, 1595, 260, 1309, 1291, 1293, 1283, 836, + 843, 844, 1410, 762, 1394, 1395, 1943, 1947, 1949, 297, + 1978, 763, 764, 1344, 570, 1931, 279, 1814, 1218, 1790, + 1218, 917, 875, 1826, 173, 764, 919, 444, 763, 886, + 989, 763, 1810, 563, 764, 763, 763, 763, 1601, 709, + 1590, 1591, 1794, 635, 588, 425, 1592, 588, 762, 1078, + 1074, 61, 287, 288, 385, 460, 1085, 1944, 1546, 1419, + 1434, 762, 1434, 762, 763, 1418, 1418, 113, 281, 442, + 1552, 1553, 1556, 763, 348, 762, 763, 1878, 1261, 173, + 1878, 763, 764, 1051, 763, 1262, 1252, 707, 1235, 1826, + 150, 1236, 1259, 1138, 1259, 1140, 1141, 199, 276, 300, + 368, 480, 735, 1157, 1158, 1167, 1203, 1204, 1205, 1232, + 1440, 1819, 34, 61, 172, 176, 328, 448, 646, 1161, + 1163, 1196, 1197, 1204, 1826, 1124, 1125, 863, 1428, 840, + 841, 860, 707, 877, 562, 918, 26, 26, 79, 26, + 1776, 249, 261, 1778, 1779, 1813, 576, 762, 1288, 61, + 61, 1309, 1359, 1814, 1292, 1331, 669, 838, 919, 1403, + 1412, 1413, 1951, 1394, 763, 229, 1393, 1955, 1953, 33, + 343, 492, 1826, 199, 1346, 1347, 1826, 1679, 1525, 769, + 890, 983, 1600, 1605, 1605, 1423, 441, 10, 441, 99, + 385, 554, 696, 1076, 1077, 1826, 763, 680, 1079, 1087, + 695, 114, 368, 375, 390, 519, 532, 551, 689, 1101, + 1102, 1103, 1716, 1413, 1569, 1564, 1564, 1240, 1240, 1553, + 831, 1878, 297, 368, 482, 1247, 1251, 1255, 1258, 1819, + 1600, 763, 1248, 1250, 1255, 1257, 1826, 1046, 1144, 1142, + 1259, 763, 764, 445, 575, 653, 176, 1237, 762, 1139, + 762, 762, 129, 1820, 686, 1204, 725, 129, 172, 1664, + 1213, 752, 753, 762, 1171, 1172, 1173, 1455, 1793, 1819, + 279, 321, 61, 11, 373, 1197, 1202, 1983, 837, 562, + 1826, 1790, 1790, 26, 1790, 26, 26, 1779, 1148, 1611, + 1081, 1173, 1055, 122, 1434, 413, 839, 1951, 1423, 1423, + 763, 1947, 1949, 1410, 1407, 1412, 1413, 1951, 1948, 570, + 33, 33, 763, 764, 1685, 1686, 1812, 1768, 1826, 1591, + 635, 183, 310, 763, 764, 1611, 762, 1089, 1091, 1086, + 403, 1665, 1665, 403, 1665, 1665, 1665, 1665, 762, 1096, + 1103, 415, 763, 763, 92, 1551, 1551, 763, 282, 707, + 1246, 1249, 1254, 1255, 1256, 574, 1820, 1665, 1298, 1299, + 1300, 1258, 1664, 1298, 1257, 763, 762, 762, 1143, 1826, + 63, 279, 1260, 762, 1260, 1260, 61, 1614, 1820, 1826, + 1795, 1795, 1170, 169, 721, 635, 1171, 1198, 1196, 1814, + 842, 1826, 769, 1790, 1790, 1790, 763, 762, 1434, 1423, + 1404, 1407, 1951, 1977, 570, 570, 1347, 764, 1664, 1210, + 1075, 1077, 762, 1090, 1091, 1092, 152, 1088, 1091, 1665, + 1820, 1820, 1665, 1614, 1614, 1611, 1828, 681, 1097, 1098, + 1665, 99, 127, 181, 1555, 1554, 1259, 1259, 1298, 1256, + 1819, 1610, 1300, 1299, 61, 1614, 1820, 1826, 1260, 1260, + 762, 28, 219, 233, 554, 1238, 1238, 763, 1260, 763, + 763, 763, 762, 1431, 412, 670, 1162, 92, 407, 769, + 1826, 1081, 1947, 1423, 1686, 1676, 1769, 1079, 763, 764, + 152, 1094, 1095, 1437, 1820, 1820, 1099, 763, 764, 1128, + 26, 26, 762, 762, 763, 763, 1260, 61, 172, 314, + 176, 176, 1246, 763, 1247, 1248, 763, 1611, 1159, 1160, + 1203, 1159, 580, 675, 728, 1164, 1428, 843, 1826, 769, + 763, 225, 1780, 1091, 764, 1093, 1100, 1828, 1098, 1561, + 1563, 1233, 1246, 763, 279, 63, 1246, 763, 1203, 1165, + 1166, 1167, 1984, 1826, 465, 1774, 1095, 763, 1101, 763, + 763, 1246, 1238, 1238, 1167, 75, 26, 1777, 635, 1790, + 113, 1781, 1985, 173, 762, 1783, 440, 587, 1979, 1980, + 139, 225, 1782, 763, 770, 1784, 1785, 1812, 233, 1786, + 1828, 1986, 1828, 763, 764, 1787, 1788, 1812, 919, 1785, + 764, 1664, 1788, 1428, 1676, 1429 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ @@ -24237,188 +24291,188 @@ 1176, 1176, 1176, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1178, 1178, 1178, 1178, 1178, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, - 1179, 1180, 1180, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1182, 1183, 1183, 1184, 1184, 1185, 1185, 1185, 1185, - 1185, 1186, 1186, 1186, 1186, 1186, 1187, 1187, 1187, 1188, - 1188, 1189, 1189, 1189, 1190, 1191, 1191, 1191, 1191, 1191, - 1191, 1192, 1192, 1192, 1192, 1193, 1193, 1194, 1194, 1195, - 1195, 1196, 1196, 1197, 1197, 1197, 1197, 1197, 1197, 1197, - 1198, 1198, 1199, 1199, 1200, 1201, 1202, 1203, 1203, 1203, - 1204, 1204, 1204, 1204, 1204, 1204, 1205, 1205, 1206, 1207, - 1207, 1208, 1208, 1209, 1209, 1210, 1210, 1211, 1211, 1212, - 1212, 1213, 1214, 1214, 1215, 1215, 1216, 1216, 1217, 1217, - 1217, 1218, 1218, 1219, 1219, 1219, 1219, 1220, 1220, 1222, - 1221, 1223, 1223, 1224, 1225, 1225, 1225, 1225, 1226, 1227, - 1228, 1228, 1229, 1230, 1230, 1231, 1231, 1232, 1232, 1233, - 1234, 1234, 1235, 1235, 1236, 1236, 1236, 1236, 1237, 1237, - 1237, 1237, 1237, 1238, 1238, 1238, 1238, 1238, 1239, 1239, - 1240, 1240, 1241, 1241, 1242, 1242, 1242, 1243, 1243, 1244, - 1245, 1246, 1246, 1247, 1247, 1248, 1248, 1249, 1249, 1250, - 1250, 1251, 1251, 1252, 1252, 1253, 1253, 1253, 1254, 1254, - 1255, 1255, 1255, 1255, 1255, 1255, 1256, 1256, 1257, 1258, - 1258, 1259, 1259, 1259, 1260, 1260, 1261, 1261, 1262, 1262, - 1263, 1263, 1265, 1266, 1264, 1267, 1264, 1264, 1268, 1264, - 1269, 1264, 1270, 1264, 1271, 1264, 1272, 1264, 1264, 1264, - 1264, 1264, 1273, 1264, 1264, 1274, 1275, 1264, 1276, 1276, - 1276, 1276, 1277, 1277, 1278, 1278, 1279, 1279, 1280, 1280, - 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1281, 1280, - 1280, 1282, 1280, 1283, 1280, 1280, 1280, 1280, 1280, 1284, - 1285, 1285, 1287, 1286, 1288, 1288, 1288, 1290, 1289, 1291, - 1292, 1291, 1293, 1293, 1294, 1295, 1295, 1296, 1297, 1297, + 1179, 1179, 1180, 1180, 1181, 1181, 1181, 1181, 1181, 1181, + 1181, 1181, 1182, 1183, 1183, 1184, 1184, 1185, 1185, 1185, + 1185, 1185, 1186, 1186, 1186, 1186, 1186, 1187, 1187, 1187, + 1188, 1188, 1189, 1189, 1189, 1190, 1191, 1191, 1191, 1191, + 1191, 1191, 1192, 1192, 1192, 1192, 1193, 1193, 1194, 1194, + 1195, 1195, 1196, 1196, 1197, 1197, 1197, 1197, 1197, 1197, + 1197, 1198, 1198, 1199, 1199, 1200, 1201, 1202, 1203, 1203, + 1203, 1204, 1204, 1204, 1204, 1204, 1204, 1205, 1205, 1206, + 1207, 1207, 1208, 1208, 1209, 1209, 1210, 1210, 1211, 1211, + 1212, 1212, 1213, 1214, 1214, 1215, 1215, 1216, 1216, 1217, + 1217, 1217, 1218, 1218, 1219, 1219, 1219, 1219, 1220, 1220, + 1222, 1221, 1223, 1223, 1224, 1225, 1225, 1225, 1225, 1226, + 1227, 1228, 1228, 1229, 1230, 1230, 1231, 1231, 1232, 1232, + 1233, 1234, 1234, 1235, 1235, 1236, 1236, 1236, 1236, 1237, + 1237, 1237, 1237, 1237, 1238, 1238, 1238, 1238, 1238, 1239, + 1239, 1240, 1240, 1241, 1241, 1242, 1242, 1242, 1243, 1243, + 1244, 1245, 1246, 1246, 1247, 1247, 1248, 1248, 1249, 1249, + 1250, 1250, 1251, 1251, 1252, 1252, 1253, 1253, 1253, 1254, + 1254, 1255, 1255, 1255, 1255, 1255, 1255, 1256, 1256, 1257, + 1258, 1258, 1259, 1259, 1259, 1260, 1260, 1261, 1261, 1262, + 1262, 1263, 1263, 1265, 1266, 1264, 1267, 1264, 1264, 1268, + 1264, 1269, 1264, 1270, 1264, 1271, 1264, 1272, 1264, 1264, + 1264, 1264, 1264, 1273, 1264, 1264, 1274, 1275, 1264, 1276, + 1276, 1276, 1276, 1277, 1277, 1278, 1278, 1279, 1279, 1280, + 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1281, + 1280, 1280, 1282, 1280, 1283, 1280, 1280, 1280, 1280, 1280, + 1284, 1285, 1285, 1287, 1286, 1288, 1288, 1288, 1290, 1289, + 1291, 1292, 1291, 1293, 1293, 1294, 1295, 1295, 1296, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, - 1297, 1297, 1297, 1297, 1297, 1298, 1298, 1298, 1298, 1298, - 1299, 1299, 1300, 1300, 1301, 1301, 1302, 1302, 1304, 1303, - 1305, 1305, 1306, 1306, 1307, 1307, 1308, 1308, 1308, 1309, - 1309, 1309, 1310, 1310, 1310, 1310, 1312, 1311, 1313, 1311, - 1311, 1311, 1314, 1315, 1315, 1316, 1316, 1317, 1317, 1317, - 1319, 1318, 1320, 1320, 1321, 1321, 1321, 1322, 1322, 1322, - 1323, 1323, 1325, 1324, 1326, 1326, 1326, 1327, 1328, 1327, - 1330, 1329, 1331, 1331, 1332, 1332, 1333, 1333, 1333, 1334, - 1334, 1336, 1335, 1337, 1337, 1338, 1339, 1339, 1340, 1340, - 1341, 1342, 1341, 1343, 1344, 1343, 1345, 1345, 1345, 1346, - 1346, 1346, 1347, 1347, 1348, 1348, 1349, 1350, 1349, 1352, - 1351, 1353, 1353, 1354, 1354, 1355, 1355, 1355, 1355, 1355, - 1355, 1356, 1356, 1358, 1357, 1359, 1359, 1359, 1361, 1360, - 1360, 1362, 1362, 1363, 1363, 1364, 1366, 1365, 1367, 1367, - 1368, 1368, 1369, 1370, 1371, 1371, 1373, 1372, 1374, 1374, - 1375, 1375, 1376, 1377, 1379, 1378, 1381, 1380, 1382, 1382, - 1383, 1383, 1384, 1385, 1385, 1385, 1385, 1385, 1385, 1385, - 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1388, 1387, 1389, - 1387, 1387, 1390, 1390, 1392, 1391, 1391, 1393, 1393, 1395, - 1394, 1394, 1397, 1396, 1398, 1396, 1396, 1400, 1399, 1399, - 1402, 1401, 1401, 1403, 1404, 1403, 1403, 1403, 1405, 1405, - 1406, 1406, 1407, 1407, 1407, 1408, 1408, 1408, 1409, 1409, - 1409, 1409, 1409, 1411, 1410, 1412, 1413, 1413, 1414, 1415, - 1415, 1416, 1416, 1417, 1417, 1417, 1418, 1418, 1418, 1419, - 1419, 1420, 1420, 1420, 1420, 1421, 1421, 1422, 1422, 1422, - 1423, 1423, 1423, 1424, 1424, 1424, 1425, 1425, 1426, 1427, - 1428, 1429, 1430, 1430, 1430, 1430, 1430, 1431, 1431, 1431, - 1432, 1432, 1432, 1433, 1433, 1434, 1434, 1434, 1434, 1434, - 1434, 1434, 1434, 1434, 1434, 1434, 1435, 1435, 1435, 1435, - 1435, 1435, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, - 1436, 1436, 1436, 1436, 1436, 1436, 1437, 1437, 1437, 1437, + 1297, 1297, 1297, 1297, 1297, 1297, 1298, 1298, 1298, 1298, + 1298, 1299, 1299, 1300, 1300, 1301, 1301, 1302, 1302, 1304, + 1303, 1305, 1305, 1306, 1306, 1307, 1307, 1308, 1308, 1308, + 1309, 1309, 1309, 1310, 1310, 1310, 1310, 1312, 1311, 1313, + 1311, 1311, 1311, 1314, 1315, 1315, 1316, 1316, 1317, 1317, + 1317, 1319, 1318, 1320, 1320, 1321, 1321, 1321, 1322, 1322, + 1322, 1323, 1323, 1325, 1324, 1326, 1326, 1326, 1327, 1328, + 1327, 1330, 1329, 1331, 1331, 1332, 1332, 1333, 1333, 1333, + 1334, 1334, 1336, 1335, 1337, 1337, 1338, 1339, 1339, 1340, + 1340, 1341, 1342, 1341, 1343, 1344, 1343, 1345, 1345, 1345, + 1346, 1346, 1346, 1347, 1347, 1348, 1348, 1349, 1350, 1349, + 1352, 1351, 1353, 1353, 1354, 1354, 1355, 1355, 1355, 1355, + 1355, 1355, 1356, 1356, 1358, 1357, 1359, 1359, 1359, 1361, + 1360, 1360, 1362, 1362, 1363, 1363, 1364, 1366, 1365, 1367, + 1367, 1368, 1368, 1369, 1370, 1371, 1371, 1373, 1372, 1374, + 1374, 1375, 1375, 1376, 1377, 1379, 1378, 1381, 1380, 1382, + 1382, 1383, 1383, 1384, 1385, 1385, 1385, 1385, 1385, 1385, + 1385, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1388, 1387, + 1389, 1387, 1387, 1390, 1390, 1392, 1391, 1391, 1393, 1393, + 1395, 1394, 1394, 1397, 1396, 1398, 1396, 1396, 1400, 1399, + 1399, 1402, 1401, 1401, 1403, 1404, 1403, 1403, 1403, 1405, + 1405, 1406, 1406, 1407, 1407, 1407, 1408, 1408, 1408, 1409, + 1409, 1409, 1409, 1409, 1411, 1410, 1412, 1413, 1413, 1414, + 1415, 1415, 1416, 1416, 1417, 1417, 1417, 1418, 1418, 1418, + 1419, 1419, 1420, 1420, 1420, 1420, 1421, 1421, 1422, 1422, + 1422, 1423, 1423, 1423, 1424, 1424, 1424, 1425, 1425, 1426, + 1427, 1428, 1429, 1430, 1430, 1430, 1430, 1430, 1431, 1431, + 1431, 1432, 1432, 1432, 1433, 1433, 1434, 1434, 1434, 1434, + 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1435, 1435, 1435, + 1435, 1435, 1435, 1436, 1436, 1436, 1436, 1436, 1436, 1436, + 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, - 1437, 1437, 1437, 1437, 1437, 1438, 1438, 1439, 1439, 1440, - 1440, 1441, 1441, 1442, 1442, 1442, 1442, 1442, 1442, 1443, - 1443, 1444, 1444, 1445, 1445, 1445, 1446, 1446, 1446, 1446, - 1446, 1446, 1447, 1447, 1447, 1449, 1448, 1448, 1450, 1451, - 1451, 1452, 1452, 1452, 1452, 1453, 1454, 1454, 1454, 1454, - 1454, 1454, 1454, 1454, 1455, 1455, 1455, 1455, 1455, 1455, + 1437, 1437, 1437, 1437, 1437, 1437, 1438, 1438, 1439, 1439, + 1440, 1440, 1441, 1441, 1442, 1442, 1442, 1442, 1442, 1442, + 1443, 1443, 1444, 1444, 1445, 1445, 1445, 1446, 1446, 1446, + 1446, 1446, 1446, 1447, 1447, 1447, 1449, 1448, 1448, 1450, + 1451, 1451, 1452, 1452, 1452, 1452, 1453, 1454, 1454, 1454, + 1454, 1454, 1454, 1454, 1454, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, 1455, - 1455, 1455, 1455, 1456, 1456, 1456, 1457, 1457, 1458, 1458, - 1458, 1458, 1458, 1458, 1459, 1459, 1460, 1460, 1461, 1461, + 1455, 1455, 1455, 1455, 1456, 1456, 1456, 1457, 1457, 1458, + 1458, 1458, 1458, 1458, 1458, 1459, 1459, 1460, 1460, 1461, + 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, - 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, - 1462, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, + 1462, 1462, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, - 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1464, 1464, - 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1466, 1465, 1465, - 1467, 1467, 1468, 1468, 1469, 1469, 1470, 1470, 1471, 1471, - 1472, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1474, 1475, - 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, - 1473, 1476, 1473, 1477, 1477, 1478, 1478, 1479, 1479, 1479, + 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1464, + 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1466, 1465, + 1465, 1467, 1467, 1468, 1468, 1469, 1469, 1470, 1470, 1471, + 1471, 1472, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1474, + 1475, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, + 1473, 1473, 1476, 1473, 1477, 1477, 1478, 1478, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, - 1480, 1482, 1481, 1481, 1483, 1483, 1484, 1485, 1487, 1486, - 1488, 1488, 1488, 1488, 1489, 1489, 1490, 1490, 1491, 1491, - 1492, 1492, 1493, 1493, 1494, 1495, 1496, 1496, 1496, 1498, - 1497, 1499, 1500, 1499, 1501, 1499, 1502, 1499, 1499, 1499, - 1499, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1504, - 1504, 1504, 1505, 1505, 1506, 1506, 1507, 1507, 1508, 1508, - 1509, 1509, 1510, 1510, 1511, 1511, 1512, 1512, 1513, 1514, - 1514, 1515, 1515, 1516, 1517, 1516, 1518, 1516, 1516, 1519, - 1516, 1520, 1516, 1516, 1521, 1516, 1522, 1516, 1516, 1523, - 1523, 1523, 1524, 1524, 1525, 1525, 1526, 1527, 1527, 1529, - 1528, 1530, 1530, 1531, 1531, 1532, 1531, 1531, 1531, 1531, - 1533, 1533, 1534, 1533, 1535, 1536, 1538, 1537, 1539, 1540, - 1540, 1541, 1543, 1542, 1545, 1546, 1544, 1547, 1548, 1549, - 1550, 1550, 1551, 1551, 1551, 1551, 1552, 1552, 1554, 1553, - 1555, 1553, 1556, 1556, 1557, 1558, 1557, 1560, 1559, 1561, - 1561, 1562, 1562, 1563, 1563, 1564, 1564, 1565, 1565, 1565, - 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1566, - 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1567, 1567, - 1567, 1567, 1568, 1568, 1568, 1569, 1569, 1570, 1570, 1571, - 1572, 1571, 1573, 1574, 1573, 1575, 1575, 1576, 1576, 1577, - 1577, 1578, 1578, 1578, 1579, 1579, 1580, 1580, 1581, 1583, - 1582, 1584, 1584, 1585, 1585, 1586, 1586, 1587, 1587, 1588, - 1588, 1589, 1589, 1590, 1590, 1590, 1591, 1591, 1591, 1592, - 1592, 1592, 1592, 1592, 1592, 1593, 1594, 1594, 1595, 1596, - 1596, 1598, 1597, 1599, 1599, 1600, 1600, 1600, 1601, 1601, - 1602, 1603, 1603, 1603, 1604, 1604, 1604, 1605, 1605, 1605, - 1605, 1605, 1605, 1606, 1607, 1607, 1607, 1607, 1608, 1608, - 1609, 1609, 1610, 1610, 1610, 1610, 1610, 1610, 1611, 1611, - 1611, 1611, 1611, 1612, 1612, 1612, 1612, 1613, 1613, 1613, - 1613, 1613, 1614, 1614, 1614, 1614, 1614, 1615, 1616, 1616, - 1617, 1617, 1618, 1618, 1618, 1620, 1619, 1621, 1621, 1622, - 1622, 1623, 1625, 1624, 1626, 1626, 1627, 1628, 1628, 1628, - 1629, 1631, 1632, 1630, 1630, 1630, 1634, 1633, 1636, 1635, - 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1637, 1635, 1635, - 1635, 1635, 1635, 1635, 1638, 1635, 1639, 1639, 1640, 1641, - 1642, 1642, 1643, 1644, 1644, 1645, 1645, 1646, 1646, 1648, - 1649, 1647, 1651, 1652, 1650, 1653, 1653, 1653, 1653, 1654, - 1654, 1655, 1655, 1656, 1657, 1657, 1657, 1658, 1657, 1659, - 1659, 1660, 1660, 1660, 1661, 1661, 1662, 1662, 1663, 1664, - 1664, 1665, 1665, 1666, 1666, 1667, 1667, 1669, 1668, 1671, - 1670, 1672, 1672, 1673, 1673, 1674, 1674, 1675, 1675, 1676, - 1676, 1676, 1677, 1678, 1679, 1677, 1681, 1682, 1680, 1683, - 1683, 1684, 1685, 1685, 1686, 1687, 1687, 1689, 1688, 1690, - 1690, 1691, 1691, 1692, 1693, 1694, 1693, 1695, 1693, 1696, - 1696, 1697, 1697, 1698, 1698, 1699, 1699, 1700, 1700, 1701, - 1701, 1701, 1703, 1702, 1704, 1704, 1705, 1705, 1706, 1706, - 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1708, - 1708, 1710, 1709, 1711, 1711, 1711, 1711, 1711, 1711, 1711, - 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1712, 1711, 1713, + 1479, 1480, 1482, 1481, 1481, 1483, 1483, 1484, 1485, 1487, + 1486, 1488, 1488, 1488, 1488, 1489, 1489, 1490, 1490, 1491, + 1491, 1492, 1492, 1493, 1493, 1494, 1495, 1496, 1496, 1496, + 1498, 1497, 1499, 1500, 1499, 1501, 1499, 1502, 1499, 1499, + 1499, 1499, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503, + 1504, 1504, 1504, 1505, 1505, 1506, 1506, 1507, 1507, 1508, + 1508, 1509, 1509, 1510, 1510, 1511, 1511, 1512, 1512, 1513, + 1514, 1514, 1515, 1515, 1516, 1517, 1516, 1518, 1516, 1516, + 1519, 1516, 1520, 1516, 1516, 1521, 1516, 1522, 1516, 1516, + 1523, 1523, 1523, 1524, 1524, 1525, 1525, 1526, 1527, 1527, + 1529, 1528, 1530, 1530, 1531, 1531, 1532, 1531, 1531, 1531, + 1531, 1533, 1533, 1534, 1533, 1535, 1536, 1538, 1537, 1539, + 1540, 1540, 1541, 1543, 1542, 1545, 1546, 1544, 1547, 1548, + 1549, 1550, 1550, 1551, 1551, 1551, 1551, 1552, 1552, 1554, + 1553, 1555, 1553, 1556, 1556, 1557, 1558, 1557, 1560, 1559, + 1561, 1561, 1562, 1562, 1563, 1563, 1564, 1564, 1565, 1565, + 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, + 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1566, 1567, + 1567, 1567, 1567, 1568, 1568, 1568, 1569, 1569, 1570, 1570, + 1571, 1572, 1571, 1573, 1574, 1573, 1575, 1575, 1576, 1576, + 1577, 1577, 1578, 1578, 1578, 1579, 1579, 1580, 1580, 1581, + 1583, 1582, 1584, 1584, 1585, 1585, 1586, 1586, 1587, 1587, + 1588, 1588, 1589, 1589, 1590, 1590, 1590, 1591, 1591, 1591, + 1592, 1592, 1592, 1592, 1592, 1592, 1593, 1594, 1594, 1595, + 1596, 1596, 1598, 1597, 1599, 1599, 1600, 1600, 1600, 1601, + 1601, 1602, 1603, 1603, 1603, 1604, 1604, 1604, 1605, 1605, + 1605, 1605, 1605, 1605, 1606, 1607, 1607, 1607, 1607, 1608, + 1608, 1609, 1609, 1610, 1610, 1610, 1610, 1610, 1610, 1611, + 1611, 1611, 1611, 1611, 1612, 1612, 1612, 1612, 1613, 1613, + 1613, 1613, 1613, 1614, 1614, 1614, 1614, 1614, 1615, 1616, + 1616, 1617, 1617, 1618, 1618, 1618, 1620, 1619, 1621, 1621, + 1622, 1622, 1623, 1625, 1624, 1626, 1626, 1627, 1628, 1628, + 1628, 1629, 1631, 1632, 1630, 1630, 1630, 1634, 1633, 1636, + 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1637, 1635, + 1635, 1635, 1635, 1635, 1635, 1638, 1635, 1639, 1639, 1640, + 1641, 1642, 1642, 1643, 1644, 1644, 1645, 1645, 1646, 1646, + 1648, 1649, 1647, 1651, 1652, 1650, 1653, 1653, 1653, 1653, + 1654, 1654, 1655, 1655, 1656, 1657, 1657, 1657, 1658, 1657, + 1659, 1659, 1660, 1660, 1660, 1661, 1661, 1662, 1662, 1663, + 1664, 1664, 1665, 1665, 1666, 1666, 1667, 1667, 1669, 1668, + 1671, 1670, 1672, 1672, 1673, 1673, 1674, 1674, 1675, 1675, + 1676, 1676, 1676, 1677, 1678, 1679, 1677, 1681, 1682, 1680, + 1683, 1683, 1684, 1685, 1685, 1686, 1687, 1687, 1689, 1688, + 1690, 1690, 1691, 1691, 1692, 1693, 1694, 1693, 1695, 1693, + 1696, 1696, 1697, 1697, 1698, 1698, 1699, 1699, 1700, 1700, + 1701, 1701, 1701, 1703, 1702, 1704, 1704, 1705, 1705, 1706, + 1706, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, 1707, + 1708, 1708, 1710, 1709, 1711, 1711, 1711, 1711, 1711, 1711, + 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1712, 1711, + 1713, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, - 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, - 1711, 1711, 1711, 1711, 1714, 1714, 1714, 1715, 1715, 1716, - 1716, 1717, 1717, 1718, 1718, 1719, 1719, 1720, 1720, 1721, - 1721, 1722, 1722, 1722, 1724, 1723, 1725, 1723, 1726, 1726, - 1726, 1726, 1726, 1727, 1727, 1728, 1729, 1729, 1729, 1730, - 1730, 1731, 1731, 1731, 1733, 1732, 1735, 1734, 1734, 1736, - 1736, 1737, 1738, 1737, 1739, 1739, 1740, 1740, 1740, 1740, + 1711, 1711, 1711, 1711, 1711, 1714, 1714, 1714, 1715, 1715, + 1716, 1716, 1717, 1717, 1718, 1718, 1719, 1719, 1720, 1720, + 1721, 1721, 1722, 1722, 1722, 1724, 1723, 1725, 1723, 1726, + 1726, 1726, 1726, 1726, 1727, 1727, 1728, 1729, 1729, 1729, + 1730, 1730, 1731, 1731, 1731, 1733, 1732, 1735, 1734, 1734, + 1736, 1736, 1737, 1738, 1737, 1739, 1739, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, - 1740, 1740, 1741, 1741, 1742, 1742, 1743, 1743, 1743, 1744, - 1745, 1745, 1747, 1746, 1748, 1748, 1750, 1749, 1751, 1749, - 1749, 1752, 1752, 1753, 1753, 1755, 1754, 1756, 1757, 1757, - 1759, 1758, 1760, 1760, 1760, 1761, 1761, 1761, 1761, 1762, - 1762, 1763, 1764, 1766, 1767, 1768, 1769, 1765, 1770, 1770, - 1771, 1771, 1772, 1772, 1772, 1773, 1773, 1773, 1774, 1774, - 1775, 1775, 1776, 1776, 1776, 1776, 1777, 1777, 1778, 1778, - 1779, 1779, 1780, 1780, 1781, 1781, 1782, 1782, 1783, 1783, - 1783, 1784, 1784, 1785, 1785, 1786, 1786, 1787, 1787, 1788, - 1789, 1789, 1789, 1789, 1790, 1790, 1791, 1791, 1791, 1792, - 1792, 1792, 1793, 1793, 1794, 1794, 1794, 1794, 1794, 1794, - 1794, 1794, 1794, 1794, 1795, 1795, 1795, 1795, 1795, 1796, - 1796, 1796, 1797, 1797, 1799, 1798, 1800, 1800, 1801, 1801, - 1803, 1802, 1804, 1804, 1805, 1805, 1806, 1807, 1807, 1808, - 1808, 1809, 1809, 1810, 1811, 1811, 1811, 1811, 1811, 1812, - 1812, 1812, 1812, 1812, 1813, 1813, 1813, 1813, 1814, 1814, - 1814, 1815, 1815, 1816, 1817, 1817, 1818, 1818, 1818, 1819, - 1820, 1821, 1822, 1823, 1823, 1824, 1824, 1825, 1825, 1825, - 1826, 1826, 1827, 1827, 1828, 1828, 1828, 1829, 1829, 1829, - 1830, 1830, 1831, 1832, 1832, 1832, 1832, 1832, 1832, 1832, - 1832, 1833, 1833, 1833, 1833, 1833, 1833, 1833, 1833, 1833, - 1834, 1834, 1834, 1834, 1835, 1835, 1835, 1835, 1835, 1835, - 1835, 1835, 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836, - 1836, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1838, + 1740, 1740, 1740, 1741, 1741, 1742, 1742, 1743, 1743, 1743, + 1744, 1745, 1745, 1747, 1746, 1748, 1748, 1750, 1749, 1751, + 1749, 1749, 1752, 1752, 1753, 1753, 1755, 1754, 1756, 1757, + 1757, 1759, 1758, 1760, 1760, 1760, 1761, 1761, 1761, 1761, + 1762, 1762, 1763, 1764, 1766, 1767, 1768, 1769, 1765, 1770, + 1770, 1771, 1771, 1772, 1772, 1772, 1773, 1773, 1773, 1774, + 1774, 1775, 1775, 1776, 1776, 1776, 1776, 1777, 1777, 1778, + 1778, 1779, 1779, 1780, 1780, 1781, 1781, 1782, 1782, 1783, + 1783, 1783, 1784, 1784, 1785, 1785, 1786, 1786, 1787, 1787, + 1788, 1789, 1789, 1789, 1789, 1790, 1790, 1791, 1791, 1791, + 1792, 1792, 1792, 1793, 1793, 1794, 1794, 1794, 1794, 1794, + 1794, 1794, 1794, 1794, 1794, 1795, 1795, 1795, 1795, 1795, + 1796, 1796, 1796, 1797, 1797, 1799, 1798, 1800, 1800, 1801, + 1801, 1803, 1802, 1804, 1804, 1805, 1805, 1806, 1807, 1807, + 1808, 1808, 1809, 1809, 1810, 1811, 1811, 1811, 1811, 1811, + 1812, 1812, 1812, 1812, 1812, 1813, 1813, 1813, 1813, 1814, + 1814, 1814, 1815, 1815, 1816, 1817, 1817, 1818, 1818, 1818, + 1819, 1820, 1821, 1822, 1823, 1823, 1824, 1824, 1825, 1825, + 1825, 1826, 1826, 1827, 1827, 1828, 1828, 1828, 1829, 1829, + 1829, 1830, 1830, 1831, 1832, 1832, 1832, 1832, 1832, 1832, + 1832, 1832, 1833, 1833, 1833, 1833, 1833, 1833, 1833, 1833, + 1833, 1834, 1834, 1834, 1834, 1835, 1835, 1835, 1835, 1835, + 1835, 1835, 1835, 1836, 1836, 1836, 1836, 1836, 1836, 1836, + 1836, 1836, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, 1838, - 1838, 1838, 1838, 1838, 1839, 1839, 1839, 1839, 1839, 1839, - 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840, - 1841, 1841, 1841, 1842, 1842, 1842, 1843, 1843, 1843, 1844, + 1838, 1838, 1838, 1838, 1838, 1839, 1839, 1839, 1839, 1839, + 1839, 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840, 1840, + 1840, 1841, 1841, 1841, 1842, 1842, 1842, 1843, 1843, 1843, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, - 1844, 1844, 1844, 1845, 1845, 1845, 1845, 1845, 1845, 1845, + 1844, 1844, 1844, 1844, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, @@ -24449,45 +24503,45 @@ 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1845, - 1845, 1845, 1845, 1845, 1845, 1845, 1847, 1846, 1848, 1849, - 1846, 1850, 1850, 1852, 1851, 1853, 1851, 1854, 1851, 1856, - 1855, 1855, 1857, 1857, 1859, 1858, 1860, 1858, 1862, 1861, - 1861, 1863, 1863, 1863, 1864, 1864, 1864, 1864, 1865, 1865, - 1865, 1865, 1866, 1866, 1866, 1867, 1867, 1867, 1867, 1867, + 1845, 1845, 1845, 1845, 1845, 1845, 1845, 1847, 1846, 1848, + 1849, 1846, 1850, 1850, 1852, 1851, 1853, 1851, 1854, 1851, + 1856, 1855, 1855, 1857, 1857, 1859, 1858, 1860, 1858, 1862, + 1861, 1861, 1863, 1863, 1863, 1864, 1864, 1864, 1864, 1865, + 1865, 1865, 1865, 1866, 1866, 1866, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, - 1868, 1868, 1868, 1868, 1869, 1870, 1871, 1871, 1872, 1872, - 1872, 1872, 1873, 1873, 1874, 1874, 1874, 1875, 1875, 1875, - 1875, 1875, 1877, 1876, 1878, 1878, 1878, 1879, 1879, 1880, - 1880, 1881, 1882, 1882, 1882, 1882, 1882, 1884, 1883, 1885, - 1885, 1886, 1885, 1887, 1887, 1888, 1888, 1889, 1889, 1889, - 1889, 1890, 1889, 1891, 1891, 1891, 1891, 1891, 1892, 1893, - 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1894, 1894, 1895, - 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1897, 1897, 1898, - 1898, 1899, 1899, 1900, 1901, 1901, 1902, 1902, 1903, 1903, - 1904, 1904, 1905, 1905, 1907, 1906, 1908, 1906, 1909, 1906, - 1910, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, + 1867, 1868, 1868, 1868, 1868, 1869, 1870, 1871, 1871, 1872, + 1872, 1872, 1872, 1873, 1873, 1874, 1874, 1874, 1875, 1875, + 1875, 1875, 1875, 1877, 1876, 1878, 1878, 1878, 1879, 1879, + 1880, 1880, 1881, 1882, 1882, 1882, 1882, 1882, 1884, 1883, + 1885, 1885, 1886, 1885, 1887, 1887, 1888, 1888, 1889, 1889, + 1889, 1889, 1890, 1889, 1891, 1891, 1891, 1891, 1891, 1892, + 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1894, 1894, + 1895, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1897, 1897, + 1898, 1898, 1899, 1899, 1900, 1901, 1901, 1902, 1902, 1903, + 1903, 1904, 1904, 1905, 1905, 1907, 1906, 1908, 1906, 1909, + 1906, 1910, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, + 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, - 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1911, - 1911, 1912, 1912, 1913, 1913, 1913, 1914, 1914, 1914, 1914, - 1915, 1915, 1916, 1916, 1917, 1917, 1918, 1918, 1919, 1919, - 1920, 1920, 1920, 1920, 1920, 1921, 1921, 1922, 1922, 1923, - 1924, 1924, 1924, 1924, 1924, 1925, 1925, 1925, 1925, 1925, - 1926, 1926, 1927, 1927, 1928, 1928, 1929, 1929, 1930, 1930, - 1931, 1931, 1933, 1932, 1934, 1935, 1935, 1936, 1936, 1937, - 1937, 1937, 1938, 1938, 1938, 1939, 1940, 1940, 1940, 1941, - 1942, 1943, 1943, 1943, 1944, 1944, 1946, 1945, 1948, 1947, - 1950, 1949, 1951, 1951, 1952, 1953, 1953, 1953, 1954, 1954, - 1956, 1955, 1957, 1958, 1958, 1959, 1959, 1960, 1960, 1960, - 1961, 1962, 1963, 1964, 1964, 1965, 1965, 1966, 1966, 1966, - 1966, 1966, 1966, 1966, 1966, 1967, 1967, 1968, 1969, 1970, - 1970, 1970, 1971, 1971, 1972, 1972, 1973, 1973, 1974, 1974, - 1976, 1975, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1978, - 1978, 1978, 1978, 1979, 1979, 1980, 1980, 1982, 1983, 1984, - 1985, 1986, 1981, 1987, 1989, 1988, 1991, 1992, 1990, 1994, - 1995, 1993, 1996, 1996, 1996, 1996, 1996, 1996, 1997, 1997, - 1998, 1998, 1998, 1999, 1999, 1999, 2000, 2000, 2000, 2001, - 2001, 2002, 2003, 2002, 2004, 2004, 2005, 2005, 2006, 2006, - 2007 + 1911, 1911, 1912, 1912, 1913, 1913, 1913, 1914, 1914, 1914, + 1914, 1915, 1915, 1916, 1916, 1917, 1917, 1918, 1918, 1919, + 1919, 1920, 1920, 1920, 1920, 1920, 1921, 1921, 1922, 1922, + 1923, 1924, 1924, 1924, 1924, 1924, 1925, 1925, 1925, 1925, + 1925, 1926, 1926, 1927, 1927, 1928, 1928, 1929, 1929, 1930, + 1930, 1931, 1931, 1933, 1932, 1934, 1935, 1935, 1936, 1936, + 1937, 1937, 1937, 1938, 1938, 1938, 1939, 1940, 1940, 1940, + 1941, 1942, 1943, 1943, 1943, 1944, 1944, 1946, 1945, 1948, + 1947, 1950, 1949, 1951, 1951, 1952, 1953, 1953, 1953, 1954, + 1954, 1956, 1955, 1957, 1958, 1958, 1959, 1959, 1960, 1960, + 1960, 1961, 1962, 1963, 1964, 1964, 1965, 1965, 1966, 1966, + 1966, 1966, 1966, 1966, 1966, 1966, 1967, 1967, 1968, 1969, + 1970, 1970, 1970, 1971, 1971, 1972, 1972, 1973, 1973, 1974, + 1974, 1976, 1975, 1977, 1977, 1977, 1977, 1977, 1977, 1977, + 1978, 1978, 1978, 1978, 1979, 1979, 1980, 1980, 1982, 1983, + 1984, 1985, 1986, 1981, 1987, 1989, 1988, 1991, 1992, 1990, + 1994, 1995, 1993, 1996, 1996, 1996, 1996, 1996, 1996, 1997, + 1997, 1998, 1998, 1998, 1999, 1999, 1999, 2000, 2000, 2000, + 2001, 2001, 2002, 2003, 2002, 2004, 2004, 2005, 2005, 2006, + 2006, 2007 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -24557,7 +24611,7 @@ 0, 7, 5, 3, 0, 5, 0, 5, 1, 0, 1, 0, 4, 0, 0, 3, 0, 6, 6, 0, 4, 2, 2, 0, 3, 2, 0, 3, 0, 1, - 0, 3, 0, 1, 1, 3, 1, 4, 5, 5, + 0, 3, 0, 1, 1, 3, 1, 4, 3, 3, 0, 2, 0, 0, 7, 0, 10, 1, 3, 1, 1, 0, 2, 0, 3, 1, 3, 0, 6, 1, 0, 0, 4, 0, 3, 1, 1, 1, 1, 1, @@ -24584,174 +24638,174 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 2, 1, 1, 3, 3, 3, 3, 0, 1, 2, 2, 3, 3, 2, 3, 3, 4, 3, - 3, 3, 1, 2, 2, 2, 2, 3, 3, 3, - 2, 2, 3, 3, 2, 3, 2, 2, 2, 2, - 2, 5, 5, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 1, 2, 1, 2, 3, - 2, 1, 1, 1, 1, 1, 1, 1, 2, 0, - 3, 0, 1, 1, 5, 0, 1, 1, 1, 2, + 3, 3, 1, 2, 2, 2, 2, 3, 3, 2, + 3, 2, 2, 3, 3, 2, 3, 2, 2, 2, + 2, 2, 5, 5, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, + 3, 2, 1, 1, 1, 1, 1, 1, 1, 2, + 0, 3, 0, 1, 1, 5, 0, 1, 1, 1, + 2, 2, 3, 3, 3, 3, 0, 1, 0, 1, + 0, 1, 2, 1, 1, 2, 4, 1, 3, 2, + 1, 0, 2, 0, 1, 2, 2, 2, 2, 2, + 1, 1, 3, 3, 3, 3, 2, 1, 2, 2, + 2, 1, 1, 1, 1, 1, 0, 2, 1, 1, + 1, 1, 1, 0, 2, 1, 1, 0, 1, 2, + 1, 1, 0, 1, 1, 2, 1, 2, 0, 1, + 0, 4, 1, 1, 1, 0, 1, 2, 1, 1, + 2, 1, 3, 3, 1, 1, 0, 2, 0, 1, + 5, 0, 3, 3, 1, 0, 2, 2, 2, 0, + 3, 3, 6, 6, 1, 1, 2, 2, 2, 2, + 2, 1, 1, 0, 1, 1, 1, 1, 0, 1, + 1, 1, 0, 1, 0, 1, 0, 1, 1, 2, + 1, 2, 1, 2, 0, 2, 0, 2, 2, 2, + 2, 3, 2, 3, 3, 3, 3, 1, 1, 1, + 1, 3, 1, 1, 1, 4, 2, 1, 4, 0, + 1, 1, 3, 0, 0, 8, 0, 5, 7, 0, + 5, 0, 5, 0, 10, 0, 9, 0, 11, 3, + 4, 3, 3, 0, 8, 7, 0, 0, 7, 0, + 3, 1, 4, 0, 3, 0, 2, 0, 1, 0, + 2, 2, 2, 2, 1, 1, 1, 4, 4, 0, + 6, 4, 0, 5, 0, 6, 4, 3, 1, 7, + 2, 1, 1, 0, 6, 0, 3, 2, 0, 5, + 0, 0, 6, 1, 3, 1, 1, 3, 3, 3, + 2, 2, 4, 2, 7, 6, 5, 5, 4, 5, + 4, 4, 2, 2, 7, 6, 3, 5, 1, 1, + 1, 1, 1, 3, 3, 3, 0, 1, 1, 2, 2, 3, 3, 3, 3, 0, 1, 0, 1, 0, - 1, 2, 1, 1, 2, 4, 1, 3, 2, 1, - 0, 2, 0, 1, 2, 2, 2, 2, 2, 1, - 1, 3, 3, 3, 3, 2, 1, 2, 2, 2, - 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, - 1, 1, 0, 2, 1, 1, 0, 1, 2, 1, - 1, 0, 1, 1, 2, 1, 2, 0, 1, 0, - 4, 1, 1, 1, 0, 1, 2, 1, 1, 2, - 1, 3, 3, 1, 1, 0, 2, 0, 1, 5, - 0, 3, 3, 1, 0, 2, 2, 2, 0, 3, - 3, 6, 6, 1, 1, 2, 2, 2, 2, 2, - 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, - 1, 0, 1, 0, 1, 0, 1, 1, 2, 1, - 2, 1, 2, 0, 2, 0, 2, 2, 2, 2, - 3, 2, 3, 3, 3, 3, 1, 1, 1, 1, - 3, 1, 1, 1, 4, 2, 1, 4, 0, 1, - 1, 3, 0, 0, 8, 0, 5, 7, 0, 5, - 0, 5, 0, 10, 0, 9, 0, 11, 3, 4, - 3, 3, 0, 8, 7, 0, 0, 7, 0, 3, - 1, 4, 0, 3, 0, 2, 0, 1, 0, 2, - 2, 2, 2, 1, 1, 1, 4, 4, 0, 6, - 4, 0, 5, 0, 6, 4, 3, 1, 7, 2, - 1, 1, 0, 6, 0, 3, 2, 0, 5, 0, - 0, 6, 1, 3, 1, 1, 3, 3, 3, 2, - 2, 4, 2, 7, 6, 5, 5, 4, 5, 4, - 4, 2, 2, 7, 6, 3, 5, 1, 1, 1, - 1, 1, 3, 3, 3, 0, 1, 1, 2, 2, - 3, 3, 3, 3, 0, 1, 0, 1, 0, 2, - 0, 1, 2, 1, 1, 1, 0, 1, 1, 0, - 2, 1, 0, 1, 1, 1, 0, 6, 0, 5, - 4, 4, 3, 0, 1, 1, 3, 3, 2, 2, - 0, 2, 1, 3, 0, 1, 1, 0, 2, 4, - 1, 3, 0, 5, 0, 1, 1, 3, 0, 4, - 0, 4, 0, 1, 1, 2, 1, 1, 1, 0, - 2, 0, 5, 1, 3, 2, 0, 3, 1, 4, - 1, 0, 4, 1, 0, 4, 0, 1, 3, 0, - 1, 3, 1, 1, 2, 6, 3, 0, 4, 0, - 3, 0, 1, 1, 2, 1, 1, 1, 1, 1, - 2, 0, 2, 0, 6, 0, 1, 1, 0, 4, - 4, 3, 5, 1, 3, 4, 0, 6, 1, 1, - 1, 3, 2, 3, 1, 1, 0, 6, 1, 1, - 1, 3, 3, 4, 0, 6, 0, 2, 0, 4, - 0, 2, 2, 3, 1, 2, 2, 3, 4, 4, - 3, 1, 2, 2, 3, 4, 4, 0, 3, 0, - 5, 3, 4, 2, 0, 2, 3, 4, 2, 0, - 2, 3, 0, 2, 0, 7, 3, 0, 4, 2, - 0, 4, 2, 2, 0, 4, 2, 3, 1, 1, - 1, 1, 1, 1, 2, 1, 2, 3, 1, 4, - 2, 2, 3, 0, 3, 5, 0, 1, 2, 1, - 1, 0, 1, 0, 1, 1, 2, 1, 2, 0, - 2, 3, 1, 4, 4, 2, 1, 1, 1, 1, - 0, 3, 5, 3, 1, 1, 3, 4, 0, 0, - 0, 0, 0, 2, 2, 1, 1, 0, 2, 3, - 0, 2, 3, 0, 2, 3, 3, 3, 2, 3, - 4, 3, 4, 3, 4, 1, 3, 4, 3, 3, - 6, 1, 5, 6, 5, 7, 6, 8, 5, 6, - 4, 4, 5, 3, 4, 1, 3, 3, 3, 3, - 3, 3, 3, 5, 5, 5, 6, 6, 3, 3, - 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, + 2, 0, 1, 2, 1, 1, 1, 0, 1, 1, + 0, 2, 1, 0, 1, 1, 1, 0, 6, 0, + 5, 4, 4, 3, 0, 1, 1, 3, 3, 2, + 2, 0, 2, 1, 3, 0, 1, 1, 0, 2, + 4, 1, 3, 0, 5, 0, 1, 1, 3, 0, + 4, 0, 4, 0, 1, 1, 2, 1, 1, 1, + 0, 2, 0, 5, 1, 3, 2, 0, 3, 1, + 4, 1, 0, 4, 1, 0, 4, 0, 1, 3, + 0, 1, 3, 1, 1, 2, 6, 3, 0, 4, + 0, 3, 0, 1, 1, 2, 1, 1, 1, 1, + 1, 2, 0, 2, 0, 6, 0, 1, 1, 0, + 4, 4, 3, 5, 1, 3, 4, 0, 6, 1, + 1, 1, 3, 2, 3, 1, 1, 0, 6, 1, + 1, 1, 3, 3, 4, 0, 6, 0, 2, 0, + 4, 0, 2, 2, 3, 1, 2, 2, 3, 4, + 4, 3, 1, 2, 2, 3, 4, 4, 0, 3, + 0, 5, 3, 4, 2, 0, 2, 3, 4, 2, + 0, 2, 3, 0, 2, 0, 7, 3, 0, 4, + 2, 0, 4, 2, 2, 0, 4, 2, 3, 1, + 1, 1, 1, 1, 1, 2, 1, 2, 3, 1, + 4, 2, 2, 3, 0, 3, 5, 0, 1, 2, + 1, 1, 0, 1, 0, 1, 1, 2, 1, 2, + 0, 2, 3, 1, 4, 4, 2, 1, 1, 1, + 1, 0, 3, 5, 3, 1, 1, 3, 4, 0, + 0, 0, 0, 0, 2, 2, 1, 1, 0, 2, + 3, 0, 2, 3, 0, 2, 3, 3, 3, 2, + 3, 4, 3, 4, 3, 4, 1, 3, 4, 3, + 3, 6, 1, 5, 6, 5, 7, 6, 8, 5, + 6, 4, 4, 5, 3, 4, 1, 3, 3, 3, + 3, 3, 3, 3, 5, 5, 5, 6, 6, 3, + 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 2, 1, 1, 1, 1, 2, 1, 1, - 1, 2, 1, 2, 2, 0, 3, 1, 4, 1, - 3, 1, 1, 1, 1, 3, 1, 4, 4, 4, - 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 6, 4, 4, 7, 6, - 3, 4, 6, 6, 4, 4, 4, 4, 4, 4, - 6, 8, 10, 1, 1, 3, 1, 3, 1, 2, - 2, 2, 2, 2, 1, 3, 4, 6, 4, 6, - 2, 2, 4, 4, 4, 10, 6, 8, 6, 4, - 4, 6, 4, 3, 4, 1, 4, 3, 4, 6, - 8, 2, 2, 8, 8, 6, 8, 6, 6, 6, - 6, 2, 6, 6, 8, 8, 6, 8, 6, 2, - 8, 8, 4, 2, 2, 2, 6, 6, 4, 4, - 8, 4, 4, 4, 4, 3, 8, 6, 8, 4, - 6, 4, 6, 4, 4, 4, 6, 8, 4, 3, - 6, 4, 6, 5, 8, 7, 10, 1, 6, 4, - 4, 4, 4, 4, 6, 4, 6, 0, 5, 6, - 2, 3, 0, 4, 0, 3, 0, 1, 1, 3, - 4, 4, 5, 4, 4, 4, 5, 4, 0, 0, - 7, 4, 5, 4, 5, 4, 4, 4, 4, 4, - 5, 0, 9, 3, 3, 1, 1, 3, 3, 3, - 3, 3, 4, 4, 4, 6, 4, 6, 4, 6, - 5, 0, 7, 4, 4, 4, 4, 1, 0, 3, - 3, 1, 3, 5, 0, 1, 0, 2, 0, 3, - 4, 2, 0, 1, 1, 2, 1, 3, 3, 0, - 3, 2, 0, 4, 0, 4, 0, 4, 2, 1, - 1, 1, 1, 2, 1, 2, 2, 1, 2, 1, - 2, 2, 0, 1, 1, 3, 1, 3, 1, 3, - 4, 5, 1, 3, 3, 3, 1, 1, 1, 1, - 4, 1, 3, 3, 0, 6, 0, 8, 4, 0, - 8, 0, 10, 6, 0, 8, 0, 10, 6, 1, - 2, 1, 1, 2, 0, 1, 5, 1, 1, 0, - 6, 6, 9, 1, 2, 0, 4, 2, 3, 3, - 1, 1, 0, 3, 2, 1, 0, 3, 2, 1, - 1, 3, 0, 3, 0, 0, 5, 0, 1, 0, - 0, 1, 0, 2, 3, 3, 1, 1, 0, 7, - 0, 7, 1, 2, 0, 0, 2, 0, 2, 0, - 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, + 1, 1, 0, 2, 1, 1, 1, 1, 2, 1, + 1, 1, 2, 1, 2, 2, 0, 3, 1, 4, + 1, 3, 1, 1, 1, 1, 3, 1, 4, 4, + 4, 3, 3, 3, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 6, 4, 4, 7, + 6, 3, 4, 6, 6, 4, 4, 4, 4, 4, + 4, 6, 8, 10, 1, 1, 3, 1, 3, 1, + 2, 2, 2, 2, 2, 1, 3, 4, 6, 4, + 6, 2, 2, 4, 4, 4, 10, 6, 8, 6, + 4, 4, 6, 4, 3, 4, 1, 4, 3, 4, + 6, 8, 2, 2, 8, 8, 6, 8, 6, 6, + 6, 6, 2, 6, 6, 8, 8, 6, 8, 6, + 2, 8, 8, 4, 2, 2, 2, 6, 6, 4, + 4, 8, 4, 4, 4, 4, 3, 8, 6, 8, + 4, 6, 4, 6, 4, 4, 4, 6, 8, 4, + 3, 6, 4, 6, 5, 8, 7, 10, 1, 6, + 4, 4, 4, 4, 4, 6, 4, 6, 0, 5, + 6, 2, 3, 0, 4, 0, 3, 0, 1, 1, + 3, 4, 4, 5, 4, 4, 4, 5, 4, 0, + 0, 7, 4, 5, 4, 5, 4, 4, 4, 4, + 4, 5, 0, 9, 3, 3, 1, 1, 3, 3, + 3, 3, 3, 4, 4, 4, 6, 4, 6, 4, + 6, 5, 0, 7, 4, 4, 4, 4, 1, 0, + 3, 3, 1, 3, 5, 0, 1, 0, 2, 0, + 3, 4, 2, 0, 1, 1, 2, 1, 3, 3, + 0, 3, 2, 0, 4, 0, 4, 0, 4, 2, + 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, + 1, 2, 2, 0, 1, 1, 3, 1, 3, 1, + 3, 4, 5, 1, 3, 3, 3, 1, 1, 1, + 1, 4, 1, 3, 3, 0, 6, 0, 8, 4, + 0, 8, 0, 10, 6, 0, 8, 0, 10, 6, + 1, 2, 1, 1, 2, 0, 1, 5, 1, 1, + 0, 6, 6, 9, 1, 2, 0, 4, 2, 3, + 3, 1, 1, 0, 3, 2, 1, 0, 3, 2, + 1, 1, 3, 0, 3, 0, 0, 5, 0, 1, + 0, 0, 1, 0, 2, 3, 3, 1, 1, 0, + 7, 0, 7, 1, 2, 0, 0, 2, 0, 2, + 0, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 1, 1, 0, 2, 0, 1, 0, - 0, 3, 0, 0, 3, 2, 0, 0, 4, 4, - 2, 0, 1, 1, 0, 2, 3, 1, 3, 0, - 7, 0, 1, 0, 3, 0, 3, 0, 3, 1, - 1, 1, 4, 2, 2, 2, 1, 2, 2, 0, - 3, 2, 2, 3, 3, 3, 3, 1, 2, 0, - 1, 0, 4, 4, 2, 0, 1, 1, 0, 1, - 1, 2, 5, 4, 1, 3, 3, 1, 3, 1, - 1, 1, 1, 1, 0, 2, 3, 4, 0, 1, - 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, - 1, 1, 1, 2, 1, 2, 2, 2, 2, 2, - 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 6, 0, 1, 3, - 1, 3, 0, 2, 3, 1, 1, 2, 1, 3, - 2, 0, 0, 7, 2, 1, 0, 3, 0, 8, - 7, 4, 6, 4, 4, 5, 5, 0, 6, 4, - 4, 5, 6, 4, 0, 6, 1, 3, 1, 2, - 1, 3, 1, 0, 2, 0, 2, 0, 1, 0, - 0, 8, 0, 0, 6, 0, 1, 1, 1, 1, - 1, 2, 1, 1, 1, 3, 4, 0, 3, 3, - 1, 2, 2, 1, 3, 1, 3, 1, 3, 1, - 1, 0, 1, 1, 1, 1, 1, 0, 4, 0, - 4, 0, 1, 0, 1, 3, 1, 5, 3, 1, - 1, 1, 0, 0, 0, 7, 0, 0, 11, 3, - 1, 3, 3, 1, 3, 0, 1, 0, 3, 0, - 3, 2, 3, 3, 5, 0, 5, 0, 6, 0, - 2, 1, 3, 2, 4, 0, 2, 0, 2, 1, - 1, 1, 0, 5, 0, 1, 0, 1, 1, 3, - 1, 1, 2, 2, 2, 1, 1, 1, 1, 0, - 3, 0, 3, 2, 4, 4, 3, 4, 4, 1, - 3, 3, 3, 3, 6, 2, 2, 0, 6, 0, - 7, 5, 2, 1, 1, 1, 5, 5, 2, 2, - 1, 4, 3, 2, 3, 2, 2, 1, 4, 4, - 3, 3, 3, 2, 3, 2, 3, 3, 3, 3, - 4, 3, 2, 3, 3, 3, 3, 4, 3, 3, - 4, 3, 3, 3, 1, 1, 1, 1, 1, 0, - 1, 0, 2, 0, 1, 1, 1, 0, 2, 0, - 2, 0, 3, 3, 0, 4, 0, 4, 1, 1, - 1, 1, 1, 1, 1, 3, 1, 1, 1, 0, - 3, 0, 1, 1, 0, 4, 0, 4, 1, 0, - 1, 4, 0, 3, 3, 1, 2, 2, 2, 2, - 3, 3, 2, 1, 1, 1, 1, 2, 1, 1, - 1, 2, 0, 1, 0, 5, 0, 1, 3, 1, - 0, 3, 0, 3, 3, 1, 0, 4, 0, 3, - 2, 0, 1, 0, 2, 0, 3, 3, 2, 2, - 0, 5, 0, 1, 1, 0, 1, 1, 2, 1, - 2, 1, 2, 0, 0, 0, 0, 22, 1, 1, - 0, 1, 0, 1, 1, 0, 1, 1, 0, 2, - 2, 1, 3, 4, 3, 3, 0, 2, 2, 1, - 3, 3, 0, 4, 0, 3, 1, 1, 0, 3, - 2, 3, 1, 1, 2, 0, 2, 3, 1, 5, - 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, - 2, 2, 0, 1, 0, 4, 0, 1, 1, 3, - 0, 9, 0, 3, 1, 3, 1, 1, 1, 3, - 5, 3, 5, 1, 1, 3, 4, 5, 4, 1, - 3, 4, 4, 5, 1, 5, 3, 2, 1, 3, - 2, 2, 4, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, + 1, 1, 1, 0, 1, 1, 0, 2, 0, 1, + 0, 0, 3, 0, 0, 3, 2, 0, 0, 4, + 4, 2, 0, 1, 1, 0, 2, 3, 1, 3, + 0, 7, 0, 1, 0, 3, 0, 3, 0, 3, + 1, 1, 1, 4, 2, 2, 2, 1, 2, 2, + 0, 3, 2, 2, 3, 3, 3, 3, 1, 2, + 0, 1, 0, 4, 4, 2, 0, 1, 1, 0, + 1, 1, 2, 5, 4, 1, 3, 3, 1, 3, + 1, 1, 1, 1, 1, 0, 2, 3, 4, 0, + 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, + 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, + 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 6, 0, 1, + 3, 1, 3, 0, 2, 3, 1, 1, 2, 1, + 3, 2, 0, 0, 7, 2, 1, 0, 3, 0, + 8, 7, 4, 6, 4, 4, 5, 5, 0, 6, + 4, 4, 5, 6, 4, 0, 6, 1, 3, 1, + 2, 1, 3, 1, 0, 2, 0, 2, 0, 1, + 0, 0, 8, 0, 0, 6, 0, 1, 1, 1, + 1, 1, 2, 1, 1, 1, 3, 4, 0, 3, + 3, 1, 2, 2, 1, 3, 1, 3, 1, 3, + 1, 1, 0, 1, 1, 1, 1, 1, 0, 4, + 0, 4, 0, 1, 0, 1, 3, 1, 5, 3, + 1, 1, 1, 0, 0, 0, 7, 0, 0, 11, + 3, 1, 3, 3, 1, 3, 0, 1, 0, 3, + 0, 3, 2, 3, 3, 5, 0, 5, 0, 6, + 0, 2, 1, 3, 2, 4, 0, 2, 0, 2, + 1, 1, 1, 0, 5, 0, 1, 0, 1, 1, + 3, 1, 1, 2, 2, 2, 1, 1, 1, 1, + 0, 3, 0, 3, 2, 4, 4, 3, 4, 4, + 1, 3, 3, 3, 3, 6, 2, 2, 0, 6, + 0, 7, 5, 2, 1, 1, 1, 5, 5, 2, + 2, 1, 4, 3, 2, 3, 2, 2, 1, 4, + 4, 3, 3, 3, 2, 3, 2, 3, 3, 3, + 3, 4, 3, 2, 3, 3, 3, 3, 4, 3, + 3, 4, 3, 3, 3, 1, 1, 1, 1, 1, + 0, 1, 0, 2, 0, 1, 1, 1, 0, 2, + 0, 2, 0, 3, 3, 0, 4, 0, 4, 1, + 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, + 0, 3, 0, 1, 1, 0, 4, 0, 4, 1, + 0, 1, 4, 0, 3, 3, 1, 2, 2, 2, + 2, 3, 3, 2, 1, 1, 1, 1, 2, 1, + 1, 1, 2, 0, 1, 0, 5, 0, 1, 3, + 1, 0, 3, 0, 3, 3, 1, 0, 4, 0, + 3, 2, 0, 1, 0, 2, 0, 3, 3, 2, + 2, 0, 5, 0, 1, 1, 0, 1, 1, 2, + 1, 2, 1, 2, 0, 0, 0, 0, 22, 1, + 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, + 2, 2, 1, 3, 4, 3, 3, 0, 2, 2, + 1, 3, 3, 0, 4, 0, 3, 1, 1, 0, + 3, 2, 3, 1, 1, 2, 0, 2, 3, 1, + 5, 1, 1, 2, 2, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, + 2, 2, 2, 0, 1, 0, 4, 0, 1, 1, + 3, 0, 9, 0, 3, 1, 3, 1, 1, 1, + 3, 5, 3, 5, 1, 1, 3, 4, 5, 4, + 1, 3, 4, 4, 5, 1, 5, 3, 2, 1, + 3, 2, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -24798,45 +24852,45 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 3, 0, 0, - 7, 1, 3, 0, 3, 0, 3, 0, 3, 0, - 3, 2, 0, 2, 0, 2, 0, 4, 0, 3, - 1, 1, 1, 1, 0, 1, 1, 1, 0, 2, - 2, 2, 3, 5, 5, 3, 5, 5, 4, 6, - 8, 8, 2, 3, 3, 3, 5, 2, 3, 3, - 1, 1, 3, 3, 1, 3, 2, 2, 2, 2, - 2, 1, 1, 3, 1, 4, 4, 1, 1, 1, - 1, 1, 0, 5, 0, 2, 1, 1, 1, 1, - 3, 3, 1, 1, 2, 2, 2, 0, 3, 4, - 3, 0, 7, 1, 2, 1, 1, 1, 1, 1, - 1, 0, 5, 1, 1, 1, 1, 1, 3, 6, - 6, 6, 6, 7, 7, 5, 3, 4, 1, 3, - 8, 8, 8, 8, 9, 6, 4, 0, 3, 0, - 3, 1, 3, 2, 1, 1, 0, 1, 1, 2, - 0, 1, 1, 3, 0, 3, 0, 3, 0, 3, - 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 2, 1, 3, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 1, 2, 2, 0, - 1, 3, 1, 2, 2, 2, 1, 3, 3, 1, - 1, 3, 1, 3, 1, 3, 1, 1, 1, 1, - 4, 5, 4, 6, 1, 0, 3, 3, 1, 1, - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 1, 0, 2, 0, 2, 0, 3, 2, 1, - 2, 1, 0, 3, 1, 0, 1, 0, 1, 0, - 3, 2, 0, 1, 2, 4, 4, 5, 4, 2, - 3, 1, 1, 1, 0, 1, 0, 4, 0, 4, - 0, 2, 2, 1, 2, 0, 1, 1, 1, 1, - 0, 3, 3, 3, 4, 2, 3, 1, 1, 2, - 4, 0, 0, 0, 1, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 3, 3, - 3, 3, 0, 1, 3, 3, 0, 3, 1, 3, - 0, 4, 3, 1, 2, 2, 3, 4, 4, 0, - 3, 4, 4, 1, 1, 0, 2, 0, 0, 0, - 0, 0, 19, 6, 0, 3, 0, 0, 8, 0, - 0, 7, 4, 4, 3, 4, 3, 3, 0, 3, - 1, 3, 5, 1, 1, 1, 0, 1, 1, 0, - 2, 0, 0, 3, 0, 2, 5, 3, 3, 3, - 1 + 1, 1, 1, 1, 1, 1, 1, 0, 3, 0, + 0, 7, 1, 3, 0, 3, 0, 3, 0, 3, + 0, 3, 2, 0, 2, 0, 2, 0, 4, 0, + 3, 1, 1, 1, 1, 0, 1, 1, 1, 0, + 2, 2, 2, 3, 5, 5, 3, 5, 5, 4, + 6, 8, 8, 2, 3, 3, 3, 5, 2, 3, + 3, 1, 1, 3, 3, 1, 3, 2, 2, 2, + 2, 2, 1, 1, 3, 1, 4, 4, 1, 1, + 1, 1, 1, 0, 5, 0, 2, 1, 1, 1, + 1, 3, 3, 1, 1, 2, 2, 2, 0, 3, + 4, 3, 0, 7, 1, 2, 1, 1, 1, 1, + 1, 1, 0, 5, 1, 1, 1, 1, 1, 3, + 6, 6, 6, 6, 7, 7, 5, 3, 4, 1, + 3, 8, 8, 8, 8, 9, 6, 4, 0, 3, + 0, 3, 1, 3, 2, 1, 1, 0, 1, 1, + 2, 0, 1, 1, 3, 0, 3, 0, 3, 0, + 3, 0, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 1, 3, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, + 0, 1, 3, 1, 2, 2, 2, 1, 3, 3, + 1, 1, 3, 1, 3, 1, 3, 1, 1, 1, + 1, 4, 5, 4, 6, 1, 0, 3, 3, 1, + 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 1, 0, 2, 0, 2, 0, 3, 2, + 1, 2, 1, 0, 3, 1, 0, 1, 0, 1, + 0, 3, 2, 0, 1, 2, 4, 4, 5, 4, + 2, 3, 1, 1, 1, 0, 1, 0, 4, 0, + 4, 0, 2, 2, 1, 2, 0, 1, 1, 1, + 1, 0, 3, 3, 3, 4, 2, 3, 1, 1, + 2, 4, 0, 0, 0, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, + 3, 3, 3, 0, 1, 3, 3, 0, 3, 1, + 3, 0, 4, 3, 1, 2, 2, 3, 4, 4, + 0, 3, 4, 4, 1, 1, 0, 2, 0, 0, + 0, 0, 0, 19, 6, 0, 3, 0, 0, 8, + 0, 0, 7, 4, 4, 3, 4, 3, 3, 0, + 3, 1, 3, 5, 1, 1, 1, 0, 1, 1, + 0, 2, 0, 0, 3, 0, 2, 5, 3, 3, + 3, 1 }; @@ -25528,7 +25582,7 @@ thd->lex->sql_command= SQLCOM_EMPTY_QUERY; YYLIP->found_semicolon= NULL; } -#line 25532 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25586 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3: @@ -25555,7 +25609,7 @@ lip->found_semicolon= NULL; } } -#line 25559 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25613 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 5: @@ -25564,7 +25618,7 @@ /* Single query, not terminated. */ YYLIP->found_semicolon= NULL; } -#line 25568 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25622 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 68: @@ -25574,7 +25628,7 @@ lex->sql_command= SQLCOM_DEALLOCATE_PREPARE; lex->prepared_stmt_name= (yyvsp[0].ident_sys); } -#line 25578 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25632 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 71: @@ -25587,13 +25641,13 @@ lex->sql_command= SQLCOM_PREPARE; lex->prepared_stmt_name= (yyvsp[-2].ident_sys); } -#line 25591 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25645 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 72: #line 2383 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->expr_allows_subselect= false; } -#line 25597 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25651 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 73: @@ -25602,7 +25656,7 @@ Lex->prepared_stmt_code= (yyvsp[0].item); Lex->expr_allows_subselect= true; } -#line 25606 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25660 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 74: @@ -25612,13 +25666,13 @@ lex->sql_command= SQLCOM_EXECUTE; lex->prepared_stmt_name= (yyvsp[0].ident_sys); } -#line 25616 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25670 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 75: #line 2399 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 25622 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25676 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 76: @@ -25629,19 +25683,19 @@ "EXECUTE IMMEDIATE")); Lex->sql_command= SQLCOM_EXECUTE_IMMEDIATE; } -#line 25633 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25687 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 77: #line 2408 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 25639 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25693 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 79: #line 2413 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->expr_allows_subselect= false; } -#line 25645 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25699 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 80: @@ -25652,7 +25706,7 @@ "EXECUTE..USING")); Lex->expr_allows_subselect= true; } -#line 25656 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25710 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 83: @@ -25662,7 +25716,7 @@ thd->mem_root))) MYSQL_YYABORT; } -#line 25666 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25720 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 84: @@ -25671,7 +25725,7 @@ if (unlikely(Lex->sphead)) my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "HELP")); } -#line 25675 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25729 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 85: @@ -25681,7 +25735,7 @@ lex->sql_command= SQLCOM_HELP; lex->help_arg= (yyvsp[0].lex_str).str; } -#line 25685 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25739 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 86: @@ -25689,13 +25743,13 @@ { Lex->sql_command = SQLCOM_CHANGE_MASTER; } -#line 25693 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25747 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 87: #line 2461 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 25699 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25753 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 90: @@ -25703,7 +25757,7 @@ { Lex->mi.host = (yyvsp[0].lex_str).str; } -#line 25707 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25761 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 91: @@ -25711,7 +25765,7 @@ { Lex->mi.user = (yyvsp[0].lex_str).str; } -#line 25715 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25769 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 92: @@ -25719,7 +25773,7 @@ { Lex->mi.password = (yyvsp[0].lex_str).str; } -#line 25723 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25777 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 93: @@ -25727,7 +25781,7 @@ { Lex->mi.port = (yyvsp[0].ulong_num); } -#line 25731 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25785 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 94: @@ -25735,7 +25789,7 @@ { Lex->mi.connect_retry = (yyvsp[0].ulong_num); } -#line 25739 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25793 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 95: @@ -25749,7 +25803,7 @@ else Lex->mi.sql_delay = (yyvsp[0].ulong_num); } -#line 25753 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25807 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 96: @@ -25758,7 +25812,7 @@ Lex->mi.ssl= (yyvsp[0].ulong_num) ? LEX_MASTER_INFO::LEX_MI_ENABLE : LEX_MASTER_INFO::LEX_MI_DISABLE; } -#line 25762 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25816 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 97: @@ -25766,7 +25820,7 @@ { Lex->mi.ssl_ca= (yyvsp[0].lex_str).str; } -#line 25770 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25824 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 98: @@ -25774,7 +25828,7 @@ { Lex->mi.ssl_capath= (yyvsp[0].lex_str).str; } -#line 25778 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25832 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 99: @@ -25782,7 +25836,7 @@ { Lex->mi.ssl_cert= (yyvsp[0].lex_str).str; } -#line 25786 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25840 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 100: @@ -25790,7 +25844,7 @@ { Lex->mi.ssl_cipher= (yyvsp[0].lex_str).str; } -#line 25794 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25848 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 101: @@ -25798,7 +25852,7 @@ { Lex->mi.ssl_key= (yyvsp[0].lex_str).str; } -#line 25802 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25856 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 102: @@ -25807,7 +25861,7 @@ Lex->mi.ssl_verify_server_cert= (yyvsp[0].ulong_num) ? LEX_MASTER_INFO::LEX_MI_ENABLE : LEX_MASTER_INFO::LEX_MI_DISABLE; } -#line 25811 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25865 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 103: @@ -25815,7 +25869,7 @@ { Lex->mi.ssl_crl= (yyvsp[0].lex_str).str; } -#line 25819 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25873 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 104: @@ -25823,7 +25877,7 @@ { Lex->mi.ssl_crlpath= (yyvsp[0].lex_str).str; } -#line 25827 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25881 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 105: @@ -25855,7 +25909,7 @@ } Lex->mi.heartbeat_opt= LEX_MASTER_INFO::LEX_MI_ENABLE; } -#line 25859 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25913 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 106: @@ -25863,7 +25917,7 @@ { Lex->mi.repl_ignore_server_ids_opt= LEX_MASTER_INFO::LEX_MI_ENABLE; } -#line 25867 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25921 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 107: @@ -25871,7 +25925,7 @@ { Lex->mi.repl_do_domain_ids_opt= LEX_MASTER_INFO::LEX_MI_ENABLE; } -#line 25875 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25929 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 108: @@ -25879,7 +25933,7 @@ { Lex->mi.repl_ignore_domain_ids_opt= LEX_MASTER_INFO::LEX_MI_ENABLE; } -#line 25883 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25937 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 113: @@ -25887,7 +25941,7 @@ { insert_dynamic(&Lex->mi.repl_ignore_server_ids, (uchar*) &((yyvsp[0].ulong_num))); } -#line 25891 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25945 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 117: @@ -25895,7 +25949,7 @@ { insert_dynamic(&Lex->mi.repl_do_domain_ids, (uchar*) &((yyvsp[0].ulong_num))); } -#line 25899 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25953 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 121: @@ -25903,7 +25957,7 @@ { insert_dynamic(&Lex->mi.repl_ignore_domain_ids, (uchar*) &((yyvsp[0].ulong_num))); } -#line 25907 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25961 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 122: @@ -25911,7 +25965,7 @@ { Lex->mi.log_file_name = (yyvsp[0].lex_str).str; } -#line 25915 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25969 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 123: @@ -25930,7 +25984,7 @@ */ Lex->mi.pos= MY_MAX(BIN_LOG_HEADER_SIZE, (yyvsp[0].ulonglong_number)); } -#line 25934 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25988 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 124: @@ -25938,7 +25992,7 @@ { Lex->mi.relay_log_name = (yyvsp[0].lex_str).str; } -#line 25942 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 25996 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 125: @@ -25948,7 +26002,7 @@ /* Adjust if < BIN_LOG_HEADER_SIZE (same comment as Lex->mi.pos) */ Lex->mi.relay_log_pos= MY_MAX(BIN_LOG_HEADER_SIZE, Lex->mi.relay_log_pos); } -#line 25952 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26006 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 126: @@ -25958,7 +26012,7 @@ my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MASTER_use_gtid")); Lex->mi.use_gtid_opt= LEX_MASTER_INFO::LEX_GTID_CURRENT_POS; } -#line 25962 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26016 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 127: @@ -25968,7 +26022,7 @@ my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MASTER_use_gtid")); Lex->mi.use_gtid_opt= LEX_MASTER_INFO::LEX_GTID_SLAVE_POS; } -#line 25972 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26026 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 128: @@ -25978,7 +26032,7 @@ my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MASTER_use_gtid")); Lex->mi.use_gtid_opt= LEX_MASTER_INFO::LEX_GTID_NO; } -#line 25982 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26036 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 129: @@ -25987,7 +26041,7 @@ LEX *lex= thd->lex; lex->mi.connection_name= null_clex_str; } -#line 25991 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26045 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 131: @@ -25999,7 +26053,7 @@ my_yyabort_error((ER_WRONG_ARGUMENTS, MYF(0), "MASTER_CONNECTION_NAME")); #endif } -#line 26003 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26057 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 132: @@ -26027,7 +26081,7 @@ lex->name= null_clex_str; lex->create_last_non_select_table= lex->last_table(); } -#line 26031 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26085 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 133: @@ -26037,7 +26091,7 @@ lex->current_select= &lex->select_lex; create_table_set_open_action_and_adjust_tables(lex); } -#line 26041 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26095 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 134: @@ -26070,7 +26124,7 @@ new (thd->mem_root) sequence_definition()))) MYSQL_YYABORT; } -#line 26074 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26128 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 135: @@ -26098,7 +26152,7 @@ lex->current_select= &lex->select_lex; create_table_set_open_action_and_adjust_tables(lex); } -#line 26102 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26156 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 136: @@ -26109,13 +26163,13 @@ if (unlikely(Lex->add_create_index((yyvsp[-6].key_type), &(yyvsp[-3].ident_sys), (yyvsp[-2].key_alg), (yyvsp[-7].object_ddl_options) | (yyvsp[-4].object_ddl_options)))) MYSQL_YYABORT; } -#line 26113 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26167 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 137: #line 2788 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 26119 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26173 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 138: @@ -26127,13 +26181,13 @@ (yyvsp[-6].object_ddl_options) | (yyvsp[-3].object_ddl_options)))) MYSQL_YYABORT; } -#line 26131 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26185 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 139: #line 2799 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 26137 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26191 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 140: @@ -26145,13 +26199,13 @@ (yyvsp[-6].object_ddl_options) | (yyvsp[-3].object_ddl_options)))) MYSQL_YYABORT; } -#line 26149 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26203 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 141: #line 2810 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 26155 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26209 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 142: @@ -26160,7 +26214,7 @@ Lex->create_info.default_table_charset= NULL; Lex->create_info.used_fields= 0; } -#line 26164 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26218 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 143: @@ -26172,7 +26226,7 @@ MYSQL_YYABORT; lex->name= (yyvsp[-2].ident_sys); } -#line 26176 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26230 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 144: @@ -26183,13 +26237,13 @@ (yyvsp[0].table)))) MYSQL_YYABORT; } -#line 26187 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26241 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 145: #line 2833 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 26193 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26247 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 146: @@ -26198,49 +26252,49 @@ if (unlikely(Lex->add_create_view(thd, (yyvsp[-6].object_ddl_options) | (yyvsp[-1].object_ddl_options), (yyvsp[-5].num), (yyvsp[-3].view_suid), (yyvsp[0].table)))) MYSQL_YYABORT; } -#line 26202 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26256 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 147: #line 2841 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 26208 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26262 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 148: #line 2843 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.set((yyvsp[-2].object_ddl_options)); } -#line 26214 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26268 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 149: #line 2845 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 26220 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26274 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 150: #line 2847 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.set((yyvsp[-2].object_ddl_options)); } -#line 26226 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26280 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 151: #line 2849 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 26232 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26286 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 152: #line 2851 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.set((yyvsp[-2].object_ddl_options)); } -#line 26238 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26292 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 153: #line 2853 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 26244 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26298 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 154: @@ -26248,13 +26302,13 @@ { Lex->create_info.set((yyvsp[-2].object_ddl_options)); } -#line 26252 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26306 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 155: #line 2859 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 26258 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26312 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 156: @@ -26262,25 +26316,25 @@ { Lex->create_info.set((yyvsp[-3].object_ddl_options)); } -#line 26266 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26320 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 157: #line 2865 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 26272 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26326 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 158: #line 2867 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.set((yyvsp[-2].object_ddl_options)); } -#line 26278 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26332 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 159: #line 2869 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 26284 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26338 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 160: @@ -26288,13 +26342,13 @@ { Lex->create_info.set((yyvsp[-3].object_ddl_options)); } -#line 26292 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26346 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 161: #line 2875 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 26298 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26352 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 162: @@ -26304,7 +26358,7 @@ (yyvsp[-6].object_ddl_options) | (yyvsp[-4].object_ddl_options)))) MYSQL_YYABORT; } -#line 26308 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26362 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 163: @@ -26314,7 +26368,7 @@ (yyvsp[-5].object_ddl_options) | (yyvsp[-3].object_ddl_options)))) MYSQL_YYABORT; } -#line 26318 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26372 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 164: @@ -26322,7 +26376,7 @@ { Lex->alter_tablespace_info->ts_cmd_type= CREATE_LOGFILE_GROUP; } -#line 26326 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26380 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 165: @@ -26330,106 +26384,106 @@ { Lex->alter_tablespace_info->ts_cmd_type= CREATE_TABLESPACE; } -#line 26334 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26388 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 166: #line 2898 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->set_command(SQLCOM_CREATE_SERVER, (yyvsp[0].object_ddl_options)); } -#line 26340 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26394 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 167: #line 2900 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 26346 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26400 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 168: #line 2905 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { - if (unlikely(Lex->sphead->m_flags & sp_head::HAS_AGGREGATE_INSTR)) - { - my_yyabort_error((ER_NOT_AGGREGATE_FUNCTION, MYF(0))); + if (unlikely(Lex->sphead->m_flags & sp_head::HAS_AGGREGATE_INSTR)) + { + my_yyabort_error((ER_NOT_AGGREGATE_FUNCTION, MYF(0))); + } + Lex->sphead->set_chistics_agg_type(NOT_AGGREGATE); } - Lex->sphead->set_chistics_agg_type(NOT_AGGREGATE); - } -#line 26358 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26412 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 169: -#line 2915 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 2916 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { - if (unlikely(!(Lex->sphead->m_flags & sp_head::HAS_AGGREGATE_INSTR))) - { - my_yyabort_error((ER_INVALID_AGGREGATE_FUNCTION, MYF(0))); + if (unlikely(!(Lex->sphead->m_flags & sp_head::HAS_AGGREGATE_INSTR))) + { + my_yyabort_error((ER_INVALID_AGGREGATE_FUNCTION, MYF(0))); + } + Lex->sphead->set_chistics_agg_type(GROUP_AGGREGATE); } - Lex->sphead->set_chistics_agg_type(GROUP_AGGREGATE); - } -#line 26370 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26424 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 170: -#line 2924 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 2926 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 26376 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26430 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 171: -#line 2925 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 2927 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->udf.type= UDFTYPE_FUNCTION; } -#line 26382 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26436 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 172: -#line 2930 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 2932 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 26388 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26442 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 173: -#line 2931 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 2933 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->udf.type= UDFTYPE_AGGREGATE; } -#line 26394 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26448 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 174: -#line 2934 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 2936 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 26400 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26454 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 178: -#line 2945 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 2947 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.seq_create_info->min_value= (yyvsp[0].longlong_number); Lex->create_info.seq_create_info->used_fields|= seq_field_used_min_value; } -#line 26409 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26463 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 179: -#line 2950 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 2952 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->create_info.seq_create_info->used_fields & seq_field_used_min_value)) my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MINVALUE")); Lex->create_info.seq_create_info->used_fields|= seq_field_used_min_value; } -#line 26419 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26473 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 180: -#line 2956 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 2958 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->create_info.seq_create_info->used_fields & seq_field_used_min_value)) my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MINVALUE")); Lex->create_info.seq_create_info->used_fields|= seq_field_used_min_value; } -#line 26429 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26483 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 181: -#line 2962 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 2964 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->create_info.seq_create_info->used_fields & seq_field_used_max_value)) @@ -26437,31 +26491,31 @@ Lex->create_info.seq_create_info->max_value= (yyvsp[0].longlong_number); Lex->create_info.seq_create_info->used_fields|= seq_field_used_max_value; } -#line 26441 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26495 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 182: -#line 2970 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 2972 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->create_info.seq_create_info->used_fields & seq_field_used_max_value)) my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MAXVALUE")); Lex->create_info.seq_create_info->used_fields|= seq_field_used_max_value; } -#line 26451 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26505 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 183: -#line 2976 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 2978 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->create_info.seq_create_info->used_fields & seq_field_used_max_value)) my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MAXVALUE")); Lex->create_info.seq_create_info->used_fields|= seq_field_used_max_value; } -#line 26461 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26515 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 184: -#line 2982 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 2984 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->create_info.seq_create_info->used_fields & seq_field_used_start)) @@ -26469,11 +26523,11 @@ Lex->create_info.seq_create_info->start= (yyvsp[0].longlong_number); Lex->create_info.seq_create_info->used_fields|= seq_field_used_start; } -#line 26473 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26527 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 185: -#line 2990 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 2992 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->create_info.seq_create_info->used_fields & seq_field_used_increment)) @@ -26481,11 +26535,11 @@ Lex->create_info.seq_create_info->increment= (yyvsp[0].longlong_number); Lex->create_info.seq_create_info->used_fields|= seq_field_used_increment; } -#line 26485 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26539 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 186: -#line 2998 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 3000 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->create_info.seq_create_info->used_fields & seq_field_used_cache)) @@ -26493,11 +26547,11 @@ Lex->create_info.seq_create_info->cache= (yyvsp[0].longlong_number); Lex->create_info.seq_create_info->used_fields|= seq_field_used_cache; } -#line 26497 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26551 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 187: -#line 3006 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 3008 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->create_info.seq_create_info->used_fields & seq_field_used_cache)) @@ -26505,11 +26559,11 @@ Lex->create_info.seq_create_info->cache= 0; Lex->create_info.seq_create_info->used_fields|= seq_field_used_cache; } -#line 26509 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26563 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 188: -#line 3014 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 3016 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->create_info.seq_create_info->used_fields & seq_field_used_cycle)) @@ -26517,11 +26571,11 @@ Lex->create_info.seq_create_info->cycle= 1; Lex->create_info.seq_create_info->used_fields|= seq_field_used_cycle; } -#line 26521 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26575 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 189: -#line 3022 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 3024 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->create_info.seq_create_info->used_fields & seq_field_used_cycle)) @@ -26529,11 +26583,11 @@ Lex->create_info.seq_create_info->cycle= 0; Lex->create_info.seq_create_info->used_fields|= seq_field_used_cycle; } -#line 26533 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26587 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 190: -#line 3030 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 3032 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sql_command != SQLCOM_ALTER_SEQUENCE)) { @@ -26545,11 +26599,11 @@ my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "RESTART")); Lex->create_info.seq_create_info->used_fields|= seq_field_used_restart; } -#line 26549 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26603 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 191: -#line 3042 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 3044 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sql_command != SQLCOM_ALTER_SEQUENCE)) { @@ -26562,43 +26616,41 @@ Lex->create_info.seq_create_info->restart= (yyvsp[0].longlong_number); Lex->create_info.seq_create_info->used_fields|= seq_field_used_restart | seq_field_used_restart_value; } -#line 26566 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26620 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 192: -#line 3058 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 3060 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_create_options_with_check((yyvsp[-1].object_ddl_options)))) MYSQL_YYABORT; Lex->server_options.reset((yyvsp[0].lex_str)); } -#line 26576 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26630 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 193: -#line 3065 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 3067 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->server_options.scheme= (yyvsp[-4].lex_str); } -#line 26582 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26636 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 196: -#line 3075 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 3077 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS(Lex->server_options.username.str == 0); Lex->server_options.username= (yyvsp[0].lex_str); } -#line 26591 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26645 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 197: -#line 3080 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 3082 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS(Lex->server_options.host.str == 0); Lex->server_options.host= (yyvsp[0].lex_str); - my_casedn_str(system_charset_info, - (char*) Lex->server_options.host.str); } -#line 26602 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26654 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 198: @@ -26607,7 +26659,7 @@ MYSQL_YYABORT_UNLESS(Lex->server_options.db.str == 0); Lex->server_options.db= (yyvsp[0].lex_str); } -#line 26611 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26663 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 199: @@ -26616,7 +26668,7 @@ MYSQL_YYABORT_UNLESS(Lex->server_options.owner.str == 0); Lex->server_options.owner= (yyvsp[0].lex_str); } -#line 26620 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26672 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 200: @@ -26625,7 +26677,7 @@ MYSQL_YYABORT_UNLESS(Lex->server_options.password.str == 0); Lex->server_options.password= (yyvsp[0].lex_str); } -#line 26629 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26681 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 201: @@ -26634,7 +26686,7 @@ MYSQL_YYABORT_UNLESS(Lex->server_options.socket.str == 0); Lex->server_options.socket= (yyvsp[0].lex_str); } -#line 26638 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26690 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 202: @@ -26642,7 +26694,7 @@ { Lex->server_options.port= (yyvsp[0].ulong_num); } -#line 26646 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26698 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 203: @@ -26663,7 +26715,7 @@ lex->sql_command= SQLCOM_CREATE_EVENT; /* We need that for disallowing subqueries */ } -#line 26667 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26719 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 204: @@ -26675,7 +26727,7 @@ */ Lex->sql_command= SQLCOM_CREATE_EVENT; } -#line 26679 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26731 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 205: @@ -26684,7 +26736,7 @@ Lex->event_parse_data->item_expression= (yyvsp[-1].item); Lex->event_parse_data->interval= (yyvsp[0].interval); } -#line 26688 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26740 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 207: @@ -26692,13 +26744,13 @@ { Lex->event_parse_data->item_execute_at= (yyvsp[0].item); } -#line 26696 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26748 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 208: #line 3159 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 26702 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26754 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 209: @@ -26708,7 +26760,7 @@ Lex->event_parse_data->status_changed= true; (yyval.num)= 1; } -#line 26712 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26764 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 210: @@ -26718,7 +26770,7 @@ Lex->event_parse_data->status_changed= true; (yyval.num)= 1; } -#line 26722 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26774 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 211: @@ -26728,7 +26780,7 @@ Lex->event_parse_data->status_changed= true; (yyval.num)= 1; } -#line 26732 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26784 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 212: @@ -26739,7 +26791,7 @@ MYSQL_YYABORT; Lex->event_parse_data->item_starts= item; } -#line 26743 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26795 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 213: @@ -26747,7 +26799,7 @@ { Lex->event_parse_data->item_starts= (yyvsp[0].item); } -#line 26751 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26803 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 215: @@ -26755,13 +26807,13 @@ { Lex->event_parse_data->item_ends= (yyvsp[0].item); } -#line 26759 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26811 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 216: #line 3203 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 26765 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26817 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 218: @@ -26772,13 +26824,13 @@ : Event_parse_data::ON_COMPLETION_PRESERVE; (yyval.num)= 1; } -#line 26776 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26828 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 219: #line 3218 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 26782 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26834 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 220: @@ -26787,7 +26839,7 @@ Lex->comment= Lex->event_parse_data->comment= (yyvsp[0].lex_str); (yyval.num)= 1; } -#line 26791 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26843 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 221: @@ -26823,7 +26875,7 @@ lex->sphead->set_body_start(thd, lip->get_cpp_ptr()); } -#line 26827 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26879 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 222: @@ -26837,7 +26889,7 @@ lex->event_parse_data->body_changed= TRUE; } -#line 26841 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26893 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 223: @@ -26853,7 +26905,7 @@ lex->ssl_cipher= lex->x509_subject= lex->x509_issuer= 0; bzero((char *)&(lex->mqh),sizeof(lex->mqh)); } -#line 26857 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26909 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 224: @@ -26862,7 +26914,7 @@ if (unlikely(!((yyval.spname)= Lex->make_sp_name(thd, &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 26866 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26918 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 225: @@ -26871,85 +26923,85 @@ if (unlikely(!((yyval.spname)= Lex->make_sp_name(thd, &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 26875 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26927 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 226: #line 3299 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 26881 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26933 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 227: #line 3300 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 26887 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26939 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 228: #line 3304 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 26893 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26945 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 229: #line 3305 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 26899 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26951 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 230: #line 3311 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sp_chistics.comment= (yyvsp[0].lex_str); } -#line 26905 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26957 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 231: #line 3313 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Just parse it, we only have one language for now. */ } -#line 26911 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26963 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 232: #line 3315 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sp_chistics.daccess= SP_NO_SQL; } -#line 26917 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26969 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 233: #line 3317 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sp_chistics.daccess= SP_CONTAINS_SQL; } -#line 26923 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26975 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 234: #line 3319 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sp_chistics.daccess= SP_READS_SQL_DATA; } -#line 26929 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26981 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 235: #line 3321 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sp_chistics.daccess= SP_MODIFIES_SQL_DATA; } -#line 26935 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26987 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 236: #line 3323 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 26941 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26993 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 237: #line 3328 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 26947 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 26999 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 238: #line 3329 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sp_chistics.detistic= ! (yyvsp[-1].num); } -#line 26953 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27005 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 239: @@ -26957,7 +27009,7 @@ { Lex->sp_chistics.suid= SP_IS_SUID; } -#line 26961 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27013 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 240: @@ -26965,7 +27017,7 @@ { Lex->sp_chistics.suid= SP_IS_NOT_SUID; } -#line 26969 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27021 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 241: @@ -26974,13 +27026,13 @@ if (unlikely(Lex->call_statement_start(thd, (yyvsp[0].spname)))) MYSQL_YYABORT; } -#line 26978 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27030 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 242: #line 3349 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 26984 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27036 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 247: @@ -26988,7 +27040,7 @@ { Lex->value_list.push_back((yyvsp[0].item), thd->mem_root); } -#line 26992 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27044 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 248: @@ -26996,7 +27048,7 @@ { Lex->value_list.push_back((yyvsp[0].item), thd->mem_root); } -#line 27000 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27052 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 253: @@ -27005,7 +27057,7 @@ if (unlikely(!((yyval.spvar)= Lex->sp_param_init(&(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 27009 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27061 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 254: @@ -27014,7 +27066,7 @@ if (unlikely(Lex->sp_param_fill_definition((yyval.spvar)= (yyvsp[-1].spvar)))) MYSQL_YYABORT; } -#line 27018 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27070 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 255: @@ -27025,7 +27077,7 @@ (yyvsp[0].ident_sys)))) MYSQL_YYABORT; } -#line 27029 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27081 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 256: @@ -27035,7 +27087,7 @@ (yyvsp[-4].ident_sys), (yyvsp[-2].ident_sys), (yyvsp[0].ident_sys)))) MYSQL_YYABORT; } -#line 27039 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27091 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 257: @@ -27044,7 +27096,7 @@ if (unlikely(Lex->sphead->spvar_fill_table_rowtype_reference(thd, (yyval.spvar)= (yyvsp[-4].spvar), (yyvsp[0].ident_sys)))) MYSQL_YYABORT; } -#line 27048 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27100 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 258: @@ -27053,7 +27105,7 @@ if (unlikely(Lex->sphead->spvar_fill_table_rowtype_reference(thd, (yyval.spvar)= (yyvsp[-6].spvar), (yyvsp[-2].ident_sys), (yyvsp[0].ident_sys)))) MYSQL_YYABORT; } -#line 27057 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27109 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 259: @@ -27062,37 +27114,37 @@ if (unlikely(Lex->sphead->spvar_fill_row(thd, (yyval.spvar)= (yyvsp[-2].spvar), (yyvsp[0].spvar_definition_list)))) MYSQL_YYABORT; } -#line 27066 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27118 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 264: #line 3441 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[0].spvar)->mode=(yyvsp[-1].spvar_mode); } -#line 27072 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27124 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 265: #line 3445 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.spvar_mode)= sp_variable::MODE_IN; } -#line 27078 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27130 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 266: #line 3446 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.spvar_mode)= sp_variable::MODE_IN; } -#line 27084 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27136 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 267: #line 3447 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.spvar_mode)= sp_variable::MODE_OUT; } -#line 27090 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27142 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 268: #line 3448 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.spvar_mode)= sp_variable::MODE_INOUT; } -#line 27096 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27148 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 269: @@ -27100,7 +27152,7 @@ { Lex->sphead->m_param_begin= YYLIP->get_cpp_tok_start() + 1; } -#line 27104 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27156 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 270: @@ -27108,7 +27160,7 @@ { Lex->sphead->m_param_end= YYLIP->get_cpp_tok_start(); } -#line 27112 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27164 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 271: @@ -27116,7 +27168,7 @@ { Lex->sphead->m_param_begin= YYLIP->get_cpp_tok_start() + 1; } -#line 27120 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27172 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 272: @@ -27124,19 +27176,19 @@ { Lex->sphead->m_param_end= YYLIP->get_cpp_tok_start(); } -#line 27128 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27180 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 273: #line 3476 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 27134 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27186 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 275: #line 3481 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 27140 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27192 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 277: @@ -27144,7 +27196,7 @@ { (yyval.spblock).init(); } -#line 27148 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27200 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 278: @@ -27157,13 +27209,13 @@ if (unlikely(Lex->sp_declarations_join(&(yyval.spblock), (yyvsp[-2].spblock), (yyvsp[-1].spblock)))) MYSQL_YYABORT; } -#line 27161 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27213 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 279: #line 3502 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.spblock)= (yyvsp[0].spblock); } -#line 27167 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27219 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 280: @@ -27173,7 +27225,7 @@ Qualified_column_ident(&(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 27177 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27229 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 281: @@ -27183,7 +27235,7 @@ Qualified_column_ident(&(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 27187 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27239 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 282: @@ -27193,7 +27245,7 @@ Qualified_column_ident(thd, &(yyvsp[-4].ident_sys), &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 27197 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27249 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 283: @@ -27206,7 +27258,7 @@ MYSQL_YYABORT; Lex->init_last_field((yyval.spvar_definition), &(yyvsp[0].ident_sys), thd->variables.collation_database); } -#line 27210 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27262 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 285: @@ -27216,7 +27268,7 @@ unlikely((yyval.spvar_definition_list)->push_back((yyvsp[0].spvar_definition), thd->mem_root))) MYSQL_YYABORT; } -#line 27220 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27272 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 286: @@ -27229,13 +27281,13 @@ if (unlikely((yyval.spvar_definition_list)->push_back((yyvsp[0].spvar_definition), thd->mem_root))) MYSQL_YYABORT; } -#line 27233 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27285 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 287: #line 3562 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.spvar_definition_list)= (yyvsp[-1].spvar_definition_list); } -#line 27239 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27291 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 288: @@ -27243,7 +27295,7 @@ { Lex->sp_variable_declarations_init(thd, (yyvsp[0].num)); } -#line 27247 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27299 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 289: @@ -27255,7 +27307,7 @@ MYSQL_YYABORT; (yyval.spblock).init_using_vars((yyvsp[-2].num)); } -#line 27259 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27311 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 290: @@ -27265,7 +27317,7 @@ MYSQL_YYABORT; (yyval.spblock).init_using_vars((yyvsp[-4].num)); } -#line 27269 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27321 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 291: @@ -27275,7 +27327,7 @@ MYSQL_YYABORT; (yyval.spblock).init_using_vars((yyvsp[-5].num)); } -#line 27279 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27331 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 292: @@ -27285,7 +27337,7 @@ MYSQL_YYABORT; (yyval.spblock).init_using_vars((yyvsp[-3].num)); } -#line 27289 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27341 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 294: @@ -27296,7 +27348,7 @@ (yyval.spblock).vars= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0; (yyval.spblock).conds= 1; } -#line 27300 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27352 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 296: @@ -27304,7 +27356,7 @@ { Lex->sp_block_init(thd); } -#line 27308 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27360 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 297: @@ -27318,7 +27370,7 @@ (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).hndlrs= 0; (yyval.spblock).curs= 1; } -#line 27322 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27374 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 298: @@ -27327,7 +27379,7 @@ if (unlikely(Lex->sp_handler_declaration_init(thd, (yyvsp[-2].num)))) MYSQL_YYABORT; } -#line 27331 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27383 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 299: @@ -27338,7 +27390,7 @@ (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).curs= 0; (yyval.spblock).hndlrs= 1; } -#line 27342 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27394 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 302: @@ -27349,7 +27401,7 @@ sp_lex_cursor(thd, thd->lex)))) MYSQL_YYABORT; } -#line 27353 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27405 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 303: @@ -27358,7 +27410,7 @@ DBUG_ASSERT(thd->free_list == NULL); Lex->sphead->reset_lex(thd, (yyvsp[0].sp_cursor_stmt)); } -#line 27362 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27414 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 304: @@ -27370,43 +27422,43 @@ MYSQL_YYABORT; (yyval.sp_cursor_stmt)= (yyvsp[-2].sp_cursor_stmt); } -#line 27374 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27426 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 305: #line 3683 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= sp_handler::EXIT; } -#line 27380 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27432 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 306: #line 3684 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= sp_handler::CONTINUE; } -#line 27386 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27438 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 307: #line 3685 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= sp_handler::EXIT; } -#line 27392 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27444 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 308: #line 3686 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= sp_handler::CONTINUE; } -#line 27398 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27450 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 309: #line 3692 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 27404 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27456 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 310: #line 3694 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)+= 1; } -#line 27410 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27462 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 311: @@ -27422,7 +27474,7 @@ sp_instr_hpush_jump *i= (sp_instr_hpush_jump *)sp->last_instruction(); i->add_condition((yyvsp[0].spcondvalue)); } -#line 27426 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27478 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 312: @@ -27434,7 +27486,7 @@ if (unlikely((yyval.spcondvalue) == NULL)) MYSQL_YYABORT; } -#line 27438 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27490 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 314: @@ -27455,19 +27507,19 @@ if (unlikely((yyval.spcondvalue) == NULL)) MYSQL_YYABORT; } -#line 27459 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27511 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 315: #line 3745 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 27465 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27517 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 316: #line 3746 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 27471 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27523 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 317: @@ -27475,7 +27527,7 @@ { (yyval.spcondvalue)= (yyvsp[0].spcondvalue); } -#line 27479 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27531 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 318: @@ -27485,7 +27537,7 @@ if (unlikely((yyval.spcondvalue) == NULL)) my_yyabort_error((ER_SP_COND_MISMATCH, MYF(0), (yyvsp[0].ident_sys).str)); } -#line 27489 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27541 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 319: @@ -27495,7 +27547,7 @@ if (unlikely((yyval.spcondvalue) == NULL)) MYSQL_YYABORT; } -#line 27499 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27551 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 320: @@ -27505,7 +27557,7 @@ if (unlikely((yyval.spcondvalue) == NULL)) MYSQL_YYABORT; } -#line 27509 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27561 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 321: @@ -27515,7 +27567,7 @@ if (unlikely((yyval.spcondvalue) == NULL)) MYSQL_YYABORT; } -#line 27519 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27571 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 322: @@ -27525,7 +27577,7 @@ if (unlikely((yyval.spcondvalue) == NULL)) MYSQL_YYABORT; } -#line 27529 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27581 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 323: @@ -27534,7 +27586,7 @@ if (unlikely(Lex->add_resignal_statement(thd, NULL))) MYSQL_YYABORT; } -#line 27538 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27590 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 324: @@ -27543,7 +27595,7 @@ if (unlikely(Lex->add_signal_statement(thd, (yyvsp[-1].spcondvalue)))) MYSQL_YYABORT; } -#line 27547 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27599 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 325: @@ -27552,7 +27604,7 @@ if (unlikely(Lex->add_signal_statement(thd, (yyvsp[-1].spcondvalue)))) MYSQL_YYABORT; } -#line 27556 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27608 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 326: @@ -27571,25 +27623,25 @@ my_yyabort_error((ER_SIGNAL_BAD_CONDITION_TYPE, MYF(0))); (yyval.spcondvalue)= cond; } -#line 27575 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27627 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 327: #line 3825 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.spcondvalue)= (yyvsp[0].spcondvalue); } -#line 27581 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27633 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 328: #line 3830 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.spcondvalue)= NULL; } -#line 27587 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27639 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 329: #line 3832 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.spcondvalue)= (yyvsp[0].spcondvalue); } -#line 27593 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27645 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 330: @@ -27597,7 +27649,7 @@ { thd->m_parser_state->m_yacc.m_set_signal_info.clear(); } -#line 27601 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27653 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 332: @@ -27609,7 +27661,7 @@ info->clear(); info->m_item[index]= (yyvsp[0].item); } -#line 27613 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27665 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 333: @@ -27623,13 +27675,13 @@ Diag_condition_item_names[index].str)); info->m_item[index]= (yyvsp[0].item); } -#line 27627 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27679 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 334: #line 3870 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item); } -#line 27633 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27685 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 335: @@ -27651,85 +27703,85 @@ } (yyval.item)= (yyvsp[0].item); } -#line 27655 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27707 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 336: #line 3890 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item); } -#line 27661 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27713 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 337: #line 3896 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_CLASS_ORIGIN; } -#line 27667 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27719 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 338: #line 3898 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_SUBCLASS_ORIGIN; } -#line 27673 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27725 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 339: #line 3900 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_CATALOG; } -#line 27679 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27731 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 340: #line 3902 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_SCHEMA; } -#line 27685 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27737 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 341: #line 3904 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_NAME; } -#line 27691 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27743 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 342: #line 3906 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_CATALOG_NAME; } -#line 27697 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27749 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 343: #line 3908 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_SCHEMA_NAME; } -#line 27703 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27755 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 344: #line 3910 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_TABLE_NAME; } -#line 27709 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27761 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 345: #line 3912 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_COLUMN_NAME; } -#line 27715 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27767 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 346: #line 3914 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_CURSOR_NAME; } -#line 27721 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27773 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 347: #line 3916 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_MESSAGE_TEXT; } -#line 27727 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27779 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 348: #line 3918 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_MYSQL_ERRNO; } -#line 27733 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27785 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 349: @@ -27738,7 +27790,7 @@ if (unlikely(Lex->add_resignal_statement(thd, (yyvsp[-1].spcondvalue)))) MYSQL_YYABORT; } -#line 27742 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27794 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 350: @@ -27754,19 +27806,19 @@ if (unlikely(Lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 27758 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27810 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 351: #line 3946 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.diag_area)= Diagnostics_information::CURRENT_AREA; } -#line 27764 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27816 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 352: #line 3948 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.diag_area)= Diagnostics_information::CURRENT_AREA; } -#line 27770 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27822 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 353: @@ -27776,7 +27828,7 @@ if (unlikely((yyval.diag_info) == NULL)) MYSQL_YYABORT; } -#line 27780 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27832 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 354: @@ -27786,7 +27838,7 @@ if (unlikely((yyval.diag_info) == NULL)) MYSQL_YYABORT; } -#line 27790 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27842 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 355: @@ -27797,7 +27849,7 @@ unlikely((yyval.stmt_info_list)->push_back((yyvsp[0].stmt_info_item), thd->mem_root))) MYSQL_YYABORT; } -#line 27801 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27853 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 356: @@ -27807,7 +27859,7 @@ MYSQL_YYABORT; (yyval.stmt_info_list)= (yyvsp[-2].stmt_info_list); } -#line 27811 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27863 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 357: @@ -27817,172 +27869,172 @@ if (unlikely((yyval.stmt_info_item) == NULL)) MYSQL_YYABORT; } -#line 27821 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27873 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 358: -#line 3992 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 3993 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= thd->lex->create_item_for_sp_var(&(yyvsp[0].ident_cli), NULL)))) MYSQL_YYABORT; } -#line 27830 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27882 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 359: -#line 3997 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 3998 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_get_user_var(thd, &(yyvsp[0].lex_str)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 27840 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27892 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 360: -#line 4006 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4007 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.stmt_info_item_name)= Statement_information_item::NUMBER; } -#line 27846 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27898 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 361: -#line 4008 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4009 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.stmt_info_item_name)= Statement_information_item::NUMBER; } -#line 27852 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27904 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 362: -#line 4010 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4011 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.stmt_info_item_name)= Statement_information_item::ROW_COUNT; } -#line 27858 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27910 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 363: -#line 4019 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4020 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item); } -#line 27864 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27916 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 364: -#line 4024 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4025 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.cond_info_list)= new (thd->mem_root) List; if (unlikely((yyval.cond_info_list) == NULL) || unlikely((yyval.cond_info_list)->push_back((yyvsp[0].cond_info_item), thd->mem_root))) MYSQL_YYABORT; } -#line 27875 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27927 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 365: -#line 4031 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4032 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[-2].cond_info_list)->push_back((yyvsp[0].cond_info_item), thd->mem_root))) MYSQL_YYABORT; (yyval.cond_info_list)= (yyvsp[-2].cond_info_list); } -#line 27885 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27937 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 366: -#line 4040 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4041 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.cond_info_item)= new (thd->mem_root) Condition_information_item((yyvsp[0].cond_info_item_name), (yyvsp[-2].item)); if (unlikely((yyval.cond_info_item) == NULL)) MYSQL_YYABORT; } -#line 27895 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27947 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 367: -#line 4048 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4050 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::CLASS_ORIGIN; } -#line 27901 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27953 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 368: -#line 4050 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4052 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::SUBCLASS_ORIGIN; } -#line 27907 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27959 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 369: -#line 4052 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4054 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::CONSTRAINT_CATALOG; } -#line 27913 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27965 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 370: -#line 4054 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4056 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::CONSTRAINT_SCHEMA; } -#line 27919 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27971 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 371: -#line 4056 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4058 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::CONSTRAINT_NAME; } -#line 27925 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27977 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 372: -#line 4058 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4060 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::CATALOG_NAME; } -#line 27931 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27983 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 373: -#line 4060 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4062 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::SCHEMA_NAME; } -#line 27937 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27989 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 374: -#line 4062 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4064 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::TABLE_NAME; } -#line 27943 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 27995 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 375: -#line 4064 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4066 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::COLUMN_NAME; } -#line 27949 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28001 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 376: -#line 4066 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4068 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::CURSOR_NAME; } -#line 27955 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28007 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 377: -#line 4068 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4070 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::MESSAGE_TEXT; } -#line 27961 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28013 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 378: -#line 4070 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4072 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::MYSQL_ERRNO; } -#line 27967 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28019 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 379: -#line 4072 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4074 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::RETURNED_SQLSTATE; } -#line 27973 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28025 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 381: -#line 4078 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4080 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((yyval.ident_sys).copy_ident_cli(thd, &(yyvsp[0].kwd)))) MYSQL_YYABORT; } -#line 27982 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28034 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 382: -#line 4086 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4088 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* NOTE: field definition is filled in sp_decl section. */ @@ -27994,11 +28046,11 @@ spc->add_variable(thd, &(yyvsp[0].ident_sys)); (yyval.num)= 1; } -#line 27998 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28050 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 383: -#line 4098 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4100 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* NOTE: field definition is filled in sp_decl section. */ @@ -28010,39 +28062,39 @@ spc->add_variable(thd, &(yyvsp[0].ident_sys)); (yyval.num)= (yyvsp[-2].num) + 1; } -#line 28014 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28066 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 384: -#line 4112 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4114 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item) = NULL; } -#line 28020 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28072 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 385: -#line 4113 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4115 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item) = (yyvsp[0].item); } -#line 28026 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28078 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 405: -#line 4155 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4157 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->maybe_start_compound_statement(thd))) MYSQL_YYABORT; Lex->sphead->new_cont_backpatch(NULL); } -#line 28036 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28088 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 406: -#line 4161 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4163 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sphead->do_cont_backpatch(); } -#line 28042 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28094 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 407: -#line 4165 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4167 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; @@ -28050,11 +28102,11 @@ lex->sphead->reset_lex(thd); lex->sphead->m_tmp_query= lip->get_tok_start(); } -#line 28054 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28106 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 408: -#line 4173 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4175 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; @@ -28096,17 +28148,17 @@ if (unlikely(sp->restore_lex(thd))) MYSQL_YYABORT; } -#line 28100 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28152 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 411: -#line 4224 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4226 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sphead->reset_lex(thd); } -#line 28106 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28158 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 412: -#line 4226 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4228 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; sp_head *sp= lex->sphead; @@ -28115,11 +28167,11 @@ unlikely(sp->restore_lex(thd))) MYSQL_YYABORT; } -#line 28119 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28171 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 413: -#line 4235 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4237 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; sp_head *sp= lex->sphead; @@ -28127,146 +28179,146 @@ lex->spcont))) MYSQL_YYABORT; } -#line 28131 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28183 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 414: -#line 4245 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4247 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sphead->reset_lex(thd); } -#line 28137 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28189 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 415: -#line 4245 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4247 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item); } -#line 28143 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28195 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 416: -#line 4250 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4252 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_exit_statement(thd, NULL))) MYSQL_YYABORT; } -#line 28152 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28204 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 417: -#line 4255 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4257 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_exit_statement(thd, &(yyvsp[0].ident_sys), NULL))) MYSQL_YYABORT; } -#line 28161 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28213 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 418: -#line 4260 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4262 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_exit_statement(thd, (yyvsp[0].item))) || unlikely(Lex->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 28171 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28223 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 419: -#line 4266 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4268 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_exit_statement(thd, &(yyvsp[-2].ident_sys), (yyvsp[0].item))) || unlikely(Lex->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 28181 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28233 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 420: -#line 4275 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4277 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_continue_statement(thd, NULL))) MYSQL_YYABORT; } -#line 28190 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28242 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 421: -#line 4280 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4282 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_continue_statement(thd, &(yyvsp[0].ident_sys), NULL))) MYSQL_YYABORT; } -#line 28199 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28251 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 422: -#line 4285 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4287 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_continue_statement(thd, (yyvsp[0].item))) || unlikely(Lex->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 28209 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28261 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 423: -#line 4291 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4293 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_continue_statement(thd, &(yyvsp[-2].ident_sys), (yyvsp[0].item))) || unlikely(Lex->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 28219 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28271 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 424: -#line 4301 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4303 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_leave_statement(thd, &(yyvsp[0].ident_sys)))) MYSQL_YYABORT; } -#line 28228 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28280 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 425: -#line 4309 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4311 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_iterate_statement(thd, &(yyvsp[0].ident_sys)))) MYSQL_YYABORT; } -#line 28237 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28289 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 426: -#line 4317 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4319 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_goto_statement(thd, &(yyvsp[0].ident_sys)))) MYSQL_YYABORT; } -#line 28246 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28298 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 427: -#line 4324 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4326 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->sphead); if (unlikely(!((yyval.assignment_lex)= new (thd->mem_root) sp_assignment_lex(thd, thd->lex)))) MYSQL_YYABORT; } -#line 28257 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28309 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 428: -#line 4334 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4336 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { DBUG_ASSERT(thd->free_list == NULL); Lex->sphead->reset_lex(thd, (yyvsp[0].assignment_lex)); } -#line 28266 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28318 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 429: -#line 4339 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4341 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { DBUG_ASSERT((yyvsp[-2].assignment_lex) == thd->lex); (yyval.assignment_lex)= (yyvsp[-2].assignment_lex); @@ -28276,19 +28328,19 @@ if (unlikely((yyval.assignment_lex)->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 28280 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28332 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 430: -#line 4352 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4354 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sphead->reset_lex(thd, (yyvsp[0].assignment_lex)); } -#line 28288 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28340 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 431: -#line 4356 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4358 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { DBUG_ASSERT((yyvsp[-2].assignment_lex) == thd->lex); (yyval.assignment_lex)= (yyvsp[-2].assignment_lex); @@ -28297,84 +28349,84 @@ if (unlikely((yyval.assignment_lex)->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 28301 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28353 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 432: -#line 4368 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4370 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.sp_assignment_lex_list)= new (thd->mem_root) List))) MYSQL_YYABORT; (yyval.sp_assignment_lex_list)->push_back((yyvsp[0].assignment_lex), thd->mem_root); } -#line 28311 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28363 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 433: -#line 4374 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4376 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.sp_assignment_lex_list)= (yyvsp[-2].sp_assignment_lex_list); (yyval.sp_assignment_lex_list)->push_back((yyvsp[0].assignment_lex), thd->mem_root); } -#line 28320 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28372 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 434: -#line 4381 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4383 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.sp_assignment_lex_list)= NULL; } -#line 28326 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28378 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 435: -#line 4382 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4384 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.sp_assignment_lex_list)= (yyvsp[-1].sp_assignment_lex_list); } -#line 28332 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28384 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 436: -#line 4387 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4389 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_open_cursor(thd, &(yyvsp[-1].ident_sys), (yyvsp[0].sp_assignment_lex_list)))) MYSQL_YYABORT; } -#line 28341 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28393 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 437: -#line 4395 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4397 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_add_cfetch(thd, &(yyvsp[-1].ident_sys)))) MYSQL_YYABORT; } -#line 28350 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28402 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 438: -#line 4400 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4402 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_add_cfetch(thd, &(yyvsp[-1].ident_sys)))) MYSQL_YYABORT; } -#line 28359 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28411 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 439: -#line 4405 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4407 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_add_cfetch(thd, &(yyvsp[-1].ident_sys)))) MYSQL_YYABORT; } -#line 28368 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28420 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 440: -#line 4412 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4414 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 28374 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28426 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 441: -#line 4414 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4416 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; sp_head *sp= lex->sphead; @@ -28386,11 +28438,11 @@ unlikely(sp->add_instr(i))) MYSQL_YYABORT; } -#line 28390 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28442 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 442: -#line 4429 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4431 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; sp_head *sp= lex->sphead; @@ -28405,11 +28457,11 @@ unlikely(sp->add_instr(i))) MYSQL_YYABORT; } -#line 28409 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28461 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 443: -#line 4447 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4449 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; sp_head *sp= lex->sphead; @@ -28423,11 +28475,11 @@ sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction(); i->add_to_varlist(spv); } -#line 28427 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28479 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 444: -#line 4461 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4463 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; sp_head *sp= lex->sphead; @@ -28441,17 +28493,17 @@ sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction(); i->add_to_varlist(spv); } -#line 28445 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28497 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 445: -#line 4477 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4479 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sphead->reset_lex(thd); } -#line 28451 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28503 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 446: -#line 4479 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4481 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; sp_head *sp= lex->sphead; @@ -28467,11 +28519,11 @@ if (unlikely(sp->restore_lex(thd))) MYSQL_YYABORT; } -#line 28471 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28523 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 447: -#line 4495 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4497 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { sp_head *sp= Lex->sphead; sp_pcontext *ctx= Lex->spcont; @@ -28483,21 +28535,21 @@ sp->backpatch(ctx->pop_label()); sp->push_backpatch(thd, i, ctx->push_label(thd, &empty_clex_str, 0)); } -#line 28487 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28539 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 448: -#line 4507 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4509 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sphead->backpatch(lex->spcont->pop_label()); } -#line 28497 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28549 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 452: -#line 4522 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4524 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->maybe_start_compound_statement(thd))) MYSQL_YYABORT; @@ -28547,11 +28599,11 @@ */ Lex->spcont->push_label(thd, &empty_clex_str, Lex->sphead->instructions()); } -#line 28551 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28603 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 453: -#line 4575 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4577 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* BACKPATCH: Resolving forward jump from @@ -28565,48 +28617,48 @@ Lex->sphead->do_cont_backpatch(); } -#line 28569 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28621 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 454: -#line 4591 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4593 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sphead->reset_lex(thd); /* For expr $2 */ } -#line 28575 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28627 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 455: -#line 4593 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4595 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->case_stmt_action_expr((yyvsp[0].item)))) MYSQL_YYABORT; if (unlikely(Lex->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 28586 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28638 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 456: -#line 4600 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4602 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 28592 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28644 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 457: -#line 4602 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4604 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 28598 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28650 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 462: -#line 4617 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4619 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sphead->reset_lex(thd); /* For expr $3 */ } -#line 28606 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28658 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 463: -#line 4621 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4623 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Simple case: = */ @@ -28617,28 +28669,28 @@ if (unlikely(lex->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 28621 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28673 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 464: -#line 4633 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4635 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->case_stmt_action_then())) MYSQL_YYABORT; } -#line 28630 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28682 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 465: -#line 4641 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4643 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sphead->reset_lex(thd); /* For expr $3 */ } -#line 28638 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28690 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 466: -#line 4645 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4647 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->case_stmt_action_when((yyvsp[0].item), false))) @@ -28647,20 +28699,20 @@ if (unlikely(lex->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 28651 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28703 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 467: -#line 4655 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4657 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->case_stmt_action_then())) MYSQL_YYABORT; } -#line 28660 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28712 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 468: -#line 4663 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4665 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; sp_head *sp= lex->sphead; @@ -28671,142 +28723,142 @@ unlikely(sp->add_instr(i))) MYSQL_YYABORT; } -#line 28675 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28727 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 470: -#line 4677 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4679 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str)= (yyvsp[-1].ident_sys); } -#line 28681 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28733 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 471: -#line 4681 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4683 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str)= null_clex_str; } -#line 28687 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28739 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 472: -#line 4682 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4684 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str)= (yyvsp[0].ident_sys); } -#line 28693 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28745 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 473: -#line 4687 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4689 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->spcont->block_label_declare(&(yyvsp[0].lex_str)))) MYSQL_YYABORT; (yyval.lex_str)= (yyvsp[0].lex_str); } -#line 28703 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28755 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 474: -#line 4697 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4699 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sp_block_init(thd, &(yyvsp[-1].lex_str)); } -#line 28711 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28763 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 475: -#line 4704 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4706 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_block_finalize(thd, (yyvsp[-3].spblock), &(yyvsp[0].lex_str)))) MYSQL_YYABORT; } -#line 28720 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28772 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 476: -#line 4712 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4714 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sp_block_init(thd); } -#line 28728 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28780 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 477: -#line 4718 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4720 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_block_finalize(thd, (yyvsp[-2].spblock)))) MYSQL_YYABORT; } -#line 28737 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28789 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 478: -#line 4726 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4728 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->maybe_start_compound_statement(thd))) MYSQL_YYABORT; Lex->sp_block_init(thd); } -#line 28747 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28799 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 479: -#line 4734 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4736 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_block_finalize(thd, (yyvsp[-2].spblock)))) MYSQL_YYABORT; } -#line 28756 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28808 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 480: -#line 4742 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4744 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 28762 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28814 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 481: -#line 4743 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4745 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= -1; } -#line 28768 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28820 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 482: -#line 4748 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4750 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_for_loop_declarations(thd, &(yyval.for_loop), &(yyvsp[-1].ident_sys), (yyvsp[0].for_loop_bounds)))) MYSQL_YYABORT; } -#line 28777 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28829 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 483: -#line 4757 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4759 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.for_loop_bounds)= Lex_for_loop_bounds_intrange((yyvsp[-3].num), (yyvsp[-2].assignment_lex), (yyvsp[0].assignment_lex)); } -#line 28785 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28837 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 484: -#line 4761 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4763 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.for_loop_bounds).m_direction= (yyvsp[-1].num); (yyval.for_loop_bounds).m_index= (yyvsp[0].assignment_lex); (yyval.for_loop_bounds).m_target_bound= NULL; (yyval.for_loop_bounds).m_implicit_cursor= false; } -#line 28796 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28848 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 485: -#line 4768 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4770 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_for_loop_implicit_cursor_statement(thd, &(yyval.for_loop_bounds), (yyvsp[-1].sp_cursor_stmt)))) MYSQL_YYABORT; } -#line 28806 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28858 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 486: -#line 4777 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4779 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; uint ip= lex->sphead->instructions(); @@ -28817,11 +28869,11 @@ unlikely(lex->sphead->add_instr(i))) MYSQL_YYABORT; } -#line 28821 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28873 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 487: -#line 4791 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4793 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->sp_while_loop_expression(thd, (yyvsp[-1].item)))) @@ -28829,26 +28881,26 @@ if (unlikely(lex->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 28833 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28885 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 488: -#line 4799 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4801 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_while_loop_finalize(thd))) MYSQL_YYABORT; } -#line 28842 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28894 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 489: -#line 4807 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4809 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sphead->reset_lex(thd); } -#line 28848 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28900 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 490: -#line 4809 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4811 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; uint ip= lex->sphead->instructions(); @@ -28863,161 +28915,161 @@ /* We can shortcut the cont_backpatch here */ i->m_cont_dest= ip+1; } -#line 28867 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28919 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 491: -#line 4827 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4829 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_pop_loop_label(thd, &(yyvsp[0].lex_str)))) MYSQL_YYABORT; } -#line 28876 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28928 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 492: -#line 4835 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4837 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_push_loop_label(thd, &(yyvsp[-1].lex_str)))) MYSQL_YYABORT; } -#line 28885 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28937 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 493: -#line 4840 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4842 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 28891 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28943 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 494: -#line 4842 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4844 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_push_loop_label(thd, &(yyvsp[-1].lex_str)))) MYSQL_YYABORT; Lex->sphead->reset_lex(thd); } -#line 28901 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28953 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 495: -#line 4848 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4850 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 28907 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28959 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 496: -#line 4850 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4852 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { // See "The FOR LOOP statement" comments in sql_lex.cc Lex->sp_block_init(thd); // The outer DECLARE..BEGIN..END block } -#line 28916 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28968 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 497: -#line 4855 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4857 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_push_loop_label(thd, &(yyvsp[-3].lex_str)))) // The inner WHILE block MYSQL_YYABORT; if (unlikely(Lex->sp_for_loop_condition_test(thd, (yyvsp[0].for_loop)))) MYSQL_YYABORT; } -#line 28927 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28979 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 498: -#line 4864 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4866 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_for_loop_finalize(thd, (yyvsp[-5].for_loop)))) MYSQL_YYABORT; } -#line 28936 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28988 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 499: -#line 4869 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4871 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_for_loop_outer_block_finalize(thd, (yyvsp[-7].for_loop)))) MYSQL_YYABORT; } -#line 28945 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 28997 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 500: -#line 4874 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4876 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_push_loop_label(thd, &(yyvsp[-1].lex_str)))) MYSQL_YYABORT; } -#line 28954 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29006 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 501: -#line 4879 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4881 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 28960 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29012 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 502: -#line 4884 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4886 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_push_loop_empty_label(thd))) MYSQL_YYABORT; } -#line 28969 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29021 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 503: -#line 4889 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4891 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sp_pop_loop_empty_label(thd); } -#line 28977 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29029 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 504: -#line 4893 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4895 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_push_loop_empty_label(thd))) MYSQL_YYABORT; Lex->sphead->reset_lex(thd); } -#line 28987 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29039 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 505: -#line 4899 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4901 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sp_pop_loop_empty_label(thd); } -#line 28995 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29047 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 506: -#line 4903 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4905 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { // See "The FOR LOOP statement" comments in sql_lex.cc if (unlikely(Lex->maybe_start_compound_statement(thd))) MYSQL_YYABORT; Lex->sp_block_init(thd); // The outer DECLARE..BEGIN..END block } -#line 29006 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29058 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 507: -#line 4910 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4912 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_push_loop_empty_label(thd))) // The inner WHILE block MYSQL_YYABORT; if (unlikely(Lex->sp_for_loop_condition_test(thd, (yyvsp[0].for_loop)))) MYSQL_YYABORT; } -#line 29017 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29069 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 508: -#line 4919 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4921 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_for_loop_finalize(thd, (yyvsp[-5].for_loop)))) MYSQL_YYABORT; @@ -29025,122 +29077,122 @@ if (unlikely(Lex->sp_for_loop_outer_block_finalize(thd, (yyvsp[-5].for_loop)))) MYSQL_YYABORT; } -#line 29029 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29081 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 509: -#line 4927 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4929 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_push_loop_empty_label(thd))) MYSQL_YYABORT; } -#line 29038 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29090 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 510: -#line 4932 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4934 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sp_pop_loop_empty_label(thd); } -#line 29046 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29098 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 511: -#line 4939 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4941 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->trg_chistics.action_time= TRG_ACTION_BEFORE; } -#line 29052 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29104 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 512: -#line 4941 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4943 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->trg_chistics.action_time= TRG_ACTION_AFTER; } -#line 29058 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29110 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 513: -#line 4946 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4948 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->trg_chistics.event= TRG_EVENT_INSERT; } -#line 29064 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29116 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 514: -#line 4948 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4950 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->trg_chistics.event= TRG_EVENT_UPDATE; } -#line 29070 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29122 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 515: -#line 4950 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4952 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->trg_chistics.event= TRG_EVENT_DELETE; } -#line 29076 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29128 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 519: -#line 4984 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4986 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29082 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29134 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 520: -#line 4986 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4988 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->logfile_group_name= (yyvsp[0].ident_sys).str; } -#line 29091 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29143 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 521: -#line 4996 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 4998 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_ADD_FILE; } -#line 29099 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29151 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 522: -#line 5002 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5004 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_DROP_FILE; } -#line 29107 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29159 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 527: -#line 5025 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5027 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29113 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29165 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 574: -#line 5119 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5121 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->data_file_name= (yyvsp[0].lex_str).str; } -#line 29122 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29174 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 575: -#line 5127 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5129 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->undo_file_name= (yyvsp[0].lex_str).str; } -#line 29131 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29183 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 576: -#line 5135 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5137 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->redo_file_name= (yyvsp[0].lex_str).str; } -#line 29140 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29192 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 577: -#line 5143 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5145 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info= (new (thd->mem_root) @@ -29150,11 +29202,11 @@ lex->alter_tablespace_info->tablespace_name= (yyvsp[0].ident_sys).str; lex->sql_command= SQLCOM_ALTER_TABLESPACE; } -#line 29154 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29206 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 578: -#line 5156 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5158 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info= (new (thd->mem_root) @@ -29164,114 +29216,114 @@ lex->alter_tablespace_info->logfile_group_name= (yyvsp[0].ident_sys).str; lex->sql_command= SQLCOM_ALTER_TABLESPACE; } -#line 29168 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29220 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 579: -#line 5169 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5171 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->ts_access_mode= TS_READ_ONLY; } -#line 29177 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29229 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 580: -#line 5174 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5176 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->ts_access_mode= TS_READ_WRITE; } -#line 29186 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29238 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 581: -#line 5179 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5181 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->ts_access_mode= TS_NOT_ACCESSIBLE; } -#line 29195 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29247 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 582: -#line 5187 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5189 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->initial_size= (yyvsp[0].ulonglong_number); } -#line 29204 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29256 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 583: -#line 5195 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5197 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->autoextend_size= (yyvsp[0].ulonglong_number); } -#line 29213 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29265 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 584: -#line 5203 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5205 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->max_size= (yyvsp[0].ulonglong_number); } -#line 29222 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29274 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 585: -#line 5211 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5213 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->extent_size= (yyvsp[0].ulonglong_number); } -#line 29231 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29283 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 586: -#line 5219 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5221 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->undo_buffer_size= (yyvsp[0].ulonglong_number); } -#line 29240 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29292 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 587: -#line 5227 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5229 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->redo_buffer_size= (yyvsp[0].ulonglong_number); } -#line 29249 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29301 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 588: -#line 5235 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5237 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->alter_tablespace_info->nodegroup_id != UNDEF_NODEGROUP)) my_yyabort_error((ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"NODEGROUP")); lex->alter_tablespace_info->nodegroup_id= (yyvsp[0].ulong_num); } -#line 29260 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29312 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 589: -#line 5245 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5247 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->alter_tablespace_info->ts_comment != NULL)) my_yyabort_error((ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"COMMENT")); lex->alter_tablespace_info->ts_comment= (yyvsp[0].lex_str).str; } -#line 29271 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29323 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 590: -#line 5255 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5257 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->alter_tablespace_info->storage_engine != NULL)) @@ -29279,88 +29331,88 @@ "STORAGE ENGINE")); lex->alter_tablespace_info->storage_engine= (yyvsp[0].db_type); } -#line 29283 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29335 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 593: -#line 5271 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5273 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->wait_until_completed= TRUE; } -#line 29292 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29344 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 594: -#line 5276 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5278 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(!(lex->alter_tablespace_info->wait_until_completed))) my_yyabort_error((ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"NO_WAIT")); lex->alter_tablespace_info->wait_until_completed= FALSE; } -#line 29303 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29355 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 595: -#line 5285 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5287 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulonglong_number)= (yyvsp[0].ulonglong_number);} -#line 29309 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29361 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 596: -#line 5287 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5289 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if ((yyvsp[0].ident_sys).to_size_number(&(yyval.ulonglong_number))) MYSQL_YYABORT; } -#line 29318 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29370 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 597: -#line 5299 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5301 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.option_list= NULL; } -#line 29324 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29376 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 598: -#line 5300 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5302 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29330 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29382 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 599: -#line 5301 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5303 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29336 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29388 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 601: -#line 5309 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5311 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->set_braces(1);} -#line 29342 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29394 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 602: -#line 5309 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5311 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29348 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29400 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 603: -#line 5311 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5313 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->set_braces(1);} -#line 29354 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29406 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 604: -#line 5311 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5313 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29360 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29412 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 605: -#line 5313 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5315 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.add(DDL_options_st::OPT_LIKE); @@ -29371,70 +29423,70 @@ /* CREATE TABLE ... LIKE is not allowed for views. */ src_table->required_type= TABLE_TYPE_NORMAL; } -#line 29375 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29427 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 606: -#line 5326 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5328 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.table)= (yyvsp[0].table); } -#line 29381 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29433 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 607: -#line 5327 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5329 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.table)= (yyvsp[-1].table); } -#line 29387 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29439 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 608: -#line 5331 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5333 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29393 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29445 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 610: -#line 5338 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5340 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->set_braces(0); Select->set_with_clause((yyvsp[-4].with_clause)); } -#line 29402 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29454 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 612: -#line 5345 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5347 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->set_with_clause((yyvsp[-4].with_clause)); } -#line 29410 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29462 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 614: -#line 5350 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5352 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->set_braces(1);} -#line 29416 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29468 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 615: -#line 5350 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5352 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29422 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29474 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 616: -#line 5352 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5354 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->set_braces(1);} -#line 29428 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29480 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 617: -#line 5352 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5354 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29434 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29486 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 618: -#line 5357 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5359 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Remove all tables used in PARTITION clause from the global table @@ -29444,17 +29496,17 @@ last_non_sel_table->next_global= 0; Lex->query_tables_last= &last_non_sel_table->next_global; } -#line 29448 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29500 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 619: -#line 5393 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5395 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29454 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29506 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 621: -#line 5399 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5401 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->part_info= new (thd->mem_root) partition_info(); @@ -29465,11 +29517,11 @@ lex->alter_info.partition_flags|= ALTER_PARTITION_INFO; } } -#line 29469 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29521 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 623: -#line 5414 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5416 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { #ifdef WITH_PARTITION_STORAGE_ENGINE LEX_CSTRING partition_name={STRING_WITH_LEN("partition")}; @@ -29481,11 +29533,11 @@ "--with-plugin-partition")); #endif } -#line 29485 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29537 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 624: -#line 5429 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5431 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!Lex->part_info)) { @@ -29498,108 +29550,108 @@ partition info string into part_info data structure. */ } -#line 29502 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29554 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 625: -#line 5441 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5443 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29508 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29560 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 626: -#line 5446 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5448 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->safe_to_cache_query= 1; } -#line 29514 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29566 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 628: -#line 5452 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5454 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; part_info->list_of_part_fields= TRUE; part_info->column_list= FALSE; part_info->part_type= HASH_PARTITION; } -#line 29525 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29577 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 629: -#line 5459 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5461 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->part_info->part_type= HASH_PARTITION; } -#line 29531 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29583 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 630: -#line 5460 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5462 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29537 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29589 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 631: -#line 5462 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5464 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->part_info->part_type= RANGE_PARTITION; } -#line 29543 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29595 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 632: -#line 5464 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5466 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->part_info->part_type= RANGE_PARTITION; } -#line 29549 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29601 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 633: -#line 5466 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5468 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->parsing_place= IN_PART_FUNC; } -#line 29557 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29609 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 634: -#line 5470 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5472 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->part_info->part_type= LIST_PARTITION; Select->parsing_place= NO_MATTER; } -#line 29566 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29618 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 635: -#line 5475 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5477 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->part_info->part_type= LIST_PARTITION; } -#line 29572 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29624 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 636: -#line 5477 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5479 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->part_info->vers_init_info(thd))) MYSQL_YYABORT; } -#line 29581 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29633 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 638: -#line 5485 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5487 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29587 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29639 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 639: -#line 5487 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5489 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->part_info->linear_hash_ind= TRUE;} -#line 29593 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29645 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 640: -#line 5492 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5494 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->part_info->key_algorithm= partition_info::KEY_ALGORITHM_NONE;} -#line 29599 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29651 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 641: -#line 5494 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5496 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { switch ((yyvsp[0].ulong_num)) { case 1: @@ -29613,35 +29665,35 @@ MYSQL_YYABORT; } } -#line 29617 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29669 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 642: -#line 5510 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5512 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29623 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29675 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 643: -#line 5511 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5513 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29629 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29681 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 644: -#line 5515 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5517 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29635 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29687 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 645: -#line 5516 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5518 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29641 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29693 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 646: -#line 5521 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5523 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; part_info->num_columns++; @@ -29652,48 +29704,48 @@ my_yyabort_error((ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR, MYF(0), "list of partition fields")); } -#line 29656 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29708 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 647: -#line 5535 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5537 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; part_info->column_list= TRUE; part_info->list_of_part_fields= TRUE; } -#line 29666 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29718 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 648: -#line 5545 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5547 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; - if (unlikely(part_info->set_part_expr(thd, (yyvsp[-3].simple_string) + 1, (yyvsp[-2].item), (yyvsp[-1].simple_string), FALSE))) + if (unlikely(part_info->set_part_expr(thd, (yyvsp[-1].item), FALSE))) MYSQL_YYABORT; part_info->num_columns= 1; part_info->column_list= FALSE; } -#line 29678 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29730 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 649: -#line 5556 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5558 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { - if (unlikely(Lex->part_info->set_part_expr(thd, (yyvsp[-3].simple_string) + 1, (yyvsp[-2].item), (yyvsp[-1].simple_string), TRUE))) + if (unlikely(Lex->part_info->set_part_expr(thd, (yyvsp[-1].item), TRUE))) MYSQL_YYABORT; } -#line 29687 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29739 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 650: -#line 5564 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5566 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29693 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29745 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 651: -#line 5566 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5568 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { uint num_parts= (yyvsp[0].ulong_num); partition_info *part_info= Lex->part_info; @@ -29703,57 +29755,57 @@ part_info->num_parts= num_parts; part_info->use_default_num_partitions= FALSE; } -#line 29707 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29759 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 652: -#line 5578 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5580 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29713 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29765 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 653: -#line 5580 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5582 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->part_info->subpart_type= HASH_PARTITION; } -#line 29719 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29771 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 654: -#line 5581 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5583 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29725 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29777 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 655: -#line 5584 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5586 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; part_info->subpart_type= HASH_PARTITION; part_info->list_of_subpart_fields= TRUE; } -#line 29735 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29787 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 656: -#line 5589 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5591 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29741 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29793 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 657: -#line 5593 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5595 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29747 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29799 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 658: -#line 5594 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5596 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29753 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29805 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 659: -#line 5599 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5601 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; if (unlikely(part_info->subpart_field_list.push_back((yyvsp[0].ident_sys).str, @@ -29764,11 +29816,11 @@ my_yyabort_error((ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR, MYF(0), "list of subpartition fields")); } -#line 29768 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29820 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 660: -#line 5613 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5615 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!Lex->safe_to_cache_query)) { @@ -29777,17 +29829,17 @@ } (yyval.item)=(yyvsp[0].item); } -#line 29781 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29833 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 661: -#line 5624 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5626 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29787 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29839 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 662: -#line 5626 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5628 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { uint num_parts= (yyvsp[0].ulong_num); LEX *lex= Lex; @@ -29796,11 +29848,11 @@ lex->part_info->num_subparts= num_parts; lex->part_info->use_default_num_subpartitions= FALSE; } -#line 29800 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29852 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 663: -#line 5638 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5640 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; if (unlikely(part_info->part_type == RANGE_PARTITION)) @@ -29810,11 +29862,11 @@ my_yyabort_error((ER_PARTITIONS_MUST_BE_DEFINED_ERROR, MYF(0), "LIST")); } -#line 29814 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29866 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 664: -#line 5648 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5650 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; uint count_curr_parts= part_info->partitions.elements; @@ -29833,23 +29885,23 @@ } part_info->count_curr_subparts= 0; } -#line 29837 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29889 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 665: -#line 5669 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5671 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29843 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29895 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 666: -#line 5670 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5672 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29849 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29901 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 667: -#line 5675 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5677 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; partition_element *p_elem= new (thd->mem_root) partition_element(); @@ -29865,17 +29917,17 @@ part_info->use_default_partitions= FALSE; part_info->use_default_num_partitions= FALSE; } -#line 29869 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29921 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 668: -#line 5694 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5696 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29875 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29927 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 669: -#line 5699 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5701 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; partition_element *p_elem= part_info->curr_part_elem; @@ -29883,11 +29935,11 @@ MYSQL_YYABORT; p_elem->partition_name= (yyvsp[0].ident_sys).str; } -#line 29887 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29939 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 670: -#line 5710 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5712 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; partition_info *part_info= lex->part_info; @@ -29903,11 +29955,11 @@ else part_info->part_type= HASH_PARTITION; } -#line 29907 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29959 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 671: -#line 5726 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5728 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; partition_info *part_info= lex->part_info; @@ -29920,17 +29972,17 @@ else part_info->part_type= RANGE_PARTITION; } -#line 29924 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29976 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 672: -#line 5738 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5740 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29930 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29982 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 673: -#line 5740 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5742 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; partition_info *part_info= lex->part_info; @@ -29943,35 +29995,35 @@ else part_info->part_type= LIST_PARTITION; } -#line 29947 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 29999 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 674: -#line 5752 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5754 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 29953 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30005 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 675: -#line 5754 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5756 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (Lex->part_values_current(thd)) MYSQL_YYABORT; } -#line 29962 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30014 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 676: -#line 5759 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5761 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (Lex->part_values_history(thd)) MYSQL_YYABORT; } -#line 29971 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30023 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 677: -#line 5764 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5766 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; partition_info *part_info= lex->part_info; @@ -29988,11 +30040,11 @@ if (unlikely(part_info->add_max_value(thd))) MYSQL_YYABORT; } -#line 29992 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30044 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 678: -#line 5784 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5786 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; @@ -30010,17 +30062,17 @@ if (unlikely(part_info->add_max_value(thd))) MYSQL_YYABORT; } -#line 30014 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30066 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 679: -#line 5801 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5803 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30020 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30072 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 680: -#line 5806 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5808 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; partition_info *part_info= lex->part_info; @@ -30047,11 +30099,11 @@ MYSQL_YYABORT; } } -#line 30051 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30103 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 681: -#line 5833 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5835 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; if (unlikely(part_info->num_columns < 2U)) @@ -30060,23 +30112,23 @@ MYSQL_YYABORT; } } -#line 30064 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30116 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 682: -#line 5844 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5846 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30070 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30122 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 683: -#line 5845 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5847 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30076 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30128 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 684: -#line 5850 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5852 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; part_info->print_debug("( part_value_item", NULL); @@ -30086,17 +30138,17 @@ part_info->init_column_part(thd))) MYSQL_YYABORT; } -#line 30090 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30142 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 685: -#line 5859 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5861 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30096 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30148 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 686: -#line 5861 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5863 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; part_info->print_debug(") part_value_item", NULL); @@ -30117,23 +30169,23 @@ } part_info->curr_list_object= 0; } -#line 30121 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30173 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 687: -#line 5884 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5886 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30127 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30179 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 688: -#line 5885 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5887 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30133 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30185 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 689: -#line 5890 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5892 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; if (unlikely(part_info->part_type == LIST_PARTITION)) @@ -30144,11 +30196,11 @@ if (unlikely(part_info->add_max_value(thd))) MYSQL_YYABORT; } -#line 30148 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30200 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 690: -#line 5901 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5903 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; partition_info *part_info= lex->part_info; @@ -30162,11 +30214,11 @@ if (unlikely(part_info->add_column_list_value(thd, part_expr))) MYSQL_YYABORT; } -#line 30166 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30218 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 691: -#line 5919 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5921 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; if (unlikely(part_info->num_subparts != 0 && @@ -30180,11 +30232,11 @@ MYSQL_YYABORT; } } -#line 30184 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30236 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 692: -#line 5933 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5935 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; if (part_info->num_subparts != 0) @@ -30207,23 +30259,23 @@ } part_info->count_curr_subparts= 0; } -#line 30211 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30263 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 693: -#line 5958 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5960 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30217 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30269 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 694: -#line 5959 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5961 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30223 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30275 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 695: -#line 5964 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5966 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; partition_element *curr_part= part_info->current_partition; @@ -30256,129 +30308,129 @@ part_info->use_default_num_subpartitions= FALSE; part_info->count_curr_subparts++; } -#line 30260 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30312 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 696: -#line 5996 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 5998 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30266 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30318 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 697: -#line 6001 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6003 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(check_ident_length(&(yyvsp[0].lex_str)))) MYSQL_YYABORT; Lex->part_info->curr_part_elem->partition_name= (yyvsp[0].lex_str).str; } -#line 30276 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30328 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 698: -#line 6009 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6011 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30282 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30334 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 699: -#line 6010 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6012 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30288 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30340 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 700: -#line 6014 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6016 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30294 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30346 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 701: -#line 6015 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6017 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30300 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30352 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 702: -#line 6020 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6022 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->part_info->curr_part_elem->tablespace_name= (yyvsp[0].lex_str).str; } -#line 30306 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30358 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 703: -#line 6022 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6024 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; part_info->curr_part_elem->engine_type= (yyvsp[0].db_type); part_info->default_engine_type= (yyvsp[0].db_type); } -#line 30316 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30368 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 704: -#line 6028 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6030 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->part_info->curr_part_elem->connect_string.str= (yyvsp[0].lex_str).str; lex->part_info->curr_part_elem->connect_string.length= (yyvsp[0].lex_str).length; } -#line 30326 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30378 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 705: -#line 6034 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6036 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->part_info->curr_part_elem->nodegroup_id= (uint16) (yyvsp[0].ulong_num); } -#line 30332 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30384 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 706: -#line 6036 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6038 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->part_info->curr_part_elem->part_max_rows= (ha_rows) (yyvsp[0].ulonglong_number); } -#line 30338 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30390 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 707: -#line 6038 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6040 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->part_info->curr_part_elem->part_min_rows= (ha_rows) (yyvsp[0].ulonglong_number); } -#line 30344 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30396 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 708: -#line 6040 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6042 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->part_info->curr_part_elem->data_file_name= (yyvsp[0].lex_str).str; } -#line 30350 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30402 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 709: -#line 6042 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6044 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->part_info->curr_part_elem->index_file_name= (yyvsp[0].lex_str).str; } -#line 30356 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30408 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 710: -#line 6044 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6046 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->part_info->curr_part_elem->part_comment= (yyvsp[0].lex_str).str; } -#line 30362 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30414 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 711: -#line 6048 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6050 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30368 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30420 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 712: -#line 6050 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6052 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; if (unlikely(part_info->vers_set_interval(thd, (yyvsp[-2].item), (yyvsp[-1].interval), (yyvsp[0].ulong_num)))) MYSQL_YYABORT; } -#line 30378 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30430 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 713: -#line 6056 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6058 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; if (unlikely(part_info->vers_set_limit((yyvsp[0].ulonglong_number)))) @@ -30389,19 +30441,19 @@ MYSQL_YYABORT; } } -#line 30393 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30445 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 714: -#line 6071 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6073 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= thd->query_start(); } -#line 30401 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30453 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 715: -#line 6075 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6077 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* only allowed from mysql_unpack_partition() */ if (unlikely(!Lex->part_info->table)) @@ -30411,19 +30463,19 @@ } (yyval.ulong_num)= (ulong)(yyvsp[0].ulong_num); } -#line 30415 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30467 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 716: -#line 6093 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6095 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->set_with_clause((yyvsp[-4].with_clause)); } -#line 30423 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30475 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 717: -#line 6099 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6101 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (lex->sql_command == SQLCOM_INSERT) @@ -30438,19 +30490,19 @@ mysql_init_select(lex); lex->current_select->parsing_place= SELECT_LIST; } -#line 30442 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30494 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 718: -#line 6114 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6116 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->parsing_place= NO_MATTER; } -#line 30450 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30502 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 723: -#line 6131 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6133 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* The following work only with the local list, the global list @@ -30458,107 +30510,107 @@ */ Lex->current_select->table_list.push_front(&Lex->save_list); } -#line 30462 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30514 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 724: -#line 6141 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6143 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30468 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30520 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 725: -#line 6142 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6144 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30474 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30526 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 726: -#line 6146 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6148 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30480 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30532 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 727: -#line 6147 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6149 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30486 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30538 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 728: -#line 6151 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6153 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30492 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30544 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 729: -#line 6152 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6154 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30498 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30550 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 730: -#line 6156 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6158 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30504 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30556 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 731: -#line 6157 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6159 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 30510 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30562 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 732: -#line 6162 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6164 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->check_exists= FALSE; } -#line 30518 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30570 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 733: -#line 6166 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6168 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->check_exists= TRUE; } -#line 30526 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30578 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 734: -#line 6173 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6175 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.object_ddl_options).init(); } -#line 30534 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30586 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 735: -#line 6177 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6179 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.object_ddl_options).set(DDL_options_st::OPT_IF_NOT_EXISTS); } -#line 30542 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30594 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 736: -#line 6184 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6186 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.object_ddl_options).init(); } -#line 30550 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30602 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 737: -#line 6188 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6190 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.object_ddl_options).set(DDL_options_st::OPT_OR_REPLACE); } -#line 30558 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30610 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 745: -#line 6211 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6213 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (!lex->m_sql_cmd) @@ -30573,65 +30625,65 @@ *opt= Storage_engine_name((yyvsp[0].lex_str)); lex->create_info.used_fields|= HA_CREATE_USED_ENGINE; } -#line 30577 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30629 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 746: -#line 6226 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6228 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.max_rows= (yyvsp[0].ulonglong_number); Lex->create_info.used_fields|= HA_CREATE_USED_MAX_ROWS; } -#line 30586 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30638 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 747: -#line 6231 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6233 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.min_rows= (yyvsp[0].ulonglong_number); Lex->create_info.used_fields|= HA_CREATE_USED_MIN_ROWS; } -#line 30595 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30647 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 748: -#line 6236 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6238 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.avg_row_length=(yyvsp[0].ulong_num); Lex->create_info.used_fields|= HA_CREATE_USED_AVG_ROW_LENGTH; } -#line 30604 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30656 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 749: -#line 6241 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6243 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.password=(yyvsp[0].lex_str).str; Lex->create_info.used_fields|= HA_CREATE_USED_PASSWORD; } -#line 30613 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30665 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 750: -#line 6246 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6248 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.comment=(yyvsp[0].lex_str); Lex->create_info.used_fields|= HA_CREATE_USED_COMMENT; } -#line 30622 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30674 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 751: -#line 6251 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6253 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.auto_increment_value=(yyvsp[0].ulonglong_number); Lex->create_info.used_fields|= HA_CREATE_USED_AUTO; } -#line 30631 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30683 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 752: -#line 6256 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6258 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { switch((yyvsp[0].ulong_num)) { case 0: @@ -30646,21 +30698,21 @@ } Lex->create_info.used_fields|= HA_CREATE_USED_PACK_KEYS; } -#line 30650 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30702 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 753: -#line 6271 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6273 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.table_options&= ~(HA_OPTION_PACK_KEYS | HA_OPTION_NO_PACK_KEYS); Lex->create_info.used_fields|= HA_CREATE_USED_PACK_KEYS; } -#line 30660 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30712 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 754: -#line 6277 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6279 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { switch((yyvsp[0].ulong_num)) { case 0: @@ -30675,20 +30727,20 @@ } Lex->create_info.used_fields|= HA_CREATE_USED_STATS_AUTO_RECALC; } -#line 30679 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30731 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 755: -#line 6292 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6294 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.stats_auto_recalc= HA_STATS_AUTO_RECALC_DEFAULT; Lex->create_info.used_fields|= HA_CREATE_USED_STATS_AUTO_RECALC; } -#line 30688 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30740 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 756: -#line 6297 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6299 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { switch((yyvsp[0].ulong_num)) { case 0: @@ -30703,21 +30755,21 @@ } Lex->create_info.used_fields|= HA_CREATE_USED_STATS_PERSISTENT; } -#line 30707 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30759 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 757: -#line 6312 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6314 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.table_options&= ~(HA_OPTION_STATS_PERSISTENT | HA_OPTION_NO_STATS_PERSISTENT); Lex->create_info.used_fields|= HA_CREATE_USED_STATS_PERSISTENT; } -#line 30717 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30769 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 758: -#line 6318 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6320 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* From user point of view STATS_SAMPLE_PAGES can be specified as STATS_SAMPLE_PAGES=N (where 0create_info.stats_sample_pages=(yyvsp[0].ulong_num); Lex->create_info.used_fields|= HA_CREATE_USED_STATS_SAMPLE_PAGES; } -#line 30739 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30791 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 759: -#line 6336 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6338 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.stats_sample_pages=0; Lex->create_info.used_fields|= HA_CREATE_USED_STATS_SAMPLE_PAGES; } -#line 30748 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30800 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 760: -#line 6341 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6343 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.table_options|= (yyvsp[0].ulong_num) ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM; Lex->create_info.used_fields|= HA_CREATE_USED_CHECKSUM; } -#line 30757 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30809 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 761: -#line 6346 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6348 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.table_options|= (yyvsp[0].ulong_num) ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM; Lex->create_info.used_fields|= HA_CREATE_USED_CHECKSUM; } -#line 30766 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30818 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 762: -#line 6351 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6353 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.used_fields|= HA_CREATE_USED_PAGE_CHECKSUM; Lex->create_info.page_checksum= (yyvsp[0].choice); } -#line 30775 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30827 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 763: -#line 6356 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6358 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.table_options|= (yyvsp[0].ulong_num) ? HA_OPTION_DELAY_KEY_WRITE : HA_OPTION_NO_DELAY_KEY_WRITE; Lex->create_info.used_fields|= HA_CREATE_USED_DELAY_KEY_WRITE; } -#line 30784 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30836 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 764: -#line 6361 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6363 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.row_type= (yyvsp[0].row_type); Lex->create_info.used_fields|= HA_CREATE_USED_ROW_FORMAT; } -#line 30793 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30845 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 765: -#line 6366 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6368 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->select_lex.table_list.save_and_clear(&Lex->save_list); } -#line 30801 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30853 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 766: -#line 6370 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6372 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Move the union list to the merge_list and exclude its tables @@ -30823,84 +30875,84 @@ lex->create_info.used_fields|= HA_CREATE_USED_UNION; } -#line 30827 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30879 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 769: -#line 6394 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6396 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.merge_insert_method= (yyvsp[0].ulong_num); Lex->create_info.used_fields|= HA_CREATE_USED_INSERT_METHOD; } -#line 30836 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30888 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 770: -#line 6399 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6401 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.data_file_name= (yyvsp[0].lex_str).str; Lex->create_info.used_fields|= HA_CREATE_USED_DATADIR; } -#line 30845 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30897 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 771: -#line 6404 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6406 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.index_file_name= (yyvsp[0].lex_str).str; Lex->create_info.used_fields|= HA_CREATE_USED_INDEXDIR; } -#line 30854 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30906 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 772: -#line 6409 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6411 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {Lex->create_info.tablespace= (yyvsp[0].ident_sys).str;} -#line 30860 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30912 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 773: -#line 6411 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6413 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {Lex->create_info.storage_media= HA_SM_DISK;} -#line 30866 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30918 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 774: -#line 6413 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6415 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {Lex->create_info.storage_media= HA_SM_MEMORY;} -#line 30872 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30924 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 775: -#line 6415 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6417 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.connect_string.str= (yyvsp[0].lex_str).str; Lex->create_info.connect_string.length= (yyvsp[0].lex_str).length; Lex->create_info.used_fields|= HA_CREATE_USED_CONNECTION; } -#line 30882 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30934 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 776: -#line 6421 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6423 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.used_fields|= HA_CREATE_USED_KEY_BLOCK_SIZE; Lex->create_info.key_block_size= (yyvsp[0].ulong_num); } -#line 30891 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30943 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 777: -#line 6426 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6428 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.used_fields|= HA_CREATE_USED_TRANSACTIONAL; Lex->create_info.transactional= (yyvsp[0].choice); } -#line 30900 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30952 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 778: -#line 6431 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6433 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[0].lex_str).length > ENGINE_OPTION_MAX_LENGTH)) my_yyabort_error((ER_VALUE_TOO_LONG, MYF(0), (yyvsp[-2].ident_sys).str)); @@ -30909,11 +30961,11 @@ &Lex->create_info.option_list, &Lex->option_list_last); } -#line 30913 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30965 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 779: -#line 6440 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6442 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[0].ident_sys).length > ENGINE_OPTION_MAX_LENGTH)) my_yyabort_error((ER_VALUE_TOO_LONG, MYF(0), (yyvsp[-2].ident_sys).str)); @@ -30922,40 +30974,40 @@ &Lex->create_info.option_list, &Lex->option_list_last); } -#line 30926 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30978 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 780: -#line 6449 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6451 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (void) new (thd->mem_root) engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].ulonglong_number), &Lex->create_info.option_list, &Lex->option_list_last, thd->mem_root); } -#line 30936 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30988 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 781: -#line 6455 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6457 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (void) new (thd->mem_root) engine_option_value((yyvsp[-2].ident_sys), &Lex->create_info.option_list, &Lex->option_list_last); } -#line 30946 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 30998 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 782: -#line 6461 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6463 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.used_fields|= HA_CREATE_USED_SEQUENCE; Lex->create_info.sequence= ((yyvsp[0].choice) == HA_CHOICE_YES); } -#line 30955 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31007 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 786: -#line 6475 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6477 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->create_info.options & HA_LEX_CREATE_TMP_TABLE)) { @@ -30971,20 +31023,20 @@ Lex->create_info.options|= HA_VERSIONED_TABLE; } } -#line 30975 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31027 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 787: -#line 6494 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6496 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->create_info.add_table_option_default_charset((yyvsp[0].charset)))) MYSQL_YYABORT; } -#line 30984 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31036 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 788: -#line 6502 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6504 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { HA_CREATE_INFO *cinfo= &Lex->create_info; if (unlikely((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) && @@ -30996,22 +31048,22 @@ Lex->create_info.default_table_charset= (yyvsp[0].charset); Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET; } -#line 31000 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31052 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 789: -#line 6517 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6519 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (Storage_engine_name((yyvsp[0].lex_str)). resolve_storage_engine_with_error(thd, &(yyval.db_type), thd->lex->create_info.tmp_table())) MYSQL_YYABORT; } -#line 31011 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31063 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 790: -#line 6527 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6529 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { plugin_ref plugin; if (likely((plugin= ha_resolve_by_name(thd, &(yyvsp[0].lex_str), false)))) @@ -31019,217 +31071,217 @@ else my_yyabort_error((ER_UNKNOWN_STORAGE_ENGINE, MYF(0), (yyvsp[0].lex_str).str)); } -#line 31023 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31075 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 791: -#line 6537 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6539 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.row_type)= ROW_TYPE_DEFAULT; } -#line 31029 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31081 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 792: -#line 6538 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6540 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.row_type)= ROW_TYPE_FIXED; } -#line 31035 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31087 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 793: -#line 6539 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6541 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.row_type)= ROW_TYPE_DYNAMIC; } -#line 31041 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31093 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 794: -#line 6540 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6542 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.row_type)= ROW_TYPE_COMPRESSED; } -#line 31047 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31099 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 795: -#line 6541 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6543 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.row_type)= ROW_TYPE_REDUNDANT; } -#line 31053 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31105 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 796: -#line 6542 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6544 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.row_type)= ROW_TYPE_COMPACT; } -#line 31059 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31111 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 797: -#line 6543 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6545 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.row_type)= ROW_TYPE_PAGE; } -#line 31065 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31117 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 798: -#line 6547 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6549 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= MERGE_INSERT_DISABLED; } -#line 31071 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31123 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 799: -#line 6548 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6550 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= MERGE_INSERT_TO_FIRST; } -#line 31077 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31129 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 800: -#line 6549 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6551 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= MERGE_INSERT_TO_LAST; } -#line 31083 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31135 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 801: -#line 6553 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6555 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {(yyval.num) = (int) STRING_RESULT; } -#line 31089 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31141 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 802: -#line 6554 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6556 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {(yyval.num) = (int) REAL_RESULT; } -#line 31095 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31147 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 803: -#line 6555 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6557 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {(yyval.num) = (int) DECIMAL_RESULT; } -#line 31101 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31153 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 804: -#line 6556 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6558 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {(yyval.num) = (int) INT_RESULT; } -#line 31107 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31159 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 805: -#line 6562 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6564 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_last_non_select_table= Lex->last_table(); } -#line 31115 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31167 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 808: -#line 6573 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6575 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 31121 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31173 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 812: -#line 6581 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6583 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.create_field)= (yyvsp[0].create_field); } -#line 31127 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31179 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 813: -#line 6583 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6585 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.create_field)= (yyvsp[-1].create_field); } -#line 31133 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31185 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 814: -#line 6588 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6590 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->option_list= NULL; if (unlikely(Lex->add_key(Key::MULTIPLE, &(yyvsp[-1].lex_str), (yyvsp[0].key_alg), (yyvsp[-2].object_ddl_options)))) MYSQL_YYABORT; } -#line 31143 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31195 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 815: -#line 6593 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6595 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 31149 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31201 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 816: -#line 6595 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6597 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->option_list= NULL; if (unlikely(Lex->add_key(Key::MULTIPLE, &(yyvsp[-2].ident_sys), (yyvsp[0].key_alg), (yyvsp[-3].object_ddl_options)))) MYSQL_YYABORT; } -#line 31159 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31211 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 817: -#line 6600 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6602 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 31165 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31217 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 818: -#line 6602 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6604 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->option_list= NULL; if (unlikely(Lex->add_key((yyvsp[-3].key_type), &(yyvsp[0].lex_str), HA_KEY_ALG_UNDEF, (yyvsp[-1].object_ddl_options)))) MYSQL_YYABORT; } -#line 31175 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31227 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 819: -#line 6607 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6609 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 31181 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31233 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 820: -#line 6609 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6611 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->option_list= NULL; if (unlikely(Lex->add_key((yyvsp[-3].key_type), &(yyvsp[0].lex_str), HA_KEY_ALG_UNDEF, (yyvsp[-1].object_ddl_options)))) MYSQL_YYABORT; } -#line 31191 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31243 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 821: -#line 6614 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6616 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 31197 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31249 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 822: -#line 6618 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6620 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->option_list= NULL; if (unlikely(Lex->add_key((yyvsp[-3].key_type), (yyvsp[-1].lex_str).str ? &(yyvsp[-1].lex_str) : &(yyvsp[-4].lex_str), (yyvsp[0].key_alg), (yyvsp[-2].object_ddl_options)))) MYSQL_YYABORT; } -#line 31207 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31259 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 823: -#line 6623 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6625 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 31213 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31265 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 824: -#line 6626 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6628 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->option_list= NULL; if (unlikely(Lex->add_key((yyvsp[-4].key_type), (yyvsp[-2].ident_sys).str ? &(yyvsp[-2].ident_sys) : &(yyvsp[-5].lex_str), (yyvsp[0].key_alg), (yyvsp[-3].object_ddl_options)))) MYSQL_YYABORT; } -#line 31223 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31275 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 825: -#line 6631 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6633 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 31229 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31281 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 826: -#line 6633 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6635 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->check_add_key((yyvsp[-1].object_ddl_options))) || unlikely(!(Lex->last_key= (new (thd->mem_root) @@ -31239,11 +31291,11 @@ MYSQL_YYABORT; Lex->option_list= NULL; } -#line 31243 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31295 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 827: -#line 6643 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6645 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; Key *key= (new (thd->mem_root) @@ -31269,81 +31321,81 @@ /* Only used for ALTER TABLE. Ignored otherwise. */ lex->alter_info.flags|= ALTER_ADD_FOREIGN_KEY; } -#line 31273 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31325 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 828: -#line 6672 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6674 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->add_constraint(&(yyvsp[-1].lex_str), (yyvsp[0].virtual_column), FALSE); } -#line 31281 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31333 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 829: -#line 6680 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6682 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Vers_parse_info &info= Lex->vers_get_info(); info.set_system_time((yyvsp[-3].ident_sys), (yyvsp[-1].ident_sys)); } -#line 31290 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31342 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 830: -#line 6687 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6689 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.virtual_column)= (Virtual_column_info*) 0; } -#line 31296 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31348 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 831: -#line 6688 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6690 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.virtual_column)= (yyvsp[0].virtual_column);} -#line 31302 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31354 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 832: -#line 6693 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6695 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Virtual_column_info *v= add_virtual_expression(thd, (yyvsp[-1].item)); if (unlikely(!v)) MYSQL_YYABORT; (yyval.virtual_column)= v; } -#line 31313 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31365 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 833: -#line 6702 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6704 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 31319 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31371 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 834: -#line 6703 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6705 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 31325 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31377 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 835: -#line 6707 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6709 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str)= null_clex_str; } -#line 31331 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31383 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 836: -#line 6708 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6710 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str)= (yyvsp[0].lex_str); } -#line 31337 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31389 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 837: -#line 6712 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6714 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str)=(yyvsp[0].lex_str); } -#line 31343 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31395 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 838: -#line 6717 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6719 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; Create_field *f= new (thd->mem_root) Create_field(); @@ -31358,11 +31410,11 @@ lex->init_last_field(f, &(yyvsp[0].lex_str), NULL); (yyval.create_field)= f; } -#line 31362 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31414 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 839: -#line 6732 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6734 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; (yyval.create_field)= (yyvsp[-2].create_field); @@ -31380,192 +31432,192 @@ else if ((yyval.create_field)->flags & UNIQUE_KEY_FLAG) lex->add_key_to_list(&(yyvsp[-3].lex_str), Key::UNIQUE, lex->check_exists); } -#line 31384 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31436 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 840: -#line 6752 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6754 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->set_attributes((yyvsp[0].Lex_field_type), Lex->charset); } -#line 31390 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31442 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 842: -#line 6755 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6757 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->set_handler(&type_handler_longlong); Lex->last_field->flags|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNSIGNED_FLAG | UNIQUE_KEY_FLAG; } -#line 31400 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31452 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 844: -#line 6764 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6766 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 31406 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31458 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 845: -#line 6765 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6767 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 31412 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31464 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 846: -#line 6769 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6771 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 31418 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31470 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 848: -#line 6774 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6776 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 31424 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31476 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 849: -#line 6775 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6777 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 31430 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31482 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 850: -#line 6779 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6781 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 31436 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31488 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 852: -#line 6784 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6786 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 31442 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31494 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 856: -#line 6789 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6791 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->vcol_info= (yyvsp[0].virtual_column); Lex->last_field->flags&= ~NOT_NULL_FLAG; // undo automatic NOT NULL for timestamps } -#line 31451 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31503 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 858: -#line 6795 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6797 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (Lex->last_field_generated_always_as_row_start()) MYSQL_YYABORT; } -#line 31460 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31512 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 859: -#line 6800 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6802 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (Lex->last_field_generated_always_as_row_end()) MYSQL_YYABORT; } -#line 31469 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31521 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 860: -#line 6807 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6809 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 31475 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31527 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 861: -#line 6808 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6810 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 31481 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31533 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 862: -#line 6813 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6815 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->vcol_info->set_stored_in_db_flag(FALSE); } -#line 31489 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31541 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 863: -#line 6817 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6819 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->vcol_info->set_stored_in_db_flag(FALSE); } -#line 31497 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31549 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 864: -#line 6821 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6823 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->vcol_info->set_stored_in_db_flag(TRUE); } -#line 31505 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31557 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 865: -#line 6825 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6827 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->vcol_info->set_stored_in_db_flag(TRUE); } -#line 31513 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31565 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 866: -#line 6831 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6833 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 31519 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31571 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 867: -#line 6832 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6834 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 31525 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31577 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 868: -#line 6836 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6838 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 31531 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31583 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 870: -#line 6842 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6844 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->last_field->flags|= UNIQUE_KEY_FLAG; lex->alter_info.flags|= ALTER_ADD_INDEX; } -#line 31541 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31593 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 871: -#line 6848 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6850 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->last_field->flags|= UNIQUE_KEY_FLAG; lex->alter_info.flags|= ALTER_ADD_INDEX; } -#line 31551 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31603 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 872: -#line 6853 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6855 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->comment= (yyvsp[0].lex_str); } -#line 31557 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31609 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 873: -#line 6855 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6857 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->invisible= INVISIBLE_USER; } -#line 31565 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31617 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 874: -#line 6862 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6864 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* "PARSE_VCOL_EXPR" can only be used by the SQL server @@ -31574,43 +31626,43 @@ */ MYSQL_YYABORT_UNLESS(Lex->parse_vcol_expr); } -#line 31578 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31630 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 875: -#line 6871 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6873 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Virtual_column_info *v= add_virtual_expression(thd, (yyvsp[0].item)); if (unlikely(!v)) MYSQL_YYABORT; Lex->last_field->vcol_info= v; } -#line 31589 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31641 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 876: -#line 6881 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6883 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_singlerow_subselect(thd, (yyvsp[0].select_lex)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 31599 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31651 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 878: -#line 6888 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6890 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[0].item_list)->push_front((yyvsp[-2].item), thd->mem_root); (yyval.item)= new (thd->mem_root) Item_row(thd, *(yyvsp[0].item_list)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 31610 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31662 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 879: -#line 6898 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6900 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Virtual_column_info *v= add_virtual_expression(thd, (yyvsp[-1].item)); @@ -31618,32 +31670,32 @@ MYSQL_YYABORT; (yyval.virtual_column)= v; } -#line 31622 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31674 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 883: -#line 6912 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6914 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.virtual_column)= add_virtual_expression(thd, (yyvsp[0].item))))) MYSQL_YYABORT; } -#line 31631 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31683 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 889: -#line 6927 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6929 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set((yyvsp[-2].type_handler), (yyvsp[-1].const_simple_string)); } -#line 31637 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31689 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 890: -#line 6928 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6930 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set((yyvsp[-2].type_handler), (yyvsp[-1].Lex_length_and_dec)); } -#line 31643 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31695 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 891: -#line 6930 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6932 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(&type_handler_float, (yyvsp[-1].Lex_length_and_dec)); if ((yyvsp[-1].Lex_length_and_dec).length() && !(yyvsp[-1].Lex_length_and_dec).dec()) @@ -31659,133 +31711,133 @@ (yyval.Lex_field_type).set(&type_handler_float); } } -#line 31663 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31715 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 892: -#line 6946 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6948 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(&type_handler_bit, (yyvsp[0].const_simple_string)); } -#line 31671 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31723 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 893: -#line 6950 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6952 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(&type_handler_tiny, "1"); } -#line 31679 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31731 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 894: -#line 6954 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6956 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(&type_handler_tiny, "1"); } -#line 31687 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31739 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 895: -#line 6958 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6960 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(&type_handler_newdecimal, (yyvsp[-1].Lex_length_and_dec));} -#line 31693 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31745 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 896: -#line 6960 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6962 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if ((yyvsp[-1].Lex_length_and_dec).length() != 0) (yyval.Lex_field_type).set(&type_handler_newdecimal, (yyvsp[-1].Lex_length_and_dec)); else (yyval.Lex_field_type).set(&type_handler_double); } -#line 31704 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31756 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 897: -#line 6967 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6969 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(&type_handler_newdecimal, (yyvsp[-1].Lex_length_and_dec));} -#line 31710 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31762 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 898: -#line 6969 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6971 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(&type_handler_newdecimal, (yyvsp[-1].Lex_length_and_dec));} -#line 31716 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31768 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 903: -#line 6982 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6984 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(&type_handler_string, (yyvsp[-1].const_simple_string)); } -#line 31724 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31776 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 904: -#line 6986 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6988 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(&type_handler_string, (yyvsp[-1].const_simple_string)); bincmp_collation(national_charset_info, (yyvsp[0].num)); } -#line 31733 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31785 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 905: -#line 6991 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6993 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->charset=&my_charset_bin; (yyval.Lex_field_type).set(&type_handler_string, (yyvsp[0].const_simple_string)); } -#line 31742 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31794 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 906: -#line 6996 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 6998 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].const_simple_string)); } -#line 31750 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31802 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 907: -#line 7000 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7002 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].const_simple_string)); } -#line 31758 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31810 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 908: -#line 7004 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7006 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-2].const_simple_string)); bincmp_collation(national_charset_info, (yyvsp[0].num)); } -#line 31767 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31819 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 909: -#line 7009 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7011 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->charset=&my_charset_bin; (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].const_simple_string)); } -#line 31776 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31828 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 910: -#line 7014 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7016 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->charset= &my_charset_bin; (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].const_simple_string)); } -#line 31785 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31837 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 911: -#line 7022 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7024 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if ((yyvsp[-1].const_simple_string)) { @@ -31803,28 +31855,28 @@ } (yyval.Lex_field_type).set(&type_handler_year, (yyvsp[-1].const_simple_string)); } -#line 31807 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31859 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 912: -#line 7039 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7041 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(thd->type_handler_for_date()); } -#line 31813 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31865 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 913: -#line 7041 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7043 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(opt_mysql56_temporal_format ? static_cast(&type_handler_time2) : static_cast(&type_handler_time), (yyvsp[0].const_simple_string)); } -#line 31824 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31876 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 914: -#line 7048 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7050 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (thd->variables.sql_mode & MODE_MAXDB) (yyval.Lex_field_type).set(opt_mysql56_temporal_format ? @@ -31845,49 +31897,58 @@ (yyvsp[0].const_simple_string)); } } -#line 31849 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31901 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 915: -#line 7069 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7071 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(opt_mysql56_temporal_format ? static_cast(&type_handler_datetime2) : static_cast(&type_handler_datetime), (yyvsp[0].const_simple_string)); } -#line 31860 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31912 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 916: -#line 7080 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7082 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->charset=&my_charset_bin; (yyval.Lex_field_type).set(&type_handler_tiny_blob); } -#line 31869 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31921 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 917: -#line 7085 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7087 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->charset=&my_charset_bin; (yyval.Lex_field_type).set(&type_handler_blob, (yyvsp[-1].const_simple_string)); } -#line 31878 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31930 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 918: -#line 7090 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7092 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->charset=&my_charset_bin; - (yyval.Lex_field_type).set(&type_handler_long_blob); + (yyval.Lex_field_type).set(&type_handler_blob, (yyvsp[-1].const_simple_string)); } -#line 31887 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31939 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 919: -#line 7095 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7097 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { + Lex->charset=&my_charset_bin; + (yyval.Lex_field_type).set(&type_handler_long_blob); + } +#line 31948 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 920: +#line 7102 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { #ifdef HAVE_SPATIAL Lex->charset=&my_charset_bin; @@ -31898,521 +31959,521 @@ sym_group_geom.needed_define)); #endif } -#line 31902 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31963 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 920: -#line 7106 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 921: +#line 7113 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->charset=&my_charset_bin; (yyval.Lex_field_type).set(&type_handler_medium_blob); } -#line 31911 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31972 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 921: -#line 7111 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 922: +#line 7118 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->charset=&my_charset_bin; (yyval.Lex_field_type).set(&type_handler_long_blob); } -#line 31920 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31981 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 922: -#line 7116 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 923: +#line 7123 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->charset=&my_charset_bin; (yyval.Lex_field_type).set(&type_handler_medium_blob); } -#line 31929 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 923: -#line 7121 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_field_type).set(&type_handler_medium_blob); } -#line 31935 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 31990 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 924: -#line 7123 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_field_type).set(&type_handler_tiny_blob); } -#line 31941 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7128 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_field_type).set(&type_handler_medium_blob); } +#line 31996 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 925: -#line 7125 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_field_type).set(&type_handler_blob, (yyvsp[-1].const_simple_string)); } -#line 31947 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7130 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_field_type).set(&type_handler_tiny_blob); } +#line 32002 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 926: -#line 7127 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_field_type).set(&type_handler_medium_blob); } -#line 31953 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7132 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_field_type).set(&type_handler_blob, (yyvsp[-1].const_simple_string)); } +#line 32008 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 927: -#line 7129 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_field_type).set(&type_handler_long_blob); } -#line 31959 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7134 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_field_type).set(&type_handler_medium_blob); } +#line 32014 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 928: -#line 7131 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7136 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(&type_handler_long_blob); } -#line 31965 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32020 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 929: -#line 7133 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_field_type).set(&type_handler_medium_blob); } -#line 31971 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7138 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_field_type).set(&type_handler_long_blob); } +#line 32026 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 930: -#line 7135 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7140 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_field_type).set(&type_handler_medium_blob); } +#line 32032 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 931: +#line 7142 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->charset= &my_charset_utf8mb4_bin; (yyval.Lex_field_type).set(&type_handler_long_blob); } -#line 31980 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 931: -#line 7143 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_field_type).set(&type_handler_enum); } -#line 31986 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32041 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 932: -#line 7145 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_field_type).set(&type_handler_set); } -#line 31992 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7150 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_field_type).set(&type_handler_enum); } +#line 32047 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 933: -#line 7149 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.geom_type)= Field::GEOM_GEOMETRY; } -#line 31998 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7152 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_field_type).set(&type_handler_set); } +#line 32053 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 934: -#line 7150 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.geom_type)= Field::GEOM_GEOMETRYCOLLECTION; } -#line 32004 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7156 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.geom_type)= Field::GEOM_GEOMETRY; } +#line 32059 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 935: -#line 7151 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.geom_type)= Field::GEOM_POINT; } -#line 32010 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7157 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.geom_type)= Field::GEOM_GEOMETRYCOLLECTION; } +#line 32065 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 936: -#line 7152 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.geom_type)= Field::GEOM_MULTIPOINT; } -#line 32016 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7158 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.geom_type)= Field::GEOM_POINT; } +#line 32071 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 937: -#line 7153 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.geom_type)= Field::GEOM_LINESTRING; } -#line 32022 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7159 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.geom_type)= Field::GEOM_MULTIPOINT; } +#line 32077 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 938: -#line 7154 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.geom_type)= Field::GEOM_MULTILINESTRING; } -#line 32028 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7160 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.geom_type)= Field::GEOM_LINESTRING; } +#line 32083 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 939: -#line 7155 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.geom_type)= Field::GEOM_POLYGON; } -#line 32034 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7161 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.geom_type)= Field::GEOM_MULTILINESTRING; } +#line 32089 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 940: -#line 7156 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.geom_type)= Field::GEOM_MULTIPOLYGON; } -#line 32040 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7162 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.geom_type)= Field::GEOM_POLYGON; } +#line 32095 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 941: -#line 7160 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 32046 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7163 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.geom_type)= Field::GEOM_MULTIPOLYGON; } +#line 32101 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 942: -#line 7164 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7167 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 32052 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32107 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 943: -#line 7165 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7171 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 32058 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32113 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 944: -#line 7169 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7172 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 32064 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32119 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 945: -#line 7170 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7176 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 32070 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32125 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 946: -#line 7174 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7177 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 32076 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32131 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 947: -#line 7175 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7181 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 32082 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32137 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 948: -#line 7176 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7182 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 32088 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32143 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 949: -#line 7177 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7183 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 32094 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32149 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 950: -#line 7178 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7184 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 32100 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32155 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 951: -#line 7182 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.type_handler)= &type_handler_long; } -#line 32106 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7185 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {} +#line 32161 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 952: -#line 7183 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.type_handler)= &type_handler_tiny; } -#line 32112 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7189 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.type_handler)= &type_handler_long; } +#line 32167 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 953: -#line 7184 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.type_handler)= &type_handler_short; } -#line 32118 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7190 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.type_handler)= &type_handler_tiny; } +#line 32173 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 954: -#line 7185 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.type_handler)= &type_handler_int24; } -#line 32124 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7191 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.type_handler)= &type_handler_short; } +#line 32179 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 955: -#line 7186 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.type_handler)= &type_handler_longlong; } -#line 32130 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7192 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.type_handler)= &type_handler_int24; } +#line 32185 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 956: -#line 7191 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7193 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.type_handler)= &type_handler_longlong; } +#line 32191 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 957: +#line 7198 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.type_handler)= thd->variables.sql_mode & MODE_REAL_AS_FLOAT ? static_cast(&type_handler_float) : static_cast(&type_handler_double); } -#line 32140 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32201 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 957: -#line 7196 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 958: +#line 7203 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.type_handler)= &type_handler_double; } -#line 32146 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32207 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 958: -#line 7197 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 959: +#line 7204 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.type_handler)= &type_handler_double; } -#line 32152 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32213 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 959: -#line 7202 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 960: +#line 7209 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->srid= 0; } -#line 32158 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32219 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 960: -#line 7205 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 961: +#line 7212 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->srid=atoi((yyvsp[0].lex_str).str); } -#line 32166 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 961: -#line 7211 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_length_and_dec).set(0, 0); } -#line 32172 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32227 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 962: -#line 7212 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_length_and_dec).set((yyvsp[0].const_simple_string), 0); } -#line 32178 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7218 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_length_and_dec).set(0, 0); } +#line 32233 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 963: -#line 7213 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_length_and_dec)= (yyvsp[0].Lex_length_and_dec); } -#line 32184 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7219 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_length_and_dec).set((yyvsp[0].const_simple_string), 0); } +#line 32239 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 964: -#line 7217 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_length_and_dec).set((yyvsp[-3].lex_str).str, (yyvsp[-1].lex_str).str); } -#line 32190 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7220 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_length_and_dec)= (yyvsp[0].Lex_length_and_dec); } +#line 32245 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 965: -#line 7221 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 32196 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7224 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_length_and_dec).set((yyvsp[-3].lex_str).str, (yyvsp[-1].lex_str).str); } +#line 32251 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 966: -#line 7222 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7228 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 32202 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32257 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 967: -#line 7223 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->last_field->flags|= UNSIGNED_FLAG;} -#line 32208 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7229 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {} +#line 32263 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 968: -#line 7224 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->last_field->flags|= UNSIGNED_FLAG | ZEROFILL_FLAG; } -#line 32214 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7230 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->last_field->flags|= UNSIGNED_FLAG;} +#line 32269 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 969: -#line 7225 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7231 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->flags|= UNSIGNED_FLAG | ZEROFILL_FLAG; } -#line 32220 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32275 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 970: -#line 7226 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7232 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->flags|= UNSIGNED_FLAG | ZEROFILL_FLAG; } -#line 32226 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32281 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 971: -#line 7230 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.const_simple_string)= (yyvsp[-1].lex_str).str; } -#line 32232 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7233 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->last_field->flags|= UNSIGNED_FLAG | ZEROFILL_FLAG; } +#line 32287 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 972: -#line 7231 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7237 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.const_simple_string)= (yyvsp[-1].lex_str).str; } -#line 32238 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32293 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 973: -#line 7232 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7238 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.const_simple_string)= (yyvsp[-1].lex_str).str; } -#line 32244 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32299 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 974: -#line 7233 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7239 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.const_simple_string)= (yyvsp[-1].lex_str).str; } -#line 32250 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32305 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 975: -#line 7236 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.const_simple_string)= (char*) 0; /* use default length */ } -#line 32256 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7240 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.const_simple_string)= (yyvsp[-1].lex_str).str; } +#line 32311 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 976: -#line 7237 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.const_simple_string)= (yyvsp[0].const_simple_string); } -#line 32262 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7244 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.const_simple_string)= (char*) 0; /* use default length */ } +#line 32317 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 977: -#line 7240 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.const_simple_string)= (char*) "1"; } -#line 32268 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7245 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.const_simple_string)= (yyvsp[0].const_simple_string); } +#line 32323 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 978: -#line 7241 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.const_simple_string)= (yyvsp[0].const_simple_string); } -#line 32274 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7249 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.const_simple_string)= (char*) "1"; } +#line 32329 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 979: -#line 7244 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_length_and_dec).set(0, 0); } -#line 32280 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7250 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.const_simple_string)= (yyvsp[0].const_simple_string); } +#line 32335 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 980: -#line 7245 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_length_and_dec)= (yyvsp[0].Lex_length_and_dec); } -#line 32286 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7254 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_length_and_dec).set(0, 0); } +#line 32341 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 981: -#line 7250 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7255 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_length_and_dec)= (yyvsp[0].Lex_length_and_dec); } +#line 32347 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 982: +#line 7260 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 32292 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32353 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 983: -#line 7255 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 984: +#line 7265 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->flags&= ~ NOT_NULL_FLAG; } -#line 32298 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32359 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 984: -#line 7256 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 985: +#line 7266 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->default_value= (yyvsp[0].virtual_column); } -#line 32304 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32365 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 985: -#line 7258 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 986: +#line 7268 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Item *item= new (thd->mem_root) Item_func_now_local(thd, (yyvsp[0].num)); if (unlikely(item == NULL)) MYSQL_YYABORT; Lex->last_field->on_update= item; } -#line 32315 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32376 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 986: -#line 7264 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 987: +#line 7274 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->flags|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG; } -#line 32321 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32382 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 987: -#line 7266 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 988: +#line 7276 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->last_field->flags|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNIQUE_KEY_FLAG; lex->alter_info.flags|= ALTER_ADD_INDEX; } -#line 32331 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32392 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 988: -#line 7272 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 989: +#line 7282 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->charset && !my_charset_same(Lex->charset,(yyvsp[0].charset)))) my_yyabort_error((ER_COLLATION_CHARSET_MISMATCH, MYF(0), (yyvsp[0].charset)->name,Lex->charset->csname)); Lex->last_field->charset= (yyvsp[0].charset); } -#line 32342 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32403 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 990: -#line 7282 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 991: +#line 7292 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.const_simple_string)= NULL; } -#line 32348 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32409 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 991: -#line 7283 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 992: +#line 7293 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.const_simple_string)= (yyvsp[0].ident_sys).str; } -#line 32354 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32415 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 992: -#line 7287 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 993: +#line 7297 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 32360 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32421 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 993: -#line 7288 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 994: +#line 7298 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 32366 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32427 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 994: -#line 7293 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 995: +#line 7303 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->last_field->set_compressed((yyvsp[0].const_simple_string)))) MYSQL_YYABORT; } -#line 32375 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32436 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 995: -#line 7301 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 996: +#line 7311 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->last_field->set_compressed_deprecated(thd, (yyvsp[0].const_simple_string)))) MYSQL_YYABORT; } -#line 32384 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32445 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 996: -#line 7309 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 997: +#line 7319 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->last_field-> set_compressed_deprecated_column_attribute(thd, (yyvsp[-1].kwd).pos(), (yyvsp[0].const_simple_string)))) MYSQL_YYABORT; } -#line 32394 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32455 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 997: -#line 7318 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 998: +#line 7328 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->flags|= NOT_NULL_FLAG; } -#line 32402 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32463 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 998: -#line 7322 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 999: +#line 7332 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->last_field->flags|= PRI_KEY_FLAG | NOT_NULL_FLAG; lex->alter_info.flags|= ALTER_ADD_INDEX; } -#line 32412 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32473 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1001: -#line 7333 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1002: +#line 7343 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[0].lex_str).length > ENGINE_OPTION_MAX_LENGTH)) my_yyabort_error((ER_VALUE_TOO_LONG, MYF(0), (yyvsp[-2].ident_sys).str)); @@ -32421,11 +32482,11 @@ &Lex->last_field->option_list, &Lex->option_list_last); } -#line 32425 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32486 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1002: -#line 7342 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1003: +#line 7352 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[0].ident_sys).length > ENGINE_OPTION_MAX_LENGTH)) my_yyabort_error((ER_VALUE_TOO_LONG, MYF(0), (yyvsp[-2].ident_sys).str)); @@ -32434,60 +32495,65 @@ &Lex->last_field->option_list, &Lex->option_list_last); } -#line 32438 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32499 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1003: -#line 7351 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1004: +#line 7361 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (void) new (thd->mem_root) engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].ulonglong_number), &Lex->last_field->option_list, &Lex->option_list_last, thd->mem_root); } -#line 32448 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32509 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1004: -#line 7357 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1005: +#line 7367 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (void) new (thd->mem_root) engine_option_value((yyvsp[-2].ident_sys), &Lex->last_field->option_list, &Lex->option_list_last); } -#line 32458 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32519 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1005: -#line 7363 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1006: +#line 7373 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->versioning= (yyvsp[-1].vers_column_versioning); Lex->create_info.options|= HA_VERSIONED_TABLE; + if (Lex->alter_info.flags & ALTER_DROP_SYSTEM_VERSIONING) + { + my_yyabort_error((ER_VERS_NOT_VERSIONED, MYF(0), + Lex->create_last_non_select_table->table_name.str)); + } } -#line 32467 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32533 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1006: -#line 7371 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1007: +#line 7386 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_COLUMN_UNVERSIONED; Lex->create_info.vers_info.versioned_fields= true; (yyval.vers_column_versioning)= Column_definition::WITH_VERSIONING; } -#line 32477 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32543 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1007: -#line 7377 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1008: +#line 7392 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_COLUMN_UNVERSIONED; Lex->create_info.vers_info.unversioned_fields= true; (yyval.vers_column_versioning)= Column_definition::WITHOUT_VERSIONING; } -#line 32487 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32553 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1008: -#line 7387 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1009: +#line 7402 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type)= (yyvsp[-1].Lex_field_type); @@ -32498,205 +32564,205 @@ } Lex->last_field->set_attributes((yyvsp[-1].Lex_field_type), Lex->charset); } -#line 32502 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32568 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1009: -#line 7400 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1010: +#line 7415 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 32508 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32574 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1010: -#line 7401 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1011: +#line 7416 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 32514 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32580 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1011: -#line 7406 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1012: +#line 7421 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.charset)=get_charset_by_csname((yyvsp[0].lex_str).str,MY_CS_PRIMARY,MYF(0))))) my_yyabort_error((ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[0].lex_str).str)); } -#line 32523 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32589 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1012: -#line 7410 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1013: +#line 7425 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.charset)= &my_charset_bin; } -#line 32529 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32595 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1013: -#line 7414 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1014: +#line 7429 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.charset)=(yyvsp[0].charset); } -#line 32535 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32601 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1014: -#line 7415 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1015: +#line 7430 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.charset)=NULL; } -#line 32541 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32607 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1015: -#line 7419 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1016: +#line 7434 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.charset)= NULL; } -#line 32547 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32613 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1016: -#line 7420 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1017: +#line 7435 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.charset)= (yyvsp[0].charset); } -#line 32553 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32619 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1017: -#line 7425 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1018: +#line 7440 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.charset)=get_charset_by_csname((yyvsp[0].lex_str).str, MY_CS_PRIMARY,MYF(0))) && !((yyval.charset)=get_old_charset_by_name((yyvsp[0].lex_str).str)))) my_yyabort_error((ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[0].lex_str).str)); } -#line 32564 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32630 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1018: -#line 7431 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1019: +#line 7446 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.charset)= &my_charset_bin; } -#line 32570 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32636 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1019: -#line 7435 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1020: +#line 7450 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.charset)=(yyvsp[0].charset); } -#line 32576 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32642 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1020: -#line 7436 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1021: +#line 7451 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.charset)=NULL; } -#line 32582 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32648 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1021: -#line 7441 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1022: +#line 7456 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.charset)= mysqld_collation_get_by_name((yyvsp[0].lex_str).str)))) MYSQL_YYABORT; } -#line 32591 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 1022: -#line 7448 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.charset)=NULL; } -#line 32597 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32657 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1023: -#line 7449 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.charset)=(yyvsp[0].charset); } -#line 32603 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7463 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.charset)=NULL; } +#line 32663 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1024: -#line 7453 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7464 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.charset)=(yyvsp[0].charset); } -#line 32609 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32669 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1025: -#line 7454 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.charset)=NULL; } -#line 32615 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7468 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.charset)=(yyvsp[0].charset); } +#line 32675 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1026: -#line 7458 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 32621 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7469 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.charset)=NULL; } +#line 32681 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1027: -#line 7459 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7473 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 32627 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32687 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1028: -#line 7463 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.charset)= (yyvsp[0].charset); } -#line 32633 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7474 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {} +#line 32693 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1029: -#line 7464 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.charset)= &my_charset_latin1; } -#line 32639 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7478 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.charset)= (yyvsp[0].charset); } +#line 32699 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1030: -#line 7466 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7479 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.charset)= &my_charset_latin1; } +#line 32705 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 1031: +#line 7481 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.charset)= get_charset_by_csname("ucs2", MY_CS_PRIMARY,MYF(0))))) my_yyabort_error((ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2")); } -#line 32648 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32714 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1031: -#line 7473 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1032: +#line 7488 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { bincmp_collation(NULL, false); } -#line 32654 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32720 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1032: -#line 7474 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1033: +#line 7489 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 32660 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32726 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1033: -#line 7478 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1034: +#line 7493 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { bincmp_collation(&my_charset_bin, false); } -#line 32666 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32732 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1034: -#line 7479 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1035: +#line 7494 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { bincmp_collation((yyvsp[-1].charset), (yyvsp[0].num)); } -#line 32672 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32738 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1035: -#line 7480 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1036: +#line 7495 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { bincmp_collation(NULL, true); } -#line 32678 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32744 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1036: -#line 7481 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1037: +#line 7496 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { bincmp_collation((yyvsp[0].charset), true); } -#line 32684 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32750 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1037: -#line 7485 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1038: +#line 7500 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= false; } -#line 32690 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32756 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1038: -#line 7486 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1039: +#line 7501 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= true; } -#line 32696 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32762 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1039: -#line 7491 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1040: +#line 7506 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[0].ulong_num) == 0)) { @@ -32704,148 +32770,148 @@ MYSQL_YYABORT; } } -#line 32708 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32774 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1040: -#line 7499 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1041: +#line 7514 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[-2].ulong_num); } -#line 32714 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32780 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1041: -#line 7503 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1042: +#line 7518 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= 0; } -#line 32720 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32786 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1042: -#line 7504 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1043: +#line 7519 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= 1 << MY_STRXFRM_DESC_SHIFT; } -#line 32726 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32792 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1043: -#line 7508 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1044: +#line 7523 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= 1 << MY_STRXFRM_REVERSE_SHIFT; } -#line 32732 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32798 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1044: -#line 7511 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1045: +#line 7526 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= 0; } -#line 32738 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32804 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1045: -#line 7512 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1046: +#line 7527 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[0].ulong_num); } -#line 32744 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32810 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1046: -#line 7513 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1047: +#line 7528 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[-1].ulong_num) | (yyvsp[0].ulong_num); } -#line 32750 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32816 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1047: -#line 7514 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1048: +#line 7529 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[0].ulong_num) ; } -#line 32756 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32822 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1048: -#line 7519 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1049: +#line 7534 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[0].ulong_num) < 1 ? 1 : ((yyvsp[0].ulong_num) > MY_STRXFRM_NLEVELS ? MY_STRXFRM_NLEVELS : (yyvsp[0].ulong_num)); (yyval.ulong_num)--; } -#line 32765 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32831 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1049: -#line 7527 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1050: +#line 7542 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (1 | (yyvsp[0].ulong_num)) << (yyvsp[-1].ulong_num); } -#line 32773 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32839 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1050: -#line 7533 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1051: +#line 7548 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[0].ulong_num); } -#line 32779 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32845 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1051: -#line 7534 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1052: +#line 7549 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)|= (yyvsp[0].ulong_num); } -#line 32785 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32851 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1052: -#line 7539 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1053: +#line 7554 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { uint start= (yyvsp[-2].ulong_num); uint end= (yyvsp[0].ulong_num); for ((yyval.ulong_num)= 0; start <= end; start++) (yyval.ulong_num)|= (1 << start); } -#line 32796 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32862 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1053: -#line 7548 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1054: +#line 7563 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[0].ulong_num); } -#line 32802 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32868 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1054: -#line 7549 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1055: +#line 7564 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[0].ulong_num); } -#line 32808 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32874 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1055: -#line 7553 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1056: +#line 7568 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= 0; } -#line 32814 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32880 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1056: -#line 7554 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1057: +#line 7569 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[0].ulong_num); } -#line 32820 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32886 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1059: -#line 7568 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1060: +#line 7583 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.table)=(yyvsp[-3].table); } -#line 32828 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32894 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1060: -#line 7575 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1061: +#line 7590 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ref_list.empty(); } -#line 32834 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32900 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1062: -#line 7581 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1063: +#line 7596 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Key_part_spec *key= new (thd->mem_root) Key_part_spec(&(yyvsp[0].ident_sys), 0); if (unlikely(key == NULL)) MYSQL_YYABORT; Lex->ref_list.push_back(key, thd->mem_root); } -#line 32845 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32911 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1063: -#line 7588 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1064: +#line 7603 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Key_part_spec *key= new (thd->mem_root) Key_part_spec(&(yyvsp[0].ident_sys), 0); if (unlikely(key == NULL)) @@ -32854,181 +32920,181 @@ lex->ref_list.empty(); lex->ref_list.push_back(key, thd->mem_root); } -#line 32858 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32924 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1064: -#line 7600 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1065: +#line 7615 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->fk_match_option= Foreign_key::FK_MATCH_UNDEF; } -#line 32864 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32930 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1065: -#line 7602 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1066: +#line 7617 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->fk_match_option= Foreign_key::FK_MATCH_FULL; } -#line 32870 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32936 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1066: -#line 7604 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1067: +#line 7619 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->fk_match_option= Foreign_key::FK_MATCH_PARTIAL; } -#line 32876 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32942 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1067: -#line 7606 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1068: +#line 7621 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->fk_match_option= Foreign_key::FK_MATCH_SIMPLE; } -#line 32882 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32948 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1068: -#line 7611 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1069: +#line 7626 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->fk_update_opt= FK_OPTION_UNDEF; lex->fk_delete_opt= FK_OPTION_UNDEF; } -#line 32892 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32958 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1069: -#line 7617 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1070: +#line 7632 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->fk_update_opt= (yyvsp[0].m_fk_option); lex->fk_delete_opt= FK_OPTION_UNDEF; } -#line 32902 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32968 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1070: -#line 7623 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1071: +#line 7638 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->fk_update_opt= FK_OPTION_UNDEF; lex->fk_delete_opt= (yyvsp[0].m_fk_option); } -#line 32912 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32978 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1071: -#line 7630 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1072: +#line 7645 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->fk_update_opt= (yyvsp[-3].m_fk_option); lex->fk_delete_opt= (yyvsp[0].m_fk_option); } -#line 32922 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32988 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1072: -#line 7637 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1073: +#line 7652 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->fk_update_opt= (yyvsp[0].m_fk_option); lex->fk_delete_opt= (yyvsp[-3].m_fk_option); } -#line 32932 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 1073: -#line 7645 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.m_fk_option)= FK_OPTION_RESTRICT; } -#line 32938 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 32998 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1074: -#line 7646 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.m_fk_option)= FK_OPTION_CASCADE; } -#line 32944 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7660 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.m_fk_option)= FK_OPTION_RESTRICT; } +#line 33004 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1075: -#line 7647 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.m_fk_option)= FK_OPTION_SET_NULL; } -#line 32950 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7661 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.m_fk_option)= FK_OPTION_CASCADE; } +#line 33010 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1076: -#line 7648 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.m_fk_option)= FK_OPTION_NO_ACTION; } -#line 32956 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7662 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.m_fk_option)= FK_OPTION_SET_NULL; } +#line 33016 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1077: -#line 7649 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.m_fk_option)= FK_OPTION_SET_DEFAULT; } -#line 32962 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7663 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.m_fk_option)= FK_OPTION_NO_ACTION; } +#line 33022 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1078: -#line 7653 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.key_type)= Key::PRIMARY; } -#line 32968 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7664 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.m_fk_option)= FK_OPTION_SET_DEFAULT; } +#line 33028 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1079: -#line 7654 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.key_type)= Key::UNIQUE; } -#line 32974 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7668 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.key_type)= Key::PRIMARY; } +#line 33034 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1080: -#line 7658 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 32980 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7669 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.key_type)= Key::UNIQUE; } +#line 33040 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1081: -#line 7659 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7673 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 32986 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33046 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1082: -#line 7663 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7674 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 32992 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33052 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1084: -#line 7668 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1083: +#line 7678 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 32998 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33058 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1085: -#line 7669 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7683 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 33004 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33064 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1086: -#line 7670 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7684 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 33010 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33070 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1087: -#line 7674 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.key_type)= Key::MULTIPLE; } -#line 33016 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7685 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {} +#line 33076 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1088: -#line 7675 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.key_type)= Key::UNIQUE; } -#line 33022 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7689 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.key_type)= Key::MULTIPLE; } +#line 33082 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1089: -#line 7679 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.key_type)= Key::FULLTEXT;} -#line 33028 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7690 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.key_type)= Key::UNIQUE; } +#line 33088 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1090: -#line 7684 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7694 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.key_type)= Key::FULLTEXT;} +#line 33094 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 1091: +#line 7699 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { #ifdef HAVE_SPATIAL (yyval.key_type)= Key::SPATIAL; @@ -33037,104 +33103,104 @@ sym_group_geom.needed_define)); #endif } -#line 33041 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33107 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1091: -#line 7695 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1092: +#line 7710 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 33047 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33113 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1092: -#line 7696 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1093: +#line 7711 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_key->option_list= Lex->option_list; } -#line 33053 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33119 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1093: -#line 7700 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1094: +#line 7715 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 33059 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33125 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1094: -#line 7701 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1095: +#line 7716 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_key->option_list= Lex->option_list; } -#line 33065 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33131 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1095: -#line 7705 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1096: +#line 7720 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 33071 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33137 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1096: -#line 7706 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1097: +#line 7721 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_key->option_list= Lex->option_list; } -#line 33077 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 1103: -#line 7725 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.key_alg)= HA_KEY_ALG_UNDEF; } -#line 33083 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33143 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1104: -#line 7726 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.key_alg)= (yyvsp[0].key_alg); } -#line 33089 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7740 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.key_alg)= HA_KEY_ALG_UNDEF; } +#line 33149 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1105: -#line 7730 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.key_alg)= HA_KEY_ALG_UNDEF; } -#line 33095 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7741 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.key_alg)= (yyvsp[0].key_alg); } +#line 33155 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1106: -#line 7731 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.key_alg)= (yyvsp[0].key_alg); } -#line 33101 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7746 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.key_alg)= HA_KEY_ALG_UNDEF; } +#line 33161 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1107: -#line 7732 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7747 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.key_alg)= (yyvsp[0].key_alg); } -#line 33107 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33167 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1108: -#line 7736 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->last_key->key_create_info.algorithm= (yyvsp[0].key_alg); } -#line 33113 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 7748 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.key_alg)= (yyvsp[0].key_alg); } +#line 33173 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1109: -#line 7738 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7753 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_key->key_create_info.algorithm= (yyvsp[0].key_alg); } -#line 33119 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33179 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1110: -#line 7743 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 7755 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->last_key->key_create_info.algorithm= (yyvsp[0].key_alg); } +#line 33185 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 1111: +#line 7760 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_key->key_create_info.block_size= (yyvsp[0].ulong_num); Lex->last_key->key_create_info.flags|= HA_USES_BLOCK_SIZE; } -#line 33128 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33194 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1111: -#line 7748 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1112: +#line 7765 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_key->key_create_info.comment= (yyvsp[0].lex_str); } -#line 33134 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33200 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1112: -#line 7750 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1113: +#line 7767 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[0].lex_str).length > ENGINE_OPTION_MAX_LENGTH)) my_yyabort_error((ER_VALUE_TOO_LONG, MYF(0), (yyvsp[-2].ident_sys).str)); @@ -33142,11 +33208,11 @@ engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].lex_str), true, &Lex->option_list, &Lex->option_list_last); } -#line 33146 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33212 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1113: -#line 7758 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1114: +#line 7775 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[0].ident_sys).length > ENGINE_OPTION_MAX_LENGTH)) my_yyabort_error((ER_VALUE_TOO_LONG, MYF(0), (yyvsp[-2].ident_sys).str)); @@ -33154,86 +33220,86 @@ engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].ident_sys), false, &Lex->option_list, &Lex->option_list_last); } -#line 33158 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33224 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1114: -#line 7766 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1115: +#line 7783 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (void) new (thd->mem_root) engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].ulonglong_number), &Lex->option_list, &Lex->option_list_last, thd->mem_root); } -#line 33168 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33234 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1115: -#line 7772 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1116: +#line 7789 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (void) new (thd->mem_root) engine_option_value((yyvsp[-2].ident_sys), &Lex->option_list, &Lex->option_list_last); } -#line 33178 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33244 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1120: -#line 7791 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1121: +#line 7808 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (likely(plugin_is_ready(&(yyvsp[0].ident_sys), MYSQL_FTPARSER_PLUGIN))) Lex->last_key->key_create_info.parser_name= (yyvsp[0].ident_sys); else my_yyabort_error((ER_FUNCTION_NOT_DEFINED, MYF(0), (yyvsp[0].ident_sys).str)); } -#line 33189 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33255 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1121: -#line 7800 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1122: +#line 7817 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.key_alg)= HA_KEY_ALG_BTREE; } -#line 33195 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33261 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1122: -#line 7801 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1123: +#line 7818 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.key_alg)= HA_KEY_ALG_RTREE; } -#line 33201 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33267 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1123: -#line 7802 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1124: +#line 7819 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.key_alg)= HA_KEY_ALG_HASH; } -#line 33207 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33273 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1124: -#line 7807 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1125: +#line 7824 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_key->columns.push_back((yyvsp[-1].key_part), thd->mem_root); } -#line 33215 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33281 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1125: -#line 7811 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1126: +#line 7828 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_key->columns.push_back((yyvsp[-1].key_part), thd->mem_root); } -#line 33223 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33289 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1126: -#line 7818 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1127: +#line 7835 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.key_part)= new (thd->mem_root) Key_part_spec(&(yyvsp[0].ident_sys), 0); if (unlikely((yyval.key_part) == NULL)) MYSQL_YYABORT; } -#line 33233 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33299 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1127: -#line 7824 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1128: +#line 7841 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { int key_part_len= atoi((yyvsp[-1].lex_str).str); if (unlikely(!key_part_len)) @@ -33242,35 +33308,35 @@ if (unlikely((yyval.key_part) == NULL)) MYSQL_YYABORT; } -#line 33246 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33312 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1128: -#line 7835 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1129: +#line 7852 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str)= null_clex_str; } -#line 33252 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33318 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1129: -#line 7836 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1130: +#line 7853 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str)= (yyvsp[0].lex_str); } -#line 33258 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33324 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1130: -#line 7841 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1131: +#line 7858 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->interval_list.push_back((yyvsp[0].string), thd->mem_root); } -#line 33264 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33330 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1131: -#line 7843 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1132: +#line 7860 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_field->interval_list.push_back((yyvsp[0].string), thd->mem_root); } -#line 33270 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33336 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1132: -#line 7851 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1133: +#line 7869 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->name= null_clex_str; Lex->table_type= TABLE_TYPE_UNKNOWN; @@ -33284,11 +33350,11 @@ Lex->create_info.storage_media= HA_SM_DEFAULT; DBUG_ASSERT(!Lex->m_sql_cmd); } -#line 33288 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33354 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1133: -#line 7865 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1134: +#line 7883 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!Lex->select_lex.add_table_to_list(thd, (yyvsp[-1].table), NULL, TL_OPTION_UPDATING, @@ -33297,12 +33363,13 @@ MYSQL_YYABORT; Lex->select_lex.db= (Lex->select_lex.table_list.first)->db; Lex->create_last_non_select_table= Lex->last_table(); + Lex->mark_first_table_as_inserting(); } -#line 33302 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33369 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1134: -#line 7875 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1135: +#line 7894 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (likely(!Lex->m_sql_cmd)) { @@ -33312,20 +33379,20 @@ MYSQL_YYABORT; } } -#line 33316 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33383 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1135: -#line 7885 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1136: +#line 7904 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.default_table_charset= NULL; Lex->create_info.used_fields= 0; } -#line 33325 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33392 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1136: -#line 7890 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1137: +#line 7909 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command=SQLCOM_ALTER_DB; @@ -33334,11 +33401,11 @@ unlikely(lex->copy_db_to(&lex->name))) MYSQL_YYABORT; } -#line 33338 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33405 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1137: -#line 7899 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1138: +#line 7918 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->sphead)) @@ -33346,11 +33413,11 @@ lex->sql_command= SQLCOM_ALTER_DB_UPGRADE; lex->name= (yyvsp[-4].ident_sys); } -#line 33350 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33417 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1138: -#line 7907 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1139: +#line 7926 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; @@ -33358,22 +33425,22 @@ my_yyabort_error((ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE")); lex->sp_chistics.init(); } -#line 33362 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33429 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1139: -#line 7915 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1140: +#line 7934 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_ALTER_PROCEDURE; lex->spname= (yyvsp[-2].spname); } -#line 33373 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33440 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1140: -#line 7922 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1141: +#line 7941 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; @@ -33381,52 +33448,52 @@ my_yyabort_error((ER_SP_NO_DROP_SP, MYF(0), "FUNCTION")); lex->sp_chistics.init(); } -#line 33385 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33452 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1141: -#line 7930 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1142: +#line 7949 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_ALTER_FUNCTION; lex->spname= (yyvsp[-2].spname); } -#line 33396 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33463 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1142: -#line 7937 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1143: +#line 7956 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_alter_view(thd, (yyvsp[-4].num), (yyvsp[-2].view_suid), (yyvsp[0].table)))) MYSQL_YYABORT; } -#line 33405 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33472 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1143: -#line 7942 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1144: +#line 7961 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 33411 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33478 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1144: -#line 7949 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1145: +#line 7968 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_alter_view(thd, VIEW_ALGORITHM_INHERIT, (yyvsp[-2].view_suid), (yyvsp[0].table)))) MYSQL_YYABORT; } -#line 33420 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33487 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1145: -#line 7954 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1146: +#line 7973 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 33426 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33493 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1146: -#line 7956 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1147: +#line 7975 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* It is safe to use Lex->spname because @@ -33443,11 +33510,11 @@ Lex->sql_command= SQLCOM_ALTER_EVENT; Lex->stmt_definition_begin= (yyvsp[-2].simple_string); } -#line 33447 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33514 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1147: -#line 7977 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1148: +#line 7996 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyvsp[-4].num) || (yyvsp[-3].num) || (yyvsp[-2].num) || (yyvsp[-1].num) || (yyvsp[0].num)))) { @@ -33461,72 +33528,72 @@ Lex->sql_command= SQLCOM_ALTER_EVENT; Lex->stmt_definition_end= (char*)YYLIP->get_cpp_ptr(); } -#line 33465 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33532 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1148: -#line 7991 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1149: +#line 8010 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= ALTER_TABLESPACE; } -#line 33474 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33541 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1149: -#line 7996 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1150: +#line 8015 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= ALTER_LOGFILE_GROUP; } -#line 33483 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33550 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1150: -#line 8001 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1151: +#line 8020 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= CHANGE_FILE_TABLESPACE; } -#line 33492 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33559 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1151: -#line 8006 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1152: +#line 8025 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= ALTER_ACCESS_MODE_TABLESPACE; } -#line 33501 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33568 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1152: -#line 8011 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1153: +#line 8030 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_ALTER_SERVER; lex->server_options.reset((yyvsp[0].lex_str)); } -#line 33511 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33578 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1153: -#line 8015 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1154: +#line 8034 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 33517 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33584 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1154: -#line 8019 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1155: +#line 8038 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.set((yyvsp[-5].object_ddl_options)); Lex->sql_command= SQLCOM_ALTER_USER; } -#line 33526 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33593 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1155: -#line 8024 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1156: +#line 8043 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->name= null_clex_str; @@ -33536,11 +33603,11 @@ lex->no_write_to_binlog= 0; DBUG_ASSERT(!lex->m_sql_cmd); } -#line 33540 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33607 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1156: -#line 8034 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1157: +#line 8053 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(!(lex->create_info.seq_create_info= @@ -33551,52 +33618,52 @@ MDL_EXCLUSIVE))) MYSQL_YYABORT; } -#line 33555 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33622 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1157: -#line 8045 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1158: +#line 8064 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Create a generic ALTER SEQUENCE statment. */ Lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_alter_sequence((yyvsp[-4].object_ddl_options)); if (unlikely(Lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 33566 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 1158: -#line 8054 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.num)= 0;} -#line 33572 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33633 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1159: -#line 8055 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.num)= 1; } -#line 33578 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 8073 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.num)= 0;} +#line 33639 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1160: -#line 8056 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 8074 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 33584 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33645 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1161: -#line 8057 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 8075 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 33590 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33651 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1162: -#line 8061 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.num)= 0;} -#line 33596 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 8076 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.num)= 1; } +#line 33657 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1163: -#line 8063 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 8080 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.num)= 0;} +#line 33663 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 1164: +#line 8082 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Use lex's spname to hold the new name. @@ -33605,29 +33672,29 @@ Lex->spname= (yyvsp[0].spname); (yyval.num)= 1; } -#line 33609 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33676 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1164: -#line 8074 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1165: +#line 8093 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 0;} -#line 33615 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33682 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1165: -#line 8075 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1166: +#line 8094 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 33621 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33688 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1166: -#line 8079 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1167: +#line 8098 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ident_sys)= Lex_ident_sys(); } -#line 33627 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33694 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1169: -#line 8086 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1170: +#line 8105 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_discard_import_tablespace( @@ -33635,11 +33702,11 @@ if (unlikely(Lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 33639 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33706 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1170: -#line 8094 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1171: +#line 8113 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_discard_import_tablespace( @@ -33647,31 +33714,31 @@ if (unlikely(Lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 33651 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33718 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1176: -#line 8116 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1177: +#line 8135 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.partition_flags|= ALTER_PARTITION_DROP; DBUG_ASSERT(!Lex->if_exists()); Lex->create_info.add((yyvsp[-1].object_ddl_options)); } -#line 33661 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33728 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1177: -#line 8123 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1178: +#line 8142 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_info.partition_flags|= ALTER_PARTITION_REBUILD; lex->no_write_to_binlog= (yyvsp[-1].num); } -#line 33671 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33738 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1178: -#line 8130 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1179: +#line 8149 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; lex->no_write_to_binlog= (yyvsp[-1].num); @@ -33682,11 +33749,11 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 33686 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33753 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1180: -#line 8143 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1181: +#line 8162 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; lex->no_write_to_binlog= (yyvsp[-1].num); @@ -33697,11 +33764,11 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 33701 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33768 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1181: -#line 8154 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1182: +#line 8173 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; lex->check_opt.init(); @@ -33711,11 +33778,11 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 33715 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33782 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1183: -#line 8166 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1184: +#line 8185 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; lex->no_write_to_binlog= (yyvsp[-1].num); @@ -33726,22 +33793,22 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 33730 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33797 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1185: -#line 8178 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1186: +#line 8197 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_info.partition_flags|= ALTER_PARTITION_COALESCE; lex->no_write_to_binlog= (yyvsp[-1].num); lex->alter_info.num_parts= (yyvsp[0].ulong_num); } -#line 33741 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33808 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1186: -#line 8185 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1187: +#line 8204 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; lex->check_opt.init(); @@ -33751,11 +33818,11 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 33755 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33822 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1188: -#line 8197 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1189: +#line 8216 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; lex->select_lex.db= (yyvsp[-1].table)->db; @@ -33775,27 +33842,27 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 33779 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33846 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1189: -#line 8220 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1190: +#line 8239 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.partition_flags|= ALTER_PARTITION_REMOVE; } -#line 33787 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33854 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1190: -#line 8227 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1191: +#line 8246 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.partition_flags|= ALTER_PARTITION_ALL; } -#line 33795 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33862 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1192: -#line 8236 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1193: +#line 8255 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->part_info= new (thd->mem_root) partition_info(); @@ -33807,34 +33874,34 @@ lex->create_info.set((yyvsp[-1].object_ddl_options)); lex->no_write_to_binlog= (yyvsp[0].num); } -#line 33811 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33878 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1193: -#line 8248 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1194: +#line 8267 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 33817 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33884 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1195: -#line 8254 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1196: +#line 8273 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->part_info->num_parts= lex->part_info->partitions.elements; } -#line 33826 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33893 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1196: -#line 8259 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1197: +#line 8278 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->part_info->num_parts= (yyvsp[0].ulong_num); } -#line 33834 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33901 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1197: -#line 8266 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1198: +#line 8285 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->part_info= new (thd->mem_root) partition_info(); @@ -33843,136 +33910,136 @@ lex->no_write_to_binlog= (yyvsp[0].num); } -#line 33847 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33914 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1199: -#line 8279 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1200: +#line 8298 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.partition_flags|= ALTER_PARTITION_TABLE_REORG; } -#line 33855 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33922 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1200: -#line 8283 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1201: +#line 8302 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.partition_flags|= ALTER_PARTITION_REORGANIZE; } -#line 33863 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33930 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1201: -#line 8287 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1202: +#line 8306 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; part_info->num_parts= part_info->partitions.elements; } -#line 33872 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33939 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1202: -#line 8294 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1203: +#line 8313 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 33878 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33945 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1203: -#line 8295 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1204: +#line 8314 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 33884 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33951 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1204: -#line 8300 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1205: +#line 8319 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->alter_info.partition_names.push_back((yyvsp[0].ident_sys).str, thd->mem_root))) MYSQL_YYABORT; } -#line 33894 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33961 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1208: -#line 8322 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1209: +#line 8341 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->create_last_non_select_table= lex->last_table(); lex->alter_info.flags|= ALTER_PARSER_ADD_COLUMN; (yyvsp[-1].create_field)->after= (yyvsp[0].lex_str); } -#line 33905 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33972 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1209: -#line 8329 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1210: +#line 8348 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_last_non_select_table= Lex->last_table(); Lex->alter_info.flags|= ALTER_ADD_INDEX; } -#line 33914 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33981 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1210: -#line 8334 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1211: +#line 8353 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_ADD_PERIOD; } -#line 33922 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 33989 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1211: -#line 8338 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1212: +#line 8357 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->alter_info.flags|= ALTER_PARSER_ADD_COLUMN; if (!lex->alter_info.key_list.is_empty()) lex->alter_info.flags|= ALTER_ADD_INDEX; } -#line 33933 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34000 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1212: -#line 8345 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1213: +#line 8364 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_ADD_CHECK_CONSTRAINT; } -#line 33941 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34008 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1213: -#line 8349 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1214: +#line 8368 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_ADD_CHECK_CONSTRAINT; Lex->add_constraint(&(yyvsp[-1].lex_str), (yyvsp[0].virtual_column), TRUE); } -#line 33950 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34017 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1214: -#line 8355 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1215: +#line 8374 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_CHANGE_COLUMN | ALTER_RENAME_COLUMN; Lex->create_last_non_select_table= Lex->last_table(); (yyvsp[-1].create_field)->change= (yyvsp[-2].lex_str); (yyvsp[-1].create_field)->after= (yyvsp[0].lex_str); } -#line 33961 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34028 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1215: -#line 8363 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1216: +#line 8382 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_CHANGE_COLUMN; Lex->create_last_non_select_table= Lex->last_table(); (yyvsp[-1].create_field)->change= (yyvsp[-1].create_field)->field_name; (yyvsp[-1].create_field)->after= (yyvsp[0].lex_str); } -#line 33972 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34039 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1216: -#line 8370 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1217: +#line 8389 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; Alter_drop *ad= (new (thd->mem_root) @@ -33982,11 +34049,11 @@ lex->alter_info.drop_list.push_back(ad, thd->mem_root); lex->alter_info.flags|= ALTER_PARSER_DROP_COLUMN; } -#line 33986 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34053 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1217: -#line 8380 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1218: +#line 8399 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; Alter_drop *ad= (new (thd->mem_root) @@ -33997,11 +34064,11 @@ lex->alter_info.drop_list.push_back(ad, thd->mem_root); lex->alter_info.flags|= ALTER_DROP_CHECK_CONSTRAINT; } -#line 34001 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34068 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1218: -#line 8391 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1219: +#line 8410 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; Alter_drop *ad= (new (thd->mem_root) @@ -34011,11 +34078,11 @@ lex->alter_info.drop_list.push_back(ad, thd->mem_root); lex->alter_info.flags|= ALTER_DROP_FOREIGN_KEY; } -#line 34015 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34082 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1219: -#line 8401 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1220: +#line 8420 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; Alter_drop *ad= (new (thd->mem_root) @@ -34026,11 +34093,11 @@ lex->alter_info.drop_list.push_back(ad, thd->mem_root); lex->alter_info.flags|= ALTER_DROP_INDEX; } -#line 34030 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34097 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1220: -#line 8412 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1221: +#line 8431 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; Alter_drop *ad= (new (thd->mem_root) @@ -34040,50 +34107,50 @@ lex->alter_info.drop_list.push_back(ad, thd->mem_root); lex->alter_info.flags|= ALTER_DROP_INDEX; } -#line 34044 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34111 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1221: -#line 8422 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1222: +#line 8441 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->alter_info.keys_onoff= Alter_info::DISABLE; lex->alter_info.flags|= ALTER_KEYS_ONOFF; } -#line 34054 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34121 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1222: -#line 8428 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1223: +#line 8447 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->alter_info.keys_onoff= Alter_info::ENABLE; lex->alter_info.flags|= ALTER_KEYS_ONOFF; } -#line 34064 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34131 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1223: -#line 8434 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1224: +#line 8453 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_alter_list((yyvsp[-3].lex_str).str, (yyvsp[0].virtual_column), (yyvsp[-4].num)))) MYSQL_YYABORT; } -#line 34073 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34140 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1224: -#line 8439 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1225: +#line 8458 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_alter_list((yyvsp[-2].lex_str).str, (Virtual_column_info*) 0, (yyvsp[-3].num)))) MYSQL_YYABORT; } -#line 34083 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34150 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1225: -#line 8445 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1226: +#line 8464 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->select_lex.db= (yyvsp[0].table)->db; @@ -34097,11 +34164,11 @@ lex->name= (yyvsp[0].table)->table; lex->alter_info.flags|= ALTER_RENAME; } -#line 34101 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34168 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1226: -#line 8459 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1227: +#line 8478 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (!(yyvsp[-1].charset)) { @@ -34115,266 +34182,267 @@ MYSQL_YYABORT; Lex->alter_info.flags|= ALTER_OPTIONS; } -#line 34119 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34186 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1227: -#line 8473 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1228: +#line 8492 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->alter_info.flags|= ALTER_OPTIONS; } -#line 34128 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34195 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1228: -#line 8478 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1229: +#line 8497 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_RECREATE; } -#line 34136 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34203 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1229: -#line 8482 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1230: +#line 8501 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->alter_info.flags|= ALTER_ORDER; } -#line 34145 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34212 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1232: -#line 8489 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1233: +#line 8508 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_ADD_SYSTEM_VERSIONING; Lex->create_info.options|= HA_VERSIONED_TABLE; } -#line 34154 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34221 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1233: -#line 8494 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1234: +#line 8513 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_DROP_SYSTEM_VERSIONING; + Lex->create_info.options&= ~HA_VERSIONED_TABLE; } -#line 34162 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34230 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1234: -#line 8498 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1235: +#line 8518 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_DROP_PERIOD; } -#line 34170 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34238 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1240: -#line 8512 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1241: +#line 8533 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.requested_algorithm= Alter_info::ALTER_TABLE_ALGORITHM_DEFAULT; } -#line 34179 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34247 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1241: -#line 8517 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1242: +#line 8538 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->alter_info.set_requested_algorithm(&(yyvsp[0].ident_sys)))) my_yyabort_error((ER_UNKNOWN_ALTER_ALGORITHM, MYF(0), (yyvsp[0].ident_sys).str)); } -#line 34188 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34256 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1242: -#line 8525 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1243: +#line 8546 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.requested_lock= Alter_info::ALTER_TABLE_LOCK_DEFAULT; } -#line 34197 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34265 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1243: -#line 8530 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1244: +#line 8551 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->alter_info.set_requested_lock(&(yyvsp[0].ident_sys)))) my_yyabort_error((ER_UNKNOWN_ALTER_LOCK, MYF(0), (yyvsp[0].ident_sys).str)); } -#line 34206 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34274 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1244: -#line 8537 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1245: +#line 8558 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34212 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34280 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1245: -#line 8538 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1246: +#line 8559 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34218 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34286 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1246: -#line 8542 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1247: +#line 8563 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ignore= 0;} -#line 34224 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34292 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1247: -#line 8543 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1248: +#line 8564 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ignore= 1;} -#line 34230 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34298 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1248: -#line 8547 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1249: +#line 8568 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ignore= 0;} -#line 34236 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34304 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1254: -#line 8561 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1255: +#line 8582 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ignore= 1;} -#line 34242 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34310 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1255: -#line 8563 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1256: +#line 8584 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.requested_lock= Alter_info::ALTER_TABLE_LOCK_NONE; } -#line 34251 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34319 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1256: -#line 8570 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1257: +#line 8592 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->drop_mode= DROP_DEFAULT; } -#line 34257 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34325 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1257: -#line 8571 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1258: +#line 8593 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->drop_mode= DROP_RESTRICT; } -#line 34263 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34331 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1258: -#line 8572 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1259: +#line 8594 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->drop_mode= DROP_CASCADE; } -#line 34269 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34337 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1259: -#line 8576 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1260: +#line 8598 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str)= null_clex_str; } -#line 34275 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34343 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1260: -#line 8578 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1261: +#line 8600 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str)= (yyvsp[0].ident_sys); Lex->alter_info.flags |= ALTER_COLUMN_ORDER; } -#line 34284 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34352 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1261: -#line 8583 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1262: +#line 8605 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str).str= first_keyword; (yyval.lex_str).length= 5; /* Length of "first" */ Lex->alter_info.flags |= ALTER_COLUMN_ORDER; } -#line 34294 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 1262: -#line 8591 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 34300 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34362 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1263: -#line 8592 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 8613 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34306 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34368 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1264: -#line 8593 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 8614 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34312 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34374 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1265: -#line 8594 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 8615 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34318 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34380 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1266: -#line 8599 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 8616 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {} +#line 34386 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 1267: +#line 8621 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_SLAVE_START; lex->type = 0; /* If you change this code don't forget to update SLAVE START too */ } -#line 34329 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34397 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1267: -#line 8606 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1268: +#line 8628 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34335 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34403 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1268: -#line 8608 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1269: +#line 8630 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_SLAVE_ALL_START; lex->type = 0; /* If you change this code don't forget to update STOP SLAVE too */ } -#line 34346 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34414 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1269: -#line 8614 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1270: +#line 8636 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34352 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34420 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1270: -#line 8616 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1271: +#line 8638 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_SLAVE_STOP; lex->type = 0; /* If you change this code don't forget to update SLAVE STOP too */ } -#line 34363 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34431 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1271: -#line 8623 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1272: +#line 8645 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_SLAVE_ALL_STOP; lex->type = 0; /* If you change this code don't forget to update SLAVE STOP too */ } -#line 34374 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34442 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1272: -#line 8633 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1273: +#line 8655 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_BEGIN; @@ -34387,103 +34455,103 @@ } lex->start_transaction_opt= (yyvsp[0].num); } -#line 34391 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34459 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1273: -#line 8649 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1274: +#line 8671 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 34399 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34467 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1274: -#line 8653 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1275: +#line 8675 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= (yyvsp[0].num); } -#line 34407 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34475 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1275: -#line 8660 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1276: +#line 8682 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= (yyvsp[0].num); } -#line 34415 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34483 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1276: -#line 8664 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1277: +#line 8686 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= (yyvsp[-2].num) | (yyvsp[0].num); } -#line 34423 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34491 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1277: -#line 8671 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1278: +#line 8693 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= MYSQL_START_TRANS_OPT_WITH_CONS_SNAPSHOT; } -#line 34431 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34499 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1278: -#line 8675 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1279: +#line 8697 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= MYSQL_START_TRANS_OPT_READ_ONLY; } -#line 34439 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34507 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1279: -#line 8679 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1280: +#line 8701 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= MYSQL_START_TRANS_OPT_READ_WRITE; } -#line 34447 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34515 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1280: -#line 8685 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1281: +#line 8707 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->slave_thd_opt= 0; } -#line 34453 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34521 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1281: -#line 8687 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1282: +#line 8709 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34459 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34527 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1284: -#line 8696 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1285: +#line 8718 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34465 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34533 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1285: -#line 8697 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1286: +#line 8719 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->slave_thd_opt|=SLAVE_SQL; } -#line 34471 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34539 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1286: -#line 8698 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1287: +#line 8720 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->slave_thd_opt|=SLAVE_IO; } -#line 34477 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34545 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1287: -#line 8702 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1288: +#line 8724 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34483 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34551 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1288: -#line 8704 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1289: +#line 8726 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(((lex->mi.log_file_name || lex->mi.pos) && @@ -34492,60 +34560,60 @@ (lex->mi.relay_log_name && lex->mi.relay_log_pos)))) my_yyabort_error((ER_BAD_SLAVE_UNTIL_COND, MYF(0))); } -#line 34496 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34564 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1289: -#line 8713 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1290: +#line 8735 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->mi.gtid_pos_str = (yyvsp[0].lex_str); } -#line 34504 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34572 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1292: -#line 8725 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1293: +#line 8747 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_CHECKSUM; /* Will be overridden during execution. */ YYPS->m_lock_type= TL_UNLOCK; } -#line 34515 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34583 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1293: -#line 8732 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1294: +#line 8754 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34521 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34589 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1294: -#line 8736 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1295: +#line 8758 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->check_opt.flags= 0; } -#line 34527 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34595 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1295: -#line 8737 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1296: +#line 8759 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->check_opt.flags= T_QUICK; } -#line 34533 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34601 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1296: -#line 8738 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1297: +#line 8760 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->check_opt.flags= T_EXTEND; } -#line 34539 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34607 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1298: -#line 8744 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1299: +#line 8766 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->table_type= TABLE_TYPE_VIEW; } -#line 34545 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34613 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1300: -#line 8750 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1301: +#line 8772 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_REPAIR; @@ -34555,11 +34623,11 @@ /* Will be overridden during execution. */ YYPS->m_lock_type= TL_UNLOCK; } -#line 34559 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34627 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1301: -#line 8760 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1302: +#line 8782 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX* lex= thd->lex; DBUG_ASSERT(!lex->m_sql_cmd); @@ -34567,65 +34635,65 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 34571 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 1302: -#line 8770 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->check_opt.flags = T_MEDIUM; } -#line 34577 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34639 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1303: -#line 8771 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 34583 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 8792 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->check_opt.flags = T_MEDIUM; } +#line 34645 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1304: -#line 8775 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 8793 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34589 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34651 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1305: -#line 8776 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 8797 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34595 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34657 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1306: -#line 8780 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->check_opt.flags|= T_QUICK; } -#line 34601 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 8798 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {} +#line 34663 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1307: -#line 8781 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->check_opt.flags|= T_EXTEND; } -#line 34607 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 8802 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->check_opt.flags|= T_QUICK; } +#line 34669 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1308: -#line 8782 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->check_opt.sql_flags|= TT_USEFRM; } -#line 34613 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 8803 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->check_opt.flags|= T_EXTEND; } +#line 34675 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1309: -#line 8786 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { } -#line 34619 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 8804 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->check_opt.sql_flags|= TT_USEFRM; } +#line 34681 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1310: -#line 8787 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->check_opt.sql_flags|= TT_FROM_MYSQL; } -#line 34625 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 8808 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { } +#line 34687 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1311: -#line 8792 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 8809 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->check_opt.sql_flags|= TT_FROM_MYSQL; } +#line 34693 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 1312: +#line 8814 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_ANALYZE; @@ -34635,11 +34703,11 @@ /* Will be overridden during execution. */ YYPS->m_lock_type= TL_UNLOCK; } -#line 34639 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34707 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1312: -#line 8802 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1313: +#line 8824 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX* lex= thd->lex; DBUG_ASSERT(!lex->m_sql_cmd); @@ -34647,149 +34715,149 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 34651 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34719 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1316: -#line 8822 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1317: +#line 8844 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34657 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34725 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1317: -#line 8824 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1318: +#line 8846 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { thd->lex->with_persistent_for_clause= TRUE; } -#line 34665 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 1318: -#line 8831 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 34671 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34733 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1319: -#line 8833 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 8853 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34677 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34739 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1320: -#line 8836 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 8855 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34683 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34745 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1321: -#line 8838 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 8859 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {} +#line 34751 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 1322: +#line 8861 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX* lex= thd->lex; lex->column_list= new (thd->mem_root) List; if (unlikely(lex->column_list == NULL)) MYSQL_YYABORT; } -#line 34694 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34762 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1323: -#line 8849 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1324: +#line 8872 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34700 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34768 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1324: -#line 8851 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1325: +#line 8874 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX* lex= thd->lex; lex->index_list= new (thd->mem_root) List; if (unlikely(lex->index_list == NULL)) MYSQL_YYABORT; } -#line 34711 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34779 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1326: -#line 8863 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1327: +#line 8886 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34717 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34785 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1327: -#line 8865 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1328: +#line 8888 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->column_list->push_back((LEX_STRING*) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_STRING)), thd->mem_root); } -#line 34726 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34794 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1328: -#line 8870 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1329: +#line 8893 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->column_list->push_back((LEX_STRING*) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_STRING)), thd->mem_root); } -#line 34735 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34803 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1329: -#line 8878 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1330: +#line 8901 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34741 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34809 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1332: -#line 8885 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1333: +#line 8908 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->index_list->push_back((LEX_STRING*) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_STRING)), thd->mem_root); } -#line 34751 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34819 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1333: -#line 8892 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1334: +#line 8915 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX_STRING str= {(char*) "PRIMARY", 7}; Lex->index_list->push_back((LEX_STRING*) thd->memdup(&str, sizeof(LEX_STRING)), thd->mem_root); } -#line 34762 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34830 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1334: -#line 8902 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1335: +#line 8925 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_BINLOG_BASE64_EVENT; Lex->comment= (yyvsp[0].lex_str); Lex->ident.str= NULL; Lex->ident.length= 0; } -#line 34773 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34841 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1335: -#line 8910 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1336: +#line 8933 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_BINLOG_BASE64_EVENT; Lex->comment= (yyvsp[-3].lex_str); Lex->ident= (yyvsp[0].lex_str); } -#line 34783 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34851 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1337: -#line 8920 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1338: +#line 8943 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->table_type= TABLE_TYPE_VIEW; } -#line 34789 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34857 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1339: -#line 8925 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1340: +#line 8948 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; @@ -34799,11 +34867,11 @@ /* Will be overridden during execution. */ YYPS->m_lock_type= TL_UNLOCK; } -#line 34803 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34871 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1340: -#line 8935 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1341: +#line 8958 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX* lex= thd->lex; if (unlikely(lex->sphead)) @@ -34813,83 +34881,83 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 34817 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 1341: -#line 8947 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->check_opt.flags = T_MEDIUM; } -#line 34823 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34885 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1342: -#line 8948 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 34829 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 8970 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->check_opt.flags = T_MEDIUM; } +#line 34891 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1343: -#line 8952 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 8971 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34835 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34897 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1344: -#line 8953 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 8975 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34841 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34903 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1345: -#line 8957 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->check_opt.flags|= T_QUICK; } -#line 34847 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 8976 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {} +#line 34909 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1346: -#line 8958 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->check_opt.flags|= T_FAST; } -#line 34853 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 8980 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->check_opt.flags|= T_QUICK; } +#line 34915 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1347: -#line 8959 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->check_opt.flags|= T_MEDIUM; } -#line 34859 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 8981 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->check_opt.flags|= T_FAST; } +#line 34921 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1348: -#line 8960 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->check_opt.flags|= T_EXTEND; } -#line 34865 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 8982 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->check_opt.flags|= T_MEDIUM; } +#line 34927 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1349: -#line 8961 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->check_opt.flags|= T_CHECK_ONLY_CHANGED; } -#line 34871 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 8983 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->check_opt.flags|= T_EXTEND; } +#line 34933 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1350: -#line 8962 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; } -#line 34877 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 8984 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->check_opt.flags|= T_CHECK_ONLY_CHANGED; } +#line 34939 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1351: -#line 8966 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { } -#line 34883 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 8985 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; } +#line 34945 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1352: -#line 8967 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; } -#line 34889 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 8989 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { } +#line 34951 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1353: -#line 8972 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 8990 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; } +#line 34957 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 1354: +#line 8995 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_OPTIMIZE; @@ -34899,11 +34967,11 @@ /* Will be overridden during execution. */ YYPS->m_lock_type= TL_UNLOCK; } -#line 34903 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34971 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1354: -#line 8982 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1355: +#line 9005 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX* lex= thd->lex; DBUG_ASSERT(!lex->m_sql_cmd); @@ -34911,71 +34979,71 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 34915 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34983 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1355: -#line 8992 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1356: +#line 9015 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 34921 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34989 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1356: -#line 8993 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1357: +#line 9016 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 34927 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 34995 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1357: -#line 8994 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1358: +#line 9017 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 34933 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35001 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1358: -#line 8999 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1359: +#line 9022 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_RENAME_TABLE; } -#line 34941 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35009 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1359: -#line 9003 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1360: +#line 9026 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 34947 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35015 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1360: -#line 9005 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1361: +#line 9028 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_RENAME_USER; } -#line 34955 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35023 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1361: -#line 9012 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1362: +#line 9035 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[-2].lex_user), thd->mem_root) || Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 34965 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35033 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1362: -#line 9018 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1363: +#line 9041 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[-2].lex_user), thd->mem_root) || Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 34975 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35043 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1365: -#line 9032 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1366: +#line 9055 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; SELECT_LEX *sl= lex->current_select; @@ -34987,29 +35055,29 @@ TL_IGNORE, MDL_EXCLUSIVE))) MYSQL_YYABORT; } -#line 34991 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35059 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1366: -#line 9047 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1367: +#line 9070 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.reset(); } -#line 34999 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35067 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1367: -#line 9051 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1368: +#line 9074 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_ASSIGN_TO_KEYCACHE; lex->ident= (yyvsp[0].lex_str); } -#line 35009 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35077 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1372: -#line 9070 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1373: +#line 9093 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!Select->add_table_to_list(thd, (yyvsp[-1].table), NULL, 0, TL_READ, MDL_SHARED_READ, @@ -35017,11 +35085,11 @@ pop_index_hints()))) MYSQL_YYABORT; } -#line 35021 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35089 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1373: -#line 9081 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1374: +#line 9104 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!Select->add_table_to_list(thd, (yyvsp[-2].table), NULL, 0, TL_READ, MDL_SHARED_READ, @@ -35029,39 +35097,39 @@ pop_index_hints()))) MYSQL_YYABORT; } -#line 35033 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35101 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1374: -#line 9091 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1375: +#line 9114 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str)= (yyvsp[0].ident_sys); } -#line 35039 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35107 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1375: -#line 9092 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1376: +#line 9115 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str) = default_key_cache_base; } -#line 35045 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35113 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1376: -#line 9097 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1377: +#line 9120 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command=SQLCOM_PRELOAD_KEYS; lex->alter_info.reset(); } -#line 35055 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35123 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1377: -#line 9103 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1378: +#line 9126 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 35061 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35129 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1382: -#line 9118 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1383: +#line 9141 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!Select->add_table_to_list(thd, (yyvsp[-2].table), NULL, (yyvsp[0].num), TL_READ, MDL_SHARED_READ, @@ -35069,11 +35137,11 @@ pop_index_hints()))) MYSQL_YYABORT; } -#line 35073 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35141 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1383: -#line 9129 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1384: +#line 9152 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!Select->add_table_to_list(thd, (yyvsp[-3].table), NULL, (yyvsp[0].num), TL_READ, MDL_SHARED_READ, @@ -35081,73 +35149,73 @@ pop_index_hints()))) MYSQL_YYABORT; } -#line 35085 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35153 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1384: -#line 9140 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1385: +#line 9163 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->alter_info.partition_flags|= ALTER_PARTITION_ADMIN; } -#line 35093 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35161 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1386: -#line 9147 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1387: +#line 9170 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->select_lex.alloc_index_hints(thd); Select->set_index_hint_type(INDEX_HINT_USE, INDEX_HINT_MASK_ALL); } -#line 35103 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35171 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1388: -#line 9156 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1389: +#line 9179 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 35109 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35177 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1390: -#line 9162 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1391: +#line 9185 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 35115 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35183 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1391: -#line 9163 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1392: +#line 9186 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= TL_OPTION_IGNORE_LEAVES; } -#line 35121 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35189 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1392: -#line 9173 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1393: +#line 9196 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SELECT; lex->current_select->set_with_clause((yyvsp[-1].with_clause)); } -#line 35131 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35199 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1407: -#line 9201 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1408: +#line 9224 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->current_select->set_braces(true); } -#line 35139 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35207 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1408: -#line 9205 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1409: +#line 9228 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->current_select->braces); } -#line 35147 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35215 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1409: -#line 9209 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1410: +#line 9232 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* In order to correctly parse UNION's global ORDER BY we need to @@ -35155,19 +35223,19 @@ */ Lex->current_select->set_braces(true); } -#line 35159 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35227 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1410: -#line 9218 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1411: +#line 9241 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->current_select->braces); } -#line 35167 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35235 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1414: -#line 9231 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1415: +#line 9254 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* In order to correctly parse UNION's global ORDER BY we need to @@ -35175,19 +35243,19 @@ */ Lex->current_select->set_braces(true); } -#line 35179 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35247 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1415: -#line 9239 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1416: +#line 9262 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->current_select->braces); } -#line 35187 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35255 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1419: -#line 9252 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1420: +#line 9275 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* In order to correctly parse UNION's global ORDER BY we need to @@ -35195,127 +35263,127 @@ */ Lex->current_select->set_braces(true); } -#line 35199 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35267 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1420: -#line 9260 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1421: +#line 9283 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->current_select->braces); } -#line 35207 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35275 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1422: -#line 9268 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1423: +#line 9291 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->current_select->set_braces(true); } -#line 35215 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35283 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1423: -#line 9272 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1424: +#line 9295 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->current_select->braces); (yyval.select_lex)= Lex->current_select->master_unit()->first_select(); } -#line 35224 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35292 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1424: -#line 9277 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1425: +#line 9300 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->current_select->set_braces(true); } -#line 35232 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35300 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1425: -#line 9285 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1426: +#line 9308 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->current_select->braces); (yyval.select_lex)= Lex->current_select->master_unit()->first_select(); } -#line 35241 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35309 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1426: -#line 9289 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1427: +#line 9312 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.select_lex)= (yyvsp[-1].select_lex); } -#line 35247 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35315 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1427: -#line 9295 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1428: +#line 9318 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Parentheses carry no meaning here */ Lex->current_select->set_braces(false); } -#line 35256 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35324 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1429: -#line 9302 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1430: +#line 9325 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Parentheses carry no meaning here */ Lex->current_select->set_braces(false); } -#line 35265 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35333 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1430: -#line 9312 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1431: +#line 9335 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Parentheses carry no meaning here */ Lex->current_select->set_braces(false); } -#line 35274 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35342 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1432: -#line 9319 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1433: +#line 9342 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Parentheses carry no meaning here */ Lex->current_select->set_braces(false); } -#line 35283 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35351 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1433: -#line 9328 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1434: +#line 9351 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->current_select->set_braces(false); } -#line 35291 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35359 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1434: -#line 9332 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1435: +#line 9355 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->current_select->set_braces(false); } -#line 35299 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35367 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1436: -#line 9337 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1437: +#line 9360 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->current_select->set_braces(false); } -#line 35307 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35375 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1437: -#line 9341 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1438: +#line 9364 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->current_select->set_braces(false); } -#line 35315 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35383 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1453: -#line 9381 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1454: +#line 9404 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; SELECT_LEX *sel= lex->current_select; @@ -35323,63 +35391,63 @@ mysql_init_select(lex); lex->current_select->parsing_place= SELECT_LIST; } -#line 35327 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35395 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1454: -#line 9389 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1455: +#line 9412 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->parsing_place= NO_MATTER; } -#line 35335 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35403 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1459: -#line 9417 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1460: +#line 9440 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->context.table_list= Select->context.first_name_resolution_table= Select->table_list.first; } -#line 35345 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35413 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1462: -#line 9432 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1463: +#line 9455 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((Select->options & SELECT_DISTINCT) && (Select->options & SELECT_ALL))) my_yyabort_error((ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT")); } -#line 35355 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35423 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1463: -#line 9441 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1464: +#line 9464 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.vers_range_unit)= VERS_UNDEFINED; } -#line 35363 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35431 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1464: -#line 9445 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1465: +#line 9468 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.vers_range_unit)= VERS_TRX_ID; } -#line 35371 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35439 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1465: -#line 9449 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1466: +#line 9472 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.vers_range_unit)= VERS_TIMESTAMP; } -#line 35379 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35447 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1466: -#line 9456 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1467: +#line 9479 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Item *item; if (!(item= create_temporal_literal(thd, (yyvsp[0].lex_string_with_metadata).str, (yyvsp[0].lex_string_with_metadata).length, YYCSCL, @@ -35387,75 +35455,75 @@ MYSQL_YYABORT; (yyval.vers_history_point)= Vers_history_point(VERS_TIMESTAMP, item); } -#line 35391 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35459 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1467: -#line 9464 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1468: +#line 9487 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.vers_history_point)= Vers_history_point(VERS_TIMESTAMP, (yyvsp[0].item)); } -#line 35399 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35467 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1468: -#line 9468 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1469: +#line 9491 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.vers_history_point)= Vers_history_point((yyvsp[-1].vers_range_unit), (yyvsp[0].item)); } -#line 35407 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35475 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1469: -#line 9475 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1470: +#line 9498 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= false; } -#line 35415 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35483 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1470: -#line 9479 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1471: +#line 9502 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= true; } -#line 35423 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35491 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1471: -#line 9486 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1472: +#line 9509 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->vers_conditions.init(SYSTEM_TIME_AS_OF, (yyvsp[0].vers_history_point)); } -#line 35431 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35499 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1472: -#line 9490 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1473: +#line 9513 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->vers_conditions.init(SYSTEM_TIME_ALL); } -#line 35439 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35507 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1473: -#line 9494 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1474: +#line 9517 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->vers_conditions.init(SYSTEM_TIME_FROM_TO, (yyvsp[-2].vers_history_point), (yyvsp[0].vers_history_point)); } -#line 35447 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35515 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1474: -#line 9498 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1475: +#line 9521 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->vers_conditions.init(SYSTEM_TIME_BETWEEN, (yyvsp[-2].vers_history_point), (yyvsp[0].vers_history_point)); } -#line 35455 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35523 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1478: -#line 9511 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1479: +#line 9534 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Allow this flag only on the first top-level SELECT statement, if @@ -35472,11 +35540,11 @@ Lex->select_lex.options&= ~OPTION_TO_QUERY_CACHE; Lex->select_lex.sql_cache= SELECT_LEX::SQL_NO_CACHE; } -#line 35476 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35544 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1479: -#line 9528 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1480: +#line 9551 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Allow this flag only on the first top-level SELECT statement, if @@ -35493,22 +35561,22 @@ Lex->select_lex.options|= OPTION_TO_QUERY_CACHE; Lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE; } -#line 35497 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35565 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1481: -#line 9549 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1482: +#line 9572 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->current_select->lock_type= TL_WRITE; lex->current_select->set_lock_for_tables(TL_WRITE, false); lex->safe_to_cache_query=0; } -#line 35508 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35576 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1482: -#line 9556 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1483: +#line 9579 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->current_select->lock_type= TL_READ_WITH_SHARED_LOCKS; @@ -35516,11 +35584,11 @@ set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS, false); lex->safe_to_cache_query=0; } -#line 35520 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35588 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1485: -#line 9569 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1486: +#line 9592 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Item *item= new (thd->mem_root) Item_field(thd, &thd->lex->current_select->context, @@ -35531,20 +35599,20 @@ MYSQL_YYABORT; (thd->lex->current_select->with_wild)++; } -#line 35535 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35603 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1486: -#line 9583 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1487: +#line 9606 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(add_item_to_list(thd, (yyvsp[-1].item)))) MYSQL_YYABORT; } -#line 35544 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35612 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1487: -#line 9588 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1488: +#line 9611 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { DBUG_ASSERT((yyvsp[-3].simple_string) < (yyvsp[-1].simple_string)); @@ -35563,121 +35631,121 @@ (yyvsp[-2].item)->set_name(thd, (yyvsp[-3].simple_string), (uint) ((yyvsp[-1].simple_string) - (yyvsp[-3].simple_string)), thd->charset()); } } -#line 35567 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35635 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1488: -#line 9609 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1489: +#line 9632 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.simple_string)= (char*) YYLIP->get_tok_start(); } -#line 35575 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35643 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1489: -#line 9615 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1490: +#line 9638 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.simple_string)= (char*) YYLIP->get_tok_end(); } -#line 35583 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35651 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1490: -#line 9621 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1491: +#line 9644 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_start(); } -#line 35591 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35659 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1491: -#line 9627 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1492: +#line 9650 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_end_rtrim(); } -#line 35599 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 1492: -#line 9633 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.lex_str)=null_clex_str;} -#line 35605 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35667 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1493: -#line 9634 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.lex_str)=(yyvsp[0].ident_sys); } -#line 35611 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 9656 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.lex_str)=null_clex_str;} +#line 35673 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1494: -#line 9635 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.lex_str)=(yyvsp[0].lex_str); } -#line 35617 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 9657 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.lex_str)=(yyvsp[0].ident_sys); } +#line 35679 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1495: -#line 9636 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.lex_str)=(yyvsp[0].ident_sys); } -#line 35623 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 9658 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.lex_str)=(yyvsp[0].lex_str); } +#line 35685 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1496: -#line 9637 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.lex_str)=(yyvsp[0].lex_str); } -#line 35629 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 9659 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.lex_str)=(yyvsp[0].ident_sys); } +#line 35691 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1497: -#line 9641 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.num)= NOT_FIXED_DEC; } -#line 35635 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 9660 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.lex_str)=(yyvsp[0].lex_str); } +#line 35697 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1498: -#line 9642 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 9664 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= NOT_FIXED_DEC; } -#line 35641 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35703 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1499: -#line 9643 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.num)= (yyvsp[-1].ulong_num); } -#line 35647 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 9665 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.num)= NOT_FIXED_DEC; } +#line 35709 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1500: -#line 9647 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.num)= 0; } -#line 35653 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 9666 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.num)= (yyvsp[-1].ulong_num); } +#line 35715 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1501: -#line 9648 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 9670 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 35659 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35721 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1502: -#line 9649 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.num)= (yyvsp[-1].ulong_num); } -#line 35665 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 9671 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.num)= 0; } +#line 35727 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1503: -#line 9653 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 35671 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 9672 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.num)= (yyvsp[-1].ulong_num); } +#line 35733 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1504: -#line 9654 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 9676 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 35677 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35739 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1505: -#line 9660 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 9677 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {} +#line 35745 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 1506: +#line 9683 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Design notes: @@ -35728,22 +35796,22 @@ MYSQL_YYABORT; } } -#line 35732 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35800 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1506: -#line 9711 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1507: +#line 9734 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* XOR is a proprietary extension */ (yyval.item)= new (thd->mem_root) Item_func_xor(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35743 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35811 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1507: -#line 9718 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1508: +#line 9741 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* See comments in rule expr: expr or expr */ Item_cond_and *item1; @@ -35786,141 +35854,141 @@ MYSQL_YYABORT; } } -#line 35790 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35858 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1508: -#line 9761 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1509: +#line 9784 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= negate_expression(thd, (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35800 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35868 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1509: -#line 9767 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1510: +#line 9790 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_istrue(thd, (yyvsp[-2].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35810 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35878 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1510: -#line 9773 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1511: +#line 9796 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_isnottrue(thd, (yyvsp[-3].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35820 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35888 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1511: -#line 9779 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1512: +#line 9802 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_isfalse(thd, (yyvsp[-2].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35830 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35898 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1512: -#line 9785 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1513: +#line 9808 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_isnotfalse(thd, (yyvsp[-3].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35840 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35908 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1513: -#line 9791 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1514: +#line 9814 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_isnull(thd, (yyvsp[-2].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35850 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35918 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1514: -#line 9797 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1515: +#line 9820 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_isnotnull(thd, (yyvsp[-3].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35860 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35928 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1516: -#line 9807 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1517: +#line 9830 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_isnull(thd, (yyvsp[-2].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35870 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35938 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1517: -#line 9813 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1518: +#line 9836 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_isnotnull(thd, (yyvsp[-3].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35880 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35948 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1518: -#line 9819 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1519: +#line 9842 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_equal(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35890 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35958 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1519: -#line 9825 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1520: +#line 9848 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= (*(yyvsp[-1].boolfunc2creator))(0)->create(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35900 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35968 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1520: -#line 9831 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1521: +#line 9854 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= all_any_subquery_creator(thd, (yyvsp[-5].item), (yyvsp[-4].boolfunc2creator), (yyvsp[-3].num), (yyvsp[-1].select_lex)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35910 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35978 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1522: -#line 9841 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1523: +#line 9864 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_in_subselect(thd, (yyvsp[-4].item), (yyvsp[-1].select_lex)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35920 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 35988 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1523: -#line 9847 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1524: +#line 9870 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Item *item= new (thd->mem_root) Item_in_subselect(thd, (yyvsp[-5].item), (yyvsp[-1].select_lex)); if (unlikely(item == NULL)) @@ -35929,21 +35997,21 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35933 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36001 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1524: -#line 9856 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1525: +#line 9879 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= handle_sql2003_note184_exception(thd, (yyvsp[-4].item), true, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35943 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36011 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1525: -#line 9862 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1526: +#line 9885 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[-1].item_list)->push_front((yyvsp[-3].item), thd->mem_root); (yyvsp[-1].item_list)->push_front((yyvsp[-6].item), thd->mem_root); @@ -35951,21 +36019,21 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35955 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36023 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1526: -#line 9870 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1527: +#line 9893 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= handle_sql2003_note184_exception(thd, (yyvsp[-5].item), false, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35965 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36033 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1527: -#line 9876 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1528: +#line 9899 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[-1].item_list)->push_front((yyvsp[-3].item), thd->mem_root); (yyvsp[-1].item_list)->push_front((yyvsp[-7].item), thd->mem_root); @@ -35974,21 +36042,21 @@ MYSQL_YYABORT; (yyval.item)= item->neg_transformer(thd); } -#line 35978 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36046 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1528: -#line 9885 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1529: +#line 9908 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_between(thd, (yyvsp[-4].item), (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35988 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36056 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1529: -#line 9891 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1530: +#line 9914 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Item_func_between *item; item= new (thd->mem_root) Item_func_between(thd, (yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[0].item)); @@ -35996,11 +36064,11 @@ MYSQL_YYABORT; (yyval.item)= item->neg_transformer(thd); } -#line 36000 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36068 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1530: -#line 9899 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1531: +#line 9922 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Item *item1= new (thd->mem_root) Item_func_soundex(thd, (yyvsp[-3].item)); Item *item4= new (thd->mem_root) Item_func_soundex(thd, (yyvsp[0].item)); @@ -36010,22 +36078,22 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36014 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36082 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1531: -#line 9909 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1532: +#line 9932 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_like(thd, (yyvsp[-3].item), (yyvsp[-1].item), (yyvsp[0].item), Lex->escape_used); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36025 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36093 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1532: -#line 9916 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1533: +#line 9939 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Item *item= new (thd->mem_root) Item_func_like(thd, (yyvsp[-4].item), (yyvsp[-1].item), (yyvsp[0].item), Lex->escape_used); @@ -36033,21 +36101,21 @@ MYSQL_YYABORT; (yyval.item)= item->neg_transformer(thd); } -#line 36037 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36105 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1533: -#line 9924 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1534: +#line 9947 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_regex(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36047 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36115 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1534: -#line 9930 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1535: +#line 9953 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Item *item= new (thd->mem_root) Item_func_regex(thd, (yyvsp[-3].item), (yyvsp[0].item)); if (unlikely(item == NULL)) @@ -36056,350 +36124,350 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36060 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36128 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1536: -#line 9943 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1537: +#line 9966 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_bit_or(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36070 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36138 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1537: -#line 9949 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1538: +#line 9972 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_bit_and(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36080 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36148 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1538: -#line 9955 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1539: +#line 9978 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_shift_left(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36090 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36158 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1539: -#line 9961 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1540: +#line 9984 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_shift_right(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36100 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36168 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1540: -#line 9967 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1541: +#line 9990 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_concat_operator_oracle(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36111 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36179 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1541: -#line 9974 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1542: +#line 9997 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_plus(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36121 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36189 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1542: -#line 9980 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1543: +#line 10003 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_minus(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36131 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36199 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1543: -#line 9986 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1544: +#line 10009 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-4].item), (yyvsp[-1].item), (yyvsp[0].interval), 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36141 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36209 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1544: -#line 9992 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1545: +#line 10015 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-4].item), (yyvsp[-1].item), (yyvsp[0].interval), 1); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36151 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36219 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1545: -#line 9999 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1546: +#line 10022 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[0].item), (yyvsp[-3].item), (yyvsp[-2].interval), 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36161 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36229 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1546: -#line 10005 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1547: +#line 10028 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[0].item), (yyvsp[-3].item), (yyvsp[-2].interval), 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36171 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36239 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1547: -#line 10011 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1548: +#line 10034 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[0].item), (yyvsp[-3].item), (yyvsp[-2].interval), 1); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36181 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36249 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1548: -#line 10017 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1549: +#line 10040 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_mul(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36191 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36259 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1549: -#line 10023 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1550: +#line 10046 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_div(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36201 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36269 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1550: -#line 10029 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1551: +#line 10052 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_mod(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36211 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36279 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1551: -#line 10035 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1552: +#line 10058 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_int_div(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36221 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36289 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1552: -#line 10041 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1553: +#line 10064 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_mod(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36231 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36299 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1553: -#line 10047 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1554: +#line 10070 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_bit_xor(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36241 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36309 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1563: -#line 10076 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1564: +#line 10099 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.boolfunc2creator) = &comp_eq_creator; } -#line 36247 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36315 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1564: -#line 10077 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1565: +#line 10100 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.boolfunc2creator) = &comp_ge_creator; } -#line 36253 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36321 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1565: -#line 10078 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1566: +#line 10101 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.boolfunc2creator) = &comp_gt_creator; } -#line 36259 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36327 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1566: -#line 10079 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1567: +#line 10102 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.boolfunc2creator) = &comp_le_creator; } -#line 36265 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36333 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1567: -#line 10080 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1568: +#line 10103 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.boolfunc2creator) = &comp_lt_creator; } -#line 36271 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36339 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1568: -#line 10081 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1569: +#line 10104 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.boolfunc2creator) = &comp_ne_creator; } -#line 36277 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36345 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1569: -#line 10085 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1570: +#line 10108 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num) = 1; } -#line 36283 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36351 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1570: -#line 10086 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1571: +#line 10109 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num) = 0; } -#line 36289 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36357 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1571: -#line 10091 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1572: +#line 10114 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_dyncol_type).set(DYN_COL_NULL); /* automatic type */ Lex->charset= NULL; } -#line 36298 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 1572: -#line 10095 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type)= (yyvsp[0].Lex_dyncol_type); } -#line 36304 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36366 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1573: -#line 10099 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type)= (yyvsp[0].Lex_dyncol_type); Lex->charset= NULL; } -#line 36310 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 10118 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type)= (yyvsp[0].Lex_dyncol_type); } +#line 36372 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1574: -#line 10100 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 10122 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_dyncol_type)= (yyvsp[0].Lex_dyncol_type); Lex->charset= NULL; } -#line 36316 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36378 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1575: -#line 10101 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type)= (yyvsp[0].Lex_dyncol_type); } -#line 36322 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 10123 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type)= (yyvsp[0].Lex_dyncol_type); Lex->charset= NULL; } +#line 36384 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1576: -#line 10105 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type).set(DYN_COL_INT); } -#line 36328 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 10124 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type)= (yyvsp[0].Lex_dyncol_type); } +#line 36390 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1577: -#line 10106 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type).set(DYN_COL_UINT); } -#line 36334 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 10128 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type).set(DYN_COL_INT); } +#line 36396 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1578: -#line 10107 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type).set(DYN_COL_DOUBLE); } -#line 36340 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 10129 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type).set(DYN_COL_UINT); } +#line 36402 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1579: -#line 10108 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type).set(DYN_COL_DOUBLE); } -#line 36346 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 10130 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type).set(DYN_COL_DOUBLE); } +#line 36408 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1580: -#line 10109 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 10131 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_dyncol_type).set(DYN_COL_DOUBLE); } -#line 36352 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36414 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1581: -#line 10110 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type).set(DYN_COL_DECIMAL, (yyvsp[0].Lex_length_and_dec)); } -#line 36358 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 10132 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type).set(DYN_COL_DOUBLE); } +#line 36420 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1582: -#line 10114 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type).set(DYN_COL_DATE); } -#line 36364 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 10133 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type).set(DYN_COL_DECIMAL, (yyvsp[0].Lex_length_and_dec)); } +#line 36426 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1583: -#line 10115 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type).set(DYN_COL_TIME, 0, (yyvsp[0].const_simple_string)); } -#line 36370 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 10137 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type).set(DYN_COL_DATE); } +#line 36432 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1584: -#line 10116 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type).set(DYN_COL_DATETIME, 0, (yyvsp[0].const_simple_string)); } -#line 36376 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 10138 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type).set(DYN_COL_TIME, 0, (yyvsp[0].const_simple_string)); } +#line 36438 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1585: -#line 10121 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->charset= thd->variables.collation_connection; } -#line 36382 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 10139 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type).set(DYN_COL_DATETIME, 0, (yyvsp[0].const_simple_string)); } +#line 36444 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1586: -#line 10123 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 10144 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->charset= thd->variables.collation_connection; } +#line 36450 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 1587: +#line 10146 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_dyncol_type).set(DYN_COL_STRING); } -#line 36390 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36458 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1587: -#line 10127 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1588: +#line 10150 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_dyncol_type).set(DYN_COL_STRING); Lex->charset= national_charset_info; } -#line 36399 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36467 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1588: -#line 10135 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1589: +#line 10158 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; (yyval.dyncol_def)= (DYNCALL_CREATE_DEF *) @@ -36419,148 +36487,148 @@ else (yyval.dyncol_def)->len= 0; } -#line 36423 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36491 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1589: -#line 10157 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1590: +#line 10181 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.dyncol_def_list)= new (thd->mem_root) List; if (unlikely((yyval.dyncol_def_list) == NULL)) MYSQL_YYABORT; (yyval.dyncol_def_list)->push_back((yyvsp[0].dyncol_def), thd->mem_root); } -#line 36434 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36502 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1590: -#line 10164 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1591: +#line 10188 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[-2].dyncol_def_list)->push_back((yyvsp[0].dyncol_def), thd->mem_root); (yyval.dyncol_def_list)= (yyvsp[-2].dyncol_def_list); } -#line 36443 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36511 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1591: -#line 10172 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1592: +#line 10196 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.plsql_cursor_attr)= PLSQL_CURSOR_ATTR_ISOPEN; } -#line 36449 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36517 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1592: -#line 10173 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1593: +#line 10197 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.plsql_cursor_attr)= PLSQL_CURSOR_ATTR_FOUND; } -#line 36455 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36523 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1593: -#line 10174 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1594: +#line 10198 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.plsql_cursor_attr)= PLSQL_CURSOR_ATTR_NOTFOUND; } -#line 36461 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36529 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1594: -#line 10175 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1595: +#line 10199 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.plsql_cursor_attr)= PLSQL_CURSOR_ATTR_ROWCOUNT; } -#line 36467 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36535 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1595: -#line 10180 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1596: +#line 10204 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_plsql_cursor_attr(thd, &(yyvsp[-2].ident_sys), (yyvsp[0].plsql_cursor_attr))))) MYSQL_YYABORT; } -#line 36476 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36544 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1596: -#line 10188 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1597: +#line 10212 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.trim).set(TRIM_BOTH, (yyvsp[0].item)); } -#line 36482 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36550 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1597: -#line 10189 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1598: +#line 10213 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.trim).set(TRIM_LEADING, (yyvsp[-2].item), (yyvsp[0].item)); } -#line 36488 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36556 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1598: -#line 10190 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1599: +#line 10214 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.trim).set(TRIM_TRAILING, (yyvsp[-2].item), (yyvsp[0].item)); } -#line 36494 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36562 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1599: -#line 10191 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1600: +#line 10215 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.trim).set(TRIM_BOTH, (yyvsp[-2].item), (yyvsp[0].item)); } -#line 36500 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36568 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1600: -#line 10192 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1601: +#line 10216 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.trim).set(TRIM_LEADING, (yyvsp[0].item)); } -#line 36506 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36574 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1601: -#line 10193 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1602: +#line 10217 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.trim).set(TRIM_TRAILING, (yyvsp[0].item)); } -#line 36512 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36580 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1602: -#line 10194 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1603: +#line 10218 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.trim).set(TRIM_BOTH, (yyvsp[0].item)); } -#line 36518 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36586 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1603: -#line 10195 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1604: +#line 10219 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.trim).set(TRIM_BOTH, (yyvsp[-2].item), (yyvsp[0].item)); } -#line 36524 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36592 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1610: -#line 10233 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1611: +#line 10257 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item_param); } -#line 36530 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36598 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1615: -#line 10239 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1616: +#line 10263 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[-1].item_list)->push_front((yyvsp[-3].item), thd->mem_root); (yyval.item)= new (thd->mem_root) Item_row(thd, *(yyvsp[-1].item_list)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36541 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36609 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1616: -#line 10246 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1617: +#line 10270 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_exists_subselect(thd, (yyvsp[-1].select_lex)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36551 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36619 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1617: -#line 10252 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1618: +#line 10276 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= (yyvsp[-1].item)->make_odbc_literal(thd, &(yyvsp[-2].ident_sys))))) MYSQL_YYABORT; } -#line 36560 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36628 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1618: -#line 10257 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1619: +#line 10281 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[-5].item_list)->push_front((yyvsp[-2].item), thd->mem_root); Item_func_match *i1= new (thd->mem_root) Item_func_match(thd, *(yyvsp[-5].item_list), @@ -36570,58 +36638,58 @@ Select->add_ftfunc_to_list(thd, i1); (yyval.item)= i1; } -#line 36574 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36642 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1619: -#line 10267 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1620: +#line 10291 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= (yyvsp[-1].Lex_cast_type).create_typecast_item(thd, (yyvsp[-3].item), Lex->charset)))) MYSQL_YYABORT; } -#line 36583 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36651 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1620: -#line 10272 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1621: +#line 10296 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= new(thd->mem_root) Item_func_case_searched(thd, *(yyvsp[-1].item_list))))) MYSQL_YYABORT; } -#line 36592 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36660 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1621: -#line 10277 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1622: +#line 10301 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[-1].item_list)->push_front((yyvsp[-2].item), thd->mem_root); if (unlikely(!((yyval.item)= new (thd->mem_root) Item_func_case_simple(thd, *(yyvsp[-1].item_list))))) MYSQL_YYABORT; } -#line 36602 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36670 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1622: -#line 10283 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1623: +#line 10307 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= (yyvsp[-1].Lex_cast_type).create_typecast_item(thd, (yyvsp[-3].item), Lex->charset)))) MYSQL_YYABORT; } -#line 36611 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36679 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1623: -#line 10288 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1624: +#line 10312 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_conv_charset(thd, (yyvsp[-3].item), (yyvsp[-1].charset)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36621 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36689 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1624: -#line 10294 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1625: +#line 10318 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Item_splocal *il= (yyvsp[-1].item)->get_item_splocal(); if (unlikely(il)) @@ -36632,199 +36700,199 @@ MYSQL_YYABORT; Lex->default_used= TRUE; } -#line 36636 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36704 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1625: -#line 10305 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1626: +#line 10329 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_insert_value(thd, Lex->current_context(), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36647 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36715 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1626: -#line 10312 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1627: +#line 10336 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_func_nextval(thd, (yyvsp[0].table))))) MYSQL_YYABORT; } -#line 36656 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36724 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1627: -#line 10317 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1628: +#line 10341 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_func_nextval(thd, (yyvsp[-1].table))))) MYSQL_YYABORT; } -#line 36665 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36733 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1628: -#line 10322 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1629: +#line 10346 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_func_lastval(thd, (yyvsp[0].table))))) MYSQL_YYABORT; } -#line 36674 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36742 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1629: -#line 10327 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1630: +#line 10351 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_func_lastval(thd, (yyvsp[-1].table))))) MYSQL_YYABORT; } -#line 36683 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36751 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1630: -#line 10332 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1631: +#line 10356 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_func_setval(thd, (yyvsp[-3].table), (yyvsp[-1].longlong_number), 0, 1)))) MYSQL_YYABORT; } -#line 36692 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36760 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1631: -#line 10337 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1632: +#line 10361 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_func_setval(thd, (yyvsp[-5].table), (yyvsp[-3].longlong_number), 0, (yyvsp[-1].ulong_num))))) MYSQL_YYABORT; } -#line 36701 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36769 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1632: -#line 10342 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1633: +#line 10366 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_func_setval(thd, (yyvsp[-7].table), (yyvsp[-5].longlong_number), (yyvsp[-1].ulonglong_number), (yyvsp[-3].ulong_num))))) MYSQL_YYABORT; } -#line 36710 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36778 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1635: -#line 10351 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1636: +#line 10375 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[-1].item); } -#line 36716 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36784 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1637: -#line 10357 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1638: +#line 10381 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= new (thd->mem_root) Item_func_set_collation(thd, (yyvsp[-2].item), (yyvsp[0].charset))))) MYSQL_YYABORT; } -#line 36725 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36793 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1639: -#line 10366 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1640: +#line 10390 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Type_cast_attributes at(&my_charset_bin); if (unlikely(!((yyval.item)= type_handler_long_blob.create_typecast_item(thd, (yyvsp[0].item), at)))) MYSQL_YYABORT; } -#line 36735 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36803 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1640: -#line 10372 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1641: +#line 10396 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item); } -#line 36743 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36811 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1641: -#line 10376 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1642: +#line 10400 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item)->neg(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36753 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36821 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1642: -#line 10382 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1643: +#line 10406 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_bit_neg(thd, (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36763 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36831 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1643: -#line 10388 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1644: +#line 10412 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= negate_expression(thd, (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36773 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36841 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1645: -#line 10398 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1646: +#line 10422 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_concat(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36783 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36851 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1646: -#line 10407 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1647: +#line 10431 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_datetime_typecast(thd, (yyvsp[-1].item), AUTO_SEC_PART_DIGITS); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36794 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36862 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1647: -#line 10414 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1648: +#line 10438 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_add_time(thd, (yyvsp[-3].item), (yyvsp[-1].item), 1, 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36804 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36872 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1648: -#line 10428 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1649: +#line 10452 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_char(thd, *(yyvsp[-1].item_list)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36814 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36882 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1649: -#line 10434 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1650: +#line 10458 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_char(thd, *(yyvsp[-3].item_list), (yyvsp[-1].charset)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36824 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36892 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1650: -#line 10440 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1651: +#line 10464 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_current_user(thd, Lex->current_context()); @@ -36833,11 +36901,11 @@ Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); Lex->safe_to_cache_query= 0; } -#line 36837 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36905 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1651: -#line 10449 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1652: +#line 10473 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_current_role(thd, Lex->current_context()); @@ -36846,51 +36914,51 @@ Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); Lex->safe_to_cache_query= 0; } -#line 36850 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36918 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1652: -#line 10458 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1653: +#line 10482 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_typecast(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36860 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36928 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1653: -#line 10464 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1654: +#line 10488 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_dayofmonth(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36870 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36938 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1654: -#line 10470 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1655: +#line 10494 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_hour(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36880 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36948 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1655: -#line 10476 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1656: +#line 10500 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_insert(thd, (yyvsp[-7].item), (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36890 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36958 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1656: -#line 10482 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1657: +#line 10506 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { List *list= new (thd->mem_root) List; if (unlikely(list == NULL)) @@ -36905,11 +36973,11 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36909 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36977 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1657: -#line 10497 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1658: +#line 10521 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[-1].item_list)->push_front((yyvsp[-3].item), thd->mem_root); (yyvsp[-1].item_list)->push_front((yyvsp[-5].item), thd->mem_root); @@ -36920,61 +36988,61 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36924 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 36992 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1658: -#line 10508 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1659: +#line 10532 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_left(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36934 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37002 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1659: -#line 10514 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1660: +#line 10538 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_minute(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36944 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37012 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1660: -#line 10520 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1661: +#line 10544 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_month(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36954 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37022 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1661: -#line 10526 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1662: +#line 10550 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_right(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36964 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37032 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1662: -#line 10532 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1663: +#line 10556 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_second(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36974 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37042 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1663: -#line 10538 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1664: +#line 10562 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_oracle_sql_rowcount(thd); if (unlikely((yyval.item) == NULL)) @@ -36982,39 +37050,39 @@ Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); Lex->safe_to_cache_query= 0; } -#line 36986 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37054 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1664: -#line 10546 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1665: +#line 10570 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_time_typecast(thd, (yyvsp[-1].item), AUTO_SEC_PART_DIGITS); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36997 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37065 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1665: -#line 10553 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1666: +#line 10577 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item); } -#line 37005 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37073 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1666: -#line 10557 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1667: +#line 10581 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= (yyvsp[-1].trim).make_item_func_trim(thd)))) MYSQL_YYABORT; } -#line 37014 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37082 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1667: -#line 10562 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1668: +#line 10586 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_user(thd); if (unlikely((yyval.item) == NULL)) @@ -37022,222 +37090,222 @@ Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); Lex->safe_to_cache_query=0; } -#line 37026 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37094 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1668: -#line 10570 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1669: +#line 10594 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_year(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37036 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37104 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1669: -#line 10591 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1670: +#line 10615 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-3].item), (yyvsp[-1].item), INTERVAL_DAY, 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37047 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37115 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1670: -#line 10598 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1671: +#line 10622 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[-1].interval), 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37057 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37125 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1671: -#line 10604 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1672: +#line 10628 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_curdate_local(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } -#line 37068 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37136 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1672: -#line 10611 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1673: +#line 10635 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_curtime_local(thd, (yyvsp[0].num)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } -#line 37079 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37147 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1673: -#line 10618 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1674: +#line 10642 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[-1].interval), 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37089 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37157 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1674: -#line 10624 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1675: +#line 10648 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[-1].interval), 1); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37099 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37167 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1675: -#line 10630 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1676: +#line 10654 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_date_format(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37109 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37177 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1676: -#line 10636 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1677: +#line 10660 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_date_format(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37119 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37187 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1677: -#line 10642 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1678: +#line 10666 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_decode(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37129 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37197 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1678: -#line 10648 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1679: +#line 10672 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[-1].item_list)->push_front((yyvsp[-3].item), thd->mem_root); if (unlikely(!((yyval.item)= new (thd->mem_root) Item_func_decode_oracle(thd, *(yyvsp[-1].item_list))))) MYSQL_YYABORT; } -#line 37139 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37207 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1679: -#line 10654 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1680: +#line 10678 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)=new (thd->mem_root) Item_extract(thd, (yyvsp[-3].interval), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37149 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37217 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1680: -#line 10660 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1681: +#line 10684 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_get_format(thd, (yyvsp[-3].date_time_type), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37159 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37227 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1681: -#line 10666 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1682: +#line 10690 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_now_local(thd, (yyvsp[0].num)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } -#line 37170 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37238 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1682: -#line 10673 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1683: +#line 10697 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_locate(thd, (yyvsp[-1].item), (yyvsp[-3].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37180 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37248 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1683: -#line 10679 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1684: +#line 10703 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-3].item), (yyvsp[-1].item), INTERVAL_DAY, 1); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37191 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37259 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1684: -#line 10686 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1685: +#line 10710 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[-1].interval), 1); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37201 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37269 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1685: -#line 10692 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1686: +#line 10716 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_func_substr(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item))))) MYSQL_YYABORT; } -#line 37210 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37278 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1686: -#line 10697 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1687: +#line 10721 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_func_substr(thd, (yyvsp[-3].item), (yyvsp[-1].item))))) MYSQL_YYABORT; } -#line 37219 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37287 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1687: -#line 10702 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1688: +#line 10726 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_func_substr(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item))))) MYSQL_YYABORT; } -#line 37228 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37296 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1688: -#line 10707 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1689: +#line 10731 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_func_substr(thd, (yyvsp[-3].item), (yyvsp[-1].item))))) MYSQL_YYABORT; } -#line 37237 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37305 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1689: -#line 10712 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1690: +#line 10736 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Unlike other time-related functions, SYSDATE() is @@ -37255,113 +37323,113 @@ MYSQL_YYABORT; Lex->safe_to_cache_query=0; } -#line 37259 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37327 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1690: -#line 10730 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1691: +#line 10754 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-1].item), (yyvsp[-3].item), (yyvsp[-5].interval_time_st), 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37269 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37337 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1691: -#line 10736 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1692: +#line 10760 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_timestamp_diff(thd, (yyvsp[-3].item), (yyvsp[-1].item), (yyvsp[-5].interval_time_st)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37279 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37347 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1692: -#line 10742 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1693: +#line 10766 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= (yyvsp[-1].trim).make_item_func_trim_oracle(thd)))) MYSQL_YYABORT; } -#line 37288 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37356 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1693: -#line 10747 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1694: +#line 10771 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_curdate_utc(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } -#line 37299 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37367 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1694: -#line 10754 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1695: +#line 10778 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_curtime_utc(thd, (yyvsp[0].num)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } -#line 37310 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37378 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1695: -#line 10761 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1696: +#line 10785 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_now_utc(thd, (yyvsp[0].num)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } -#line 37321 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37389 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1696: -#line 10769 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1697: +#line 10793 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= create_func_dyncol_add(thd, (yyvsp[-3].item), *(yyvsp[-1].dyncol_def_list)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37331 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37399 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1697: -#line 10776 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1698: +#line 10800 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= create_func_dyncol_delete(thd, (yyvsp[-3].item), *(yyvsp[-1].item_list)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37341 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37409 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1698: -#line 10783 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1699: +#line 10807 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_dyncol_check(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37351 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37419 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1699: -#line 10790 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1700: +#line 10814 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= create_func_dyncol_create(thd, *(yyvsp[-1].dyncol_def_list)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37361 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37429 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1700: -#line 10797 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1701: +#line 10821 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; (yyval.item)= create_func_dyncol_get(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].Lex_cast_type).type_handler(), @@ -37370,92 +37438,92 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37374 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37442 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1701: -#line 10814 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1702: +#line 10838 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_ascii(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37384 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37452 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1702: -#line 10820 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1703: +#line 10844 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_charset(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37394 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37462 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1703: -#line 10826 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1704: +#line 10850 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_coalesce(thd, *(yyvsp[-1].item_list)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37404 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37472 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1704: -#line 10832 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1705: +#line 10856 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_collation(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37414 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37482 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1705: -#line 10838 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1706: +#line 10862 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_database(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } -#line 37425 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37493 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1706: -#line 10845 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1707: +#line 10869 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_if(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37435 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37503 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1707: -#line 10851 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1708: +#line 10875 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_format(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37445 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37513 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1708: -#line 10857 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1709: +#line 10881 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_format(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37455 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37523 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1709: -#line 10866 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1710: +#line 10890 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { List *list= new (thd->mem_root) List; if (unlikely(list == NULL)) @@ -37466,53 +37534,53 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37470 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37538 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1710: -#line 10877 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1711: +#line 10901 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[-3].item_list)->push_back((yyvsp[-1].item), thd->mem_root); (yyval.item)= new (thd->mem_root) Item_func_last_value(thd, *(yyvsp[-3].item_list)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37481 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37549 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1711: -#line 10884 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1712: +#line 10908 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_microsecond(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37491 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37559 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1712: -#line 10890 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1713: +#line 10914 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_mod(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37501 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37569 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1713: -#line 10896 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1714: +#line 10920 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_password(thd, (yyvsp[-1].item), Item_func_password::OLD); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37512 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37580 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1714: -#line 10903 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1715: +#line 10927 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Item* i1; i1= new (thd->mem_root) Item_func_password(thd, (yyvsp[-1].item)); @@ -37520,50 +37588,50 @@ MYSQL_YYABORT; (yyval.item)= i1; } -#line 37524 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37592 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1715: -#line 10911 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1716: +#line 10935 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_quarter(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37534 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37602 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1716: -#line 10917 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1717: +#line 10941 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_repeat(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37544 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37612 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1717: -#line 10923 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1718: +#line 10947 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_func_replace(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item))))) MYSQL_YYABORT; } -#line 37553 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37621 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1718: -#line 10928 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1719: +#line 10952 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_reverse(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37563 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37631 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1719: -#line 10934 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1720: +#line 10958 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_row_count(thd); if (unlikely((yyval.item) == NULL)) @@ -37571,51 +37639,51 @@ Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); Lex->safe_to_cache_query= 0; } -#line 37575 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37643 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1720: -#line 10942 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1721: +#line 10966 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_round(thd, (yyvsp[-3].item), (yyvsp[-1].item), 1); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37585 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37653 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1721: -#line 10948 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1722: +#line 10972 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_week(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37595 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37663 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1722: -#line 10954 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1723: +#line 10978 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_week(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37605 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37673 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1723: -#line 10960 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1724: +#line 10984 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_weight_string(thd, (yyvsp[-2].item), 0, 0, (yyvsp[-1].ulong_num)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37615 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37683 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1724: -#line 10966 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1725: +#line 10990 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_weight_string(thd, (yyvsp[-5].item), 0, (yyvsp[-2].ulong_num), @@ -37623,11 +37691,11 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37627 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37695 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1725: -#line 10974 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1726: +#line 10998 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Item *item= new (thd->mem_root) Item_char_typecast(thd, (yyvsp[-4].item), (yyvsp[-1].ulong_num), &my_charset_bin); @@ -37639,22 +37707,22 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37643 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37711 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1726: -#line 10986 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1727: +#line 11010 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_weight_string(thd, (yyvsp[-7].item), (yyvsp[-5].ulong_num), (yyvsp[-3].ulong_num), (yyvsp[-1].ulong_num)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37654 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37722 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1727: -#line 10993 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1728: +#line 11017 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { #ifdef HAVE_SPATIAL (yyval.item)= (yyvsp[0].item); @@ -37666,104 +37734,104 @@ sym_group_geom.needed_define)); #endif } -#line 37670 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37738 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1728: -#line 11008 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1729: +#line 11032 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= GEOM_NEW(thd, Item_func_spatial_precise_rel(thd, (yyvsp[-3].item), (yyvsp[-1].item), Item_func::SP_CONTAINS_FUNC)); } -#line 37680 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37748 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1729: -#line 11014 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1730: +#line 11038 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= GEOM_NEW(thd, Item_func_spatial_collection(thd, *(yyvsp[-1].item_list), Geometry::wkb_geometrycollection, Geometry::wkb_point)); } -#line 37691 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37759 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1730: -#line 11021 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1731: +#line 11045 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= GEOM_NEW(thd, Item_func_spatial_collection(thd, *(yyvsp[-1].item_list), Geometry::wkb_linestring, Geometry::wkb_point)); } -#line 37702 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37770 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1731: -#line 11028 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1732: +#line 11052 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= GEOM_NEW(thd, Item_func_spatial_collection(thd, *(yyvsp[-1].item_list), Geometry::wkb_multilinestring, Geometry::wkb_linestring)); } -#line 37713 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37781 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1732: -#line 11035 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1733: +#line 11059 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= GEOM_NEW(thd, Item_func_spatial_collection(thd, *(yyvsp[-1].item_list), Geometry::wkb_multipoint, Geometry::wkb_point)); } -#line 37724 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37792 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1733: -#line 11042 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1734: +#line 11066 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= GEOM_NEW(thd, Item_func_spatial_collection(thd, *(yyvsp[-1].item_list), Geometry::wkb_multipolygon, Geometry::wkb_polygon)); } -#line 37735 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37803 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1734: -#line 11049 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1735: +#line 11073 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= GEOM_NEW(thd, Item_func_point(thd, (yyvsp[-3].item), (yyvsp[-1].item))); } -#line 37743 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37811 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1735: -#line 11053 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1736: +#line 11077 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= GEOM_NEW(thd, Item_func_spatial_collection(thd, *(yyvsp[-1].item_list), Geometry::wkb_polygon, Geometry::wkb_linestring)); } -#line 37754 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37822 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1736: -#line 11060 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1737: +#line 11084 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= GEOM_NEW(thd, Item_func_spatial_precise_rel(thd, (yyvsp[-3].item), (yyvsp[-1].item), Item_func::SP_WITHIN_FUNC)); } -#line 37763 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37831 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1737: -#line 11077 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1738: +#line 11101 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { #ifdef HAVE_DLOPEN udf_func *udf= 0; @@ -37782,11 +37850,11 @@ (yyval.udf)= udf; #endif } -#line 37786 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37854 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1738: -#line 11096 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1739: +#line 11120 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Create_func *builder; Item *item= NULL; @@ -37835,88 +37903,88 @@ if (unlikely(! ((yyval.item)= item))) MYSQL_YYABORT; } -#line 37839 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37907 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1739: -#line 11145 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1740: +#line 11169 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_func_call_generic(thd, &(yyvsp[-5].ident_cli), &(yyvsp[-3].ident_cli), (yyvsp[-1].item_list))))) MYSQL_YYABORT; } -#line 37848 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37916 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1740: -#line 11153 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1741: +#line 11177 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= (yyvsp[-1].num) | (yyvsp[0].num); } -#line 37854 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37922 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1741: -#line 11155 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1742: +#line 11179 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= FT_BOOL; } -#line 37860 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37928 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1742: -#line 11159 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1743: +#line 11183 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= FT_NL; } -#line 37866 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37934 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1743: -#line 11160 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1744: +#line 11184 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= FT_NL; } -#line 37872 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37940 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1744: -#line 11164 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1745: +#line 11188 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 37878 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37946 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1745: -#line 11165 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1746: +#line 11189 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= FT_EXPAND; } -#line 37884 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37952 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1746: -#line 11169 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1747: +#line 11193 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item_list)= NULL; } -#line 37890 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37958 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1747: -#line 11170 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1748: +#line 11194 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item_list)= (yyvsp[0].item_list); } -#line 37896 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37964 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1748: -#line 11175 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1749: +#line 11199 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item_list)= new (thd->mem_root) List; if (unlikely((yyval.item_list) == NULL)) MYSQL_YYABORT; (yyval.item_list)->push_back((yyvsp[0].item), thd->mem_root); } -#line 37907 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37975 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1749: -#line 11182 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1750: +#line 11206 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[-2].item_list)->push_back((yyvsp[0].item), thd->mem_root); (yyval.item_list)= (yyvsp[-2].item_list); } -#line 37916 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 37984 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1750: -#line 11190 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1751: +#line 11214 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Use Item::name as a storage for the attribute value of user @@ -37940,61 +38008,61 @@ (yyvsp[-2].item)->set_name(thd, (yyvsp[-3].simple_string), (uint) ((yyvsp[-1].simple_string) - (yyvsp[-3].simple_string)), thd->charset()); (yyval.item)= (yyvsp[-2].item); } -#line 37944 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38012 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1751: -#line 11217 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1752: +#line 11241 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_avg(thd, (yyvsp[-1].item), FALSE); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37954 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38022 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1752: -#line 11223 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1753: +#line 11247 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_avg(thd, (yyvsp[-1].item), TRUE); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37964 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38032 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1753: -#line 11229 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1754: +#line 11253 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_and(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37974 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38042 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1754: -#line 11235 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1755: +#line 11259 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_or(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37984 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38052 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1755: -#line 11241 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1756: +#line 11265 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_xor(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37994 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38062 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1756: -#line 11247 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1757: +#line 11271 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Item *item= new (thd->mem_root) Item_int(thd, (int32) 0L, 1); if (unlikely(item == NULL)) @@ -38003,149 +38071,149 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38007 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38075 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1757: -#line 11256 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1758: +#line 11280 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_count(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38017 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38085 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1758: -#line 11262 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1759: +#line 11286 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->in_sum_expr++; } -#line 38023 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38091 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1759: -#line 11264 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1760: +#line 11288 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->in_sum_expr--; } -#line 38029 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38097 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1760: -#line 11266 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1761: +#line 11290 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_count(thd, *(yyvsp[-2].item_list)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38039 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38107 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1761: -#line 11272 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1762: +#line 11296 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_min(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38049 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38117 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1762: -#line 11283 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1763: +#line 11307 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_min(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38059 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38127 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1763: -#line 11289 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1764: +#line 11313 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_max(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38069 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38137 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1764: -#line 11295 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1765: +#line 11319 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_max(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38079 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38147 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1765: -#line 11301 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1766: +#line 11325 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_std(thd, (yyvsp[-1].item), 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38089 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38157 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1766: -#line 11307 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1767: +#line 11331 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_variance(thd, (yyvsp[-1].item), 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38099 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38167 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1767: -#line 11313 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1768: +#line 11337 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_std(thd, (yyvsp[-1].item), 1); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38109 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38177 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1768: -#line 11319 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1769: +#line 11343 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_variance(thd, (yyvsp[-1].item), 1); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38119 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38187 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1769: -#line 11325 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1770: +#line 11349 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_sum(thd, (yyvsp[-1].item), FALSE); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38129 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38197 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1770: -#line 11331 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1771: +#line 11355 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_sum(thd, (yyvsp[-1].item), TRUE); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38139 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38207 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1771: -#line 11337 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1772: +#line 11361 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->in_sum_expr++; } -#line 38145 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38213 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1772: -#line 11341 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1773: +#line 11365 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; sel->in_sum_expr--; @@ -38163,11 +38231,11 @@ (yyvsp[-4].item_list)->empty(); sel->gorder_list.empty(); } -#line 38167 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38235 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1773: -#line 11362 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1774: +#line 11386 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_window_func(thd, (Item_sum *) (yyvsp[-2].item), (yyvsp[0].lex_str_ptr)); if (unlikely((yyval.item) == NULL)) @@ -38175,11 +38243,11 @@ if (unlikely(Select->add_window_func((Item_window_func *) (yyval.item)))) MYSQL_YYABORT; } -#line 38179 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38247 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1774: -#line 11371 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1775: +#line 11395 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(Select->add_window_spec(thd, lex->win_ref, @@ -38194,109 +38262,109 @@ if (unlikely(Select->add_window_func((Item_window_func *) (yyval.item)))) MYSQL_YYABORT; } -#line 38198 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38266 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1776: -#line 11391 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1777: +#line 11415 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { ((Item_sum *) (yyvsp[0].item))->mark_as_window_func_sum_expr(); } -#line 38206 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38274 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1777: -#line 11398 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1778: +#line 11422 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_row_number(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38216 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38284 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1778: -#line 11405 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1779: +#line 11429 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_rank(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38226 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38294 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1779: -#line 11412 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1780: +#line 11436 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_dense_rank(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38236 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38304 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1780: -#line 11419 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1781: +#line 11443 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_percent_rank(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38246 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38314 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1781: -#line 11426 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1782: +#line 11450 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_cume_dist(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38256 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38324 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1782: -#line 11433 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1783: +#line 11457 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_ntile(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38266 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38334 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1783: -#line 11440 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1784: +#line 11464 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_first_value(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38276 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38344 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1784: -#line 11447 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1785: +#line 11471 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_last_value(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38286 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38354 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1785: -#line 11454 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1786: +#line 11478 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_nth_value(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38296 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38364 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1786: -#line 11461 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1787: +#line 11485 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* No second argument defaults to 1. */ Item* item_offset= new (thd->mem_root) Item_uint(thd, 1); @@ -38306,21 +38374,21 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38310 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38378 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1787: -#line 11472 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1788: +#line 11496 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_lead(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38320 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38388 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1788: -#line 11479 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1789: +#line 11503 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* No second argument defaults to 1. */ Item* item_offset= new (thd->mem_root) Item_uint(thd, 1); @@ -38330,21 +38398,21 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38334 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38402 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1789: -#line 11490 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1790: +#line 11514 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_lag(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38344 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38412 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1790: -#line 11502 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1791: +#line 11526 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(Select->add_window_spec(thd, lex->win_ref, @@ -38359,25 +38427,25 @@ if (unlikely(Select->add_window_func((Item_window_func *) (yyval.item)))) MYSQL_YYABORT; } -#line 38363 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38431 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1791: -#line 11520 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1792: +#line 11544 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->prepare_add_window_spec(thd); } -#line 38369 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38437 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1792: -#line 11522 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1793: +#line 11546 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[-6].item); } -#line 38377 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38445 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1793: -#line 11526 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1794: +#line 11550 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Item *args= new (thd->mem_root) Item_decimal(thd, "0.5", 3, thd->charset()); @@ -38391,67 +38459,67 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38395 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38463 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1794: -#line 11543 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1795: +#line 11567 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_percentile_cont(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38405 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38473 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1795: -#line 11549 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1796: +#line 11573 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_percentile_disc(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38415 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38483 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1796: -#line 11558 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1797: +#line 11582 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(add_order_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) MYSQL_YYABORT; } -#line 38424 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38492 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1797: -#line 11567 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1798: +#line 11591 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str_ptr)= (LEX_CSTRING *) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_CSTRING)); if (unlikely((yyval.lex_str_ptr) == NULL)) MYSQL_YYABORT; } -#line 38434 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38502 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1798: -#line 11576 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1799: +#line 11600 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(! Lex->parsing_options.allows_variable)) my_yyabort_error((ER_VIEW_SELECT_VARIABLE, MYF(0))); } -#line 38443 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38511 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1799: -#line 11581 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1800: +#line 11605 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item); } -#line 38451 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38519 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1800: -#line 11588 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1801: +#line 11612 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Item_func_set_user_var *item; (yyval.item)= item= new (thd->mem_root) Item_func_set_user_var(thd, &(yyvsp[-2].lex_str), (yyvsp[0].item)); @@ -38461,11 +38529,11 @@ lex->uncacheable(UNCACHEABLE_SIDEEFFECT); lex->set_var_list.push_back(item, thd->mem_root); } -#line 38465 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38533 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1801: -#line 11598 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1802: +#line 11622 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_get_user_var(thd, &(yyvsp[0].lex_str)); if (unlikely((yyval.item) == NULL)) @@ -38473,134 +38541,134 @@ LEX *lex= Lex; lex->uncacheable(UNCACHEABLE_SIDEEFFECT); } -#line 38477 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38545 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1802: -#line 11606 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1803: +#line 11630 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_sysvar(thd, (yyvsp[-1].var_type), &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 38486 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38554 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1803: -#line 11611 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1804: +#line 11635 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_sysvar(thd, (yyvsp[-3].var_type), &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 38495 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38563 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1804: -#line 11618 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1805: +#line 11642 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num) = 0; } -#line 38501 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38569 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1805: -#line 11619 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1806: +#line 11643 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num) = 1; } -#line 38507 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38575 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1806: -#line 11624 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1807: +#line 11648 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.string)= new (thd->mem_root) String(",", 1, &my_charset_latin1); if (unlikely((yyval.string) == NULL)) MYSQL_YYABORT; } -#line 38517 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38585 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1807: -#line 11629 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1808: +#line 11653 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.string) = (yyvsp[0].string); } -#line 38523 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38591 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1810: -#line 11639 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1811: +#line 11663 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(add_gorder_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) MYSQL_YYABORT; } -#line 38532 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38600 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1811: -#line 11644 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1812: +#line 11668 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(add_gorder_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) MYSQL_YYABORT; } -#line 38541 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38609 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1812: -#line 11651 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1813: +#line 11675 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num) = 0; } -#line 38547 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38615 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1813: -#line 11652 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1814: +#line 11676 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num) = 1; } -#line 38553 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38621 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1814: -#line 11656 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1815: +#line 11680 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 38559 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38627 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1815: -#line 11661 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1816: +#line 11685 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); } -#line 38567 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38635 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1816: -#line 11668 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1817: +#line 11692 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; sel->select_limit= (yyvsp[0].item); sel->offset_limit= 0; sel->explicit_limit= 1; } -#line 38578 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38646 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1817: -#line 11675 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1818: +#line 11699 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; sel->select_limit= (yyvsp[0].item); sel->offset_limit= (yyvsp[-2].item); sel->explicit_limit= 1; } -#line 38589 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38657 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1818: -#line 11682 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1819: +#line 11706 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; sel->select_limit= (yyvsp[-2].item); sel->offset_limit= (yyvsp[0].item); sel->explicit_limit= 1; } -#line 38600 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38668 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1819: -#line 11694 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1820: +#line 11718 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->current_select->inc_in_sum_expr())) @@ -38609,213 +38677,213 @@ MYSQL_YYABORT; } } -#line 38613 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38681 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1820: -#line 11703 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1821: +#line 11727 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->in_sum_expr--; (yyval.item)= (yyvsp[0].item); } -#line 38622 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38690 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1821: -#line 11711 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1822: +#line 11735 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[0].const_simple_string)); Lex->charset= &my_charset_bin; } -#line 38628 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38696 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1822: -#line 11713 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1823: +#line 11737 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->charset= thd->variables.collation_connection; } -#line 38634 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38702 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1823: -#line 11715 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1824: +#line 11739 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[-2].const_simple_string)); } -#line 38640 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38708 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1824: -#line 11717 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1825: +#line 11741 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->charset= thd->variables.collation_connection; } -#line 38646 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38714 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1825: -#line 11719 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1826: +#line 11743 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[-2].const_simple_string)); } -#line 38652 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38720 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1826: -#line 11721 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1827: +#line 11745 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->charset= thd->variables.collation_connection; } -#line 38658 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38726 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1827: -#line 11723 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1828: +#line 11747 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[-2].const_simple_string)); } -#line 38664 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38732 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1828: -#line 11725 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1829: +#line 11749 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->charset= national_charset_info; (yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[0].const_simple_string), 0); } -#line 38673 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 1829: -#line 11729 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_cast_type)= (yyvsp[0].Lex_cast_type); Lex->charset= NULL; } -#line 38679 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38741 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1830: -#line 11730 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 11753 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_cast_type)= (yyvsp[0].Lex_cast_type); Lex->charset= NULL; } -#line 38685 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38747 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1831: -#line 11734 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_cast_type).set(&type_handler_longlong); } -#line 38691 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 11754 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_cast_type)= (yyvsp[0].Lex_cast_type); Lex->charset= NULL; } +#line 38753 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1832: -#line 11735 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 11758 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_cast_type).set(&type_handler_longlong); } -#line 38697 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38759 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1833: -#line 11736 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 11759 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_cast_type).set(&type_handler_longlong); } -#line 38703 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38765 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1834: -#line 11737 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_cast_type).set(&type_handler_ulonglong); } -#line 38709 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 11760 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_cast_type).set(&type_handler_longlong); } +#line 38771 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1835: -#line 11738 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 11761 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.Lex_cast_type).set(&type_handler_ulonglong); } -#line 38715 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38777 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1836: -#line 11739 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_cast_type).set(&type_handler_newdecimal, (yyvsp[0].Lex_length_and_dec)); } -#line 38721 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 11762 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_cast_type).set(&type_handler_ulonglong); } +#line 38783 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1837: -#line 11740 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_cast_type).set(&type_handler_float); } -#line 38727 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 11763 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_cast_type).set(&type_handler_newdecimal, (yyvsp[0].Lex_length_and_dec)); } +#line 38789 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1838: -#line 11741 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_cast_type).set(&type_handler_double, (yyvsp[0].Lex_length_and_dec)); } -#line 38733 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 11764 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_cast_type).set(&type_handler_float); } +#line 38795 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1839: -#line 11745 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_cast_type).set(&type_handler_newdate); } -#line 38739 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 11765 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_cast_type).set(&type_handler_double, (yyvsp[0].Lex_length_and_dec)); } +#line 38801 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1840: -#line 11746 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_cast_type).set(&type_handler_time2, 0, (yyvsp[0].const_simple_string)); } -#line 38745 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 11769 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_cast_type).set(&type_handler_newdate); } +#line 38807 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1841: -#line 11747 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.Lex_cast_type).set(&type_handler_datetime2, 0, (yyvsp[0].const_simple_string)); } -#line 38751 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 11770 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_cast_type).set(&type_handler_time2, 0, (yyvsp[0].const_simple_string)); } +#line 38813 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1842: -#line 11751 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.item_list)= NULL; } -#line 38757 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 11771 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.Lex_cast_type).set(&type_handler_datetime2, 0, (yyvsp[0].const_simple_string)); } +#line 38819 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1843: -#line 11752 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.item_list)= (yyvsp[0].item_list);} -#line 38763 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 11775 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.item_list)= NULL; } +#line 38825 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 1844: -#line 11757 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 11776 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.item_list)= (yyvsp[0].item_list);} +#line 38831 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 1845: +#line 11781 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item_list)= new (thd->mem_root) List; if (unlikely((yyval.item_list) == NULL) || unlikely((yyval.item_list)->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; } -#line 38774 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38842 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1845: -#line 11764 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1846: +#line 11788 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[-2].item_list)->push_back((yyvsp[0].item), thd->mem_root); (yyval.item_list)= (yyvsp[-2].item_list); } -#line 38783 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38851 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1846: -#line 11771 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1847: +#line 11795 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item_list)= (yyvsp[0].item_list); } -#line 38789 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38857 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1847: -#line 11772 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1848: +#line 11796 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item_list)= (yyvsp[-1].item_list); } -#line 38795 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38863 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1848: -#line 11777 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1849: +#line 11801 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item_list)= new (thd->mem_root) List; if (unlikely((yyval.item_list) == NULL) || unlikely((yyval.item_list)->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; } -#line 38806 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38874 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1849: -#line 11784 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1850: +#line 11808 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[-2].item_list)->push_back((yyvsp[0].item), thd->mem_root); (yyval.item_list)= (yyvsp[-2].item_list); } -#line 38815 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38883 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1850: -#line 11792 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1851: +#line 11816 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item_list)= new (thd->mem_root) List; if (unlikely((yyval.item_list) == NULL)) @@ -38824,32 +38892,32 @@ (yyval.item_list)->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; } -#line 38828 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38896 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1851: -#line 11801 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1852: +#line 11825 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[-4].item_list)->push_back((yyvsp[-2].item), thd->mem_root) || (yyvsp[-4].item_list)->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; (yyval.item_list)= (yyvsp[-4].item_list); } -#line 38839 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38907 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1853: -#line 11812 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1854: +#line 11836 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[-2].item_list)->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; (yyval.item_list)= (yyvsp[-2].item_list); } -#line 38849 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38917 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1854: -#line 11821 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1855: +#line 11845 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item_list)= new (thd->mem_root) List; if (unlikely((yyval.item_list) == NULL) || @@ -38858,27 +38926,27 @@ MYSQL_YYABORT; } -#line 38862 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38930 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1855: -#line 11830 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1856: +#line 11854 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item_list)= (yyvsp[-2].item_list); if (unlikely((yyval.item_list)->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; } -#line 38872 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38940 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1856: -#line 11841 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1857: +#line 11865 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.table_list)= (yyvsp[0].table_list); } -#line 38878 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38946 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1857: -#line 11843 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1858: +#line 11867 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(!((yyval.table_list)= lex->current_select->nest_last_join(thd)))) @@ -38887,54 +38955,54 @@ MYSQL_YYABORT; } } -#line 38891 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38959 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1858: -#line 11854 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1859: +#line 11878 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyval.table_list)=(yyvsp[0].table_list)); } -#line 38897 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38965 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1859: -#line 11865 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1860: +#line 11889 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.table_list)=(yyvsp[0].table_list); } -#line 38903 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38971 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1860: -#line 11866 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1861: +#line 11890 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.table_list)=(yyvsp[-1].table_list); } -#line 38909 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38977 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1861: -#line 11872 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1862: +#line 11896 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.table_list)=(yyvsp[0].table_list); } -#line 38915 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38983 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1862: -#line 11874 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1863: +#line 11898 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-2].table_list) && ((yyval.table_list)=(yyvsp[0].table_list))); } -#line 38923 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 38991 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1863: -#line 11892 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1864: +#line 11916 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-2].table_list) && ((yyval.table_list)=(yyvsp[0].table_list))); if (unlikely(Select->add_cross_joined_table((yyvsp[-2].table_list), (yyvsp[0].table_list), (yyvsp[-1].num)))) MYSQL_YYABORT; } -#line 38934 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39002 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1864: -#line 11900 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1865: +#line 11924 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-3].table_list) && (yyvsp[-1].table_list)); /* Change the current name resolution context to a local context. */ @@ -38942,50 +39010,50 @@ MYSQL_YYABORT; Select->parsing_place= IN_ON; } -#line 38946 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39014 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1865: -#line 11908 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1866: +#line 11932 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[-3].table_list)->straight=(yyvsp[-4].num); add_join_on(thd, (yyvsp[-3].table_list), (yyvsp[0].item)); (yyvsp[-3].table_list)->on_context= Lex->pop_context(); Select->parsing_place= NO_MATTER; } -#line 38957 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39025 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1866: -#line 11916 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1867: +#line 11940 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-3].table_list) && (yyvsp[-1].table_list)); } -#line 38965 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39033 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1867: -#line 11920 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1868: +#line 11944 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[-5].table_list)->straight=(yyvsp[-6].num); add_join_natural((yyvsp[-7].table_list),(yyvsp[-5].table_list),(yyvsp[-1].string_list),Select); (yyval.table_list)=(yyvsp[-5].table_list); } -#line 38975 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39043 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1868: -#line 11926 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1869: +#line 11950 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-3].table_list) && ((yyval.table_list)=(yyvsp[0].table_list))); (yyvsp[0].table_list)->straight=(yyvsp[-1].num); add_join_natural((yyvsp[-3].table_list),(yyvsp[0].table_list),NULL,Select); } -#line 38985 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39053 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1869: -#line 11935 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1870: +#line 11959 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[-1].table_list)); /* Change the current name resolution context to a local context. */ @@ -38993,11 +39061,11 @@ MYSQL_YYABORT; Select->parsing_place= IN_ON; } -#line 38997 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39065 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1870: -#line 11943 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1871: +#line 11967 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { add_join_on(thd, (yyvsp[-3].table_list), (yyvsp[0].item)); (yyvsp[-3].table_list)->on_context= Lex->pop_context(); @@ -39005,40 +39073,40 @@ (yyval.table_list)=(yyvsp[-3].table_list); Select->parsing_place= NO_MATTER; } -#line 39009 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39077 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1871: -#line 11951 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1872: +#line 11975 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-4].table_list) && (yyvsp[0].table_list)); } -#line 39017 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39085 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1872: -#line 11955 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1873: +#line 11979 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { add_join_natural((yyvsp[-9].table_list),(yyvsp[-5].table_list),(yyvsp[-1].string_list),Select); (yyvsp[-5].table_list)->outer_join|=JOIN_TYPE_LEFT; (yyval.table_list)=(yyvsp[-5].table_list); } -#line 39027 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39095 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1873: -#line 11961 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1874: +#line 11985 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[0].table_list)); add_join_natural((yyvsp[-5].table_list),(yyvsp[0].table_list),NULL,Select); (yyvsp[0].table_list)->outer_join|=JOIN_TYPE_LEFT; (yyval.table_list)=(yyvsp[0].table_list); } -#line 39038 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39106 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1874: -#line 11971 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1875: +#line 11995 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[-1].table_list)); /* Change the current name resolution context to a local context. */ @@ -39046,11 +39114,11 @@ MYSQL_YYABORT; Select->parsing_place= IN_ON; } -#line 39050 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39118 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1875: -#line 11979 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1876: +#line 12003 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(!((yyval.table_list)= lex->current_select->convert_right_join()))) @@ -39059,30 +39127,30 @@ (yyvsp[-7].table_list)->on_context= Lex->pop_context(); Select->parsing_place= NO_MATTER; } -#line 39063 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39131 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1876: -#line 11988 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1877: +#line 12012 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-4].table_list) && (yyvsp[0].table_list)); } -#line 39071 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39139 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1877: -#line 11992 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1878: +#line 12016 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(!((yyval.table_list)= lex->current_select->convert_right_join()))) MYSQL_YYABORT; add_join_natural((yyval.table_list),(yyvsp[-5].table_list),(yyvsp[-1].string_list),Select); } -#line 39082 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39150 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1878: -#line 11999 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1879: +#line 12023 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[0].table_list)); add_join_natural((yyvsp[0].table_list),(yyvsp[-5].table_list),NULL,Select); @@ -39090,65 +39158,65 @@ if (unlikely(!((yyval.table_list)= lex->current_select->convert_right_join()))) MYSQL_YYABORT; } -#line 39094 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39162 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1879: -#line 12010 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1880: +#line 12034 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num) = 0; } -#line 39100 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39168 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1880: -#line 12011 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1881: +#line 12035 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num) = 0; } -#line 39106 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39174 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1881: -#line 12012 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1882: +#line 12036 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num) = 1; } -#line 39112 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39180 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1882: -#line 12016 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1883: +#line 12040 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num) = (yyvsp[0].num); } -#line 39118 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39186 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1883: -#line 12017 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1884: +#line 12041 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num) = 0; } -#line 39124 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39192 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1884: -#line 12025 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1885: +#line 12049 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.string_list)= 0;} -#line 39130 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39198 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1886: -#line 12031 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1887: +#line 12055 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.string_list)= (yyvsp[-2].string_list); } -#line 39138 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39206 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1889: -#line 12050 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1890: +#line 12074 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Select); SELECT_LEX *sel= Select; sel->table_join_options= 0; } -#line 39148 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39216 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1890: -#line 12056 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1891: +#line 12080 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.table_list)= Select->add_table_to_list(thd, (yyvsp[-4].table), (yyvsp[-1].lex_str_ptr), Select->get_table_join_options(), @@ -39163,11 +39231,11 @@ if ((yyvsp[-2].num)) tl->vers_conditions= Lex->vers_conditions; } -#line 39167 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39235 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1891: -#line 12092 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1892: +#line 12116 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Use $2 instead of Lex->current_select as derived table will alter value of Lex->current_select. */ @@ -39232,11 +39300,11 @@ (yyval.table_list)->vers_conditions= Lex->vers_conditions; } } -#line 39236 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39304 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1892: -#line 12160 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1893: +#line 12184 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; SELECT_LEX *sel= (yyvsp[-7].select_lex); @@ -39255,11 +39323,11 @@ if ((yyvsp[-1].num)) (yyval.table_list)->vers_conditions= Lex->vers_conditions; } -#line 39259 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39327 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1894: -#line 12202 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1895: +#line 12226 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[-1].table_list))) { @@ -39267,11 +39335,11 @@ MYSQL_YYABORT; } } -#line 39271 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39339 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1895: -#line 12210 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1896: +#line 12234 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[-1].table_list))) { @@ -39279,37 +39347,37 @@ MYSQL_YYABORT; } } -#line 39283 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39351 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1900: -#line 12224 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1901: +#line 12248 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->pop_context(); } -#line 39289 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39357 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1901: -#line 12225 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1902: +#line 12249 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->pop_context(); } -#line 39295 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39363 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1902: -#line 12226 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1903: +#line 12250 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->pop_context(); } -#line 39301 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39369 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1905: -#line 12237 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1906: +#line 12261 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->set_braces(0); } -#line 39309 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39377 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1906: -#line 12244 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1907: +#line 12268 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; SELECT_LEX *sel= lex->current_select; @@ -39317,19 +39385,19 @@ mysql_init_select(lex); lex->current_select->parsing_place= SELECT_LIST; } -#line 39321 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39389 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1907: -#line 12252 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1908: +#line 12276 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->parsing_place= NO_MATTER; } -#line 39329 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39397 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1908: -#line 12260 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1909: +#line 12284 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; /* for normal joins, $2 != NULL and end_nested_join() != NULL, @@ -39343,51 +39411,51 @@ MYSQL_YYABORT; } } -#line 39347 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39415 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1909: -#line 12276 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1910: +#line 12300 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.table_list)= (yyvsp[0].table_list); } -#line 39353 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39421 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1910: -#line 12277 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1911: +#line 12301 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.table_list)= (yyvsp[0].table_list); } -#line 39359 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39427 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1911: -#line 12286 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1912: +#line 12310 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if ((yyvsp[-1].num)) Select->set_braces(1); (yyval.table_list)= NULL; } -#line 39369 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39437 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1912: -#line 12295 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1913: +#line 12319 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->tvc_start(); } -#line 39377 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39445 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1913: -#line 12299 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1914: +#line 12323 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (Lex->tvc_finalize_derived()) MYSQL_YYABORT; (yyval.table_list)= NULL; } -#line 39387 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39455 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1914: -#line 12308 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1915: +#line 12332 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->derived_tables|= DERIVED_SUBQUERY; @@ -39404,35 +39472,35 @@ lex->current_select->linkage= DERIVED_TABLE_TYPE; lex->current_select->parsing_place= SELECT_LIST; } -#line 39408 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39476 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1915: -#line 12325 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1916: +#line 12349 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->parsing_place= NO_MATTER; } -#line 39416 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39484 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1917: -#line 12332 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1918: +#line 12356 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.select_lex)= Select; } -#line 39422 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39490 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1918: -#line 12337 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1919: +#line 12361 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely((yyvsp[0].select_lex)->init_nested_join(lex->thd))) MYSQL_YYABORT; } -#line 39432 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39500 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1919: -#line 12345 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1920: +#line 12369 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; @@ -39441,113 +39509,113 @@ !embedding->nested_join->join_list.elements; /* return true if we are deeply nested */ } -#line 39445 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39513 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1920: -#line 12356 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1921: +#line 12380 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 39451 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39519 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1921: -#line 12357 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1922: +#line 12381 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 39457 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39525 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1922: -#line 12362 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1923: +#line 12386 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= thd->variables.old_mode ? INDEX_HINT_MASK_JOIN : INDEX_HINT_MASK_ALL; } -#line 39465 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39533 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1923: -#line 12365 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1924: +#line 12389 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= INDEX_HINT_MASK_JOIN; } -#line 39471 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39539 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1924: -#line 12366 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1925: +#line 12390 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= INDEX_HINT_MASK_ORDER; } -#line 39477 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39545 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1925: -#line 12367 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1926: +#line 12391 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= INDEX_HINT_MASK_GROUP; } -#line 39483 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39551 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1926: -#line 12371 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1927: +#line 12395 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.index_hint)= INDEX_HINT_FORCE; } -#line 39489 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39557 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1927: -#line 12372 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1928: +#line 12396 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.index_hint)= INDEX_HINT_IGNORE; } -#line 39495 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39563 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1928: -#line 12377 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1929: +#line 12401 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->set_index_hint_type((yyvsp[-2].index_hint), (yyvsp[0].num)); } -#line 39503 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39571 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1930: -#line 12382 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1931: +#line 12406 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->set_index_hint_type(INDEX_HINT_USE, (yyvsp[0].num)); } -#line 39511 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39579 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1935: -#line 12395 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1936: +#line 12419 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->alloc_index_hints(thd); } -#line 39517 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39585 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1937: -#line 12399 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1938: +#line 12423 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->clear_index_hints(); } -#line 39523 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39591 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1939: -#line 12404 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1940: +#line 12428 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->add_index_hint(thd, NULL, 0); } -#line 39529 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39597 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1940: -#line 12405 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1941: +#line 12429 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 39535 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39603 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1941: -#line 12410 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1942: +#line 12434 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->add_index_hint(thd, (yyvsp[0].ident_sys).str, (yyvsp[0].ident_sys).length); } -#line 39541 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39609 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1942: -#line 12412 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1943: +#line 12436 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->add_index_hint(thd, "PRIMARY", 7); } -#line 39547 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39615 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1945: -#line 12422 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1946: +#line 12446 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.string_list)= new (thd->mem_root) List))) MYSQL_YYABORT; @@ -39558,11 +39626,11 @@ MYSQL_YYABORT; (yyval.string_list)->push_back(s, thd->mem_root); } -#line 39562 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39630 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1946: -#line 12433 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1947: +#line 12457 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { String *s= new (thd->mem_root) String((const char *) (yyvsp[0].ident_sys).str, (yyvsp[0].ident_sys).length, @@ -39573,191 +39641,191 @@ MYSQL_YYABORT; (yyval.string_list)= (yyvsp[-2].string_list); } -#line 39577 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39645 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1947: -#line 12446 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1948: +#line 12470 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 39583 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39651 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1948: -#line 12447 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1949: +#line 12471 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_DAY_HOUR; } -#line 39589 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39657 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1949: -#line 12448 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1950: +#line 12472 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_DAY_MICROSECOND; } -#line 39595 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39663 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1950: -#line 12449 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1951: +#line 12473 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_DAY_MINUTE; } -#line 39601 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39669 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1951: -#line 12450 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1952: +#line 12474 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_DAY_SECOND; } -#line 39607 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39675 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1952: -#line 12451 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1953: +#line 12475 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_HOUR_MICROSECOND; } -#line 39613 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39681 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1953: -#line 12452 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1954: +#line 12476 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_HOUR_MINUTE; } -#line 39619 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39687 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1954: -#line 12453 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1955: +#line 12477 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_HOUR_SECOND; } -#line 39625 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39693 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1955: -#line 12454 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1956: +#line 12478 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_MINUTE_MICROSECOND; } -#line 39631 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39699 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1956: -#line 12455 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1957: +#line 12479 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_MINUTE_SECOND; } -#line 39637 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39705 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1957: -#line 12456 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1958: +#line 12480 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_SECOND_MICROSECOND; } -#line 39643 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39711 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1958: -#line 12457 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1959: +#line 12481 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_YEAR_MONTH; } -#line 39649 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39717 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1959: -#line 12461 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1960: +#line 12485 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval_time_st)=INTERVAL_DAY; } -#line 39655 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39723 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1960: -#line 12462 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1961: +#line 12486 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval_time_st)=INTERVAL_WEEK; } -#line 39661 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39729 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1961: -#line 12463 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1962: +#line 12487 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval_time_st)=INTERVAL_HOUR; } -#line 39667 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39735 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1962: -#line 12464 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1963: +#line 12488 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval_time_st)=INTERVAL_MINUTE; } -#line 39673 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39741 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1963: -#line 12465 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1964: +#line 12489 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval_time_st)=INTERVAL_MONTH; } -#line 39679 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39747 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1964: -#line 12466 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1965: +#line 12490 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval_time_st)=INTERVAL_QUARTER; } -#line 39685 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39753 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1965: -#line 12467 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1966: +#line 12491 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval_time_st)=INTERVAL_SECOND; } -#line 39691 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39759 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1966: -#line 12468 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1967: +#line 12492 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval_time_st)=INTERVAL_MICROSECOND; } -#line 39697 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39765 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1967: -#line 12469 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1968: +#line 12493 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.interval_time_st)=INTERVAL_YEAR; } -#line 39703 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39771 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1968: -#line 12473 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1969: +#line 12497 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATE;} -#line 39709 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39777 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1969: -#line 12474 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1970: +#line 12498 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {(yyval.date_time_type)=MYSQL_TIMESTAMP_TIME;} -#line 39715 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39783 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1970: -#line 12475 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1971: +#line 12499 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;} -#line 39721 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39789 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1971: -#line 12476 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1972: +#line 12500 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;} -#line 39727 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39795 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1975: -#line 12486 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1976: +#line 12510 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str_ptr)=0; } -#line 39733 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39801 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1976: -#line 12488 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1977: +#line 12512 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str_ptr)= (LEX_CSTRING*) thd->memdup(&(yyvsp[0].ident_sys),sizeof(LEX_STRING)); if (unlikely((yyval.lex_str_ptr) == NULL)) MYSQL_YYABORT; } -#line 39743 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39811 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1979: -#line 12501 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1980: +#line 12525 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->where= 0; } -#line 39749 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39817 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1980: -#line 12503 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1981: +#line 12527 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->parsing_place= IN_WHERE; } -#line 39757 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39825 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1981: -#line 12507 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1982: +#line 12531 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { SELECT_LEX *select= Select; select->where= normalize_cond(thd, (yyvsp[0].item)); @@ -39765,19 +39833,19 @@ if ((yyvsp[0].item)) (yyvsp[0].item)->top_level_item(); } -#line 39769 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39837 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1983: -#line 12519 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1984: +#line 12543 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->parsing_place= IN_HAVING; } -#line 39777 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39845 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1984: -#line 12523 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1985: +#line 12547 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; sel->having= normalize_cond(thd, (yyvsp[0].item)); @@ -39785,20 +39853,20 @@ if ((yyvsp[0].item)) (yyvsp[0].item)->top_level_item(); } -#line 39789 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39857 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1985: -#line 12534 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1986: +#line 12558 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->escape_used= TRUE; (yyval.item)= (yyvsp[0].item); } -#line 39798 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39866 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1986: -#line 12539 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1987: +#line 12563 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->escape_used= FALSE; (yyval.item)= ((thd->variables.sql_mode & MODE_NO_BACKSLASH_ESCAPES) ? @@ -39807,35 +39875,35 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 39811 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39879 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1989: -#line 12560 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1990: +#line 12584 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(add_group_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) MYSQL_YYABORT; } -#line 39820 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39888 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1990: -#line 12565 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1991: +#line 12589 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(add_group_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) MYSQL_YYABORT; } -#line 39829 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39897 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1991: -#line 12572 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1992: +#line 12596 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 39835 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39903 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1992: -#line 12574 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1993: +#line 12598 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* 'WITH CUBE' is reserved in the MySQL syntax, but not implemented, @@ -39852,11 +39920,11 @@ my_yyabort_error((ER_NOT_SUPPORTED_YET, MYF(0), "CUBE")); } -#line 39856 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39924 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1993: -#line 12591 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1994: +#line 12615 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* 'WITH ROLLUP' is needed for backward compatibility, @@ -39871,23 +39939,23 @@ "global union parameters")); lex->current_select->olap= ROLLUP_TYPE; } -#line 39875 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39943 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1994: -#line 12613 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1995: +#line 12637 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 39881 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39949 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1995: -#line 12616 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1996: +#line 12640 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 39887 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39955 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1998: -#line 12626 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 1999: +#line 12650 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(Select->add_window_def(thd, (yyvsp[-2].lex_str_ptr), lex->win_ref, @@ -39896,51 +39964,51 @@ lex->win_frame))) MYSQL_YYABORT; } -#line 39900 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39968 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 1999: -#line 12638 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2000: +#line 12662 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->prepare_add_window_spec(thd); } -#line 39906 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39974 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2001: -#line 12645 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2002: +#line 12669 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 39912 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39980 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2002: -#line 12647 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2003: +#line 12671 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { thd->lex->win_ref= (LEX_CSTRING *) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_CSTRING)); if (unlikely(thd->lex->win_ref == NULL)) MYSQL_YYABORT; } -#line 39922 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39990 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2003: -#line 12654 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2004: +#line 12679 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 39928 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 39996 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2005: -#line 12659 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2006: +#line 12684 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 39934 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40002 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2007: -#line 12664 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2008: +#line 12689 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 39940 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40008 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2008: -#line 12666 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2009: +#line 12691 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->win_frame= @@ -39951,23 +40019,23 @@ if (unlikely(lex->win_frame == NULL)) MYSQL_YYABORT; } -#line 39955 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40023 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2009: -#line 12679 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2010: +#line 12704 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.frame_units)= Window_frame::UNITS_ROWS; } -#line 39961 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40029 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2010: -#line 12680 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2011: +#line 12705 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.frame_units)= Window_frame::UNITS_RANGE; } -#line 39967 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40035 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2011: -#line 12685 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2012: +#line 12710 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->frame_top_bound= (yyvsp[0].window_frame_bound); @@ -39977,128 +40045,128 @@ if (unlikely(lex->frame_bottom_bound == NULL)) MYSQL_YYABORT; } -#line 39981 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40049 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2012: -#line 12695 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2013: +#line 12720 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->frame_top_bound= (yyvsp[-2].window_frame_bound); lex->frame_bottom_bound= (yyvsp[0].window_frame_bound); } -#line 39991 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40059 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2013: -#line 12704 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2014: +#line 12729 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.window_frame_bound)= new (thd->mem_root) Window_frame_bound(Window_frame_bound::PRECEDING, NULL); if (unlikely((yyval.window_frame_bound) == NULL)) MYSQL_YYABORT; } -#line 40002 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40070 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2014: -#line 12711 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2015: +#line 12736 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.window_frame_bound)= new (thd->mem_root) Window_frame_bound(Window_frame_bound::CURRENT, NULL); if (unlikely((yyval.window_frame_bound) == NULL)) MYSQL_YYABORT; } -#line 40013 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40081 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2015: -#line 12718 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2016: +#line 12743 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.window_frame_bound)= new (thd->mem_root) Window_frame_bound(Window_frame_bound::PRECEDING, (yyvsp[-1].item)); if (unlikely((yyval.window_frame_bound) == NULL)) MYSQL_YYABORT; } -#line 40024 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40092 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2016: -#line 12727 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2017: +#line 12752 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.window_frame_bound)= (yyvsp[0].window_frame_bound); } -#line 40030 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40098 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2017: -#line 12729 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2018: +#line 12754 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.window_frame_bound)= new (thd->mem_root) Window_frame_bound(Window_frame_bound::FOLLOWING, NULL); if (unlikely((yyval.window_frame_bound) == NULL)) MYSQL_YYABORT; } -#line 40041 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40109 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2018: -#line 12736 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2019: +#line 12761 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.window_frame_bound)= new (thd->mem_root) Window_frame_bound(Window_frame_bound::FOLLOWING, (yyvsp[-1].item)); if (unlikely((yyval.window_frame_bound) == NULL)) MYSQL_YYABORT; } -#line 40052 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40120 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2019: -#line 12745 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2020: +#line 12770 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.frame_exclusion)= Window_frame::EXCL_NONE; } -#line 40058 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40126 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2020: -#line 12747 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2021: +#line 12772 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.frame_exclusion)= Window_frame::EXCL_CURRENT_ROW; } -#line 40064 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40132 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2021: -#line 12749 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2022: +#line 12774 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.frame_exclusion)= Window_frame::EXCL_GROUP; } -#line 40070 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40138 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2022: -#line 12751 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2023: +#line 12776 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.frame_exclusion)= Window_frame::EXCL_TIES; } -#line 40076 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40144 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2023: -#line 12753 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2024: +#line 12778 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.frame_exclusion)= Window_frame::EXCL_NONE; } -#line 40082 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40150 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2024: -#line 12755 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2025: +#line 12780 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.frame_exclusion)= Window_frame::EXCL_NONE; } -#line 40088 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40156 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2028: -#line 12773 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2029: +#line 12798 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { bool ascending= ((yyvsp[0].num) == 1) ? true : false; if (unlikely(add_order_to_list(thd, (yyvsp[-1].item), ascending))) MYSQL_YYABORT; } -#line 40098 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40166 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2031: -#line 12791 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2032: +#line 12816 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; SELECT_LEX *sel= lex->current_select; @@ -40141,67 +40209,67 @@ lex->current_select= sel->master_unit()->fake_select_lex; } } -#line 40145 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40213 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2032: -#line 12834 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2033: +#line 12859 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 40153 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40221 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2033: -#line 12841 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2034: +#line 12866 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(add_order_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) MYSQL_YYABORT; } -#line 40162 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40230 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2034: -#line 12846 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2035: +#line 12871 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(add_order_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) MYSQL_YYABORT; } -#line 40171 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40239 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2035: -#line 12853 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2036: +#line 12878 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num) = 1; } -#line 40177 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40245 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2036: -#line 12854 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2037: +#line 12879 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num) =1; } -#line 40183 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40251 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2037: -#line 12855 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2038: +#line 12880 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num) =0; } -#line 40189 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40257 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2038: -#line 12859 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2039: +#line 12884 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 40195 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40263 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2039: -#line 12860 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2040: +#line 12885 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 40201 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40269 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2040: -#line 12865 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2041: +#line 12890 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; if (sel->master_unit()->is_unit_op() && !sel->braces) @@ -40211,366 +40279,366 @@ DBUG_ASSERT(Select); } } -#line 40215 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40283 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2041: -#line 12878 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2042: +#line 12903 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; if (!sel->select_limit->basic_const_item() || sel->select_limit->val_int() > 0) Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); } -#line 40226 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40294 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2042: -#line 12886 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2043: +#line 12911 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); } -#line 40234 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40302 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2043: -#line 12890 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2044: +#line 12915 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); } -#line 40242 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40310 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2044: -#line 12897 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2045: +#line 12922 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; sel->select_limit= (yyvsp[0].item); sel->offset_limit= 0; sel->explicit_limit= 1; } -#line 40253 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40321 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2045: -#line 12904 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2046: +#line 12929 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; sel->select_limit= (yyvsp[0].item); sel->offset_limit= (yyvsp[-2].item); sel->explicit_limit= 1; } -#line 40264 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40332 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2046: -#line 12911 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2047: +#line 12936 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; sel->select_limit= (yyvsp[-2].item); sel->offset_limit= (yyvsp[0].item); sel->explicit_limit= 1; } -#line 40275 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40343 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2047: -#line 12921 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2048: +#line 12946 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_limit(thd, &(yyvsp[0].ident_cli))))) MYSQL_YYABORT; } -#line 40284 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40352 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2048: -#line 12926 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2049: +#line 12951 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_limit(thd, &(yyvsp[-2].ident_cli), &(yyvsp[0].ident_cli))))) MYSQL_YYABORT; } -#line 40293 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40361 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2049: -#line 12931 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2050: +#line 12956 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[0].item_param)->limit_clause_param= TRUE; } -#line 40301 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40369 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2050: -#line 12935 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2051: +#line 12960 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_uint(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 40311 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40379 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2051: -#line 12941 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2052: +#line 12966 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_uint(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 40321 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40389 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2052: -#line 12947 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2053: +#line 12972 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_uint(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 40331 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40399 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2053: -#line 12956 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2054: +#line 12981 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->limit_rows_examined= (yyvsp[0].item); } -#line 40340 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40408 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2054: -#line 12963 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2055: +#line 12989 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->current_select->select_limit= 0; } -#line 40349 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40417 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2055: -#line 12968 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2056: +#line 12994 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; sel->select_limit= (yyvsp[0].item); Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); sel->explicit_limit= 1; } -#line 40360 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 2056: -#line 12974 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { thd->parse_error(); MYSQL_YYABORT; } -#line 40366 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40428 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2057: -#line 12975 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13000 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { thd->parse_error(); MYSQL_YYABORT; } -#line 40372 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40434 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2060: -#line 12984 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { int error; (yyval.num)= (int) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40378 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + case 2058: +#line 13001 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { thd->parse_error(); MYSQL_YYABORT; } +#line 40440 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2061: -#line 12985 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { int error; (yyval.num)= -(int) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40384 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 13010 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { int error; (yyval.num)= (int) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 40446 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2062: -#line 12988 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40390 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 13011 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { int error; (yyval.num)= -(int) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 40452 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2063: -#line 12989 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.ulong_num)= (ulong) strtol((yyvsp[0].lex_str).str, (char**) 0, 16); } -#line 40396 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 13015 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 40458 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2064: -#line 12990 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40402 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 13016 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.ulong_num)= (ulong) strtol((yyvsp[0].lex_str).str, (char**) 0, 16); } +#line 40464 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2065: -#line 12991 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13017 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40408 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40470 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2066: -#line 12992 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13018 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40414 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40476 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2067: -#line 12993 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13019 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40420 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40482 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2068: -#line 12997 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13020 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40426 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40488 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2069: -#line 12998 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.ulong_num)= (ulong) strtol((yyvsp[0].lex_str).str, (char**) 0, 16); } -#line 40432 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 13024 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 40494 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2070: -#line 12999 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40438 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 13025 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.ulong_num)= (ulong) strtol((yyvsp[0].lex_str).str, (char**) 0, 16); } +#line 40500 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2071: -#line 13000 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13026 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40444 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40506 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2072: -#line 13001 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { MYSQL_YYABORT; } -#line 40450 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 13027 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 40512 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2073: -#line 13005 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { int error; (yyval.longlong_number)= (longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40456 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 13028 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { MYSQL_YYABORT; } +#line 40518 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2074: -#line 13006 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13032 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { int error; (yyval.longlong_number)= (longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40462 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40524 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2075: -#line 13007 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { int error; (yyval.longlong_number)= -(longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40468 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 13033 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { int error; (yyval.longlong_number)= (longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 40530 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2076: -#line 13008 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13034 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { int error; (yyval.longlong_number)= -(longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40474 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40536 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2077: -#line 13012 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40480 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 13035 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { int error; (yyval.longlong_number)= -(longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 40542 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2078: -#line 13013 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13039 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40486 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40548 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2079: -#line 13014 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13040 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40492 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40554 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2080: -#line 13015 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13041 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40498 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40560 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2081: -#line 13016 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13042 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40504 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40566 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2082: -#line 13020 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13043 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40510 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40572 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2083: -#line 13021 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13047 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40516 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40578 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2084: -#line 13022 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.ulonglong_number)= strtoull((yyvsp[0].lex_str).str, (char**) 0, 16); } -#line 40522 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 13048 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 40584 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2085: -#line 13023 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40528 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 13049 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.ulonglong_number)= strtoull((yyvsp[0].lex_str).str, (char**) 0, 16); } +#line 40590 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2086: -#line 13024 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { MYSQL_YYABORT; } -#line 40534 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 13050 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 40596 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2087: -#line 13029 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13051 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { MYSQL_YYABORT; } +#line 40602 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 2088: +#line 13056 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { thd->parse_error(ER_ONLY_INTEGERS_ALLOWED); } -#line 40540 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40608 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2090: -#line 13038 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2091: +#line 13065 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.choice)= (yyvsp[0].ulong_num) != 0 ? HA_CHOICE_YES : HA_CHOICE_NO; } -#line 40546 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40614 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2091: -#line 13039 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2092: +#line 13066 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.choice)= HA_CHOICE_UNDEF; } -#line 40552 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40620 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2092: -#line 13043 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2093: +#line 13070 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[0].ulong_num) != 0; } -#line 40558 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40626 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2093: -#line 13044 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2094: +#line 13071 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= 1; } -#line 40564 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40632 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2094: -#line 13045 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2095: +#line 13072 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= 0; } -#line 40570 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40638 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2095: -#line 13050 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2096: +#line 13077 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; @@ -40596,43 +40664,43 @@ */ Lex->expr_allows_subselect= false; } -#line 40600 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40668 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2096: -#line 13076 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2097: +#line 13103 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Subqueries are allowed from now.*/ Lex->expr_allows_subselect= true; } -#line 40609 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40677 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2097: -#line 13083 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2098: +#line 13110 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 40615 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40683 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2098: -#line 13084 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2099: +#line 13111 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 40621 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40689 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2101: -#line 13094 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2102: +#line 13121 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(add_proc_to_list(thd, (yyvsp[-1].item)))) MYSQL_YYABORT; if (!(yyvsp[-1].item)->name.str || (yyvsp[-1].item)->name.str == item_empty_name) (yyvsp[-1].item)->set_name(thd, (yyvsp[-2].simple_string), (uint) ((yyvsp[0].simple_string) - (yyvsp[-2].simple_string)), thd->charset()); } -#line 40632 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40700 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2102: -#line 13103 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2103: +#line 13130 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (!lex->describe && @@ -40640,23 +40708,23 @@ select_dumpvar(thd))))) MYSQL_YYABORT; } -#line 40644 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40712 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2103: -#line 13111 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2104: +#line 13138 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 40650 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40718 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2105: -#line 13116 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2106: +#line 13143 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 40656 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40724 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2106: -#line 13120 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2107: +#line 13147 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (Lex->result) { @@ -40673,37 +40741,37 @@ DBUG_ASSERT(Lex->describe); } } -#line 40677 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40745 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2107: -#line 13140 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2108: +#line 13167 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.myvar) = Lex->result ? new (thd->mem_root) my_var_user(&(yyvsp[0].lex_str)) : NULL; } -#line 40685 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40753 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2108: -#line 13144 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2109: +#line 13171 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.myvar)= Lex->create_outvar(thd, &(yyvsp[0].lex_str))) && Lex->result)) MYSQL_YYABORT; } -#line 40694 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40762 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2109: -#line 13149 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2110: +#line 13176 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.myvar)= Lex->create_outvar(thd, &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))) && Lex->result)) MYSQL_YYABORT; } -#line 40703 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40771 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2111: -#line 13161 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2112: +#line 13188 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->uncacheable(UNCACHEABLE_SIDEEFFECT); @@ -40714,17 +40782,17 @@ select_export(thd, lex->exchange)))) MYSQL_YYABORT; } -#line 40718 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40786 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2112: -#line 13172 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2113: +#line 13199 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->exchange->cs= (yyvsp[0].charset); } -#line 40724 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40792 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2114: -#line 13175 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2115: +#line 13202 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (!lex->describe) @@ -40739,54 +40807,54 @@ MYSQL_YYABORT; } } -#line 40743 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40811 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2115: -#line 13190 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2116: +#line 13217 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->uncacheable(UNCACHEABLE_SIDEEFFECT); } -#line 40751 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40819 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2116: -#line 13201 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2117: +#line 13228 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_DO; mysql_init_select(lex); } -#line 40761 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40829 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2117: -#line 13207 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2118: +#line 13234 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->insert_list= (yyvsp[0].item_list); } -#line 40769 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40837 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2118: -#line 13218 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2119: +#line 13245 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->set_command(SQLCOM_DROP_TABLE, (yyvsp[-2].num), (yyvsp[0].object_ddl_options)); YYPS->m_lock_type= TL_UNLOCK; YYPS->m_mdl_type= MDL_EXCLUSIVE; } -#line 40780 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40848 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2119: -#line 13225 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2120: +#line 13252 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 40786 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40854 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2120: -#line 13227 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2121: +#line 13254 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; Alter_drop *ad= (new (thd->mem_root) @@ -40803,21 +40871,21 @@ MDL_SHARED_UPGRADABLE))) MYSQL_YYABORT; } -#line 40807 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40875 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2121: -#line 13244 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2122: +#line 13271 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->set_command(SQLCOM_DROP_DB, (yyvsp[-1].object_ddl_options)); lex->name= (yyvsp[0].ident_sys); } -#line 40817 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40885 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2122: -#line 13250 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2123: +#line 13277 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; sp_name *spname; @@ -40831,11 +40899,11 @@ MYSQL_YYABORT; lex->spname= spname; } -#line 40835 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40903 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2123: -#line 13264 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2124: +#line 13291 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; LEX_CSTRING db= {0, 0}; @@ -40850,11 +40918,11 @@ MYSQL_YYABORT; lex->spname= spname; } -#line 40854 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40922 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2124: -#line 13279 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2125: +#line 13306 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(lex->sphead)) @@ -40862,90 +40930,90 @@ lex->set_command(SQLCOM_DROP_PROCEDURE, (yyvsp[-1].object_ddl_options)); lex->spname= (yyvsp[0].spname); } -#line 40866 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40934 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2125: -#line 13287 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2126: +#line 13314 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->set_command(SQLCOM_DROP_USER, (yyvsp[-2].object_ddl_options)); } -#line 40874 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40942 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2126: -#line 13291 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2127: +#line 13318 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->set_command(SQLCOM_DROP_ROLE, (yyvsp[-2].object_ddl_options)); } -#line 40882 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40950 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2127: -#line 13295 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2128: +#line 13322 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->set_command(SQLCOM_DROP_VIEW, (yyvsp[0].object_ddl_options)); YYPS->m_lock_type= TL_UNLOCK; YYPS->m_mdl_type= MDL_EXCLUSIVE; } -#line 40893 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40961 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2128: -#line 13302 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2129: +#line 13329 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 40899 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40967 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2129: -#line 13304 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2130: +#line 13331 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->spname= (yyvsp[0].spname); Lex->set_command(SQLCOM_DROP_EVENT, (yyvsp[-1].object_ddl_options)); } -#line 40908 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40976 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2130: -#line 13309 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2131: +#line 13336 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->set_command(SQLCOM_DROP_TRIGGER, (yyvsp[-1].object_ddl_options)); lex->spname= (yyvsp[0].spname); } -#line 40918 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40986 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2131: -#line 13315 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2132: +#line 13342 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= DROP_TABLESPACE; } -#line 40927 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 40995 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2132: -#line 13320 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2133: +#line 13347 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= DROP_LOGFILE_GROUP; } -#line 40936 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41004 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2133: -#line 13325 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2134: +#line 13352 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->set_command(SQLCOM_DROP_SERVER, (yyvsp[-1].object_ddl_options)); Lex->server_options.reset((yyvsp[0].lex_str)); } -#line 40945 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41013 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2134: -#line 13331 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2135: +#line 13358 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->set_command(SQLCOM_DROP_SEQUENCE, (yyvsp[-2].num), (yyvsp[0].object_ddl_options)); @@ -40953,17 +41021,17 @@ YYPS->m_lock_type= TL_UNLOCK; YYPS->m_mdl_type= MDL_EXCLUSIVE; } -#line 40957 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41025 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2135: -#line 13339 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2136: +#line 13366 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 40963 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41031 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2138: -#line 13349 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2139: +#line 13376 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!Select->add_table_to_list(thd, (yyvsp[0].table), NULL, TL_OPTION_UPDATING, @@ -40971,11 +41039,11 @@ YYPS->m_mdl_type))) MYSQL_YYABORT; } -#line 40975 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41043 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2139: -#line 13360 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2140: +#line 13387 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!Select->add_table_to_list(thd, (yyvsp[-1].table), NULL, TL_OPTION_UPDATING, @@ -40985,11 +41053,11 @@ (yyvsp[0].string_list)))) MYSQL_YYABORT; } -#line 40989 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41057 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2142: -#line 13378 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2143: +#line 13405 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!Select-> add_table_to_list(thd, (yyvsp[0].table), NULL, @@ -40999,109 +41067,113 @@ YYPS->m_mdl_type))) MYSQL_YYABORT; } -#line 41003 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41071 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2143: -#line 13391 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2144: +#line 13418 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->check_exists= FALSE; (yyval.num)= 0; } -#line 41012 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41080 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2144: -#line 13396 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2145: +#line 13423 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->check_exists= TRUE; (yyval.num)= 1; } -#line 41021 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41089 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2145: -#line 13404 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2146: +#line 13431 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.object_ddl_options).set(DDL_options_st::OPT_NONE); } -#line 41029 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41097 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2146: -#line 13408 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2147: +#line 13435 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.object_ddl_options).set(DDL_options_st::OPT_IF_EXISTS); } -#line 41037 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41105 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2147: -#line 13414 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2148: +#line 13441 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 41043 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41111 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2148: -#line 13415 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2149: +#line 13442 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= HA_LEX_CREATE_TMP_TABLE; } -#line 41049 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41117 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2149: -#line 13423 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2150: +#line 13450 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_INSERT; lex->duplicates= DUP_ERROR; mysql_init_select(lex); } -#line 41060 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41128 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2150: -#line 13431 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2151: +#line 13458 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->set_lock_for_tables((yyvsp[-2].lock_type), true); Lex->current_select= &Lex->select_lex; } -#line 41069 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41137 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2151: -#line 13436 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 41075 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + case 2152: +#line 13463 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { + Lex->mark_first_table_as_inserting(); + } +#line 41145 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2152: -#line 13441 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2153: +#line 13470 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_REPLACE; lex->duplicates= DUP_REPLACE; mysql_init_select(lex); } -#line 41086 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41156 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2153: -#line 13448 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2154: +#line 13477 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->set_lock_for_tables((yyvsp[-1].lock_type), true); Lex->current_select= &Lex->select_lex; } -#line 41095 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41165 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2154: -#line 13453 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 41101 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + case 2155: +#line 13482 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { + Lex->mark_first_table_as_inserting(); + } +#line 41173 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2155: -#line 13458 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2156: +#line 13489 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* If it is SP we do not allow insert optimisation when result of @@ -41110,91 +41182,91 @@ */ (yyval.lock_type)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT); } -#line 41114 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41186 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2156: -#line 13466 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2157: +#line 13497 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; } -#line 41120 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41192 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2157: -#line 13468 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2158: +#line 13499 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { // QQ: why was +1? Lex->keyword_delayed_begin_offset= (uint)((yyvsp[0].kwd).pos() - thd->query()); Lex->keyword_delayed_end_offset= (uint)((yyvsp[0].kwd).end() - thd->query()); (yyval.lock_type)= TL_WRITE_DELAYED; } -#line 41131 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41203 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2158: -#line 13474 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2159: +#line 13505 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lock_type)= TL_WRITE; } -#line 41137 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41209 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2159: -#line 13478 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2160: +#line 13509 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lock_type)= (yyvsp[0].lock_type); } -#line 41143 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41215 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2160: -#line 13480 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2161: +#line 13511 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->keyword_delayed_begin_offset= (uint)((yyvsp[0].kwd).pos() - thd->query()); Lex->keyword_delayed_end_offset= (uint)((yyvsp[0].kwd).end() - thd->query()); (yyval.lock_type)= TL_WRITE_DELAYED; } -#line 41153 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41225 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2161: -#line 13488 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2162: +#line 13519 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41159 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41231 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2162: -#line 13489 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2163: +#line 13520 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41165 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41237 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2163: -#line 13494 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2164: +#line 13525 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->field_list.empty(); lex->many_values.empty(); lex->insert_list=0; } -#line 41176 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 2164: -#line 13502 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 41182 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41248 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2165: -#line 13503 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13534 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41188 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41254 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2166: -#line 13504 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13535 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41194 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41260 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2167: -#line 13506 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13536 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {} +#line 41266 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 2168: +#line 13538 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(!(lex->insert_list= new (thd->mem_root) List_item)) || @@ -41202,170 +41274,170 @@ thd->mem_root))) MYSQL_YYABORT; } -#line 41206 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 2169: -#line 13518 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } -#line 41212 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41278 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2170: -#line 13519 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13550 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } -#line 41218 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41284 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2171: -#line 13523 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 41224 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 13551 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } +#line 41290 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2172: -#line 13524 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13555 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41230 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41296 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2173: -#line 13525 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13556 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {} +#line 41302 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 2174: +#line 13557 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41236 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41308 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2178: -#line 13540 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2179: +#line 13572 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(lex->field_list.push_back((yyvsp[-2].item), thd->mem_root)) || unlikely(lex->insert_list->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; } -#line 41247 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 2179: -#line 13549 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 41253 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41319 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2180: -#line 13550 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13581 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41259 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41325 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2181: -#line 13554 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13582 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41265 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41331 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2182: -#line 13555 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13586 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41271 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41337 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2183: -#line 13559 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13587 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41277 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41343 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2184: -#line 13560 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13591 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41283 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41349 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2185: -#line 13564 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13592 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41289 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41355 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2186: -#line 13565 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13596 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41295 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41361 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2187: -#line 13570 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13597 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {} +#line 41367 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 2188: +#line 13602 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!(Lex->insert_list= new (thd->mem_root) List_item))) MYSQL_YYABORT; } -#line 41304 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41376 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2188: -#line 13575 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2189: +#line 13607 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(lex->many_values.push_back(lex->insert_list, thd->mem_root))) MYSQL_YYABORT; } -#line 41315 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41387 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2189: -#line 13585 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2190: +#line 13617 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!(Lex->insert_list= new (thd->mem_root) List_item))) MYSQL_YYABORT; } -#line 41324 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41396 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2190: -#line 13590 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2191: +#line 13622 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(lex->many_values.push_back(lex->insert_list, thd->mem_root))) MYSQL_YYABORT; } -#line 41335 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41407 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2191: -#line 13599 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2192: +#line 13631 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41341 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41413 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2193: -#line 13604 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2194: +#line 13636 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41347 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41419 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2195: -#line 13610 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2196: +#line 13642 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->insert_list->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; } -#line 41356 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41428 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2196: -#line 13615 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2197: +#line 13647 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->insert_list->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; } -#line 41365 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41437 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2197: -#line 13623 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2198: +#line 13655 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->insert_list->push_back((yyvsp[-1].item), thd->mem_root))) MYSQL_YYABORT; @@ -41373,11 +41445,11 @@ if (!(yyvsp[-1].item)->name.str || (yyvsp[-1].item)->name.str == item_empty_name) (yyvsp[-1].item)->set_name(thd, (yyvsp[-2].simple_string), (uint) ((yyvsp[0].simple_string) - (yyvsp[-2].simple_string)), thd->charset()); } -#line 41377 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41449 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2198: -#line 13631 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2199: +#line 13663 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->insert_list->push_back((yyvsp[-1].item), thd->mem_root))) MYSQL_YYABORT; @@ -41385,70 +41457,70 @@ if (!(yyvsp[-1].item)->name.str || (yyvsp[-1].item)->name.str == item_empty_name) (yyvsp[-1].item)->set_name(thd, (yyvsp[-2].simple_string), (uint) ((yyvsp[0].simple_string) - (yyvsp[-2].simple_string)), thd->charset()); } -#line 41389 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41461 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2199: -#line 13641 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2200: +#line 13673 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item);} -#line 41395 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41467 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2200: -#line 13643 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2201: +#line 13675 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_default_value(thd, Lex->current_context()); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 41405 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41477 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2201: -#line 13649 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2202: +#line 13681 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_ignore_value(thd, Lex->current_context()); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 41415 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41487 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2203: -#line 13658 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2204: +#line 13690 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->duplicates= DUP_UPDATE; } -#line 41421 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41493 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2204: -#line 13660 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2205: +#line 13692 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->parsing_place= IN_UPDATE_ON_DUP_KEY; } -#line 41429 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41501 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2205: -#line 13664 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2206: +#line 13696 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->parsing_place= NO_MATTER; } -#line 41437 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41509 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - - case 2206: -#line 13673 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + + case 2207: +#line 13705 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; mysql_init_select(lex); lex->sql_command= SQLCOM_UPDATE; lex->duplicates= DUP_ERROR; } -#line 41448 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41520 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2207: -#line 13681 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2208: +#line 13713 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { SELECT_LEX *slex= &Lex->select_lex; if (slex->table_list.elements > 1) @@ -41467,50 +41539,50 @@ */ slex->set_lock_for_tables((yyvsp[-4].lock_type), slex->table_list.elements == 1); } -#line 41471 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41543 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2208: -#line 13699 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2209: +#line 13731 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41477 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41549 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2211: -#line 13709 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2212: +#line 13741 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(add_item_to_list(thd, (yyvsp[-2].item))) || unlikely(add_value_to_list(thd, (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 41487 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41559 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2214: -#line 13723 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2215: +#line 13755 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->update_list.push_back((yyvsp[-2].item), thd->mem_root)) || unlikely(lex->value_list.push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; } -#line 41498 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41570 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2215: -#line 13732 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2216: +#line 13764 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lock_type)= TL_WRITE_DEFAULT; } -#line 41504 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41576 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2216: -#line 13733 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2217: +#line 13765 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; } -#line 41510 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41582 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2217: -#line 13740 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2218: +#line 13772 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_DELETE; @@ -41521,41 +41593,41 @@ lex->ignore= 0; lex->select_lex.init_order(); } -#line 41525 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41597 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2219: -#line 13755 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2220: +#line 13787 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->vers_conditions.init(SYSTEM_TIME_ALL); } -#line 41533 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41605 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2220: -#line 13759 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2221: +#line 13791 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->vers_conditions.init(SYSTEM_TIME_BEFORE, (yyvsp[0].vers_history_point)); } -#line 41541 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41613 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2221: -#line 13765 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2222: +#line 13797 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41547 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41619 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2222: -#line 13767 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2223: +#line 13799 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->last_table()->vers_conditions= Lex->vers_conditions; } -#line 41555 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41627 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2223: -#line 13774 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2224: +#line 13806 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!Select-> add_table_to_list(thd, (yyvsp[-1].table), NULL, TL_OPTION_UPDATING, @@ -41567,55 +41639,55 @@ YYPS->m_lock_type= TL_READ_DEFAULT; YYPS->m_mdl_type= MDL_SHARED_READ; } -#line 41571 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41643 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2224: -#line 13792 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2225: +#line 13824 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41577 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41649 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2225: -#line 13794 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2226: +#line 13826 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { mysql_init_multi_delete(Lex); YYPS->m_lock_type= TL_READ_DEFAULT; YYPS->m_mdl_type= MDL_SHARED_READ; } -#line 41587 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41659 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2226: -#line 13800 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2227: +#line 13832 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(multi_delete_set_locks_and_link_aux_tables(Lex))) MYSQL_YYABORT; } -#line 41596 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41668 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2227: -#line 13805 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2228: +#line 13837 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { mysql_init_multi_delete(Lex); YYPS->m_lock_type= TL_READ_DEFAULT; YYPS->m_mdl_type= MDL_SHARED_READ; } -#line 41606 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41678 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2228: -#line 13811 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2229: +#line 13843 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(multi_delete_set_locks_and_link_aux_tables(Lex))) MYSQL_YYABORT; } -#line 41615 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41687 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2233: -#line 13829 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2234: +#line 13861 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Table_ident *ti= new (thd->mem_root) Table_ident(&(yyvsp[-1].ident_sys)); if (unlikely(ti == NULL)) @@ -41630,11 +41702,11 @@ YYPS->m_mdl_type))) MYSQL_YYABORT; } -#line 41634 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41706 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2234: -#line 13844 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2235: +#line 13876 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Table_ident *ti= new (thd->mem_root) Table_ident(thd, &(yyvsp[-3].ident_sys), &(yyvsp[-1].ident_sys), 0); if (unlikely(ti == NULL)) @@ -41649,53 +41721,53 @@ YYPS->m_mdl_type))) MYSQL_YYABORT; } -#line 41653 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 2235: -#line 13861 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 41659 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41725 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2236: -#line 13862 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13893 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41665 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41731 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2237: -#line 13866 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13894 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41671 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41737 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2238: -#line 13867 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13898 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 41677 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41743 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2239: -#line 13871 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Select->options|= OPTION_QUICK; } -#line 41683 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 13899 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {} +#line 41749 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2240: -#line 13872 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { YYPS->m_lock_type= TL_WRITE_LOW_PRIORITY; } -#line 41689 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 13903 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Select->options|= OPTION_QUICK; } +#line 41755 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2241: -#line 13873 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->ignore= 1; } -#line 41695 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 13904 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { YYPS->m_lock_type= TL_WRITE_LOW_PRIORITY; } +#line 41761 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2242: -#line 13878 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 13905 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->ignore= 1; } +#line 41767 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 2243: +#line 13910 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX* lex= Lex; lex->sql_command= SQLCOM_TRUNCATE; @@ -41706,11 +41778,11 @@ YYPS->m_lock_type= TL_WRITE; YYPS->m_mdl_type= MDL_EXCLUSIVE; } -#line 41710 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41782 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2243: -#line 13889 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2244: +#line 13921 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX* lex= thd->lex; DBUG_ASSERT(!lex->m_sql_cmd); @@ -41718,99 +41790,99 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 41722 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41794 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2250: -#line 13913 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2251: +#line 13945 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->profile_options|= PROFILE_CPU; } -#line 41730 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41802 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2251: -#line 13917 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2252: +#line 13949 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->profile_options|= PROFILE_MEMORY; } -#line 41738 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41810 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2252: -#line 13921 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2253: +#line 13953 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->profile_options|= PROFILE_BLOCK_IO; } -#line 41746 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41818 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2253: -#line 13925 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2254: +#line 13957 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->profile_options|= PROFILE_CONTEXT; } -#line 41754 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41826 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2254: -#line 13929 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2255: +#line 13961 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->profile_options|= PROFILE_PAGE_FAULTS; } -#line 41762 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41834 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2255: -#line 13933 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2256: +#line 13965 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->profile_options|= PROFILE_IPC; } -#line 41770 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41842 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2256: -#line 13937 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2257: +#line 13969 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->profile_options|= PROFILE_SWAPS; } -#line 41778 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41850 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2257: -#line 13941 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2258: +#line 13973 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->profile_options|= PROFILE_SOURCE; } -#line 41786 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41858 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2258: -#line 13945 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2259: +#line 13977 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->profile_options|= PROFILE_ALL; } -#line 41794 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41866 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2259: -#line 13952 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2260: +#line 13984 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->profile_query_id= 0; } -#line 41802 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41874 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2260: -#line 13956 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2261: +#line 13988 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->profile_query_id= atoi((yyvsp[0].lex_str).str); } -#line 41810 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41882 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2261: -#line 13965 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2262: +#line 13997 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->wild=0; @@ -41819,30 +41891,30 @@ lex->current_select->parsing_place= SELECT_LIST; lex->create_info.init(); } -#line 41823 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41895 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2262: -#line 13974 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2263: +#line 14006 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->parsing_place= NO_MATTER; } -#line 41831 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41903 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2263: -#line 13981 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2264: +#line 14013 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_DATABASES; if (unlikely(prepare_schema_table(thd, lex, 0, SCH_SCHEMATA))) MYSQL_YYABORT; } -#line 41842 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41914 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2264: -#line 13988 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2265: +#line 14020 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_TABLES; @@ -41850,11 +41922,11 @@ if (unlikely(prepare_schema_table(thd, lex, 0, SCH_TABLE_NAMES))) MYSQL_YYABORT; } -#line 41854 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41926 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2265: -#line 13996 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2266: +#line 14028 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_TRIGGERS; @@ -41862,11 +41934,11 @@ if (unlikely(prepare_schema_table(thd, lex, 0, SCH_TRIGGERS))) MYSQL_YYABORT; } -#line 41866 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41938 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2266: -#line 14004 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2267: +#line 14036 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_EVENTS; @@ -41874,11 +41946,11 @@ if (unlikely(prepare_schema_table(thd, lex, 0, SCH_EVENTS))) MYSQL_YYABORT; } -#line 41878 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41950 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2267: -#line 14012 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2268: +#line 14044 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_TABLE_STATUS; @@ -41886,11 +41958,11 @@ if (unlikely(prepare_schema_table(thd, lex, 0, SCH_TABLES))) MYSQL_YYABORT; } -#line 41890 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41962 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2268: -#line 14020 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2269: +#line 14052 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_OPEN_TABLES; @@ -41898,55 +41970,55 @@ if (unlikely(prepare_schema_table(thd, lex, 0, SCH_OPEN_TABLES))) MYSQL_YYABORT; } -#line 41902 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41974 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2269: -#line 14028 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2270: +#line 14060 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_PLUGINS; if (unlikely(prepare_schema_table(thd, lex, 0, SCH_PLUGINS))) MYSQL_YYABORT; } -#line 41913 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41985 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2270: -#line 14035 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2271: +#line 14067 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ident= (yyvsp[0].lex_str); Lex->sql_command= SQLCOM_SHOW_PLUGINS; if (unlikely(prepare_schema_table(thd, Lex, 0, SCH_ALL_PLUGINS))) MYSQL_YYABORT; } -#line 41924 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 41996 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2271: -#line 14042 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2272: +#line 14074 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_PLUGINS; if (unlikely(prepare_schema_table(thd, Lex, 0, SCH_ALL_PLUGINS))) MYSQL_YYABORT; } -#line 41934 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42006 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2272: -#line 14048 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2273: +#line 14080 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.db_type= (yyvsp[-1].db_type); } -#line 41940 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42012 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2273: -#line 14050 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2274: +#line 14082 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->create_info.db_type= NULL; } -#line 41946 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42018 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2274: -#line 14052 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2275: +#line 14084 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_FIELDS; @@ -41955,45 +42027,45 @@ if (unlikely(prepare_schema_table(thd, lex, (yyvsp[-2].table), SCH_COLUMNS))) MYSQL_YYABORT; } -#line 41959 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42031 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2275: -#line 14061 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2276: +#line 14093 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_SHOW_BINLOGS; } -#line 41967 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42039 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2276: -#line 14065 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2277: +#line 14097 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_SHOW_SLAVE_HOSTS; } -#line 41975 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42047 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2277: -#line 14069 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2278: +#line 14101 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_BINLOG_EVENTS; } -#line 41984 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42056 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2279: -#line 14075 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2280: +#line 14107 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_RELAYLOG_EVENTS; } -#line 41993 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42065 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2281: -#line 14080 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2282: +#line 14112 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_KEYS; @@ -42002,96 +42074,96 @@ if (unlikely(prepare_schema_table(thd, lex, (yyvsp[-2].table), SCH_STATISTICS))) MYSQL_YYABORT; } -#line 42006 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42078 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2282: -#line 14089 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2283: +#line 14121 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES; if (unlikely(prepare_schema_table(thd, lex, 0, SCH_ENGINES))) MYSQL_YYABORT; } -#line 42017 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42089 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2283: -#line 14096 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2284: +#line 14128 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_AUTHORS; } -#line 42026 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42098 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2284: -#line 14101 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2285: +#line 14133 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_CONTRIBUTORS; } -#line 42035 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42107 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2285: -#line 14106 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2286: +#line 14138 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_PRIVILEGES; } -#line 42044 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42116 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2286: -#line 14111 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2287: +#line 14143 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX_CSTRING var= {STRING_WITH_LEN("warning_count")}; (void) create_select_for_variable(thd, &var); } -#line 42053 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42125 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2287: -#line 14116 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2288: +#line 14148 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX_CSTRING var= {STRING_WITH_LEN("error_count")}; (void) create_select_for_variable(thd, &var); } -#line 42062 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42134 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2288: -#line 14121 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2289: +#line 14153 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_SHOW_WARNS;} -#line 42068 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42140 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2289: -#line 14123 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2290: +#line 14155 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_SHOW_ERRORS;} -#line 42074 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42146 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2290: -#line 14125 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2291: +#line 14157 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_SHOW_PROFILES; } -#line 42080 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42152 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2291: -#line 14127 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2292: +#line 14159 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_PROFILE; if (unlikely(prepare_schema_table(thd, lex, NULL, SCH_PROFILES))) MYSQL_YYABORT; } -#line 42091 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42163 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2292: -#line 14134 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2293: +#line 14166 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_STATUS; @@ -42099,17 +42171,17 @@ if (unlikely(prepare_schema_table(thd, lex, 0, SCH_SESSION_STATUS))) MYSQL_YYABORT; } -#line 42103 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42175 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2293: -#line 14142 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2294: +#line 14174 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST;} -#line 42109 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42181 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2294: -#line 14144 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2295: +#line 14176 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_VARIABLES; @@ -42117,33 +42189,33 @@ if (unlikely(prepare_schema_table(thd, lex, 0, SCH_SESSION_VARIABLES))) MYSQL_YYABORT; } -#line 42121 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42193 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2295: -#line 14152 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2296: +#line 14184 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_CHARSETS; if (unlikely(prepare_schema_table(thd, lex, 0, SCH_CHARSETS))) MYSQL_YYABORT; } -#line 42132 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42204 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2296: -#line 14159 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2297: +#line 14191 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_COLLATIONS; if (unlikely(prepare_schema_table(thd, lex, 0, SCH_COLLATIONS))) MYSQL_YYABORT; } -#line 42143 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42215 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2297: -#line 14166 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2298: +#line 14198 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_GRANTS; if (unlikely(!(Lex->grant_user= @@ -42151,30 +42223,30 @@ MYSQL_YYABORT; Lex->grant_user->user= current_user_and_current_role; } -#line 42155 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42227 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2298: -#line 14174 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2299: +#line 14206 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_GRANTS; lex->grant_user=(yyvsp[-1].lex_user); } -#line 42165 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42237 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2299: -#line 14180 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2300: +#line 14212 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->set_command(SQLCOM_SHOW_CREATE_DB, (yyvsp[-1].object_ddl_options)); Lex->name= (yyvsp[0].ident_sys); } -#line 42174 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42246 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2300: -#line 14185 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2301: +#line 14217 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE; @@ -42182,11 +42254,11 @@ MYSQL_YYABORT; lex->create_info.storage_media= HA_SM_DEFAULT; } -#line 42186 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42258 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2301: -#line 14193 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2302: +#line 14225 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE; @@ -42194,11 +42266,11 @@ MYSQL_YYABORT; lex->table_type= TABLE_TYPE_VIEW; } -#line 42198 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42270 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2302: -#line 14201 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2303: +#line 14233 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE; @@ -42206,100 +42278,100 @@ MYSQL_YYABORT; lex->table_type= TABLE_TYPE_SEQUENCE; } -#line 42210 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42282 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2303: -#line 14209 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2304: +#line 14241 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_SHOW_MASTER_STAT; } -#line 42218 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42290 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2304: -#line 14213 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2305: +#line 14245 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT; Lex->verbose= 1; } -#line 42227 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42299 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2305: -#line 14218 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2306: +#line 14250 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; lex->mi.connection_name= null_clex_str; lex->sql_command = SQLCOM_SHOW_SLAVE_STAT; lex->verbose= 0; } -#line 42238 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42310 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2306: -#line 14225 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2307: +#line 14257 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT; Lex->verbose= 0; } -#line 42247 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42319 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2307: -#line 14230 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2308: +#line 14262 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE_PROC; lex->spname= (yyvsp[0].spname); } -#line 42258 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42330 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2308: -#line 14237 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2309: +#line 14269 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE_FUNC; lex->spname= (yyvsp[0].spname); } -#line 42269 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42341 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2309: -#line 14244 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2310: +#line 14276 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE_PACKAGE; lex->spname= (yyvsp[0].spname); } -#line 42279 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42351 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2310: -#line 14250 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2311: +#line 14282 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE_PACKAGE_BODY; lex->spname= (yyvsp[0].spname); } -#line 42289 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42361 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2311: -#line 14256 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2312: +#line 14288 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_CREATE_TRIGGER; lex->spname= (yyvsp[0].spname); } -#line 42299 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42371 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2312: -#line 14262 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2313: +#line 14294 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_CREATE_USER; if (unlikely(!(Lex->grant_user= @@ -42307,111 +42379,111 @@ MYSQL_YYABORT; Lex->grant_user->user= current_user; } -#line 42311 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42383 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2313: -#line 14270 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2314: +#line 14302 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_CREATE_USER; Lex->grant_user= (yyvsp[0].lex_user); } -#line 42320 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42392 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2314: -#line 14275 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2315: +#line 14307 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_STATUS_PROC; if (unlikely(prepare_schema_table(thd, lex, 0, SCH_PROCEDURES))) MYSQL_YYABORT; } -#line 42331 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42403 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2315: -#line 14282 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2316: +#line 14314 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_STATUS_FUNC; if (unlikely(prepare_schema_table(thd, lex, 0, SCH_PROCEDURES))) MYSQL_YYABORT; } -#line 42342 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42414 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2316: -#line 14289 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2317: +#line 14321 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_STATUS_PACKAGE; if (unlikely(prepare_schema_table(thd, lex, 0, SCH_PROCEDURES))) MYSQL_YYABORT; } -#line 42353 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42425 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2317: -#line 14296 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2318: +#line 14328 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_STATUS_PACKAGE_BODY; if (unlikely(prepare_schema_table(thd, lex, 0, SCH_PROCEDURES))) MYSQL_YYABORT; } -#line 42364 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42436 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2318: -#line 14303 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2319: +#line 14335 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_PROC_CODE; Lex->spname= (yyvsp[0].spname); } -#line 42373 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42445 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2319: -#line 14308 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2320: +#line 14340 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_FUNC_CODE; Lex->spname= (yyvsp[0].spname); } -#line 42382 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42454 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2320: -#line 14313 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2321: +#line 14345 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_PACKAGE_BODY_CODE; Lex->spname= (yyvsp[0].spname); } -#line 42391 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42463 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2321: -#line 14318 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2322: +#line 14350 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->spname= (yyvsp[0].spname); Lex->sql_command = SQLCOM_SHOW_CREATE_EVENT; } -#line 42400 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42472 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2322: -#line 14323 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2323: +#line 14355 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_EXPLAIN; if (unlikely(prepare_schema_table(thd, Lex, 0, SCH_EXPLAIN))) MYSQL_YYABORT; add_value_to_list(thd, (yyvsp[0].item)); } -#line 42411 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42483 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2323: -#line 14330 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2324: +#line 14362 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; bool in_plugin; @@ -42430,83 +42502,83 @@ if (unlikely(make_schema_select(thd, Lex->current_select, table))) MYSQL_YYABORT; } -#line 42434 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42506 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2324: -#line 14352 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2325: +#line 14384 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_ENGINE_STATUS; } -#line 42440 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42512 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2325: -#line 14354 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2326: +#line 14386 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_ENGINE_MUTEX; } -#line 42446 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42518 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2326: -#line 14356 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2327: +#line 14388 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_ENGINE_LOGS; } -#line 42452 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42524 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2331: -#line 14370 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2332: +#line 14402 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str)= null_clex_str; } -#line 42458 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42530 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2332: -#line 14371 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2333: +#line 14403 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str)= (yyvsp[0].ident_sys); } -#line 42464 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42536 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2333: -#line 14375 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2334: +#line 14407 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->verbose=0; } -#line 42470 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42542 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2334: -#line 14376 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2335: +#line 14408 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->verbose=1; } -#line 42476 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42548 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2337: -#line 14385 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2338: +#line 14417 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->mi.log_file_name = 0; } -#line 42482 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42554 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2338: -#line 14386 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2339: +#line 14418 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->mi.log_file_name = (yyvsp[0].lex_str).str; } -#line 42488 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42560 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2339: -#line 14390 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2340: +#line 14422 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->mi.pos = 4; /* skip magic number */ } -#line 42494 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42566 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2340: -#line 14391 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2341: +#line 14423 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->mi.pos = (yyvsp[0].ulonglong_number); } -#line 42500 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42572 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2341: -#line 14395 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2342: +#line 14427 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.simple_string)= 0; } -#line 42506 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42578 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2342: -#line 14397 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2343: +#line 14429 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->wild= new (thd->mem_root) String((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, system_charset_info); @@ -42514,22 +42586,22 @@ MYSQL_YYABORT; (yyval.simple_string)= (yyvsp[-1].simple_string); } -#line 42518 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42590 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2343: -#line 14405 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2344: +#line 14437 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->where= normalize_cond(thd, (yyvsp[0].item)); if ((yyvsp[0].item)) (yyvsp[0].item)->top_level_item(); (yyval.simple_string)= (yyvsp[-1].simple_string); } -#line 42529 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42601 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2344: -#line 14416 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2345: +#line 14448 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; mysql_init_select(lex); @@ -42540,66 +42612,66 @@ if (unlikely(prepare_schema_table(thd, lex, (yyvsp[0].table), SCH_COLUMNS))) MYSQL_YYABORT; } -#line 42544 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42616 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2345: -#line 14427 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2346: +#line 14459 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->parsing_place= NO_MATTER; } -#line 42552 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42624 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2346: -#line 14431 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2347: +#line 14463 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->describe|= DESCRIBE_NORMAL; } -#line 42558 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42630 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2347: -#line 14433 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2348: +#line 14465 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->select_lex.options|= SELECT_DESCRIBE; } -#line 42567 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42639 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2355: -#line 14454 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2356: +#line 14486 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->analyze_stmt= true; } -#line 42575 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42647 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2356: -#line 14460 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2357: +#line 14492 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->describe|= DESCRIBE_EXTENDED; } -#line 42581 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42653 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2357: -#line 14461 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2358: +#line 14493 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->describe|= DESCRIBE_PARTITIONS; } -#line 42587 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42659 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2358: -#line 14462 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2359: +#line 14494 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 42593 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42665 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2359: -#line 14466 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2360: +#line 14498 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 42599 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42671 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2360: -#line 14468 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2361: +#line 14500 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (lex_string_eq(&(yyvsp[0].lex_str), STRING_WITH_LEN("JSON"))) Lex->explain_json= true; @@ -42609,23 +42681,23 @@ my_yyabort_error((ER_UNKNOWN_EXPLAIN_FORMAT, MYF(0), "EXPLAIN", (yyvsp[0].lex_str).str)); } -#line 42613 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42685 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2361: -#line 14480 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2362: +#line 14512 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 42619 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42691 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2362: -#line 14481 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2363: +#line 14513 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->wild= (yyvsp[0].string); } -#line 42625 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42697 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2363: -#line 14483 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2364: +#line 14515 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->wild= new (thd->mem_root) String((const char*) (yyvsp[0].ident_sys).str, (yyvsp[0].ident_sys).length, @@ -42633,28 +42705,28 @@ if (unlikely(Lex->wild == NULL)) MYSQL_YYABORT; } -#line 42637 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42709 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2364: -#line 14497 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2365: +#line 14529 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_FLUSH; lex->type= 0; lex->no_write_to_binlog= (yyvsp[0].num); } -#line 42648 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42720 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2365: -#line 14504 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2366: +#line 14536 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 42654 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42726 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2366: -#line 14509 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2367: +#line 14541 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_TABLES; /* @@ -42664,23 +42736,23 @@ YYPS->m_lock_type= TL_READ_NO_INSERT; YYPS->m_mdl_type= MDL_SHARED_HIGH_PRIO; } -#line 42668 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42740 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2367: -#line 14519 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2368: +#line 14551 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 42674 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42746 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2369: -#line 14524 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2370: +#line 14556 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 42680 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42752 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2370: -#line 14526 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2371: +#line 14558 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { TABLE_LIST *tables= Lex->query_tables; for (; tables; tables= tables->next_global) @@ -42692,17 +42764,17 @@ tables->open_type= OT_BASE_ONLY; } } -#line 42696 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42768 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2371: -#line 14541 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2372: +#line 14573 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_READ_LOCK | (yyvsp[0].num); } -#line 42702 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42774 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2372: -#line 14543 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2373: +#line 14575 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->query_tables == NULL)) { @@ -42712,53 +42784,53 @@ } Lex->type|= REFRESH_FOR_EXPORT; } -#line 42716 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42788 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2373: -#line 14551 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2374: +#line 14583 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 42722 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42794 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2375: -#line 14557 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2376: +#line 14589 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 42728 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42800 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2376: -#line 14562 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2377: +#line 14594 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_ERROR_LOG; } -#line 42734 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42806 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2377: -#line 14564 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2378: +#line 14596 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_ENGINE_LOG; } -#line 42740 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42812 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2378: -#line 14566 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2379: +#line 14598 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_GENERAL_LOG; } -#line 42746 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42818 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2379: -#line 14568 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2380: +#line 14600 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_SLOW_LOG; } -#line 42752 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42824 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2380: -#line 14570 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2381: +#line 14602 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_BINARY_LOG; } -#line 42758 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42830 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2381: -#line 14572 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2382: +#line 14604 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->type & REFRESH_RELAY_LOG)) @@ -42766,44 +42838,44 @@ lex->type|= REFRESH_RELAY_LOG; lex->relay_log_connection_name= lex->mi.connection_name; } -#line 42770 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42842 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2382: -#line 14580 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2383: +#line 14612 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_QUERY_CACHE_FREE; } -#line 42776 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42848 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2383: -#line 14582 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2384: +#line 14614 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_HOSTS; } -#line 42782 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42854 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2384: -#line 14584 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2385: +#line 14616 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_GRANT; } -#line 42788 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42860 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2385: -#line 14586 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2386: +#line 14618 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_LOG; Lex->relay_log_connection_name= empty_clex_str; } -#line 42797 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42869 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2386: -#line 14591 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2387: +#line 14623 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_STATUS; } -#line 42803 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42875 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2387: -#line 14593 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2388: +#line 14625 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->type & REFRESH_SLAVE)) @@ -42811,29 +42883,29 @@ lex->type|= REFRESH_SLAVE; lex->reset_slave_info.all= false; } -#line 42815 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42887 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2388: -#line 14601 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2389: +#line 14633 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_MASTER; } -#line 42821 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42893 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2389: -#line 14603 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2390: +#line 14635 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_DES_KEY_FILE; } -#line 42827 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42899 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2390: -#line 14605 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2391: +#line 14637 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_USER_RESOURCES; } -#line 42833 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42905 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2391: -#line 14607 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2392: +#line 14639 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_GENERIC; ST_SCHEMA_TABLE *table= find_schema_table(thd, &(yyvsp[-1].ident_sys)); @@ -42847,35 +42919,35 @@ thd->mem_root))) MYSQL_YYABORT; } -#line 42851 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 2392: -#line 14623 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 42857 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42923 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2393: -#line 14624 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14655 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 42863 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42929 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2394: -#line 14628 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14656 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 42869 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42935 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2395: -#line 14630 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14660 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 42875 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42941 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 2396: +#line 14662 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {} +#line 42947 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2399: -#line 14640 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2400: +#line 14672 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { uint32 value= (uint32) (yyvsp[0].ulonglong_number); if ((yyvsp[0].ulonglong_number) > UINT_MAX32) @@ -42888,126 +42960,126 @@ } insert_dynamic(&Lex->delete_gtid_domain, (uchar*) &value); } -#line 42892 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42964 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2400: -#line 14655 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2401: +#line 14687 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {(yyval.num)= 0;} -#line 42898 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42970 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2401: -#line 14656 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2402: +#line 14688 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {(yyval.num)= REFRESH_CHECKPOINT; } -#line 42904 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42976 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2402: -#line 14660 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2403: +#line 14693 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_RESET; lex->type=0; } -#line 42913 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42985 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2403: -#line 14665 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2404: +#line 14698 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 42919 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42991 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2406: -#line 14674 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2407: +#line 14707 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_SLAVE; } -#line 42925 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 42997 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2407: -#line 14676 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2408: +#line 14709 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 42931 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43003 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2408: -#line 14678 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2409: +#line 14711 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_MASTER; Lex->next_binlog_file_number= 0; } -#line 42940 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43012 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2410: -#line 14683 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2411: +#line 14716 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_QUERY_CACHE;} -#line 42946 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43018 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2411: -#line 14687 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2412: +#line 14720 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->reset_slave_info.all= false; } -#line 42952 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43024 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2412: -#line 14688 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2413: +#line 14721 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->reset_slave_info.all= true; } -#line 42958 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43030 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2413: -#line 14692 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2414: +#line 14725 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 42964 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43036 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2414: -#line 14694 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2415: +#line 14727 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->next_binlog_file_number = (yyvsp[0].ulong_num); } -#line 42972 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43044 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2415: -#line 14701 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2416: +#line 14734 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->type=0; lex->sql_command = SQLCOM_PURGE; } -#line 42982 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43054 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2416: -#line 14707 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2417: +#line 14740 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 42988 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43060 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2418: -#line 14716 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2419: +#line 14749 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->to_log = (yyvsp[0].lex_str).str; } -#line 42996 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43068 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2419: -#line 14720 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2420: +#line 14753 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->value_list.empty(); lex->value_list.push_front((yyvsp[0].item), thd->mem_root); lex->sql_command= SQLCOM_PURGE_BEFORE; } -#line 43007 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43079 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2420: -#line 14732 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2421: +#line 14765 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->value_list.empty(); @@ -43015,97 +43087,97 @@ lex->sql_command= SQLCOM_KILL; lex->kill_type= KILL_TYPE_ID; } -#line 43019 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43091 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2421: -#line 14740 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2422: +#line 14773 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->kill_signal= (killed_state) ((yyvsp[-2].num) | (yyvsp[-1].num)); } -#line 43027 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 2422: -#line 14746 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.num)= (int) KILL_HARD_BIT; } -#line 43033 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43099 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2423: -#line 14747 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14779 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= (int) KILL_HARD_BIT; } -#line 43039 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43105 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2424: -#line 14748 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.num)= 0; } -#line 43045 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 14780 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.num)= (int) KILL_HARD_BIT; } +#line 43111 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2425: -#line 14751 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.num)= (int) KILL_CONNECTION; } -#line 43051 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 14781 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.num)= 0; } +#line 43117 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2426: -#line 14752 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14785 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= (int) KILL_CONNECTION; } -#line 43057 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43123 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2427: -#line 14753 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.num)= (int) KILL_QUERY; } -#line 43063 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 14786 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.num)= (int) KILL_CONNECTION; } +#line 43129 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2428: -#line 14755 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14787 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.num)= (int) KILL_QUERY; } +#line 43135 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 2429: +#line 14789 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= (int) KILL_QUERY; Lex->kill_type= KILL_TYPE_QUERY; } -#line 43072 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43144 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2429: -#line 14763 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2430: +#line 14797 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->value_list.push_front((yyval.item), thd->mem_root); } -#line 43080 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43152 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2430: -#line 14767 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2431: +#line 14801 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root); Lex->kill_type= KILL_TYPE_USER; } -#line 43089 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43161 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2431: -#line 14775 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2432: +#line 14809 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHUTDOWN; } -#line 43095 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43167 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2432: -#line 14782 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2433: +#line 14816 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command=SQLCOM_CHANGE_DB; lex->select_lex.db= (yyvsp[0].ident_sys); } -#line 43105 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43177 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2433: -#line 14793 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2434: +#line 14827 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; mysql_init_select(lex); @@ -43117,11 +43189,11 @@ MYSQL_YYABORT; } } -#line 43121 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43193 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2434: -#line 14805 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2435: +#line 14839 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_LOAD; @@ -43132,11 +43204,11 @@ sql_exchange((yyvsp[0].lex_str).str, 0, (yyvsp[-5].filetype))))) MYSQL_YYABORT; } -#line 43136 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43208 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2435: -#line 14816 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2436: +#line 14850 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(!Select->add_table_to_list(thd, (yyvsp[-1].table), NULL, @@ -43149,53 +43221,55 @@ lex->value_list.empty(); lex->many_values.empty(); } -#line 43153 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43225 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2436: -#line 14829 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2437: +#line 14863 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->exchange->cs= (yyvsp[0].charset); } -#line 43159 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43231 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2437: -#line 14833 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 43165 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + case 2438: +#line 14867 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { + Lex->mark_first_table_as_inserting(); + } +#line 43239 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2438: -#line 14837 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2439: +#line 14873 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.filetype)= FILETYPE_CSV; } -#line 43171 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43245 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2439: -#line 14838 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2440: +#line 14874 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.filetype)= FILETYPE_XML; } -#line 43177 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43251 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2440: -#line 14842 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2441: +#line 14878 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)=0;} -#line 43183 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43257 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2441: -#line 14843 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2442: +#line 14879 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)=1;} -#line 43189 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43263 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2442: -#line 14847 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2443: +#line 14883 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lock_type)= TL_WRITE_DEFAULT; } -#line 43195 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43269 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2443: -#line 14849 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2444: +#line 14885 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Ignore this option in SP to avoid problem with query cache and @@ -43203,182 +43277,182 @@ */ (yyval.lock_type)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT); } -#line 43207 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43281 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2444: -#line 14856 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2445: +#line 14892 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; } -#line 43213 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43287 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2445: -#line 14860 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2446: +#line 14896 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->duplicates=DUP_ERROR; } -#line 43219 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43293 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2446: -#line 14861 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2447: +#line 14897 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->duplicates=DUP_REPLACE; } -#line 43225 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43299 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2447: -#line 14862 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2448: +#line 14898 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ignore= 1; } -#line 43231 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43305 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2452: -#line 14877 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2453: +#line 14913 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->field_term= (yyvsp[0].string); } -#line 43240 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43314 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2453: -#line 14882 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2454: +#line 14918 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; DBUG_ASSERT(lex->exchange != 0); lex->exchange->enclosed= (yyvsp[0].string); lex->exchange->opt_enclosed= 1; } -#line 43251 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43325 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2454: -#line 14889 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2455: +#line 14925 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->enclosed= (yyvsp[0].string); } -#line 43260 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43334 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2455: -#line 14894 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2456: +#line 14930 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->escaped= (yyvsp[0].string); } -#line 43269 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43343 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2460: -#line 14912 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2461: +#line 14948 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->line_term= (yyvsp[0].string); } -#line 43278 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43352 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2461: -#line 14917 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2462: +#line 14953 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->line_start= (yyvsp[0].string); } -#line 43287 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43361 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2462: -#line 14924 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2463: +#line 14960 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 43293 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43367 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2463: -#line 14926 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2464: +#line 14962 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->exchange->line_term = (yyvsp[0].string); } -#line 43299 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43373 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2465: -#line 14931 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2466: +#line 14968 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->skip_lines= atol((yyvsp[-1].lex_str).str); } -#line 43308 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 2466: -#line 14938 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { } -#line 43314 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43382 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2467: -#line 14939 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14975 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 43320 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43388 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2468: -#line 14943 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 43326 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 14976 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { } +#line 43394 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2469: -#line 14944 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14980 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 43332 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43400 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2470: -#line 14945 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14981 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 43338 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43406 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2471: -#line 14950 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } -#line 43344 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 14982 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {} +#line 43412 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2472: -#line 14952 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14987 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } -#line 43350 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43418 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2473: -#line 14956 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {(yyval.item)= (yyvsp[0].item);} -#line 43356 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 14989 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } +#line 43424 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 2474: -#line 14958 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 14993 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {(yyval.item)= (yyvsp[0].item);} +#line 43430 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 2475: +#line 14995 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_user_var_as_out_param(thd, &(yyvsp[0].lex_str)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 43366 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43440 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2475: -#line 14966 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2476: +#line 15003 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 43372 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43446 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2476: -#line 14967 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2477: +#line 15004 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 43378 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43452 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2479: -#line 14977 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2480: +#line 15014 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->update_list.push_back((yyvsp[-4].item), thd->mem_root)) || @@ -43386,47 +43460,47 @@ MYSQL_YYABORT; (yyvsp[-1].item)->set_name_no_truncate(thd, (yyvsp[-2].simple_string), (uint) ((yyvsp[0].simple_string) - (yyvsp[-2].simple_string)), thd->charset()); } -#line 43390 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43464 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2480: -#line 14990 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2481: +#line 15027 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item_basic_constant)= thd->make_string_literal((yyvsp[0].lex_string_with_metadata))))) MYSQL_YYABORT; } -#line 43399 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43473 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2481: -#line 14995 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2482: +#line 15032 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item_basic_constant)= thd->make_string_literal_nchar((yyvsp[0].lex_string_with_metadata))))) MYSQL_YYABORT; } -#line 43408 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43482 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2482: -#line 15000 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2483: +#line 15037 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item_basic_constant)= thd->make_string_literal_charset((yyvsp[0].lex_string_with_metadata), (yyvsp[-1].charset))))) MYSQL_YYABORT; } -#line 43417 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43491 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2483: -#line 15005 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2484: +#line 15042 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item_basic_constant)= (yyvsp[-1].item_basic_constant)->make_string_literal_concat(thd, &(yyvsp[0].lex_str))))) MYSQL_YYABORT; } -#line 43426 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43500 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2484: -#line 15013 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2485: +#line 15050 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.string)= new (thd->mem_root) String((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, @@ -43434,17 +43508,17 @@ if (unlikely((yyval.string) == NULL)) MYSQL_YYABORT; } -#line 43438 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43512 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2485: -#line 15020 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2486: +#line 15057 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.string)= (yyvsp[0].string); } -#line 43444 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43518 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2486: -#line 15026 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2487: +#line 15063 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Item *tmp= new (thd->mem_root) Item_hex_hybrid(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); @@ -43457,11 +43531,11 @@ tmp->quick_fix_field(); (yyval.string)= tmp->val_str((String*) 0); } -#line 43461 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43535 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2487: -#line 15039 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2488: +#line 15076 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Item *tmp= new (thd->mem_root) Item_hex_string(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); @@ -43470,11 +43544,11 @@ tmp->quick_fix_field(); (yyval.string)= tmp->val_str((String*) 0); } -#line 43474 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43548 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2488: -#line 15048 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2489: +#line 15085 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Item *tmp= new (thd->mem_root) Item_bin_string(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); @@ -43487,76 +43561,76 @@ tmp->quick_fix_field(); (yyval.string)= tmp->val_str((String*) 0); } -#line 43491 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43565 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2489: -#line 15064 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2490: +#line 15101 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item_param)= Lex->add_placeholder(thd, ¶m_clex_str, YYLIP->get_tok_start(), YYLIP->get_tok_start() + 1)))) MYSQL_YYABORT; } -#line 43502 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43576 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2490: -#line 15071 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2491: +#line 15108 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item_param)= Lex->add_placeholder(thd, &null_clex_str, (yyvsp[-1].kwd).pos(), (yyvsp[0].ident_cli).end())))) MYSQL_YYABORT; } -#line 43512 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43586 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2491: -#line 15077 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2492: +#line 15114 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item_param)= Lex->add_placeholder(thd, &null_clex_str, (yyvsp[-1].kwd).pos(), YYLIP->get_ptr())))) MYSQL_YYABORT; } -#line 43523 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43597 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2492: -#line 15086 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2493: +#line 15123 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item) = (yyvsp[0].item_num); } -#line 43529 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43603 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2493: -#line 15088 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2494: +#line 15125 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[0].item_num)->max_length++; (yyval.item)= (yyvsp[0].item_num)->neg(thd); } -#line 43538 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43612 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2494: -#line 15095 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2495: +#line 15132 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item) = (yyvsp[0].item_basic_constant); } -#line 43544 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43618 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2495: -#line 15096 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2496: +#line 15133 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item) = (yyvsp[0].item_num); } -#line 43550 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43624 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2496: -#line 15097 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2497: +#line 15134 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item); } -#line 43556 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43630 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2497: -#line 15099 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2498: +#line 15136 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* For the digest computation, in this context only, @@ -43570,61 +43644,61 @@ MYSQL_YYABORT; YYLIP->next_state= MY_LEX_OPERATOR_OR_IDENT; } -#line 43574 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43648 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2498: -#line 15113 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2499: +#line 15150 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_bool(thd, (char*) "FALSE",0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 43584 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43658 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2499: -#line 15119 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2500: +#line 15156 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_bool(thd, (char*) "TRUE",1); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 43594 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43668 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2500: -#line 15125 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2501: +#line 15162 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_hex_hybrid(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 43604 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43678 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2501: -#line 15131 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2502: +#line 15168 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_hex_string(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 43614 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43688 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2502: -#line 15137 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2503: +#line 15174 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_bin_string(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 43624 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43698 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2503: -#line 15143 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2504: +#line 15180 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Item_string_with_introducer *item_str; /* @@ -43640,11 +43714,11 @@ (yyval.item)= item_str; } -#line 43644 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43718 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2504: -#line 15162 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2505: +#line 15199 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { int error; (yyval.item_num)= new (thd->mem_root) @@ -43654,11 +43728,11 @@ if (unlikely((yyval.item_num) == NULL)) MYSQL_YYABORT; } -#line 43658 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43732 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2505: -#line 15172 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2506: +#line 15209 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { int error; (yyval.item_num)= new (thd->mem_root) @@ -43668,42 +43742,42 @@ if (unlikely((yyval.item_num) == NULL)) MYSQL_YYABORT; } -#line 43672 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43746 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2506: -#line 15182 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2507: +#line 15219 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item_num)= new (thd->mem_root) Item_uint(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); if (unlikely((yyval.item_num) == NULL)) MYSQL_YYABORT; } -#line 43682 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43756 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2507: -#line 15188 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2508: +#line 15225 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item_num)= new (thd->mem_root) Item_decimal(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, thd->charset()); if (unlikely((yyval.item_num) == NULL) || unlikely(thd->is_error())) MYSQL_YYABORT; } -#line 43693 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43767 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2508: -#line 15195 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2509: +#line 15232 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item_num)= new (thd->mem_root) Item_float(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); if (unlikely((yyval.item_num) == NULL) || unlikely(thd->is_error())) MYSQL_YYABORT; } -#line 43703 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43777 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2509: -#line 15205 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2510: +#line 15242 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= create_temporal_literal(thd, (yyvsp[0].lex_string_with_metadata).str, (yyvsp[0].lex_string_with_metadata).length, YYCSCL, @@ -43711,11 +43785,11 @@ true)))) MYSQL_YYABORT; } -#line 43715 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43789 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2510: -#line 15213 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2511: +#line 15250 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= create_temporal_literal(thd, (yyvsp[0].lex_string_with_metadata).str, (yyvsp[0].lex_string_with_metadata).length, YYCSCL, @@ -43723,11 +43797,11 @@ true)))) MYSQL_YYABORT; } -#line 43727 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43801 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2511: -#line 15221 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2512: +#line 15258 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= create_temporal_literal(thd, (yyvsp[0].lex_string_with_metadata).str, (yyvsp[0].lex_string_with_metadata).length, YYCSCL, @@ -43735,25 +43809,25 @@ true)))) MYSQL_YYABORT; } -#line 43739 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43813 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2512: -#line 15232 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2513: +#line 15269 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.with_clause)= 0; } -#line 43745 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43819 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2513: -#line 15234 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2514: +#line 15271 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.with_clause)= (yyvsp[0].with_clause); } -#line 43753 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43827 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2514: -#line 15242 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2515: +#line 15279 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { With_clause *with_clause= new With_clause((yyvsp[0].num), Lex->curr_with_clause); @@ -43763,43 +43837,43 @@ Lex->curr_with_clause= with_clause; with_clause->add_to_list(Lex->with_clauses_list_last_next); } -#line 43767 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43841 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2515: -#line 15252 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2516: +#line 15289 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.with_clause)= Lex->curr_with_clause; Lex->curr_with_clause= Lex->curr_with_clause->pop(); } -#line 43776 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43850 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2516: -#line 15260 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2517: +#line 15297 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 43782 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43856 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2517: -#line 15261 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2518: +#line 15298 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 43788 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43862 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2520: -#line 15274 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2521: +#line 15311 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[0].lex_str_list)= new List (Lex->with_column_list); if (unlikely((yyvsp[0].lex_str_list) == NULL)) MYSQL_YYABORT; Lex->with_column_list.empty(); } -#line 43799 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43873 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2521: -#line 15281 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2522: +#line 15318 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; const char *query_start= lex->sphead ? lex->sphead->m_tmp_query @@ -43813,203 +43887,203 @@ spec_start - query_start)) MYSQL_YYABORT; } -#line 43817 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43891 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2522: -#line 15299 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2523: +#line 15336 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str_list)= NULL; } -#line 43823 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43897 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2523: -#line 15301 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2524: +#line 15338 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str_list)= NULL; } -#line 43829 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43903 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2524: -#line 15307 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2525: +#line 15344 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->with_column_list.push_back((LEX_CSTRING*) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_CSTRING))); } -#line 43838 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43912 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2525: -#line 15312 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2526: +#line 15349 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->with_column_list.push_back((LEX_CSTRING*) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_CSTRING))); } -#line 43847 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43921 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2526: -#line 15321 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2527: +#line 15358 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str_ptr)= (LEX_CSTRING *) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_CSTRING)); if (unlikely((yyval.lex_str_ptr) == NULL)) MYSQL_YYABORT; } -#line 43857 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43931 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2527: -#line 15335 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2528: +#line 15372 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)=(yyvsp[0].item); } -#line 43863 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43937 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2528: -#line 15336 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2529: +#line 15373 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)=(yyvsp[0].item); } -#line 43869 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43943 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2529: -#line 15341 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2530: +#line 15378 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_qualified_asterisk(thd, &(yyvsp[-2].ident_sys))))) MYSQL_YYABORT; } -#line 43878 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43952 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2530: -#line 15346 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2531: +#line 15383 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_qualified_asterisk(thd, &(yyvsp[-4].ident_sys), &(yyvsp[-2].ident_sys))))) MYSQL_YYABORT; } -#line 43887 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43961 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2531: -#line 15354 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2532: +#line 15391 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_qualified_asterisk(thd, &(yyvsp[-2].ident_cli))))) MYSQL_YYABORT; } -#line 43896 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43970 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2532: -#line 15359 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2533: +#line 15396 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_qualified_asterisk(thd, &(yyvsp[-4].ident_cli), &(yyvsp[-2].ident_cli))))) MYSQL_YYABORT; } -#line 43905 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43979 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2533: -#line 15366 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2534: +#line 15403 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)=(yyvsp[0].item); } -#line 43911 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43985 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2534: -#line 15372 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2535: +#line 15409 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_ident(thd, &(yyvsp[0].ident_cli))))) MYSQL_YYABORT; } -#line 43920 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 43994 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2535: -#line 15377 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2536: +#line 15414 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_ident(thd, &(yyvsp[-2].ident_cli), &(yyvsp[0].ident_cli))))) MYSQL_YYABORT; } -#line 43929 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44003 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2536: -#line 15382 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2537: +#line 15419 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex_ident_cli empty((yyvsp[-2].ident_cli).pos(), 0); if (unlikely(!((yyval.item)= Lex->create_item_ident(thd, &empty, &(yyvsp[-2].ident_cli), &(yyvsp[0].ident_cli))))) MYSQL_YYABORT; } -#line 43939 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44013 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2537: -#line 15388 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2538: +#line 15425 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_ident(thd, &(yyvsp[-4].ident_cli), &(yyvsp[-2].ident_cli), &(yyvsp[0].ident_cli))))) MYSQL_YYABORT; } -#line 43948 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44022 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2538: -#line 15393 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2539: +#line 15430 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_colon_ident_ident(thd, &(yyvsp[-2].ident_cli), &(yyvsp[0].ident_cli))))) MYSQL_YYABORT; } -#line 43957 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44031 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2539: -#line 15401 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2540: +#line 15438 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_ident_nosp(thd, &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 43966 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44040 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2540: -#line 15406 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2541: +#line 15443 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_ident_nospvar(thd, &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 43975 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44049 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2541: -#line 15411 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2542: +#line 15448 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_colon_ident_ident(thd, &(yyvsp[-2].ident_cli), &(yyvsp[0].ident_cli))))) MYSQL_YYABORT; } -#line 43984 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44058 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2542: -#line 15416 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2543: +#line 15453 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex_ident_sys none; if (unlikely(!((yyval.item)= Lex->create_item_ident(thd, &none, &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 43994 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44068 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2543: -#line 15422 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2544: +#line 15459 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_ident(thd, &(yyvsp[-4].ident_sys), &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 44003 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44077 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2544: -#line 15429 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2545: +#line 15466 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str)=(yyvsp[0].ident_sys);} -#line 44009 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44083 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2545: -#line 15431 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2546: +#line 15468 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { TABLE_LIST *table= Select->table_list.first; if (unlikely(my_strcasecmp(table_alias_charset, (yyvsp[-4].ident_sys).str, @@ -44020,11 +44094,11 @@ my_yyabort_error((ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[-2].ident_sys).str)); (yyval.lex_str)=(yyvsp[0].ident_sys); } -#line 44024 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44098 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2546: -#line 15442 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2547: +#line 15479 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { TABLE_LIST *table= Select->table_list.first; if (unlikely(my_strcasecmp(table_alias_charset, (yyvsp[-2].ident_sys).str, @@ -44032,193 +44106,193 @@ my_yyabort_error((ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[-2].ident_sys).str)); (yyval.lex_str)=(yyvsp[0].ident_sys); } -#line 44036 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44110 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2547: -#line 15449 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2548: +#line 15486 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str)=(yyvsp[0].ident_sys);} -#line 44042 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44116 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2548: -#line 15454 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2549: +#line 15491 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.table)= new (thd->mem_root) Table_ident(&(yyvsp[0].ident_sys)); if (unlikely((yyval.table) == NULL)) MYSQL_YYABORT; } -#line 44052 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44126 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2549: -#line 15460 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2550: +#line 15497 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.table)= new (thd->mem_root) Table_ident(thd, &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys), 0); if (unlikely((yyval.table) == NULL)) MYSQL_YYABORT; } -#line 44062 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44136 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2550: -#line 15466 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2551: +#line 15503 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* For Delphi */ (yyval.table)= new (thd->mem_root) Table_ident(&(yyvsp[0].ident_sys)); if (unlikely((yyval.table) == NULL)) MYSQL_YYABORT; } -#line 44073 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44147 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2551: -#line 15476 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2552: +#line 15513 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.table)= new (thd->mem_root) Table_ident(&(yyvsp[-1].ident_sys)); if (unlikely((yyval.table) == NULL)) MYSQL_YYABORT; } -#line 44083 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44157 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2552: -#line 15482 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2553: +#line 15519 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.table)= new (thd->mem_root) Table_ident(thd, &(yyvsp[-3].ident_sys), &(yyvsp[-1].ident_sys), 0); if (unlikely((yyval.table) == NULL)) MYSQL_YYABORT; } -#line 44093 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44167 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2553: -#line 15491 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2554: +#line 15528 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX_CSTRING db={(char*) any_db,3}; (yyval.table)= new (thd->mem_root) Table_ident(thd, &db, &(yyvsp[0].ident_sys), 0); if (unlikely((yyval.table) == NULL)) MYSQL_YYABORT; } -#line 44104 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44178 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2558: -#line 15507 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2559: +#line 15544 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ident_cli)= (yyvsp[0].kwd); } -#line 44110 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44184 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2559: -#line 15512 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2560: +#line 15549 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(thd->to_ident_sys_alloc(&(yyval.ident_sys), &(yyvsp[0].ident_cli)))) MYSQL_YYABORT; } -#line 44119 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44193 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2560: -#line 15520 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2561: +#line 15557 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (thd->make_text_string_sys(&(yyval.lex_str), &(yyvsp[0].lex_string_with_metadata))) MYSQL_YYABORT; } -#line 44128 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44202 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2561: -#line 15528 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2562: +#line 15565 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (thd->make_text_string_connection(&(yyval.lex_str), &(yyvsp[0].lex_string_with_metadata))) MYSQL_YYABORT; } -#line 44137 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44211 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2562: -#line 15536 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2563: +#line 15573 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (thd->make_text_string_filesystem(&(yyval.lex_str), &(yyvsp[0].lex_string_with_metadata))) MYSQL_YYABORT; } -#line 44146 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44220 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2564: -#line 15545 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2565: +#line 15582 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) MYSQL_YYABORT; } -#line 44155 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44229 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2566: -#line 15554 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2567: +#line 15591 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) MYSQL_YYABORT; } -#line 44164 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44238 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2568: -#line 15563 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2569: +#line 15600 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) MYSQL_YYABORT; } -#line 44173 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44247 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2569: -#line 15568 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2570: +#line 15605 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((yyval.ident_sys).copy_sys(thd, &(yyvsp[0].lex_str)))) MYSQL_YYABORT; } -#line 44182 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44256 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2571: -#line 15578 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2572: +#line 15615 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) MYSQL_YYABORT; } -#line 44191 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44265 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2573: -#line 15587 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2574: +#line 15624 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) MYSQL_YYABORT; } -#line 44200 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44274 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2574: -#line 15594 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2575: +#line 15631 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str)=(yyvsp[0].ident_sys);} -#line 44206 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44280 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2575: -#line 15595 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2576: +#line 15632 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str)=(yyvsp[0].lex_str);} -#line 44212 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44286 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2576: -#line 15596 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2577: +#line 15633 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_str)=(yyvsp[0].lex_str);} -#line 44218 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44292 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2577: -#line 15601 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2578: +#line 15638 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(LEX_USER))))) MYSQL_YYABORT; @@ -44231,11 +44305,11 @@ system_charset_info, 0))) MYSQL_YYABORT; } -#line 44235 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44309 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2578: -#line 15614 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2579: +#line 15651 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(LEX_USER))))) MYSQL_YYABORT; @@ -44265,11 +44339,11 @@ (yyval.lex_user)->host= host_not_specified; } } -#line 44269 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44343 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2579: -#line 15644 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2580: +#line 15681 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.lex_user)=(LEX_USER*)thd->calloc(sizeof(LEX_USER))))) MYSQL_YYABORT; @@ -44277,46 +44351,46 @@ (yyval.lex_user)->plugin= empty_clex_str; (yyval.lex_user)->auth= empty_clex_str; } -#line 44281 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44355 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 2582: -#line 15656 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 2583: +#line 15693 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if ((yyvsp[0].lex_user)->user.str != current_user.str && (yyvsp[0].lex_user)->host.str == 0) (yyvsp[0].lex_user)->host= host_not_specified; (yyval.lex_user)= (yyvsp[0].lex_user); } -#line 44291 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44365 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3056: -#line 16262 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3057: +#line 16299 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->set_stmt_init(); lex->var_list.empty(); sp_create_assignment_lex(thd, yychar == YYEMPTY); } -#line 44302 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44376 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3057: -#line 16269 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3058: +#line 16306 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 44308 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44382 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3058: -#line 16271 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3059: +#line 16308 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->set_stmt_init(); } -#line 44316 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44390 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3059: -#line 16275 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3060: +#line 16312 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->table_or_sp_used())) @@ -44324,267 +44398,267 @@ lex->stmt_var_list= lex->var_list; lex->var_list.empty(); } -#line 44328 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44402 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3060: -#line 16283 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3061: +#line 16320 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 44334 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44408 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3063: -#line 16299 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3064: +#line 16336 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } -#line 44343 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44417 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3065: -#line 16305 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3066: +#line 16342 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->option_type= OPT_DEFAULT; } -#line 44351 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44425 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3066: -#line 16309 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3067: +#line 16346 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } -#line 44360 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44434 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3067: -#line 16314 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3068: +#line 16351 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->option_type= (yyvsp[0].var_type); } -#line 44368 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44442 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3069: -#line 16324 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3070: +#line 16361 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } -#line 44377 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44451 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3071: -#line 16330 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3072: +#line 16367 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } -#line 44386 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44460 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3074: -#line 16344 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3075: +#line 16381 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { sp_create_assignment_lex(thd, yychar == YYEMPTY); } -#line 44394 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44468 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3075: -#line 16348 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3076: +#line 16385 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } -#line 44403 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44477 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3076: -#line 16353 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3077: +#line 16390 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { sp_create_assignment_lex(thd, yychar == YYEMPTY); } -#line 44411 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44485 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3077: -#line 16357 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3078: +#line 16394 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } -#line 44420 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44494 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3078: -#line 16366 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3079: +#line 16403 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->option_type= (yyvsp[0].var_type); } -#line 44428 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 3081: -#line 16374 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.var_type)=OPT_GLOBAL; } -#line 44434 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44502 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3082: -#line 16375 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.var_type)=OPT_SESSION; } -#line 44440 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 16411 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.var_type)=OPT_GLOBAL; } +#line 44508 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3083: -#line 16376 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 16412 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.var_type)=OPT_SESSION; } -#line 44446 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44514 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3084: -#line 16380 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 16413 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.var_type)=OPT_SESSION; } -#line 44452 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44520 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3085: -#line 16381 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.var_type)=OPT_GLOBAL; } -#line 44458 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 16417 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.var_type)=OPT_SESSION; } +#line 44526 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3086: -#line 16382 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.var_type)=OPT_SESSION; } -#line 44464 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 16418 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.var_type)=OPT_GLOBAL; } +#line 44532 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3087: -#line 16383 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 16419 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.var_type)=OPT_SESSION; } -#line 44470 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44538 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3088: -#line 16387 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.var_type)=OPT_DEFAULT; } -#line 44476 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 16420 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.var_type)=OPT_SESSION; } +#line 44544 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3089: -#line 16388 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.var_type)=OPT_GLOBAL; } -#line 44482 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 16424 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.var_type)=OPT_DEFAULT; } +#line 44550 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3090: -#line 16389 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.var_type)=OPT_SESSION; } -#line 44488 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 16425 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.var_type)=OPT_GLOBAL; } +#line 44556 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3091: -#line 16390 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 16426 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.var_type)=OPT_SESSION; } -#line 44494 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44562 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3092: -#line 16396 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 16427 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.var_type)=OPT_SESSION; } +#line 44568 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 3093: +#line 16433 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_system_variable(Lex->option_type, &(yyvsp[-2].ident_sys), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44503 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44577 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3093: -#line 16401 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3094: +#line 16438 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_system_variable(thd, Lex->option_type, &(yyvsp[-4].ident_sys), &(yyvsp[-2].ident_sys), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44512 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44586 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3094: -#line 16406 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3095: +#line 16443 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_default_system_variable(Lex->option_type, &(yyvsp[-2].ident_sys), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44521 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44595 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3095: -#line 16415 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3096: +#line 16452 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_variable(&(yyvsp[-2].ident_sys), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44530 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44604 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3096: -#line 16420 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3097: +#line 16457 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_variable(&(yyvsp[-4].ident_sys), &(yyvsp[-2].ident_sys), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44539 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44613 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3097: -#line 16425 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3098: +#line 16462 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_default_system_variable(Lex->option_type, &(yyvsp[-2].ident_sys), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44548 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44622 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3098: -#line 16430 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3099: +#line 16467 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_user_variable(thd, &(yyvsp[-2].lex_str), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44557 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44631 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3099: -#line 16435 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3100: +#line 16472 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_system_variable((yyvsp[-3].var_type), &(yyvsp[-2].ident_sys), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44566 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44640 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3100: -#line 16440 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3101: +#line 16477 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_system_variable(thd, (yyvsp[-5].var_type), &(yyvsp[-4].ident_sys), &(yyvsp[-2].ident_sys), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44575 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44649 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3101: -#line 16445 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3102: +#line 16482 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_default_system_variable((yyvsp[-5].var_type), &(yyvsp[-2].ident_sys), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44584 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44658 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3102: -#line 16450 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3103: +#line 16487 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; CHARSET_INFO *cs2; @@ -44598,11 +44672,11 @@ MYSQL_YYABORT; lex->var_list.push_back(var, thd->mem_root); } -#line 44602 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44676 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3103: -#line 16464 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3104: +#line 16501 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; sp_pcontext *spc= lex->spcont; @@ -44613,11 +44687,11 @@ thd->parse_error(); MYSQL_YYABORT; } -#line 44617 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44691 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3104: -#line 16475 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3105: +#line 16512 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; CHARSET_INFO *cs2; @@ -44636,11 +44710,11 @@ unlikely(lex->var_list.push_back(var, thd->mem_root))) MYSQL_YYABORT; } -#line 44640 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44714 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3105: -#line 16494 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3106: +#line 16531 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex = Lex; LEX_USER *user; @@ -44658,11 +44732,11 @@ if (lex->sphead) lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT; } -#line 44662 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44736 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3106: -#line 16512 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3107: +#line 16549 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex = Lex; set_var_default_role *var= (new (thd->mem_root) @@ -44674,11 +44748,11 @@ if (lex->sphead) lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT; } -#line 44678 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44752 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3107: -#line 16524 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3108: +#line 16561 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex = Lex; set_var_role *var= new (thd->mem_root) set_var_role((yyvsp[0].lex_str)); @@ -44686,20 +44760,20 @@ unlikely(lex->var_list.push_back(var, thd->mem_root))) MYSQL_YYABORT; } -#line 44690 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44764 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3108: -#line 16532 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3109: +#line 16569 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_variable(&(yyvsp[-2].kwd), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44699 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44773 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3109: -#line 16537 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3110: +#line 16574 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex = Lex; set_var_password *var= (new (thd->mem_root) @@ -44711,11 +44785,11 @@ if (lex->sphead) lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT; } -#line 44715 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44789 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3114: -#line 16560 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3115: +#line 16597 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; Item *item= new (thd->mem_root) Item_int(thd, (int32) (yyvsp[0].num)); @@ -44731,11 +44805,11 @@ if (unlikely(lex->var_list.push_back(var, thd->mem_root))) MYSQL_YYABORT; } -#line 44735 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44809 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3115: -#line 16579 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3116: +#line 16616 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; Item *item= new (thd->mem_root) Item_int(thd, (int32) (yyvsp[0].tx_isolation)); @@ -44750,47 +44824,47 @@ unlikely(lex->var_list.push_back(var, thd->mem_root))) MYSQL_YYABORT; } -#line 44754 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44828 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3116: -#line 16596 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3117: +#line 16633 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= true; } -#line 44760 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44834 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3117: -#line 16597 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3118: +#line 16634 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= false; } -#line 44766 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44840 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3118: -#line 16601 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3119: +#line 16638 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.tx_isolation)= ISO_READ_UNCOMMITTED; } -#line 44772 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44846 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3119: -#line 16602 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3120: +#line 16639 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.tx_isolation)= ISO_READ_COMMITTED; } -#line 44778 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44852 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3120: -#line 16603 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3121: +#line 16640 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.tx_isolation)= ISO_REPEATABLE_READ; } -#line 44784 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44858 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3121: -#line 16604 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3122: +#line 16641 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.tx_isolation)= ISO_SERIALIZABLE; } -#line 44790 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44864 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3122: -#line 16609 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3123: +#line 16646 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; sp_pcontext *spc= lex->spcont; @@ -44805,82 +44879,82 @@ lex->definer->plugin= empty_clex_str; lex->definer->auth= empty_clex_str; } -#line 44809 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44883 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3123: -#line 16623 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3124: +#line 16660 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->definer= (yyvsp[-1].lex_user); } -#line 44815 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44889 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3124: -#line 16627 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3125: +#line 16664 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->definer->pwhash= (yyvsp[0].lex_string_with_metadata);} -#line 44821 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44895 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3125: -#line 16628 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3126: +#line 16665 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->definer->pwtext= (yyvsp[-1].lex_string_with_metadata); } -#line 44827 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44901 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3126: -#line 16630 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3127: +#line 16667 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->definer->pwtext= (yyvsp[-1].lex_string_with_metadata); Lex->definer->pwhash.str= Item_func_password::alloc(thd, (yyvsp[-1].lex_string_with_metadata).str, (yyvsp[-1].lex_string_with_metadata).length, Item_func_password::OLD); Lex->definer->pwhash.length= SCRAMBLED_PASSWORD_CHAR_LENGTH_323; } -#line 44838 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44912 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3127: -#line 16639 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3128: +#line 16676 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)=(yyvsp[0].item); } -#line 44844 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44918 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3128: -#line 16640 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3129: +#line 16677 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)=0; } -#line 44850 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44924 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3129: -#line 16642 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3130: +#line 16679 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)=new (thd->mem_root) Item_string_sys(thd, "ON", 2); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 44860 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44934 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3130: -#line 16648 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3131: +#line 16685 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)=new (thd->mem_root) Item_string_sys(thd, "ALL", 3); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 44870 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44944 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3131: -#line 16654 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3132: +#line 16691 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.item)=new (thd->mem_root) Item_string_sys(thd, "binary", 6); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 44880 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44954 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3132: -#line 16665 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3133: +#line 16702 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; @@ -44888,55 +44962,55 @@ my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "LOCK")); lex->sql_command= SQLCOM_LOCK_TABLES; } -#line 44892 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44966 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3133: -#line 16673 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3134: +#line 16710 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 44898 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44972 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3134: -#line 16678 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3135: +#line 16715 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 44904 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44978 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3135: -#line 16680 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3136: +#line 16717 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(set_statement_var_if_exists(thd, STRING_WITH_LEN("lock_wait_timeout"), (yyvsp[0].ulong_num))) || unlikely(set_statement_var_if_exists(thd, STRING_WITH_LEN("innodb_lock_wait_timeout"), (yyvsp[0].ulong_num)))) MYSQL_YYABORT; } -#line 44914 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44988 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3136: -#line 16686 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3137: +#line 16723 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(set_statement_var_if_exists(thd, STRING_WITH_LEN("lock_wait_timeout"), 0)) || unlikely(set_statement_var_if_exists(thd, STRING_WITH_LEN("innodb_lock_wait_timeout"), 0))) MYSQL_YYABORT; } -#line 44924 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 44998 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3137: -#line 16694 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3138: +#line 16731 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 44930 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45004 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3138: -#line 16695 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3139: +#line 16732 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { } -#line 44936 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45010 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3141: -#line 16705 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3142: +#line 16742 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { thr_lock_type lock_type= (thr_lock_type) (yyvsp[0].num); bool lock_for_write= (lock_type >= TL_WRITE_ALLOW_WRITE); @@ -44952,43 +45026,43 @@ lock_type, mdl_type))) MYSQL_YYABORT; } -#line 44956 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45030 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3142: -#line 16723 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3143: +#line 16760 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= TL_READ_NO_INSERT; } -#line 44962 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45036 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3143: -#line 16724 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3144: +#line 16761 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= TL_WRITE_DEFAULT; } -#line 44968 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45042 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3144: -#line 16726 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3145: +#line 16763 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT); } -#line 44976 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45050 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3145: -#line 16730 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3146: +#line 16767 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= TL_WRITE_LOW_PRIORITY; } -#line 44982 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45056 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3146: -#line 16731 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3147: +#line 16768 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= TL_READ; } -#line 44988 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45062 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3147: -#line 16736 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3148: +#line 16773 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; @@ -44996,17 +45070,17 @@ my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "UNLOCK")); lex->sql_command= SQLCOM_UNLOCK_TABLES; } -#line 45000 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45074 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3148: -#line 16744 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3149: +#line 16781 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 45006 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45080 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3149: -#line 16753 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3150: +#line 16790 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->sphead)) @@ -45016,11 +45090,11 @@ 0))) MYSQL_YYABORT; } -#line 45020 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45094 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3150: -#line 16763 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3151: +#line 16800 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->sphead)) @@ -45030,11 +45104,11 @@ 0))) MYSQL_YYABORT; } -#line 45034 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45108 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3151: -#line 16773 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3152: +#line 16810 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(lex->sphead)) @@ -45052,11 +45126,11 @@ 0))) MYSQL_YYABORT; } -#line 45056 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45130 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3152: -#line 16791 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3153: +#line 16828 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->expr_allows_subselect= TRUE; /* Stored functions are not supported for HANDLER READ. */ @@ -45067,59 +45141,59 @@ MYSQL_YYABORT; } } -#line 45071 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45145 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3153: -#line 16804 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3154: +#line 16841 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ident= null_clex_str; } -#line 45077 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45151 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3154: -#line 16805 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3155: +#line 16842 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ident= (yyvsp[-1].ident_sys); } -#line 45083 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45157 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3155: -#line 16809 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3156: +#line 16846 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ha_read_mode = RFIRST; } -#line 45089 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45163 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3156: -#line 16810 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3157: +#line 16847 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ha_read_mode = RNEXT; } -#line 45095 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45169 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3157: -#line 16814 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3158: +#line 16851 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ha_read_mode = RFIRST; } -#line 45101 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45175 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3158: -#line 16815 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3159: +#line 16852 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ha_read_mode = RNEXT; } -#line 45107 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45181 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3159: -#line 16816 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3160: +#line 16853 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ha_read_mode = RPREV; } -#line 45113 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45187 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3160: -#line 16817 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3161: +#line 16854 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ha_read_mode = RLAST; } -#line 45119 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45193 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3161: -#line 16819 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3162: +#line 16856 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->ha_read_mode = RKEY; @@ -45127,211 +45201,211 @@ if (unlikely(!(lex->insert_list= new (thd->mem_root) List_item))) MYSQL_YYABORT; } -#line 45131 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45205 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3162: -#line 16827 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3163: +#line 16864 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 45137 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45211 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3163: -#line 16831 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3164: +#line 16868 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ha_rkey_mode)=HA_READ_KEY_EXACT; } -#line 45143 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45217 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3164: -#line 16832 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3165: +#line 16869 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_NEXT; } -#line 45149 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45223 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3165: -#line 16833 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3166: +#line 16870 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_PREV; } -#line 45155 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45229 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3166: -#line 16834 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3167: +#line 16871 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ha_rkey_mode)=HA_READ_AFTER_KEY; } -#line 45161 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45235 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3167: -#line 16835 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3168: +#line 16872 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.ha_rkey_mode)=HA_READ_BEFORE_KEY; } -#line 45167 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45241 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3168: -#line 16842 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3169: +#line 16879 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 45173 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45247 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3169: -#line 16847 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3170: +#line 16884 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_REVOKE; lex->type= 0; } -#line 45183 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45257 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3170: -#line 16853 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3171: +#line 16890 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_grant_command(thd, SQLCOM_REVOKE, TYPE_ENUM_FUNCTION))) MYSQL_YYABORT; } -#line 45193 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45267 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3171: -#line 16859 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3172: +#line 16896 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_grant_command(thd, SQLCOM_REVOKE, TYPE_ENUM_PROCEDURE))) MYSQL_YYABORT; } -#line 45203 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45277 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3172: -#line 16866 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3173: +#line 16903 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_grant_command(thd, SQLCOM_REVOKE, TYPE_ENUM_PACKAGE))) MYSQL_YYABORT; } -#line 45213 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45287 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3173: -#line 16873 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3174: +#line 16910 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_grant_command(thd, SQLCOM_REVOKE, TYPE_ENUM_PACKAGE_BODY))) MYSQL_YYABORT; } -#line 45223 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45297 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3174: -#line 16879 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3175: +#line 16916 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_REVOKE_ALL; } -#line 45231 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45305 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3175: -#line 16883 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3176: +#line 16920 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->users_list.push_front ((yyvsp[-2].lex_user)); lex->sql_command= SQLCOM_REVOKE; lex->type= TYPE_ENUM_PROXY; } -#line 45242 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45316 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3176: -#line 16890 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3177: +#line 16927 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_REVOKE_ROLE; if (unlikely(Lex->users_list.push_front((yyvsp[-2].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45252 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45326 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3177: -#line 16899 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3178: +#line 16936 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->with_admin_option= true; (yyval.lex_user)= (yyvsp[0].lex_user); } -#line 45258 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45332 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3178: -#line 16901 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3179: +#line 16938 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->with_admin_option= false; (yyval.lex_user)= (yyvsp[0].lex_user); } -#line 45264 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45338 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3179: -#line 16906 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3180: +#line 16943 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 45270 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45344 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3180: -#line 16912 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3181: +#line 16949 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_GRANT; lex->type= 0; } -#line 45280 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45354 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3181: -#line 16919 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3182: +#line 16956 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_grant_command(thd, SQLCOM_GRANT, TYPE_ENUM_FUNCTION))) MYSQL_YYABORT; } -#line 45290 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45364 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3182: -#line 16926 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3183: +#line 16963 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_grant_command(thd, SQLCOM_GRANT, TYPE_ENUM_PROCEDURE))) MYSQL_YYABORT; } -#line 45300 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45374 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3183: -#line 16933 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3184: +#line 16970 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_grant_command(thd, SQLCOM_GRANT, TYPE_ENUM_PACKAGE))) MYSQL_YYABORT; } -#line 45310 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45384 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3184: -#line 16940 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3185: +#line 16977 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_grant_command(thd, SQLCOM_GRANT, TYPE_ENUM_PACKAGE_BODY))) MYSQL_YYABORT; } -#line 45320 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45394 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3185: -#line 16946 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3186: +#line 16983 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->users_list.push_front ((yyvsp[-3].lex_user)); lex->sql_command= SQLCOM_GRANT; lex->type= TYPE_ENUM_PROXY; } -#line 45331 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45405 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3186: -#line 16953 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3187: +#line 16990 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_GRANT_ROLE; @@ -45339,64 +45413,64 @@ if (unlikely(Lex->users_list.push_front((yyvsp[-3].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45343 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45417 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3187: -#line 16964 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3188: +#line 17001 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->definer = 0; } -#line 45349 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45423 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3188: -#line 16965 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3189: +#line 17002 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->definer = (yyvsp[0].lex_user); } -#line 45355 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45429 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3189: -#line 16968 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3190: +#line 17006 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->with_admin_option= false; } -#line 45361 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45435 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3190: -#line 16969 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3191: +#line 17007 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->with_admin_option= true; } -#line 45367 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45441 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3191: -#line 16973 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3192: +#line 17012 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45376 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45450 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3192: -#line 16978 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3193: +#line 17017 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45385 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45459 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3193: -#line 16986 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3194: +#line 17025 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.lex_user)=(LEX_USER*) thd->calloc(sizeof(LEX_USER))))) MYSQL_YYABORT; (yyval.lex_user)->user= current_role; (yyval.lex_user)->reset_auth(); } -#line 45396 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45470 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3194: -#line 16996 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3195: +#line 17035 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { CHARSET_INFO *cs= system_charset_info; /* trim end spaces (as they'll be lost in mysql.user anyway) */ @@ -45415,281 +45489,281 @@ cs, 0))) MYSQL_YYABORT; } -#line 45419 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45493 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3198: -#line 17023 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3199: +#line 17062 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 45425 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45499 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3199: -#line 17025 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3200: +#line 17064 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->all_privileges= 1; Lex->grant= GLOBAL_ACLS; } -#line 45434 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45508 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3204: -#line 17043 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3205: +#line 17082 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->which_columns = SELECT_ACL;} -#line 45440 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45514 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3205: -#line 17044 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3206: +#line 17083 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 45446 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45520 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3206: -#line 17046 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3207: +#line 17085 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->which_columns = INSERT_ACL;} -#line 45452 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45526 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3207: -#line 17047 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3208: +#line 17086 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 45458 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45532 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3208: -#line 17049 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3209: +#line 17088 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->which_columns = UPDATE_ACL; } -#line 45464 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45538 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3209: -#line 17050 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3210: +#line 17089 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 45470 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45544 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3210: -#line 17052 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3211: +#line 17091 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->which_columns = REFERENCES_ACL;} -#line 45476 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45550 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3211: -#line 17053 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3212: +#line 17092 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 45482 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45556 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3212: -#line 17054 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3213: +#line 17093 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= DELETE_ACL;} -#line 45488 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45562 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3213: -#line 17055 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3214: +#line 17094 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 45494 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45568 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3214: -#line 17056 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3215: +#line 17095 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= INDEX_ACL;} -#line 45500 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45574 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3215: -#line 17057 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3216: +#line 17096 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= ALTER_ACL;} -#line 45506 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45580 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3216: -#line 17058 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3217: +#line 17097 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= CREATE_ACL;} -#line 45512 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45586 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3217: -#line 17059 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3218: +#line 17098 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= DROP_ACL;} -#line 45518 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45592 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3218: -#line 17060 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3219: +#line 17099 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= EXECUTE_ACL;} -#line 45524 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45598 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3219: -#line 17061 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3220: +#line 17100 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= RELOAD_ACL;} -#line 45530 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45604 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3220: -#line 17062 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3221: +#line 17101 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= SHUTDOWN_ACL;} -#line 45536 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45610 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3221: -#line 17063 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3222: +#line 17102 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= PROCESS_ACL;} -#line 45542 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45616 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3222: -#line 17064 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3223: +#line 17103 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= FILE_ACL;} -#line 45548 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45622 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3223: -#line 17065 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3224: +#line 17104 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= GRANT_ACL;} -#line 45554 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45628 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3224: -#line 17066 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3225: +#line 17105 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= SHOW_DB_ACL;} -#line 45560 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45634 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3225: -#line 17067 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3226: +#line 17106 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= SUPER_ACL;} -#line 45566 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45640 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3226: -#line 17068 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3227: +#line 17107 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= CREATE_TMP_ACL;} -#line 45572 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45646 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3227: -#line 17069 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3228: +#line 17108 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= LOCK_TABLES_ACL; } -#line 45578 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45652 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3228: -#line 17070 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3229: +#line 17109 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= REPL_SLAVE_ACL; } -#line 45584 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45658 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3229: -#line 17071 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3230: +#line 17110 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= REPL_CLIENT_ACL; } -#line 45590 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45664 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3230: -#line 17072 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3231: +#line 17111 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= CREATE_VIEW_ACL; } -#line 45596 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45670 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3231: -#line 17073 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3232: +#line 17112 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= SHOW_VIEW_ACL; } -#line 45602 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45676 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3232: -#line 17074 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3233: +#line 17113 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= CREATE_PROC_ACL; } -#line 45608 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45682 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3233: -#line 17075 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3234: +#line 17114 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= ALTER_PROC_ACL; } -#line 45614 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45688 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3234: -#line 17076 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3235: +#line 17115 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= CREATE_USER_ACL; } -#line 45620 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45694 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3235: -#line 17077 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3236: +#line 17116 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= EVENT_ACL;} -#line 45626 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45700 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3236: -#line 17078 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3237: +#line 17117 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= TRIGGER_ACL; } -#line 45632 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45706 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3237: -#line 17079 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3238: +#line 17118 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= CREATE_TABLESPACE_ACL; } -#line 45638 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45712 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3238: -#line 17080 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3239: +#line 17119 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->grant |= DELETE_HISTORY_ACL; } -#line 45644 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45718 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3239: -#line 17084 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3240: +#line 17123 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 45650 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45724 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3240: -#line 17085 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3241: +#line 17124 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 45656 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45730 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3243: -#line 17095 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3244: +#line 17134 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(lex->x509_subject)) my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "SUBJECT")); lex->x509_subject=(yyvsp[0].lex_string_with_metadata).str; } -#line 45667 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45741 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3244: -#line 17102 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3245: +#line 17141 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(lex->x509_issuer)) my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "ISSUER")); lex->x509_issuer=(yyvsp[0].lex_string_with_metadata).str; } -#line 45678 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45752 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3245: -#line 17109 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3246: +#line 17148 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(lex->ssl_cipher)) my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "CIPHER")); lex->ssl_cipher=(yyvsp[0].lex_string_with_metadata).str; } -#line 45689 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45763 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3246: -#line 17119 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3247: +#line 17158 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->copy_db_to(&lex->current_select->db))) @@ -45699,11 +45773,11 @@ else if (unlikely(lex->columns.elements)) my_yyabort_error((ER_ILLEGAL_GRANT_FOR_TABLE, MYF(0))); } -#line 45703 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45777 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3247: -#line 17129 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3248: +#line 17168 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->current_select->db= (yyvsp[-2].ident_sys); @@ -45712,11 +45786,11 @@ else if (unlikely(lex->columns.elements)) my_yyabort_error((ER_ILLEGAL_GRANT_FOR_TABLE, MYF(0))); } -#line 45716 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45790 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3248: -#line 17138 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3249: +#line 17177 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->current_select->db= null_clex_str; @@ -45725,11 +45799,11 @@ else if (unlikely(lex->columns.elements)) my_yyabort_error((ER_ILLEGAL_GRANT_FOR_TABLE, MYF(0))); } -#line 45729 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45803 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3249: -#line 17147 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3250: +#line 17186 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(!lex->current_select-> @@ -45739,120 +45813,120 @@ if (lex->grant == GLOBAL_ACLS) lex->grant = TABLE_ACLS & ~GRANT_ACL; } -#line 45743 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45817 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3250: -#line 17160 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3251: +#line 17199 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45752 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45826 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3251: -#line 17165 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3252: +#line 17204 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45761 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45835 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3252: -#line 17173 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3253: +#line 17212 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45770 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45844 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3253: -#line 17178 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3254: +#line 17217 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45779 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45853 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3254: -#line 17186 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3255: +#line 17225 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45788 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45862 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3255: -#line 17191 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3256: +#line 17230 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45797 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45871 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3260: -#line 17202 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3261: +#line 17241 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_user)= (yyvsp[-3].lex_user); (yyvsp[-3].lex_user)->pwtext= (yyvsp[0].lex_string_with_metadata); if (unlikely(Lex->sql_command == SQLCOM_REVOKE)) MYSQL_YYABORT; } -#line 45808 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45882 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3261: -#line 17209 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3262: +#line 17248 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_user)= (yyvsp[-4].lex_user); (yyvsp[-4].lex_user)->pwhash= (yyvsp[0].lex_string_with_metadata); } -#line 45817 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45891 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3262: -#line 17214 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3263: +#line 17253 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_user)= (yyvsp[-3].lex_user); (yyvsp[-3].lex_user)->plugin= (yyvsp[0].lex_str); (yyvsp[-3].lex_user)->auth= empty_clex_str; } -#line 45827 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45901 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3263: -#line 17220 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3264: +#line 17259 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_user)= (yyvsp[-5].lex_user); (yyvsp[-5].lex_user)->plugin= (yyvsp[-2].lex_str); (yyvsp[-5].lex_user)->auth= (yyvsp[0].lex_str); } -#line 45837 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45911 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3264: -#line 17226 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3265: +#line 17265 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.lex_user)= (yyvsp[0].lex_user); } -#line 45843 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45917 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3265: -#line 17231 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3266: +#line 17270 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->grant |= lex->which_columns; } -#line 45852 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45926 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3269: -#line 17245 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3270: +#line 17284 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { String *new_str= new (thd->mem_root) String((const char*) (yyvsp[0].ident_sys).str,(yyvsp[0].ident_sys).length,system_charset_info); if (unlikely(new_str == NULL)) @@ -45878,245 +45952,245 @@ lex->columns.push_back(col, thd->mem_root); } } -#line 45882 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45956 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3271: -#line 17275 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3272: +#line 17314 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ssl_type=SSL_TYPE_SPECIFIED; } -#line 45890 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45964 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3272: -#line 17279 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3273: +#line 17318 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ssl_type=SSL_TYPE_ANY; } -#line 45898 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45972 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3273: -#line 17283 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3274: +#line 17322 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ssl_type=SSL_TYPE_X509; } -#line 45906 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45980 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3274: -#line 17287 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3275: +#line 17326 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->ssl_type=SSL_TYPE_NONE; } -#line 45914 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45988 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3275: -#line 17294 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3276: +#line 17333 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->mqh.questions=(yyvsp[0].ulong_num); lex->mqh.specified_limits|= USER_RESOURCES::QUERIES_PER_HOUR; } -#line 45924 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 45998 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3276: -#line 17300 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3277: +#line 17339 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->mqh.updates=(yyvsp[0].ulong_num); lex->mqh.specified_limits|= USER_RESOURCES::UPDATES_PER_HOUR; } -#line 45934 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46008 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3277: -#line 17306 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3278: +#line 17345 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->mqh.conn_per_hour= (yyvsp[0].ulong_num); lex->mqh.specified_limits|= USER_RESOURCES::CONNECTIONS_PER_HOUR; } -#line 45944 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46018 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3278: -#line 17312 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3279: +#line 17351 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->mqh.user_conn= (yyvsp[0].num); lex->mqh.specified_limits|= USER_RESOURCES::USER_CONNECTIONS; } -#line 45954 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46028 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3279: -#line 17318 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3280: +#line 17357 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->mqh.max_statement_time= (yyvsp[0].item_num)->val_real(); lex->mqh.specified_limits|= USER_RESOURCES::MAX_STATEMENT_TIME; } -#line 45964 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 3280: -#line 17326 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 45970 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46038 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3281: -#line 17327 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 17365 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 45976 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46044 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3282: -#line 17331 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 17366 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 45982 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46050 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3284: -#line 17337 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3283: +#line 17370 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 45988 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46056 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3285: -#line 17338 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 17376 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 45994 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46062 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3286: -#line 17342 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 17377 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 46000 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46068 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3287: -#line 17343 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->grant |= GRANT_ACL;} -#line 46006 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 17381 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {} +#line 46074 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3288: -#line 17347 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 46012 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 17382 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->grant |= GRANT_ACL;} +#line 46080 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3289: -#line 17348 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 17386 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 46018 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46086 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3290: -#line 17352 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->grant |= GRANT_ACL;} -#line 46024 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 17387 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {} +#line 46092 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3291: -#line 17353 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 46030 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 17391 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->grant |= GRANT_ACL;} +#line 46098 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3292: -#line 17358 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 17392 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {} +#line 46104 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 3293: +#line 17397 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_BEGIN; lex->start_transaction_opt= 0; } -#line 46040 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46114 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3293: -#line 17363 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3294: +#line 17402 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 46046 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46120 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3294: -#line 17368 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3295: +#line 17407 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_COMPOUND; Lex->sphead->set_stmt_end(thd); Lex->sphead->restore_thd_mem_root(thd); } -#line 46056 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46130 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3295: -#line 17376 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3296: +#line 17415 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 46062 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46136 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3296: -#line 17377 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3297: +#line 17416 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 46068 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46142 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3297: -#line 17381 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3298: +#line 17420 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 46074 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46148 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3298: -#line 17382 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3299: +#line 17421 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 46080 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46154 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3299: -#line 17387 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3300: +#line 17426 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.m_yes_no_unk)= TVL_UNKNOWN; } -#line 46086 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46160 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3300: -#line 17388 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3301: +#line 17427 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.m_yes_no_unk)= TVL_NO; } -#line 46092 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46166 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3301: -#line 17389 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3302: +#line 17428 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.m_yes_no_unk)= TVL_YES; } -#line 46098 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46172 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3302: -#line 17394 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3303: +#line 17433 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.m_yes_no_unk)= TVL_UNKNOWN; } -#line 46104 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46178 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3303: -#line 17395 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3304: +#line 17434 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.m_yes_no_unk)= TVL_YES; } -#line 46110 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46184 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3304: -#line 17396 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3305: +#line 17435 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.m_yes_no_unk)= TVL_NO; } -#line 46116 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46190 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3305: -#line 17401 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3306: +#line 17440 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_COMMIT; @@ -46125,11 +46199,11 @@ lex->tx_chain= (yyvsp[-1].m_yes_no_unk); lex->tx_release= (yyvsp[0].m_yes_no_unk); } -#line 46129 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46203 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3306: -#line 17413 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3307: +#line 17452 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_ROLLBACK; @@ -46138,84 +46212,84 @@ lex->tx_chain= (yyvsp[-1].m_yes_no_unk); lex->tx_release= (yyvsp[0].m_yes_no_unk); } -#line 46142 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46216 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3307: -#line 17422 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3308: +#line 17461 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_ROLLBACK_TO_SAVEPOINT; lex->ident= (yyvsp[0].ident_sys); } -#line 46152 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46226 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3308: -#line 17428 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3309: +#line 17467 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_ROLLBACK_TO_SAVEPOINT; lex->ident= (yyvsp[0].ident_sys); } -#line 46162 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46236 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3309: -#line 17437 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3310: +#line 17476 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_SAVEPOINT; lex->ident= (yyvsp[0].ident_sys); } -#line 46172 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46246 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3310: -#line 17446 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3311: +#line 17485 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_RELEASE_SAVEPOINT; lex->ident= (yyvsp[0].ident_sys); } -#line 46182 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46256 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3311: -#line 17459 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3312: +#line 17498 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.unit_type)= UNION_TYPE; } -#line 46188 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46262 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3312: -#line 17461 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3313: +#line 17500 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.unit_type)= INTERSECT_TYPE; } -#line 46194 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46268 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3313: -#line 17463 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3314: +#line 17502 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.unit_type)= EXCEPT_TYPE; } -#line 46200 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46274 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3314: -#line 17467 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3315: +#line 17506 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 46206 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46280 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3316: -#line 17473 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3317: +#line 17512 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_select_to_union_list((bool)(yyvsp[0].num), (yyvsp[-1].unit_type), TRUE))) MYSQL_YYABORT; } -#line 46215 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46289 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3317: -#line 17478 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3318: +#line 17517 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* Remove from the name resolution context stack the context of the @@ -46223,28 +46297,28 @@ */ Lex->pop_context(); } -#line 46227 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46301 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3318: -#line 17489 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3319: +#line 17528 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_select_to_union_list((bool)(yyvsp[0].num), (yyvsp[-1].unit_type), TRUE))) MYSQL_YYABORT; } -#line 46236 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46310 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3319: -#line 17494 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3320: +#line 17533 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->pop_context(); } -#line 46244 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46318 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3320: -#line 17500 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3321: +#line 17539 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; DBUG_ASSERT(lex->current_select->linkage != GLOBAL_OPTIONS_TYPE); @@ -46258,136 +46332,136 @@ } thd->where= "global ORDER clause"; } -#line 46262 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46336 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3321: -#line 17514 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3322: +#line 17553 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { thd->lex->current_select->no_table_names_allowed= 0; thd->where= ""; } -#line 46271 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46345 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3324: -#line 17530 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3325: +#line 17569 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_select_to_union_list((bool)(yyvsp[0].num), (yyvsp[-1].unit_type), FALSE))) MYSQL_YYABORT; } -#line 46280 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 3325: -#line 17537 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.num)=1; } -#line 46286 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46354 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3326: -#line 17538 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 17576 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)=1; } -#line 46292 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46360 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3327: -#line 17539 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.num)=0; } -#line 46298 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 17577 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.num)=1; } +#line 46366 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3328: -#line 17543 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.select_lex)= (yyvsp[0].select_lex); } -#line 46304 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 17578 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.num)=0; } +#line 46372 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3329: -#line 17544 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 17582 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.select_lex)= (yyvsp[0].select_lex); } -#line 46310 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46378 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3330: -#line 17549 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 17583 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.select_lex)= (yyvsp[0].select_lex); } +#line 46384 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 3331: +#line 17588 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->tvc_start(); } -#line 46318 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46392 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3331: -#line 17553 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3332: +#line 17592 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.select_lex)= Lex->current_select; if (Lex->tvc_finalize()) MYSQL_YYABORT; } -#line 46328 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46402 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3332: -#line 17571 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3333: +#line 17610 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.select_lex)= Lex->current_select->master_unit()->first_select(); } -#line 46336 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 3333: -#line 17577 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.select_lex)= (yyvsp[-2].select_lex); } -#line 46342 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46410 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3334: -#line 17578 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 17616 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.select_lex)= (yyvsp[-2].select_lex); } -#line 46348 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46416 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3335: -#line 17582 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.select_lex)= (yyvsp[-1].select_lex); } -#line 46354 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 17617 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.select_lex)= (yyvsp[-2].select_lex); } +#line 46422 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3336: -#line 17583 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 17621 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.select_lex)= (yyvsp[-1].select_lex); } -#line 46360 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46428 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3337: -#line 17587 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.select_lex)= (yyvsp[0].select_lex); } -#line 46366 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 17622 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.select_lex)= (yyvsp[-1].select_lex); } +#line 46434 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3338: -#line 17588 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 17626 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.select_lex)= (yyvsp[0].select_lex); } -#line 46372 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46440 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3339: -#line 17589 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { (yyval.select_lex)= (yyvsp[-1].select_lex); } -#line 46378 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 17627 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.select_lex)= (yyvsp[0].select_lex); } +#line 46446 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3340: -#line 17595 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 17628 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { (yyval.select_lex)= (yyvsp[-1].select_lex); } +#line 46452 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 3341: +#line 17634 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyvsp[-1].select_lex)->set_with_clause((yyvsp[-2].with_clause)); (yyval.select_lex)= (yyvsp[-1].select_lex); } -#line 46387 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46461 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3341: -#line 17602 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3342: +#line 17641 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(!lex->expr_allows_subselect || @@ -46406,11 +46480,11 @@ if (unlikely(mysql_new_select(Lex, 1, NULL))) MYSQL_YYABORT; } -#line 46410 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46484 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3342: -#line 17623 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3343: +#line 17662 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex=Lex; @@ -46436,17 +46510,17 @@ temp->select_n_having_items; } } -#line 46440 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46514 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3347: -#line 17661 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3348: +#line 17700 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->options|= SELECT_STRAIGHT_JOIN; } -#line 46446 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46520 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3348: -#line 17663 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3349: +#line 17702 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->check_simple_select(&(yyvsp[0].kwd)))) MYSQL_YYABORT; @@ -46454,55 +46528,55 @@ YYPS->m_mdl_type= MDL_SHARED_READ; Select->options|= SELECT_HIGH_PRIORITY; } -#line 46458 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46532 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3349: -#line 17670 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3350: +#line 17709 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->options|= SELECT_DISTINCT; } -#line 46464 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46538 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3350: -#line 17671 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3351: +#line 17710 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->options|= SELECT_SMALL_RESULT; } -#line 46470 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46544 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3351: -#line 17672 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3352: +#line 17711 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->options|= SELECT_BIG_RESULT; } -#line 46476 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46550 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3352: -#line 17674 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3353: +#line 17713 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->check_simple_select(&(yyvsp[0].kwd)))) MYSQL_YYABORT; Select->options|= OPTION_BUFFER_RESULT; } -#line 46486 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46560 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3353: -#line 17680 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3354: +#line 17719 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->check_simple_select(&(yyvsp[0].kwd)))) MYSQL_YYABORT; Select->options|= OPTION_FOUND_ROWS; } -#line 46496 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46570 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3354: -#line 17685 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3355: +#line 17724 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Select->options|= SELECT_ALL; } -#line 46502 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46576 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3357: -#line 17701 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3358: +#line 17740 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* We have to distinguish missing DEFINER-clause from case when @@ -46513,100 +46587,100 @@ */ thd->lex->definer= 0; } -#line 46517 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46591 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3358: -#line 17715 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3359: +#line 17754 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->definer= (yyvsp[0].lex_user); Lex->ssl_type= SSL_TYPE_NOT_SPECIFIED; Lex->ssl_cipher= Lex->x509_subject= Lex->x509_issuer= 0; bzero(&(Lex->mqh), sizeof(Lex->mqh)); } -#line 46528 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46602 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3359: -#line 17730 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3360: +#line 17769 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= DTYPE_ALGORITHM_UNDEFINED; } -#line 46534 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46608 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3360: -#line 17731 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3361: +#line 17770 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= VIEW_ALGORITHM_MERGE; } -#line 46540 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46614 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3361: -#line 17732 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3362: +#line 17771 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= VIEW_ALGORITHM_TMPTABLE; } -#line 46546 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46620 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3362: -#line 17736 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3363: +#line 17775 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.view_suid)= VIEW_SUID_DEFAULT; } -#line 46552 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46626 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3363: -#line 17737 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3364: +#line 17776 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.view_suid)= (yyvsp[0].view_suid); } -#line 46558 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46632 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3364: -#line 17741 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3365: +#line 17780 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.view_suid)= VIEW_SUID_DEFINER; } -#line 46564 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46638 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3365: -#line 17742 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3366: +#line 17781 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.view_suid)= VIEW_SUID_INVOKER; } -#line 46570 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46644 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3366: -#line 17747 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3367: +#line 17786 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 46576 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46650 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3368: -#line 17753 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3369: +#line 17792 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->view_list.push_back((LEX_CSTRING*) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_CSTRING)), thd->mem_root); } -#line 46586 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46660 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3369: -#line 17759 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3370: +#line 17798 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->view_list.push_back((LEX_CSTRING*) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_CSTRING)), thd->mem_root); } -#line 46596 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46670 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3370: -#line 17767 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3371: +#line 17806 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->parsing_options.allows_variable= FALSE; lex->create_view->select.str= (char *) YYLIP->get_cpp_ptr(); } -#line 46606 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46680 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3371: -#line 17773 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3372: +#line 17812 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; size_t len= YYLIP->get_cpp_ptr() - lex->create_view->select.str; @@ -46619,99 +46693,99 @@ lex->parsing_options.allows_variable= TRUE; lex->current_select->set_with_clause((yyvsp[-2].with_clause)); } -#line 46623 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46697 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3379: -#line 17802 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3380: +#line 17841 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= VIEW_CHECK_NONE; } -#line 46629 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46703 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3380: -#line 17803 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3381: +#line 17842 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= VIEW_CHECK_CASCADED; } -#line 46635 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46709 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3381: -#line 17804 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3382: +#line 17843 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= VIEW_CHECK_CASCADED; } -#line 46641 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46715 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3382: -#line 17805 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3383: +#line 17844 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= VIEW_CHECK_LOCAL; } -#line 46647 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46721 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3383: -#line 17816 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3384: +#line 17855 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.trigger_action_order_type)= TRG_ORDER_FOLLOWS; } -#line 46653 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46727 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3384: -#line 17818 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3385: +#line 17857 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.trigger_action_order_type)= TRG_ORDER_PRECEDES; } -#line 46659 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46733 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3385: -#line 17823 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3386: +#line 17862 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.trg_execution_order).ordering_clause= TRG_ORDER_NONE; (yyval.trg_execution_order).anchor_trigger_name.str= NULL; (yyval.trg_execution_order).anchor_trigger_name.length= 0; } -#line 46669 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46743 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3386: -#line 17830 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3387: +#line 17869 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.trg_execution_order).ordering_clause= (yyvsp[-1].trigger_action_order_type); (yyval.trg_execution_order).anchor_trigger_name= (yyvsp[0].lex_str); } -#line 46678 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46752 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3387: -#line 17839 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3388: +#line 17878 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_create_options_with_check((yyvsp[0].object_ddl_options)))) MYSQL_YYABORT; } -#line 46687 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46761 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3388: -#line 17848 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3389: +#line 17887 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* $9 */ Lex->raw_trg_on_table_name_begin= YYLIP->get_tok_start(); } -#line 46695 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46769 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3389: -#line 17854 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3390: +#line 17893 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* $13 */ Lex->raw_trg_on_table_name_end= YYLIP->get_tok_start(); } -#line 46703 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46777 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3390: -#line 17859 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3391: +#line 17898 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->trg_chistics.ordering_clause_begin= YYLIP->get_cpp_ptr(); } -#line 46711 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46785 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3391: -#line 17863 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3392: +#line 17902 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* $18 */ LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; @@ -46731,11 +46805,11 @@ lex->sphead->set_body_start(thd, lip->get_cpp_tok_start()); } -#line 46735 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46809 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3392: -#line 17883 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3393: +#line 17922 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { /* $20 */ LEX *lex= Lex; sp_head *sp= lex->sphead; @@ -46759,11 +46833,11 @@ MDL_SHARED_NO_WRITE))) MYSQL_YYABORT; } -#line 46763 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46837 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3393: -#line 17917 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3394: +#line 17956 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; if (unlikely(lex->add_create_options_with_check((yyvsp[-5].object_ddl_options)))) @@ -46775,43 +46849,43 @@ lex->udf.returns= (Item_result) (yyvsp[-2].num); lex->udf.dl= (yyvsp[0].lex_str).str; } -#line 46779 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46853 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3394: -#line 17933 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3395: +#line 17972 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->init_last_field(&lex->sphead->m_return_field_def, &empty_clex_str, thd->variables.collation_database); } -#line 46790 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46864 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3395: -#line 17940 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3396: +#line 17979 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sphead->fill_field_definition(thd, Lex->last_field))) MYSQL_YYABORT; } -#line 46800 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46874 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3396: -#line 17950 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3397: +#line 17989 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_CREATE_SPFUNCTION; if (unlikely(!Lex->make_sp_head_no_recursive(thd, (yyvsp[-1].object_ddl_options), (yyvsp[0].spname), &sp_handler_function))) MYSQL_YYABORT; } -#line 46811 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46885 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3397: -#line 17959 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3398: +#line 17998 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; @@ -46819,104 +46893,104 @@ lex->sphead->set_chistics(lex->sp_chistics); lex->sphead->set_body_start(thd, lip->get_cpp_tok_start()); } -#line 46823 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46897 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3398: -#line 17967 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3399: +#line 18006 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_body_finalize_function(thd))) MYSQL_YYABORT; } -#line 46832 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46906 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3399: -#line 17975 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3400: +#line 18014 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_CREATE_PROCEDURE; if (unlikely(!Lex->make_sp_head_no_recursive(thd, (yyvsp[-1].object_ddl_options), (yyvsp[0].spname), &sp_handler_procedure))) MYSQL_YYABORT; } -#line 46843 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46917 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3400: -#line 17983 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3401: +#line 18022 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sphead->set_chistics(Lex->sp_chistics); Lex->sphead->set_body_start(thd, YYLIP->get_cpp_tok_start()); } -#line 46852 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46926 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3401: -#line 17988 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3402: +#line 18027 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_body_finalize_procedure(thd))) MYSQL_YYABORT; } -#line 46861 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46935 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3402: -#line 17998 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3403: +#line 18037 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_XA_START; } -#line 46869 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46943 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3403: -#line 18002 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3404: +#line 18041 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_XA_END; } -#line 46877 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46951 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3404: -#line 18006 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3405: +#line 18045 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_XA_PREPARE; } -#line 46885 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46959 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3405: -#line 18010 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3406: +#line 18049 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_XA_COMMIT; } -#line 46893 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46967 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3406: -#line 18014 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3407: +#line 18053 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_XA_ROLLBACK; } -#line 46901 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46975 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3407: -#line 18018 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3408: +#line 18057 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_XA_RECOVER; Lex->verbose= (yyvsp[0].num); } -#line 46910 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46984 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3408: -#line 18025 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3409: +#line 18064 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { (yyval.num)= false; } -#line 46916 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 46990 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3409: -#line 18027 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3410: +#line 18066 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { if (lex_string_eq(&(yyvsp[0].lex_str), STRING_WITH_LEN("SQL"))) (yyval.num)= true; @@ -46929,167 +47003,167 @@ (yyval.num)= false; } } -#line 46933 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 47007 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3410: -#line 18043 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3411: +#line 18082 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[0].string)->length() <= MAXGTRIDSIZE); if (unlikely(!(Lex->xid=(XID *)thd->alloc(sizeof(XID))))) MYSQL_YYABORT; Lex->xid->set(1L, (yyvsp[0].string)->ptr(), (yyvsp[0].string)->length(), 0, 0); } -#line 46944 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 47018 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3411: -#line 18050 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3412: +#line 18089 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-2].string)->length() <= MAXGTRIDSIZE && (yyvsp[0].string)->length() <= MAXBQUALSIZE); if (unlikely(!(Lex->xid=(XID *)thd->alloc(sizeof(XID))))) MYSQL_YYABORT; Lex->xid->set(1L, (yyvsp[-2].string)->ptr(), (yyvsp[-2].string)->length(), (yyvsp[0].string)->ptr(), (yyvsp[0].string)->length()); } -#line 46955 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 47029 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3412: -#line 18057 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3413: +#line 18096 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-4].string)->length() <= MAXGTRIDSIZE && (yyvsp[-2].string)->length() <= MAXBQUALSIZE); if (unlikely(!(Lex->xid=(XID *)thd->alloc(sizeof(XID))))) MYSQL_YYABORT; Lex->xid->set((yyvsp[0].ulong_num), (yyvsp[-4].string)->ptr(), (yyvsp[-4].string)->length(), (yyvsp[-2].string)->ptr(), (yyvsp[-2].string)->length()); } -#line 46966 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ - break; - - case 3413: -#line 18066 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - {} -#line 46972 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 47040 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3414: -#line 18067 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 18105 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 46978 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 47046 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3415: -#line 18068 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 18106 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 46984 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 47052 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3416: -#line 18072 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->xa_opt=XA_NONE; } -#line 46990 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 18107 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + {} +#line 47058 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3417: -#line 18073 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->xa_opt=XA_JOIN; } -#line 46996 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 18111 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->xa_opt=XA_NONE; } +#line 47064 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3418: -#line 18074 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->xa_opt=XA_RESUME; } -#line 47002 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 18112 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->xa_opt=XA_JOIN; } +#line 47070 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3419: -#line 18078 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->xa_opt=XA_NONE; } -#line 47008 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 18113 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->xa_opt=XA_RESUME; } +#line 47076 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3420: -#line 18079 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->xa_opt=XA_ONE_PHASE; } -#line 47014 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 18117 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->xa_opt=XA_NONE; } +#line 47082 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3421: -#line 18084 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ - { Lex->xa_opt=XA_NONE; } -#line 47020 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 18118 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->xa_opt=XA_ONE_PHASE; } +#line 47088 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; case 3422: -#line 18086 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ +#line 18123 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + { Lex->xa_opt=XA_NONE; } +#line 47094 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + break; + + case 3423: +#line 18125 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->xa_opt=XA_SUSPEND; } -#line 47026 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 47100 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3424: -#line 18091 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3425: +#line 18130 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ {} -#line 47032 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 47106 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3425: -#line 18092 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3426: +#line 18131 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { Lex->xa_opt=XA_FOR_MIGRATE; } -#line 47038 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 47112 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3426: -#line 18097 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3427: +#line 18136 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_INSTALL_PLUGIN; lex->comment= (yyvsp[-2].ident_sys); lex->ident= (yyvsp[0].lex_str); } -#line 47049 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 47123 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3427: -#line 18104 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3428: +#line 18143 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_INSTALL_PLUGIN; lex->comment= null_clex_str; lex->ident= (yyvsp[0].lex_str); } -#line 47060 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 47134 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3428: -#line 18114 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3429: +#line 18153 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_UNINSTALL_PLUGIN; lex->comment= (yyvsp[0].ident_sys); } -#line 47070 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 47144 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3429: -#line 18120 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3430: +#line 18159 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_UNINSTALL_PLUGIN; lex->comment= null_clex_str; lex->ident= (yyvsp[0].lex_str); } -#line 47081 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 47155 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; - case 3430: -#line 18131 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ + case 3431: +#line 18170 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1646 */ { - YYERROR; - } -#line 47089 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ + YYERROR; + } +#line 47163 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ break; -#line 47093 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ +#line 47167 "/home/buildbot/git/mkdist/sql/sql_yacc.cc" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires diff -Nru mariadb-10.3-10.3.17/sql/sql_yacc_ora.cc mariadb-10.3-10.3.20/sql/sql_yacc_ora.cc --- mariadb-10.3-10.3.17/sql/sql_yacc_ora.cc 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_yacc_ora.cc 2019-11-06 16:01:59.000000000 +0000 @@ -1366,16 +1366,16 @@ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 727 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 92395 +#define YYLAST 91477 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 771 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 1306 /* YYNRULES -- Number of rules. */ -#define YYNRULES 3571 +#define YYNRULES 3572 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 6163 +#define YYNSTATES 6160 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ @@ -1518,27 +1518,27 @@ 2492, 2491, 2515, 2514, 2533, 2536, 2538, 2542, 2543, 2547, 2554, 2564, 2565, 2569, 2570, 2574, 2575, 2579, 2584, 2590, 2596, 2604, 2610, 2616, 2624, 2632, 2640, 2648, 2656, 2664, - 2676, 2693, 2692, 2704, 2705, 2709, 2714, 2721, 2726, 2731, - 2736, 2741, 2749, 2748, 2781, 2780, 2787, 2794, 2795, 2801, - 2807, 2817, 2823, 2829, 2831, 2838, 2839, 2843, 2853, 2854, - 2862, 2862, 2907, 2921, 2926, 2934, 2935, 2939, 2940, 2944, - 2945, 2950, 2952, 2954, 2956, 2958, 2960, 2962, 2967, 2969, - 2974, 2975, 2978, 2980, 2984, 2984, 2990, 2991, 2995, 2996, - 3001, 3000, 3009, 3011, 3014, 3016, 3020, 3024, 3031, 3033, - 3037, 3038, 3042, 3050, 3055, 3060, 3065, 3070, 3075, 3083, - 3085, 3089, 3090, 3094, 3100, 3106, 3112, 3118, 3124, 3133, - 3134, 3135, 3136, 3137, 3142, 3141, 3154, 3153, 3166, 3173, - 3174, 3178, 3179, 3183, 3184, 3188, 3189, 3193, 3193, 3205, - 3208, 3213, 3212, 3221, 3225, 3226, 3233, 3234, 3241, 3242, - 3246, 3252, 3258, 3267, 3279, 3283, 3289, 3301, 3305, 3312, - 3322, 3330, 3338, 3349, 3350, 3357, 3368, 3367, 3386, 3385, - 3399, 3401, 3406, 3416, 3415, 3431, 3432, 3433, 3434, 3439, - 3441, 3446, 3461, 3469, 3473, 3493, 3494, 3498, 3502, 3508, - 3514, 3520, 3526, 3536, 3541, 3549, 3557, 3572, 3578, 3579, - 3585, 3588, 3592, 3600, 3617, 3619, 3637, 3643, 3645, 3647, - 3649, 3651, 3653, 3655, 3657, 3659, 3661, 3663, 3665, 3670, - 3678, 3694, 3695, 3700, 3706, 3715, 3722, 3731, 3739, 3744, - 3753, 3755, 3757, 3766, 3771, 3778, 3787, 3795, 3797, 3799, + 2676, 2693, 2692, 2704, 2705, 2709, 2714, 2719, 2724, 2729, + 2734, 2739, 2747, 2746, 2779, 2778, 2785, 2792, 2793, 2799, + 2805, 2815, 2821, 2827, 2829, 2836, 2837, 2841, 2851, 2852, + 2860, 2860, 2905, 2919, 2924, 2932, 2933, 2937, 2938, 2942, + 2943, 2948, 2950, 2952, 2954, 2956, 2958, 2960, 2965, 2967, + 2972, 2973, 2976, 2978, 2982, 2982, 2988, 2989, 2993, 2994, + 2999, 2998, 3007, 3009, 3012, 3014, 3018, 3022, 3029, 3031, + 3035, 3036, 3040, 3048, 3053, 3058, 3063, 3068, 3073, 3081, + 3083, 3087, 3088, 3092, 3098, 3104, 3110, 3116, 3122, 3131, + 3132, 3133, 3134, 3135, 3140, 3139, 3152, 3151, 3164, 3171, + 3172, 3176, 3177, 3181, 3182, 3186, 3187, 3191, 3191, 3203, + 3206, 3211, 3210, 3219, 3223, 3224, 3231, 3232, 3239, 3240, + 3244, 3250, 3256, 3265, 3277, 3281, 3287, 3299, 3303, 3310, + 3320, 3328, 3336, 3347, 3348, 3355, 3366, 3365, 3384, 3383, + 3397, 3399, 3404, 3414, 3413, 3429, 3430, 3431, 3432, 3437, + 3439, 3444, 3459, 3467, 3471, 3491, 3492, 3496, 3500, 3506, + 3512, 3518, 3524, 3534, 3539, 3547, 3555, 3570, 3576, 3577, + 3583, 3586, 3590, 3598, 3615, 3617, 3635, 3641, 3643, 3645, + 3647, 3649, 3651, 3653, 3655, 3657, 3659, 3661, 3663, 3668, + 3676, 3692, 3693, 3698, 3704, 3713, 3720, 3729, 3738, 3743, + 3752, 3754, 3756, 3765, 3770, 3777, 3786, 3795, 3797, 3799, 3801, 3803, 3805, 3807, 3809, 3811, 3813, 3815, 3817, 3819, 3824, 3825, 3833, 3845, 3860, 3861, 3862, 3866, 3867, 3868, 3869, 3870, 3871, 3875, 3876, 3877, 3878, 3879, 3880, 3881, @@ -1598,262 +1598,262 @@ 6822, 6824, 6829, 6831, 6832, 6833, 6837, 6841, 6846, 6851, 6855, 6859, 6864, 6869, 6878, 6882, 6887, 6892, 6896, 6900, 6905, 6910, 6919, 6937, 6938, 6945, 6966, 6977, 6982, 6987, - 6992, 7003, 7008, 7013, 7018, 7020, 7022, 7024, 7026, 7028, - 7030, 7032, 7040, 7042, 7047, 7048, 7049, 7050, 7051, 7052, - 7053, 7054, 7058, 7062, 7063, 7067, 7068, 7072, 7073, 7074, - 7075, 7076, 7080, 7081, 7082, 7083, 7084, 7088, 7094, 7095, - 7100, 7102, 7109, 7110, 7111, 7115, 7119, 7120, 7121, 7122, - 7123, 7124, 7128, 7129, 7130, 7131, 7134, 7135, 7138, 7139, - 7160, 7161, 7164, 7165, 7168, 7169, 7174, 7175, 7179, 7180, - 7181, 7188, 7189, 7195, 7202, 7206, 7207, 7211, 7212, 7216, - 7224, 7232, 7241, 7245, 7251, 7255, 7256, 7265, 7274, 7280, - 7286, 7294, 7300, 7310, 7324, 7337, 7338, 7342, 7347, 7351, - 7352, 7356, 7357, 7361, 7368, 7372, 7373, 7377, 7385, 7386, - 7390, 7391, 7395, 7396, 7400, 7401, 7402, 7410, 7411, 7415, - 7416, 7417, 7418, 7422, 7423, 7428, 7427, 7440, 7441, 7445, - 7448, 7449, 7450, 7451, 7455, 7463, 7470, 7471, 7475, 7485, - 7486, 7490, 7491, 7494, 7496, 7500, 7512, 7513, 7517, 7524, - 7537, 7538, 7540, 7542, 7548, 7553, 7559, 7565, 7572, 7582, - 7583, 7584, 7585, 7586, 7590, 7591, 7595, 7596, 7600, 7601, - 7605, 7606, 7607, 7611, 7612, 7616, 7620, 7632, 7633, 7637, - 7638, 7642, 7643, 7647, 7648, 7652, 7653, 7657, 7658, 7662, - 7663, 7667, 7668, 7669, 7672, 7674, 7679, 7684, 7686, 7694, - 7702, 7708, 7717, 7718, 7722, 7726, 7727, 7737, 7738, 7739, - 7743, 7747, 7754, 7760, 7772, 7773, 7777, 7779, 7788, 7802, - 7787, 7822, 7821, 7835, 7844, 7843, 7859, 7858, 7874, 7873, - 7886, 7880, 7893, 7892, 7927, 7932, 7937, 7942, 7948, 7947, - 7954, 7961, 7971, 7960, 7991, 7992, 7993, 7994, 7998, 7999, - 8011, 8012, 8016, 8017, 8020, 8022, 8030, 8038, 8040, 8042, - 8043, 8051, 8052, 8058, 8067, 8065, 8078, 8091, 8090, 8103, - 8101, 8114, 8121, 8131, 8132, 8156, 8163, 8167, 8173, 8171, - 8188, 8190, 8195, 8203, 8202, 8216, 8220, 8219, 8231, 8232, - 8236, 8249, 8250, 8254, 8258, 8265, 8270, 8274, 8281, 8285, - 8290, 8298, 8306, 8316, 8327, 8337, 8348, 8358, 8364, 8370, - 8375, 8381, 8395, 8409, 8414, 8418, 8423, 8424, 8425, 8430, - 8434, 8440, 8442, 8443, 8444, 8445, 8448, 8453, 8461, 8466, - 8474, 8475, 8479, 8480, 8484, 8484, 8487, 8489, 8493, 8494, - 8498, 8499, 8507, 8508, 8509, 8513, 8514, 8519, 8528, 8529, - 8530, 8531, 8536, 8535, 8545, 8544, 8552, 8559, 8569, 8586, - 8589, 8596, 8600, 8607, 8611, 8615, 8622, 8622, 8628, 8629, - 8633, 8634, 8635, 8639, 8640, 8649, 8656, 8657, 8662, 8661, - 8673, 8674, 8675, 8679, 8681, 8680, 8687, 8686, 8707, 8708, - 8712, 8713, 8717, 8718, 8719, 8723, 8724, 8729, 8728, 8749, - 8750, 8754, 8759, 8760, 8767, 8769, 8773, 8775, 8774, 8786, - 8788, 8787, 8800, 8801, 8806, 8815, 8816, 8817, 8821, 8828, - 8838, 8846, 8855, 8857, 8856, 8862, 8861, 8884, 8885, 8889, - 8890, 8894, 8895, 8896, 8897, 8898, 8899, 8903, 8904, 8909, - 8908, 8929, 8930, 8931, 8936, 8935, 8941, 8948, 8954, 8963, - 8964, 8968, 8984, 8983, 8996, 8997, 9001, 9002, 9006, 9017, - 9028, 9029, 9034, 9033, 9044, 9045, 9049, 9050, 9054, 9065, - 9077, 9076, 9084, 9084, 9093, 9094, 9099, 9100, 9109, 9118, - 9119, 9120, 9121, 9122, 9123, 9124, 9128, 9129, 9130, 9131, - 9132, 9133, 9134, 9138, 9138, 9146, 9146, 9158, 9162, 9164, - 9168, 9168, 9179, 9183, 9185, 9189, 9189, 9200, 9205, 9205, - 9214, 9214, 9226, 9232, 9230, 9237, 9249, 9247, 9254, 9264, - 9269, 9268, 9273, 9277, 9288, 9289, 9293, 9294, 9298, 9299, - 9300, 9304, 9305, 9306, 9310, 9311, 9312, 9313, 9314, 9318, - 9318, 9336, 9343, 9345, 9349, 9353, 9359, 9366, 9368, 9377, - 9381, 9385, 9392, 9400, 9404, 9412, 9415, 9422, 9426, 9430, - 9434, 9441, 9442, 9446, 9447, 9464, 9483, 9485, 9492, 9503, - 9504, 9505, 9519, 9524, 9546, 9552, 9558, 9564, 9570, 9579, - 9580, 9581, 9582, 9583, 9587, 9588, 9589, 9593, 9594, 9595, - 9599, 9600, 9605, 9656, 9663, 9706, 9712, 9718, 9724, 9730, - 9736, 9742, 9748, 9752, 9758, 9764, 9770, 9776, 9782, 9786, - 9792, 9801, 9807, 9815, 9821, 9830, 9836, 9844, 9854, 9861, - 9869, 9875, 9884, 9888, 9894, 9900, 9906, 9912, 9919, 9925, - 9931, 9937, 9943, 9950, 9956, 9962, 9968, 9974, 9980, 9986, - 9992, 9998, 10002, 10003, 10007, 10008, 10012, 10013, 10017, 10018, - 10022, 10023, 10024, 10025, 10026, 10027, 10031, 10032, 10037, 10041, - 10045, 10046, 10047, 10051, 10052, 10053, 10054, 10055, 10056, 10060, - 10061, 10062, 10067, 10066, 10072, 10080, 10102, 10109, 10118, 10119, - 10120, 10121, 10125, 10134, 10135, 10136, 10137, 10138, 10139, 10140, - 10141, 10173, 10174, 10175, 10176, 10177, 10178, 10179, 10180, 10181, - 10182, 10183, 10184, 10191, 10197, 10202, 10212, 10217, 10222, 10228, - 10233, 10239, 10250, 10257, 10262, 10267, 10272, 10277, 10282, 10287, - 10295, 10296, 10297, 10301, 10302, 10310, 10311, 10317, 10321, 10327, - 10333, 10342, 10343, 10352, 10359, 10373, 10379, 10385, 10394, 10403, - 10409, 10415, 10421, 10427, 10442, 10453, 10459, 10465, 10471, 10477, - 10483, 10491, 10498, 10502, 10507, 10515, 10536, 10543, 10549, 10556, - 10563, 10569, 10575, 10581, 10587, 10593, 10599, 10605, 10611, 10618, - 10624, 10631, 10637, 10642, 10647, 10652, 10657, 10675, 10681, 10687, - 10692, 10699, 10706, 10714, 10721, 10728, 10735, 10742, 10759, 10765, - 10771, 10777, 10783, 10790, 10796, 10802, 10811, 10822, 10829, 10835, - 10841, 10848, 10856, 10862, 10868, 10873, 10879, 10887, 10893, 10899, - 10905, 10911, 10919, 10931, 10938, 10953, 10959, 10966, 10973, 10980, - 10987, 10994, 10998, 11005, 11023, 11022, 11090, 11098, 11100, 11105, - 11106, 11110, 11111, 11115, 11116, 11120, 11127, 11135, 11162, 11168, - 11174, 11180, 11186, 11192, 11201, 11208, 11210, 11207, 11217, 11228, - 11234, 11240, 11246, 11252, 11258, 11264, 11270, 11276, 11283, 11282, - 11307, 11316, 11334, 11336, 11343, 11350, 11357, 11364, 11371, 11378, - 11385, 11392, 11399, 11406, 11417, 11424, 11435, 11446, 11466, 11465, - 11471, 11488, 11494, 11503, 11512, 11522, 11521, 11533, 11543, 11551, - 11556, 11564, 11565, 11570, 11575, 11578, 11580, 11584, 11589, 11597, - 11598, 11602, 11606, 11613, 11620, 11627, 11640, 11639, 11656, 11659, - 11658, 11663, 11662, 11667, 11666, 11670, 11675, 11676, 11680, 11681, - 11682, 11683, 11684, 11685, 11686, 11687, 11691, 11692, 11693, 11697, - 11698, 11702, 11709, 11717, 11718, 11722, 11729, 11737, 11746, 11756, - 11757, 11766, 11775, 11787, 11788, 11800, 11811, 11812, 11818, 11819, - 11837, 11846, 11844, 11862, 11860, 11871, 11881, 11879, 11897, 11896, - 11906, 11917, 11915, 11934, 11933, 11944, 11956, 11957, 11958, 11962, - 11963, 11971, 11972, 11976, 11991, 11992, 11996, 11996, 12036, 12102, - 12145, 12146, 12155, 12154, 12163, 12164, 12165, 12169, 12170, 12171, - 12171, 12175, 12181, 12189, 12189, 12204, 12221, 12222, 12230, 12240, - 12239, 12253, 12270, 12253, 12277, 12281, 12290, 12301, 12302, 12307, - 12310, 12311, 12312, 12316, 12317, 12322, 12321, 12327, 12326, 12334, - 12335, 12338, 12340, 12340, 12344, 12344, 12349, 12350, 12354, 12356, - 12361, 12362, 12366, 12377, 12391, 12392, 12393, 12394, 12395, 12396, - 12397, 12398, 12399, 12400, 12401, 12402, 12406, 12407, 12408, 12409, - 12410, 12411, 12412, 12413, 12414, 12418, 12419, 12420, 12421, 12424, - 12426, 12427, 12431, 12432, 12440, 12442, 12446, 12448, 12447, 12461, - 12464, 12463, 12478, 12483, 12498, 12500, 12504, 12509, 12517, 12518, - 12535, 12558, 12559, 12565, 12566, 12570, 12583, 12582, 12590, 12591, - 12599, 12600, 12604, 12605, 12609, 12610, 12624, 12625, 12629, 12639, - 12648, 12655, 12662, 12672, 12673, 12680, 12690, 12691, 12693, 12695, - 12697, 12699, 12708, 12712, 12713, 12717, 12729, 12731, 12736, 12735, - 12785, 12790, 12798, 12799, 12800, 12804, 12805, 12809, 12822, 12829, - 12834, 12841, 12848, 12855, 12865, 12870, 12875, 12879, 12885, 12891, - 12900, 12908, 12912, 12919, 12920, 12923, 12925, 12929, 12930, 12933, - 12934, 12935, 12936, 12937, 12938, 12942, 12943, 12944, 12945, 12946, - 12950, 12951, 12952, 12953, 12957, 12958, 12959, 12960, 12961, 12965, - 12966, 12967, 12968, 12969, 12973, 12978, 12979, 12983, 12984, 12988, - 12989, 12990, 12995, 12994, 13028, 13029, 13033, 13034, 13038, 13048, - 13048, 13060, 13061, 13064, 13084, 13088, 13093, 13101, 13106, 13117, - 13105, 13119, 13134, 13146, 13145, 13163, 13162, 13171, 13188, 13194, - 13202, 13210, 13224, 13239, 13247, 13251, 13256, 13255, 13264, 13269, - 13275, 13280, 13285, 13292, 13290, 13304, 13305, 13309, 13320, 13333, - 13334, 13338, 13352, 13356, 13365, 13368, 13375, 13376, 13384, 13392, - 13383, 13402, 13409, 13401, 13419, 13427, 13428, 13435, 13439, 13440, - 13449, 13450, 13454, 13463, 13464, 13465, 13467, 13466, 13478, 13480, - 13484, 13485, 13486, 13490, 13491, 13495, 13496, 13500, 13510, 13511, - 13515, 13516, 13520, 13521, 13525, 13526, 13531, 13530, 13546, 13545, - 13560, 13561, 13565, 13566, 13570, 13575, 13583, 13591, 13602, 13603, - 13609, 13617, 13619, 13621, 13619, 13634, 13642, 13633, 13664, 13665, - 13669, 13678, 13679, 13683, 13693, 13694, 13701, 13700, 13716, 13719, - 13726, 13727, 13734, 13749, 13755, 13754, 13766, 13765, 13778, 13780, - 13784, 13785, 13789, 13804, 13822, 13823, 13827, 13828, 13832, 13833, - 13834, 13839, 13850, 13838, 13860, 13862, 13863, 13866, 13868, 13871, - 13873, 13876, 13877, 13880, 13884, 13888, 13892, 13896, 13900, 13904, - 13908, 13912, 13920, 13923, 13933, 13932, 13948, 13955, 13963, 13971, - 13979, 13987, 13995, 14002, 14009, 14015, 14017, 14019, 14028, 14032, - 14037, 14036, 14043, 14042, 14047, 14056, 14063, 14068, 14073, 14078, - 14083, 14088, 14090, 14092, 14094, 14101, 14109, 14111, 14119, 14126, - 14133, 14141, 14147, 14152, 14160, 14168, 14176, 14180, 14185, 14192, - 14197, 14204, 14211, 14217, 14223, 14229, 14237, 14242, 14249, 14256, - 14263, 14270, 14275, 14280, 14285, 14290, 14297, 14319, 14321, 14323, - 14328, 14329, 14332, 14334, 14338, 14339, 14343, 14344, 14348, 14349, - 14353, 14354, 14358, 14359, 14363, 14364, 14372, 14384, 14383, 14399, - 14398, 14408, 14409, 14410, 14411, 14412, 14416, 14417, 14421, 14428, - 14429, 14430, 14434, 14435, 14448, 14449, 14450, 14465, 14464, 14477, - 14476, 14488, 14492, 14493, 14508, 14511, 14510, 14523, 14524, 14529, - 14531, 14533, 14535, 14537, 14539, 14547, 14549, 14551, 14553, 14558, - 14560, 14568, 14570, 14572, 14574, 14591, 14592, 14596, 14597, 14600, - 14602, 14603, 14607, 14623, 14624, 14628, 14627, 14637, 14638, 14642, - 14642, 14646, 14645, 14651, 14655, 14656, 14660, 14661, 14669, 14668, - 14679, 14683, 14687, 14700, 14699, 14714, 14715, 14716, 14719, 14720, - 14721, 14722, 14730, 14734, 14743, 14749, 14761, 14772, 14783, 14796, - 14760, 14804, 14805, 14809, 14810, 14814, 14815, 14823, 14827, 14828, - 14829, 14832, 14834, 14838, 14839, 14843, 14848, 14855, 14860, 14867, - 14869, 14873, 14874, 14878, 14883, 14891, 14892, 14895, 14897, 14905, - 14906, 14910, 14911, 14912, 14916, 14918, 14923, 14924, 14933, 14934, - 14938, 14939, 14943, 14956, 14961, 14966, 14971, 14979, 14987, 14992, - 15005, 15014, 15030, 15037, 15043, 15053, 15054, 15062, 15063, 15064, - 15065, 15079, 15085, 15091, 15097, 15103, 15109, 15128, 15138, 15148, - 15154, 15161, 15171, 15179, 15187, 15199, 15200, 15209, 15208, 15227, - 15228, 15233, 15234, 15241, 15239, 15266, 15267, 15273, 15278, 15287, - 15302, 15303, 15307, 15312, 15320, 15325, 15333, 15338, 15343, 15348, - 15354, 15359, 15367, 15372, 15377, 15382, 15388, 15396, 15397, 15408, - 15416, 15420, 15426, 15432, 15442, 15448, 15457, 15467, 15468, 15472, - 15473, 15474, 15478, 15486, 15494, 15502, 15510, 15511, 15519, 15520, - 15528, 15529, 15534, 15543, 15544, 15552, 15553, 15562, 15563, 15571, - 15572, 15576, 15585, 15586, 15587, 15591, 15604, 15634, 15644, 15644, - 15646, 15656, 15657, 15658, 15659, 15660, 15661, 15662, 15663, 15664, - 15669, 15670, 15671, 15672, 15673, 15674, 15675, 15676, 15677, 15678, - 15686, 15687, 15688, 15689, 15690, 15691, 15695, 15696, 15697, 15698, - 15699, 15700, 15701, 15702, 15703, 15707, 15708, 15709, 15710, 15711, - 15712, 15713, 15717, 15718, 15719, 15720, 15721, 15722, 15723, 15724, - 15725, 15729, 15730, 15731, 15732, 15733, 15734, 15735, 15748, 15749, - 15750, 15751, 15752, 15753, 15754, 15755, 15756, 15757, 15758, 15759, - 15760, 15761, 15762, 15763, 15764, 15765, 15766, 15767, 15768, 15769, - 15770, 15771, 15772, 15773, 15774, 15775, 15776, 15777, 15778, 15779, - 15780, 15781, 15782, 15783, 15784, 15785, 15786, 15787, 15788, 15789, - 15790, 15791, 15792, 15793, 15794, 15795, 15796, 15797, 15798, 15799, - 15800, 15801, 15802, 15843, 15844, 15845, 15846, 15847, 15848, 15859, - 15860, 15861, 15862, 15863, 15864, 15865, 15866, 15867, 15868, 15872, - 15873, 15874, 15881, 15882, 15883, 15887, 15888, 15889, 15898, 15899, - 15900, 15901, 15902, 15903, 15904, 15905, 15906, 15907, 15908, 15909, - 15910, 15911, 15912, 15913, 15914, 15915, 15916, 15917, 15918, 15919, - 15920, 15921, 15922, 15923, 15924, 15925, 15926, 15927, 15928, 15929, - 15930, 15931, 15939, 15940, 15941, 15942, 15943, 15944, 15945, 15946, - 15947, 15948, 15949, 15950, 15951, 15952, 15953, 15954, 15955, 15956, - 15957, 15958, 15959, 15960, 15961, 15962, 15963, 15964, 15965, 15966, - 15967, 15968, 15969, 15970, 15971, 15972, 15973, 15974, 15975, 15976, - 15977, 15978, 15979, 15980, 15981, 15982, 15983, 15984, 15989, 15990, - 15991, 15992, 15993, 15994, 15995, 15996, 15997, 15998, 15999, 16000, - 16001, 16002, 16003, 16004, 16005, 16006, 16007, 16008, 16009, 16010, - 16011, 16012, 16013, 16014, 16015, 16016, 16017, 16018, 16019, 16020, - 16021, 16022, 16023, 16024, 16025, 16026, 16027, 16028, 16029, 16030, - 16031, 16032, 16033, 16034, 16035, 16036, 16037, 16038, 16039, 16040, - 16041, 16042, 16043, 16044, 16045, 16046, 16047, 16048, 16049, 16050, - 16051, 16052, 16053, 16054, 16055, 16056, 16057, 16058, 16059, 16060, - 16061, 16062, 16063, 16064, 16065, 16066, 16067, 16068, 16069, 16070, - 16071, 16072, 16073, 16074, 16075, 16076, 16077, 16078, 16079, 16080, - 16081, 16082, 16083, 16084, 16085, 16086, 16087, 16088, 16089, 16090, - 16091, 16092, 16093, 16094, 16095, 16096, 16097, 16098, 16099, 16100, - 16101, 16102, 16103, 16104, 16105, 16106, 16107, 16108, 16109, 16110, - 16111, 16112, 16113, 16114, 16115, 16116, 16117, 16118, 16119, 16120, - 16121, 16122, 16123, 16124, 16125, 16126, 16127, 16128, 16129, 16130, - 16131, 16132, 16133, 16134, 16135, 16136, 16137, 16138, 16139, 16140, - 16141, 16142, 16143, 16144, 16145, 16146, 16147, 16148, 16149, 16150, - 16151, 16152, 16153, 16154, 16155, 16156, 16157, 16158, 16159, 16160, - 16161, 16162, 16163, 16164, 16165, 16166, 16167, 16168, 16169, 16170, - 16171, 16172, 16173, 16174, 16175, 16176, 16177, 16178, 16179, 16180, - 16181, 16182, 16183, 16184, 16185, 16186, 16187, 16188, 16189, 16190, - 16191, 16192, 16193, 16194, 16195, 16196, 16197, 16198, 16199, 16200, - 16201, 16202, 16203, 16204, 16205, 16206, 16207, 16208, 16209, 16210, - 16211, 16212, 16213, 16214, 16215, 16216, 16217, 16218, 16219, 16220, - 16221, 16222, 16223, 16224, 16225, 16226, 16227, 16228, 16229, 16230, - 16231, 16232, 16233, 16234, 16235, 16236, 16237, 16238, 16239, 16240, - 16241, 16242, 16243, 16244, 16245, 16246, 16247, 16248, 16249, 16250, - 16251, 16252, 16253, 16254, 16266, 16265, 16275, 16279, 16274, 16292, - 16291, 16305, 16304, 16320, 16319, 16346, 16347, 16353, 16352, 16359, - 16358, 16368, 16367, 16378, 16377, 16383, 16391, 16393, 16398, 16398, - 16407, 16406, 16420, 16419, 16424, 16428, 16429, 16430, 16434, 16435, - 16436, 16437, 16441, 16442, 16443, 16444, 16449, 16454, 16459, 16468, - 16473, 16478, 16483, 16488, 16493, 16498, 16503, 16517, 16528, 16547, - 16565, 16577, 16585, 16590, 16606, 16607, 16608, 16609, 16613, 16632, - 16650, 16651, 16655, 16656, 16657, 16658, 16662, 16677, 16681, 16682, - 16683, 16693, 16694, 16695, 16701, 16707, 16719, 16718, 16732, 16733, - 16739, 16748, 16749, 16753, 16754, 16758, 16777, 16778, 16779, 16784, - 16785, 16790, 16789, 16806, 16816, 16827, 16826, 16858, 16859, 16863, - 16864, 16868, 16869, 16870, 16871, 16873, 16872, 16885, 16886, 16887, - 16888, 16889, 16895, 16900, 16906, 16912, 16918, 16925, 16932, 16936, - 16943, 16952, 16954, 16959, 16964, 16971, 16978, 16985, 16992, 16999, - 17006, 17018, 17019, 17022, 17023, 17026, 17031, 17039, 17049, 17068, - 17071, 17073, 17077, 17078, 17085, 17087, 17091, 17092, 17097, 17096, - 17100, 17099, 17103, 17102, 17106, 17105, 17108, 17109, 17110, 17111, - 17112, 17113, 17114, 17115, 17116, 17117, 17118, 17119, 17120, 17121, - 17122, 17123, 17124, 17125, 17126, 17127, 17128, 17129, 17130, 17131, - 17132, 17133, 17134, 17138, 17139, 17143, 17144, 17148, 17155, 17162, - 17172, 17182, 17191, 17200, 17213, 17218, 17226, 17231, 17239, 17244, - 17251, 17251, 17252, 17252, 17255, 17262, 17267, 17273, 17279, 17285, - 17289, 17293, 17294, 17298, 17326, 17328, 17332, 17336, 17340, 17347, - 17353, 17359, 17365, 17371, 17380, 17381, 17385, 17386, 17391, 17392, - 17396, 17397, 17401, 17402, 17406, 17407, 17412, 17411, 17421, 17430, - 17431, 17435, 17436, 17441, 17442, 17443, 17448, 17449, 17450, 17454, - 17466, 17475, 17481, 17490, 17499, 17512, 17514, 17516, 17521, 17522, - 17527, 17526, 17543, 17542, 17554, 17554, 17575, 17576, 17583, 17591, - 17592, 17593, 17597, 17598, 17603, 17602, 17624, 17631, 17632, 17636, - 17637, 17641, 17642, 17643, 17648, 17656, 17677, 17704, 17706, 17710, - 17711, 17715, 17716, 17724, 17725, 17726, 17727, 17728, 17734, 17740, - 17750, 17751, 17756, 17769, 17785, 17786, 17787, 17791, 17792, 17796, - 17797, 17802, 17803, 17807, 17813, 17822, 17822, 17847, 17848, 17849, - 17850, 17851, 17852, 17853, 17857, 17858, 17859, 17860, 17870, 17872, - 17878, 17884, 17894, 17903, 17909, 17914, 17918, 17892, 17972, 17990, - 17989, 18007, 18016, 18005, 18038, 18046, 18037, 18059, 18069, 18079, - 18080, 18084, 18085, 18091, 18095, 18099, 18103, 18107, 18111, 18119, - 18120, 18136, 18143, 18150, 18160, 18161, 18162, 18166, 18167, 18168, - 18172, 18173, 18178, 18180, 18179, 18185, 18186, 18190, 18197, 18207, - 18213, 18224 + 6992, 6997, 7008, 7013, 7018, 7023, 7025, 7027, 7029, 7031, + 7033, 7035, 7037, 7045, 7047, 7052, 7053, 7054, 7055, 7056, + 7057, 7058, 7059, 7063, 7067, 7068, 7072, 7073, 7077, 7078, + 7079, 7080, 7081, 7085, 7086, 7087, 7088, 7089, 7093, 7099, + 7100, 7105, 7107, 7114, 7115, 7116, 7120, 7124, 7125, 7126, + 7127, 7128, 7129, 7133, 7134, 7135, 7136, 7140, 7141, 7145, + 7146, 7168, 7169, 7173, 7174, 7178, 7179, 7184, 7185, 7189, + 7190, 7191, 7198, 7199, 7205, 7212, 7216, 7217, 7221, 7222, + 7226, 7234, 7242, 7251, 7255, 7261, 7265, 7266, 7275, 7284, + 7290, 7296, 7309, 7315, 7325, 7339, 7352, 7353, 7357, 7362, + 7366, 7367, 7371, 7372, 7376, 7383, 7387, 7388, 7392, 7400, + 7401, 7405, 7406, 7410, 7411, 7415, 7416, 7417, 7425, 7426, + 7430, 7431, 7432, 7433, 7437, 7438, 7443, 7442, 7455, 7456, + 7460, 7463, 7464, 7465, 7466, 7470, 7478, 7485, 7486, 7490, + 7500, 7501, 7505, 7506, 7509, 7511, 7515, 7527, 7528, 7532, + 7539, 7552, 7553, 7555, 7557, 7563, 7568, 7574, 7580, 7587, + 7597, 7598, 7599, 7600, 7601, 7605, 7606, 7610, 7611, 7615, + 7616, 7620, 7621, 7622, 7626, 7627, 7631, 7635, 7647, 7648, + 7652, 7653, 7657, 7658, 7662, 7663, 7667, 7668, 7672, 7673, + 7677, 7678, 7683, 7684, 7685, 7689, 7691, 7696, 7701, 7703, + 7711, 7719, 7725, 7734, 7735, 7739, 7743, 7744, 7754, 7755, + 7756, 7760, 7764, 7771, 7777, 7789, 7790, 7794, 7796, 7806, + 7820, 7805, 7841, 7840, 7854, 7863, 7862, 7878, 7877, 7893, + 7892, 7905, 7899, 7912, 7911, 7946, 7951, 7956, 7961, 7967, + 7966, 7973, 7980, 7990, 7979, 8010, 8011, 8012, 8013, 8017, + 8018, 8030, 8031, 8035, 8036, 8039, 8041, 8049, 8057, 8059, + 8061, 8062, 8070, 8071, 8077, 8086, 8084, 8097, 8110, 8109, + 8122, 8120, 8133, 8140, 8150, 8151, 8175, 8182, 8186, 8192, + 8190, 8207, 8209, 8214, 8222, 8221, 8235, 8239, 8238, 8250, + 8251, 8255, 8268, 8269, 8273, 8277, 8284, 8289, 8293, 8300, + 8304, 8309, 8317, 8325, 8335, 8346, 8356, 8367, 8377, 8383, + 8389, 8394, 8400, 8414, 8428, 8433, 8437, 8442, 8443, 8444, + 8449, 8454, 8460, 8462, 8463, 8464, 8465, 8469, 8474, 8482, + 8487, 8495, 8496, 8500, 8501, 8505, 8505, 8508, 8510, 8514, + 8515, 8519, 8520, 8529, 8530, 8531, 8535, 8536, 8541, 8550, + 8551, 8552, 8553, 8558, 8557, 8567, 8566, 8574, 8581, 8591, + 8608, 8611, 8618, 8622, 8629, 8633, 8637, 8644, 8644, 8650, + 8651, 8655, 8656, 8657, 8661, 8662, 8671, 8678, 8679, 8684, + 8683, 8695, 8696, 8697, 8701, 8703, 8702, 8709, 8708, 8729, + 8730, 8734, 8735, 8739, 8740, 8741, 8745, 8746, 8751, 8750, + 8771, 8772, 8776, 8781, 8782, 8789, 8791, 8796, 8798, 8797, + 8809, 8811, 8810, 8823, 8824, 8829, 8838, 8839, 8840, 8844, + 8851, 8861, 8869, 8878, 8880, 8879, 8885, 8884, 8907, 8908, + 8912, 8913, 8917, 8918, 8919, 8920, 8921, 8922, 8926, 8927, + 8932, 8931, 8952, 8953, 8954, 8959, 8958, 8964, 8971, 8977, + 8986, 8987, 8991, 9007, 9006, 9019, 9020, 9024, 9025, 9029, + 9040, 9051, 9052, 9057, 9056, 9067, 9068, 9072, 9073, 9077, + 9088, 9100, 9099, 9107, 9107, 9116, 9117, 9122, 9123, 9132, + 9141, 9142, 9143, 9144, 9145, 9146, 9147, 9151, 9152, 9153, + 9154, 9155, 9156, 9157, 9161, 9161, 9169, 9169, 9181, 9185, + 9187, 9191, 9191, 9202, 9206, 9208, 9212, 9212, 9223, 9228, + 9228, 9237, 9237, 9249, 9255, 9253, 9260, 9272, 9270, 9277, + 9287, 9292, 9291, 9296, 9300, 9311, 9312, 9316, 9317, 9321, + 9322, 9323, 9327, 9328, 9329, 9333, 9334, 9335, 9336, 9337, + 9341, 9341, 9359, 9366, 9368, 9372, 9376, 9382, 9389, 9391, + 9400, 9404, 9408, 9415, 9423, 9427, 9435, 9438, 9445, 9449, + 9453, 9457, 9464, 9465, 9469, 9470, 9487, 9506, 9508, 9515, + 9526, 9527, 9528, 9542, 9547, 9569, 9575, 9581, 9587, 9593, + 9602, 9603, 9604, 9605, 9606, 9610, 9611, 9612, 9616, 9617, + 9618, 9622, 9623, 9628, 9679, 9686, 9729, 9735, 9741, 9747, + 9753, 9759, 9765, 9771, 9775, 9781, 9787, 9793, 9799, 9805, + 9809, 9815, 9824, 9830, 9838, 9844, 9853, 9859, 9867, 9877, + 9884, 9892, 9898, 9907, 9911, 9917, 9923, 9929, 9935, 9942, + 9948, 9954, 9960, 9966, 9973, 9979, 9985, 9991, 9997, 10003, + 10009, 10015, 10021, 10025, 10026, 10030, 10031, 10035, 10036, 10040, + 10041, 10045, 10046, 10047, 10048, 10049, 10050, 10054, 10055, 10060, + 10064, 10068, 10069, 10070, 10074, 10075, 10076, 10077, 10078, 10079, + 10083, 10084, 10085, 10090, 10089, 10095, 10103, 10126, 10133, 10142, + 10143, 10144, 10145, 10149, 10158, 10159, 10160, 10161, 10162, 10163, + 10164, 10165, 10197, 10198, 10199, 10200, 10201, 10202, 10203, 10204, + 10205, 10206, 10207, 10208, 10215, 10221, 10226, 10236, 10241, 10246, + 10252, 10257, 10263, 10274, 10281, 10286, 10291, 10296, 10301, 10306, + 10311, 10319, 10320, 10321, 10325, 10326, 10334, 10335, 10341, 10345, + 10351, 10357, 10366, 10367, 10376, 10383, 10397, 10403, 10409, 10418, + 10427, 10433, 10439, 10445, 10451, 10466, 10477, 10483, 10489, 10495, + 10501, 10507, 10515, 10522, 10526, 10531, 10539, 10560, 10567, 10573, + 10580, 10587, 10593, 10599, 10605, 10611, 10617, 10623, 10629, 10635, + 10642, 10648, 10655, 10661, 10666, 10671, 10676, 10681, 10699, 10705, + 10711, 10716, 10723, 10730, 10738, 10745, 10752, 10759, 10766, 10783, + 10789, 10795, 10801, 10807, 10814, 10820, 10826, 10835, 10846, 10853, + 10859, 10865, 10872, 10880, 10886, 10892, 10897, 10903, 10911, 10917, + 10923, 10929, 10935, 10943, 10955, 10962, 10977, 10983, 10990, 10997, + 11004, 11011, 11018, 11022, 11029, 11047, 11046, 11114, 11122, 11124, + 11129, 11130, 11134, 11135, 11139, 11140, 11144, 11151, 11159, 11186, + 11192, 11198, 11204, 11210, 11216, 11225, 11232, 11234, 11231, 11241, + 11252, 11258, 11264, 11270, 11276, 11282, 11288, 11294, 11300, 11307, + 11306, 11331, 11340, 11358, 11360, 11367, 11374, 11381, 11388, 11395, + 11402, 11409, 11416, 11423, 11430, 11441, 11448, 11459, 11470, 11490, + 11489, 11495, 11512, 11518, 11527, 11536, 11546, 11545, 11557, 11567, + 11575, 11580, 11588, 11589, 11594, 11599, 11602, 11604, 11608, 11613, + 11621, 11622, 11626, 11630, 11637, 11644, 11651, 11664, 11663, 11680, + 11683, 11682, 11687, 11686, 11691, 11690, 11694, 11699, 11700, 11704, + 11705, 11706, 11707, 11708, 11709, 11710, 11711, 11715, 11716, 11717, + 11721, 11722, 11726, 11733, 11741, 11742, 11746, 11753, 11761, 11770, + 11780, 11781, 11790, 11799, 11811, 11812, 11824, 11835, 11836, 11842, + 11843, 11861, 11870, 11868, 11886, 11884, 11895, 11905, 11903, 11921, + 11920, 11930, 11941, 11939, 11958, 11957, 11968, 11980, 11981, 11982, + 11986, 11987, 11995, 11996, 12000, 12015, 12016, 12020, 12020, 12060, + 12126, 12169, 12170, 12179, 12178, 12187, 12188, 12189, 12193, 12194, + 12195, 12195, 12199, 12205, 12213, 12213, 12228, 12245, 12246, 12254, + 12264, 12263, 12277, 12294, 12277, 12301, 12305, 12314, 12325, 12326, + 12331, 12334, 12335, 12336, 12340, 12341, 12346, 12345, 12351, 12350, + 12358, 12359, 12362, 12364, 12364, 12368, 12368, 12373, 12374, 12378, + 12380, 12385, 12386, 12390, 12401, 12415, 12416, 12417, 12418, 12419, + 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12430, 12431, 12432, + 12433, 12434, 12435, 12436, 12437, 12438, 12442, 12443, 12444, 12445, + 12448, 12450, 12451, 12455, 12456, 12464, 12466, 12470, 12472, 12471, + 12485, 12488, 12487, 12502, 12507, 12522, 12524, 12528, 12533, 12541, + 12542, 12559, 12582, 12583, 12589, 12590, 12594, 12607, 12606, 12614, + 12615, 12624, 12625, 12629, 12630, 12634, 12635, 12649, 12650, 12654, + 12664, 12673, 12680, 12687, 12697, 12698, 12705, 12715, 12716, 12718, + 12720, 12722, 12724, 12733, 12737, 12738, 12742, 12754, 12756, 12761, + 12760, 12810, 12815, 12823, 12824, 12825, 12829, 12830, 12834, 12847, + 12854, 12859, 12866, 12873, 12880, 12890, 12895, 12900, 12904, 12910, + 12916, 12925, 12934, 12938, 12945, 12946, 12949, 12951, 12955, 12956, + 12960, 12961, 12962, 12963, 12964, 12965, 12969, 12970, 12971, 12972, + 12973, 12977, 12978, 12979, 12980, 12984, 12985, 12986, 12987, 12988, + 12992, 12993, 12994, 12995, 12996, 13000, 13005, 13006, 13010, 13011, + 13015, 13016, 13017, 13022, 13021, 13055, 13056, 13060, 13061, 13065, + 13075, 13075, 13087, 13088, 13091, 13111, 13115, 13120, 13128, 13133, + 13144, 13132, 13146, 13161, 13173, 13172, 13190, 13189, 13198, 13215, + 13221, 13229, 13237, 13251, 13266, 13274, 13278, 13283, 13282, 13291, + 13296, 13302, 13307, 13312, 13319, 13317, 13331, 13332, 13336, 13347, + 13360, 13361, 13365, 13379, 13383, 13392, 13395, 13402, 13403, 13411, + 13419, 13410, 13431, 13438, 13430, 13450, 13458, 13459, 13466, 13470, + 13471, 13480, 13481, 13485, 13495, 13496, 13497, 13499, 13498, 13510, + 13512, 13516, 13517, 13518, 13522, 13523, 13527, 13528, 13532, 13542, + 13543, 13547, 13548, 13552, 13553, 13557, 13558, 13563, 13562, 13578, + 13577, 13592, 13593, 13597, 13598, 13602, 13607, 13615, 13623, 13634, + 13635, 13641, 13649, 13651, 13653, 13651, 13666, 13674, 13665, 13696, + 13697, 13701, 13710, 13711, 13715, 13725, 13726, 13733, 13732, 13748, + 13751, 13758, 13759, 13766, 13781, 13787, 13786, 13798, 13797, 13810, + 13812, 13816, 13817, 13821, 13836, 13854, 13855, 13859, 13860, 13864, + 13865, 13866, 13871, 13882, 13870, 13892, 13894, 13895, 13898, 13900, + 13903, 13905, 13908, 13909, 13912, 13916, 13920, 13924, 13928, 13932, + 13936, 13940, 13944, 13952, 13955, 13965, 13964, 13980, 13987, 13995, + 14003, 14011, 14019, 14027, 14034, 14041, 14047, 14049, 14051, 14060, + 14064, 14069, 14068, 14075, 14074, 14079, 14088, 14095, 14100, 14105, + 14110, 14115, 14120, 14122, 14124, 14126, 14133, 14141, 14143, 14151, + 14158, 14165, 14173, 14179, 14184, 14192, 14200, 14208, 14212, 14217, + 14224, 14229, 14236, 14243, 14249, 14255, 14261, 14269, 14274, 14281, + 14288, 14295, 14302, 14307, 14312, 14317, 14322, 14329, 14351, 14353, + 14355, 14360, 14361, 14364, 14366, 14370, 14371, 14375, 14376, 14380, + 14381, 14385, 14386, 14390, 14391, 14395, 14396, 14404, 14416, 14415, + 14431, 14430, 14440, 14441, 14442, 14443, 14444, 14448, 14449, 14453, + 14460, 14461, 14462, 14466, 14467, 14480, 14481, 14482, 14497, 14496, + 14509, 14508, 14520, 14524, 14525, 14540, 14543, 14542, 14555, 14556, + 14561, 14563, 14565, 14567, 14569, 14571, 14579, 14581, 14583, 14585, + 14590, 14592, 14600, 14602, 14604, 14606, 14623, 14624, 14628, 14629, + 14632, 14634, 14635, 14639, 14655, 14656, 14661, 14660, 14670, 14671, + 14675, 14675, 14679, 14678, 14684, 14688, 14689, 14693, 14694, 14702, + 14701, 14712, 14716, 14720, 14733, 14732, 14747, 14748, 14749, 14753, + 14754, 14755, 14756, 14764, 14768, 14777, 14783, 14795, 14806, 14817, + 14830, 14794, 14840, 14841, 14845, 14846, 14850, 14851, 14859, 14863, + 14864, 14865, 14868, 14870, 14874, 14875, 14879, 14884, 14891, 14896, + 14903, 14905, 14909, 14910, 14914, 14919, 14927, 14928, 14932, 14934, + 14942, 14943, 14947, 14948, 14949, 14953, 14955, 14960, 14961, 14970, + 14971, 14975, 14976, 14980, 14993, 14998, 15003, 15008, 15016, 15024, + 15029, 15042, 15051, 15067, 15074, 15080, 15090, 15091, 15099, 15100, + 15101, 15102, 15116, 15122, 15128, 15134, 15140, 15146, 15165, 15175, + 15185, 15191, 15198, 15208, 15216, 15224, 15236, 15237, 15246, 15245, + 15264, 15265, 15270, 15271, 15278, 15276, 15303, 15304, 15310, 15315, + 15324, 15339, 15340, 15344, 15349, 15357, 15362, 15370, 15375, 15380, + 15385, 15391, 15396, 15404, 15409, 15414, 15419, 15425, 15433, 15434, + 15445, 15453, 15457, 15463, 15469, 15479, 15485, 15494, 15504, 15505, + 15509, 15510, 15511, 15515, 15523, 15531, 15539, 15547, 15548, 15556, + 15557, 15565, 15566, 15571, 15580, 15581, 15589, 15590, 15599, 15600, + 15608, 15609, 15613, 15622, 15623, 15624, 15628, 15641, 15671, 15681, + 15681, 15683, 15693, 15694, 15695, 15696, 15697, 15698, 15699, 15700, + 15701, 15706, 15707, 15708, 15709, 15710, 15711, 15712, 15713, 15714, + 15715, 15723, 15724, 15725, 15726, 15727, 15728, 15732, 15733, 15734, + 15735, 15736, 15737, 15738, 15739, 15740, 15744, 15745, 15746, 15747, + 15748, 15749, 15750, 15754, 15755, 15756, 15757, 15758, 15759, 15760, + 15761, 15762, 15766, 15767, 15768, 15769, 15770, 15771, 15772, 15785, + 15786, 15787, 15788, 15789, 15790, 15791, 15792, 15793, 15794, 15795, + 15796, 15797, 15798, 15799, 15800, 15801, 15802, 15803, 15804, 15805, + 15806, 15807, 15808, 15809, 15810, 15811, 15812, 15813, 15814, 15815, + 15816, 15817, 15818, 15819, 15820, 15821, 15822, 15823, 15824, 15825, + 15826, 15827, 15828, 15829, 15830, 15831, 15832, 15833, 15834, 15835, + 15836, 15837, 15838, 15839, 15880, 15881, 15882, 15883, 15884, 15885, + 15896, 15897, 15898, 15899, 15900, 15901, 15902, 15903, 15904, 15905, + 15909, 15910, 15911, 15918, 15919, 15920, 15924, 15925, 15926, 15935, + 15936, 15937, 15938, 15939, 15940, 15941, 15942, 15943, 15944, 15945, + 15946, 15947, 15948, 15949, 15950, 15951, 15952, 15953, 15954, 15955, + 15956, 15957, 15958, 15959, 15960, 15961, 15962, 15963, 15964, 15965, + 15966, 15967, 15968, 15976, 15977, 15978, 15979, 15980, 15981, 15982, + 15983, 15984, 15985, 15986, 15987, 15988, 15989, 15990, 15991, 15992, + 15993, 15994, 15995, 15996, 15997, 15998, 15999, 16000, 16001, 16002, + 16003, 16004, 16005, 16006, 16007, 16008, 16009, 16010, 16011, 16012, + 16013, 16014, 16015, 16016, 16017, 16018, 16019, 16020, 16021, 16026, + 16027, 16028, 16029, 16030, 16031, 16032, 16033, 16034, 16035, 16036, + 16037, 16038, 16039, 16040, 16041, 16042, 16043, 16044, 16045, 16046, + 16047, 16048, 16049, 16050, 16051, 16052, 16053, 16054, 16055, 16056, + 16057, 16058, 16059, 16060, 16061, 16062, 16063, 16064, 16065, 16066, + 16067, 16068, 16069, 16070, 16071, 16072, 16073, 16074, 16075, 16076, + 16077, 16078, 16079, 16080, 16081, 16082, 16083, 16084, 16085, 16086, + 16087, 16088, 16089, 16090, 16091, 16092, 16093, 16094, 16095, 16096, + 16097, 16098, 16099, 16100, 16101, 16102, 16103, 16104, 16105, 16106, + 16107, 16108, 16109, 16110, 16111, 16112, 16113, 16114, 16115, 16116, + 16117, 16118, 16119, 16120, 16121, 16122, 16123, 16124, 16125, 16126, + 16127, 16128, 16129, 16130, 16131, 16132, 16133, 16134, 16135, 16136, + 16137, 16138, 16139, 16140, 16141, 16142, 16143, 16144, 16145, 16146, + 16147, 16148, 16149, 16150, 16151, 16152, 16153, 16154, 16155, 16156, + 16157, 16158, 16159, 16160, 16161, 16162, 16163, 16164, 16165, 16166, + 16167, 16168, 16169, 16170, 16171, 16172, 16173, 16174, 16175, 16176, + 16177, 16178, 16179, 16180, 16181, 16182, 16183, 16184, 16185, 16186, + 16187, 16188, 16189, 16190, 16191, 16192, 16193, 16194, 16195, 16196, + 16197, 16198, 16199, 16200, 16201, 16202, 16203, 16204, 16205, 16206, + 16207, 16208, 16209, 16210, 16211, 16212, 16213, 16214, 16215, 16216, + 16217, 16218, 16219, 16220, 16221, 16222, 16223, 16224, 16225, 16226, + 16227, 16228, 16229, 16230, 16231, 16232, 16233, 16234, 16235, 16236, + 16237, 16238, 16239, 16240, 16241, 16242, 16243, 16244, 16245, 16246, + 16247, 16248, 16249, 16250, 16251, 16252, 16253, 16254, 16255, 16256, + 16257, 16258, 16259, 16260, 16261, 16262, 16263, 16264, 16265, 16266, + 16267, 16268, 16269, 16270, 16271, 16272, 16273, 16274, 16275, 16276, + 16277, 16278, 16279, 16280, 16281, 16282, 16283, 16284, 16285, 16286, + 16287, 16288, 16289, 16290, 16291, 16303, 16302, 16312, 16316, 16311, + 16329, 16328, 16342, 16341, 16357, 16356, 16383, 16384, 16390, 16389, + 16396, 16395, 16405, 16404, 16415, 16414, 16420, 16428, 16430, 16435, + 16435, 16444, 16443, 16457, 16456, 16461, 16465, 16466, 16467, 16471, + 16472, 16473, 16474, 16478, 16479, 16480, 16481, 16486, 16491, 16496, + 16505, 16510, 16515, 16520, 16525, 16530, 16535, 16540, 16554, 16565, + 16584, 16602, 16614, 16622, 16627, 16643, 16644, 16645, 16646, 16650, + 16669, 16687, 16688, 16692, 16693, 16694, 16695, 16699, 16714, 16718, + 16719, 16720, 16730, 16731, 16732, 16738, 16744, 16756, 16755, 16769, + 16770, 16776, 16785, 16786, 16790, 16791, 16795, 16814, 16815, 16816, + 16821, 16822, 16827, 16826, 16843, 16853, 16864, 16863, 16895, 16896, + 16900, 16901, 16905, 16906, 16907, 16908, 16910, 16909, 16922, 16923, + 16924, 16925, 16926, 16932, 16937, 16943, 16949, 16955, 16962, 16969, + 16973, 16980, 16989, 16991, 16996, 17001, 17008, 17015, 17022, 17029, + 17036, 17043, 17055, 17056, 17060, 17061, 17065, 17070, 17078, 17088, + 17107, 17110, 17112, 17116, 17117, 17124, 17126, 17130, 17131, 17136, + 17135, 17139, 17138, 17142, 17141, 17145, 17144, 17147, 17148, 17149, + 17150, 17151, 17152, 17153, 17154, 17155, 17156, 17157, 17158, 17159, + 17160, 17161, 17162, 17163, 17164, 17165, 17166, 17167, 17168, 17169, + 17170, 17171, 17172, 17173, 17177, 17178, 17182, 17183, 17187, 17194, + 17201, 17211, 17221, 17230, 17239, 17252, 17257, 17265, 17270, 17278, + 17283, 17290, 17290, 17291, 17291, 17294, 17301, 17306, 17312, 17318, + 17324, 17328, 17332, 17333, 17337, 17365, 17367, 17371, 17375, 17379, + 17386, 17392, 17398, 17404, 17410, 17419, 17420, 17424, 17425, 17430, + 17431, 17435, 17436, 17440, 17441, 17445, 17446, 17451, 17450, 17460, + 17469, 17470, 17474, 17475, 17480, 17481, 17482, 17487, 17488, 17489, + 17493, 17505, 17514, 17520, 17529, 17538, 17551, 17553, 17555, 17560, + 17561, 17566, 17565, 17582, 17581, 17593, 17593, 17614, 17615, 17622, + 17630, 17631, 17632, 17636, 17637, 17642, 17641, 17663, 17670, 17671, + 17675, 17676, 17680, 17681, 17682, 17687, 17695, 17716, 17743, 17745, + 17749, 17750, 17754, 17755, 17763, 17764, 17765, 17766, 17767, 17773, + 17779, 17789, 17790, 17795, 17808, 17824, 17825, 17826, 17830, 17831, + 17835, 17836, 17841, 17842, 17846, 17852, 17861, 17861, 17886, 17887, + 17888, 17889, 17890, 17891, 17892, 17896, 17897, 17898, 17899, 17909, + 17911, 17917, 17923, 17933, 17942, 17948, 17953, 17957, 17931, 18011, + 18029, 18028, 18046, 18055, 18044, 18077, 18085, 18076, 18098, 18108, + 18118, 18119, 18123, 18124, 18130, 18134, 18138, 18142, 18146, 18150, + 18158, 18159, 18175, 18182, 18189, 18199, 18200, 18201, 18205, 18206, + 18207, 18211, 18212, 18217, 18219, 18218, 18224, 18225, 18229, 18236, + 18246, 18252, 18263 }; #endif @@ -2489,12 +2489,12 @@ }; # endif -#define YYPACT_NINF -5488 +#define YYPACT_NINF -5162 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-5488))) + (!!((Yystate) == (-5162))) -#define YYTABLE_NINF -3498 +#define YYTABLE_NINF -3499 #define yytable_value_is_error(Yytable_value) \ 0 @@ -2503,623 +2503,622 @@ STATE-NUM. */ static const int yypact[] = { - 38981, 4670, 1384, 85205, -5488, 59, -5488, 1025, -5488, -5488, - -5488, -5488, 4539, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, 174, 106, -5488, 1220, -5488, -5488, -5488, 80767, -32, - 1170, -5488, -5488, 82035, -5488, -41, -5488, 82035, -5488, -5488, - 85205, -5488, 1281, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, 2300, 398, -5488, -5488, -5488, -5488, -5488, -5488, - 1394, -5488, -5488, -5488, -5488, -5488, 106, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, 85205, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, 781, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 1346, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 85839, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 607, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - 210, -5488, -5488, 69964, -5488, -5488, 604, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - 1843, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, 85205, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, 1220, -5488, -5488, 2045, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, 781, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, 85205, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, 251, -5488, -5488, 258, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, 1954, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, 3758, -5488, -5488, 2091, 1985, -5488, -5488, 1515, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, 3279, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 70598, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 111, -5488, - -5488, -5488, 262, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, 85205, 2047, 85205, 1695, - 1755, 85205, 2374, 2493, 81401, 85205, -5488, 1465, 117, -5488, - -5488, 2241, -5488, 1801, -5488, 106, 2570, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, 1893, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, 2464, 2582, 873, 2550, 2728, - 85205, 50881, 1478, 2493, 2761, 1437, 2493, 2493, 2493, 2493, - 2798, 2493, 2493, 85205, -5488, 2493, 2493, 1194, 89643, 36188, - -5488, 1685, 922, 2787, -5488, -5488, -5488, -5488, -5488, -5488, - 6791, 106, 22988, 2895, 679, 5593, 2264, -5488, 2769, -5488, - -5488, 85205, -5488, -5488, 6791, 1251, -5488, 2769, 36925, -5488, - 34745, 7738, 2769, 106, 2857, -5488, 22988, -5488, -5488, 781, - -5488, -5488, -5488, 2686, -5488, 81401, -5488, -5488, -5488, 2273, - -5488, 3057, 22988, 198, -5488, -5488, -5488, 2675, 85205, 2515, - 1205, 1468, 81401, 85205, 2582, 3026, -5488, 2085, 450, -5488, - 2462, 2582, 2178, 2474, 2582, 2897, 85205, 2582, -5488, -5488, - 2472, 2472, 2472, 2695, 2472, -5488, 2472, -5488, -5488, 2373, - 85205, 3048, -5488, -5488, -5488, 3048, 3048, 2519, 3047, 3066, - 3073, 1103, 2654, 1678, 2752, 2241, 489, 1801, 588, -5488, - -5488, -5488, 2427, -5488, -5488, 300, -5488, 2850, -5488, 85205, - -5488, 2496, -5488, -5488, 1667, 51579, -5488, 85205, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, 1263, -5488, 2947, 272, - -5488, 2558, 2810, 2502, -5488, 2989, 81401, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, 2485, 85205, -5488, 3187, 22988, 2464, - -5488, 2994, -5488, -5488, -5488, -5488, 69964, -5488, 85205, -5488, - 3263, -5488, -5488, 89643, -5488, -5488, 1324, -5488, 53655, 1381, - 44663, -5488, 2506, 2517, 2815, -5488, 2524, 1810, 1850, -5488, - 1886, -5488, -5488, 1959, 1968, 1973, -5488, -5488, 3202, -5488, - -5488, 73149, 687, 85205, 3249, 85205, 2493, 85205, 85205, 85205, - 85205, 85205, 85205, -5488, 81401, 2664, -5488, -5488, 2493, 2493, - -5488, 3251, 2801, 2780, 2257, 2621, 2962, -5488, 2859, -5488, - -5488, 2739, -5488, -5488, 208, -5488, -5488, -5488, 115, 116, - 213, 312, 3277, 365, 60, 370, 422, -5488, -5488, -5488, - 3189, 3298, 2708, -5488, 3087, 22988, -5488, -5488, -5488, 3365, - -5488, -5488, 1561, 3161, 363, 69964, 90277, 73793, 91195, 91195, - 91195, -5488, -5488, 207, 91195, 85205, 90736, 85205, 7871, 2747, - -5488, -5488, -5488, 40453, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, 85205, -5488, -5488, -5488, 376, -5488, -5488, -5488, - -5488, -5488, 8668, -5488, -5488, 27512, -5488, 2745, 2755, 2758, - 19218, 2763, 2771, 2776, 2779, 2782, 2621, 2621, 2621, 2795, - 2806, 2836, 2839, -5488, 2849, 2856, 2893, 2901, -5488, 2914, - -5488, 2919, 2922, 2925, -5488, -5488, 145, 331, 2928, 2934, - 23742, 2940, -5488, 65526, 2946, 2955, 2961, 2964, -5488, -5488, - 22988, 2795, 2970, -5488, -5488, 2973, -5488, 2982, 2984, 2992, - 2996, 2998, 3013, 3020, 3030, 3032, 3366, 3034, 3054, 3056, - 3063, 2795, -5488, 3065, -5488, -5488, 2489, 2621, 2795, 2795, - 3067, 3086, 3091, 3098, 3102, 3104, 3112, 3121, 82669, 3126, - 3131, 3133, 3142, 3146, 3148, 3156, 428, 3162, 3164, 3166, - 3174, 3177, 3179, 3182, 3192, 3208, 3210, 3235, 3241, 3252, - 3261, 3268, 3270, 2867, 3274, 3281, 3282, 3285, 3290, 2913, - 3300, 3303, 3305, 3310, 3312, 3324, 3327, 503, 3331, 3335, - 552, 3342, 3347, 3353, 3358, 3361, 3363, 3364, 3367, 28266, - 29020, 27512, 22988, -5488, 85205, 86473, -5488, 3280, 1321, -5488, - 4451, 27512, -5488, -5488, -5488, 3528, -5488, 3410, -5488, -5488, - -5488, -5488, -5488, -5488, 3462, -5488, 3465, -5488, -5488, 3481, - 3017, -5488, 3548, -5488, -5488, -5488, -5488, -5488, 3021, 3369, - 3642, 3686, -5488, -5488, -5488, -5488, 3452, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - 3222, 3294, -5488, 3548, -5488, -5488, 52272, 69964, 5690, -5488, - -5488, -5488, 66160, -5488, -5488, 2801, 3485, 3948, -5488, 4040, - -5488, 3964, 57067, 3908, 1683, 448, 3383, 551, 578, 43936, - 224, 78231, 665, 314, 3388, 61722, 46822, 3391, 131, 3392, - -5488, 3395, 3396, 3397, 3399, 3400, 3403, 3406, -5488, -5488, - -5488, 3490, 3394, 3509, 1925, -5488, -5488, 356, 875, 3504, - -5488, 3759, -5488, 1925, -5488, 37585, 4044, 2057, -5488, 976, - -5488, 4090, -5488, -5488, 3512, 3497, 3525, -5488, 3362, -5488, - 2582, -5488, 1284, -5488, 4044, 1925, 2057, -5488, 3692, 3777, - 1531, 4102, -5488, -105, -5488, -5488, 3365, -5488, 2371, 85205, - -5488, -5488, -5488, 3432, 69964, 69964, 85205, 984, 177, 3280, - 3436, -5488, 22988, 3920, 6347, 41156, -5488, 237, -5488, -5488, - 85205, -5488, 3544, -5488, -5488, 1056, -5488, 3866, -5488, 3449, - -5488, 87107, 177, -5488, -5488, 1461, 3840, -5488, 3453, -5488, - -5488, -5488, -5488, 69964, -5488, -5488, -5488, -5488, -5488, -5488, - 3454, -5488, -5488, 3657, 3540, -5488, 3487, -5488, -5488, 602, - 4157, -5488, 2300, 85205, -5488, -5488, 3048, -5488, 3048, 3048, - 3048, 3048, 3048, 2457, -5488, -5488, -5488, 3508, 3793, -5488, - -5488, 2989, 2570, 48840, 2841, 3578, 3484, 300, 3477, 3961, - 4019, -5488, -5488, -5488, 2717, -5488, -5488, 1904, 16956, 4017, - 4191, 3863, -5488, -5488, -5488, -5488, 2621, 3488, -5488, -5488, - -5488, -5488, -5488, 4249, -5488, 69964, 3693, 3872, 3872, 3872, - 4259, -5488, -5488, -5488, 69964, -5488, -5488, -5488, 272, -5488, - 51579, 2021, 85205, 69964, 3538, -5488, 69964, 22988, -5488, -5488, - 22988, -5488, 3861, 3280, -5488, -5488, 69964, 2270, -5488, -5488, - -5488, 4249, 3872, -5488, 3942, 1381, 3513, 3514, -5488, 3518, - 3518, 3518, -5488, 3522, 4085, 3522, -5488, 3912, 2098, 1203, - 3912, -5488, 2098, 3522, -5488, 3526, -5488, 3912, -5488, 2098, - 3518, -5488, 3518, -5488, -5488, 2098, 3518, -5488, 3529, 3522, - -5488, -5488, 3912, -5488, -5488, -5488, -5488, 1253, 2079, 3522, - -5488, -5488, -5488, 3518, 3531, 3518, 3518, 3518, 3518, -5488, - 3518, 4094, 3534, 4256, -5488, -5488, -5488, -5488, -5488, 3522, - 108, 3518, 3518, 3518, 3518, 3532, 445, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, 4208, 85205, 4212, -5488, 69964, 4292, - 69964, 4012, -5488, 3545, -5488, 3539, -5488, -5488, -5488, 4134, - 85205, -5488, -5488, -5488, -5488, 3543, 2664, 52964, -5488, 1643, - 3901, 52272, 69964, -5488, -5488, 4170, 3689, -5488, -5488, -5488, - -5488, -5488, -5488, 3633, -5488, -5488, 3560, -5488, -5488, -5488, - 3563, -5488, 3563, 3563, -5488, -5488, 3563, 52272, -5488, -5488, - 51579, 2036, 6167, 4215, 2746, -5488, 66160, -5488, 3864, 24496, - -5488, -5488, -5488, 3835, 311, 1644, -5488, -5488, -5488, -5488, - -5488, 4036, -5488, -5488, -5488, -5488, -5488, 85205, 4241, 4218, - -5488, -5488, -5488, 4101, -5488, -5488, 4049, 3583, 4199, 3582, - -5488, -5488, -5488, 263, 22988, 3588, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, 69964, 3592, 27512, 27512, -5488, - 4356, 4356, 4356, 22988, 3293, 1424, 3953, 22988, 22988, 22988, - 2754, 3603, -5488, -5488, -5488, 289, -5488, 3622, 22988, 22988, - 66794, 3623, -5488, 3496, 22988, 4299, 22988, 22988, 22988, 22988, - 22988, 5323, 22988, -5488, -5488, 86473, 66794, 4065, 3624, -5488, - 3621, -5488, 2887, 22988, 2890, 22988, -5488, -5488, 22988, 22988, - 3629, 22988, 22988, 29774, 3632, 22988, 22988, 22988, 3634, 3762, - 4356, 4356, 22988, 2935, -5488, 18464, -5488, -5488, -5488, -5488, - -5488, 4356, 4356, 22988, 22988, 2956, 22988, 22988, 22988, -5488, - 3635, 22988, 22988, 22988, 22988, 22988, 22988, 22988, -5488, 22988, - 22988, 22988, 22988, 22988, 22988, 1586, 22988, 22988, 69964, 22988, - 22988, 22988, 22988, 22988, 22988, 22988, 4306, 69964, 22988, 22988, - 22988, 22988, 4313, 22988, 22988, 22988, 3643, 22988, 69964, 22988, - -5488, 22988, 3669, 3669, -5488, 22988, 18464, 22988, 3644, 67428, - 22988, 22988, 22988, 22988, 23742, -5488, 23742, -5488, -5488, 3647, - 345, -5488, 4115, 22988, 3645, 62356, -5488, -5488, -5488, -5488, - 22988, 22988, 22988, 29774, -5488, 1701, -5488, -5488, -5488, -5488, - -5488, 17710, 29774, 29774, 3653, 29774, 29774, 29774, 29774, 29774, - 29774, 4281, 29774, 29774, 30528, 31282, 29774, 29774, 29774, 29774, - 2672, -5488, 81401, 27512, 71866, 3658, 4320, -5488, 86473, -5488, - 1979, 698, 1299, 5593, 32755, -5488, 3659, -5488, 4154, 3663, - -5488, -54, -5488, 69964, -5488, -5488, -5488, 4230, 3671, 4332, - 52272, 51579, 2443, 3672, 695, 3696, -5488, -5488, 52964, 85205, - -5488, -5488, -5488, -5488, -5488, 4256, 22988, -5488, 52272, -5488, - 1523, 16956, -5488, 1273, 46, 131, -5488, -5488, -5488, -5488, - -5488, 16956, 85205, 57744, 3697, 3781, 3702, 3048, 49482, 85205, - 69964, 85205, 85205, 85205, 69964, 52272, 69964, -5488, -5488, -5488, - 1157, 1925, 85205, 1925, 2057, 4333, -5488, 2060, 2060, -5488, - -5488, -5488, 78865, -5488, -5488, -5488, 1925, 85205, 85205, 1925, - 51579, -5488, 2057, 2478, -5488, 3993, 3784, -5488, -5488, -5488, - 4035, -5488, -5488, 4379, 3710, -5488, 4056, -5488, -5488, 3809, - -5488, -5488, 69964, -5488, -5488, 2057, -5488, 2057, 2057, 22988, - 1925, 1925, 1925, 710, -5488, 3718, -5488, 3722, -5488, -5488, - 4077, 3720, 4371, 3728, -5488, -5488, 4304, 859, 4268, -5488, - 4161, -5488, 4294, -5488, 22988, 3920, 3280, -5488, -5488, 4015, - -5488, 4018, 4020, 4021, -5488, -5488, -5488, -5488, 4172, 4024, - -5488, 2582, 4026, -5488, -5488, 3760, -5488, -5488, -5488, 32755, - 81401, -5488, 3761, -5488, 3779, -5488, -5488, -5488, 88375, -5488, - 87741, -5488, 2582, -5488, -5488, -5488, 69964, 4260, -5488, 2582, - 2085, 85205, -5488, -5488, -5488, 2156, -5488, -5488, -5488, 3871, - 2178, -5488, -5488, -54, 2472, 3958, -5488, -5488, -5488, 81401, - -5488, -5488, -5488, -5488, -5488, 4450, -5488, 52964, 51579, 81401, - 85205, 85205, 85205, 69964, 69964, 3048, 85205, 3048, -5488, -5488, - 3048, -5488, 3048, 3048, 3814, -5488, -5488, -5488, -5488, 199, - 1186, 4516, -5488, 502, -5488, 3083, 502, 4012, 4044, -5488, - 4452, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, 3796, 3578, -5488, -5488, -5488, 3788, -5488, - 3790, 2850, 2841, -5488, -5488, -5488, -5488, -5488, -5488, 27512, - 2849, -5488, 3280, -5488, -5488, -5488, 254, -5488, -5488, -5488, - 1868, 4151, 3660, -5488, 81401, 3660, -56, 1712, -5488, 3794, - 2582, 1101, -5488, 1101, -5488, -54, -5488, 4093, -5488, 4096, - 133, -5488, -5488, -5488, -5488, -5488, 69964, 3791, -5488, 3979, - 3800, 3802, 3280, 3280, -5488, 6791, 4535, 4274, 5984, 164, - 3851, -5488, -5488, -5488, -5488, -5488, 69964, -5488, -5488, 2396, - 3585, 4291, 3811, -5488, 1381, -5488, -5488, -5488, 1905, -5488, - -5488, -5488, 3912, 3912, 2652, 1144, -5488, -5488, -5488, 1144, - 131, -5488, -5488, 410, -5488, -5488, -5488, -5488, 1564, 48192, - 4557, 4203, 3908, 3912, -5488, 4286, 2098, -5488, -5488, 1144, - 2472, -5488, -5488, 3912, -5488, -5488, -5488, 2472, 1144, -5488, - 4289, -5488, -5488, -5488, 1144, 3912, 89643, 445, 2098, -5488, - -5488, 2098, 1144, 101, 85205, 56390, -5488, 4372, -5488, 1564, - 4557, 2098, 3912, 1144, 4410, -5488, 1144, 22988, 22988, -5488, - -5488, -5488, 391, 4230, 3897, -5488, 3825, -5488, -5488, 494, - -5488, 4405, 85205, 4500, 74427, -5488, 69964, -5488, 85205, 1643, - 3831, -5488, -5488, -5488, -5488, -5488, 131, -5488, 3832, 200, - 69964, 69964, 6791, -5488, 3837, -5488, -5488, 85205, -5488, -5488, - -5488, -5488, 4334, 119, 33397, 68062, -5488, 68062, 68062, -5488, - -5488, -5488, -5488, -5488, 60, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, 50175, 3280, -5488, 69964, -5488, 4489, 307, -5488, - 189, 69964, -5488, -5488, 22988, -5488, 4484, 85205, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, 85205, 2485, 3280, 85205, - 50881, -5488, 89643, 6791, 6791, 22988, 1770, 22988, -5488, 3847, - -5488, 3853, 3854, 3478, 4202, 22988, 22988, -5488, 3207, 1030, - 323, -5488, 3858, 3868, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, 3860, -5488, -5488, -5488, 461, 477, 3862, -5488, - 3865, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, 4530, -5488, 292, -5488, -5488, 303, 352, 591, 714, - 718, 3873, 771, 3635, 2227, 3867, 66794, 86473, 4356, 3869, - 397, 4356, 3870, 813, 440, 1020, -5488, 455, 509, 3212, - -5488, 1096, 1161, 1166, -5488, -5488, 3875, 3878, 310, 4356, - 3879, 19972, 20726, 21480, 3570, 3880, 3882, 3883, 1204, 560, - 4356, 3884, 1221, 2269, 1261, 86473, 1227, 1594, 1352, -5488, - 2301, 1597, 1615, 1618, 1728, 1956, 2139, 1779, 1798, 1862, - 2494, -5488, -5488, -5488, -5488, 3885, 2147, 2150, 3886, 3889, - 2509, 2164, 2230, 2255, 2542, 2557, 2596, 69964, 3891, 2278, - 2290, 1871, 2617, 69964, 2305, 2326, 1884, -5488, 2367, 3887, - 1913, 367, 3893, 3903, 2393, 3910, 1941, -5488, 86473, 85205, - 3911, 3913, 373, 295, 1961, 2406, 5323, 5323, -5488, 22988, - 1081, 221, 86473, 46, -5488, 4397, 3389, 1990, -5488, -5488, - -5488, -5488, -5488, -5488, 492, -5488, 3874, -5488, 3909, 3223, - 3877, 22988, 4344, 3877, 548, 4815, 1191, 1191, 29774, 3620, - 3604, 23742, 548, 23742, 548, 3877, 3877, 3877, -5488, 29774, - 3918, 29774, 29774, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - 4443, 3919, 671, 3925, -5488, -5488, -5488, -5488, -5488, -5488, - 54, 4323, -5488, 4113, 340, 22988, 2582, -5488, 3943, 4429, - 4430, 4435, -5488, -5488, -5488, -5488, 52272, 52272, 69964, 4438, - 22988, -5488, 1757, 3946, -5488, -5488, 4614, 52964, 4620, -5488, - 3952, 34039, 68062, 68062, 68062, 85205, 85205, 16956, 57067, 4625, - 4626, 131, -5488, 3280, 131, -5488, 3962, 3963, -5488, -5488, - 1823, 4231, -5488, 3965, 3966, -5488, 3957, 3959, 3975, 60452, - 22988, -5488, 131, 1273, -5488, -5488, -5488, -5488, -5488, 3968, - 85205, 85205, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, 2582, 22988, 85205, 1925, -5488, -5488, -5488, 1925, 2582, - 4638, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 4309, -5488, - 82669, 4510, 1482, -5488, 3977, -5488, -5488, -5488, -5488, -5488, - 1925, -5488, -5488, -5488, -5488, -5488, 4150, 4044, 3362, 4333, - -5488, 2057, 69964, 1925, 1925, 3280, -5488, -5488, -5488, -5488, - 85205, 4830, 4519, -5488, 3997, -5488, -5488, -5488, 69964, -5488, - 6791, 85205, 85205, -5488, 7587, -5488, 81401, 58421, 69964, -5488, - -5488, -5488, 2808, -5488, -5488, -5488, -5488, -5488, -5488, 3280, - -5488, 22234, 4693, -5488, -5488, -5488, -5488, 2582, -5488, -5488, - 5471, -5488, 69964, -5488, 64258, -5488, 64258, 2187, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - 181, 249, 1420, 4012, -5488, -5488, 69964, 1317, 189, -5488, - 4756, -5488, -5488, -5488, -5488, -5488, 4000, -5488, 4057, -5488, - -5488, -5488, 4009, -5488, 4685, -5488, -5488, 265, 457, 133, - -5488, 686, 4602, 4603, -5488, -5488, 85205, -5488, 85205, 85205, - -5488, 3048, -5488, -5488, 3048, 69964, 3048, -5488, 85205, -5488, - 85205, -5488, 85205, -5488, 3048, -5488, -5488, -5488, 4520, 4520, - -5488, 62990, -5488, -5488, 4504, 4660, -5488, 85205, -5488, -5488, - 2473, -5488, 4686, -5488, -5488, 4405, -5488, 4022, -5488, 22988, - -5488, 4027, 4025, -5488, -5488, -5488, -5488, -5488, -5488, 2841, - 1082, 16956, -5488, 131, 131, 4248, 4545, 4550, 4158, 2582, - 4551, 4556, 4562, -5488, -5488, -5488, 2582, 2582, -5488, -5488, - 131, -5488, 1589, -5488, -5488, -5488, -5488, 4144, 1371, -5488, - 131, 131, -5488, 3185, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, 1885, -5488, -5488, 243, 1449, 51579, 4507, 4635, 4050, - -5488, 69964, 4721, -5488, -5488, 22988, 4554, 7559, -5488, -5488, - 4274, -5488, 4072, 4073, 4074, 4075, 4081, 4082, 4083, 4084, - 4086, 4087, 4088, 4091, 4092, 4095, 4097, 4099, 4100, 4103, - 4105, 4108, 4112, 4117, 4119, 4120, 4060, -5488, -5488, 4114, - -5488, -5488, -5488, -5488, 131, 131, 131, 131, -5488, 4194, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 4343, 2959, - 85205, 4716, 4431, 4106, 4111, 4116, 4123, -5488, -5488, 2640, - 4574, 4600, -5488, -5488, -5488, -5488, 85205, -5488, -5488, -5488, - -5488, -5488, -5488, 131, -5488, -5488, -5488, -5488, 2648, -5488, - -5488, 2668, -5488, -5488, -5488, -5488, 7049, -5488, 2678, -5488, - -5488, -5488, -5488, -5488, 445, 445, 4118, -5488, -5488, -5488, - 4135, -5488, -5488, -5488, -5488, 4557, -5488, 4124, -5488, 3280, - 3280, 72500, -5488, -5488, -5488, -5488, 2732, -5488, -5488, 1908, - 85205, 4601, 74427, -5488, 22988, 4752, -5488, -5488, 710, -5488, - 4122, -54, -5488, -5488, 52964, -5488, 81401, 52272, -5488, -5488, - -5488, 4132, 1770, 8407, -5488, -5488, 4826, -5488, 2682, -5488, - 51579, 4584, -5488, 68062, 4131, -5488, 4133, 4634, 4636, 4637, - 4641, -5488, 1757, -5488, -5488, 4146, -5488, -5488, 4304, 4520, - 4173, 4421, 4541, -5488, -5488, -5488, 3280, -5488, -5488, 4796, - -5488, -5488, -5488, 2688, 4017, -5488, -5488, -5488, 4509, -5488, - 91195, 91195, 91195, -5488, 1965, -5488, 22988, -5488, -5488, 22988, - -5488, 3280, 3888, 4209, 48192, -5488, 48192, 4209, 22988, -5488, - 4156, -5488, 4803, 4809, -5488, -5488, 22988, -5488, 22988, -5488, - 22988, -5488, 22988, 22988, 22988, 22988, 22988, 22988, -5488, 29774, - -5488, 4162, 4171, -5488, -5488, 4174, -5488, 22988, -5488, 22988, - -5488, -5488, 22988, 22988, 22988, 22988, -5488, -5488, 22988, 22988, - 4175, -5488, 22988, 3902, 22988, 4211, 22988, 4221, 22988, -5488, - -5488, -5488, 25250, -5488, 4176, -5488, -5488, -5488, -5488, -5488, - 22988, -5488, 22988, -5488, 22988, 22988, 22988, 22988, 22988, -5488, - -5488, 22988, 22988, 22988, -5488, 22988, -5488, 4746, 22988, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, 22988, -5488, -5488, -5488, -5488, 22988, -5488, 605, 26004, - -5488, 22988, 22988, 22988, -5488, -5488, 22988, 4166, 4167, -5488, - 85205, -5488, 22988, 2565, 2966, 189, 4177, 22988, -5488, 4189, - 4190, 3436, -5488, 386, 2726, -5488, -5488, -5488, 2138, -5488, - -5488, -5488, 89009, 22988, -5488, -5488, -5488, -5488, -5488, 29774, - 434, 4181, 27512, -5488, 4815, 5323, 5323, 3256, 22988, 4344, - 4815, 85205, 4921, 4186, -5488, 22988, 86473, 22988, 4188, 4192, - -5488, 4197, -5488, -5488, -5488, 4200, -5488, 2748, 2966, 4284, - 4646, -5488, 3280, -5488, 32755, 4702, -5488, -5488, 69964, 3239, - -5488, 3484, 3484, 64892, -5488, -5488, -5488, 4742, 85205, 4407, - -5488, 52272, 51579, 68062, 4881, 4885, 4886, 4888, 131, 131, - -5488, -5488, 39717, 52272, 16956, -5488, 4724, 4725, -5488, -5488, - 1315, 4506, 4782, -5488, -5488, -5488, 4220, -5488, -5488, -5488, - -5488, 1065, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - 3280, 16956, -5488, 3697, 4233, 35451, 1095, -5488, -5488, -5488, - 3280, -5488, -5488, -5488, -5488, 4242, -5488, 80133, -5488, 4575, - 80133, 80133, 86473, -5488, -5488, 4837, -5488, -5488, 4638, 4012, - 2057, -5488, -5488, 2562, 4250, 4890, 4891, -5488, 4829, 3183, - 4829, -5488, -5488, 4250, 67428, 710, 4230, 8409, -5488, 2702, - -5488, 5009, 4253, 4714, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, 4262, -5488, 16956, 2849, -5488, 4261, - -5488, 3280, -5488, 4279, -5488, -5488, -5488, 4132, 1337, 4280, - 4264, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 4044, 168, - -5488, -5488, -5488, -5488, -5488, 1475, -5488, -5488, -5488, 2156, - 3288, -5488, 495, 189, 4502, -5488, -5488, 267, 4720, -5488, - 4507, 4945, 1707, 1707, 4861, 69964, 69964, 6063, 4144, -5488, - 501, 1785, -5488, -5488, -5488, -5488, 85205, -5488, 85205, -5488, - -5488, 764, -5488, 69964, -5488, -5488, -5488, 81401, 4277, -5488, - -5488, 4269, -5488, 22988, -54, 4392, -5488, -5488, -5488, 2138, - 5017, 4941, 4044, -5488, 3280, -5488, 4276, 22234, 4290, 4285, - -5488, -5488, 502, -5488, 4293, -5488, 2850, -5488, 56390, 47543, - -5488, 4662, 4668, 2031, -5488, -5488, -5488, -5488, -5488, -5488, - 3467, 1712, -5488, 131, 131, -5488, 245, 131, -5488, -5488, - 256, -5488, -5488, 587, 486, 4144, -5488, 2582, 2582, 2582, - 2582, 189, 2582, 2582, 2704, -5488, 3467, 3467, 1101, -5488, - 1188, -5488, -5488, -5488, -5488, 6256, 925, -5488, -5488, 81401, - -5488, 4799, 4804, -5488, 4805, -5488, -5488, 217, -5488, 2972, - -5488, 79, -5488, 4851, 85205, 5060, 4050, -5488, 1418, 3280, - -5488, 22988, -5488, 4312, 4314, 189, 4315, 189, 189, 2582, - 2582, 4242, 2582, 189, 2582, 2582, 2582, 2582, 2582, 2582, - 2582, 189, 2582, 1739, 2819, 2582, 189, 5984, -5488, 2582, - 2966, 3467, 3467, 3585, -5488, 4976, 131, -5488, 3744, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 2720, 45390, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 4905, -5488, - -5488, -5488, -5488, 1564, 2472, 1564, -5488, -5488, 89643, -5488, - -5488, 85205, 4906, -5488, -5488, -5488, -5488, 4237, -5488, -5488, - -5488, 4640, -5488, -5488, -5488, -5488, -5488, -5488, 778, -5488, - 29774, -5488, -5488, -5488, 4311, 710, 1106, 3280, 79499, 4862, - 4012, 4327, -5488, -5488, -5488, -5488, -5488, -5488, 1982, 4939, - -5488, 4339, 22988, -5488, -5488, 85205, 475, 4534, 4823, 4351, - 75061, 51579, 51579, 51579, 51579, -5488, 4931, 69964, -5488, 4995, - -5488, -5488, -5488, -5488, -5488, 22988, -5488, -5488, 2485, 4776, - 91195, 4964, -5488, -5488, -5488, -5488, -5488, 22988, 3280, 3280, - 22988, 3518, 3518, 3522, 3532, -5488, -5488, 4989, 3518, 3518, - -5488, 3518, 4991, 3518, 3518, 4352, -5488, -5488, 4354, 4355, - 4357, 3436, -5488, 22988, 22988, 2421, 175, 2437, 2452, 2024, - 2053, 447, -5488, 2467, 4424, -5488, -5488, 2504, 2513, 2531, - 2555, 2065, 2561, 257, 498, -5488, 3280, 22988, 3280, 22988, - 3280, 22988, 3280, 23742, 2598, -5488, 2733, 3991, -5488, 2750, - 4369, 2651, 526, 2665, 2073, 2759, 533, 2670, 2673, 2706, - 2768, -5488, 2630, 4946, 2773, 23742, 2718, 2797, 2093, 2097, - 2800, 86473, 85205, 4358, 2826, 4359, 4359, 387, -5488, 4362, - -5488, -5488, -5488, 4374, -5488, 2830, 22988, 22988, 4452, -5488, - 2995, 386, 4370, 3961, 4907, -5488, 502, -5488, 2717, 1081, - -5488, 4366, 3280, 4376, -5488, -5488, 22988, -5488, -5488, -5488, - -5488, 29774, 564, 4378, -5488, 4443, -5488, 22988, -5488, 4961, - 4382, 3436, -5488, 3280, -5488, -5488, 85205, 29774, -5488, 22988, - 4242, -5488, -5488, 5120, 4387, 4403, 4390, 4200, -5488, 52272, - -5488, 4938, 67428, 3788, 3788, 1293, 4393, 2790, 4928, -5488, - -5488, -5488, 4391, -5488, 2833, -5488, 5067, 3832, -5488, 5068, - 51579, 51579, 51579, 51579, 16956, 16956, -5488, -5488, -5488, 4400, - 4402, 57, 4960, -5488, -5488, -5488, -5488, 85205, 85205, 16956, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 3521, -5488, - 4044, -5488, -5488, 80133, -5488, -5488, -5488, -5488, -5488, -5488, - 1925, -5488, -5488, 4404, 334, 2726, -5488, -5488, -5488, 710, - 4115, 399, -5488, -5488, -5488, 5041, 4829, 4829, 4250, 5046, - 4729, 4418, -5488, 131, -5488, 5090, 5037, -5488, 85205, 4434, - -5488, 4892, -5488, 4437, 83303, -5488, 22234, 4447, -5488, 4985, - -5488, -5488, 5117, 64258, 4448, -5488, 4652, -5488, -5488, -5488, - 4446, -5488, 4436, 4537, 4538, -5488, -5488, -5488, 51579, -5488, - 4824, -5488, -5488, -5488, -5488, -5488, 69964, -5488, -5488, 4810, - 69964, 131, 131, 131, 131, 131, 4490, 131, 131, 131, - 131, 131, 4813, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 122, 85205, 131, 131, 41858, -5488, -5488, - 5026, -5488, 4920, -5488, -5488, -5488, 131, 5567, 4144, 501, - -5488, -5488, -5488, 2582, -5488, 1785, -5488, -5488, 4457, 85205, - -5488, 4050, 4595, 4461, 508, -5488, 441, -5488, 62990, 85205, - 3280, 4460, 563, -5488, 4692, 4464, -5488, -5488, 22988, -5488, - 4494, -5488, -5488, 43215, -5488, 75695, -5488, -5488, -5488, 22234, - -5488, 2841, 4293, 4466, 1244, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, 605, 605, -5488, -5488, 605, 605, -5488, -5488, - -5488, -5488, 605, 605, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, 1371, -5488, -5488, -5488, 1885, -5488, 5512, - 4864, 5040, 4864, 5042, 4966, 3272, 131, 5045, 5212, -5488, - 211, 131, 5048, 5113, 4553, 5115, 5052, -5488, 4558, 4864, - 5053, 4669, 5057, 5059, 5061, -5488, -5488, 8180, -5488, -5488, - -5488, -5488, 529, 68696, -5488, -5488, -5488, -5488, -5488, 4990, - 1658, -5488, -5488, -5488, -5488, 1199, 189, 189, 189, 2819, - 2853, -5488, 2972, 2300, 1120, 4987, 1635, -5488, 2844, -5488, - 5244, -5488, 214, -5488, -5488, 3280, 452, 459, -5488, 554, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 85205, 3467, - 2959, -5488, -5488, 85205, 3518, 3518, 3518, 3531, 3518, 149, - 4256, -5488, -5488, -5488, -5488, -5488, 108, 3518, 3518, 3518, - -5488, -5488, 4493, -5488, -5488, -5488, -5488, -5488, -5488, 72500, - -5488, -5488, -5488, 4815, 74427, 4012, -5488, 4833, 5035, 3796, - -5488, -5488, -5488, -5488, 4115, -5488, 3280, -5488, -5488, 5166, - -5488, -5488, 51579, -5488, -5488, 133, 133, 133, 133, 2722, - 4856, -5488, -5488, -5488, 4995, 4781, -5488, 446, 3280, -5488, - -5488, -5488, -5488, 6791, 447, 3280, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, 4508, 5323, 5323, -5488, 5247, 5039, -5488, -5488, 22988, - 22988, -5488, 22988, -5488, 1654, 4513, 4980, -5488, -5488, -5488, - -5488, 22988, -5488, 22988, -5488, -5488, 22988, 3280, 3280, 3280, - 5323, -5488, -5488, 5204, -5488, -5488, 4209, -5488, -5488, 22988, - -5488, 22988, -5488, 22988, -5488, 22988, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, 562, 5323, -5488, -5488, 22988, 22988, - -5488, -5488, -5488, 85205, -5488, 2966, 4515, 4791, -5488, -5488, - -5488, 2966, 4653, -5488, -5488, 2966, 189, -5488, -5488, -5488, - -5488, 3796, 2995, -5488, 4518, 2533, -5488, -5488, -5488, -5488, - -5488, -5488, 4521, 85205, -5488, 2851, -5488, -5488, 22988, -5488, - 5102, 4522, 563, 5259, 4524, -5488, 43215, -5488, 4526, 4527, - -5488, -5488, -5488, 4815, 5323, -5488, 5154, 5101, -5488, 2966, - 85205, -5488, -5488, -5488, 4532, -5488, 131, 4115, -5488, 3023, - 1293, 67428, -5488, 76329, 2632, 3578, -5488, 85205, 51579, 51579, - 3952, 3952, 3952, 3952, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, 131, 131, -5488, 35451, 57067, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, 4044, -5488, -5488, 3484, 5090, -5488, -5488, - 2138, 502, 3997, 1081, -5488, 4250, 5170, 5172, -5488, 4250, - -5488, -5488, 67428, 4012, 22234, 2942, 3974, -5488, -5488, -5488, - -5488, 4892, -5488, 38245, -5488, 4540, -5488, 4536, -5488, -5488, - 2287, 4873, 5163, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 22234, -5488, - 2582, 2468, -5488, -5488, -5488, 4569, -5488, 4546, 4547, 131, - -5488, 185, 341, 359, 385, -5488, -5488, 4242, 189, 189, - 2582, 2582, 131, 189, 81401, 2088, 189, 4242, 4242, 406, - 2582, 2012, 185, -5488, -5488, -5488, 189, 185, 71232, 69964, - 5218, 85205, 4549, 4552, 4555, -5488, -5488, -5488, -5488, -5488, - 2044, -5488, 5105, 3048, 2808, 2808, -5488, 4559, 250, -5488, - -5488, 6858, -5488, 54341, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, 409, 5145, 5312, -5488, -5488, -5488, 5103, - -5488, -5488, -5488, -5488, 4675, 4050, 47543, -5488, -5488, -5488, - 22988, -5488, -5488, -5488, -54, 4566, 1055, 22988, 85205, -5488, - 83937, -5488, -5488, -5488, -5488, 2341, -5488, 22234, 4571, 4576, - -5488, -5488, 502, 2906, 502, 4578, 2850, -5488, -5488, 2841, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 69330, 3048, - -5488, 5218, 4617, -5488, -5488, -5488, 5228, 2761, 1220, 2761, - 38245, 441, 443, 5214, 2493, 5252, 4621, 5148, 2761, 2761, - 59098, 1220, 67428, -5488, -5488, -5488, -5488, 69964, 59775, 1220, - -5488, -5488, -5488, 85205, -5488, 2761, 1220, -5488, 1220, 1220, - 38245, -5488, 7947, -5488, -5488, 42560, 2022, -5488, -5488, -5488, - 2582, -5488, -5488, -5488, -5488, -5488, 5175, 5176, -5488, -5488, - -5488, 4763, 22988, 22988, 5179, 85205, 5180, -5488, 4993, -5488, - 85205, -5488, 4115, -5488, -5488, -5488, 4887, 5095, 2878, -5488, - -5488, 2881, -5488, -5488, 2884, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, 1564, 5136, 85205, - -5488, 1564, 4557, 1564, 4557, -5488, -5488, 4122, -5488, -5488, - 4940, 4022, -5488, 4795, 133, 5069, 5069, 5069, 5069, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, 5245, 4956, 8585, - 1564, 1564, 1564, -5488, 4606, 4607, 22988, 2472, 5234, 2872, - 2100, 2907, 4889, 4841, -5488, 4775, -5488, 2894, 2902, 2920, - 2162, 3522, -5488, -5488, -5488, -5488, 5257, 3518, -5488, 5349, - -5488, 3518, -5488, -5488, -5488, -5488, -5488, -5488, 4619, 2941, - 3280, 3280, 2986, -5488, -5488, -5488, 2911, 2179, 2990, 3011, - -5488, -5488, -5488, 4622, -5488, -5488, 419, -5488, 4623, 4022, - -5488, -5488, -5488, 4452, 2138, -5488, -5488, 2916, 5357, 1846, - 22988, -5488, 22988, -5488, -5488, -5488, 85205, 4628, 4715, 1369, - -5488, 2929, -5488, -5488, 4630, 67428, 22234, 2138, -5488, -5488, - -5488, 2632, -5488, 4627, 502, 1904, 502, -5488, 3796, -5488, - -5488, 3952, 3952, 16956, 16956, -5488, -5488, -5488, -5488, 3578, - 3788, 4673, 1081, -5488, -5488, -5488, 4384, 5104, 4250, 4250, - 4930, 5106, 22988, 4642, -5488, 4405, -5488, -5488, 4836, 1908, - 1908, -5488, -5488, -5488, 72500, -5488, -5488, 4645, 4639, -5488, - -5488, -5488, 83303, -5488, 2950, -5488, -5488, 5395, 2952, -5488, - -5488, 81401, 4647, 85205, 85205, 2582, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, 4648, -5488, -5488, -5488, -5488, - -5488, 2582, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, 4651, 4655, -5488, - 172, -5488, 42560, 4657, 5287, 5292, 2808, -5488, 3048, 69964, - -5488, 71232, -5488, 3048, 3048, 6831, 85205, -5488, 5411, -5488, - -5488, -5488, -5488, -5488, -5488, 227, 85205, 3338, -5488, -5488, - 2483, 4783, -5488, 85205, -5488, -5488, 2582, 5413, -5488, 5065, - 563, -5488, 22988, 4664, 4671, -5488, -5488, -5488, -5488, 3280, - 5417, 4678, -5488, -5488, -5488, 76963, -5488, -5488, 22234, -5488, - 5310, -5488, -5488, -5488, -5488, 2841, -5488, -5488, -5488, 2300, - 1220, -5488, 2300, -5488, 71232, 38245, 71232, -5488, 47543, 71232, - 2761, 85205, -5488, -5488, 5304, 71232, 71232, -5488, -5488, 38245, - 4679, -5488, 563, 2895, -5488, -5488, -5488, 2966, 5137, 71232, - 38245, -5488, 38245, -5488, 3904, 3271, -5488, 4681, 85205, -5488, - -5488, -5488, -5488, -5488, -5488, 3280, 5323, 5073, -5488, -5488, - 4792, 2582, 5044, -5488, 1093, -5488, 85205, 235, -5488, -5488, - 189, -5488, 189, -5488, 189, -5488, -5488, 155, -5488, -5488, - -5488, -5488, -5488, -5488, 5069, 2422, -5488, -5488, -5488, -5488, - -5488, -5488, 5318, 5188, 91195, 5302, -5488, -5488, -5488, -5488, - -5488, 4690, 563, -5488, -5488, 4694, 80133, -5488, -5488, 22988, - -5488, 4922, -5488, 5030, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, 1564, -5488, -5488, -5488, -5488, 4242, -5488, - -5488, -5488, 4699, -5488, 189, 4405, -5488, -5488, 22988, -5488, - -5488, 4701, 6187, 563, 563, -5488, -5488, 189, -5488, 4646, - 4703, 85205, -5488, 5101, -5488, -5488, -5488, -5488, -5488, 502, - -5488, -5488, 77597, -5488, -5488, -5488, -5488, 4022, -5488, -5488, - 3796, -5488, -5488, 4704, -5488, 5174, -5488, -5488, -5488, 5184, - 3280, 85205, 4752, 1908, 5459, 5206, -5488, 1489, -5488, 89, - -5488, 85205, -5488, -5488, 4242, 5071, -5488, -5488, 4902, 85205, - 2965, 563, 4717, 3004, -5488, 69964, -5488, -5488, 85205, 2138, - -5488, 8180, -5488, 22988, 3048, -5488, -5488, 71232, 4728, 5194, - 2005, 71232, 71232, -5488, 5444, -5488, 4718, -5488, 302, 91654, - -5488, -5488, 5074, 227, -5488, 2655, 4734, 4719, -5488, -5488, - -5488, 5424, 501, -5488, -5488, -5488, 5324, 1120, -5488, 4736, - 4737, 7534, 3338, -5488, -5488, 2177, 5367, -5488, 3280, -5488, - -5488, 4745, 85205, -5488, -5488, -5488, 2138, 502, 5425, -5488, - 5427, 1335, -5488, 71232, 2396, 4256, -5488, 71232, 4639, -5488, - -5488, 1982, -5488, 67428, -5488, -5488, -5488, 5253, 2022, -5488, - 85205, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - 4750, 2850, 5217, 3008, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, 543, 85205, -5488, 4947, -5488, 2422, -5488, 5236, - 69964, -5488, -5488, 22988, -5488, -5488, -5488, 1504, 3028, -5488, - -5488, -5488, 4753, -5488, 4755, 4044, 4460, -5488, 4654, 4894, - 4429, 4430, 4435, 4932, 5096, -5488, 4934, -5488, -5488, -5488, - 4761, -5488, -5488, 2109, -5488, -5488, -5488, -5488, 2138, 4022, - 5090, 22988, 4762, 22988, 4764, 3037, -5488, -5488, 1908, 1908, - -5488, 1541, 4767, -5488, -5488, -5488, 5185, 4772, 3078, -54, - 85205, -5488, 5362, -54, 4773, 4778, -5488, -5488, 5026, 3095, - 71232, 5194, 2258, 85205, 5387, 1707, -5488, 1707, -5488, -5488, - 3822, -5488, -5488, 3753, 85205, 5239, -5488, -5488, -5488, 91654, - 1239, -5488, -5488, -5488, 4784, 4785, -5488, 4786, -5488, -5488, - -5488, -5488, 5354, -5488, 46117, -5488, 85205, -5488, -5488, -5488, - 5179, -5488, -5488, 501, -5488, 5517, 5518, 5467, 5524, 2177, - -5488, 357, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 71232, - 1413, -5488, 5494, 5497, 2022, -5488, -5488, -5488, -5488, 1220, - -5488, 69964, -5488, -5488, 4639, 1475, 4893, -5488, 6791, 2632, - 4750, 4797, 2081, 2717, -5488, -5488, 1262, -5488, -5488, 85205, - 84571, -5488, -5488, 5366, -5488, -5488, -5488, 4230, 91195, 563, - 80133, 80133, -5488, -5488, -5488, 502, 1673, -5488, 5551, 1927, - -5488, -5488, 1178, -5488, -5488, 85205, 29774, 4883, -5488, -5488, - 4878, -5488, -5488, 3387, -5488, 4452, 4673, 3280, 85205, 3280, - 85205, -5488, -5488, -5488, -5488, 2808, -5488, 2808, -5488, 1541, - -5488, -5488, -5488, 1371, -54, 1726, 563, 4811, 1803, -5488, - 85205, 250, -5488, -5488, -5488, 1707, 3080, -5488, 1537, 5399, - -5488, 4814, -5488, 4816, 4817, -5488, 5448, -5488, 2582, -5488, - 4896, -5488, 3822, -5488, -5488, -5488, 4858, 5455, 5414, 131, - 81401, 32035, -5488, 5311, -5488, 5268, 5530, -5488, 5581, 5022, - -5488, -5488, -5488, -5488, -5488, 226, 234, 2240, 1239, -5488, - -5488, -5488, -5488, 85205, -5488, 85205, 85205, -5488, 3531, 203, - -5488, -5488, -5488, 50881, -5488, 1635, -5488, -5488, 2472, 2472, - 5570, 2472, -5488, 5572, 5573, 357, -5488, 5444, 2966, 5101, - -5488, -5488, 32035, -5488, -5488, -5488, 5478, -5488, 22988, 5192, - -5488, -5488, 1904, 502, 502, 4838, 2850, -5488, -5488, 2632, - -5488, 5023, 5580, 5582, -5488, -5488, 3082, -5488, -5488, 4899, - 67428, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 4654, -5488, - -5488, 4979, 2077, -5488, 3105, -5488, -5488, -5488, 2966, -5488, - 4854, -5488, 5215, 131, 131, 5216, 131, 131, 131, 131, - 4855, 3387, -5488, 5205, -5488, -5488, 3109, 3114, 5531, 5531, - -5488, 3139, 1133, 5058, 2582, 131, 2013, 1726, -5488, -5488, - 131, -5488, -5488, 2013, 1803, -5488, -5488, 4868, -5488, 4865, - 4872, -5488, -5488, 85205, -5488, -5488, -5488, 1358, -5488, 85205, - 4874, 85205, 85205, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - 55027, -5488, 2819, 2819, 22988, -5488, -5488, -5488, -5488, -5488, - 3369, 5468, -5488, 4917, 1649, 131, -5488, 4368, 4871, -5488, - 4875, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 5416, - 85205, -5488, -5488, 69964, 4993, -5488, -5488, -5488, 2472, -5488, - 2472, 2472, -5488, -5488, -5488, 3153, -5488, -5488, 4884, 3280, - 22988, -5488, 502, 2188, -5488, -5488, -5488, -5488, 2632, -5488, - 1904, -5488, -5488, 1093, -5488, 5070, 5078, -5488, 84571, -5488, - 4895, -5488, 131, 441, -5488, -5488, -5488, -5488, -5488, 85205, - 4897, -5488, 4901, -5488, -5488, 113, 131, 2582, 2582, 131, - 3960, 3960, 2966, 81401, 4968, -5488, -5488, 131, -5488, -5488, - 2792, -5488, -5488, -5488, 1707, 1707, 2013, 1133, -5488, -5488, - -5488, 3376, -5488, 189, -5488, 5508, 5331, -5488, 55713, -5488, - -5488, -5488, 85205, 85205, 4903, -5488, 1218, 1218, 3197, 85205, - 3218, 3220, -5488, -5488, -5488, -5488, -5488, -5488, 4898, 4908, - -5488, 1472, -5488, -5488, 4368, -5488, -5488, -5488, -5488, 5242, - -5488, 4457, 4461, -5488, 222, 5333, 5577, 5264, -5488, -5488, - -5488, -5488, 5101, 3280, -5488, 2138, 502, -5488, -5488, -5488, - -5488, -5488, 67428, 22234, -5488, 4883, -5488, -5488, -5488, 3224, - -5488, 26758, -5488, -5488, -5488, 2582, -5488, -5488, 2582, -5488, - -5488, -5488, -5488, -5488, 3230, -5488, 81401, 5647, -5488, 5648, - 4913, 4918, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, 3275, 3287, 85205, -5488, -5488, 478, - 5365, 5507, 5510, 1133, 3296, 1726, 1803, -5488, 364, -5488, - 3637, 3637, 1909, -5488, -5488, -5488, 85205, -5488, 5103, 623, - 85205, -5488, -5488, -5488, 3336, -5488, -5488, -5488, -5488, 5463, - -5488, -5488, 4901, -5488, 4925, -5488, 4815, -5488, -5488, 81401, - -5488, 4968, -5488, -5488, -5488, 83303, 83303, 5105, 1133, 3343, - -5488, -5488, -5488, 5415, 5627, -5488, 1133, -5488, -5488, -5488, - 4929, -5488, 3637, -5488, -5488, -5488, -5488, -5488, 2112, 85205, - 85205, -5488, 3338, -5488, -5488, -5488, 5500, -5488, -5488, -5488, - -5488, 5230, 5065, -5488, 26758, 4933, 3387, -5488, -5488, 4935, - 3350, -5488, -5488, 1133, 1218, 1218, -5488, -5488, -5488, -5488, - 2112, -5488, -5488, -5488, -5488, 3338, 4992, 5285, 5625, 5676, - 5367, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, 5072, 2472, 5595, -5488, -5488, 5533, 4948, 58, - 1330, 61086, 5476, -5488, -5488, 81401, -5488, -5488, -5488, -5488, - -5488, 81401, 3355, -5488, -5488, 67428, -5488, -5488, 6791, -5488, - -5488, 63624, 4949, -5488, 131, -5488, -5488, 67428, -5488, -5488, - 22234, -5488, -5488 + 38063, 5328, 1580, 84287, -5162, -3, -5162, 270, -5162, -5162, + -5162, -5162, 4601, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, 388, 1107, -5162, 244, -5162, -5162, -5162, 79849, -68, + 884, -5162, -5162, 81117, -5162, -77, -5162, 81117, -5162, -5162, + 84287, -5162, 1324, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, 2812, 75, -5162, -5162, -5162, -5162, -5162, -5162, + 1804, -5162, -5162, -5162, -5162, -5162, 1107, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, 84287, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, 1227, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 1458, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 84921, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 603, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + 194, -5162, -5162, 69046, -5162, -5162, 466, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + 1913, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, 84287, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, 244, -5162, -5162, -17, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, 1227, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, 84287, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, 267, -5162, -5162, 281, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, 1982, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, 3039, -5162, -5162, 2276, 2289, -5162, -5162, 1859, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, 4920, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 69680, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 413, -5162, + -5162, -5162, 435, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, 84287, 2322, 84287, 1786, + 1809, 84287, 2398, 2497, 80483, 84287, -5162, 1895, 512, -5162, + -5162, 2282, -5162, 1906, -5162, 1107, 2481, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, 1933, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, 2381, 2471, 1160, 2511, 2642, + 84287, 49963, 275, 2497, 2633, 1956, 2497, 2497, 2497, 2497, + 2688, 2497, 2497, 84287, -5162, 2497, 2497, 1192, 88725, 35270, + -5162, 1806, 51, 2759, -5162, -5162, -5162, -5162, -5162, -5162, + 6323, 1107, 22070, 2821, 736, 4365, 2175, -5162, 2683, -5162, + -5162, 84287, -5162, -5162, 6323, 417, -5162, 2683, 36007, -5162, + 33827, 8316, 2683, 1107, 2763, -5162, 22070, -5162, -5162, 1227, + -5162, -5162, -5162, 2601, -5162, 80483, -5162, -5162, -5162, 2178, + -5162, 2949, 22070, 215, -5162, -5162, -5162, 2569, 84287, 2467, + 1222, 807, 80483, 84287, 2471, 2972, -5162, 1905, 1288, -5162, + 2388, 2471, 315, 2413, 2471, 2828, 84287, 2471, -5162, -5162, + 2238, 2238, 2238, 2664, 2238, -5162, 2238, -5162, -5162, 2350, + 84287, 3044, -5162, -5162, -5162, 3044, 3044, 2502, 3046, 3054, + 3064, 1154, 2830, 1745, 2730, 2282, 465, 1906, 2053, -5162, + -5162, -5162, 2412, -5162, -5162, 132, -5162, 2953, -5162, 84287, + -5162, 2468, -5162, -5162, 1659, 50661, -5162, 84287, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, 1797, -5162, 2934, 280, + -5162, 2591, 2791, 2503, -5162, 2993, 80483, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, 2484, 84287, -5162, 3172, 22070, 2381, + -5162, 2990, -5162, -5162, -5162, -5162, 69046, -5162, 84287, -5162, + 3255, -5162, -5162, 88725, -5162, -5162, 1253, -5162, 52737, 2217, + 43745, -5162, 2498, 2506, 2826, -5162, 2523, 1260, 1352, -5162, + 1507, -5162, -5162, 1561, 1567, 1875, -5162, -5162, 3205, -5162, + -5162, 72231, 1207, 84287, 3192, 84287, 2497, 84287, 84287, 84287, + 84287, 84287, 84287, -5162, 80483, 2630, -5162, -5162, 2497, 2497, + -5162, 3198, 2735, 2700, 2888, 2573, 2871, -5162, 2769, -5162, + -5162, 2659, -5162, -5162, 233, -5162, -5162, -5162, 154, 180, + 198, 363, 3177, 372, 1124, 410, 469, -5162, -5162, -5162, + 3088, 3184, 2607, -5162, 2971, 22070, -5162, -5162, -5162, 3252, + -5162, -5162, 130, 3047, 335, 69046, 89359, 72875, 90277, 90277, + 90277, -5162, -5162, 319, 90277, 84287, 89818, 84287, 7758, 2618, + -5162, -5162, -5162, 39535, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, 84287, -5162, -5162, -5162, 369, -5162, -5162, -5162, + -5162, -5162, 8326, -5162, -5162, 26594, -5162, 2631, 2637, 2640, + 18300, 2643, 2653, 2661, 2675, 2679, 2573, 2573, 2573, 2687, + 2696, 2704, 2715, -5162, 2719, 2727, 2740, 2744, -5162, 2762, + -5162, 2767, 2773, 2777, -5162, -5162, 177, 460, 2781, 2793, + 22824, 2797, -5162, 64608, 2799, 2814, 2827, 2838, -5162, -5162, + 22070, 2687, 2844, -5162, -5162, 2847, -5162, 2851, 2858, 2860, + 2864, 2870, 2881, 2886, 2894, 2898, 3241, 2901, 2904, 2910, + 2912, 2687, -5162, 2929, -5162, -5162, 2364, 2573, 2687, 2687, + 2943, 2948, 2962, 2970, 2974, 2979, 2992, 3007, 81751, 3015, + 3029, 3049, 3053, 3061, 3077, 3081, 143, 3083, 3090, 3100, + 3102, 3107, 3112, 3121, 3123, 3131, 3145, 3154, 3159, 3162, + 3167, 3170, 3187, 2689, 3197, 3201, 3204, 3219, 3222, 2724, + 3225, 3227, 3233, 3237, 3250, 3266, 3274, 507, 3291, 3299, + 545, 3308, 3312, 3325, 3329, 3332, 3334, 3336, 3343, 27348, + 28102, 26594, 22070, -5162, 84287, 85555, -5162, 2989, 750, -5162, + 3829, 26594, -5162, -5162, -5162, 3476, -5162, 3383, -5162, -5162, + -5162, -5162, -5162, -5162, 3387, -5162, 3396, -5162, -5162, 3471, + 2968, -5162, 3523, -5162, -5162, -5162, -5162, -5162, 2950, 3349, + 3558, 3608, -5162, -5162, -5162, -5162, 3311, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + 3190, 3214, -5162, 3523, -5162, -5162, 51354, 69046, 5857, -5162, + -5162, -5162, 65242, -5162, -5162, 2735, 3247, 3801, -5162, 3963, + -5162, 3890, 56149, 3846, 771, 451, 3347, 479, 610, 43018, + 365, 77313, 636, 351, 3362, 60804, 45904, 3365, 521, 3368, + -5162, 3373, 3385, 3388, 3390, 3391, 3392, 3393, -5162, -5162, + -5162, 3474, 3364, 3216, 1696, -5162, -5162, 403, 184, 3468, + -5162, 3733, -5162, 1696, -5162, 36667, 4028, 1908, -5162, 894, + -5162, 4074, -5162, -5162, 3495, 3480, 3508, -5162, 2648, -5162, + 2471, -5162, 1194, -5162, 4028, 1696, 1908, -5162, 3675, 3758, + 1504, 4081, -5162, 795, -5162, -5162, 3252, -5162, 2705, 84287, + -5162, -5162, -5162, 3410, 69046, 69046, 84287, 124, 221, 2989, + 3414, -5162, 22070, 3906, 5679, 40238, -5162, 251, -5162, -5162, + 84287, -5162, 3528, -5162, -5162, 1171, -5162, 3848, -5162, 3428, + -5162, 86189, 221, -5162, -5162, 1462, 3817, -5162, 3431, -5162, + -5162, -5162, -5162, 69046, -5162, -5162, -5162, -5162, -5162, -5162, + 3432, -5162, -5162, 3634, 3518, -5162, 3453, -5162, -5162, 541, + 4130, -5162, 2812, 84287, -5162, -5162, 3044, -5162, 3044, 3044, + 3044, 3044, 3044, 2396, -5162, -5162, -5162, 3484, 3766, -5162, + -5162, 2993, 2481, 47922, 3309, 4082, 3454, 132, 3452, 3931, + 3990, -5162, -5162, -5162, 1423, -5162, -5162, 2442, 16038, 3992, + 4168, 3840, -5162, -5162, -5162, -5162, 2573, 3461, -5162, -5162, + -5162, -5162, -5162, 4227, -5162, 69046, 3668, 3849, 3849, 3849, + 4236, -5162, -5162, -5162, 69046, -5162, -5162, -5162, 280, -5162, + 50661, 1578, 84287, 69046, 3514, -5162, 69046, 22070, -5162, -5162, + 22070, -5162, 3830, 2989, -5162, -5162, 69046, 1442, -5162, -5162, + -5162, 4227, 3849, -5162, 3909, 2217, 3478, 3481, -5162, 3482, + 3482, 57, -5162, 3486, 4055, 3486, -5162, 3882, 416, 2293, + 3882, -5162, 416, 3486, -5162, 3496, -5162, 3882, -5162, 416, + 3482, -5162, 3482, -5162, -5162, 416, 3482, -5162, 3497, 3486, + -5162, -5162, 3882, -5162, -5162, -5162, -5162, 1305, 2034, 3486, + -5162, -5162, -5162, 3482, 3498, 3482, 3482, 3482, 3482, -5162, + 3482, 4064, 3492, 4228, -5162, -5162, -5162, -5162, -5162, 3486, + 531, 3482, 3482, 3482, 3482, 3502, 1861, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, 4174, 84287, 4175, -5162, 69046, 4255, + 69046, 3973, -5162, 3506, -5162, 3503, -5162, -5162, -5162, 4100, + 84287, -5162, -5162, -5162, -5162, 3509, 2630, 52046, -5162, 1501, + 3856, 51354, 69046, -5162, -5162, 4132, 3655, -5162, -5162, -5162, + -5162, -5162, -5162, 3597, -5162, -5162, 3525, -5162, -5162, -5162, + 3530, -5162, 3530, 3530, -5162, -5162, 3530, 51354, -5162, -5162, + 50661, 2120, 6230, 4200, 2677, -5162, 65242, -5162, 3850, 23578, + -5162, -5162, -5162, 3820, 264, 1460, -5162, -5162, -5162, -5162, + -5162, 4019, -5162, -5162, -5162, -5162, -5162, 84287, 4221, 4194, + -5162, -5162, -5162, 4083, -5162, -5162, 4023, 3556, 4173, 3555, + -5162, -5162, -5162, 462, 22070, 3561, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, 69046, 3567, 26594, 26594, -5162, + 4326, 4326, 4326, 22070, 3317, 1836, 3922, 22070, 22070, 22070, + 1443, 3573, -5162, -5162, -5162, 560, -5162, 3576, 22070, 22070, + 65876, 3577, -5162, 5095, 22070, 4273, 22070, 22070, 22070, 22070, + 22070, 4394, 22070, -5162, -5162, 85555, 65876, 4024, 3579, -5162, + 3575, -5162, 2321, 22070, 2440, 22070, -5162, -5162, 22070, 22070, + 3583, 22070, 22070, 28856, 3589, 22070, 22070, 22070, 3593, 3725, + 4326, 4326, 22070, 2656, -5162, 17546, -5162, -5162, -5162, -5162, + -5162, 4326, 4326, 22070, 22070, 2940, 22070, 22070, 22070, -5162, + 3591, 22070, 22070, 22070, 22070, 22070, 22070, 22070, -5162, 22070, + 22070, 22070, 22070, 22070, 22070, 1981, 22070, 22070, 69046, 22070, + 22070, 22070, 22070, 22070, 22070, 22070, 4269, 69046, 22070, 22070, + 22070, 22070, 4270, 22070, 22070, 22070, 3600, 22070, 69046, 22070, + -5162, 22070, 3483, 3483, -5162, 22070, 17546, 22070, 3604, 66510, + 22070, 22070, 22070, 22070, 22824, -5162, 22824, -5162, -5162, 3606, + 338, -5162, 4087, 22070, 3609, 61438, -5162, -5162, -5162, -5162, + 22070, 22070, 22070, 28856, -5162, 1146, -5162, -5162, -5162, -5162, + -5162, 16792, 28856, 28856, 3617, 28856, 28856, 28856, 28856, 28856, + 28856, 4244, 28856, 28856, 29610, 30364, 28856, 28856, 28856, 28856, + 3004, -5162, 80483, 26594, 70948, 3625, 4289, -5162, 85555, -5162, + 2405, 1238, 1325, 4365, 31837, -5162, 3627, -5162, 4126, 3632, + -5162, -67, -5162, 69046, -5162, -5162, -5162, 4205, 3638, 4306, + 51354, 50661, 2676, 3639, 1077, 3643, -5162, -5162, 52046, 84287, + -5162, -5162, -5162, -5162, -5162, 4228, 22070, -5162, 51354, -5162, + 1084, 16038, -5162, 1679, 1641, 521, -5162, -5162, -5162, -5162, + -5162, 16038, 84287, 56826, 3645, 3739, 3665, 3044, 48564, 84287, + 69046, 84287, 84287, 84287, 69046, 51354, 69046, -5162, -5162, -5162, + 1163, 1696, 84287, 1696, 1908, 4296, -5162, 1921, 1921, -5162, + -5162, -5162, 77947, -5162, -5162, -5162, 1696, 84287, 84287, 1696, + 50661, -5162, 1908, 2219, -5162, 3947, 3748, -5162, -5162, -5162, + 3999, -5162, -5162, 4343, 3681, -5162, 4031, -5162, -5162, 3782, + -5162, -5162, 69046, -5162, -5162, 1908, -5162, 1908, 1908, 22070, + 1696, 1696, 1696, 2445, -5162, 3691, -5162, 3694, -5162, -5162, + 4048, 3693, 4337, 3700, -5162, -5162, 4274, 1397, 4233, -5162, + 4123, -5162, 4256, -5162, 22070, 3906, 2989, -5162, -5162, 3975, + -5162, 3976, 3977, 3981, -5162, -5162, -5162, -5162, 4135, 3985, + -5162, 2471, 3988, -5162, -5162, 3720, -5162, -5162, -5162, 31837, + 80483, -5162, 3723, -5162, 3741, -5162, -5162, -5162, 87457, -5162, + 86823, -5162, 2471, -5162, -5162, -5162, 69046, 4223, -5162, 2471, + 1905, 84287, -5162, -5162, -5162, -65, -5162, -5162, -5162, 3834, + 315, -5162, -5162, -67, 2238, 3915, -5162, -5162, -5162, 80483, + -5162, -5162, -5162, -5162, -5162, 4414, -5162, 52046, 50661, 80483, + 84287, 84287, 84287, 69046, 69046, 3044, 84287, 3044, -5162, -5162, + 3044, -5162, 3044, 3044, 3772, -5162, -5162, -5162, -5162, 220, + 1747, 4477, -5162, 1342, -5162, 2846, 1342, 3973, 4028, -5162, + 4412, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, 3759, 4082, -5162, -5162, -5162, 3753, -5162, + 3749, 2953, 3309, -5162, -5162, -5162, -5162, -5162, -5162, 26594, + 2719, -5162, 2989, -5162, -5162, -5162, 208, -5162, -5162, -5162, + 2017, 4115, 2355, -5162, 80483, 2355, 1759, 1733, -5162, 3757, + 2471, 2265, -5162, 2265, -5162, -67, -5162, 4056, -5162, 4058, + 443, -5162, -5162, -5162, -5162, -5162, 69046, 3761, -5162, 3946, + 3764, 3767, 2989, 2989, -5162, 6323, 4499, 4239, 6478, 190, + 3814, -5162, -5162, -5162, -5162, -5162, 69046, -5162, -5162, 1545, + 3399, 4253, 3774, -5162, 2217, -5162, -5162, -5162, 2380, -5162, + -5162, -5162, 3882, 521, 3882, -5162, -5162, 2662, 144, -5162, + -5162, -5162, 144, -5162, 467, -5162, -5162, -5162, -5162, 546, + 47274, 4520, 4165, 3846, 3882, -5162, 4247, 416, -5162, -5162, + 144, 2238, -5162, -5162, 3882, -5162, -5162, -5162, 2238, 144, + -5162, 4248, -5162, -5162, -5162, 144, 3882, 88725, 1861, 416, + -5162, -5162, 416, 144, 136, 84287, 55472, -5162, 4336, -5162, + 546, 4520, 416, 3882, 144, 4375, -5162, 144, 22070, 22070, + -5162, -5162, -5162, 255, 4205, 3862, -5162, 3786, -5162, -5162, + 447, -5162, 4372, 84287, 4462, 73509, -5162, 69046, -5162, 84287, + 1501, 3794, -5162, -5162, -5162, -5162, -5162, 521, -5162, 3795, + 242, 69046, 69046, 6323, -5162, 3799, -5162, -5162, 84287, -5162, + -5162, -5162, -5162, 4295, 772, 32479, 67144, -5162, 67144, 67144, + -5162, -5162, -5162, -5162, -5162, 1124, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, 49257, 2989, -5162, 69046, -5162, 4448, 366, + -5162, 345, 69046, -5162, -5162, 22070, -5162, 4443, 84287, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, 84287, 2484, 2989, + 84287, 49963, -5162, 88725, 6323, 6323, 22070, 1515, 22070, -5162, + 3804, -5162, 3807, 3808, 3360, 4163, 22070, 22070, -5162, 2808, + 1108, 292, -5162, 3815, 3823, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, 3826, -5162, -5162, -5162, 354, 400, 3828, + -5162, 3831, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, 4502, -5162, 449, -5162, -5162, 300, 304, 422, + 436, 444, 3847, 453, 3591, 2248, 3841, 65876, 85555, 4326, + 3836, 1333, 4326, 3843, 502, 1935, 535, -5162, 1962, 1965, + 3552, -5162, 566, 758, 825, -5162, -5162, 3851, 3852, 307, + 4326, 3853, 19054, 19808, 20562, 3803, 3855, 3860, 3861, 1137, + 1984, 4326, 3863, 1991, 2394, 2000, 85555, 1186, 2061, 1228, + -5162, 2530, 1231, 1262, 1293, 1430, 2066, 2070, 1614, 1729, + 1739, 2557, -5162, -5162, -5162, -5162, 3845, 2082, 2098, 3867, + 3864, 2595, 2139, 2193, 2228, 2611, 2665, 2698, 69046, 3869, + 2263, 2274, 1773, 2729, 69046, 2277, 2294, 1777, -5162, 2348, + 3871, 1808, 310, 3875, 3876, 2375, 3878, 1817, -5162, 85555, + 84287, 3879, 3824, 313, 297, 1834, 2425, 4394, 4394, -5162, + 22070, 432, 258, 85555, 1641, -5162, 4377, 3416, 2027, -5162, + -5162, -5162, -5162, -5162, -5162, 640, -5162, 3857, -5162, 3883, + 3429, 3887, 22070, 4095, 3887, 571, 3687, 579, 579, 28856, + 3295, 3217, 22824, 571, 22824, 571, 3887, 3887, 3887, -5162, + 28856, 3885, 28856, 28856, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, 4421, 3886, 1255, 3888, -5162, -5162, -5162, -5162, -5162, + -5162, 48, 4292, -5162, 4073, 1144, 22070, 2471, -5162, 3907, + 4399, 4403, 4404, -5162, -5162, -5162, -5162, 51354, 51354, 69046, + 4389, 22070, -5162, 1072, 3898, -5162, -5162, 4571, 52046, 4576, + -5162, 3911, 33121, 67144, 67144, 67144, 84287, 84287, 16038, 56149, + 4586, 4587, 521, -5162, 2989, 521, -5162, 3919, 3920, -5162, + -5162, 1536, 4195, -5162, 3921, 3923, -5162, 3914, 3928, 3930, + 59534, 22070, -5162, 521, 1679, -5162, -5162, -5162, -5162, -5162, + 3925, 84287, 84287, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, 2471, 22070, 84287, 1696, -5162, -5162, -5162, 1696, + 2471, 4595, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 4278, + -5162, 81751, 4479, 1448, -5162, 3936, -5162, -5162, -5162, -5162, + -5162, 1696, -5162, -5162, -5162, -5162, -5162, 4106, 4028, 2648, + 4296, -5162, 1908, 69046, 1696, 1696, 2989, -5162, -5162, -5162, + -5162, 84287, 4474, 4475, -5162, 3943, -5162, -5162, -5162, 69046, + -5162, 6323, 84287, 84287, -5162, 7710, -5162, 80483, 57503, 69046, + -5162, -5162, -5162, 2761, -5162, -5162, -5162, -5162, -5162, -5162, + 2989, -5162, 21316, 4648, -5162, -5162, -5162, -5162, 2471, -5162, + -5162, 7026, -5162, 69046, -5162, 63340, -5162, 63340, 2295, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, 209, 232, 1742, 3973, -5162, -5162, 69046, 1133, 345, + -5162, 4705, -5162, -5162, -5162, -5162, -5162, 3950, -5162, 4000, + -5162, -5162, -5162, 3954, -5162, 4627, -5162, -5162, 225, 1115, + 443, -5162, 1047, 4550, 4551, -5162, -5162, 84287, -5162, 84287, + 84287, -5162, 3044, -5162, -5162, 3044, 69046, 3044, -5162, 84287, + -5162, 84287, -5162, 84287, -5162, 3044, -5162, -5162, -5162, 4466, + 4466, -5162, 62072, -5162, -5162, 4452, 4612, -5162, 84287, -5162, + -5162, 2465, -5162, 4639, -5162, -5162, 4372, -5162, 3986, -5162, + 22070, -5162, 3978, 3983, -5162, -5162, -5162, -5162, -5162, -5162, + 3309, 495, 16038, -5162, 521, 521, 4197, 4504, 4506, 4116, + 2471, 4513, 4514, 4515, -5162, -5162, -5162, 2471, 2471, -5162, + -5162, 521, -5162, 2340, -5162, -5162, -5162, -5162, 4265, 2341, + -5162, 521, 521, -5162, 2246, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, 1750, -5162, -5162, 245, 1675, 50661, 4467, 4589, + 4005, -5162, 69046, 4677, -5162, -5162, 22070, 4508, 7236, -5162, + -5162, 4239, -5162, 4026, 4033, 4035, 4036, 4037, 4039, 4040, + 4043, 4044, 4045, 4051, 4052, 4057, 4059, 4060, 4061, 4062, + 4065, 4069, 4070, 4076, 4077, 4079, 4080, 4038, -5162, -5162, + 4110, -5162, -5162, -5162, -5162, 521, 521, 521, 521, -5162, + 4457, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 4301, + 3024, 84287, 4680, 4418, 4072, 4075, 4090, 4091, -5162, -5162, + 84287, -5162, 2787, 4533, 4559, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, 521, -5162, -5162, -5162, -5162, 2815, + -5162, -5162, 2822, -5162, -5162, -5162, -5162, 7621, -5162, 2832, + -5162, -5162, -5162, -5162, -5162, 1861, 1861, 4071, -5162, -5162, + -5162, 4096, -5162, -5162, -5162, -5162, 4520, -5162, 4092, -5162, + 2989, 2989, 71582, -5162, -5162, -5162, -5162, 2299, -5162, -5162, + 2518, 84287, 4573, 73509, -5162, 22070, 4723, -5162, -5162, 2445, + -5162, 4097, -67, -5162, -5162, 52046, -5162, 80483, 51354, -5162, + -5162, -5162, 4098, 1515, 8004, -5162, -5162, 4793, -5162, 2839, + -5162, 50661, 4552, -5162, 67144, 4105, -5162, 4108, 4608, 4611, + 4615, 4616, -5162, 1072, -5162, -5162, 4120, -5162, -5162, 4274, + 4466, 4141, 4393, 4512, -5162, -5162, -5162, 2989, -5162, -5162, + 4767, -5162, -5162, -5162, 2853, 3992, -5162, -5162, -5162, 4478, + -5162, 90277, 90277, 90277, -5162, 1868, -5162, 22070, -5162, -5162, + 22070, -5162, 2989, 3685, 3524, 47274, -5162, 47274, 3524, 22070, + -5162, 4128, -5162, 4776, 4777, -5162, -5162, 22070, -5162, 22070, + -5162, 22070, -5162, 22070, 22070, 22070, 22070, 22070, 22070, -5162, + 28856, -5162, 4131, 4136, -5162, -5162, 4138, -5162, 22070, -5162, + 22070, -5162, -5162, 22070, 22070, 22070, 22070, -5162, -5162, 22070, + 22070, 4139, -5162, 22070, 3837, 22070, 3904, 22070, 4093, 22070, + -5162, -5162, -5162, 24332, -5162, 4140, -5162, -5162, -5162, -5162, + -5162, 22070, -5162, 22070, -5162, 22070, 22070, 22070, 22070, 22070, + -5162, -5162, 22070, 22070, 22070, -5162, 22070, -5162, 4717, 22070, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, 22070, -5162, -5162, -5162, -5162, 22070, -5162, 409, + 25086, -5162, 22070, 22070, 22070, -5162, -5162, 22070, 4142, 4144, + -5162, 84287, -5162, 22070, 2751, 2255, 345, 4145, 22070, -5162, + 4152, 4154, 3414, -5162, 493, 2801, -5162, -5162, -5162, 2434, + -5162, -5162, -5162, 88091, 22070, -5162, -5162, -5162, -5162, -5162, + 28856, 326, 4146, 26594, -5162, 3687, 4394, 4394, 3543, 22070, + 4095, 3687, 84287, 4884, 4151, -5162, 22070, 85555, 22070, 4157, + 4159, -5162, 4153, 28856, -5162, -5162, 4164, -5162, 2895, 2255, + 4249, 4605, -5162, 2989, -5162, 31837, 4664, -5162, -5162, 69046, + 2367, -5162, 3454, 3454, 63974, -5162, -5162, -5162, 4703, 84287, + 4363, -5162, 51354, 50661, 67144, 4840, 4842, 4843, 4844, 521, + 521, -5162, -5162, 38799, 51354, 16038, -5162, 4679, 4682, -5162, + -5162, 981, 4465, 4733, -5162, -5162, -5162, 4176, -5162, -5162, + -5162, -5162, 1113, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, 2989, 16038, -5162, 3645, 4182, 34533, 923, -5162, -5162, + -5162, 2989, -5162, -5162, -5162, -5162, 4198, -5162, 79215, -5162, + 4523, 79215, 79215, 85555, -5162, -5162, 4775, -5162, -5162, 4595, + 3973, 1908, -5162, -5162, 2542, 4191, 4831, 4832, -5162, 4778, + 3457, 4778, -5162, -5162, 4191, 66510, 2445, 4205, 8714, -5162, + 2861, -5162, 4949, 4193, 4655, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, 4202, -5162, 16038, 2719, -5162, + 4201, -5162, 2989, -5162, 4219, -5162, -5162, -5162, 4098, 455, + 4220, 4204, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 4028, + 199, -5162, -5162, -5162, -5162, -5162, 1368, -5162, -5162, -5162, + -65, 3182, -5162, 504, 345, 4442, -5162, -5162, 231, 4657, + -5162, 4467, 4882, 1485, 1485, 4798, 69046, 69046, 5019, 4265, + -5162, 2464, 1212, -5162, -5162, -5162, -5162, 84287, -5162, 84287, + -5162, -5162, 768, -5162, 69046, -5162, -5162, -5162, 80483, 4211, + -5162, -5162, 4207, -5162, 22070, -67, 4327, -5162, -5162, -5162, + 2434, 4952, 4876, 4028, -5162, 2989, -5162, 4213, 21316, 4222, + 4224, -5162, -5162, 1342, -5162, 4225, -5162, 2953, -5162, 55472, + 46625, -5162, 4593, 4594, 2165, -5162, -5162, -5162, -5162, -5162, + -5162, 4118, 1733, -5162, 521, 521, -5162, 318, 521, -5162, + -5162, 1230, -5162, -5162, 1634, 497, 4265, -5162, 2471, 2471, + 2471, 2471, 345, 2471, 2471, 2889, -5162, 4118, 4118, 2265, + -5162, 1025, -5162, -5162, -5162, -5162, 6203, 204, -5162, -5162, + 80483, -5162, 4724, 4727, -5162, 4728, -5162, -5162, 235, -5162, + 3419, -5162, 1140, -5162, 4780, 84287, 4980, 4005, -5162, 1276, + 2989, -5162, 22070, -5162, 4230, 4235, 345, 4241, 345, 345, + 2471, 2471, 4198, 2471, 345, 2471, 2471, 2471, 2471, 2471, + 2471, 2471, 345, 2471, 1807, 2512, 2471, 345, 6478, -5162, + 2471, 2255, 4118, 4118, 3399, -5162, 4896, 521, -5162, 4398, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 2891, + 44472, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + 4827, -5162, -5162, -5162, 546, 2238, 546, -5162, -5162, 88725, + -5162, -5162, 84287, 4828, -5162, -5162, -5162, -5162, 4030, -5162, + -5162, -5162, 4560, -5162, -5162, -5162, -5162, -5162, -5162, 559, + -5162, 28856, -5162, -5162, -5162, 4251, 2445, 1042, 2989, 78581, + 4785, 3973, 4259, -5162, -5162, -5162, -5162, -5162, -5162, 1909, + 4860, -5162, 4258, 22070, -5162, -5162, 84287, 1119, 4440, 4750, + 4271, 74143, 50661, 50661, 50661, 50661, -5162, 4847, 69046, -5162, + 4911, -5162, -5162, -5162, -5162, -5162, 22070, -5162, -5162, 2484, + 4692, 90277, 4880, -5162, -5162, -5162, -5162, -5162, 22070, 2989, + 2989, 22070, 3482, 3482, 3486, 3502, -5162, -5162, 4906, 3482, + 3482, -5162, 3482, 4907, 3482, 3482, 4268, -5162, -5162, 4272, + 4276, 4277, 3414, -5162, 22070, 22070, 2429, 223, 2476, 2525, + 1883, 1886, 333, -5162, 2587, 3674, -5162, -5162, 2594, 2628, + 2650, 2654, 1907, 2680, 427, 342, -5162, 2989, 22070, 2989, + 22070, 2989, 22070, 2989, 22824, 2702, -5162, 2914, 3462, -5162, + 2922, 3917, 2712, 371, 2733, 1918, 2936, 376, 2741, 2748, + 2755, 2952, -5162, 2678, 4868, 2964, 22824, 2804, 2896, 1924, + 1939, 2957, 85555, 84287, 4264, 3055, 4281, 4281, 355, -5162, + 4280, -5162, -5162, -5162, 4282, -5162, 3062, 22070, 22070, 4412, + -5162, 2625, 493, 4286, 3931, 4816, -5162, 1342, -5162, 1423, + 432, -5162, 4283, 2989, 4287, -5162, -5162, 22070, -5162, -5162, + -5162, -5162, 28856, 415, 4291, -5162, 4421, -5162, 22070, -5162, + 4874, 4297, 3414, -5162, 2989, -5162, -5162, 84287, 4298, 3687, + -5162, 22070, 4198, -5162, -5162, 5036, 4302, 4319, 4307, 4164, + -5162, 51354, -5162, 4853, 66510, 3753, 3753, 1208, 4308, 2966, + 4841, -5162, -5162, -5162, 4309, -5162, 3002, -5162, 4989, 3795, + -5162, 4990, 50661, 50661, 50661, 50661, 16038, 16038, -5162, -5162, + -5162, 4323, 4324, 87, 4885, -5162, -5162, -5162, -5162, 84287, + 84287, 16038, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + 2780, -5162, 4028, -5162, -5162, 79215, -5162, -5162, -5162, -5162, + -5162, -5162, 1696, -5162, -5162, 4325, 361, 2801, -5162, -5162, + -5162, 2445, 4087, 854, -5162, -5162, -5162, 4963, 4778, 4778, + 4191, 4965, 4238, 4329, -5162, 521, -5162, 5006, 4954, -5162, + 84287, 4342, -5162, 4811, -5162, 4344, 82385, -5162, 21316, 4348, + -5162, 4905, -5162, -5162, 3517, 63340, 4350, -5162, 4575, -5162, + -5162, -5162, 4366, -5162, 4352, 4444, 4445, -5162, -5162, -5162, + 50661, -5162, 4730, -5162, -5162, -5162, -5162, -5162, 69046, -5162, + -5162, 4714, 69046, 521, 521, 521, 521, 521, 4396, 521, + 521, 521, 521, 521, 4719, 521, 521, 521, 521, 521, + 521, 521, 521, 521, 521, 1954, 84287, 521, 521, 40940, + -5162, -5162, 4931, -5162, 4807, -5162, -5162, -5162, 521, 6757, + 4265, 2464, -5162, -5162, -5162, 2471, -5162, 1212, -5162, -5162, + 4362, 84287, -5162, 4005, 4507, 4364, 669, -5162, 1541, -5162, + 62072, 84287, 2989, 4374, 1969, -5162, 4606, 4378, -5162, -5162, + 22070, -5162, 4408, -5162, -5162, 42297, -5162, 74777, -5162, -5162, + -5162, 21316, -5162, 3309, 4225, 4379, 2065, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, 409, 409, -5162, -5162, 409, 409, + -5162, -5162, -5162, -5162, 409, 409, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, 2341, -5162, -5162, -5162, 1750, + -5162, 6004, 4779, 4951, 4779, 4955, 4879, 3458, 521, 4960, + 5127, -5162, 288, 521, 4966, 5029, 4472, 5035, 4973, -5162, + 4480, 4779, 4975, 4591, 4982, 4984, 4985, -5162, -5162, 6766, + -5162, -5162, -5162, -5162, 296, 67778, -5162, -5162, -5162, -5162, + -5162, 4916, 483, -5162, -5162, -5162, -5162, 1009, 345, 345, + 345, 2512, 3023, -5162, 3419, 2812, 1896, 4912, 2681, -5162, + 3020, -5162, 5170, -5162, 271, -5162, -5162, 2989, 419, 511, + -5162, 587, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + 84287, 4118, 3024, -5162, -5162, 84287, 3482, 3482, 3482, 3498, + 3482, 134, 4228, -5162, -5162, -5162, -5162, -5162, 531, 3482, + 3482, 3482, -5162, -5162, 4420, -5162, -5162, -5162, -5162, -5162, + -5162, 71582, -5162, -5162, -5162, 3687, 73509, 3973, -5162, 4765, + 4967, 3759, -5162, -5162, -5162, -5162, 4087, -5162, 2989, -5162, + -5162, 5093, -5162, -5162, 50661, -5162, -5162, 443, 443, 443, + 443, 2975, 4784, -5162, -5162, -5162, 4911, 4707, -5162, 2435, + 2989, -5162, -5162, -5162, -5162, 6323, 333, 2989, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, 4436, 4394, 4394, -5162, 5174, 4974, -5162, + -5162, 22070, 22070, -5162, 22070, -5162, 1267, 4441, 4914, -5162, + -5162, -5162, -5162, 22070, -5162, 22070, -5162, -5162, 22070, 2989, + 2989, 2989, 4394, -5162, -5162, 3389, -5162, -5162, 3524, -5162, + -5162, 22070, -5162, 22070, -5162, 22070, -5162, 22070, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, 524, 4394, -5162, -5162, + 22070, 22070, -5162, -5162, -5162, 84287, -5162, 2255, 4449, 4725, + -5162, -5162, -5162, 2255, 4577, -5162, -5162, 2255, 345, -5162, + -5162, -5162, -5162, 3759, 2625, -5162, 4450, 2820, -5162, -5162, + -5162, -5162, -5162, -5162, 4453, 84287, -5162, 3036, -5162, -5162, + 22070, -5162, 5034, 4454, 1969, 5191, 4456, -5162, 42297, -5162, + 4460, 4461, -5162, -5162, -5162, 4394, -5162, 5082, 5032, -5162, + 2255, 84287, -5162, -5162, -5162, 4463, -5162, 521, 4087, -5162, + 3371, 1208, 66510, -5162, 75411, 2737, 4082, -5162, 84287, 50661, + 50661, 3911, 3911, 3911, 3911, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, 521, 521, -5162, 34533, 56149, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, 4028, -5162, -5162, 3454, 5006, -5162, + -5162, 2434, 1342, 3943, 432, -5162, 4191, 5099, 5101, -5162, + 4191, -5162, -5162, 66510, 3973, 21316, 2668, 6205, -5162, -5162, + -5162, -5162, 4811, -5162, 37327, -5162, 4470, -5162, 4471, -5162, + -5162, 2411, 4803, 5087, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 21316, + -5162, 2471, 2749, -5162, -5162, -5162, 4501, -5162, 4481, 4482, + 521, -5162, 317, 367, 399, 439, -5162, -5162, 4198, 345, + 345, 2471, 2471, 521, 345, 80483, 2140, 345, 4198, 4198, + 456, 2471, 1240, 317, -5162, -5162, -5162, 345, 317, 70314, + 69046, 5143, 84287, 4476, 4483, 4487, -5162, -5162, -5162, -5162, + -5162, 2622, -5162, 5031, 3044, 2761, 2761, -5162, 4485, 457, + -5162, -5162, 7672, -5162, 53423, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, 454, 5071, 5244, -5162, -5162, -5162, + 5037, -5162, -5162, -5162, -5162, 4596, 4005, 46625, -5162, -5162, + -5162, 22070, -5162, -5162, -5162, -67, 4493, 1120, 22070, 84287, + -5162, 83019, -5162, -5162, -5162, -5162, 2382, -5162, 21316, 4495, + 4497, -5162, -5162, 1342, 2672, 1342, 4500, 2953, -5162, -5162, + 3309, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 68412, + 3044, -5162, 5143, 4539, -5162, -5162, -5162, 5155, 2633, 244, + 2633, 37327, 1541, 1332, 5138, 2497, 5175, 4548, 5075, 2633, + 2633, 58180, 244, 66510, -5162, -5162, -5162, -5162, 69046, 58857, + 244, -5162, -5162, -5162, 84287, -5162, 2633, 244, -5162, 244, + 244, 37327, -5162, 8707, -5162, -5162, 41642, 1942, -5162, -5162, + -5162, 2471, -5162, -5162, -5162, -5162, -5162, 5102, 5103, -5162, + -5162, -5162, 4691, 22070, 22070, 5108, 84287, 5109, -5162, 4918, + -5162, 84287, -5162, 4087, -5162, -5162, -5162, 4822, 5033, 3040, + -5162, -5162, 3056, -5162, -5162, 3067, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 546, 5069, + 84287, -5162, 546, 4520, 546, 4520, -5162, -5162, 4097, -5162, + -5162, 4877, 3986, -5162, 4732, 443, 5007, 5007, 5007, 5007, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 5183, 4894, + 9033, 546, 546, 546, -5162, 4544, 4545, 22070, 2238, 5172, + 3065, 1952, 3070, 4829, 4781, -5162, 4710, -5162, 3093, 3126, + 3199, 751, 3486, -5162, -5162, -5162, -5162, 5188, 3482, -5162, + 5284, -5162, 3482, -5162, -5162, -5162, -5162, -5162, -5162, 4554, + 3215, 2989, 2989, 3253, -5162, -5162, -5162, 3073, 2161, 3262, + 3268, -5162, -5162, -5162, 4558, -5162, -5162, 322, -5162, 4561, + 3986, -5162, -5162, -5162, 4412, 2434, -5162, -5162, 3078, 5296, + 2313, 22070, -5162, 22070, -5162, -5162, -5162, 84287, 4658, 1319, + -5162, 3086, -5162, -5162, 4566, 66510, 21316, 2434, -5162, -5162, + -5162, 2737, -5162, 4555, 1342, 2442, 1342, -5162, 3759, -5162, + -5162, 3911, 3911, 16038, 16038, -5162, -5162, -5162, -5162, 4082, + 3753, 6628, 432, -5162, -5162, -5162, 4381, 5049, 4191, 4191, + 4695, 5050, 22070, 4572, -5162, 4372, -5162, -5162, 4771, 2518, + 2518, -5162, -5162, -5162, 71582, -5162, -5162, 4574, 4578, -5162, + -5162, -5162, 82385, -5162, 3094, -5162, -5162, 5325, 3115, -5162, + -5162, 80483, 4579, 84287, 84287, 2471, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, 4581, -5162, -5162, -5162, -5162, + -5162, 2471, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, 4582, 4588, -5162, + 482, -5162, 41642, 4590, 5207, 5209, 2761, -5162, 3044, 69046, + -5162, 70314, -5162, 3044, 3044, 7061, 84287, -5162, 5329, -5162, + -5162, -5162, -5162, -5162, -5162, 1351, 84287, 3050, -5162, -5162, + 2469, 4704, -5162, 84287, -5162, -5162, 2471, 5337, -5162, 4991, + 1969, -5162, 22070, 4592, 4598, -5162, -5162, -5162, -5162, 2989, + 5347, 4603, -5162, -5162, -5162, 76045, -5162, -5162, 21316, -5162, + 5237, -5162, -5162, -5162, -5162, 3309, -5162, -5162, -5162, 2812, + 244, -5162, 2812, -5162, 70314, 37327, 70314, -5162, 46625, 70314, + 2633, 84287, -5162, -5162, 5231, 70314, 70314, -5162, -5162, 37327, + 4607, -5162, 1969, 2821, -5162, -5162, -5162, 2255, 5068, 70314, + 37327, -5162, 37327, -5162, 4254, 2046, -5162, 4610, 84287, -5162, + -5162, -5162, -5162, -5162, -5162, 2989, 4394, 4997, -5162, -5162, + 4716, 2471, 4968, -5162, 505, -5162, 84287, 278, -5162, -5162, + 345, -5162, 345, -5162, 345, -5162, -5162, 420, -5162, -5162, + -5162, -5162, -5162, -5162, 5007, 1418, -5162, -5162, -5162, -5162, + -5162, -5162, 5245, 5116, 90277, 5233, -5162, -5162, -5162, -5162, + -5162, 4614, 1969, -5162, -5162, 4618, 79215, -5162, -5162, 22070, + -5162, 4851, -5162, 4956, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, 546, -5162, -5162, -5162, -5162, 4198, -5162, + -5162, -5162, 4628, -5162, 345, 4372, -5162, -5162, 22070, -5162, + -5162, 4629, 4400, 1969, 1969, -5162, 345, -5162, 4605, 4631, + 84287, -5162, 5032, -5162, -5162, -5162, -5162, -5162, 1342, -5162, + -5162, 76679, -5162, -5162, -5162, -5162, 3986, -5162, -5162, 3759, + -5162, -5162, 4632, -5162, 5114, -5162, -5162, -5162, 5117, 2989, + 84287, 4723, 2518, 5380, 5131, -5162, 1671, -5162, 121, -5162, + 84287, -5162, -5162, 4198, 4999, -5162, -5162, 4835, 84287, 3128, + 1969, 4646, 3139, -5162, 69046, -5162, -5162, 84287, 2434, -5162, + 6766, -5162, 22070, 3044, -5162, -5162, 70314, 4649, 5119, 761, + 70314, 70314, -5162, 5381, -5162, 4644, -5162, 120, 90736, -5162, + -5162, 5003, 1351, -5162, 2783, 4660, 4654, -5162, -5162, -5162, + 5353, 2464, -5162, -5162, -5162, 5249, 1896, -5162, 4668, 4663, + 8139, 3050, -5162, -5162, 2323, 5293, -5162, 2989, -5162, -5162, + 4671, 84287, -5162, -5162, -5162, 2434, 1342, 5351, -5162, 5354, + 1311, -5162, 70314, 1545, 4228, -5162, 70314, 4578, -5162, -5162, + 1909, -5162, 66510, -5162, -5162, -5162, 5180, 1942, -5162, 84287, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 4681, + 2953, 5144, 3142, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, 142, 84287, -5162, 4872, -5162, 1418, -5162, 5166, 69046, + -5162, -5162, 22070, -5162, -5162, -5162, 1464, 3300, -5162, -5162, + -5162, 4684, -5162, 4687, 4028, 4374, -5162, 5866, 4820, 4399, + 4403, 4404, 4871, 5039, -5162, 4873, -5162, -5162, -5162, 4698, + 28856, -5162, 1751, -5162, -5162, -5162, -5162, 2434, 3986, 5006, + 22070, 4700, 22070, 4708, 3148, -5162, -5162, 2518, 2518, -5162, + 1800, 4702, -5162, -5162, -5162, 5118, 4709, 3155, -67, 84287, + -5162, 5299, -67, 4706, 4711, -5162, -5162, 4931, 3304, 70314, + 5119, 1811, 84287, 5324, 1485, -5162, 1485, -5162, -5162, 3933, + -5162, -5162, 5254, 84287, 5176, -5162, -5162, -5162, 90736, 1789, + -5162, -5162, -5162, 4712, 4715, -5162, 4718, -5162, -5162, -5162, + -5162, 5291, -5162, 45199, -5162, 84287, -5162, -5162, -5162, 5108, + -5162, -5162, 2464, -5162, 5453, 5461, 5409, 5464, 2323, -5162, + 2531, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 70314, -41, + -5162, 5431, 5437, 1942, -5162, -5162, -5162, -5162, 244, -5162, + 69046, -5162, -5162, 4578, 1368, 4833, -5162, 6323, 2737, 4681, + 4737, 2391, 1423, -5162, -5162, 1394, -5162, -5162, 84287, 83653, + -5162, -5162, 5311, -5162, -5162, -5162, 4205, 90277, 1969, 79215, + 79215, -5162, -5162, -5162, 1342, 996, -5162, 5495, 1670, -5162, + -5162, 726, -5162, -5162, 84287, 4743, 4830, -5162, -5162, 4812, + -5162, -5162, 3406, -5162, 4412, 6628, 2989, 84287, 2989, 84287, + -5162, -5162, -5162, -5162, 2761, -5162, 2761, -5162, 1800, -5162, + -5162, -5162, 2341, -67, 2041, 1969, 4745, 2049, -5162, 84287, + 457, -5162, -5162, -5162, 1485, 3181, -5162, 987, 5338, -5162, + 4751, -5162, 4753, 4754, -5162, 5388, -5162, 2471, -5162, 4834, + -5162, 3933, -5162, -5162, -5162, 4794, 5389, 5349, 521, 80483, + 31117, -5162, 5243, -5162, 5202, 5463, -5162, 5514, 5327, -5162, + -5162, -5162, -5162, -5162, 228, 254, 2288, 1789, -5162, -5162, + -5162, -5162, 84287, -5162, 84287, 84287, -5162, 3498, 461, -5162, + -5162, -5162, 49963, -5162, 2681, -5162, -5162, 2238, 2238, 5501, + 2238, -5162, 5503, 5505, 2531, -5162, 5381, 2255, 5032, -5162, + -5162, 31117, -5162, -5162, -5162, 5411, -5162, 22070, 5121, -5162, + -5162, 2442, 1342, 1342, 4772, 2953, -5162, -5162, 2737, -5162, + 4969, 5507, 5508, -5162, -5162, 3188, -5162, -5162, 4836, 66510, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, 5866, -5162, -5162, + 4910, 2088, -5162, 3212, -5162, -5162, -5162, 2255, -5162, 4782, + -5162, 5139, 521, 521, 5145, 521, 521, 521, 521, 4787, + 3406, -5162, 5132, -5162, -5162, 3228, 3230, 5454, 5454, -5162, + 3242, 1661, 4978, 2471, 521, 1284, 2041, -5162, -5162, 521, + -5162, -5162, 1284, 2049, -5162, -5162, 4790, -5162, 4797, 4799, + -5162, -5162, 84287, -5162, -5162, -5162, 1968, -5162, 84287, 4801, + 84287, 84287, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 54109, + -5162, 2512, 2512, 22070, -5162, -5162, -5162, -5162, -5162, 3349, + 5387, -5162, 4839, 1662, 521, -5162, 4909, 4802, -5162, 4804, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 5339, 84287, + -5162, -5162, 69046, 4918, -5162, -5162, -5162, 2238, -5162, 2238, + 2238, -5162, -5162, -5162, 3246, -5162, -5162, 4805, 2989, 22070, + -5162, 1342, 2550, -5162, -5162, -5162, -5162, 2737, -5162, 2442, + -5162, -5162, 505, -5162, 4996, 5004, -5162, 83653, -5162, 4809, + -5162, 521, 1541, -5162, -5162, -5162, -5162, -5162, 84287, -5162, + 4814, -5162, -5162, 230, 521, 2471, 2471, 521, 2913, 2913, + 2255, 80483, 4888, -5162, -5162, 521, -5162, -5162, 2764, -5162, + -5162, -5162, 1485, 1485, 1284, 1661, -5162, -5162, -5162, 3870, + -5162, 345, -5162, 5436, 5259, -5162, 54795, -5162, -5162, -5162, + 84287, 84287, 4818, -5162, 1190, 1190, 3251, 84287, 3263, 3269, + -5162, -5162, -5162, -5162, -5162, -5162, 4825, 4819, -5162, 1492, + -5162, -5162, 4909, -5162, -5162, -5162, -5162, 5171, -5162, 4362, + 4364, -5162, 474, 5251, 5497, 5185, -5162, -5162, -5162, -5162, + 5032, 2989, -5162, 2434, 1342, -5162, -5162, -5162, -5162, -5162, + 66510, 21316, -5162, 4830, -5162, -5162, 3275, -5162, 25840, -5162, + -5162, -5162, 2471, -5162, -5162, 2471, -5162, -5162, -5162, -5162, + -5162, 3292, -5162, 80483, 5564, -5162, 5567, 4837, 4838, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, 3314, 3350, 84287, -5162, -5162, 448, 5280, 5419, 5420, + 1661, 3355, 2041, 2049, -5162, 1688, -5162, 2774, 2774, 1944, + -5162, -5162, -5162, 84287, -5162, 5037, 172, 84287, -5162, -5162, + -5162, 3357, -5162, -5162, -5162, -5162, 5373, -5162, -5162, 4814, + -5162, 4845, -5162, 3687, -5162, -5162, 80483, -5162, 4888, -5162, + -5162, -5162, 82385, 82385, 5031, 1661, 3372, -5162, -5162, -5162, + 5323, 5542, -5162, 1661, -5162, -5162, -5162, 4854, -5162, 2774, + -5162, -5162, -5162, -5162, -5162, 1985, 84287, 84287, -5162, 3050, + -5162, -5162, -5162, 5413, -5162, -5162, -5162, -5162, 5149, 4991, + -5162, 25840, 4855, 3406, -5162, -5162, 4856, 3382, -5162, -5162, + 1661, 1190, 1190, -5162, -5162, -5162, -5162, 1985, -5162, -5162, + -5162, -5162, 3050, 4901, 5198, 5541, 5595, 5293, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 4994, + 2238, 5513, -5162, -5162, 5458, 4870, 45, 2404, 60168, 5400, + -5162, -5162, 80483, -5162, -5162, -5162, -5162, -5162, 80483, 3384, + -5162, -5162, 66510, -5162, -5162, 6323, -5162, -5162, 62706, 4878, + -5162, 521, -5162, -5162, 66510, -5162, -5162, 21316, -5162, -5162 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -3127,895 +3126,894 @@ means the default is an error. */ static const yytype_uint16 yydefact[] = { - 2625, 1238, 2472, 0, 522, 0, 1445, 824, 552, 2326, - 2466, 2467, 2256, 2, 594, 252, 2667, 2668, 470, 2258, - 2533, 0, 0, 590, 1461, 962, 712, 2528, 390, 0, - 0, 597, 2261, 388, 252, 3184, 2374, 0, 3281, 2315, - 0, 592, 2629, 3571, 2890, 2938, 2939, 2966, 2785, 3060, - 3082, 3108, 2872, 2874, 2873, 2875, 2876, 2877, 2878, 2879, - 2880, 2758, 2881, 2882, 2883, 2885, 2884, 2886, 2887, 2888, - 2759, 3426, 548, 2760, 2838, 2889, 2840, 2839, 2891, 2761, - 2762, 2892, 2893, 2894, 2895, 2764, 2763, 2896, 2898, 2897, - 2841, 2842, 2899, 2900, 2901, 0, 2903, 2765, 2766, 2767, - 2768, 2769, 2902, 2770, 2904, 3431, 2905, 2906, 2771, 2907, - 2908, 2909, 2910, 2912, 2911, 2913, 2914, 2916, 2917, 2918, - 2915, 2919, 2920, 2922, 2921, 2844, 2923, 2843, 2924, 2772, - 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, - 2223, 2935, 2936, 2937, 2958, 2940, 2942, 2941, 2845, 2943, - 2944, 2945, 2947, 2946, 2948, 2950, 2773, 2774, 2775, 2949, - 2951, 2952, 2953, 2954, 2956, 2955, 2960, 2961, 2846, 1461, - 2777, 2778, 2957, 2959, 2756, 2962, 2963, 2847, 2848, 2964, - 2779, 2835, 2965, 0, 2968, 2967, 85, 2969, 2781, 2970, - 2971, 2972, 2973, 2974, 2976, 2978, 2975, 2979, 2980, 2986, - 2782, 2977, 2981, 2982, 2983, 2984, 2985, 2987, 2849, 2988, - 2990, 2989, 2991, 2992, 2993, 2994, 2850, 2995, 2836, 2996, - 2997, 2998, 3011, 3012, 3002, 3003, 3005, 3006, 3009, 3004, - 3010, 3015, 3014, 3016, 3017, 3018, 3019, 3020, 3013, 3000, - 3007, 3008, 3001, 3021, 3022, 2999, 3023, 3025, 3024, 3026, - 2851, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3036, - 3035, 3037, 2852, 2853, 2854, 3038, 3039, 3040, 2829, 3041, - 2855, 2856, 3044, 3042, 3043, 3045, 3046, 3051, 3052, 3053, - 3048, 3047, 3049, 3050, 2857, 2858, 2859, 3054, 3055, 3056, - 3057, 3059, 3058, 2784, 2783, 2786, 3061, 3062, 2787, 3063, - 3065, 3064, 2831, 2788, 3066, 3067, 3069, 3068, 2860, 2861, - 2789, 2790, 2791, 3070, 3071, 3072, 3073, 3074, 3075, 3076, - 3077, 3078, 3079, 3080, 3081, 2862, 2863, 3083, 3084, 3085, - 3087, 3086, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 2792, - 3095, 1461, 3096, 3097, 2793, 3099, 3098, 2794, 3100, 3101, - 3102, 3103, 3104, 2830, 3431, 3105, 3106, 3107, 2864, 3109, - 3110, 3111, 0, 3112, 3113, 3114, 2795, 3115, 3116, 2865, - 2837, 2796, 3117, 3119, 2544, 2797, 3118, 2799, 2800, 3120, - 3121, 3122, 2798, 3123, 2801, 3124, 3125, 3127, 3126, 3128, - 3129, 3130, 2802, 3131, 3132, 2803, 3133, 2804, 3134, 3135, - 3136, 3137, 3139, 3138, 3140, 3141, 3142, 3143, 3144, 3145, - 3147, 3149, 3148, 3146, 3150, 3151, 2866, 3152, 2805, 2867, - 3157, 3158, 2868, 3153, 3154, 3155, 3156, 2351, 3159, 3160, - 3161, 2808, 3162, 3163, 3165, 3164, 2806, 2807, 3166, 3167, - 2812, 3168, 3169, 3174, 2869, 2870, 3170, 3171, 3183, 3172, - 3173, 3176, 3175, 3177, 3178, 2757, 2809, 3179, 3180, 2810, - 3181, 2811, 3182, 2871, 0, 3, 8, 21, 0, 43, - 26, 31, 16, 20, 15, 45, 58, 51, 28, 3428, - 466, 467, 468, 469, 41, 3492, 40, 11, 61, 62, + 2626, 1239, 2473, 0, 522, 0, 1446, 824, 552, 2327, + 2467, 2468, 2257, 2, 594, 252, 2668, 2669, 470, 2259, + 2534, 0, 0, 590, 1462, 962, 712, 2529, 390, 0, + 0, 597, 2262, 388, 252, 3185, 2375, 0, 3282, 2316, + 0, 592, 2630, 3572, 2891, 2939, 2940, 2967, 2786, 3061, + 3083, 3109, 2873, 2875, 2874, 2876, 2877, 2878, 2879, 2880, + 2881, 2759, 2882, 2883, 2884, 2886, 2885, 2887, 2888, 2889, + 2760, 3427, 548, 2761, 2839, 2890, 2841, 2840, 2892, 2762, + 2763, 2893, 2894, 2895, 2896, 2765, 2764, 2897, 2899, 2898, + 2842, 2843, 2900, 2901, 2902, 0, 2904, 2766, 2767, 2768, + 2769, 2770, 2903, 2771, 2905, 3432, 2906, 2907, 2772, 2908, + 2909, 2910, 2911, 2913, 2912, 2914, 2915, 2917, 2918, 2919, + 2916, 2920, 2921, 2923, 2922, 2845, 2924, 2844, 2925, 2773, + 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, + 2224, 2936, 2937, 2938, 2959, 2941, 2943, 2942, 2846, 2944, + 2945, 2946, 2948, 2947, 2949, 2951, 2774, 2775, 2776, 2950, + 2952, 2953, 2954, 2955, 2957, 2956, 2961, 2962, 2847, 1462, + 2778, 2779, 2958, 2960, 2757, 2963, 2964, 2848, 2849, 2965, + 2780, 2836, 2966, 0, 2969, 2968, 85, 2970, 2782, 2971, + 2972, 2973, 2974, 2975, 2977, 2979, 2976, 2980, 2981, 2987, + 2783, 2978, 2982, 2983, 2984, 2985, 2986, 2988, 2850, 2989, + 2991, 2990, 2992, 2993, 2994, 2995, 2851, 2996, 2837, 2997, + 2998, 2999, 3012, 3013, 3003, 3004, 3006, 3007, 3010, 3005, + 3011, 3016, 3015, 3017, 3018, 3019, 3020, 3021, 3014, 3001, + 3008, 3009, 3002, 3022, 3023, 3000, 3024, 3026, 3025, 3027, + 2852, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3037, + 3036, 3038, 2853, 2854, 2855, 3039, 3040, 3041, 2830, 3042, + 2856, 2857, 3045, 3043, 3044, 3046, 3047, 3052, 3053, 3054, + 3049, 3048, 3050, 3051, 2858, 2859, 2860, 3055, 3056, 3057, + 3058, 3060, 3059, 2785, 2784, 2787, 3062, 3063, 2788, 3064, + 3066, 3065, 2832, 2789, 3067, 3068, 3070, 3069, 2861, 2862, + 2790, 2791, 2792, 3071, 3072, 3073, 3074, 3075, 3076, 3077, + 3078, 3079, 3080, 3081, 3082, 2863, 2864, 3084, 3085, 3086, + 3088, 3087, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 2793, + 3096, 1462, 3097, 3098, 2794, 3100, 3099, 2795, 3101, 3102, + 3103, 3104, 3105, 2831, 3432, 3106, 3107, 3108, 2865, 3110, + 3111, 3112, 0, 3113, 3114, 3115, 2796, 3116, 3117, 2866, + 2838, 2797, 3118, 3120, 2545, 2798, 3119, 2800, 2801, 3121, + 3122, 3123, 2799, 3124, 2802, 3125, 3126, 3128, 3127, 3129, + 3130, 3131, 2803, 3132, 3133, 2804, 3134, 2805, 3135, 3136, + 3137, 3138, 3140, 3139, 3141, 3142, 3143, 3144, 3145, 3146, + 3148, 3150, 3149, 3147, 3151, 3152, 2867, 3153, 2806, 2868, + 3158, 3159, 2869, 3154, 3155, 3156, 3157, 2352, 3160, 3161, + 3162, 2809, 3163, 3164, 3166, 3165, 2807, 2808, 3167, 3168, + 2813, 3169, 3170, 3175, 2870, 2871, 3171, 3172, 3184, 3173, + 3174, 3177, 3176, 3178, 3179, 2758, 2810, 3180, 3181, 2811, + 3182, 2812, 3183, 2872, 0, 3, 8, 21, 0, 43, + 26, 31, 16, 20, 15, 45, 58, 51, 28, 3429, + 466, 467, 468, 469, 41, 3493, 40, 11, 61, 62, 18, 48, 12, 14, 17, 39, 47, 35, 42, 55, - 24, 25, 32, 49, 66, 22, 63, 59, 23, 2472, - 13, 27, 50, 44, 36, 60, 67, 37, 0, 2626, - 2672, 2685, 0, 2686, 2754, 2752, 2755, 2751, 2753, 56, + 24, 25, 32, 49, 66, 22, 63, 59, 23, 2473, + 13, 27, 50, 44, 36, 60, 67, 37, 0, 2627, + 2673, 2686, 0, 2687, 2755, 2753, 2756, 2752, 2754, 56, 57, 38, 65, 30, 52, 29, 9, 10, 19, 53, - 54, 46, 68, 33, 64, 34, 1272, 0, 0, 0, - 0, 0, 0, 2254, 0, 0, 1354, 0, 1596, 3490, - 3491, 3492, 1462, 0, 1463, 0, 2625, 2833, 2832, 2760, - 2762, 2816, 2763, 2819, 2820, 2813, 2772, 2821, 2834, 2775, - 2776, 2817, 2718, 2779, 2822, 2780, 2782, 2814, 2815, 2823, - 2818, 2791, 2824, 2793, 2825, 2826, 2827, 2802, 2803, 2828, - 2807, 2719, 2811, 280, 2683, 254, 2684, 2715, 2713, 2717, - 2711, 2712, 2716, 2710, 2714, 524, 130, 0, 0, 0, - 0, 0, 2346, 2254, 2252, 2254, 2254, 2254, 2254, 2254, - 0, 2254, 2254, 0, 2257, 2254, 2254, 0, 0, 0, - 515, 2264, 2535, 0, 2551, 2552, 2546, 3271, 3272, 3266, + 54, 46, 68, 33, 64, 34, 1273, 0, 0, 0, + 0, 0, 0, 2255, 0, 0, 1355, 0, 1597, 3491, + 3492, 3493, 1463, 0, 1464, 0, 2626, 2834, 2833, 2761, + 2763, 2817, 2764, 2820, 2821, 2814, 2773, 2822, 2835, 2776, + 2777, 2818, 2719, 2780, 2823, 2781, 2783, 2815, 2816, 2824, + 2819, 2792, 2825, 2794, 2826, 2827, 2828, 2803, 2804, 2829, + 2808, 2720, 2812, 280, 2684, 254, 2685, 2716, 2714, 2718, + 2712, 2713, 2717, 2711, 2715, 524, 130, 0, 0, 0, + 0, 0, 2347, 2255, 2253, 2255, 2255, 2255, 2255, 2255, + 0, 2255, 2255, 0, 2258, 2255, 2255, 0, 0, 0, + 515, 2265, 2536, 0, 2552, 2553, 2547, 3272, 3273, 3267, 477, 0, 0, 0, 0, 0, 375, 387, 390, 383, - 386, 0, 252, 1464, 477, 2324, 389, 390, 0, 3186, - 0, 2446, 390, 0, 2324, 2545, 0, 2630, 2627, 3431, - 1667, 1666, 550, 0, 2673, 0, 1440, 1472, 1398, 0, - 3432, 3433, 0, 73, 75, 2477, 412, 0, 0, 0, - 0, 2666, 0, 0, 0, 0, 1406, 0, 3433, 3443, - 0, 130, 1379, 0, 130, 2357, 0, 0, 3554, 3555, - 0, 0, 0, 3549, 0, 3556, 0, 1, 5, 0, - 0, 822, 1195, 1196, 1194, 822, 822, 0, 0, 0, - 0, 0, 3497, 3490, 3491, 3492, 2953, 2778, 3065, 2459, - 2471, 2457, 2661, 1559, 3464, 1513, 1498, 1500, 3189, 0, - 1241, 1273, 2255, 1244, 0, 0, 1246, 0, 1261, 2694, - 2693, 2692, 1258, 1257, 1256, 1254, 0, 665, 0, 1356, - 252, 0, 0, 0, 3498, 3497, 0, 1417, 2461, 2462, - 2463, 2464, 2465, 2468, 282, 0, 535, 538, 0, 527, - 530, 0, 131, 132, 1443, 1446, 0, 825, 0, 164, - 0, 366, 368, 0, 365, 367, 2741, 553, 331, 333, + 386, 0, 252, 1465, 477, 2325, 389, 390, 0, 3187, + 0, 2447, 390, 0, 2325, 2546, 0, 2631, 2628, 3432, + 1668, 1667, 550, 0, 2674, 0, 1441, 1473, 1399, 0, + 3433, 3434, 0, 73, 75, 2478, 412, 0, 0, 0, + 0, 2667, 0, 0, 0, 0, 1407, 0, 3434, 3444, + 0, 130, 1380, 0, 130, 2358, 0, 0, 3555, 3556, + 0, 0, 0, 3550, 0, 3557, 0, 1, 5, 0, + 0, 822, 1196, 1197, 1195, 822, 822, 0, 0, 0, + 0, 0, 3498, 3491, 3492, 3493, 2954, 2779, 3066, 2460, + 2472, 2458, 2662, 1560, 3465, 1514, 1499, 1501, 3190, 0, + 1242, 1274, 2256, 1245, 0, 0, 1247, 0, 1262, 2695, + 2694, 2693, 1259, 1258, 1257, 1255, 0, 665, 0, 1357, + 252, 0, 0, 0, 3499, 3498, 0, 1418, 2462, 2463, + 2464, 2465, 2466, 2469, 282, 0, 535, 538, 0, 527, + 530, 0, 131, 132, 1444, 1447, 0, 825, 0, 164, + 0, 366, 368, 0, 365, 367, 2742, 553, 331, 333, 0, 353, 0, 0, 0, 442, 348, 440, 0, 441, - 2738, 2735, 2740, 2736, 2739, 2737, 2350, 2349, 0, 2348, - 2327, 0, 2346, 0, 0, 0, 2254, 0, 0, 0, - 0, 0, 0, 252, 0, 2442, 252, 2236, 2254, 2254, - 595, 0, 3334, 3349, 3350, 1610, 3346, 3351, 0, 3348, - 3340, 0, 3344, 3338, 0, 3370, 3342, 3347, 2946, 2775, - 2960, 3074, 3078, 3094, 3097, 2827, 3140, 3328, 3313, 3329, - 0, 0, 3332, 3336, 0, 0, 2265, 2266, 2267, 1352, - 2536, 2537, 2538, 0, 2555, 0, 490, 0, 0, 0, + 2739, 2736, 2741, 2737, 2740, 2738, 2351, 2350, 0, 2349, + 2328, 0, 2347, 0, 0, 0, 2255, 0, 0, 0, + 0, 0, 0, 252, 0, 2443, 252, 2237, 2255, 2255, + 595, 0, 3335, 3350, 3351, 1611, 3347, 3352, 0, 3349, + 3341, 0, 3345, 3339, 0, 3371, 3343, 3348, 2947, 2776, + 2961, 3075, 3079, 3095, 3098, 2828, 3141, 3329, 3314, 3330, + 0, 0, 3333, 3337, 0, 0, 2266, 2267, 2268, 1353, + 2537, 2538, 2539, 0, 2556, 0, 490, 0, 0, 0, 0, 465, 479, 480, 0, 0, 486, 0, 477, 0, - 451, 463, 453, 2625, 481, 462, 455, 454, 456, 457, + 451, 463, 453, 2626, 481, 462, 455, 454, 456, 457, 458, 459, 0, 460, 461, 464, 0, 447, 448, 591, - 449, 450, 477, 2689, 1459, 0, 2615, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1610, 1610, 1610, 1607, - 0, 0, 0, 2620, 0, 0, 0, 0, 2611, 0, - 2621, 0, 0, 0, 2613, 2614, 2669, 2670, 0, 0, - 0, 0, 2618, 0, 0, 0, 0, 0, 2594, 1669, - 0, 1607, 0, 2610, 2617, 0, 2602, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1607, 2593, 0, 2612, 2619, 0, 1610, 1607, 1607, - 0, 0, 2873, 2758, 2888, 2816, 2899, 2901, 0, 2765, - 2766, 2767, 2768, 2769, 2813, 2923, 2843, 2924, 2925, 2926, - 2778, 2847, 2964, 2971, 2989, 2991, 2850, 3030, 3032, 3037, - 2852, 2853, 2854, 3042, 3043, 3056, 2831, 2860, 2861, 3072, - 3079, 3104, 2864, 3109, 3114, 3117, 3136, 2867, 3157, 3158, - 2868, 3156, 2828, 3168, 3174, 3177, 3178, 2809, 2871, 0, - 0, 0, 3475, 1668, 0, 0, 1905, 963, 1622, 1628, - 1642, 0, 1741, 1740, 1743, 1745, 1751, 1661, 1772, 1712, - 1713, 1715, 1834, 1714, 1719, 1720, 0, 1882, 1721, 0, - 0, 1718, 2607, 1717, 1716, 2608, 2609, 1711, 2647, 2683, - 0, 2671, 714, 713, 2441, 2440, 0, 2529, 402, 397, + 449, 450, 477, 2690, 1460, 0, 2616, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1611, 1611, 1611, 1608, + 0, 0, 0, 2621, 0, 0, 0, 0, 2612, 0, + 2622, 0, 0, 0, 2614, 2615, 2670, 2671, 0, 0, + 0, 0, 2619, 0, 0, 0, 0, 0, 2595, 1670, + 0, 1608, 0, 2611, 2618, 0, 2603, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1608, 2594, 0, 2613, 2620, 0, 1611, 1608, 1608, + 0, 0, 2874, 2759, 2889, 2817, 2900, 2902, 0, 2766, + 2767, 2768, 2769, 2770, 2814, 2924, 2844, 2925, 2926, 2927, + 2779, 2848, 2965, 2972, 2990, 2992, 2851, 3031, 3033, 3038, + 2853, 2854, 2855, 3043, 3044, 3057, 2832, 2861, 2862, 3073, + 3080, 3105, 2865, 3110, 3115, 3118, 3137, 2868, 3158, 3159, + 2869, 3157, 2829, 3169, 3175, 3178, 3179, 2810, 2872, 0, + 0, 0, 3476, 1669, 0, 0, 1906, 963, 1623, 1629, + 1643, 0, 1742, 1741, 1744, 1746, 1752, 1662, 1773, 1713, + 1714, 1716, 1835, 1715, 1720, 1721, 0, 1883, 1722, 0, + 0, 1719, 2608, 1718, 1717, 2609, 2610, 1712, 2648, 2684, + 0, 2672, 714, 713, 2442, 2441, 0, 2530, 402, 397, 405, 399, 401, 400, 406, 407, 408, 403, 398, 404, - 391, 0, 376, 0, 384, 3444, 0, 0, 477, 598, - 2325, 2269, 0, 2268, 409, 3334, 2874, 3078, 3302, 0, - 3312, 0, 0, 0, 0, 1116, 2749, 3215, 3216, 2829, - 2831, 2830, 3217, 3153, 2750, 0, 0, 2678, 0, 0, - 2679, 2746, 2744, 2748, 2743, 2747, 2742, 2745, 3185, 3201, - 3197, 0, 0, 0, 2454, 1191, 1190, 0, 0, 0, - 2396, 0, 1116, 2454, 2397, 0, 2145, 2444, 2447, 0, - 3219, 2410, 1192, 3220, 2440, 0, 2382, 2398, 2359, 2403, - 130, 3221, 0, 2443, 2145, 2454, 0, 2375, 0, 0, - 0, 0, 1594, 0, 385, 3282, 1352, 593, 0, 0, - 3427, 555, 549, 0, 0, 0, 0, 0, 3436, 1951, - 2224, 77, 0, 79, 0, 0, 2663, 2079, 3285, 3284, - 0, 86, 0, 3568, 73, 0, 2521, 0, 2519, 2516, - 2518, 0, 3436, 1386, 1386, 0, 0, 1378, 1380, 1381, - 1386, 1386, 2358, 0, 3569, 3570, 2601, 2599, 2600, 2674, - 3551, 2598, 2597, 3560, 3562, 3545, 0, 3548, 3547, 3557, + 391, 0, 376, 0, 384, 3445, 0, 0, 477, 598, + 2326, 2270, 0, 2269, 409, 3335, 2875, 3079, 3303, 0, + 3313, 0, 0, 0, 0, 1117, 2750, 3216, 3217, 2830, + 2832, 2831, 3218, 3154, 2751, 0, 0, 2679, 0, 0, + 2680, 2747, 2745, 2749, 2744, 2748, 2743, 2746, 3186, 3202, + 3198, 0, 0, 0, 2455, 1192, 1191, 0, 0, 0, + 2397, 0, 1117, 2455, 2398, 0, 2146, 2445, 2448, 0, + 3220, 2411, 1193, 3221, 2441, 0, 2383, 2399, 2360, 2404, + 130, 3222, 0, 2444, 2146, 2455, 0, 2376, 0, 0, + 0, 0, 1595, 0, 385, 3283, 1353, 593, 0, 0, + 3428, 555, 549, 0, 0, 0, 0, 0, 3437, 1952, + 2225, 77, 0, 79, 0, 0, 2664, 2080, 3286, 3285, + 0, 86, 0, 3569, 73, 0, 2522, 0, 2520, 2517, + 2519, 0, 3437, 1387, 1387, 0, 0, 1379, 1381, 1382, + 1387, 1387, 2359, 0, 3570, 3571, 2602, 2600, 2601, 2675, + 3552, 2599, 2598, 3561, 3563, 3546, 0, 3549, 3548, 3558, 6, 69, 0, 0, 252, 252, 822, 166, 822, 822, 822, 822, 822, 822, 151, 149, 153, 0, 0, 157, - 155, 3497, 2625, 2474, 1562, 1567, 0, 1513, 0, 0, - 0, 3447, 3446, 3445, 3459, 1501, 1502, 0, 0, 0, - 1132, 0, 257, 3495, 3496, 3494, 1610, 2695, 2698, 3493, - 2699, 257, 1255, 0, 666, 0, 0, 0, 0, 0, - 0, 668, 667, 604, 0, 1360, 1361, 1355, 1357, 1359, - 0, 0, 0, 0, 0, 2473, 0, 284, 281, 253, - 0, 327, 0, 525, 531, 87, 0, 1447, 2245, 2247, - 163, 0, 0, 356, 0, 338, 0, 0, 1056, 1078, - 1076, 1076, 1042, 1062, 1058, 1062, 1052, 1097, 992, 992, - 1097, 1055, 992, 1062, 1057, 0, 1054, 1097, 1053, 992, - 0, 1046, 1078, 986, 987, 992, 1076, 1013, 0, 1062, - 1035, 1034, 1097, 1038, 1039, 1037, 1041, 0, 1043, 1062, - 1048, 1036, 1040, 0, 0, 1076, 1076, 1076, 0, 2741, - 1076, 0, 340, 1128, 972, 974, 973, 975, 976, 1062, - 1078, 1078, 0, 0, 1076, 1084, 444, 440, 2738, 2736, - 2739, 2737, 334, 336, 0, 0, 0, 355, 0, 2328, - 0, 2086, 2330, 2334, 2340, 2344, 2347, 2228, 2253, 0, - 0, 2229, 2233, 2239, 2238, 2232, 2442, 0, 2242, 679, - 0, 0, 0, 2243, 2225, 0, 568, 570, 3335, 3333, - 3367, 3366, 3371, 0, 3368, 3364, 0, 3327, 3372, 3357, - 3399, 3361, 3399, 3399, 3358, 3365, 3399, 0, 3363, 3362, - 0, 3330, 0, 0, 0, 1353, 0, 2539, 2540, 0, - 1482, 2557, 2556, 2553, 2079, 3268, 3273, 484, 2725, 2724, - 2687, 491, 2688, 2721, 2723, 2720, 2722, 0, 3042, 0, + 155, 3498, 2626, 2475, 1563, 1568, 0, 1514, 0, 0, + 0, 3448, 3447, 3446, 3460, 1502, 1503, 0, 0, 0, + 1133, 0, 257, 3496, 3497, 3495, 1611, 2696, 2699, 3494, + 2700, 257, 1256, 0, 666, 0, 0, 0, 0, 0, + 0, 668, 667, 604, 0, 1361, 1362, 1356, 1358, 1360, + 0, 0, 0, 0, 0, 2474, 0, 284, 281, 253, + 0, 327, 0, 525, 531, 87, 0, 1448, 2246, 2248, + 163, 0, 0, 356, 0, 338, 0, 0, 1057, 1079, + 1077, 1098, 1043, 1063, 1059, 1063, 1053, 1098, 992, 992, + 1098, 1056, 992, 1063, 1058, 0, 1055, 1098, 1054, 992, + 0, 1047, 1079, 986, 987, 992, 1077, 1013, 0, 1063, + 1036, 1035, 1098, 1039, 1040, 1038, 1042, 0, 1044, 1063, + 1049, 1037, 1041, 0, 0, 1077, 1077, 1077, 0, 2742, + 1077, 0, 340, 1129, 972, 974, 973, 975, 976, 1063, + 1079, 1079, 0, 0, 1077, 1085, 444, 440, 2739, 2737, + 2740, 2738, 334, 336, 0, 0, 0, 355, 0, 2329, + 0, 2087, 2331, 2335, 2341, 2345, 2348, 2229, 2254, 0, + 0, 2230, 2234, 2240, 2239, 2233, 2443, 0, 2243, 679, + 0, 0, 0, 2244, 2226, 0, 568, 570, 3336, 3334, + 3368, 3367, 3372, 0, 3369, 3365, 0, 3328, 3373, 3358, + 3400, 3362, 3400, 3400, 3359, 3366, 3400, 0, 3364, 3363, + 0, 3331, 0, 0, 0, 1354, 0, 2540, 2541, 0, + 1483, 2558, 2557, 2554, 2080, 3269, 3274, 484, 2726, 2725, + 2688, 491, 2689, 2722, 2724, 2721, 2723, 0, 3043, 0, 496, 495, 494, 0, 512, 484, 487, 505, 0, 0, 325, 472, 478, 473, 0, 511, 513, 545, 543, 584, - 580, 588, 582, 452, 2690, 0, 0, 0, 0, 1746, - 2084, 2084, 2084, 0, 0, 1959, 0, 0, 0, 0, - 2084, 0, 1778, 1757, 1758, 0, 1779, 0, 0, 0, - 0, 0, 3475, 0, 0, 1911, 0, 0, 0, 0, - 3475, 0, 0, 2669, 2670, 0, 0, 0, 1953, 1955, - 2647, 2671, 2084, 0, 2084, 0, 1615, 1788, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2084, 2084, 0, 2084, 1796, 0, 2595, 2616, 1800, 1802, - 1801, 2084, 2084, 0, 0, 2084, 0, 0, 0, 2604, - 2603, 0, 0, 0, 0, 0, 0, 0, 2622, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2624, 0, 0, 0, 2623, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1748, 0, 1747, 1749, 0, - 965, 964, 2625, 0, 0, 0, 1665, 1664, 1663, 1662, - 0, 0, 0, 0, 1671, 0, 1673, 1675, 1670, 1672, - 1674, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1750, 0, 0, 0, 0, 0, 2596, 0, 1844, - 0, 726, 0, 0, 0, 374, 1466, 2700, 0, 1465, - 1469, 3268, 577, 0, 2272, 2262, 2271, 1991, 3333, 0, - 0, 0, 3330, 0, 0, 3187, 3195, 1115, 0, 0, - 1118, 1120, 2289, 2288, 1119, 1128, 0, 1117, 0, 3256, - 0, 0, 3241, 0, 3222, 0, 1124, 1126, 1125, 3236, - 1123, 0, 0, 0, 3206, 0, 0, 822, 0, 0, - 0, 0, 0, 0, 0, 2425, 0, 1594, 1594, 2376, - 0, 2454, 0, 2454, 2444, 2450, 2409, 0, 0, 878, - 2147, 2402, 0, 2146, 2448, 2449, 2454, 0, 0, 2454, - 0, 2416, 2444, 2454, 2371, 0, 0, 2363, 2368, 2364, - 0, 2370, 2369, 2372, 2360, 2361, 0, 2389, 2418, 0, - 2401, 2408, 0, 2388, 2395, 0, 2406, 2444, 2444, 0, - 2454, 2454, 2454, 1996, 575, 2628, 2631, 2635, 2639, 323, - 0, 0, 0, 1474, 1476, 1475, 1492, 1400, 0, 3435, - 0, 3437, 0, 3439, 0, 79, 74, 80, 76, 0, - 2502, 0, 0, 0, 2496, 2498, 2501, 2497, 0, 0, - 2503, 130, 0, 2499, 2478, 2481, 2488, 1594, 2479, 0, - 0, 410, 413, 415, 0, 418, 2080, 2081, 0, 3283, - 0, 2662, 0, 72, 1404, 1407, 0, 2526, 2523, 130, - 0, 2826, 3442, 3440, 1374, 1390, 1372, 1384, 1385, 0, - 0, 1377, 1376, 3268, 0, 0, 3546, 3563, 3544, 0, - 3558, 3559, 3543, 7, 4, 0, 143, 0, 0, 0, - 0, 0, 0, 0, 0, 822, 0, 822, 1596, 1596, - 822, 159, 822, 822, 0, 2460, 2458, 2475, 2476, 1996, - 2209, 0, 1499, 1586, 1551, 1563, 1586, 2086, 2145, 3457, - 1562, 1554, 3489, 3483, 3486, 3485, 3481, 3484, 3482, 3487, - 1585, 3488, 1584, 1596, 1568, 1582, 1583, 2298, 3465, 2284, - 0, 1503, 1562, 1559, 3461, 3460, 3450, 3455, 3264, 3265, - 3262, 3263, 3261, 3190, 3191, 1133, 1132, 816, 819, 818, - 0, 0, 1245, 2697, 0, 1247, 0, 2442, 1262, 0, - 0, 2442, 615, 2442, 669, 3268, 1358, 2698, 3398, 0, - 3404, 3386, 3499, 3500, 1252, 1250, 0, 1418, 1419, 1422, - 0, 285, 287, 536, 539, 477, 0, 0, 0, 1457, - 0, 1455, 1454, 1452, 1453, 1451, 0, 1442, 1448, 1449, - 2442, 607, 360, 555, 339, 332, 335, 337, 0, 1079, - 998, 1077, 1097, 1097, 0, 1066, 1064, 1063, 1059, 1066, - 1095, 1022, 1098, 1141, 1135, 1139, 1136, 1028, 1137, 0, - 1143, 993, 1042, 1097, 1030, 0, 992, 1021, 1027, 1066, - 0, 1017, 1025, 1097, 985, 1029, 1016, 0, 1066, 1031, - 1044, 1047, 1049, 1051, 1066, 1097, 0, 444, 992, 1015, - 1014, 992, 1066, 0, 0, 0, 1113, 1060, 1045, 1137, - 1143, 992, 1097, 1066, 0, 1085, 1066, 0, 0, 349, - 358, 443, 2165, 1991, 0, 2331, 2336, 2249, 2251, 2661, - 2087, 2136, 0, 0, 0, 2342, 0, 2230, 0, 679, - 2235, 3325, 682, 681, 2240, 680, 2290, 3384, 2234, 1362, - 0, 0, 477, 569, 498, 3360, 1611, 0, 3341, 3345, - 3339, 3343, 0, 3323, 0, 0, 3331, 0, 0, 3369, - 3352, 3356, 3355, 3353, 0, 3354, 3359, 3337, 471, 516, - 2259, 2541, 3168, 2542, 2534, 0, 2554, 0, 0, 3270, - 2165, 0, 3267, 492, 0, 484, 0, 0, 508, 2691, - 488, 484, 498, 507, 574, 326, 0, 282, 482, 0, - 0, 555, 0, 477, 477, 0, 3268, 0, 2085, 0, - 1926, 0, 0, 0, 0, 0, 0, 1727, 0, 0, - 0, 1865, 0, 1926, 1888, 2195, 2196, 2176, 2177, 2175, - 2178, 1608, 0, 2179, 2194, 1812, 0, 0, 0, 1886, - 0, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, - 2064, 2065, 2066, 2068, 2073, 2069, 2070, 2071, 2072, 2067, - 2074, 0, 2054, 0, 1912, 1878, 0, 0, 0, 0, - 965, 0, 0, 0, 0, 0, 0, 0, 2084, 0, - 0, 2084, 0, 0, 0, 0, 1887, 0, 0, 0, - 1885, 0, 0, 0, 1884, 1770, 0, 0, 0, 2084, - 0, 0, 0, 0, 1703, 0, 0, 0, 0, 0, - 2084, 0, 0, 0, 0, 0, 0, 0, 0, 1696, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2077, 2075, 2078, 2076, 0, 0, 1951, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1826, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1774, 0, 0, - 0, 2652, 0, 1161, 0, 0, 0, 0, 1742, 0, - 0, 0, 0, 3222, 1906, 1908, 1613, 1612, 1614, 1625, - 1618, 1623, 1616, 1620, 0, 1676, 2880, 1626, 0, 0, - 1658, 3475, 2093, 1659, 1647, 1640, 1645, 1646, 0, 1643, - 1644, 0, 1649, 0, 1648, 1655, 1656, 1657, 1660, 0, - 0, 0, 0, 1744, 1127, 1752, 2106, 1880, 1881, 1904, - 2110, 0, 2648, 1596, 1699, 1698, 1700, 1701, 1702, 727, - 0, 721, 724, 738, 0, 0, 0, 2530, 0, 2843, - 2867, 2868, 392, 395, 394, 396, 0, 0, 0, 0, - 0, 2270, 2625, 0, 2248, 1992, 0, 0, 0, 3388, - 3310, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3239, 0, 3238, 3237, 0, 3258, 0, 0, 3243, 3242, - 0, 0, 3200, 3244, 3245, 3248, 0, 0, 0, 0, - 0, 3229, 0, 3153, 3202, 3203, 3208, 3198, 2417, 0, - 0, 0, 2422, 2420, 2413, 2424, 2434, 2421, 2415, 2426, - 2414, 0, 0, 0, 2454, 2429, 2431, 2427, 2454, 0, - 2452, 2439, 2438, 2437, 2386, 2385, 2158, 2159, 0, 2157, - 0, 2148, 2151, 2156, 2154, 2379, 2445, 2432, 2428, 252, - 2454, 2384, 2383, 2365, 2366, 2367, 0, 2145, 0, 2450, - 2419, 2444, 0, 2454, 2454, 2435, 2436, 2405, 2407, 2024, - 0, 1966, 0, 1968, 1965, 1964, 1963, 1994, 0, 1995, - 477, 0, 0, 2633, 477, 551, 0, 0, 0, 711, - 1492, 1478, 1494, 1402, 1401, 1399, 3193, 3434, 3438, 1952, - 78, 0, 2507, 2490, 2489, 2491, 2495, 130, 2500, 2492, - 0, 2504, 2505, 423, 0, 419, 0, 0, 2709, 2676, - 2083, 2677, 2706, 2704, 2708, 2702, 2703, 2707, 2701, 2705, - 2961, 3042, 0, 2086, 3287, 3567, 0, 1408, 2165, 2522, - 2524, 2517, 3441, 1375, 1392, 1391, 1387, 1388, 1393, 1383, - 1382, 2352, 3552, 3561, 3565, 3550, 823, 1132, 3321, 3404, - 221, 1211, 0, 0, 133, 135, 0, 274, 0, 255, - 152, 822, 150, 154, 822, 0, 822, 158, 0, 202, - 255, 201, 0, 156, 822, 1566, 1564, 1565, 0, 0, - 2222, 0, 2217, 2138, 0, 0, 1535, 0, 1552, 1556, - 1557, 1533, 2094, 3456, 1563, 2136, 1591, 1560, 1590, 0, - 1581, 1596, 0, 1517, 1504, 1505, 1514, 1545, 1544, 1562, - 0, 0, 817, 2290, 2290, 0, 0, 0, 0, 0, - 0, 0, 0, 258, 267, 2696, 0, 0, 613, 614, - 2290, 612, 655, 656, 659, 660, 661, 0, 0, 662, - 2290, 2290, 609, 635, 636, 639, 640, 641, 642, 643, - 605, 0, 610, 1239, 0, 0, 0, 3416, 1264, 3501, - 1248, 0, 0, 1421, 283, 0, 0, 477, 523, 532, - 526, 528, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 88, 89, 110, 0, - 1444, 1456, 2246, 1450, 2290, 2290, 2290, 2290, 611, 644, - 645, 648, 649, 650, 651, 654, 652, 653, 0, 2442, - 0, 0, 0, 0, 0, 0, 0, 1018, 1019, 0, - 1068, 1069, 1067, 988, 984, 1099, 0, 1142, 995, 1138, - 1134, 1144, 1140, 1095, 994, 1023, 1024, 990, 0, 1236, - 1002, 0, 991, 1050, 989, 1003, 0, 345, 0, 343, - 352, 1026, 1000, 1012, 444, 444, 341, 1131, 1130, 1129, - 0, 1020, 996, 997, 999, 1143, 982, 0, 983, 445, - 446, 2165, 2170, 2166, 354, 373, 0, 372, 2332, 1569, - 0, 0, 0, 2664, 0, 2161, 2137, 2341, 1996, 2345, - 2344, 3268, 2231, 2241, 0, 2291, 0, 0, 1364, 1363, - 2237, 2244, 3268, 477, 362, 501, 572, 3403, 0, 3402, - 0, 0, 3320, 0, 3380, 3383, 2661, 0, 0, 0, - 0, 327, 2625, 2543, 1483, 1485, 1486, 1484, 1492, 0, - 0, 3276, 3277, 3275, 3269, 3274, 485, 493, 509, 0, - 489, 499, 503, 0, 475, 474, 514, 546, 0, 585, - 540, 540, 540, 1460, 0, 1860, 0, 1861, 1862, 0, - 1728, 1960, 0, 0, 0, 1755, 0, 0, 0, 1864, - 0, 1609, 0, 0, 1731, 1723, 0, 1890, 0, 1895, - 0, 1893, 0, 0, 0, 0, 0, 0, 1954, 0, - 1956, 2648, 0, 1870, 1900, 0, 1868, 0, 1889, 0, - 1901, 1902, 0, 0, 0, 0, 1874, 1872, 0, 0, - 0, 1876, 0, 0, 0, 0, 0, 0, 0, 1773, - 1873, 1875, 0, 1808, 0, 1858, 1809, 1810, 1811, 2651, - 0, 1805, 0, 1806, 0, 0, 0, 0, 0, 1759, - 1760, 0, 0, 0, 1836, 0, 1761, 1816, 0, 1736, - 1837, 1818, 1766, 1767, 1838, 1839, 1840, 1733, 1734, 1820, - 1821, 0, 1842, 1735, 1822, 1825, 0, 1769, 2165, 0, - 1753, 0, 0, 0, 1771, 1799, 0, 0, 0, 1732, - 0, 1828, 0, 0, 0, 2165, 0, 0, 1775, 0, - 0, 966, 2013, 1528, 1586, 3463, 3462, 3471, 3472, 3476, - 1724, 2649, 0, 0, 1619, 1624, 1617, 1621, 3475, 0, - 0, 0, 0, 1638, 1637, 0, 0, 0, 3475, 2093, - 1641, 2108, 0, 0, 1898, 1949, 0, 0, 0, 1854, - 1855, 0, 1596, 720, 719, 0, 723, 799, 0, 740, - 728, 717, 2532, 2531, 0, 0, 1467, 1470, 0, 0, - 2276, 0, 0, 2625, 2282, 2263, 2273, 0, 0, 0, - 3311, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3226, 3196, 2625, 0, 0, 3257, 0, 0, 3250, 3251, - 0, 0, 0, 3223, 3224, 3225, 0, 2733, 2734, 2680, - 2682, 0, 2681, 2731, 2729, 2732, 2727, 2728, 2726, 2730, - 3232, 0, 3205, 3206, 3207, 0, 0, 2412, 2423, 2455, - 2456, 2433, 2430, 2380, 2451, 2165, 2390, 0, 2603, 0, - 0, 0, 0, 2411, 2381, 0, 2404, 2362, 2452, 2086, - 2444, 2377, 2378, 2024, 1996, 0, 0, 1986, 2027, 0, - 2027, 1988, 1989, 1996, 0, 1996, 1991, 477, 2632, 0, - 2637, 0, 0, 562, 1441, 1481, 1473, 1480, 1477, 1492, - 1490, 1479, 1187, 1186, 0, 1493, 0, 2309, 2310, 81, - 83, 2308, 84, 0, 2493, 2494, 2487, 2506, 2482, 0, - 414, 424, 416, 420, 421, 422, 417, 3298, 3299, 3291, - 3294, 3292, 3293, 3297, 3300, 3301, 3288, 3295, 2145, 1415, - 1413, 1412, 1414, 1403, 1409, 1410, 2527, 2525, 2520, 1390, - 0, 1373, 2354, 2165, 0, 3564, 144, 1132, 0, 162, - 3416, 0, 0, 0, 0, 0, 0, 826, 203, 274, - 0, 272, 3534, 256, 3538, 3522, 0, 145, 0, 160, - 3531, 254, 3537, 0, 2675, 2218, 2221, 0, 2210, 2212, - 2213, 2692, 2215, 0, 3268, 0, 2202, 1553, 1558, 3448, - 0, 2089, 2145, 1596, 1597, 1597, 2647, 0, 0, 2303, - 2296, 2283, 1586, 1559, 1520, 3451, 1507, 3192, 0, 0, - 1243, 0, 0, 0, 261, 264, 262, 263, 664, 663, - 0, 2442, 657, 2290, 2290, 217, 2290, 2290, 216, 218, - 0, 212, 209, 219, 2290, 1263, 205, 0, 0, 0, - 0, 2165, 0, 0, 0, 223, 0, 0, 2442, 637, - 616, 617, 620, 621, 622, 1132, 0, 3391, 3390, 0, - 3406, 0, 0, 3408, 0, 3407, 3405, 3373, 3387, 0, - 1260, 0, 1266, 1268, 0, 0, 3501, 1420, 0, 286, - 327, 0, 529, 0, 0, 2165, 0, 2165, 2165, 0, - 0, 2165, 0, 2165, 0, 0, 0, 0, 0, 0, - 0, 2165, 0, 0, 0, 0, 2165, 0, 1458, 0, - 0, 0, 0, 2442, 646, 0, 2290, 606, 623, 624, - 627, 628, 629, 630, 631, 634, 632, 633, 0, 0, - 291, 292, 362, 554, 1074, 1072, 1075, 1073, 0, 1070, - 1071, 1096, 1100, 1137, 0, 1137, 344, 347, 0, 351, - 350, 0, 0, 1001, 382, 381, 379, 477, 369, 377, - 371, 0, 378, 2173, 2174, 2171, 2169, 2172, 1571, 1570, - 0, 2329, 1573, 2250, 2344, 1996, 2662, 2088, 0, 2338, - 2086, 0, 2343, 2227, 3326, 678, 877, 3385, 1362, 0, - 363, 0, 0, 498, 3400, 0, 3420, 0, 0, 0, - 0, 0, 0, 0, 0, 517, 2311, 0, 1492, 1496, - 2547, 3279, 3280, 3278, 510, 0, 506, 498, 282, 0, - 540, 0, 579, 581, 541, 589, 583, 0, 1927, 1957, - 0, 1076, 1076, 1062, 1084, 1944, 1938, 1941, 0, 1076, - 1946, 1076, 1939, 1076, 0, 0, 1936, 1937, 0, 0, - 0, 1866, 1863, 0, 0, 0, 1915, 0, 0, 0, - 0, 0, 1652, 0, 1849, 1871, 1869, 0, 0, 0, - 0, 0, 0, 0, 0, 1877, 1709, 0, 1707, 0, - 1708, 0, 1710, 0, 0, 1859, 0, 1678, 1697, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1952, 0, - 0, 2181, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2653, 0, 0, 0, 1150, 1156, 1159, - 1160, 1162, 1154, 0, 1830, 0, 0, 0, 1562, 2012, - 3477, 1528, 0, 0, 0, 3469, 1586, 3473, 3459, 0, - 3474, 1909, 1907, 0, 1635, 1631, 0, 1629, 2092, 1651, - 1650, 0, 0, 0, 1639, 2110, 2109, 0, 1897, 0, - 0, 1950, 2650, 1597, 1845, 1596, 730, 0, 722, 0, - 2165, 725, 739, 0, 751, 0, 0, 0, 393, 0, - 1471, 0, 0, 2280, 2281, 2625, 0, 0, 0, 2279, - 2641, 2640, 2652, 805, 0, 2052, 0, 3309, 3389, 0, - 0, 0, 0, 0, 0, 0, 3188, 3240, 3231, 0, - 0, 0, 0, 3255, 3249, 3246, 3247, 0, 0, 0, - 3230, 3204, 3210, 3209, 3212, 3214, 2400, 2399, 0, 2453, - 2145, 2160, 2150, 0, 2153, 2152, 2155, 2373, 2392, 2394, - 2454, 2026, 2019, 0, 3454, 1586, 2016, 2017, 2025, 1996, - 0, 0, 1990, 1987, 2028, 0, 2027, 2027, 1996, 0, - 1970, 2316, 2319, 0, 1969, 1575, 0, 2636, 0, 0, - 324, 0, 561, 0, 2046, 3194, 0, 0, 2485, 0, - 2480, 2483, 0, 0, 0, 3286, 0, 1405, 1411, 1389, - 0, 1396, 1394, 0, 0, 2353, 3553, 3566, 0, 161, - 0, 1227, 1229, 1228, 1212, 1213, 0, 139, 141, 0, - 0, 2290, 2290, 2290, 2290, 2290, 0, 2290, 2290, 2290, - 2290, 2290, 0, 2290, 2290, 2290, 2290, 2290, 2290, 2290, - 2290, 2290, 2290, 0, 0, 2290, 2290, 923, 134, 693, - 707, 827, 830, 871, 855, 856, 0, 1132, 204, 0, - 3542, 3541, 1596, 0, 270, 273, 275, 269, 318, 0, - 232, 3501, 0, 318, 0, 147, 1121, 2214, 0, 0, - 2646, 2139, 2142, 1587, 0, 0, 1534, 3449, 0, 2090, - 2101, 1555, 1589, 1599, 1592, 0, 1597, 2299, 1596, 2300, - 1516, 1562, 1520, 0, 0, 1508, 1509, 876, 875, 266, - 265, 278, 279, 2191, 2192, 2189, 2190, 670, 683, 2193, - 684, 658, 2165, 2165, 2295, 2294, 2165, 2165, 211, 208, - 2293, 2292, 2165, 2165, 206, 227, 226, 228, 229, 231, - 230, 225, 1259, 0, 671, 672, 638, 0, 618, 1350, - 1350, 0, 1350, 0, 0, 1350, 2290, 0, 0, 711, - 1368, 2290, 0, 0, 0, 0, 0, 1334, 0, 1350, - 0, 0, 0, 0, 0, 1280, 1333, 828, 1240, 1279, - 1281, 1293, 707, 0, 1311, 1336, 1337, 1335, 3394, 0, - 3396, 3379, 3378, 3377, 3374, 0, 2165, 2165, 2165, 0, - 2165, 3415, 3417, 3429, 0, 0, 237, 3503, 0, 3505, - 0, 1424, 0, 1423, 537, 533, 2165, 2165, 103, 2165, - 95, 96, 91, 123, 124, 93, 94, 99, 98, 100, - 101, 104, 105, 102, 97, 92, 127, 129, 128, 106, - 125, 126, 90, 677, 676, 675, 674, 647, 0, 0, - 2442, 625, 361, 0, 1082, 1080, 1080, 0, 1080, 0, - 1128, 977, 979, 978, 980, 981, 1082, 1082, 1080, 1080, - 293, 357, 0, 1033, 1237, 1032, 346, 342, 1061, 2165, - 359, 380, 1572, 1574, 0, 2086, 2665, 0, 2162, 1596, - 2333, 2335, 2226, 596, 2625, 573, 502, 571, 3401, 0, - 3319, 3324, 0, 3382, 3381, 3404, 3404, 3404, 3404, 519, - 0, 2260, 1487, 1492, 1496, 0, 1488, 2558, 500, 504, - 476, 555, 544, 477, 0, 1958, 1928, 1929, 1943, 1945, - 1942, 1931, 1948, 1935, 1940, 1947, 1933, 1726, 1756, 1730, - 1729, 0, 0, 0, 1786, 0, 1913, 1896, 1894, 0, - 0, 1763, 0, 1765, 0, 0, 1851, 1819, 1892, 1789, - 1823, 0, 1768, 0, 1795, 1793, 0, 1706, 1704, 1705, - 0, 1776, 1803, 0, 1695, 1804, 0, 1835, 1782, 0, - 1784, 0, 1785, 0, 1814, 0, 1787, 1817, 1841, 1722, - 2183, 2182, 2180, 1737, 2165, 0, 1790, 1754, 0, 0, - 1827, 2654, 2655, 0, 1829, 0, 0, 1161, 1147, 1148, - 1149, 0, 1151, 1153, 1155, 0, 2165, 1843, 1654, 1653, - 3466, 1596, 3478, 3480, 0, 3470, 1529, 2013, 3467, 3458, - 2011, 2007, 2009, 0, 1627, 0, 1636, 1633, 0, 1630, - 2112, 2111, 2142, 0, 0, 1846, 1599, 1856, 0, 731, - 732, 734, 1597, 748, 0, 801, 726, 0, 715, 0, - 730, 718, 1468, 578, 2277, 2286, 0, 2625, 2274, 701, - 2625, 0, 805, 0, 1562, 1567, 711, 0, 0, 0, - 3306, 3305, 3304, 3303, 3228, 3227, 3260, 3259, 3253, 3252, - 3254, 0, 0, 3233, 0, 0, 2187, 2188, 2186, 2184, - 2185, 2391, 2149, 2145, 2387, 2021, 0, 1575, 2001, 2002, - 2004, 1586, 2015, 0, 1967, 1996, 0, 0, 1975, 1996, - 1971, 1973, 0, 2086, 0, 0, 2079, 576, 2638, 1594, - 566, 563, 564, 0, 2049, 0, 2050, 2047, 2048, 82, - 2165, 0, 0, 432, 427, 435, 429, 431, 430, 436, - 437, 438, 439, 433, 428, 434, 426, 425, 0, 1416, - 0, 0, 2355, 2356, 3322, 0, 137, 0, 0, 2290, - 694, 2165, 2165, 2165, 2165, 853, 874, 2165, 2165, 2165, - 0, 0, 2290, 2165, 0, 0, 2165, 2165, 2165, 2165, - 0, 0, 2165, 861, 862, 860, 2165, 2165, 1234, 0, - 2788, 0, 0, 0, 893, 894, 896, 897, 898, 899, - 0, 924, 900, 822, 1188, 1188, 926, 2657, 2558, 706, - 708, 1132, 831, 0, 136, 1596, 167, 268, 271, 316, - 322, 321, 259, 0, 0, 0, 314, 320, 319, 0, - 891, 892, 890, 889, 0, 3501, 0, 2219, 2211, 2216, - 0, 2143, 2144, 2141, 3268, 1596, 2098, 0, 0, 1561, - 0, 1593, 1603, 1602, 2644, 2648, 2307, 0, 0, 2301, - 2305, 1506, 1586, 1563, 1586, 0, 1510, 1559, 1521, 1562, - 210, 215, 214, 207, 220, 213, 224, 619, 1234, 822, - 1351, 0, 0, 1315, 1318, 1316, 820, 2252, 1461, 2252, - 0, 0, 2252, 0, 2254, 0, 0, 0, 2252, 2252, - 0, 1461, 0, 709, 1371, 1369, 1370, 0, 0, 1461, - 1327, 1275, 1328, 0, 1276, 2252, 1461, 1295, 1461, 1461, - 0, 829, 1132, 1277, 1278, 923, 1365, 3395, 3393, 3392, - 0, 3375, 3411, 3409, 3410, 3413, 0, 0, 3412, 3414, - 3430, 0, 0, 0, 1265, 0, 240, 238, 248, 3502, - 0, 1251, 2625, 3505, 1426, 1427, 0, 0, 0, 116, - 118, 0, 120, 122, 0, 112, 114, 608, 673, 626, - 290, 1083, 1006, 1081, 1010, 1011, 298, 1137, 0, 0, - 1114, 1137, 1143, 1137, 1143, 1065, 370, 2344, 2337, 2163, - 0, 2339, 364, 0, 3404, 3418, 3418, 3418, 3418, 327, - 515, 518, 2312, 1489, 1497, 2560, 2559, 0, 0, 477, - 1137, 1137, 1137, 1867, 0, 0, 0, 0, 1919, 0, - 0, 0, 0, 0, 1725, 0, 1847, 0, 0, 0, - 0, 1062, 1685, 1687, 1683, 1686, 0, 1076, 1689, 0, - 1043, 1076, 1692, 1694, 1679, 1680, 1681, 1682, 0, 0, - 1961, 1962, 0, 2201, 2200, 2199, 0, 0, 0, 0, - 2656, 1145, 1832, 0, 1158, 1152, 1150, 1157, 0, 2014, - 3479, 1532, 3468, 1562, 0, 1910, 1632, 0, 0, 2114, - 0, 2097, 0, 1899, 1857, 735, 0, 0, 802, 0, - 755, 0, 753, 729, 0, 0, 0, 0, 3454, 2275, - 2278, 1562, 2642, 2653, 1586, 1563, 1586, 810, 1596, 1993, - 2053, 3308, 3307, 0, 0, 3211, 3213, 2393, 2018, 1567, - 2020, 2079, 0, 2006, 2005, 3476, 0, 1963, 1996, 1996, - 0, 1963, 0, 0, 2318, 2136, 2320, 1578, 0, 1569, - 1569, 1576, 2044, 3475, 2165, 565, 1296, 0, 1297, 1308, - 1310, 1495, 0, 2512, 0, 2510, 2486, 2513, 0, 1395, - 1397, 0, 0, 0, 0, 0, 2198, 2197, 850, 843, + 580, 588, 582, 452, 2691, 0, 0, 0, 0, 1747, + 2085, 2085, 2085, 0, 0, 1960, 0, 0, 0, 0, + 2085, 0, 1779, 1758, 1759, 0, 1780, 0, 0, 0, + 0, 0, 3476, 0, 0, 1912, 0, 0, 0, 0, + 3476, 0, 0, 2670, 2671, 0, 0, 0, 1954, 1956, + 2648, 2672, 2085, 0, 2085, 0, 1616, 1789, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2085, 2085, 0, 2085, 1797, 0, 2596, 2617, 1801, 1803, + 1802, 2085, 2085, 0, 0, 2085, 0, 0, 0, 2605, + 2604, 0, 0, 0, 0, 0, 0, 0, 2623, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2625, 0, 0, 0, 2624, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1749, 0, 1748, 1750, 0, + 965, 964, 2626, 0, 0, 0, 1666, 1665, 1664, 1663, + 0, 0, 0, 0, 1672, 0, 1674, 1676, 1671, 1673, + 1675, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1751, 0, 0, 0, 0, 0, 2597, 0, 1845, + 0, 726, 0, 0, 0, 374, 1467, 2701, 0, 1466, + 1470, 3269, 577, 0, 2273, 2263, 2272, 1992, 3334, 0, + 0, 0, 3331, 0, 0, 3188, 3196, 1116, 0, 0, + 1119, 1121, 2290, 2289, 1120, 1129, 0, 1118, 0, 3257, + 0, 0, 3242, 0, 3223, 0, 1125, 1127, 1126, 3237, + 1124, 0, 0, 0, 3207, 0, 0, 822, 0, 0, + 0, 0, 0, 0, 0, 2426, 0, 1595, 1595, 2377, + 0, 2455, 0, 2455, 2445, 2451, 2410, 0, 0, 878, + 2148, 2403, 0, 2147, 2449, 2450, 2455, 0, 0, 2455, + 0, 2417, 2445, 2455, 2372, 0, 0, 2364, 2369, 2365, + 0, 2371, 2370, 2373, 2361, 2362, 0, 2390, 2419, 0, + 2402, 2409, 0, 2389, 2396, 0, 2407, 2445, 2445, 0, + 2455, 2455, 2455, 1997, 575, 2629, 2632, 2636, 2640, 323, + 0, 0, 0, 1475, 1477, 1476, 1493, 1401, 0, 3436, + 0, 3438, 0, 3440, 0, 79, 74, 80, 76, 0, + 2503, 0, 0, 0, 2497, 2499, 2502, 2498, 0, 0, + 2504, 130, 0, 2500, 2479, 2482, 2489, 1595, 2480, 0, + 0, 410, 413, 415, 0, 418, 2081, 2082, 0, 3284, + 0, 2663, 0, 72, 1405, 1408, 0, 2527, 2524, 130, + 0, 2827, 3443, 3441, 1375, 1391, 1373, 1385, 1386, 0, + 0, 1378, 1377, 3269, 0, 0, 3547, 3564, 3545, 0, + 3559, 3560, 3544, 7, 4, 0, 143, 0, 0, 0, + 0, 0, 0, 0, 0, 822, 0, 822, 1597, 1597, + 822, 159, 822, 822, 0, 2461, 2459, 2476, 2477, 1997, + 2210, 0, 1500, 1587, 1552, 1564, 1587, 2087, 2146, 3458, + 1563, 1555, 3490, 3484, 3487, 3486, 3482, 3485, 3483, 3488, + 1586, 3489, 1585, 1597, 1569, 1583, 1584, 2299, 3466, 2285, + 0, 1504, 1563, 1560, 3462, 3461, 3451, 3456, 3265, 3266, + 3263, 3264, 3262, 3191, 3192, 1134, 1133, 816, 819, 818, + 0, 0, 1246, 2698, 0, 1248, 0, 2443, 1263, 0, + 0, 2443, 615, 2443, 669, 3269, 1359, 2699, 3399, 0, + 3405, 3387, 3500, 3501, 1253, 1251, 0, 1419, 1420, 1423, + 0, 285, 287, 536, 539, 477, 0, 0, 0, 1458, + 0, 1456, 1455, 1453, 1454, 1452, 0, 1443, 1449, 1450, + 2443, 607, 360, 555, 339, 332, 335, 337, 0, 1080, + 998, 1078, 1098, 1096, 1098, 1020, 1099, 0, 1067, 1065, + 1064, 1060, 1067, 1023, 1142, 1136, 1140, 1137, 1029, 1138, + 0, 1144, 993, 1043, 1098, 1031, 0, 992, 1022, 1028, + 1067, 0, 1017, 1026, 1098, 985, 1030, 1016, 0, 1067, + 1032, 1045, 1048, 1050, 1052, 1067, 1098, 0, 444, 992, + 1015, 1014, 992, 1067, 0, 0, 0, 1114, 1061, 1046, + 1138, 1144, 992, 1098, 1067, 0, 1086, 1067, 0, 0, + 349, 358, 443, 2166, 1992, 0, 2332, 2337, 2250, 2252, + 2662, 2088, 2137, 0, 0, 0, 2343, 0, 2231, 0, + 679, 2236, 3326, 682, 681, 2241, 680, 2291, 3385, 2235, + 1363, 0, 0, 477, 569, 498, 3361, 1612, 0, 3342, + 3346, 3340, 3344, 0, 3324, 0, 0, 3332, 0, 0, + 3370, 3353, 3357, 3356, 3354, 0, 3355, 3360, 3338, 471, + 516, 2260, 2542, 3169, 2543, 2535, 0, 2555, 0, 0, + 3271, 2166, 0, 3268, 492, 0, 484, 0, 0, 508, + 2692, 488, 484, 498, 507, 574, 326, 0, 282, 482, + 0, 0, 555, 0, 477, 477, 0, 3269, 0, 2086, + 0, 1927, 0, 0, 0, 0, 0, 0, 1728, 0, + 0, 0, 1866, 0, 1927, 1889, 2196, 2197, 2177, 2178, + 2176, 2179, 1609, 0, 2180, 2195, 1813, 0, 0, 0, + 1887, 0, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, + 2064, 2065, 2066, 2067, 2069, 2074, 2070, 2071, 2072, 2073, + 2068, 2075, 0, 2055, 0, 1913, 1879, 0, 0, 0, + 0, 965, 0, 0, 0, 0, 0, 0, 0, 2085, + 0, 0, 2085, 0, 0, 0, 0, 1888, 0, 0, + 0, 1886, 0, 0, 0, 1885, 1771, 0, 0, 0, + 2085, 0, 0, 0, 0, 1704, 0, 0, 0, 0, + 0, 2085, 0, 0, 0, 0, 0, 0, 0, 0, + 1697, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2078, 2076, 2079, 2077, 0, 0, 1952, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1827, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1775, 0, + 0, 0, 2653, 0, 1162, 0, 0, 0, 0, 1743, + 0, 0, 0, 0, 3223, 1907, 1909, 1614, 1613, 1615, + 1626, 1619, 1624, 1617, 1621, 0, 1677, 2881, 1627, 0, + 0, 1659, 3476, 2094, 1660, 1648, 1641, 1646, 1647, 0, + 1644, 1645, 0, 1650, 0, 1649, 1656, 1657, 1658, 1661, + 0, 0, 0, 0, 1745, 1128, 1753, 2107, 1881, 1882, + 1905, 2111, 0, 2649, 1597, 1700, 1699, 1701, 1702, 1703, + 727, 0, 721, 724, 738, 0, 0, 0, 2531, 0, + 2844, 2868, 2869, 392, 395, 394, 396, 0, 0, 0, + 0, 0, 2271, 2626, 0, 2249, 1993, 0, 0, 0, + 3389, 3311, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3240, 0, 3239, 3238, 0, 3259, 0, 0, 3244, + 3243, 0, 0, 3201, 3245, 3246, 3249, 0, 0, 0, + 0, 0, 3230, 0, 3154, 3203, 3204, 3209, 3199, 2418, + 0, 0, 0, 2423, 2421, 2414, 2425, 2435, 2422, 2416, + 2427, 2415, 0, 0, 0, 2455, 2430, 2432, 2428, 2455, + 0, 2453, 2440, 2439, 2438, 2387, 2386, 2159, 2160, 0, + 2158, 0, 2149, 2152, 2157, 2155, 2380, 2446, 2433, 2429, + 252, 2455, 2385, 2384, 2366, 2367, 2368, 0, 2146, 0, + 2451, 2420, 2445, 0, 2455, 2455, 2436, 2437, 2406, 2408, + 2025, 0, 1967, 0, 1969, 1966, 1965, 1964, 1995, 0, + 1996, 477, 0, 0, 2634, 477, 551, 0, 0, 0, + 711, 1493, 1479, 1495, 1403, 1402, 1400, 3194, 3435, 3439, + 1953, 78, 0, 2508, 2491, 2490, 2492, 2496, 130, 2501, + 2493, 0, 2505, 2506, 423, 0, 419, 0, 0, 2710, + 2677, 2084, 2678, 2707, 2705, 2709, 2703, 2704, 2708, 2702, + 2706, 2962, 3043, 0, 2087, 3288, 3568, 0, 1409, 2166, + 2523, 2525, 2518, 3442, 1376, 1393, 1392, 1388, 1389, 1394, + 1384, 1383, 2353, 3553, 3562, 3566, 3551, 823, 1133, 3322, + 3405, 221, 1212, 0, 0, 133, 135, 0, 274, 0, + 255, 152, 822, 150, 154, 822, 0, 822, 158, 0, + 202, 255, 201, 0, 156, 822, 1567, 1565, 1566, 0, + 0, 2223, 0, 2218, 2139, 0, 0, 1536, 0, 1553, + 1557, 1558, 1534, 2095, 3457, 1564, 2137, 1592, 1561, 1591, + 0, 1582, 1597, 0, 1518, 1505, 1506, 1515, 1546, 1545, + 1563, 0, 0, 817, 2291, 2291, 0, 0, 0, 0, + 0, 0, 0, 0, 258, 267, 2697, 0, 0, 613, + 614, 2291, 612, 655, 656, 659, 660, 661, 0, 0, + 662, 2291, 2291, 609, 635, 636, 639, 640, 641, 642, + 643, 605, 0, 610, 1240, 0, 0, 0, 3417, 1265, + 3502, 1249, 0, 0, 1422, 283, 0, 0, 477, 523, + 532, 526, 528, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 88, 89, 110, + 0, 1445, 1457, 2247, 1451, 2291, 2291, 2291, 2291, 611, + 644, 645, 648, 649, 650, 651, 654, 652, 653, 0, + 2443, 0, 0, 0, 0, 0, 0, 0, 1018, 1100, + 0, 1019, 0, 1069, 1070, 1068, 988, 984, 1143, 995, + 1139, 1135, 1145, 1141, 1096, 994, 1024, 1025, 990, 0, + 1237, 1002, 0, 991, 1051, 989, 1003, 0, 345, 0, + 343, 352, 1027, 1000, 1012, 444, 444, 341, 1132, 1131, + 1130, 0, 1021, 996, 997, 999, 1144, 982, 0, 983, + 445, 446, 2166, 2171, 2167, 354, 373, 0, 372, 2333, + 1570, 0, 0, 0, 2665, 0, 2162, 2138, 2342, 1997, + 2346, 2345, 3269, 2232, 2242, 0, 2292, 0, 0, 1365, + 1364, 2238, 2245, 3269, 477, 362, 501, 572, 3404, 0, + 3403, 0, 0, 3321, 0, 3381, 3384, 2662, 0, 0, + 0, 0, 327, 2626, 2544, 1484, 1486, 1487, 1485, 1493, + 0, 0, 3277, 3278, 3276, 3270, 3275, 485, 493, 509, + 0, 489, 499, 503, 0, 475, 474, 514, 546, 0, + 585, 540, 540, 540, 1461, 0, 1861, 0, 1862, 1863, + 0, 1729, 1961, 0, 0, 0, 1756, 0, 0, 0, + 1865, 0, 1610, 0, 0, 1732, 1724, 0, 1891, 0, + 1896, 0, 1894, 0, 0, 0, 0, 0, 0, 1955, + 0, 1957, 2649, 0, 1871, 1901, 0, 1869, 0, 1890, + 0, 1902, 1903, 0, 0, 0, 0, 1875, 1873, 0, + 0, 0, 1877, 0, 0, 0, 0, 0, 0, 0, + 1774, 1874, 1876, 0, 1809, 0, 1859, 1810, 1811, 1812, + 2652, 0, 1806, 0, 1807, 0, 0, 0, 0, 0, + 1760, 1761, 0, 0, 0, 1837, 0, 1762, 1817, 0, + 1737, 1838, 1819, 1767, 1768, 1839, 1840, 1841, 1734, 1735, + 1821, 1822, 0, 1843, 1736, 1823, 1826, 0, 1770, 2166, + 0, 1754, 0, 0, 0, 1772, 1800, 0, 0, 0, + 1733, 0, 1829, 0, 0, 0, 2166, 0, 0, 1776, + 0, 0, 966, 2014, 1529, 1587, 3464, 3463, 3472, 3473, + 3477, 1725, 2650, 0, 0, 1620, 1625, 1618, 1622, 3476, + 0, 0, 0, 0, 1639, 1638, 0, 0, 0, 3476, + 2094, 1642, 2109, 0, 0, 1899, 1950, 0, 0, 0, + 1855, 1856, 0, 0, 720, 719, 0, 723, 799, 0, + 740, 728, 717, 2533, 2532, 0, 0, 1468, 1471, 0, + 0, 2277, 0, 0, 2626, 2283, 2264, 2274, 0, 0, + 0, 3312, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3227, 3197, 2626, 0, 0, 3258, 0, 0, 3251, + 3252, 0, 0, 0, 3224, 3225, 3226, 0, 2734, 2735, + 2681, 2683, 0, 2682, 2732, 2730, 2733, 2728, 2729, 2727, + 2731, 3233, 0, 3206, 3207, 3208, 0, 0, 2413, 2424, + 2456, 2457, 2434, 2431, 2381, 2452, 2166, 2391, 0, 2604, + 0, 0, 0, 0, 2412, 2382, 0, 2405, 2363, 2453, + 2087, 2445, 2378, 2379, 2025, 1997, 0, 0, 1987, 2028, + 0, 2028, 1989, 1990, 1997, 0, 1997, 1992, 477, 2633, + 0, 2638, 0, 0, 562, 1442, 1482, 1474, 1481, 1478, + 1493, 1491, 1480, 1188, 1187, 0, 1494, 0, 2310, 2311, + 81, 83, 2309, 84, 0, 2494, 2495, 2488, 2507, 2483, + 0, 414, 424, 416, 420, 421, 422, 417, 3299, 3300, + 3292, 3295, 3293, 3294, 3298, 3301, 3302, 3289, 3296, 2146, + 1416, 1414, 1413, 1415, 1404, 1410, 1411, 2528, 2526, 2521, + 1391, 0, 1374, 2355, 2166, 0, 3565, 144, 1133, 0, + 162, 3417, 0, 0, 0, 0, 0, 0, 826, 203, + 274, 0, 272, 3535, 256, 3539, 3523, 0, 145, 0, + 160, 3532, 254, 3538, 0, 2676, 2219, 2222, 0, 2211, + 2213, 2214, 2693, 2216, 0, 3269, 0, 2203, 1554, 1559, + 3449, 0, 2090, 2146, 1597, 1598, 1598, 2648, 0, 0, + 2304, 2297, 2284, 1587, 1560, 1521, 3452, 1508, 3193, 0, + 0, 1244, 0, 0, 0, 261, 264, 262, 263, 664, + 663, 0, 2443, 657, 2291, 2291, 217, 2291, 2291, 216, + 218, 0, 212, 209, 219, 2291, 1264, 205, 0, 0, + 0, 0, 2166, 0, 0, 0, 223, 0, 0, 2443, + 637, 616, 617, 620, 621, 622, 1133, 0, 3392, 3391, + 0, 3407, 0, 0, 3409, 0, 3408, 3406, 3374, 3388, + 0, 1261, 0, 1267, 1269, 0, 0, 3502, 1421, 0, + 286, 327, 0, 529, 0, 0, 2166, 0, 2166, 2166, + 0, 0, 2166, 0, 2166, 0, 0, 0, 0, 0, + 0, 0, 2166, 0, 0, 0, 0, 2166, 0, 1459, + 0, 0, 0, 0, 2443, 646, 0, 2291, 606, 623, + 624, 627, 628, 629, 630, 631, 634, 632, 633, 0, + 0, 291, 292, 362, 554, 1075, 1073, 1076, 1074, 1097, + 0, 1071, 1072, 1101, 1138, 0, 1138, 344, 347, 0, + 351, 350, 0, 0, 1001, 382, 381, 379, 477, 369, + 377, 371, 0, 378, 2174, 2175, 2172, 2170, 2173, 1572, + 1571, 0, 2330, 1574, 2251, 2345, 1997, 2663, 2089, 0, + 2339, 2087, 0, 2344, 2228, 3327, 678, 877, 3386, 1363, + 0, 363, 0, 0, 498, 3401, 0, 3421, 0, 0, + 0, 0, 0, 0, 0, 0, 517, 2312, 0, 1493, + 1497, 2548, 3280, 3281, 3279, 510, 0, 506, 498, 282, + 0, 540, 0, 579, 581, 541, 589, 583, 0, 1928, + 1958, 0, 1077, 1077, 1063, 1085, 1945, 1939, 1942, 0, + 1077, 1947, 1077, 1940, 1077, 0, 0, 1937, 1938, 0, + 0, 0, 1867, 1864, 0, 0, 0, 1916, 0, 0, + 0, 0, 0, 1653, 0, 1850, 1872, 1870, 0, 0, + 0, 0, 0, 0, 0, 0, 1878, 1710, 0, 1708, + 0, 1709, 0, 1711, 0, 0, 1860, 0, 1679, 1698, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1953, + 0, 0, 2182, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2654, 0, 0, 0, 1151, 1157, + 1160, 1161, 1163, 1155, 0, 1831, 0, 0, 0, 1563, + 2013, 3478, 1529, 0, 0, 0, 3470, 1587, 3474, 3460, + 0, 3475, 1910, 1908, 0, 1636, 1632, 0, 1630, 2093, + 1652, 1651, 0, 0, 0, 1640, 2111, 2110, 0, 1898, + 0, 0, 1951, 2651, 1598, 1846, 1597, 730, 0, 748, + 722, 0, 2166, 725, 739, 0, 751, 0, 0, 0, + 393, 0, 1472, 0, 0, 2281, 2282, 2626, 0, 0, + 0, 2280, 2642, 2641, 2653, 805, 0, 2053, 0, 3310, + 3390, 0, 0, 0, 0, 0, 0, 0, 3189, 3241, + 3232, 0, 0, 0, 0, 3256, 3250, 3247, 3248, 0, + 0, 0, 3231, 3205, 3211, 3210, 3213, 3215, 2401, 2400, + 0, 2454, 2146, 2161, 2151, 0, 2154, 2153, 2156, 2374, + 2393, 2395, 2455, 2027, 2020, 0, 3455, 1587, 2017, 2018, + 2026, 1997, 0, 0, 1991, 1988, 2029, 0, 2028, 2028, + 1997, 0, 1971, 2317, 2320, 0, 1970, 1576, 0, 2637, + 0, 0, 324, 0, 561, 0, 2047, 3195, 0, 0, + 2486, 0, 2481, 2484, 0, 0, 0, 3287, 0, 1406, + 1412, 1390, 0, 1397, 1395, 0, 0, 2354, 3554, 3567, + 0, 161, 0, 1228, 1230, 1229, 1213, 1214, 0, 139, + 141, 0, 0, 2291, 2291, 2291, 2291, 2291, 0, 2291, + 2291, 2291, 2291, 2291, 0, 2291, 2291, 2291, 2291, 2291, + 2291, 2291, 2291, 2291, 2291, 0, 0, 2291, 2291, 923, + 134, 693, 707, 827, 830, 871, 855, 856, 0, 1133, + 204, 0, 3543, 3542, 1597, 0, 270, 273, 275, 269, + 318, 0, 232, 3502, 0, 318, 0, 147, 1122, 2215, + 0, 0, 2647, 2140, 2143, 1588, 0, 0, 1535, 3450, + 0, 2091, 2102, 1556, 1590, 1600, 1593, 0, 1598, 2300, + 1597, 2301, 1517, 1563, 1521, 0, 0, 1509, 1510, 876, + 875, 266, 265, 278, 279, 2192, 2193, 2190, 2191, 670, + 683, 2194, 684, 658, 2166, 2166, 2296, 2295, 2166, 2166, + 211, 208, 2294, 2293, 2166, 2166, 206, 227, 226, 228, + 229, 231, 230, 225, 1260, 0, 671, 672, 638, 0, + 618, 1351, 1351, 0, 1351, 0, 0, 1351, 2291, 0, + 0, 711, 1369, 2291, 0, 0, 0, 0, 0, 1335, + 0, 1351, 0, 0, 0, 0, 0, 1281, 1334, 828, + 1241, 1280, 1282, 1294, 707, 0, 1312, 1337, 1338, 1336, + 3395, 0, 3397, 3380, 3379, 3378, 3375, 0, 2166, 2166, + 2166, 0, 2166, 3416, 3418, 3430, 0, 0, 237, 3504, + 0, 3506, 0, 1425, 0, 1424, 537, 533, 2166, 2166, + 103, 2166, 95, 96, 91, 123, 124, 93, 94, 99, + 98, 100, 101, 104, 105, 102, 97, 92, 127, 129, + 128, 106, 125, 126, 90, 677, 676, 675, 674, 647, + 0, 0, 2443, 625, 361, 0, 1083, 1081, 1081, 0, + 1081, 0, 1129, 977, 979, 978, 980, 981, 1083, 1083, + 1081, 1081, 293, 357, 0, 1034, 1238, 1033, 346, 342, + 1062, 2166, 359, 380, 1573, 1575, 0, 2087, 2666, 0, + 2163, 1597, 2334, 2336, 2227, 596, 2626, 573, 502, 571, + 3402, 0, 3320, 3325, 0, 3383, 3382, 3405, 3405, 3405, + 3405, 519, 0, 2261, 1488, 1493, 1497, 0, 1489, 2559, + 500, 504, 476, 555, 544, 477, 0, 1959, 1929, 1930, + 1944, 1946, 1943, 1932, 1949, 1936, 1941, 1948, 1934, 1727, + 1757, 1731, 1730, 0, 0, 0, 1787, 0, 1914, 1897, + 1895, 0, 0, 1764, 0, 1766, 0, 0, 1852, 1820, + 1893, 1790, 1824, 0, 1769, 0, 1796, 1794, 0, 1707, + 1705, 1706, 0, 1777, 1804, 0, 1696, 1805, 0, 1836, + 1783, 0, 1785, 0, 1786, 0, 1815, 0, 1788, 1818, + 1842, 1723, 2184, 2183, 2181, 1738, 2166, 0, 1791, 1755, + 0, 0, 1828, 2655, 2656, 0, 1830, 0, 0, 1162, + 1148, 1149, 1150, 0, 1152, 1154, 1156, 0, 2166, 1844, + 1655, 1654, 3467, 1597, 3479, 3481, 0, 3471, 1530, 2014, + 3468, 3459, 2012, 2008, 2010, 0, 1628, 0, 1637, 1634, + 0, 1631, 2113, 2112, 2143, 0, 0, 1847, 1600, 1857, + 0, 731, 732, 734, 736, 0, 801, 726, 0, 715, + 0, 730, 718, 1469, 578, 2278, 2287, 0, 2626, 2275, + 701, 2626, 0, 805, 0, 1563, 1568, 711, 0, 0, + 0, 3307, 3306, 3305, 3304, 3229, 3228, 3261, 3260, 3254, + 3253, 3255, 0, 0, 3234, 0, 0, 2188, 2189, 2187, + 2185, 2186, 2392, 2150, 2146, 2388, 2022, 0, 1576, 2002, + 2003, 2005, 1587, 2016, 0, 1968, 1997, 0, 0, 1976, + 1997, 1972, 1974, 0, 2087, 0, 0, 2080, 576, 2639, + 1595, 566, 563, 564, 0, 2050, 0, 2051, 2048, 2049, + 82, 2166, 0, 0, 432, 427, 435, 429, 431, 430, + 436, 437, 438, 439, 433, 428, 434, 426, 425, 0, + 1417, 0, 0, 2356, 2357, 3323, 0, 137, 0, 0, + 2291, 694, 2166, 2166, 2166, 2166, 853, 874, 2166, 2166, + 2166, 0, 0, 2291, 2166, 0, 0, 2166, 2166, 2166, + 2166, 0, 0, 2166, 861, 862, 860, 2166, 2166, 1235, + 0, 2789, 0, 0, 0, 893, 894, 896, 897, 898, + 899, 0, 924, 900, 822, 1189, 1189, 926, 2658, 2559, + 706, 708, 1133, 831, 0, 136, 1597, 167, 268, 271, + 316, 322, 321, 259, 0, 0, 0, 314, 320, 319, + 0, 891, 892, 890, 889, 0, 3502, 0, 2220, 2212, + 2217, 0, 2144, 2145, 2142, 3269, 1597, 2099, 0, 0, + 1562, 0, 1594, 1604, 1603, 2645, 2649, 2308, 0, 0, + 2302, 2306, 1507, 1587, 1564, 1587, 0, 1511, 1560, 1522, + 1563, 210, 215, 214, 207, 220, 213, 224, 619, 1235, + 822, 1352, 0, 0, 1316, 1319, 1317, 820, 2253, 1462, + 2253, 0, 0, 2253, 0, 2255, 0, 0, 0, 2253, + 2253, 0, 1462, 0, 709, 1372, 1370, 1371, 0, 0, + 1462, 1328, 1276, 1329, 0, 1277, 2253, 1462, 1296, 1462, + 1462, 0, 829, 1133, 1278, 1279, 923, 1366, 3396, 3394, + 3393, 0, 3376, 3412, 3410, 3411, 3414, 0, 0, 3413, + 3415, 3431, 0, 0, 0, 1266, 0, 240, 238, 248, + 3503, 0, 1252, 2626, 3506, 1427, 1428, 0, 0, 0, + 116, 118, 0, 120, 122, 0, 112, 114, 608, 673, + 626, 290, 1084, 1006, 1082, 1010, 1011, 298, 1138, 0, + 0, 1115, 1138, 1144, 1138, 1144, 1066, 370, 2345, 2338, + 2164, 0, 2340, 364, 0, 3405, 3419, 3419, 3419, 3419, + 327, 515, 518, 2313, 1490, 1498, 2561, 2560, 0, 0, + 477, 1138, 1138, 1138, 1868, 0, 0, 0, 0, 1920, + 0, 0, 0, 0, 0, 1726, 0, 1848, 0, 0, + 0, 0, 1063, 1686, 1688, 1684, 1687, 0, 1077, 1690, + 0, 1044, 1077, 1693, 1695, 1680, 1681, 1682, 1683, 0, + 0, 1962, 1963, 0, 2202, 2201, 2200, 0, 0, 0, + 0, 2657, 1146, 1833, 0, 1159, 1153, 1151, 1158, 0, + 2015, 3480, 1533, 3469, 1563, 0, 1911, 1633, 0, 0, + 2115, 0, 2098, 0, 1900, 1858, 735, 0, 802, 0, + 755, 0, 753, 729, 0, 0, 0, 0, 3455, 2276, + 2279, 1563, 2643, 2654, 1587, 1564, 1587, 810, 1597, 1994, + 2054, 3309, 3308, 0, 0, 3212, 3214, 2394, 2019, 1568, + 2021, 2080, 0, 2007, 2006, 3477, 0, 1964, 1997, 1997, + 0, 1964, 0, 0, 2319, 2137, 2321, 1579, 0, 1570, + 1570, 1577, 2045, 3476, 2166, 565, 1297, 0, 1298, 1309, + 1311, 1496, 0, 2513, 0, 2511, 2487, 2514, 0, 1396, + 1398, 0, 0, 0, 0, 0, 2199, 2198, 850, 843, 842, 845, 844, 847, 846, 0, 839, 836, 848, 838, 863, 0, 851, 833, 887, 888, 886, 857, 864, 834, 835, 841, 840, 837, 879, 884, 882, 881, 880, 885, - 883, 852, 870, 849, 865, 925, 1235, 0, 0, 2660, - 689, 685, 923, 0, 0, 0, 1188, 916, 822, 0, - 901, 1234, 1189, 822, 822, 0, 0, 687, 812, 832, - 869, 868, 866, 867, 169, 195, 299, 3535, 599, 600, - 0, 0, 3505, 288, 3529, 259, 0, 0, 1122, 2561, - 2142, 1588, 0, 0, 2205, 2207, 2099, 2100, 2095, 2091, - 0, 2102, 2104, 1601, 1600, 0, 1597, 2297, 0, 1538, - 1557, 1536, 1522, 1511, 1512, 1562, 1519, 1547, 1546, 0, - 1461, 1338, 0, 1313, 0, 0, 0, 1287, 0, 0, - 2252, 0, 1340, 1339, 0, 0, 0, 1348, 1349, 0, - 2132, 2134, 2142, 0, 1331, 1346, 1347, 0, 0, 0, - 0, 1303, 0, 1292, 1350, 1350, 1312, 0, 0, 1367, - 1314, 3397, 2168, 2167, 247, 236, 0, 0, 1267, 1269, - 0, 0, 1270, 3504, 0, 1249, 1432, 0, 327, 108, - 2165, 109, 2165, 107, 2165, 1008, 296, 0, 1004, 1005, - 1007, 1009, 2164, 3421, 3418, 0, 3317, 3316, 3315, 3314, - 521, 520, 0, 0, 540, 0, 1930, 1932, 1934, 1780, - 1781, 1916, 2142, 1914, 1921, 0, 0, 1920, 1813, 0, - 1764, 0, 1848, 0, 1824, 1794, 1792, 1777, 1688, 1684, - 1691, 1044, 1690, 1137, 1807, 1783, 1815, 1738, 2165, 1791, - 1797, 1798, 0, 1831, 2165, 2136, 2010, 1634, 0, 2117, - 2116, 0, 0, 2142, 2142, 733, 736, 2165, 800, 728, - 0, 0, 752, 0, 716, 2285, 2287, 703, 705, 1586, - 808, 807, 0, 700, 811, 809, 698, 806, 3235, 3234, - 1596, 1998, 2003, 0, 1976, 0, 1980, 1985, 1981, 0, - 1972, 0, 2161, 1569, 0, 0, 1997, 2041, 1595, 0, - 1491, 0, 2051, 2508, 2165, 0, 2484, 3296, 0, 0, - 0, 2142, 1232, 0, 859, 2505, 858, 695, 0, 0, - 3454, 826, 895, 0, 822, 1184, 1185, 1234, 1166, 1209, - 2657, 1234, 1234, 930, 918, 928, 2659, 813, 2625, 0, - 497, 497, 0, 196, 197, 309, 0, 300, 302, 276, - 260, 0, 0, 603, 601, 602, 0, 0, 146, 0, - 289, 0, 3532, 3528, 3505, 0, 2569, 2140, 1597, 2203, - 1596, 0, 0, 2645, 2306, 2304, 3448, 1586, 0, 1298, - 0, 0, 1286, 0, 1447, 1128, 1323, 0, 1282, 1325, - 1326, 1362, 1284, 0, 2135, 710, 1291, 0, 1365, 1283, - 1305, 1289, 1317, 1366, 234, 239, 249, 250, 1253, 1559, - 1525, 3508, 3514, 0, 1433, 1429, 1430, 1425, 534, 117, - 121, 113, 0, 0, 3318, 0, 3425, 3419, 3423, 0, - 0, 547, 586, 0, 1918, 1879, 1922, 1923, 0, 1850, - 1852, 1693, 0, 1146, 0, 2145, 2113, 2107, 0, 0, - 0, 0, 0, 0, 2126, 2118, 0, 2096, 1903, 803, - 0, 1596, 741, 758, 757, 754, 804, 2643, 3448, 2022, - 1575, 0, 0, 0, 0, 0, 2317, 1577, 1569, 1569, - 2045, 0, 0, 327, 1309, 2511, 0, 0, 0, 3268, - 0, 1231, 0, 3268, 0, 0, 690, 692, 707, 0, - 1234, 1209, 2657, 0, 1170, 0, 902, 0, 906, 908, - 932, 927, 919, 940, 0, 872, 497, 497, 170, 175, - 176, 180, 178, 189, 0, 0, 182, 0, 182, 1598, - 198, 312, 310, 311, 0, 317, 0, 277, 556, 1596, - 245, 315, 3530, 0, 148, 0, 0, 0, 0, 2562, - 2564, 0, 2220, 2208, 2206, 2105, 2103, 1537, 1518, 0, - 1300, 821, 0, 0, 1365, 1288, 1332, 1324, 1322, 1461, - 2133, 0, 1321, 1304, 1306, 1408, 241, 1271, 477, 1562, - 1525, 0, 0, 3459, 3510, 3509, 0, 3506, 1428, 0, - 1435, 297, 294, 0, 3424, 3422, 2313, 1991, 540, 2142, - 0, 0, 1762, 1739, 1833, 1586, 0, 2123, 0, 0, - 2121, 2120, 0, 2115, 2122, 0, 0, 749, 765, 761, - 0, 763, 764, 786, 699, 1562, 2079, 1977, 0, 1982, - 0, 1974, 1580, 1579, 2034, 0, 2033, 0, 2039, 2043, - 2634, 567, 2514, 0, 3268, 1199, 2142, 0, 1201, 854, - 0, 2558, 920, 914, 910, 0, 0, 1169, 0, 1174, - 1210, 0, 904, 0, 0, 1164, 958, 1111, 0, 961, - 0, 931, 933, 1104, 1105, 935, 0, 0, 0, 0, - 0, 0, 1088, 0, 1091, 0, 0, 929, 0, 941, - 1087, 1094, 2658, 697, 873, 0, 0, 0, 177, 179, - 181, 194, 200, 0, 199, 0, 255, 313, 0, 0, - 303, 301, 3536, 329, 3523, 237, 246, 556, 0, 0, - 0, 0, 2563, 0, 0, 2570, 2572, 0, 0, 0, - 1299, 1330, 0, 1320, 1285, 711, 0, 1290, 0, 243, - 251, 3507, 1563, 1586, 1586, 0, 3511, 1559, 1526, 1562, - 3452, 0, 0, 0, 1434, 1439, 0, 1436, 1438, 0, - 0, 2548, 587, 1917, 1925, 1924, 1531, 2124, 0, 2125, - 2128, 0, 0, 2129, 0, 745, 747, 1597, 0, 742, - 0, 759, 0, 2290, 2290, 0, 2290, 2290, 2290, 2290, - 779, 787, 789, 0, 2023, 1999, 0, 0, 2029, 2029, - 2040, 0, 1197, 0, 0, 2290, 1341, 1200, 1225, 1207, - 0, 1230, 1233, 1341, 1202, 1224, 1205, 0, 686, 0, - 0, 912, 1167, 0, 1171, 1172, 1173, 0, 1165, 0, - 0, 0, 0, 959, 960, 1112, 934, 1110, 1103, 1102, - 0, 1093, 0, 0, 3475, 970, 971, 1089, 968, 969, - 0, 0, 949, 0, 0, 1095, 1086, 942, 0, 497, - 0, 497, 555, 173, 171, 185, 183, 168, 308, 0, - 0, 557, 330, 0, 248, 3533, 2567, 2568, 0, 2565, - 0, 0, 2571, 1319, 1302, 0, 1329, 1294, 0, 242, - 0, 235, 1586, 1539, 1542, 1527, 3513, 3512, 1562, 1524, - 1563, 1548, 1549, 0, 3515, 0, 0, 1431, 0, 295, - 2314, 2322, 0, 1121, 2119, 2127, 2131, 2130, 743, 0, - 0, 750, 772, 762, 768, 0, 2290, 0, 0, 2290, - 0, 0, 0, 0, 0, 756, 788, 2290, 1979, 1984, - 0, 2037, 2035, 222, 0, 0, 1341, 1198, 1223, 1222, - 1203, 0, 1217, 2165, 140, 1343, 1342, 1208, 0, 142, - 1206, 917, 0, 0, 0, 1168, 0, 0, 0, 0, - 0, 0, 1109, 1108, 1106, 1107, 2606, 2605, 0, 1604, - 1092, 0, 944, 1101, 943, 188, 192, 187, 190, 0, - 1598, 318, 318, 306, 0, 0, 0, 0, 2566, 2574, - 2573, 1301, 0, 244, 1543, 0, 1586, 1550, 3453, 3516, - 3517, 1437, 0, 0, 2549, 749, 746, 737, 772, 0, - 770, 0, 766, 760, 767, 0, 798, 792, 0, 794, - 795, 793, 790, 783, 0, 781, 0, 0, 2030, 0, - 0, 0, 1214, 1215, 138, 1204, 1226, 1216, 1345, 1344, - 1221, 1220, 1218, 1219, 0, 0, 0, 1180, 1179, 0, - 0, 1176, 1175, 1197, 0, 1199, 1201, 967, 0, 1090, - 936, 936, 950, 556, 556, 174, 255, 259, 0, 0, - 0, 555, 1596, 250, 0, 1541, 1523, 2321, 2323, 2575, - 744, 769, 0, 777, 773, 775, 778, 797, 796, 0, - 780, 0, 791, 2032, 2031, 2046, 0, 0, 1197, 0, - 1183, 1181, 1182, 0, 0, 903, 1197, 907, 909, 1605, - 0, 947, 937, 939, 946, 952, 953, 951, 954, 3539, - 3539, 172, 186, 259, 307, 304, 0, 558, 3524, 233, - 1307, 0, 2561, 771, 0, 0, 786, 785, 782, 0, - 0, 915, 911, 1197, 0, 0, 905, 1606, 938, 945, - 955, 957, 3540, 193, 191, 184, 0, 0, 0, 0, - 2569, 776, 774, 784, 2038, 2036, 913, 1178, 1177, 956, - 305, 559, 0, 0, 2577, 3525, 2576, 0, 2581, 3520, - 0, 0, 2588, 3518, 3519, 0, 3526, 2579, 2580, 2578, - 2583, 0, 0, 2585, 2586, 0, 2550, 3521, 477, 2587, - 2582, 0, 2589, 2591, 0, 3527, 2584, 0, 1596, 2590, - 0, 1597, 2592 + 883, 852, 870, 849, 865, 925, 1236, 0, 0, 2661, + 689, 685, 923, 0, 0, 0, 1189, 916, 822, 0, + 901, 1235, 1190, 822, 822, 0, 0, 687, 812, 832, + 869, 868, 866, 867, 169, 195, 299, 3536, 599, 600, + 0, 0, 3506, 288, 3530, 259, 0, 0, 1123, 2562, + 2143, 1589, 0, 0, 2206, 2208, 2100, 2101, 2096, 2092, + 0, 2103, 2105, 1602, 1601, 0, 1598, 2298, 0, 1539, + 1558, 1537, 1523, 1512, 1513, 1563, 1520, 1548, 1547, 0, + 1462, 1339, 0, 1314, 0, 0, 0, 1288, 0, 0, + 2253, 0, 1341, 1340, 0, 0, 0, 1349, 1350, 0, + 2133, 2135, 2143, 0, 1332, 1347, 1348, 0, 0, 0, + 0, 1304, 0, 1293, 1351, 1351, 1313, 0, 0, 1368, + 1315, 3398, 2169, 2168, 247, 236, 0, 0, 1268, 1270, + 0, 0, 1271, 3505, 0, 1250, 1433, 0, 327, 108, + 2166, 109, 2166, 107, 2166, 1008, 296, 0, 1004, 1005, + 1007, 1009, 2165, 3422, 3419, 0, 3318, 3317, 3316, 3315, + 521, 520, 0, 0, 540, 0, 1931, 1933, 1935, 1781, + 1782, 1917, 2143, 1915, 1922, 0, 0, 1921, 1814, 0, + 1765, 0, 1849, 0, 1825, 1795, 1793, 1778, 1689, 1685, + 1692, 1045, 1691, 1138, 1808, 1784, 1816, 1739, 2166, 1792, + 1798, 1799, 0, 1832, 2166, 2137, 2011, 1635, 0, 2118, + 2117, 0, 0, 2143, 2143, 733, 2166, 800, 728, 0, + 0, 752, 0, 716, 2286, 2288, 703, 705, 1587, 808, + 807, 0, 700, 811, 809, 698, 806, 3236, 3235, 1597, + 1999, 2004, 0, 1977, 0, 1981, 1986, 1982, 0, 1973, + 0, 2162, 1570, 0, 0, 1998, 2042, 1596, 0, 1492, + 0, 2052, 2509, 2166, 0, 2485, 3297, 0, 0, 0, + 2143, 1233, 0, 859, 2506, 858, 695, 0, 0, 3455, + 826, 895, 0, 822, 1185, 1186, 1235, 1167, 1210, 2658, + 1235, 1235, 930, 918, 928, 2660, 813, 2626, 0, 497, + 497, 0, 196, 197, 309, 0, 300, 302, 276, 260, + 0, 0, 603, 601, 602, 0, 0, 146, 0, 289, + 0, 3533, 3529, 3506, 0, 2570, 2141, 1598, 2204, 1597, + 0, 0, 2646, 2307, 2305, 3449, 1587, 0, 1299, 0, + 0, 1287, 0, 1448, 1129, 1324, 0, 1283, 1326, 1327, + 1363, 1285, 0, 2136, 710, 1292, 0, 1366, 1284, 1306, + 1290, 1318, 1367, 234, 239, 249, 250, 1254, 1560, 1526, + 3509, 3515, 0, 1434, 1430, 1431, 1426, 534, 117, 121, + 113, 0, 0, 3319, 0, 3426, 3420, 3424, 0, 0, + 547, 586, 0, 1919, 1880, 1923, 1924, 0, 1851, 1853, + 1694, 0, 1147, 0, 2146, 2114, 2108, 0, 0, 0, + 0, 0, 0, 2127, 2119, 0, 2097, 1904, 803, 0, + 0, 741, 758, 757, 754, 804, 2644, 3449, 2023, 1576, + 0, 0, 0, 0, 0, 2318, 1578, 1570, 1570, 2046, + 0, 0, 327, 1310, 2512, 0, 0, 0, 3269, 0, + 1232, 0, 3269, 0, 0, 690, 692, 707, 0, 1235, + 1210, 2658, 0, 1171, 0, 902, 0, 906, 908, 932, + 927, 919, 940, 0, 872, 497, 497, 170, 175, 176, + 180, 178, 189, 0, 0, 182, 0, 182, 1599, 198, + 312, 310, 311, 0, 317, 0, 277, 556, 1597, 245, + 315, 3531, 0, 148, 0, 0, 0, 0, 2563, 2565, + 0, 2221, 2209, 2207, 2106, 2104, 1538, 1519, 0, 1301, + 821, 0, 0, 1366, 1289, 1333, 1325, 1323, 1462, 2134, + 0, 1322, 1305, 1307, 1409, 241, 1272, 477, 1563, 1526, + 0, 0, 3460, 3511, 3510, 0, 3507, 1429, 0, 1436, + 297, 294, 0, 3425, 3423, 2314, 1992, 540, 2143, 0, + 0, 1763, 1740, 1834, 1587, 0, 2124, 0, 0, 2122, + 2121, 0, 2116, 2123, 0, 0, 749, 765, 761, 0, + 763, 764, 786, 699, 1563, 2080, 1978, 0, 1983, 0, + 1975, 1581, 1580, 2035, 0, 2034, 0, 2040, 2044, 2635, + 567, 2515, 0, 3269, 1200, 2143, 0, 1202, 854, 0, + 2559, 920, 914, 910, 0, 0, 1170, 0, 1175, 1211, + 0, 904, 0, 0, 1165, 958, 1112, 0, 961, 0, + 931, 933, 1105, 1106, 935, 0, 0, 0, 0, 0, + 0, 1089, 0, 1092, 0, 0, 929, 0, 941, 1088, + 1095, 2659, 697, 873, 0, 0, 0, 177, 179, 181, + 194, 200, 0, 199, 0, 255, 313, 0, 0, 303, + 301, 3537, 329, 3524, 237, 246, 556, 0, 0, 0, + 0, 2564, 0, 0, 2571, 2573, 0, 0, 0, 1300, + 1331, 0, 1321, 1286, 711, 0, 1291, 0, 243, 251, + 3508, 1564, 1587, 1587, 0, 3512, 1560, 1527, 1563, 3453, + 0, 0, 0, 1435, 1440, 0, 1437, 1439, 0, 0, + 2549, 587, 1918, 1926, 1925, 1532, 2125, 0, 2126, 2129, + 0, 0, 2130, 0, 745, 747, 737, 0, 742, 0, + 759, 0, 2291, 2291, 0, 2291, 2291, 2291, 2291, 779, + 787, 789, 0, 2024, 2000, 0, 0, 2030, 2030, 2041, + 0, 1198, 0, 0, 2291, 1342, 1201, 1226, 1208, 0, + 1231, 1234, 1342, 1203, 1225, 1206, 0, 686, 0, 0, + 912, 1168, 0, 1172, 1173, 1174, 0, 1166, 0, 0, + 0, 0, 959, 960, 1113, 934, 1111, 1104, 1103, 0, + 1094, 0, 0, 3476, 970, 971, 1090, 968, 969, 0, + 0, 949, 0, 0, 1096, 1087, 942, 0, 497, 0, + 497, 555, 173, 171, 185, 183, 168, 308, 0, 0, + 557, 330, 0, 248, 3534, 2568, 2569, 0, 2566, 0, + 0, 2572, 1320, 1303, 0, 1330, 1295, 0, 242, 0, + 235, 1587, 1540, 1543, 1528, 3514, 3513, 1563, 1525, 1564, + 1549, 1550, 0, 3516, 0, 0, 1432, 0, 295, 2315, + 2323, 0, 1122, 2120, 2128, 2132, 2131, 743, 0, 750, + 772, 762, 768, 0, 2291, 0, 0, 2291, 0, 0, + 0, 0, 0, 756, 788, 2291, 1980, 1985, 0, 2038, + 2036, 222, 0, 0, 1342, 1199, 1224, 1223, 1204, 0, + 1218, 2166, 140, 1344, 1343, 1209, 0, 142, 1207, 917, + 0, 0, 0, 1169, 0, 0, 0, 0, 0, 0, + 1110, 1109, 1107, 1108, 2607, 2606, 0, 1605, 1093, 0, + 944, 1102, 943, 188, 192, 187, 190, 0, 1599, 318, + 318, 306, 0, 0, 0, 0, 2567, 2575, 2574, 1302, + 0, 244, 1544, 0, 1587, 1551, 3454, 3517, 3518, 1438, + 0, 0, 2550, 749, 746, 772, 0, 770, 0, 766, + 760, 767, 0, 798, 792, 0, 794, 795, 793, 790, + 783, 0, 781, 0, 0, 2031, 0, 0, 0, 1215, + 1216, 138, 1205, 1227, 1217, 1346, 1345, 1222, 1221, 1219, + 1220, 0, 0, 0, 1181, 1180, 0, 0, 1177, 1176, + 1198, 0, 1200, 1202, 967, 0, 1091, 936, 936, 950, + 556, 556, 174, 255, 259, 0, 0, 0, 555, 1597, + 250, 0, 1542, 1524, 2322, 2324, 2576, 744, 769, 0, + 777, 773, 775, 778, 797, 796, 0, 780, 0, 791, + 2033, 2032, 2047, 0, 0, 1198, 0, 1184, 1182, 1183, + 0, 0, 903, 1198, 907, 909, 1606, 0, 947, 937, + 939, 946, 952, 953, 951, 954, 3540, 3540, 172, 186, + 259, 307, 304, 0, 558, 3525, 233, 1308, 0, 2562, + 771, 0, 0, 786, 785, 782, 0, 0, 915, 911, + 1198, 0, 0, 905, 1607, 938, 945, 955, 957, 3541, + 193, 191, 184, 0, 0, 0, 0, 2570, 776, 774, + 784, 2039, 2037, 913, 1179, 1178, 956, 305, 559, 0, + 0, 2578, 3526, 2577, 0, 2582, 3521, 0, 0, 2589, + 3519, 3520, 0, 3527, 2580, 2581, 2579, 2584, 0, 0, + 2586, 2587, 0, 2551, 3522, 477, 2588, 2583, 0, 2590, + 2592, 0, 3528, 2585, 0, 1597, 2591, 0, 1598, 2593 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -5488, -5488, -5488, -5488, 2432, 4793, -5488, -5488, -5488, 4454, - -5488, -5488, -5488, -5488, 3795, -5488, -5488, 1759, -5488, -5488, - -5488, -5488, -5488, 2134, -5488, 598, -5488, 603, -5488, 608, - -3225, -543, 4503, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, 268, 261, 274, -5488, - 277, -5488, -3447, -5488, -5488, -5488, -5488, 275, -5488, -5488, - -3673, -5488, -5488, 2286, -3015, -5488, -5488, 152, 1623, -5488, - -5488, 442, -5488, 82, -5488, -5488, -5488, -4481, -76, -282, - -5488, 91, 9, -2712, 4394, -4824, 820, 1709, -5488, -5488, - 2312, -5488, -5488, -3104, -5488, -5488, -2114, -5488, -5488, -5488, - 723, -3671, 1530, -5488, -5488, 279, -5488, -5488, -5488, -5488, - -5488, -3934, -173, -171, -5488, -581, -2968, -5488, -5488, -2245, - -5488, -5488, 4367, -5488, -5488, -5488, 2133, -5488, -4062, -5488, - -4758, 4950, -5488, -639, -5488, -5488, -5488, 2151, -5488, -5488, - 840, 1517, 3565, 3002, -5488, -5488, -5488, -5488, 3117, -5488, - 2527, -5488, -1765, 3986, -5488, -5488, -5488, -5488, -5488, 3064, - -2525, -5488, -5488, -5488, 1808, -5488, -819, -5488, -1956, -913, - 4831, -5488, 52, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -1321, -5488, -5488, -5488, -5488, -5488, -5488, -3898, - -2108, 2075, -5488, 2101, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, 995, -5488, -5488, -5488, -5488, 65, -5488, -5488, - -5488, -5488, -5488, -5488, 2909, -5488, -5488, 4977, -5488, -5488, - -5488, -3531, -5488, -5488, -5488, -5488, -5488, -5488, 71, -5488, - -5488, -5488, -5488, -4383, -5488, -5488, -5488, -2099, -5488, -5488, - -5488, 1279, -5488, -5488, 3491, -5488, 3492, 3495, -5488, 3498, - -5488, -2958, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 72, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, 4408, -5488, -5488, -5488, -3236, -5488, - -5488, -3298, 3712, -5488, -2573, -5488, -5488, -2656, -5488, -5488, - -2497, 1819, -5488, -5488, -23, 1812, -5488, -1710, -2668, -2642, - -5488, -5488, -5488, -2732, -2726, -811, 3574, -1382, -3098, -5488, - -5488, -5488, -5488, -5488, 205, 520, -5488, -5488, -5488, 362, - 1650, 2268, -5488, -3965, -5488, -5488, 722, -5488, -5488, -5488, - -5488, -5488, 1378, 610, 1376, -5488, 941, 3283, -2931, -5488, - -5488, -5488, -5488, -5488, -5488, -49, 255, -143, -5488, -3763, - 612, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -3212, - -5488, -5488, -5488, -271, -5488, -5488, -221, -5488, -5488, -265, - -5488, 94, -5488, -5488, 1805, 1382, -5488, -5488, 945, -4439, - -5488, -5488, 3081, -1891, -5488, -726, -5488, -3845, 1682, -3472, - -3346, -5488, -5488, 377, -1224, -1189, -145, -5488, -5488, -5488, - -5488, 1128, -5488, 842, 1686, -3914, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -3913, -3912, -5488, -4865, -5488, -5488, -5488, - -4587, -5488, -5488, -5488, -5488, -5488, -5488, -176, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5487, -5488, -5488, 56, 42, - -5488, 166, 836, -5488, -3498, -987, -5488, -5488, -3487, -3455, - -3452, -5488, -1396, -3488, -1386, -3448, -5488, -5488, -5488, -1354, - -1366, 1693, -1180, -1287, 1840, -994, -654, 2130, 48, -5199, - -2881, -1107, -1038, -5488, -5488, -3386, -3318, -5488, 2892, -3369, - -656, -1911, -3334, -7, -5488, -5488, -1739, -1777, 2361, -5488, - 3707, -2094, -1014, -2124, 2058, -5488, -5488, 1473, -5488, -1142, - 1471, -5488, -5488, -5488, 1480, -5488, -188, -5488, -5488, -5488, - -5488, -4525, -5488, -2621, -3347, -5488, -5488, 5375, 5376, -3067, - -141, -140, -5488, -5488, -5488, 424, -5488, -5488, -3046, -19, - 121, 123, -3325, -4748, 449, -3138, 3704, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, 1717, -2104, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -4638, -4128, -5488, -5488, - 1171, -3642, -3468, -3429, -3910, 4644, -5488, -5488, -5488, -5488, - 4514, -3545, -3951, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - 3896, 2090, -5488, -5488, 2458, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, 366, 2469, -5488, -5488, -5488, -5488, - -5488, 3022, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - 37, -5488, -5488, -5488, -5488, -5488, 565, 3773, -5488, -5488, - -5488, -5488, -20, -5488, -5488, -5488, -5488, 3345, -5488, -5488, - -5488, -5488, 3216, -5488, -5488, -5488, -5488, -5488, -5488, 2209, - -5488, 2860, -5488, -2556, -5488, -5488, 1616, -526, -5488, -5488, - 4572, -5488, -5488, -5488, 1829, -5488, -5488, 382, -5488, 2092, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 3099, 852, - 75, 4585, -3867, -2018, -5488, -1307, -1308, -5488, -5488, -3655, - -5488, -3096, -4261, -5488, -5488, 3876, -1998, -4048, 2444, -1766, - -5488, -550, -3327, -11, 1494, -5488, 2339, 1570, 11255, -5488, - -1624, -1622, -5488, -5488, -43, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, 2777, 2783, -5488, -5488, 4210, -2778, - -5488, -5488, -795, -5488, -2902, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, 2083, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 4160, - -1618, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -1293, -5488, -2901, -5488, -5488, -5488, -5488, -5488, -5488, - -624, -5488, 4305, -5488, 4336, -5488, -3154, -1863, 2577, 2007, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, 2589, -5488, -2155, - -5488, -3730, -5488, -5488, -5488, -5488, -5488, 1037, -5488, -4107, - -5488, 1543, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, 2600, -5488, -5488, -2681, 202, -5488, 368, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -99, 1017, -96, -3706, -1564, - 2307, -5488, -5488, -1524, 4375, -1912, -5488, -5488, -5488, 2723, - -5488, 1896, -5488, -5488, -5488, 639, 647, -5488, -5488, 2124, - -5488, -5488, -5488, -5488, 770, 260, -5488, -5488, -5488, 636, - -2706, -2156, -5488, 786, -4068, -1222, -5488, -1160, -5488, -1819, - 2063, 745, -2946, -5488, 581, -1583, -653, -3153, -4415, -3374, - -5488, -2158, -5488, 3188, -5488, -5488, -5488, 669, -5488, -5488, - -5488, 1933, -5488, -1965, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -674, -1116, -5488, -5488, 2993, -1300, -535, - 5504, -319, -5488, -5488, -316, -5488, -5488, -5488, -5488, 4449, - 4198, 2958, -5488, -5488, -3342, -3076, -5488, 1117, -1139, 439, - 2488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 1476, -5488, - -3408, -5488, -5488, -5488, -312, -5488, -5488, -5488, 1516, -5488, - 61, 5335, -311, -5488, -5488, -5488, 5169, -5488, -5488, -5488, - -5488, -5488, 3799, -1415, 5177, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, 3368, -5488, -5488, -5488, -5488, -5488, -5488, - 4159, 5343, -668, -1684, -5488, -842, 3371, 2680, -812, -5488, - -5488, -5488, 4705, 5350, -5488, -5488, 5519, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, 3326, 775, -5488, -5488, - 787, -5488, -5488, -5488, -5488, 4062, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, 1746, - -48, -5488, 546, -74, -5488, 372, -5488, -5488, -5488, -5488, - -5488, -113, -5488, -5488, -117, -5488, -1317, 5025, -1821, -5488, - -1758, -3466, -5488, -1683, 2113, -5488, -5488, -5488, 3373, -5488, - -5488, -5488, -5488, 1601, -5488, -5488, -3634, -821, -1666, -3210, - 93, -5488, -5488, -5488, -452, 0, 47, 1855, -1259, -5488, - -5488, 2834, 4155, 50, 2903, -5488, 5108, 721, -457, -718, - -1066, -5488, 8706, -5488, -5488, -5488, -5488, -5488, 34, -594, - -584, 128, -634, 73, 194, 11, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, 2738, -5488, -5488, -5488, 1588, -5488, 5383, -5488, 3584, - -1759, 5388, 3466, 2774, 2770, -5488, -5488, -5488, -5488, -1719, - -5488, -5488, -1693, 209, -5488, 3789, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, -5488, -5488, 4066, -561, -555, 4265, 5400, 4914, -5488, - 4542, -5488, -5488, -5488, -5488, -5488, 1907, -5488, -1973, 2799, - -1453, -1531, -5488, -5488, 3217, 1491, -5488, 2400, -2547, -3213, - -5488, 2646, -2720, -5488, -5488, 711, -5488, -5488, -5488, 1906, - 21, 5369, 4808, -5488, -5488, -5488, -5488, -3129, -4768, -750, - -5488, -5246, -5488, -1995, -5488, -1295, 2158, -3708, -5488, -499, - -5488, -5488, -3622, -3619, 1600, -1558, 2742, 1182, -5488, -5488, - -3422, 1527, 5603, 5604, 5605, -294, -5488, -3358, -5488, -4203, - -5488, 259, -5488, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - -5488, 3332, 74, -5488, -5488, -5488, -5488, -5488, -5488, -5488, - 4098, -5488, 30, -3900, -5488, -5488, 2694, -5488, -5488, -5488, - -5488, -5488, -5488, -5488, -5488, -5488 + -5162, -5162, -5162, -5162, 2351, 4713, -5162, -5162, -5162, 4373, + -5162, -5162, -5162, -5162, 3713, -5162, -5162, 1682, -5162, -5162, + -5162, -5162, -5162, 2055, -5162, 523, -5162, 525, -5162, 527, + -3220, -545, 4428, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, 193, 186, 201, -5162, + 203, -5162, -4929, -5162, -5162, -5162, -5162, 196, -5162, -5162, + -4539, -5162, -5162, 2220, -3156, -5162, -5162, 78, 1549, -5162, + -5162, 370, -5162, 14, -5162, -5162, -5162, -4478, -146, -351, + -5162, 44, 13, -2713, 4322, -4817, 948, 1633, -5162, -5162, + 2234, -5162, -5162, -3076, -5162, -5162, -2117, -5162, -5162, -5162, + 652, -4175, 1453, -5162, -5162, 205, -5162, -5162, -5162, -5162, + -5162, -3946, -251, -248, -5162, -626, -2961, -5162, -5162, -2240, + -5162, -5162, 4288, -5162, -5162, -5162, 2056, -5162, -4066, -5162, + -3900, 4864, -5162, -631, -5162, -5162, -5162, 2071, -5162, -5162, + 762, 1436, 3485, 3489, -5162, -5162, -5162, -5162, 3194, -5162, + 2454, -5162, -1775, 3908, -5162, -5162, -5162, -5162, -5162, 2982, + -2500, -5162, -5162, -5162, 1725, -5162, -815, -5162, -1934, -900, + 4755, -5162, 60, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -1291, -5162, -5162, -5162, -5162, -5162, -5162, -3892, + -2119, 1994, -5162, 2024, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, 922, -5162, -5162, -5162, -5162, 63, -5162, -5162, + -5162, -5162, -5162, -5162, 2833, -5162, -5162, 4908, -5162, -5162, + -5162, -3539, -5162, -5162, -5162, -5162, -5162, -5162, 65, -5162, + -5162, -5162, -5162, -4420, -5162, -5162, -5162, -2098, -5162, -5162, + -5162, 1203, -5162, -5162, 3413, -5162, 3417, 3418, -5162, 3415, + -5162, -2975, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 66, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, 4321, -5162, -5162, -5162, -3000, -5162, + -5162, -3302, 3630, -5162, -2472, -5162, -5162, -2652, -5162, -5162, + -2533, 1646, -5162, -5162, 857, 2169, -5162, -1945, -2674, -2666, + -5162, -5162, -5162, -2740, -2733, -798, 3499, -1418, -2905, -5162, + -5162, -5162, -5162, -5162, 125, 440, -5162, -5162, -5162, 279, + 1564, 2186, -5162, -3972, -5162, -5162, 641, -5162, -5162, -5162, + -5162, -5162, 1298, 532, 1300, -5162, 862, 3200, -2922, -5162, + -5162, -5162, -5162, -5162, -5162, -125, 339, -215, -5162, -4040, + 538, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -3546, + -5162, -5162, -5162, -339, -5162, -5162, -295, -5162, -5162, -336, + -5162, 18, -5162, -5162, 1731, 1301, -5162, -5162, 870, -4436, + -5162, -5162, 3006, -1893, -5162, -721, -5162, -3839, 1603, -3703, + -3341, -5162, -5162, 301, -1240, -1227, -216, -5162, -5162, -5162, + -5162, 1052, -5162, 769, 1607, -3917, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -3906, -3891, -5162, -4862, -5162, -5162, -5162, + -4625, -5162, -5162, -5162, -5162, -5162, -5162, -245, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -4596, -5162, -5162, -19, -18, + -5162, 106, 773, -5162, -3486, -1153, -5162, -5162, -3477, -3470, + -3461, -5162, -1401, -3491, -1392, -3458, -5162, -5162, -5162, -1349, + -1370, 1363, -1278, -1309, 1532, -923, -115, 2067, -12, -5161, + -2890, -991, -1054, -5162, -5162, -2953, -3485, -5162, 2829, -3344, + -668, -1919, -3336, -62, -5162, -5162, -1746, -1766, 2296, -5162, + 3648, -1914, -1012, -2121, 1990, -5162, -5162, 1409, -5162, -1068, + 1411, -5162, -5162, -5162, 1420, -5162, -244, -5162, -5162, -5162, + -5162, -3474, -5162, -2600, -4143, -5162, -5162, 5316, 5317, -3180, + -199, -198, -5162, -5162, -5162, 364, -5162, -5162, -3417, -79, + 56, 62, -3361, -4747, 381, -3210, 3644, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, 1657, -2581, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -3401, -4349, -5162, -5162, + 1110, -3411, -3442, -3440, -3890, 4580, -5162, -5162, -5162, -5162, + 4446, -3549, -3236, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + 3835, 1767, -5162, -5162, 2397, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, 306, 2402, -5162, -5162, -5162, -5162, + -5162, 2959, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -24, -5162, -5162, -5162, -5162, -5162, 501, 3706, -5162, -5162, + -5162, -5162, -23, -5162, -5162, -5162, -5162, 3278, -5162, -5162, + -5162, -5162, 3149, -5162, -5162, -5162, -5162, -5162, -5162, 2142, + -5162, 2792, -5162, -2513, -5162, -5162, 1546, -529, -5162, -5162, + 4509, -5162, -5162, -5162, 1760, -5162, -5162, 314, -5162, 2023, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 3028, 784, + 3, 4517, -3871, -2018, -5162, -1282, -1283, -5162, -5162, -4051, + -5162, -4018, -4250, -5162, -5162, 3809, -1976, -4004, 2373, -1780, + -5162, -551, -3402, -64, 1447, -5162, 2496, 568, 10323, -5162, + -1593, -1546, -5162, -5162, -60, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, 2723, 2728, -5162, -5162, 4155, -2910, + -5162, -5162, -800, -5162, -2898, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, 2026, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 4099, + -1559, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -1259, -5162, -2885, -5162, -5162, -5162, -5162, -5162, -5162, + -601, -5162, 4250, -5162, 4284, -5162, -3116, -1866, 2514, 1943, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, 2529, -5162, -2151, + -5162, -3685, -5162, -5162, -5162, -5162, -5162, 973, -5162, -3965, + -5162, 1481, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, 2537, -5162, -5162, -2770, 145, -5162, 312, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -160, 956, -152, -3747, -1569, + 2439, -5162, -5162, -1525, 4294, -1948, -5162, -5162, -5162, 2666, + -5162, 1832, -5162, -5162, -5162, 586, 589, -5162, -5162, 2068, + -5162, -5162, -5162, -5162, 709, 195, -5162, -5162, -5162, 573, + -2698, -2140, -5162, 715, -4178, -1213, -5162, -1178, -5162, -1814, + 1992, 675, -2701, -5162, -168, -1584, -223, -3195, -4418, -3329, + -5162, -4030, -5162, 3117, -5162, -5162, -5162, 600, -5162, -5162, + -5162, 1860, -5162, -1949, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -672, -1127, -5162, -5162, 2920, -2333, -520, + 5428, -281, -5162, -5162, -276, -5162, -5162, -5162, -5162, 4382, + 4121, 2882, -5162, -5162, -3510, -3071, -5162, 1044, -1139, 1849, + 2406, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 1391, -5162, + -3330, -5162, -5162, -5162, -270, -5162, -5162, -5162, 1439, -5162, + -16, 5261, -268, -5162, -5162, -5162, 5096, -5162, -5162, -5162, + -5162, -5162, 3727, -1423, 5094, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, 3289, -5162, -5162, -5162, -5162, -5162, -5162, + 4084, 5270, -667, -1594, -5162, -811, 3293, 2606, -752, -5162, + -5162, -5162, 4624, 5276, -5162, -5162, 5441, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, 3256, 699, -5162, -5162, + 713, -5162, -5162, -5162, -5162, 3989, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, 1672, + -119, -5162, 475, -145, -5162, 302, -5162, -5162, -5162, -5162, + -5162, -184, -5162, -5162, -189, -5162, -1310, 4953, -1822, -5162, + -1760, -3459, -5162, -1689, 2035, -5162, -5162, -5162, 3302, -5162, + -5162, -5162, -5162, 1533, -5162, -5162, -3642, -826, -1696, -3779, + 1544, -5162, -5162, -5162, -906, 0, 169, 1321, -2345, -5162, + -5162, 2765, 3927, 55, 2725, -5162, 5038, -525, -415, -679, + -1062, -5162, 8469, -5162, -5162, -5162, -5162, -5162, 9, -585, + -577, 128, -643, 104, 139, 20, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, 2667, -5162, -5162, -5162, 1514, -5162, 5314, -5162, 3511, + -1758, 5318, 3397, 2693, 2695, -5162, -5162, -5162, -5162, -1762, + -5162, -5162, -1757, 520, -5162, 3721, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, -5162, -5162, 3995, -550, -538, 4192, 5330, 4850, -5162, + 4464, -5162, -5162, -5162, -5162, -5162, 1828, -5162, -1996, 2734, + -1469, -1042, -5162, -5162, 3140, 1673, -5162, 2331, -2648, -3225, + -5162, 2568, -3208, -5162, -5162, 642, -5162, -5162, -5162, 1835, + 101, 5304, 4741, -5162, -5162, -5162, -5162, -3127, -3869, -747, + -5162, -3778, -5162, -2006, -5162, -1315, 2089, -3672, -5162, -512, + -5162, -5162, -3596, -3593, 1530, -1483, 2674, 1111, -5162, -5162, + -3286, 1445, 5534, 5535, 5536, -402, -5162, -3354, -5162, -4027, + -5162, 182, -5162, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + -5162, 3258, 7, -5162, -5162, -5162, -5162, -5162, -5162, -5162, + 4013, -5162, -40, -3831, -5162, -5162, 2558, -5162, -5162, -5162, + -5162, -5162, -5162, -5162, -5162, -5162 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 464, 729, 1994, 465, 466, 467, 468, 469, 1251, - 1252, 470, 1253, 1925, 1928, 2691, 3379, 3380, 471, 702, - 472, 2108, 2896, 2897, 4744, 4745, 4738, 4739, 4741, 4742, - 2898, 801, 802, 473, 3437, 3438, 4942, 4537, 4538, 2747, - 4041, 4615, 2008, 2007, 2009, 2013, 2012, 2766, 737, 5015, - 5279, 5637, 5930, 5804, 5458, 5459, 5460, 5643, 5467, 5932, - 5465, 5931, 5461, 5800, 6014, 5798, 6013, 5462, 5282, 5283, - 5463, 2767, 4027, 3515, 3516, 1307, 3431, 3524, 3525, 2763, - 4604, 4724, 5516, 4728, 5679, 5831, 5655, 3552, 5112, 5517, - 5518, 639, 3443, 3444, 2072, 5017, 5289, 4034, 4035, 4036, - 3440, 3441, 5290, 2824, 474, 794, 1378, 2100, 2101, 5299, - 3608, 3609, 3610, 5286, 5287, 5288, 5474, 4607, 5023, 4600, - 5016, 4601, 4609, 4602, 2674, 918, 2104, 2105, 5811, 817, - 1395, 818, 819, 2125, 1451, 2956, 2957, 2958, 2177, 820, - 821, 822, 2122, 823, 2981, 2921, 3670, 3671, 4264, 824, - 3637, 3638, 3639, 2985, 1143, 3640, 475, 476, 658, 667, - 659, 1140, 2542, 1141, 477, 478, 697, 1951, 1952, 1953, - 1954, 3396, 2704, 3390, 3391, 4526, 825, 826, 2199, 919, - 920, 479, 921, 640, 1572, 2287, 3698, 922, 923, 924, - 925, 1574, 2273, 2274, 926, 927, 928, 929, 930, 5466, - 3015, 3052, 3695, 3016, 3672, 3053, 2283, 931, 932, 933, - 934, 1575, 894, 895, 3031, 4279, 4781, 935, 615, 797, - 798, 2107, 2870, 799, 2871, 3561, 4737, 800, 1380, 2866, - 1382, 3702, 936, 937, 2291, 2290, 3699, 682, 938, 1241, - 621, 1394, 1909, 5652, 5653, 5935, 6107, 1910, 3363, 3952, - 4501, 4502, 4924, 2234, 860, 1507, 939, 1237, 2670, 1149, - 2550, 3703, 940, 2293, 2295, 2292, 3701, 5538, 2294, 941, - 650, 676, 638, 1505, 664, 5020, 5296, 773, 774, 809, - 2919, 775, 1390, 1352, 2077, 2850, 2851, 3530, 3531, 3597, - 3598, 3599, 2842, 2843, 2844, 2908, 2909, 2910, 2831, 2832, - 2833, 2081, 2828, 2829, 776, 1353, 1363, 2845, 2846, 2847, - 3603, 2912, 2913, 2914, 2915, 2848, 2224, 2849, 4087, 4018, - 5261, 5259, 5260, 4019, 5007, 3264, 5408, 4877, 4878, 4588, - 4589, 4590, 5083, 3370, 484, 653, 1123, 1781, 2533, 3857, - 3245, 3247, 2534, 3856, 4418, 4419, 4420, 3243, 3244, 5402, - 3249, 3854, 5557, 5955, 5714, 5715, 4422, 5719, 4428, 4871, - 4872, 5201, 5403, 5563, 5865, 5720, 5963, 5863, 5959, 5864, - 5961, 6085, 6034, 6035, 5875, 5974, 5975, 6039, 6086, 5730, - 5731, 5732, 3851, 5198, 3866, 4444, 4445, 5209, 4884, 5213, - 5278, 3426, 2066, 2067, 5063, 1303, 485, 4020, 4146, 4021, - 4022, 4955, 5633, 4023, 4024, 4025, 3665, 1858, 4981, 4967, - 4614, 4573, 4574, 4575, 4576, 4577, 5601, 5770, 5603, 5604, - 5760, 5904, 5759, 4578, 4579, 5451, 4997, 4677, 4580, 4581, - 4582, 5005, 5274, 5453, 5450, 5611, 5612, 6061, 6062, 5627, - 6012, 5628, 6068, 6099, 6100, 5613, 486, 652, 1729, 5785, - 5786, 5787, 1453, 4230, 1454, 2147, 1455, 4232, 1456, 1457, - 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 2971, 2135, - 2136, 2933, 2131, 2132, 2130, 4754, 4752, 2196, 5629, 5630, - 2935, 2141, 2142, 2944, 5797, 5614, 5631, 5616, 1466, 4240, - 2149, 1814, 1815, 4617, 1828, 1829, 2968, 2186, 2969, 2070, - 2150, 2938, 2939, 2942, 4376, 5182, 4382, 4383, 4384, 3797, - 3798, 3799, 3800, 3801, 3196, 5617, 5000, 5444, 5596, 5599, - 5768, 6001, 4998, 4583, 5003, 1226, 738, 4584, 4585, 5886, - 5746, 5753, 5887, 5754, 5747, 5446, 3434, 5888, 5889, 5890, - 5756, 5749, 3984, 5250, 5251, 4985, 2948, 487, 556, 3535, - 1340, 1342, 1351, 3556, 2859, 2858, 1356, 1355, 2837, 3553, - 4176, 5348, 760, 4148, 5509, 5324, 5515, 4149, 4927, 4150, - 5500, 5670, 4151, 5340, 5513, 5676, 4928, 4929, 4152, 4153, - 4154, 5894, 5895, 5896, 4666, 1536, 778, 779, 1367, 1368, - 1369, 3010, 5100, 4687, 488, 2738, 2733, 489, 1277, 1278, - 1279, 1974, 1975, 2736, 2737, 3421, 3972, 490, 1245, 2685, - 1965, 2726, 491, 1265, 3413, 3414, 3415, 3967, 492, 1376, - 2097, 2098, 2863, 4183, 4736, 5116, 5357, 5530, 5353, 5696, - 5697, 493, 805, 1386, 494, 617, 2117, 2118, 2119, 2900, + 1252, 470, 1253, 1925, 1928, 2692, 3380, 3381, 471, 702, + 472, 2108, 2897, 2898, 4745, 4746, 4739, 4740, 4742, 4743, + 2899, 801, 802, 473, 3438, 3439, 4942, 4538, 4539, 2748, + 4043, 4616, 2008, 2007, 2009, 2013, 2012, 2767, 737, 5015, + 5278, 5636, 5928, 5803, 5457, 5458, 5459, 5642, 5466, 5930, + 5464, 5929, 5460, 5799, 6011, 5797, 6010, 5461, 5281, 5282, + 5462, 2768, 4029, 3516, 3517, 1307, 3432, 3525, 3526, 2764, + 4605, 4725, 5515, 4729, 5678, 5830, 5654, 3553, 5112, 5516, + 5517, 639, 3444, 3445, 2072, 5017, 5288, 4036, 4037, 4038, + 3441, 3442, 5289, 2825, 474, 794, 1378, 2100, 2101, 5298, + 3609, 3610, 3611, 5285, 5286, 5287, 5473, 4608, 5023, 4601, + 5016, 4602, 4610, 4603, 2675, 918, 2104, 2105, 5810, 817, + 1395, 818, 819, 2125, 1451, 2957, 2958, 2959, 2178, 820, + 821, 822, 2122, 823, 2982, 2922, 3671, 3672, 4266, 824, + 3638, 3639, 3640, 2986, 1143, 3641, 475, 476, 658, 667, + 659, 1140, 2543, 1141, 477, 478, 697, 1951, 1952, 1953, + 1954, 3397, 2705, 3391, 3392, 4527, 825, 826, 2200, 919, + 920, 479, 921, 640, 1572, 2288, 3699, 922, 923, 924, + 925, 1574, 2274, 2275, 926, 927, 928, 929, 930, 5465, + 3016, 3053, 3696, 3017, 3673, 3054, 2284, 931, 932, 933, + 934, 1575, 894, 895, 3032, 4281, 4782, 935, 615, 797, + 798, 2107, 2871, 799, 2872, 3562, 4738, 800, 1380, 2867, + 1382, 3703, 936, 937, 2292, 2291, 3700, 682, 938, 1241, + 621, 1394, 1909, 5651, 5652, 5933, 6104, 1910, 3364, 3954, + 4502, 4503, 4924, 2235, 860, 1507, 939, 1237, 2671, 1149, + 2551, 3704, 940, 2294, 2296, 2293, 3702, 5537, 2295, 941, + 650, 676, 638, 1505, 664, 5020, 5295, 773, 774, 809, + 2920, 775, 1390, 1352, 2077, 2851, 2852, 3531, 3532, 3598, + 3599, 3600, 2843, 2844, 2845, 2909, 2910, 2911, 2832, 2833, + 2834, 2081, 2829, 2830, 776, 1353, 1363, 2846, 2847, 2848, + 3604, 2913, 2914, 2915, 2916, 2849, 2225, 2850, 4089, 4020, + 5260, 5258, 5259, 4021, 5007, 3265, 5407, 4877, 4878, 4589, + 4590, 4591, 5083, 3371, 484, 653, 1123, 1781, 2534, 3859, + 3246, 3248, 2535, 3858, 4420, 4421, 4422, 3244, 3245, 5401, + 3250, 3856, 5556, 5953, 5713, 5714, 3848, 5718, 4429, 4871, + 4872, 5200, 5402, 5562, 5863, 5719, 5960, 5861, 5956, 5862, + 5958, 6082, 6031, 6032, 5873, 5971, 5972, 6036, 6083, 5729, + 5730, 5731, 3853, 5197, 3868, 4445, 4446, 5208, 4884, 5212, + 5277, 3427, 2066, 2067, 5063, 1303, 485, 4022, 4148, 4023, + 4024, 4955, 5632, 4025, 4026, 4027, 3666, 1858, 4981, 4967, + 4615, 4574, 4575, 4576, 4577, 4578, 5600, 5769, 5602, 5603, + 5759, 5902, 5758, 4579, 4580, 5450, 4997, 4678, 4581, 4582, + 4583, 5005, 5273, 5452, 5449, 5610, 5611, 6058, 6059, 5626, + 6009, 5627, 6065, 6096, 6097, 5612, 486, 652, 1729, 5784, + 5785, 5786, 1453, 4232, 1454, 2148, 1455, 4234, 1456, 1457, + 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 2972, 2138, + 2139, 2936, 2131, 2132, 2130, 4755, 4753, 2197, 5628, 5629, + 2929, 2135, 2136, 2945, 5796, 5613, 5630, 5615, 1466, 4242, + 2150, 1814, 1815, 4618, 1828, 1829, 2969, 2187, 2970, 2070, + 2151, 2939, 2940, 2943, 4378, 5182, 4384, 4385, 4386, 3798, + 3799, 3800, 3801, 3802, 3197, 5616, 5000, 5443, 5595, 5598, + 5767, 5998, 4998, 4584, 5003, 1226, 738, 4585, 4586, 5884, + 5745, 5752, 5885, 5753, 5746, 5445, 3435, 5886, 5887, 5888, + 5755, 5748, 3986, 5249, 5250, 4985, 2949, 487, 556, 3536, + 1340, 1342, 1351, 3557, 2860, 2859, 1356, 1355, 2838, 3554, + 4178, 5347, 760, 4150, 5508, 5323, 5514, 4151, 4927, 4152, + 5499, 5669, 4153, 5339, 5512, 5675, 4928, 4929, 4154, 4155, + 4156, 5892, 5893, 5894, 4667, 1536, 778, 779, 1367, 1368, + 1369, 3011, 5100, 4688, 488, 2739, 2734, 489, 1277, 1278, + 1279, 1974, 1975, 2737, 2738, 3422, 3974, 490, 1245, 2686, + 1965, 2727, 491, 1265, 3414, 3415, 3416, 3969, 492, 1376, + 2097, 2098, 2864, 4185, 4737, 5116, 5356, 5529, 5352, 5695, + 5696, 493, 805, 1386, 494, 617, 2117, 2118, 2119, 2901, 495, 1585, 565, 496, 1147, 1786, 1789, 1790, 497, 1244, - 1912, 1913, 1914, 1915, 3366, 498, 2265, 3034, 3035, 3036, - 3037, 2680, 3953, 2681, 2682, 3375, 4286, 499, 756, 3485, - 1328, 1329, 1330, 4648, 4073, 4074, 5688, 5521, 5522, 3812, - 3813, 3814, 2022, 3469, 4641, 5316, 5681, 5945, 2806, 5056, - 5839, 2807, 2024, 1324, 1325, 2794, 2808, 2027, 2776, 2043, - 3650, 3651, 4496, 4921, 2044, 2045, 5214, 2797, 2798, 1900, - 5422, 2799, 4063, 5646, 4631, 6009, 1606, 1517, 1249, 1088, - 1089, 1090, 1741, 1742, 5618, 1091, 1751, 2488, 4344, 4824, - 4825, 4826, 4827, 5173, 2409, 2410, 2528, 1092, 2395, 1093, + 1912, 1913, 1914, 1915, 3367, 498, 2266, 3035, 3036, 3037, + 3038, 2681, 3955, 2682, 2683, 3376, 4288, 499, 756, 3486, + 1328, 1329, 1330, 4649, 4075, 4076, 5687, 5520, 5521, 3813, + 3814, 3815, 2022, 3470, 4642, 5315, 5680, 5943, 2807, 5056, + 5838, 2808, 2024, 1324, 1325, 2795, 2809, 2027, 2777, 2043, + 3651, 3652, 4497, 4921, 2044, 2045, 5213, 2798, 2799, 1900, + 5421, 2800, 4065, 5645, 4632, 6006, 1606, 1517, 1249, 1088, + 1089, 1090, 1741, 1742, 5617, 1091, 1751, 2489, 4346, 4825, + 4826, 4827, 4828, 5173, 2410, 2411, 2529, 1092, 2396, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, - 2523, 4325, 4326, 4806, 3238, 3239, 3240, 1104, 3078, 4311, - 3088, 1105, 1106, 1107, 1108, 1109, 3839, 1110, 4414, 5040, - 1111, 1735, 2474, 2355, 4798, 4316, 5151, 5155, 5156, 5157, - 5376, 2299, 3066, 3725, 4790, 4791, 4792, 3726, 3727, 3840, - 3201, 1627, 1628, 1595, 1596, 3775, 2661, 2662, 2663, 2664, - 2665, 4912, 4913, 5411, 5225, 5413, 5229, 3352, 3353, 2554, - 2555, 2666, 2667, 2668, 2669, 3923, 4902, 4400, 4854, 3817, - 3808, 3809, 3810, 3924, 3925, 3926, 3927, 4476, 4898, 4899, - 5565, 3343, 3929, 4475, 3935, 5881, 5577, 5578, 5981, 5980, - 5579, 5420, 5421, 5236, 5237, 4505, 4506, 4507, 3874, 2351, - 2352, 2425, 1958, 1959, 2300, 2211, 2994, 4060, 4627, 3223, - 3471, 4411, 5038, 4629, 5041, 5042, 2518, 3231, 3835, 3233, - 4859, 5191, 5192, 5394, 5547, 5548, 5553, 4157, 5080, 5081, - 2995, 2028, 3463, 4051, 4623, 1861, 1862, 2029, 2631, 3911, - 3912, 3659, 2986, 4718, 2987, 3802, 3784, 4933, 4088, 2323, - 2324, 4948, 4836, 2788, 4055, 5033, 5034, 5035, 2780, 2781, - 3458, 3459, 3460, 2030, 2782, 4046, 5029, 500, 692, 501, - 2231, 1502, 2230, 3387, 1388, 1794, 2206, 2207, 845, 557, - 637, 502, 641, 3032, 503, 665, 2552, 899, 1152, 1795, - 1796, 3265, 3862, 3867, 3266, 2048, 4434, 4435, 3005, 4101, - 4102, 4096, 3481, 4069, 2049, 2801, 4638, 3478, 4639, 3479, - 3382, 4281, 5142, 5700, 504, 674, 4493, 3941, 3942, 5850, - 5851, 1153, 505, 622, 2205, 840, 1479, 1482, 2213, 2991, - 4260, 1483, 1484, 2993, 841, 842, 506, 715, 3422, 3975, - 1283, 1883, 1884, 1885, 2647, 507, 671, 1227, 3910, 4473, - 2624, 1126, 1500, 1866, 1230, 1867, 2620, 3326, 1849, 508, + 2524, 4327, 4328, 4807, 3239, 3240, 3241, 1104, 3079, 4313, + 3089, 1105, 1106, 1107, 1108, 1109, 3840, 1110, 4416, 5040, + 1111, 1735, 2475, 2356, 4799, 4318, 5151, 5155, 5156, 5157, + 5375, 2300, 3067, 3726, 4791, 4792, 4793, 3727, 3728, 3841, + 3202, 1627, 1628, 1595, 1596, 3776, 2662, 2663, 2664, 2665, + 2666, 4912, 4913, 5410, 5224, 5412, 5228, 3353, 3354, 2555, + 2556, 2667, 2668, 2669, 2670, 3925, 4902, 4402, 4855, 3818, + 3809, 3810, 3811, 3926, 3927, 3928, 3929, 4477, 4898, 4899, + 5564, 3344, 3931, 4476, 3937, 5879, 5576, 5577, 5978, 5977, + 5578, 5419, 5420, 5235, 5236, 4506, 4507, 4508, 3876, 2352, + 2353, 2426, 1958, 1959, 2301, 2212, 2995, 4062, 4628, 3224, + 3472, 4413, 5038, 4630, 5041, 5042, 2519, 3232, 3836, 3234, + 4860, 5191, 5192, 5393, 5546, 5547, 5552, 4159, 5080, 5081, + 2996, 2028, 3464, 4053, 4624, 1861, 1862, 2029, 2632, 3913, + 3914, 3660, 2987, 4719, 2988, 3803, 3785, 4933, 4090, 2324, + 2325, 4948, 4837, 2789, 4057, 5033, 5034, 5035, 2781, 2782, + 3459, 3460, 3461, 2030, 2783, 4048, 5029, 500, 692, 501, + 2232, 1502, 2231, 3388, 1388, 1794, 2207, 2208, 845, 557, + 637, 502, 641, 3033, 503, 665, 2553, 899, 1152, 1795, + 1796, 3266, 3864, 3869, 3267, 2048, 4435, 4436, 3006, 4103, + 4104, 4098, 3482, 4071, 2049, 2802, 4639, 3479, 4640, 3480, + 3383, 4283, 5142, 5699, 504, 674, 4494, 3943, 3944, 5849, + 5850, 1153, 505, 622, 2206, 840, 1479, 1482, 2214, 2992, + 4262, 1483, 1484, 2994, 841, 842, 506, 715, 3423, 3977, + 1283, 1883, 1884, 1885, 2648, 507, 671, 1227, 3912, 4474, + 2625, 1126, 1500, 1866, 1230, 1867, 2621, 3327, 1849, 508, 1323, 1322, 793, 509, 510, 749, 566, 2016, 511, 1254, - 1944, 2702, 3960, 3961, 4511, 1945, 1946, 3388, 3384, 4934, - 4935, 5246, 512, 707, 1269, 1270, 1969, 1967, 3418, 2729, - 513, 654, 1127, 2537, 514, 642, 902, 1539, 2264, 515, - 516, 517, 904, 4287, 5853, 6029, 646, 2267, 1543, 5008, - 5306, 5489, 5490, 5492, 5665, 5666, 6082, 6128, 6139, 6132, - 6142, 6143, 6146, 6152, 6153, 1112, 1290, 1291, 1113, 5789, - 1114, 1115, 1116, 518, 519, 1239, 678, 1905, 1906, 3361, - 2673, 3359, 1907, 3869, 3870, 3475, 4052, 1117, 3871, 4986, - 1389, 2208, 700, 520, 1118, 604, 770, 1292, 3455, 2710, - 1178, 3301, 1120, 828, 3704, 942, 943, 1347, 1787, 2088, - 2089, 2711, 606, 1552, 3302, 829, 1180, 523, 607, 608, - 609, 610, 611, 612, 613, 614, 529, 670, 1162, 2569, - 530, 1338, 2811, 3376, 1805, 1188, 1834, 1823, 1833, 2594, - 3313, 2597, 3314, 3315, 4464, 3903, 4465, 3904, 1233, 2589, - 1806, 3905, 2582, 2583, 2584, 2585, 3894, 1820, 2578, 2063, - 531, 905, 2272, 649, 1545, 1546, 3043, 532, 673, 533, - 1960, 2723, 2724, 3406, 3964, 3407, 534, 1158, 1159, 535, - 888, 3429, 3022, 2220, 1350, 2221, 2248, 891, 1509, 892, - 893, 1523, 1520, 1526, 1522, 4165, 3546, 3547, 3027, 2228, - 2090, 2560, 3539, 4710, 2091, 2238, 3018, 3019, 2857, 5366, - 4172, 3550, 5136, 4270, 5367, 5368, 536, 679, 537, 5291, - 691, 1248, 1923, 538, 539, 540, 541, 1334, 4056, 4057, - 2810, 5524, 5843, 1336, 1337, 2031, 3819, 2056, 3204, 3205, - 1326, 3206, 3207, 3208, 3209, 1731, 1732, 3820, 4391, 4392, - 2046, 558, 559, 560, 561, 783, 784, 3555, 4178, 4731, - 4732, 5352, 5527, 6135, 6136, 2762, 4039, 5813, 6108, 6129, - 6148, 2769, 5025, 5301, 2770, 4043, 5483, 2759, 4038, 5292, - 2771, 2760, 6103, 4032, 542, 1297, 1293, 726, 1992, 1986, - 1988, 2744, 3425, 543, 544, 545 + 1944, 2703, 3962, 3963, 4512, 1945, 1946, 3389, 3385, 4934, + 4935, 5245, 512, 707, 1269, 1270, 1969, 1967, 3419, 2730, + 513, 654, 1127, 2538, 514, 642, 902, 1539, 2265, 515, + 516, 517, 904, 4289, 5852, 6026, 646, 2268, 1543, 5008, + 5305, 5488, 5489, 5491, 5664, 5665, 6079, 6125, 6136, 6129, + 6139, 6140, 6143, 6149, 6150, 1112, 1290, 1291, 1113, 5788, + 1114, 1115, 1116, 518, 519, 1239, 678, 1905, 1906, 3362, + 2674, 3360, 1907, 3871, 3872, 3476, 4054, 1117, 3873, 4986, + 1389, 2209, 700, 520, 1118, 604, 770, 1292, 3456, 2711, + 1178, 3302, 1120, 828, 3705, 942, 943, 1347, 1787, 2088, + 2089, 2712, 606, 1552, 3303, 829, 1180, 523, 607, 608, + 609, 610, 611, 612, 613, 614, 529, 670, 1162, 2570, + 530, 1338, 2812, 3377, 1805, 1188, 1834, 1823, 1833, 2595, + 3314, 2598, 3315, 3316, 4465, 3905, 4466, 3906, 1233, 2590, + 1806, 3907, 2583, 2584, 2585, 2586, 3896, 1820, 2579, 2063, + 531, 905, 2273, 649, 1545, 1546, 3044, 532, 673, 533, + 1960, 2724, 2725, 3407, 3966, 3408, 534, 1158, 1159, 535, + 888, 3430, 3023, 2221, 1350, 2222, 2249, 891, 1509, 892, + 893, 1523, 1520, 1526, 1522, 4167, 3547, 3548, 3028, 2229, + 2090, 2561, 3540, 4711, 2091, 2239, 3019, 3020, 2858, 5365, + 4174, 3551, 5136, 4272, 5366, 5367, 536, 679, 537, 5290, + 691, 1248, 1923, 538, 539, 540, 541, 1334, 4058, 4059, + 2811, 5523, 5842, 1336, 1337, 2031, 3820, 2056, 3205, 3206, + 1326, 3207, 3208, 3209, 3210, 1731, 1732, 3821, 4393, 4394, + 2046, 558, 559, 560, 561, 783, 784, 3556, 4180, 4732, + 4733, 5351, 5526, 6132, 6133, 2763, 4041, 5812, 6105, 6126, + 6145, 2770, 5025, 5300, 2771, 4045, 5482, 2760, 4040, 5291, + 2772, 2761, 6100, 4034, 542, 1297, 1293, 726, 1992, 1986, + 1988, 2745, 3426, 543, 544, 545 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -4023,1074 +4021,1051 @@ number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 521, 1452, 1890, 1229, 651, 1569, 2017, 1335, 782, 1304, - 1305, 528, 603, 2155, 1176, 1225, 2026, 2025, 768, 757, - 2268, 2379, 2322, 2156, 2922, 2786, 2544, 831, 2791, 683, - 1816, 1819, 1821, 2513, 524, 2809, 1184, 832, 2572, 1831, - 788, 2633, 2057, 2632, 1499, 3057, 1863, 1349, 2988, 2470, - 522, 2139, 480, 2460, 2330, 2996, 2805, 2361, 3452, 2159, - 2789, 3374, 3622, 3685, 1863, 481, 2973, 4155, 1250, 4066, - 2215, 482, 483, 526, 2595, 2168, 1182, 2243, 889, 3818, - 1788, 2611, 2612, 1148, 890, 2174, 1183, 3652, 843, 3472, - 847, 848, 849, 850, 851, 2972, 853, 854, 2549, 2195, - 856, 857, 2579, 3705, 3706, 2187, 4156, 889, 3985, 4608, - 4399, 4231, 2591, 1160, 2133, 2792, 2068, 2225, 4209, 2479, - 686, 4237, 4233, 4262, 3371, 668, 4089, 2487, 525, 4595, - 2489, 2490, 1387, 2492, 2493, 2494, 2495, 2496, 2497, 2166, - 2499, 2500, 2502, 2504, 2505, 2506, 2507, 2508, 4064, 695, - 1589, 2069, 4089, 4089, 4234, 4078, 2777, 4235, 2178, 2179, - 2180, 4239, 1629, 2182, 4683, 4756, 2543, 1983, 1274, 4292, - 2618, 1281, 3909, 3055, 3051, 2812, 3730, 2193, 5011, 3389, - 1397, 2701, 4594, 3533, 2703, 3863, 3864, 3604, 2640, 4147, - 3931, 2544, 3058, 3605, 527, 3971, 5253, 4401, 4180, 3940, - 4402, 5302, 3430, 4412, 4642, 4663, 4664, 4665, 4488, 3534, - 4667, 4771, 4669, 2653, 2654, 4679, 4901, 4089, 4089, 2129, - 4734, 2960, 4684, 2137, 831, 2137, 831, 4164, 3008, 4695, - 1736, 1737, 3783, 2137, 832, 1569, 832, 4030, 2940, 663, - 2163, 5355, 2129, 5108, 2280, 4030, 4946, 789, 1956, 2137, - 790, 3601, -688, 3594, 791, 792, 2899, 710, 1524, 2137, - 2099, -3289, 3966, 2175, 713, 5962, 1736, 1737, 2181, 3536, - 3529, 4094, 3028, 2775, 3029, 3030, 699, 3602, -2976, 2137, - 2129, 2129, 2191, 2192, 1725, 1727, 1728, -483, 643, 2982, - 2741, -3369, -3352, 2982, 4118, 688, 1771, -3376, 2301, 2302, - 4221, 1736, 1737, 2157, 1736, 1737, 3193, 2312, 1348, -691, - 2161, 1490, 1736, 1737, 3848, 2065, 1818, -2082, -3289, 1736, - 1737, 706, 1956, 1503, 1504, 2169, 2065, 2964, 2065, -3290, - -696, 2543, 1736, 1737, -1242, 3502, 4171, 4037, -2667, 2369, - 753, 2372, 4758, 4849, 4861, -814, 2315, -815, 5362, 4333, - 2855, 4031, 5423, -691, 1736, 1737, 4315, 2386, 2387, 4031, - 2390, 1736, 1737, 4785, 781, 1812, 647, 2834, 2396, 2397, - 2148, 2148, 2401, 4903, 2148, 708, 1736, 1737, 2316, 3908, - 1850, 2148, 1736, 1737, 1892, 1365, -3290, 2148, 4393, -3356, - 1921, 1856, 2853, 2317, 2151, 2151, 5809, 754, 2151, 4378, - 2188, 1738, 4949, 1739, 3118, 2151, 1736, 1737, 4098, 5452, - 2911, 2151, 1528, 1891, 3241, 6019, 3021, 1331, 4194, 3009, - 4951, 2315, 2154, 5018, 4412, 2158, 4458, 5280, 4114, 4115, - 5796, 4378, 2162, 5328, 2318, 2227, 1577, 1738, 2165, 1739, - 5836, 3345, 1163, 1736, 1737, 2982, 4953, 5216, 1317, 1736, - 1737, 4173, 4379, 2316, 1332, 3040, 1736, 1737, 1812, -2082, - 1247, 2242, 2319, 2982, 1736, 1737, 4786, 4971, 2317, 3250, - 1736, 1737, 1738, 1163, 1739, 1738, -3289, 1739, 4685, 1812, - -2976, 4889, 3689, 1738, 4379, 1739, 1736, 1737, -3355, 2982, - 1738, 1374, 1739, 4215, 4216, 2982, 758, 758, 6133, 2586, - 4104, 5428, 5338, 1738, 2269, 1739, 2197, 1736, 1737, 2318, - 2982, 1541, 4030, 3041, -3376, 3346, 4416, -2082, 1736, 1737, - -3199, 5464, 1740, 4438, -2668, 1738, 3347, 1739, 4563, -1515, - 5115, 1630, 1738, 3348, 1739, 1736, 1737, 2319, 2587, 6050, - 3537, -3353, 1736, 1737, -3290, 2749, -3354, 1738, 5497, 1739, - 4592, 2826, -2469, 1738, 844, 1739, 2982, 763, 1740, 4785, - 766, 2320, 3349, 2982, 644, 5088, 4610, 1901, 3973, 1736, - 1737, 1917, 616, 1736, 1737, 4621, 1670, 1738, 3214, 1739, - 1999, 6101, 2000, 2001, 2002, 2003, 2004, 2006, 3274, 3275, - 3276, 3277, 4184, 1740, 2784, 696, 1740, 810, -3359, 42, - 1736, 1737, 751, 3063, 1740, 3076, 5663, 661, -2469, 1333, - 855, 1740, -411, 6119, 1738, -1530, 1739, 1753, 5664, 1902, - 1738, 827, 1739, 3350, 1740, 3908, 4031, 1738, 4622, 1739, - 669, 4611, 835, 1734, 656, 1738, 2320, 1739, 521, 2996, - 5564, 1738, -922, 1739, 2785, 6134, 1740, 4564, 4833, 528, - 6051, -2470, 1119, 1740, 3351, 830, 2827, 1738, 2982, 1739, - 684, 4640, 4786, 803, 3215, 2567, 2982, 2742, 1740, 3939, - 1177, 1232, 524, 5281, 1740, 2270, 1119, 1886, 1738, 2198, - 1739, 1187, -2816, 4605, -2780, 2219, 2590, -2776, 861, 1738, - 1678, 1739, 1119, 2588, 834, 2836, 1124, 4425, 1740, 6025, - 1240, 5464, 5514, 4715, 1181, -2469, 1738, -2470, 1739, 1756, - 1578, 526, 2109, 1738, 1529, 1739, 4612, 1271, -2469, 4174, - 1812, 4129, 2795, 1736, 1737, 5796, 5019, 1736, 1737, 1990, - 2790, 1922, -2290, 2144, 2558, 1740, 5504, 1542, 2917, 4636, - 1738, 1740, 1739, 1185, 1738, 2025, 1739, 5186, 1740, 833, - 3781, 1263, 2574, 1146, 3428, 4907, 1740, 1202, 803, 4911, - -2290, 803, 1740, 3216, 1285, 1710, 525, 4459, -2469, 5531, - 5406, 1738, 4269, 1739, 787, -2469, -2344, 562, 1740, 2609, - 1736, 1737, 5057, 4100, 3194, -2835, -2469, 4099, 1202, 2328, - 4888, -3199, 1725, 1727, 648, 3818, 788, 3251, 1119, 1740, - 836, 4147, 5823, 1955, -2470, 1629, 2793, 4586, 2965, 3281, - 1740, 3408, -2836, 521, 1714, 527, 3242, -2470, 827, 5298, - 1467, 1812, 1736, 1737, 528, 3468, 806, 1740, 2229, 835, - 2052, 1471, 527, 4834, 1740, 837, 2529, 2225, -2780, 1366, - 5217, -2776, 2068, 2949, -3497, 4089, 859, 524, 3280, 6074, - 2949, 3633, 830, 4249, 1468, 4823, 1491, 1492, 1493, 1494, - 944, 1740, 3533, 1393, 1186, 1740, 3604, -2470, 1863, 3267, - 2128, 1370, 3605, 755, -2470, 5958, 3224, 2069, 1813, -3369, - -3352, 4657, 1235, 2856, 4100, -2470, 526, 3227, 3534, 3229, - 3230, 834, 1740, 1470, 1738, 1119, 1739, 2856, 1738, -2837, - 1739, 2530, 3199, 3200, 3908, 711, 1550, -2667, 1550, 1550, - 1550, 2296, 714, 2087, 1550, 645, 1550, 1556, 4759, 1556, - 1556, 1556, 4749, 521, 5363, 1556, 4431, 1556, 2116, 1812, - 3601, 4037, 2116, 3221, 528, 1525, 889, 4217, 2983, 1924, - -688, 525, 2983, 4586, 1497, 1119, 833, 1501, 1469, -3289, - 1119, 1738, 712, 1739, 3047, 4116, 3602, 524, 4686, 4719, - 3050, 2659, 5307, 2545, 2116, 2660, -2976, 3339, 3432, 3538, - 4850, 1813, 5810, 1573, 2309, -483, 4735, -3356, 2515, 1554, - 1119, 1554, 1554, 1554, 1957, -3376, 5030, 1554, 3210, 1554, - 1119, 6020, 1813, 1738, 5642, 1739, 526, 5356, 1544, 5656, - 2902, 2936, 5644, 789, 4091, -2082, 790, 527, 3629, 3630, - 791, 792, 527, 4104, 5334, 1740, 4380, -3290, -696, 1740, - 4334, 5908, -1242, 5910, 5911, 2927, 2928, 2014, 1851, 1736, - 1737, 759, 2286, -814, 1553, -815, 1553, 1553, 1553, 2615, - 4252, 2617, 1553, 2403, 1553, 3042, 2945, 1770, 4380, -2082, - 3678, 525, 2321, 2652, 2635, 3087, 2950, 2638, 1957, 3195, - 2420, 2641, 1327, 2428, 4437, 2430, 3089, 3090, 2955, 2434, - 2435, 2436, 1740, 2087, 3119, 3102, -3355, 2442, 3105, 1119, - 1119, 1119, 1119, 2559, 5374, 2975, 4916, 3077, 2656, 2657, - 2658, 1119, 3487, -2668, 2983, 4867, 3120, -2000, 4879, 564, - 1555, 5484, 1555, 1555, 1555, 1736, 1737, 3134, 1555, 2469, - 1555, 2600, 2983, 5424, 1740, 3091, 3092, 527, 2148, 5009, - 4640, 4748, 2834, 3974, 2146, 5397, 5398, 6059, 2545, -3353, - 3180, 3181, 4284, 647, -3354, 3660, 3191, 3192, 2983, 4381, - 2148, 3532, 2151, 2148, 2983, 4141, 3783, 3783, 3811, 5566, - 3783, 3783, 2639, 2148, 5994, 5995, 3783, 3783, 1630, 2983, - 3104, 6004, 5152, 3728, 2151, 3729, 4484, 2151, 685, 2946, - 1736, 1737, 5409, 2363, 1630, 1736, 1737, 2151, 5226, 5227, - 4663, 4664, 4665, 5431, 4613, 4679, -3359, 4158, 5057, 2531, - 1679, 2961, 1125, 6072, 2962, -2816, 3033, 3825, 3826, 2911, - 1738, 3945, 1739, 3108, 2974, 2983, 3815, 618, 3217, 3600, - 4321, 4322, 2983, 1736, 1737, -115, -115, -2816, 3110, 4089, - 2143, 3004, -119, -119, 4717, 3082, 5193, 1991, 5194, 5046, - 1736, 1737, 1852, 1813, 4155, 2152, 1736, 1737, 5004, 2856, - 1791, 3083, 16, 17, 5220, 1797, 5997, 889, 6049, 6105, - 5532, -2469, 1119, 2570, 1947, 4486, 4487, 5027, -2344, 1995, - 1753, 4335, 4336, 2992, 1589, 1711, 2835, 803, 1357, 803, - 1736, 1737, 3111, 4156, 5815, 772, 1738, 5710, 1739, 2756, - 4401, 2758, 5028, 4402, 2765, 2170, 2768, 2772, 839, 4348, - 4349, 2683, 2727, 4702, 1358, 5691, 4354, 4355, -2835, 1812, - 3879, 2804, 1766, 1767, 1768, 1769, 4940, 2983, 3663, 2916, - 3202, 3483, 3074, 2535, 1715, 2983, 647, -111, -111, 3668, - -2835, 1740, 5349, 3133, 2716, -2836, 2522, 4407, 4408, 1919, - 6075, 4906, 1630, 1868, 1813, 4910, 1359, 1916, 1119, -2290, - -2290, 1738, 5284, 1739, 1348, 5285, 1738, -2836, 1739, 3267, - -2470, 3818, 1756, 5036, 5037, 3093, 4147, 3782, 2983, -2757, - 887, 1736, 1737, 1311, 2713, 5913, -2780, 754, 754, -2776, - 1757, 2778, -2780, -2780, 2714, -2776, -2776, 1119, 900, 754, - 1119, 2094, 6002, 5468, 1738, 2532, 1739, 5512, -2344, 887, - 562, 4044, 5478, 3433, 4956, 1997, 1998, 1740, 2698, 1150, - 4900, 1738, 1743, 1739, 4969, 4970, 1243, 1738, 5502, 1739, - 2634, 1258, -2837, 1348, 2814, 5884, 5438, 1744, 811, 812, - 3517, 5906, 2930, 1261, 4181, 3336, 2730, 3919, 2840, 3958, - 647, 1360, 3284, 3235, -2837, 3285, 889, 5998, 3389, 5456, - 3236, 1738, 1813, 1739, 4722, 4828, 1745, 2931, 2078, 3533, - 2836, 5999, 1746, 3311, 647, 5969, 5970, 2085, 2761, 2764, - 2684, 846, 1740, 1948, 2566, 4071, 2095, 1740, 5206, 6137, - 1361, 5703, 2659, 4647, 1966, 3534, 2660, 3744, 3094, 2580, - 3255, 3256, 3095, 5991, 4070, 1397, 1747, 1863, 3604, 3858, - 677, 4076, 2153, 1421, 3605, 4586, 2544, 1630, 5199, 2217, - 2305, 5744, 2025, 4159, 4678, 1740, 2633, 1375, 687, 2633, - 2633, 3914, 3915, 3906, 2613, 2840, 3397, 690, 5751, 619, - 3456, 3891, 1740, 2068, 2867, 5415, 2144, 2917, 1740, 4243, - 754, 4245, 1738, 795, 1739, 3097, 2812, 3607, 1920, 1119, - 1711, 2087, 4723, 2171, 2145, 3100, 684, 1853, 547, 3541, - 1202, 3398, 3601, 5673, 562, 6138, 3011, 3012, 2069, 5468, - 1259, 648, 1740, 5711, 3908, 3888, 2536, 3676, 5503, 6117, - 6118, 2203, 2830, 2203, 1119, 1498, 2140, 3107, 3602, 3261, - 3868, 2143, 901, 5657, 4290, 3662, 5808, 1119, 1119, 3051, - 42, 836, 3900, 1119, 2779, 3824, 1163, 1119, 1119, 1119, - 804, 3908, -2042, 1736, 1737, 5692, 1736, 1737, 1119, 1119, - 5470, 3908, 3908, 5371, 1119, 5745, 1119, 1119, 1119, 1119, - 1119, 2841, 1119, 2116, 1736, 1737, 837, 1736, 1737, 1797, - 6069, 6070, -2757, 1119, 3959, 1119, 2543, 5907, 1119, 1119, - 5315, 1119, 1119, 1119, -1461, 1119, 1119, 1119, 1869, 5266, - 1151, 3013, 1119, 1740, 5574, 1119, 3920, 3955, 2222, 2830, - 3823, 3829, 3830, 1119, 1119, 3852, 1119, 1119, 1119, 4708, - 3833, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 3542, 1119, - 1119, 1119, 1119, 1119, 1119, 5457, 1119, 1119, 3943, 1119, - 1119, 1119, 1119, 1119, 1119, 1119, 831, 3540, 1119, 1119, - 1119, 1119, 2484, 1119, 1119, 1119, 832, 1119, 2841, 1119, - 5827, 1119, 564, 1148, 620, 1119, 1119, 1119, 2306, 5314, - 1119, 1119, 1119, 1119, 1119, 3818, 1119, 3689, 4775, 4776, - 4777, 4778, 5712, 1119, 5325, 5799, 5801, 1736, 1737, 5539, - 1119, 1119, 1119, 1119, 648, 2099, 1887, 1312, 4261, 3410, - 2581, 1119, 1119, 1119, 5693, 1119, 1119, 1119, 1119, 1119, - 1119, 3362, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, - -2042, 4053, 6000, 1119, 1738, 1223, 1739, 1738, 4182, 1739, - 3690, 2429, 4586, 1964, 3109, 2575, 5508, 2480, 1736, 1737, - 2438, 2834, 4255, 3075, 1924, 1738, 2932, 1739, 1738, 3541, - 1739, 2449, 3322, 4231, 2936, 5285, 3323, 1736, 1737, 814, - 815, 5140, 1813, 4237, 4233, 5690, 1119, 4802, 4398, 4860, - 3532, 1119, 5575, 5234, 5235, 3907, 5200, 563, 3334, 2614, - 2223, 1119, 3518, 896, 3898, 16, 17, 2633, 858, 4258, - 5885, 3341, 3342, 3203, 3484, -2685, 4234, 2602, 2603, 4235, - 2605, 2606, 2607, 4239, 5321, 5350, 5323, 3399, 648, 5326, - 3113, 2616, 5736, 5269, 5737, 5330, 5331, 1362, 680, 681, - -2344, 1736, 1737, 2481, 5713, 3661, 564, 2637, 3544, 4586, - 1736, 1737, 648, 2911, 6010, 1476, 1797, 2144, 3600, 662, - 1817, 1895, 1822, 1736, 1737, 1740, 1825, 1830, 1740, 1119, - 1163, 5926, 2813, 5928, 3400, 2145, 5825, 3410, 1738, 3816, - 1739, 1202, 16, 17, 1630, 3101, 1740, 2146, 3411, 1740, - 2642, -2754, 1736, 1737, 1119, 3114, 1859, 4480, 3542, 4478, - 3115, -2042, 5482, 2604, 3892, -70, 1537, 2608, 838, 2610, - 4709, 3667, 3519, 1764, 1765, 1766, 1767, 1768, 1769, 3520, - 1736, 1737, 4117, 3139, 1569, 3307, 1888, 3521, 2709, 1738, - 3893, 1739, 2923, 5002, 5002, 1736, 1737, 3401, 3132, 2719, - 1736, 1737, 2482, 3237, 1736, 1737, 4231, 2421, 1738, 2422, - 1739, 5493, 5764, 5576, 3136, 2651, 4237, 4233, 803, 5668, - 3260, 3140, 2712, 4803, -2752, 3304, 889, 1318, 4608, 1736, - 1737, 3543, 3270, -2755, -2442, 3305, 3187, 4214, -2753, 2725, - 3008, 3402, 742, 5640, 3262, 2757, 803, 3652, 3652, 4234, - 3211, 2835, 4235, 5743, 3138, 5382, 4239, 1977, 4253, 1740, - 3522, 2717, 2818, 1736, 1737, 3445, -2661, 3412, 3446, 4726, - 3448, 1860, 1738, 3261, 1739, 3330, 4727, 3981, 3453, 5189, - 2924, 1738, 3409, 1739, 42, 4437, 5137, 5138, 5139, 1119, - 2830, 1847, 1736, 1737, 1738, 728, 1739, 5540, 1748, 1749, - 1750, 5190, -1461, 4974, 1736, 1737, 3411, 4993, 2925, 839, - 1740, 2116, 1736, 1737, 897, 2021, 2715, 2576, 785, 3357, - 3523, 727, 2633, 1738, 5744, 1739, 2754, 2755, 2916, 1740, - 1569, 2577, 1736, 1737, 730, 5650, 1736, 1737, 3606, 1736, - 1737, 5899, 5765, 4586, 5707, 2143, 3142, 5507, -2685, 2836, - 5600, 1738, 5602, 1739, 1319, 4206, 1896, 2839, 3544, 5441, - 1163, 762, 5615, 5448, 5449, 4994, 1738, 5417, 1739, 3884, - 3885, 1738, 6011, 1739, 898, 1738, 2222, 1739, 1736, 1737, - 5358, 1864, 2718, 4033, 3385, 4126, 1736, 1737, 1477, 1736, - 1737, 1538, 3899, 1740, 3982, 4454, 4455, 3403, 3404, 3405, - 5558, 5744, 1740, 1736, 1737, 5669, 521, 2926, 3328, 6024, - 4463, 1865, 3267, 2830, 780, 1740, 3965, 528, 3545, 2860, - 5766, 5640, 4788, 1343, -2754, 3412, 4436, 1119, 1119, 1978, - 2222, 3009, 2269, 2068, 1738, 2227, 1739, 4406, 5745, 5232, - 524, 2917, 2840, 4236, 1740, 1202, 3607, 3887, 887, 1897, - 1848, 1331, 5523, 4238, 2244, 4423, 2959, 5134, 4275, 4276, - 4277, 4278, 3908, 1738, 1898, 1739, 2245, 1260, 2069, 1736, - 1737, 4256, 1740, 4995, 5984, 1738, 3331, 1739, 1863, 526, - 4061, 3477, 1955, 1738, 1955, 1739, 5485, 1740, 1332, 5486, - 5856, 5551, 1740, 1223, 1736, 1737, 1740, -2752, 5541, 2222, - 5761, -1540, 1321, 1738, 1119, 1739, -2755, 1738, 2146, 1739, - 1738, -2753, 1739, 2423, 5921, 5745, 2424, 1736, 1737, 5667, - 827, 1740, 521, 4207, 5776, 1119, 2246, 1119, 3908, 1736, - 1737, 835, 5593, 528, 525, 1119, 1119, 4244, -1540, 3001, - 5687, 3486, 1863, 1808, 1736, 1737, 5916, 5917, 2223, 1738, - 4996, 1739, 5572, 5573, 830, 1740, 524, 1738, 2269, 1739, - 1738, 3652, 1739, 4131, 3868, 1736, 1737, 3025, 3025, 5098, - 3025, 3025, 861, 4768, 1738, 3983, 1739, 3476, 2195, 4450, - 4451, 4452, 4453, 3501, 1740, 5487, 2830, 3141, 3038, 4298, - 1344, 3145, 2110, 834, 1544, 526, 1740, 754, 5709, 2172, - 527, 2173, 2223, 2270, 1740, 5002, 1736, 1737, 1345, 3146, - 1736, 1737, 3147, 4975, 1275, 4976, 1223, 5857, 5606, 3288, - 5860, 1119, 1119, 1119, 1740, 4208, 5559, 5560, 1740, 2087, - 4852, 1740, 1736, 1737, 4982, 2841, 4089, 3532, 2271, 4984, - 1738, 5784, 1739, 1333, 5364, 1736, 1737, 2483, 833, 2092, - 525, 2144, 4977, 2524, 4296, 4297, 703, 3828, 5989, 4081, - 1736, 1737, 4302, 2545, 4303, 1738, 4305, 1739, 5488, 2145, - 1740, 2223, 764, 889, 1569, 1202, 1736, 1737, 1740, 3664, - 4978, 1740, 1809, 4760, 3731, 5581, 2475, 2525, 1738, 5099, - 1739, 1736, 1737, -1540, 3736, 1740, 5988, 680, 681, 1119, - 1738, 2140, 1739, 767, 4678, 1276, 1736, 1737, 3262, 5385, - 5608, 2005, 2247, 4904, 527, 1738, 527, 1739, 2110, 6065, - 1286, 1119, 3148, 2514, 5561, 2093, 4089, 4089, 1119, 2270, - 4390, 1119, 765, 1119, 704, 4082, 1738, 1286, 1739, 1119, - 3600, 1119, 1119, 1736, 1737, 5554, 3652, 3652, 1904, 3263, - 5365, 3769, 1736, 1737, 4089, 4964, 1602, 1603, 1604, 887, - 3167, 1740, 2526, 2137, 2116, 1119, 3173, 716, 4301, 5748, - 1736, 1737, 5755, 3151, 4306, 6028, 5293, 1738, 786, 1739, - 1119, 1738, 3780, 1739, 3878, 2621, 1740, 5523, -2515, 5982, - 5983, 3289, 3152, 2087, 1736, 1737, 5067, 1119, 1302, 5562, - 1736, 1737, 4965, 1738, 5802, 1739, 1287, 1288, 3307, 1740, - 5702, 4915, 3795, 3253, 6066, 4979, 1738, 1658, 1739, 3299, - 1119, 1740, 5609, 1287, 1288, 2020, 5093, 3796, 1266, 2622, - 3309, 1738, 5294, 1739, 547, 3648, 1740, 1736, 1737, 3649, - 3318, 3841, 1119, 2527, 1847, 717, 2111, 1738, 3304, 1739, - 1391, 4980, 3321, 3303, 6063, 6063, 3153, 1740, 3305, 5055, - 4481, 2561, 1738, 9, 1739, 3171, 3300, 6067, 5129, 550, - 5131, 1791, 4966, 2562, 5049, -2515, 5051, 1738, 3176, 1739, - 5960, 5054, 5803, 5964, 3025, 3025, 3025, 3025, 3319, 1176, - 1736, 1737, 795, 5125, 1496, 3006, 3324, 5128, 1740, 5130, - -3454, 2705, 1740, 2787, 1736, 1737, 6098, 3179, 2789, 1736, - 1737, 1184, 1736, 1737, 1738, 1267, 1739, 2509, 4471, 19, - 2835, 1119, 3847, 1738, 1740, 1739, 5146, 5147, 5148, -2515, - 1947, 5748, 2112, 2246, 2113, 3186, 4896, 1740, 5755, 2923, - 2745, 1738, 5447, 1739, -3454, 1736, 1737, 3306, 887, 3149, - 2750, 1182, 1740, 2054, 4250, 3197, 2019, 1736, 1737, 3707, - 3333, 1183, 2623, 4923, 1289, 1738, 4075, 1739, 1740, 1268, - 684, 1738, 2111, 1739, 803, 3340, 3393, 3394, 4794, 4795, - 1863, 1656, 6161, 1740, 3868, 1736, 1737, 3267, 796, 2996, - 2298, 3356, 5295, 4644, 4643, 3439, 807, 3442, 1740, 1860, - 2734, 3369, 5471, 1848, 5006, 4360, 4810, 3450, 1738, 5472, - 1739, 3450, 2916, 3308, 3842, 2055, 32, 3606, 4319, 3643, - 4229, 3921, 4841, 4432, 2114, 2825, 2510, 2924, 4779, 1119, - 4780, 4837, 1630, 4361, 4494, 1740, 1736, 1737, 2511, 1736, - 1737, 1119, 2146, 2021, 1740, 1348, 5523, 4320, 2784, 4774, - 6083, 3644, 2311, 3395, 2735, 2929, 3943, 808, 2112, 4331, - 2113, 1738, 1740, 1739, 6162, 1736, 1737, 4351, 3607, 1736, - 1737, 5473, 1313, 5788, 684, 1738, 4873, 1739, 3922, 39, - 1738, 3044, 1739, 1738, 1314, 1739, 1740, 4368, 3447, -3475, - 4868, 4369, 1740, 1860, 5159, 1119, 3494, 42, 2785, 3849, - 1817, 2115, 844, 3498, 3499, 2634, 963, 3645, 2634, 2634, - 3916, 1736, 1737, 5208, 2512, 3850, 1738, 4593, 1739, 2563, - 1511, 5977, 2823, 2298, 5788, 2823, 2298, 852, 1738, 1740, - 1739, 781, 3150, 1736, 1737, 3646, 2514, 2021, 970, 903, - 3156, 1736, 1737, 3157, 5923, 3096, 2073, 4891, 4892, 5978, - 2114, 1122, 3372, 1315, 2926, 5167, 1738, 3161, 1739, 1736, - 1737, 5031, 3096, 1331, 5807, 2019, 6055, 3373, 3641, 4166, - 4167, 2298, 5179, 4168, 4169, 4170, 1512, 4822, 4917, 1513, - 1736, 1737, 1740, 4918, 5738, 2368, 5739, 4919, 2371, 5748, - 5755, 5322, 2298, 2020, 982, 5595, 1740, 1777, 2879, 2880, - 1332, 1740, 4922, 5979, 1740, 5332, 1514, 1738, 1860, 1739, - 1738, 6092, 1739, 2892, 1515, 1142, 5339, -3454, 5341, 6096, - 3098, 2366, 994, 3162, 1119, 1736, 1737, 2115, 1785, 1736, - 1737, 2032, 655, 2389, 3647, 1150, 1738, 1740, 1739, 2259, - 1738, 1242, 1739, 2239, 2240, 831, 5082, 2241, 3163, 1740, - 1736, 1737, 2021, 2315, 2400, 832, 6116, 5006, 2020, 2996, - 657, -3454, 3137, 1924, 2116, 657, 4920, 1736, 1737, 657, - 2983, 3169, 1246, 1860, 4751, 4753, 4753, 1740, 4753, 5114, - -2509, -2509, 1738, 3170, 1739, 2316, 4751, 4751, 4753, 4753, - 1550, 1550, 1550, 2033, 3143, 3144, 1119, 1247, 3174, 1119, - 2317, 1556, 1556, 1556, 1738, 1316, 1739, 1255, 1119, 5381, - 2894, 2895, 1738, 1257, 1739, 3468, 1119, 2021, 1119, 3175, - 1119, 1015, 1119, 1119, 1119, 1119, 1119, 1119, 1740, 1119, - 1738, 1740, 1739, 3235, 1736, 1737, -702, 1119, 4474, 1119, - 5045, 2318, 1119, 1119, 1119, 1119, 3025, 1273, 1119, 1119, - 1264, 1738, 1119, 1739, 1119, 1333, 1119, 1740, 1119, 1280, - 3177, 1740, 1119, 1554, 1554, 1554, 4886, 4885, 1296, 2319, - 1119, 1300, 1119, -702, 1119, 1119, 1119, 1119, 1119, 4887, - 666, 1119, 1119, 1119, 672, 1119, 3184, 1282, 1119, 1302, - -704, 1308, 2559, 2559, 2559, 2559, 1738, 1306, 1739, 3198, - 1738, 1119, 1739, 1740, 5218, 5219, 1119, 2082, 2083, 1119, - 1309, 1119, 1119, 1119, 4314, 1144, 1119, 1310, 1553, 1553, - 1553, 1738, 1119, 1739, 1154, 1740, 1260, 1119, 1320, 1234, - 4317, 1371, 4405, 1740, -704, 2020, 2634, 1364, 1738, 4436, - 1739, 2121, 3299, 1119, 1341, 4318, 1736, 1737, 3073, 1119, - 1860, 1740, 1119, 3309, 2087, 2087, 2087, 2087, 1119, 1373, - 4323, 1372, 4755, 3219, 4757, 1119, 781, 1119, 2320, 4844, - 2034, 2035, 1740, 4846, 4763, 4764, 3303, 1377, 1736, 1737, - 2036, 4897, 3488, 3489, 1555, 1555, 1555, 3154, 1924, 3300, - 4534, 1385, 2164, 1381, 2021, 5437, 3831, 4327, 1392, 3500, - 1474, 2037, 3160, 1924, 1472, 1738, 4328, 1739, 887, 3526, - 3527, 1753, 521, 2787, 1119, 1473, 2840, 1740, 1475, 1736, - 1737, 1740, 1753, 528, 4329, 3237, 1478, 4876, -702, 3346, - 2189, 2190, 1736, 1737, 6071, 3164, 1924, 4672, 4672, 3416, - 3347, 1119, 1740, 1863, 4396, 1177, 524, 3936, 4330, 5498, - 3165, 1924, 4893, 4894, 4332, 1753, 1187, 2904, 731, 1740, - 1637, 5519, 522, 1488, 480, 2633, 3112, 5377, 1223, 4371, - 3306, 5058, 4643, 3589, 3590, 3591, 3592, 481, 5050, 1181, - 1654, 3860, 4256, 482, 483, 526, 5525, 1659, 1660, 3166, - 1924, 4341, 4673, 4673, 1976, 5238, 3025, 5064, 1874, 5066, - 1981, 1982, 5069, 1756, 732, 1506, 1119, 5221, 5075, 5076, - 3172, 1924, 5701, 1516, 1756, 3372, 3372, 1738, 1185, 1739, - 4616, 1757, 3596, -1193, 1508, 5089, 1740, 3364, 1736, 1737, - 3373, 3373, 1757, 3616, 3618, -3429, 3308, 3937, 5812, 3606, - 525, 3623, 3624, 1510, 4347, 1294, 1295, 1756, 1298, 1738, - 1299, 1739, 1518, 1348, 1348, 1348, 1348, 1521, 4350, 1519, - 2830, 3625, 3624, 4356, 5396, 1757, 4357, 4026, 3351, 4650, - 4651, 3627, 3628, 4652, 4653, 3674, 3675, 1759, 1760, 4654, - 4655, 3696, 3697, 1527, 2038, 4040, 1530, 5168, 1759, 1760, - 1738, 2634, 1739, 1119, 4674, 3947, 3948, 4112, 4113, 4358, - -921, -921, 1532, 1738, 1531, 1739, 527, 1119, 1535, 2841, - 5153, 4366, 4596, 4222, 4223, 16, 17, 1736, 1737, 4166, - 4167, 1759, 1760, 4168, 4169, 4170, 4342, 3144, 2816, 1533, - 4090, 5722, 3462, 1540, 5336, 680, 681, 1590, 1740, 1186, - 2905, 1955, 2840, 4345, 1924, 1570, 2222, 1591, 4637, 733, - 1592, 1348, 4352, 4353, 2315, 1597, 4090, 4090, 3987, 3988, - 5170, 4359, 1924, 1598, 5172, 4026, 4363, 4364, 1599, -2256, - 1740, 1600, 5344, 2817, 1601, 5185, 4045, 5706, 5506, 2331, - 2332, 2333, 2334, 4440, 4441, 734, 2316, 1605, 1837, 1649, - 4367, 1119, 1772, 4370, 4105, 4106, 4107, 4108, 1607, 4110, - 4111, 4083, 1773, 5211, 4885, 4649, 16, 17, 4466, 1736, - 1737, 1740, 4761, 4762, 2032, 2818, 4887, 1593, 1696, 4374, - 5215, 4090, 4090, 4387, 1740, 3267, 4446, 4447, 1608, 549, - -2442, 1609, 2335, 2336, 2337, 4716, 2983, 4729, 4730, 1467, - 4467, 1610, 4084, 4635, 4856, 1924, 4192, 4193, 1611, 4195, - 1471, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 521, 4205, - 5549, 2137, 4210, 1223, 1702, 5158, 4213, 4660, 4660, 528, - 4085, 5119, 5120, 1468, 5121, 5122, 2033, 5123, 5124, -1883, - 1119, 3861, 1774, 2338, 2339, 1612, 2830, 5164, 1738, 2039, - 1739, 2041, 524, 1613, 3128, 5165, 4468, 5082, 1775, 5838, - 5160, 1924, 1119, 1753, 5177, 5178, 1614, 550, 2959, 5187, - 1924, 1615, 1470, 5166, 1616, 5833, 5834, 1617, 2223, 1753, - 1618, 5837, 5202, 5203, 4469, 1119, 1619, 1838, 4801, 1875, - 1550, 526, 1622, 5929, 5175, 2841, 2819, 1119, 1632, 1839, - 1119, 1556, 4789, 5243, 5244, 5247, 5048, 1633, 2820, 2633, - 2633, 5704, 5705, 1634, 2340, 887, 1635, 3666, 5429, 5430, - 2559, 2559, 1638, 1119, 1119, 1639, 5585, 1469, 4772, 4086, - 5588, 3069, 2222, 1876, 1640, 1877, 1641, 5058, 4643, 5176, - 1738, 1776, 1739, 5180, 1642, 5723, 525, 1119, 1643, 1119, - 1644, 1119, 5724, 1119, -948, 1756, -1163, 5433, 5430, 1840, - 5327, 5528, 5529, 1554, 5181, 1645, 3803, 5725, 1841, 1740, - 4283, 1756, 1646, 1757, 4857, 1119, 3970, 5620, 2879, 2880, - 1778, 5542, 1647, 4470, 1648, 1817, 1650, 1817, 2341, 1757, - 5571, 4447, -2442, 2892, 680, 681, 1119, 1119, 1176, 1551, - 1289, 1560, 1561, 1562, 5621, 2087, 1651, 1563, 1652, 1566, - 2816, 2821, 527, 2034, 2035, 1653, 1119, 1655, 1553, 1661, - 1184, 1119, 2934, 2036, 5944, 1780, 5605, 1119, 1878, 1759, - 1760, 5584, 5430, 5762, 5763, 5847, 5848, 1119, 1662, 1119, - 4675, 4675, 2947, 1663, 2037, 1759, 1760, 5001, 5592, 1223, - 1664, 2952, 16, 17, 1665, 2817, 1666, 2954, 5858, 5859, - 1182, 1740, 5878, 4447, 1667, 2963, 1569, 5879, 4447, -2684, - 1183, 5781, -1163, 1668, 1119, 1119, 2976, 1879, 1671, 2978, - 2342, 5742, 2822, 1672, 1555, 1673, 5053, 1736, 1737, 1119, - 2894, 2895, 5883, 4113, 1674, 4236, 5726, 2818, 1675, 735, - 1676, 1736, 1737, 5606, 2223, 4238, 5941, 5203, 1677, 5727, - 680, 681, 6077, -2256, 1680, 5622, 1681, -165, 1682, 5623, - 1842, 16, 17, 5060, 4423, 1880, 1683, -923, 5728, 1684, - 4658, 1685, 4092, 4093, 1686, 4095, 4097, 1782, 6026, 3528, - 5549, -1163, 5605, 2904, 1687, 1843, 1119, 4676, 4676, 2343, - 6003, 5430, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, - 1688, 634, 1689, 1762, 1763, 1764, 1765, 1766, 1767, 1768, - 1769, 6005, 5430, 6006, 5430, 1956, 1783, 6031, 6032, 680, - 681, 1348, 1348, 6040, 6041, -923, 3757, 1690, 736, 732, - 1736, 1737, 4343, 1691, 3976, 5608, 1762, 1763, 1764, 1765, - 1766, 1767, 1768, 1769, 1692, 5068, -2082, 2315, 3372, 2452, - 2453, 5605, 4026, 1693, 2344, 1881, 2345, 4026, 2819, 5606, - 1694, 2346, 1695, 3373, 5852, 4219, 1697, 2038, 6047, 5430, - 2820, 1784, 5735, 1698, 1699, 5014, 1882, 1700, 4603, 2316, - 6048, 5430, 1701, 5607, -2082, 1799, 2830, -2082, 1119, 6056, - 5430, 1223, 1703, 2342, 4083, 1704, -2082, 1705, 1738, 1119, - 1739, 2840, 1706, -2082, 1707, 5032, 5729, -2082, 4236, 4536, - 4597, 5624, 1738, 4540, 1739, 5824, 1708, -2082, 4238, 1709, - -2082, 718, 719, 1712, -2082, 2347, -2082, 1713, 5606, 6080, - 5203, -2082, 4109, -923, 1716, 4084, 6093, 5430, -2082, 1717, - 4632, -2082, 2904, 6115, 4932, 1718, -2082, 5609, 6150, 6151, - 1719, 5608, 5607, 1720, 1800, 1721, 1722, 5207, 720, 1723, - 4720, 1779, 2343, 4085, 1801, 5861, 2905, -2082, 2348, 5071, - 1802, 1807, 2222, 2821, 733, 1835, 4188, 4026, 4190, 4191, - -2082, 3710, -2718, 1844, 4196, -2082, 1836, -2719, 605, -2442, - -2683, 1832, 4204, 5545, -2715, -2713, -2717, 4211, -2712, -2716, - 721, 1738, -2710, 1739, -2082, -2714, 1854, 3596, 4047, 1855, - -923, 1860, 1870, 660, 1871, 1872, 1873, 1893, 660, 1740, - 5608, 1894, 660, 2906, 1899, 675, 1911, 2344, -2082, 2345, - 1924, 5625, 1927, 1740, 2346, 1962, 3641, -2082, 1968, 2514, - 1817, 5683, 5682, 1970, 2822, 2830, 1979, 1980, 1984, 4090, - 1736, 1737, 1985, 1987, 5684, 1863, 3711, 2349, 1845, -2082, - 1736, 1737, 4086, 5609, 1989, 2010, 1846, 1993, 2350, 2011, - 2051, 3712, 2039, 2040, 2041, 2042, 2047, 754, 2053, -2082, - 689, 2064, 2065, 2071, 2076, -2082, -2082, 5734, 2074, 1223, - 4160, 2080, 2079, 2084, 2841, 2096, 4, 3713, 2347, -2082, - 4660, -2082, 5267, 2106, -2082, 906, 2123, 5271, 5272, 3714, - 2128, 2126, 2127, 2138, 2134, 2140, 5852, 2183, 2160, 5971, - 2185, 2167, 1740, 2176, 2194, 2905, 3503, 8, 2907, 3715, - 2200, 2222, 5609, 2184, 2202, 3759, 2204, 2210, 2214, 2212, - 2216, 2348, 2218, 694, 2223, 3761, 2226, 2232, 2233, 1119, - 1119, 2235, 1119, 2236, 907, 2237, 2258, 2266, 2261, 14, - 2275, 1119, 3716, 1119, 908, 2277, 1119, 2279, 701, 6036, - 2278, 5816, 5817, 2281, 5819, 2282, 2284, 722, 18, 1119, - 2285, 1119, 2289, 1119, 2297, 1119, 1764, 1765, 1766, 1767, - 1768, 1769, 2298, 909, 723, 2307, 2314, 2354, 1119, 1119, - 910, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1736, 1737, - 4346, 5841, 5840, 2365, 23, 2325, 2329, 5832, 2366, 724, - 2367, 1738, 2376, 1739, 5842, 2380, 2385, 2384, 2437, 5626, - 2349, 1738, 5620, 1739, 2405, 2443, 2447, 2457, 1119, 911, - 2468, 2350, 42, 1753, 2472, 2491, -2082, 2498, 1223, 2521, - 2520, 2547, 2553, 2546, 2557, 6060, 3345, 2548, 725, 5621, - 4541, 4542, 4543, 4544, 4545, 2556, 4547, 4548, 4549, 4550, - 4551, 2565, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, - 4561, 4562, 31, 2598, 4566, 4567, 2599, 2619, 912, 913, - 2568, 2596, 6036, 4632, 1177, 6144, 1752, 705, 2643, 2644, - 2645, 2646, 914, 2223, 2648, 1187, 2649, 16, 17, 6154, - 5780, 2650, 2671, 4661, 2672, 6144, 3504, 3717, 5610, 2675, - 2676, 6154, 2678, 1753, 1119, 2677, 2679, -1163, 1181, 3718, - 3346, 5938, 2686, 5939, 5940, 1756, 2687, 2688, 4220, 5436, - 2692, 3347, 1740, 2693, 2696, 2694, 2695, 709, 3348, 2697, - 1753, 2699, 1740, 1757, 2700, 2706, 2707, 2728, 1119, 2739, - 5841, 5840, 3505, 41, 2746, 680, 681, 1185, 5440, 2743, - 5622, 2774, 2783, 5842, 5623, 5947, 2019, 3349, 4324, 1738, - 2796, 1739, 2802, 2803, 2815, 2861, 2838, 5610, -2700, 2862, - 5224, 2854, 2904, 2864, 2868, 4680, 2865, 5605, 2869, 2901, - 4688, 72, 2918, 2920, 2941, 1754, 2943, 4939, 2188, 1759, - 1760, 2953, 2970, 2977, 2989, 1756, 2021, 1755, 623, 2990, - 4662, 4026, 915, 3842, 2998, 3004, 3007, 4959, 4960, 3014, - 3719, 3020, 3720, 1757, 3039, 5680, 3048, 4973, 3350, -2442, - 3065, 5898, 1756, 3506, 3070, 5351, 3067, 3068, 680, 681, - 1119, 3079, 3080, 3081, 3086, 3084, 3096, 1119, 3085, 3099, - 1757, 3213, 3103, 3106, 1769, 3232, -1677, 1119, 3116, 3351, - 5012, 3117, 3121, 3129, 5606, 3130, 3131, 3135, 5065, 3155, - 3158, 3178, 3159, 624, 3168, 5649, 2936, 3182, 1186, 1759, - 1760, 5079, 4987, 1758, 752, 2830, 916, 3183, 5607, 5087, - 1740, 3218, 946, 3185, 3189, 3507, 5090, 5043, 5091, 5092, - 3228, 3234, 3190, 3241, 1956, 831, 1759, 1760, -1853, 3248, - 3254, 1678, 1710, 3508, 3509, 832, 5624, 1714, 3510, 3511, - 3512, 761, 4026, 605, 2634, 3258, 605, -2082, 3268, 771, - 777, 963, 3269, 5953, 3271, -2082, 3272, 3282, 3283, 546, - 3290, 1957, 1119, 1119, 3286, 3287, 3293, 625, 3294, 3291, - 3292, 3316, 3325, 3327, 5109, 3329, 5608, -2082, -2082, 626, - 968, -2082, -2082, 970, 3295, 2905, 3332, 4712, 4713, 4714, - 3335, 2222, 3354, -2082, 3721, 3383, -2082, 5101, 974, 975, - 5032, 3355, 3417, 3222, 3419, -2082, 3513, 4740, 4743, 3462, - 4746, 3345, -2082, 3423, 3420, 777, -2082, 3424, 3435, 3436, - 5084, 547, 3454, 3464, 3465, 3470, 3473, 3480, 777, -2082, - -2302, 3490, 3491, -2082, 771, -2082, 1119, 3492, 3495, 982, - -2082, 3493, 2906, 3496, 3549, 917, 6126, -2082, 627, 3497, - -2082, 3551, 3554, 3558, 3514, -2082, 1145, 3560, 988, 3563, - 3564, 3565, 3566, 771, 3587, 1179, 993, 994, 3567, 3568, - 3569, 3570, 3588, 3571, 3572, 3573, -2082, 3595, 3574, 3575, - 771, 3612, 3576, 3613, 3577, 3346, 3578, 3579, 5609, -2082, - 3580, 5556, 3581, 1256, -2082, 3582, 3347, 771, 1262, 3583, - 1119, 3722, 1119, 3348, 3584, 831, 3585, 3586, 1223, 3614, - 548, 1284, 3345, -2082, 3615, 832, 1119, 3619, 3620, 3616, - 831, 3641, 3632, 3655, 1753, 1301, 3617, 3631, 3618, 3658, - 832, 3661, 3349, 1119, 1119, 5733, 2116, -2082, 3673, 3677, - 3679, 3681, 3680, 3682, 3683, 4490, -2082, 2907, 3684, 3723, - 3687, 3691, 1119, 3692, 1339, 3693, 1012, -3492, 3694, 3732, - 771, 3700, 1354, 2223, 3733, 1014, 1015, 1016, -2082, 5654, - 3734, 3236, 3724, -1891, 3745, 3791, 3792, 3746, 3755, 3765, - 3804, 771, 3806, 3807, 3827, 4835, 3346, 3837, -2082, 3838, - 1379, 3844, -1132, 3350, -1132, -2082, 3845, 3347, 3593, 3846, - 628, 752, 3242, 1354, 3348, 3853, 3855, 4848, -2082, 3859, - -2082, 3873, 3345, -2082, 4720, 3880, 1756, 3876, 4945, 3881, - 3882, 2065, 3883, 2581, 3351, 629, 3889, 3890, 2580, 3897, - 549, 4961, 5254, 3349, 1757, 2983, 1485, 3902, 1487, 3913, - 1489, 4249, 605, 605, 605, 605, 1495, 1354, 5256, 771, - 3917, 4491, 2659, 3934, 5626, 6158, 5318, 3932, 3933, 5320, - 3949, 3950, 3951, 5689, 3954, 3956, 3957, 3962, 3963, 16, - 17, 3977, 1119, 630, 3989, 3978, 3980, 3986, 4049, 5389, - 5319, 4048, 4054, 4058, 4059, 4065, 3346, 5390, 1119, 4068, - 1759, 1760, 4079, 4067, 3350, 4072, 5620, 3347, 4080, 831, - 752, 4161, 1559, 5733, 3348, 4175, 4162, 4163, 550, 832, - 1564, 4179, 1567, 5303, 4186, 4218, 4187, 4189, 4242, 4248, - 4254, 2999, 4259, 5621, 4251, 3351, 4263, 1576, 2634, 2634, - 4272, -3492, 5268, 3349, 1762, 1763, 1764, 1765, 1766, 1767, - 1768, 1769, 4265, 5610, 4271, 4273, 5228, 4280, 4285, 3991, - 4291, 4293, 4300, 1761, 4304, 4307, 551, 4308, 4309, 4362, - 4310, 4375, 4947, 4950, 4952, 4954, 4385, 4373, -71, 4957, - 4958, 16, 17, 4395, 4962, 4403, 4397, 4968, 4386, 4404, - 4972, 4409, 4413, 4947, 1550, 4415, 4426, 4983, 4947, 4427, - 4429, -1163, 4430, 4433, 3350, 1556, 4439, 4442, 5346, 1119, - 4443, 4448, 4449, 4456, 552, 4457, 4460, 4477, 4485, 631, - 3992, 3993, 3994, 4489, 1762, 1763, 1764, 1765, 1766, 1767, - 1768, 1769, 4492, 4495, 4497, 3351, 4500, 632, 1119, 680, - 681, 4512, 4529, 4530, 5622, 3995, 4499, 4616, 5623, 4503, - 4531, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 4510, - 4528, 4532, 4533, 4539, 4535, 4546, 4552, 1554, 4129, 4599, - 3996, 5605, 4044, 4606, 4620, 4624, 4625, 4628, 633, 4646, - 4660, 634, 4668, 4671, 4670, 6155, 1402, 4681, 4682, 1733, - 4689, 4690, 4691, 4692, 4693, 4696, 4697, 4694, 3997, 4698, - 3998, 4699, 4707, 4700, 4725, 4733, 4765, 4769, 635, 4720, - 4770, 4026, 4811, 1119, 4773, 4782, 636, -1132, 4784, 3999, - 4797, 4793, 1553, 4796, 4812, 4963, 4804, 4805, 4842, 1467, - 3194, 4851, 4380, 4858, -2008, 4862, 4860, 4863, 4000, 4865, - 1471, 4866, 2529, 4870, 4813, 4001, 4875, 4908, 5606, 4909, - 4932, 771, 752, 4931, 4936, 4937, 4941, 752, 4943, 4944, - 4002, 4988, 4990, 1468, 553, 4991, 4999, 1804, 554, 4992, - 4003, 5021, 5607, 5022, 771, 5024, 771, 4814, 5006, -2204, - 771, 771, 1736, 1737, 5047, 4004, 5026, 1817, 1555, 5062, - 5048, 5052, 5061, 5070, 5351, 5072, 5073, 5074, 5102, 5103, - 5624, 5391, 1470, 5104, 5392, 5107, 5110, 5117, 5118, 555, - 771, 5111, 5126, 5546, 5132, 5133, 5135, 5143, 5144, 5149, - 5150, 5154, 5161, 1119, 5162, 5163, 2331, 2332, 2333, 2334, - 5169, 5171, 5174, 5188, 5197, 5183, -1978, 5184, -1983, -2254, - 5608, 5196, 4005, 5204, 1908, 5795, 5212, -3492, 5233, 752, - 752, 1918, 4006, 5241, 5231, 5245, -2082, 1469, 5240, 5249, - 5255, 1119, 4815, 1119, 5257, 1961, 5264, 5258, 5733, 5263, - 1957, 5265, 5277, 5297, 5304, 5305, 1972, 5309, 5311, 2335, - 2336, 2337, 2020, 5329, 5337, 5310, -2082, -2082, 752, 4007, - -2082, -2082, 5312, 5333, 5342, 4173, 5345, 5369, 5370, 5372, - 5619, 5347, 4008, 5619, 5373, 5379, 5412, 5375, 1996, 1467, - 5380, 4513, 5383, 5537, 5387, 5401, 5414, 5410, 4514, 5418, - 1471, 5427, 6078, 5419, 1467, 5426, 5445, 4993, 2018, 5432, - 2338, 2339, 4816, 5476, 4515, 1471, 5469, 5454, 1929, 5674, - 5443, 5477, 4009, 1468, 4516, 4517, 4518, 5475, 4010, 5481, - 5479, 4223, 5609, 1738, 4519, 1739, 5491, 2516, 1468, 5499, - 752, 5501, 5520, 5511, 5526, 5536, 5543, 5534, 5544, 752, - 5551, 5552, 5554, 5555, 5568, 771, 5570, 605, 752, 5550, - 5580, 752, 1470, 5582, 5583, 5587, 5589, 5598, 1550, 3996, - 5647, 752, 5590, 5658, 5659, -923, 5660, 1470, 4658, 1556, - 5661, 2340, 5641, 5642, 5644, 5671, 1119, 4011, 5672, 5699, - 5686, 5708, 5678, 5718, 4012, 1762, 1763, 1764, 1765, 1766, - 1767, 1768, 1769, 5721, 5752, 5767, 5769, 5773, 5771, 5772, - 16, 17, 5775, 5777, 5778, 5750, 5779, 1469, 5750, 5792, - 5791, 5793, 5794, 5844, 4013, 4817, 5818, 4818, 5820, 5821, - 5828, 5835, 1469, -923, 5675, 5830, 5849, 732, 6160, 4014, - 4015, 1554, 5619, 5845, 5855, 5846, 5862, 5874, 5866, 5869, - 5877, 5790, 4016, 5880, 1740, 2341, 3372, 5902, 2065, 5619, - 2201, 5901, 5891, 752, 5903, 2209, 5909, 5919, 5920, 5925, - 5949, 3373, 5933, 5927, 4520, 605, 5942, -826, 5950, 5973, - 4126, 4131, 771, 827, 6015, 5774, 771, 752, 4521, 5952, - 5957, 6007, 5248, 5958, 835, 5996, 1553, 6021, 5626, 6022, - 6008, 6023, 5790, 6043, 6044, 6045, 16, 17, 1119, 6052, - 6046, 3989, 771, 6053, 4591, 771, 6054, 830, 6081, 6084, - 6095, 752, 6097, 6106, 6094, 6109, 6112, 6121, 6114, 6120, - 6122, 4740, 6123, 4743, 4659, 4746, 6130, 6125, 6127, 6145, - 6131, -923, 2276, 6157, 3886, 4509, 1571, 2342, 1963, 4, - 2690, 4212, 5361, 5359, 4028, 1889, 834, 5638, 906, 5645, - 5360, 5636, 1555, 5635, 5639, 5741, 4656, 5814, 5937, 5480, - 752, 6079, 5750, 4522, 4598, 2075, 5300, 5750, 4819, 4820, - 8, 4029, 733, 4750, 5750, 5651, 3991, 5610, 4523, 6018, - 6017, 4246, 2124, 4241, 5239, 5384, 4766, 2984, 1396, 2538, - 3392, 4527, 4289, 1583, 4267, 5141, 1384, 907, 5399, 3562, - 4925, 833, 14, 3059, 1119, 3060, 2343, 908, -923, 1817, - 3062, 5892, 3061, 3003, 4524, 2852, 5758, 5619, 5455, 2120, - 5591, 18, 4703, 4145, 4869, 5335, 4874, 5195, 4525, 5400, - 5956, 5717, 6030, 6111, 3246, 5405, 909, 3992, 3993, 3994, - 6088, 6113, 4572, 910, 4881, 5876, 5210, 5914, 3427, 4701, - 1119, 6042, 5634, 5097, 5262, 6064, 5922, 23, 5826, 4706, - 5918, 5275, 3995, 752, 4299, 5924, 5954, 527, 3626, 4077, - 2937, 2344, 752, 2345, 4377, 4845, 4847, 4843, 2346, 6091, - 739, 740, 911, 752, 6057, 5594, 6058, 3996, 5985, 4704, - 5897, 2951, 1930, 5096, 2461, 5900, 2740, 3969, 4660, 5586, - 1903, 5677, 2086, 3557, 3968, 5951, 1931, 5750, 1932, 5505, - 771, 5986, 2903, 3257, 3368, 3997, 4282, 3998, 3688, 2050, - 4783, 4645, 5685, 4394, 4821, 31, 5936, 5317, 3482, 2023, - 4864, 912, 913, 5946, 5966, 5967, 3999, 4062, 1933, 6016, - 2800, 3768, 2347, 3766, 5619, 914, 2455, 771, 4417, 2519, - 2304, 2364, 3944, 1934, 2517, 4000, 4482, 1128, 3938, 5222, - 4853, 5882, 4001, 3928, 1129, 5992, 6089, 5740, 752, 5242, - 6090, 5496, 3834, 1119, 4626, 771, 771, 4002, 5495, 4410, - 1130, 1119, 5395, 771, 2571, 2348, 1935, 4003, 5854, 5510, - 1131, 1132, 1133, 771, 5386, 2313, 4472, 5416, 3467, 5494, - 1134, 4618, 4004, 3653, 1936, 2260, 41, 2592, 1804, 741, - 3686, 2551, 5205, 605, 605, 752, 605, 605, 605, 752, - 771, 752, 4103, 5750, 4938, 5750, 5750, 605, 4914, 1236, - 1481, 2997, 6037, 6027, 1228, 6038, 3337, 2625, 3918, 1486, - 3338, 1231, 2636, 605, 72, 771, 3386, 2015, 750, 4720, - 5434, 5425, 2731, 4787, 6110, 5662, 6124, 5822, 6156, 4005, - 6159, 1657, 4880, 4483, 3358, 915, 3821, 752, 5750, 4006, - 1584, 3901, 4895, 1189, 2349, 2872, 5750, 3212, 1190, 3312, - 3045, 3895, 4720, 2748, 1937, 2350, 3896, 2564, 1161, 1798, - 3877, 1938, 4711, 3548, 2257, 4268, 3979, 1272, 5535, 4721, - 1973, 1939, 4479, 4905, 1119, 3930, 4007, 5223, 743, 744, - 745, 4661, 6073, 5750, 1940, -1132, 2873, -1132, 3449, 4008, - 6104, 0, 5948, 0, 0, 771, 0, 0, 0, 0, - 0, 2773, 0, 0, 0, 2722, 0, 0, 0, 916, - 1135, 752, 0, 0, 2065, 1941, 2732, 0, 1942, 0, - 0, 0, 0, 2874, 1136, 0, 0, 0, 0, 4009, - 0, 0, 0, 1943, 771, 4010, 0, 0, 0, 0, - 0, 0, 771, 771, 771, 2751, 2752, 2753, 752, 752, - 1119, 605, 5867, 5868, 0, 5870, 5871, 5872, 5873, 0, - 0, 0, 16, 17, 863, 0, 0, 3989, 0, 0, - 0, 0, 0, 0, 5893, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4662, 3990, - 0, 0, 5388, 0, 4011, 946, 0, 0, 864, 0, - 0, 4012, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 771, - 866, 0, 0, 0, 1137, 0, 0, 0, 0, 0, - 867, 4013, 0, 0, 963, 0, 0, 0, 0, 0, - 0, 752, 3991, 0, 0, 0, 4014, 4015, 917, 0, - 0, 4119, 0, 4120, 4121, 868, 0, 0, 0, 4016, - 1138, 752, 0, 968, 0, 0, 970, 0, 0, 0, - 0, 869, 0, 0, 1139, 0, 870, 4122, 0, 4123, - 0, 974, 975, 0, 0, 4124, 0, 0, 0, 0, - 0, 0, 0, 0, 771, 5965, 0, 0, 5968, 871, - 0, 0, 0, 3992, 3993, 3994, 5976, 2065, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4125, - 0, 0, 982, 0, 0, -826, -1274, 0, 3995, 2966, - 771, 2514, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 988, 0, 0, 0, 0, 0, 0, 0, 993, - 994, 0, 0, 3996, 1929, 16, 17, 1485, 0, 3000, - 3989, 752, 0, 3002, 0, 0, 0, 0, 872, 0, - 0, 0, 0, 0, 0, 752, 752, 0, 0, 0, - 0, 3997, 3017, 3998, 0, 0, 873, 0, 4126, 3026, - 3026, 0, 3026, 3026, 874, 0, 0, 1792, 0, 0, - -1132, 0, 3999, 0, 0, 0, 0, 771, 0, 0, - 752, 0, 0, 0, 0, 0, 752, 0, 0, 0, - 0, 4000, 3049, 4127, 0, 0, 875, 4128, 4001, 0, - 0, 3054, 0, 0, 3056, 3991, 876, 877, 4129, 1012, - 2875, 0, 0, 4002, 0, 0, 16, 17, 1014, 1015, - 1016, 0, 0, 4003, 0, 0, 0, 0, 0, 0, - 4130, 0, 0, 0, 5987, 0, 0, 0, 4004, 0, - 2876, 2877, 0, 2878, 2879, 2880, 2881, 2882, 0, 2883, - 2884, 2885, 2886, 2887, 2888, 2889, 2890, 0, 2891, 2892, - 2893, 0, 0, 0, 0, 0, 3992, 3993, 3994, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3995, 0, 0, 0, 4005, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4006, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3996, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5389, 0, 0, 0, 4131, 0, 0, 0, - 5390, 0, 4007, 0, 3997, 0, 3998, 0, 2249, 0, - 0, 0, 752, 2250, 5972, 4008, 2894, 2895, 752, 0, - 0, 0, 0, 2251, 0, 3999, 0, 647, 0, 0, - 0, 0, 4132, 0, 3188, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4000, 0, 0, 0, 0, 0, - 0, 4001, 0, 0, 0, 4009, 0, 0, 0, 0, - 0, 4010, 0, 0, 0, 0, 4002, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4003, 0, 0, 0, - 4133, 4134, 0, 0, 0, 0, 0, 4135, 0, 0, - 0, 4004, 0, 0, 0, 0, 0, 0, 0, 4136, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3666, 4137, 0, - 4011, 771, 771, 752, 0, 0, 0, 4012, 0, 0, - 0, 0, 771, 0, 0, 0, 3026, 3026, 3026, 3026, - 3278, 3279, 0, 1804, 4138, 0, 0, 0, 4005, 0, - 0, 0, 0, 0, 0, 0, 0, 4013, 4006, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1930, 0, - 0, 0, 4014, 4015, 0, 3317, 605, 0, 0, 0, - 6087, 2252, 1931, 0, 1932, 4016, 0, 0, 605, 0, - 0, 0, 0, 0, 0, 4007, 0, 0, 0, 0, - 0, 0, 2253, 0, 0, 0, 0, 2254, 4008, 0, - 4139, 0, 0, 0, 1933, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 752, 0, 1934, - 0, 0, 0, 0, 0, 3344, 0, 0, 2255, 0, - 4, 0, 0, 752, 0, 4017, 1908, 3360, 4009, 906, - 0, 771, 3367, 752, 4010, 0, 0, 0, 0, 0, - 0, 0, 1935, 0, 0, 0, 0, 1398, 1399, 2256, - 0, 8, 0, 1400, 1401, 0, 6147, 752, 0, 0, - 1936, 4140, 6149, 1402, 0, 0, 0, 0, 0, 0, - 0, 0, 4141, 4142, 4143, 0, 0, 0, 907, 0, - 0, 752, 0, 14, 5391, 0, 0, 5392, 908, 1403, - 0, 0, 0, 4011, 0, 0, 5393, 0, 0, 0, - 4012, 1404, 18, 0, 0, 0, 0, 0, 0, 0, - 0, 605, 0, 605, 605, 0, 0, 909, 0, 2065, - 752, 1405, 0, 3451, 910, 605, 0, 605, 0, 0, - 4013, 0, 0, 0, 0, 0, 3461, 0, 23, 0, - 1937, 0, 3466, 0, 0, 4014, 4015, 1938, 0, 0, - 0, 0, 0, 0, 1406, 0, 0, 1939, 4016, 0, - 0, 4144, 0, 911, 0, 0, 0, 16, 17, 0, - 1940, 0, 3989, 0, 1407, 1408, 0, 1409, 0, 0, - 0, 0, 0, 0, 0, 1410, 1411, 1412, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1941, 0, 0, 1942, 1413, 31, 0, 0, 0, - 0, 771, 912, 913, 0, 0, 752, 0, 0, 1943, - 0, 0, 0, 0, -1274, 0, 914, 0, 0, 0, - 0, 0, 0, 0, 0, 648, 0, 0, 0, 1414, - 0, 0, 0, 0, 0, 0, 0, 3991, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1415, 1398, 1399, 0, 0, 0, - 1416, 1400, 1401, 0, 0, 3611, 0, 0, 0, 0, - 0, 1402, 0, 0, 0, 0, 0, 41, 0, 0, - 0, 3621, 0, 0, 0, 1417, 1418, 1419, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1403, 3992, 3993, - 3994, 0, 0, 0, 0, 0, 0, 0, 0, 1404, - 1420, 1421, 0, 0, 0, 72, 0, 0, 0, 0, - 0, 0, 0, 3995, 0, 0, 3642, 0, 0, 1405, - 0, 0, 0, 0, 0, 3654, 915, 3656, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3996, 771, - 0, 771, 771, 0, 0, 0, 0, 1422, 0, 1423, - 1424, 0, 1406, 0, 0, 771, 0, 0, 3026, 0, - 0, 0, 0, 0, 0, 1425, 3997, 0, 3998, 0, - 0, 0, 1407, 1408, 0, 1409, 0, 0, 0, 0, - 0, 0, 0, 1410, 1411, 1412, 0, 3999, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 916, 0, 1426, 1413, 1427, 0, 4000, 0, 0, 771, - 0, 771, 0, 4001, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1428, 4002, 0, - 0, 0, 0, 0, 0, 0, 0, 1414, 4003, 0, + 521, 651, 1176, 1225, 1229, 1452, 757, 782, 2156, 524, + 1335, 1890, 683, 2017, 1304, 1305, 603, 2157, 1569, 2269, + 528, 2323, 2057, 2461, 2545, 2923, 2514, 1184, 1863, 772, + 1816, 1819, 1821, 768, 2550, 2810, 831, 788, 1148, 1831, + 2634, 2026, 2025, 2471, 832, 2806, 1863, 2787, 2633, 2573, + 2792, 3058, 2362, 2989, 3623, 522, 2142, 1499, 3453, 2580, + 480, 2244, 2216, 481, 2160, 482, 483, 2612, 2613, 2592, + 2974, 3686, 2997, 3987, 4066, 2596, 2790, 1630, 668, 2793, + 2169, 2226, 3819, 3375, 1788, 1182, 1349, 3706, 3707, 889, + 2175, 1250, 3653, 1183, 4157, 2196, 4158, 2380, 3473, 4609, + 2068, 890, 3431, 843, 526, 847, 848, 849, 850, 851, + 2188, 853, 854, 2069, 887, 856, 857, 2167, 889, 4239, + 4264, 2129, 1670, 2134, 4233, 2140, 4211, 2140, 525, 2331, + 1160, 3911, 2835, 4235, 1387, 2140, 2179, 2180, 2181, 527, + 4236, 2183, 2164, 887, 2129, 1589, 695, 4401, 4068, 4237, + 2480, 2140, 4241, 2778, 4080, 2194, 1983, 1629, 2488, 4684, + 1243, 2140, 4294, 4757, 3052, 2176, 1274, 2702, 3372, 1281, + 2182, 3056, 4091, 2813, 2704, 2912, 5011, 1261, 3534, 1734, + 3605, 2140, 2129, 2129, 2192, 2193, 3535, 3606, 1397, 2545, + 4595, 3865, 3866, 3731, 3059, 4149, 4414, 5252, 4091, 4091, + 4596, 3973, 4643, 4182, 4664, 3390, 2490, 2491, 5301, 2493, + 2494, 2495, 2496, 2497, 2498, 4665, 2500, 2501, 2503, 2505, + 2506, 2507, 2508, 2509, 4403, 2544, 2742, 4404, 4901, 3933, + 4666, 2941, 4668, 831, 4670, 831, 4862, 4680, 3942, 4032, + 4587, 832, 686, 832, 2961, 4166, 3602, 5108, 1569, 2099, + 3029, 4696, 3030, 3031, 3603, 4489, 2155, 4772, 3595, 2159, + 2619, 1375, 1956, 4091, 4091, 4032, 2163, 1736, 1737, 2065, + 3009, 3537, 2166, 710, 2281, 1956, 2973, 4735, 2641, 1725, + 1727, 1728, 2900, 1524, 5354, 789, 2065, 713, -1243, -3290, + 790, 1771, 2065, 3968, 2776, -2977, 791, 4223, 792, 4685, + 3503, 1736, 1737, 2654, 2655, -814, 1736, 1737, 3194, 1736, + 1737, -815, -3291, 1736, 1737, -3377, 1736, 1737, 706, 1736, + 1737, 4593, 1736, 1737, 3850, 4173, 1490, 4759, 2854, 1498, + -3370, -2083, 2302, 2303, 4380, 1736, 1737, 684, 1503, 1504, + 1317, 2313, 1736, 1737, 4096, 5088, -3290, 1736, 1737, 1955, + 1348, 1736, 1737, 4033, 2149, 2149, -3353, 4439, 2149, 2983, + 4106, -1516, 2965, 1736, 1737, 2149, 4039, 4380, 5530, -3291, + -2668, 2149, 3530, 2370, -3357, 2373, 4587, 4196, 4946, 4033, + 1736, 1737, 5959, 1374, 5422, 1736, 1737, 4381, 836, 4850, + 2544, 2387, 2388, 1365, 2391, 4888, 2152, 2152, 6071, -483, + 2152, 3119, 2397, 2398, 4317, 1678, 2402, 2152, 3242, 1736, + 1737, 5451, -2083, 2152, 562, 1892, 2143, 42, 4414, 2158, + 4381, 2983, 2933, 837, 1736, 1737, 2162, 1850, 4949, 1577, + 2133, 1736, 1737, 2144, 1921, 3457, 1736, 1737, 1738, 2228, + 1739, 2170, 4418, 5004, 1331, 1736, 1737, 2934, 1163, 2983, + 5215, 1856, 618, 1736, 1737, 708, 4459, 1818, 1736, 1737, + 4951, 3010, 1736, 1737, 5337, 2243, 4160, 5795, 5018, 1919, + -2083, 2983, 1738, 1891, 1739, 4889, 5283, 1738, 3784, 1739, + 1738, 1332, 1739, 1541, 1738, 6130, 1739, 1738, 4131, 1739, + 1738, 2270, 1739, 1738, 4709, 1739, -2516, -2977, 656, 1163, + 4953, 5427, 643, 2983, -3290, 1537, 1738, 900, 1739, 6047, + 616, 1736, 1737, 1738, 3041, 1739, 4903, 4971, 1738, 4335, + 1739, 1275, 1738, 2983, 1739, 4395, 3690, -3291, -2470, 2750, + 5639, 4120, -3377, 4982, 1738, 5667, 1739, -696, 4984, -3356, + 3064, 1852, 3538, 2983, 1736, 1737, -2781, 3960, -3354, 2735, + 663, 1738, 1812, 1739, 3782, 4686, 1738, -3200, 1739, 1740, + 2983, 763, -688, 2144, 766, 1150, 3275, 3276, 3277, 3278, + 4786, 661, 3042, 1917, 3077, 1736, 1737, 3975, 1163, 696, + 1738, 3941, 1739, -2516, -2470, 1999, -3355, 2000, 2001, 2002, + 2003, 2004, 2006, 1740, 669, 1738, -411, 1739, 1740, 1812, + 4186, 1740, 1738, 2736, 1739, 1740, 688, 1738, 1740, 1739, + 4834, 1740, 1276, 5361, 1740, 2983, 1738, 2316, 1739, -691, + 6048, 827, 4116, 4117, 1738, 3910, 1739, 1740, 2983, 1738, + 830, 1739, 6131, 1738, 1740, 1739, 1333, -2516, 521, 1740, + 1753, 835, 753, 1740, 1817, -3360, 1822, 524, 1753, 2317, + 1825, 1830, 1119, -2669, 5808, 1740, 2997, 4426, 528, 2837, + 2856, 3203, 2271, -691, 2318, 2568, 4637, 6016, 1990, 758, + 1177, 1232, 1740, 4787, 2743, 1886, 1119, 1740, 1920, 1181, + 1859, -2470, 1738, -2777, 1739, -2817, 2591, 4217, 4218, 4606, + 1187, 2983, 1119, 861, -2470, 3691, 758, 5503, 2220, 754, + -2781, 1740, 2918, 1578, 1630, 2319, 1146, 5115, 5639, 1542, + 2791, 901, 4716, -2836, 2109, 1738, 1740, 1739, 754, 2364, + 1630, 5668, -1531, 1740, 3484, 834, 3215, 4611, 1740, -2345, + 1538, 1812, 1756, 2320, 5348, 838, 564, 1740, 2559, 2145, + 1756, 4641, 526, 5469, -2470, 1740, 1738, 2796, 1739, 833, + 1740, -2470, 3961, 1124, 1740, 1812, 2575, 2146, 1757, 781, + 527, 5795, -2470, 1202, 619, 4710, 525, 1736, 1737, 1710, + 2025, 5019, 5405, 562, 1185, 1922, 3409, 527, 644, 5057, + 1240, 754, 4161, 2610, 2329, 803, 3195, 1725, 1727, 2133, + 2145, 754, 4612, 788, 4102, 4835, 2935, 4460, 1119, 3819, + 1629, 4907, 2226, 1740, 5822, 4911, 3281, 1714, 4149, 1186, + 3243, 3282, 3216, 521, 1202, 2794, 1151, 2052, 827, 2128, + 1467, 4254, 524, 2189, 1370, 5709, 2068, 830, -3200, 1468, + 2230, 1743, 2321, 528, 1736, 1737, 1740, -2777, 835, 2069, + 1471, 5284, 3469, 2966, -2837, 685, 1744, 1366, 5219, 5531, + 1863, 2950, 5306, 5265, 4824, 3634, 1853, 3534, 2950, 3605, + 1491, 1492, 1493, 1494, 3268, 3535, 3606, 1740, 1393, 2145, + -2838, 3910, 2523, 1263, 4106, 1745, 839, 4613, 1630, 6072, + 803, 1746, 4438, 803, 5216, 4251, 1285, 2146, 2835, 5009, + 5186, 5423, 4091, 1202, 1327, 1119, 3346, 1497, 3200, 3201, + 1501, 5233, 5234, 4760, 5333, 1679, 1550, 3533, 1550, 1550, + 1550, 3217, 4143, 2297, 1550, 1747, 1550, 526, -3370, 2014, + 4750, 711, 834, 521, 1470, 3602, 1556, 4587, 1556, 1556, + 1556, 4879, 524, 3603, 1556, 714, 1556, 4432, 1738, -2668, + 1739, 525, 4219, 528, -3353, 1119, 833, 889, 1469, 4720, + 1119, 4382, 527, 3225, 2116, 2087, 2635, 527, 2546, 620, + 1525, 4039, -3357, 2116, 3228, 2912, 3230, 3231, 712, 4093, + 3347, 3539, 887, 2516, 5373, 3601, -1243, -3290, 1573, 5030, + 1119, 3348, 2660, -2977, 4382, 3048, 2661, 1924, 3349, 2903, + 1119, 3051, 5955, -814, 2930, 5297, 5641, 2310, 1957, -815, + -3291, 5655, -2083, -3377, 2947, 1738, 2116, 1739, 2984, 3222, + 1554, 1957, 1554, 1554, 1554, 5396, 5397, 3350, 1554, -2083, + 1554, 5906, 5643, 5908, 5909, 3211, 2962, 526, 3679, 2963, + 1770, 3630, 3631, 4736, 1553, 4687, 1553, 1553, 1553, 2975, + 5355, 789, 1553, 1630, 1553, 1555, 790, 1555, 1555, 1555, + 3488, 525, 791, 1555, 792, 1555, 3078, 4118, 3340, 1740, + 4703, 3196, 527, 3090, 3091, 1813, 2404, 3092, 3093, 3022, + 2984, 3120, 5430, 3181, 3182, 1851, 3192, 3193, 3351, 1119, + 1119, 1119, 1119, 2421, 2653, 787, 2429, -483, 2431, 3826, + 3827, 1119, 2435, 2436, 2437, 564, 4323, 4324, 2984, 2616, + 2443, 2618, 2470, 2149, 3043, 4337, 4338, 4383, 4851, 3352, + 3103, 5710, 1813, 3106, 2636, 2087, 2601, 2639, 3083, 4658, + 2984, 2642, 2560, 2546, -2001, 2149, 1740, -3356, 2149, 645, + 2147, 3121, 3976, 3661, 4350, 4351, -3354, 806, 2149, 4356, + 4357, 2928, 3135, 2931, 647, 2152, 1736, 1737, 2657, 2658, + 2659, 3910, 2984, 5991, 5992, 5152, 3729, 859, 3730, 5565, + 6001, 3783, 2984, 2946, 3084, 4916, 1991, 2152, 4487, 4488, + 2152, 944, 2984, 2951, -3355, 755, 4286, 4664, 4409, 4410, + 2152, 2147, -115, -115, 5057, 2956, 3094, 3893, 4665, 5362, + 4336, 2640, 2984, 1235, 3204, 1736, 1737, 6069, -2817, 4641, + 3095, 3034, 2976, 4666, 759, 4680, 3947, 2857, 3096, 2984, + 2476, -2345, 3088, 4587, 5416, 5408, 2993, 3098, 5994, 5193, + -2817, 5194, -2669, 5225, 5226, -696, -2836, -2470, -2781, 3816, + 5809, 2287, 2481, -3360, -2781, -2781, 5814, 1736, 1737, -3498, + 1736, 1737, 1995, 6017, 1813, 3664, 6046, 2515, -2836, 1125, + -688, 1868, 1119, 6102, 1947, 3812, 3669, 3485, 889, 1589, + 2147, 4157, 5027, 4158, 2984, 4091, 3108, 5349, 1813, 1711, + 2571, 1736, 1737, 3251, -119, -119, 5483, 2984, 3881, 2836, + 5711, 5028, 4183, 887, 2757, 5320, 2759, 5322, -2758, 2766, + 5325, 2769, 2773, 2128, 2728, -2686, 5329, 5330, 1247, 3110, + 5284, 4974, 1736, 1737, 2805, 3261, 4403, 1715, 5046, 4404, + 4587, 1812, 4940, 680, 681, 2717, 4749, 1738, 2482, 1739, + 836, 1711, 2917, 2322, -2345, 1766, 1767, 1768, 1769, 3433, + 3114, 1764, 1765, 1766, 1767, 1768, 1769, 2171, 1119, 2536, + 2984, 3908, 1736, 1737, 3268, 4614, 2576, 1812, 1997, 1998, + -111, -111, 2841, 4956, 3819, 837, 3218, -2837, 3262, 3542, + 5702, 5911, 4149, 4969, 4970, -2777, 1738, 647, 1739, 42, + 4906, -2777, -2777, 2714, 4910, -2662, 2530, 1119, 5463, -2837, + 1119, 2715, 4100, -2838, 5501, 2094, 1348, 1476, 5467, 803, + 3075, 803, 3921, 3784, 3784, 4046, 2699, 3784, 3784, 5571, + 5572, 1808, 2815, 3784, 3784, -2838, 4900, 5750, 1738, 5995, + 1739, 1738, 3429, 1739, 1311, 2837, 4271, 2483, 5036, 5037, + 647, 5437, 5712, 5996, 2731, 2706, 4128, 5690, 1258, 2054, + 4803, 647, 5763, 3285, 2785, 3337, 3286, 5706, 1740, 1736, + 1737, 2531, 1738, 844, 1739, 3534, 5496, 889, 5198, 2299, + 5966, 5967, 647, 3535, 3312, 1348, 684, 2762, 2765, 2819, + 5477, 1630, 3102, 4829, 2746, 3390, 4073, 1901, 5446, 6098, + 1863, 4718, 887, 1738, 2751, 1739, 1528, 810, 5988, 2868, + 3860, 4078, 3605, 5414, 2786, 3256, 3257, 1740, 3543, 3606, + 855, 2055, 2918, 1397, 3262, 2545, 2831, 1748, 1749, 1750, + 3140, 6116, 3608, 2218, 3097, 42, 2634, 4072, 2068, 2634, + 2634, 2312, 4175, 1738, 5167, 1739, 5364, 3916, 3917, 1902, + 2614, 2069, 3115, 3890, 1602, 1603, 1604, 4679, 2025, 1740, + 5006, -922, 1740, 677, 2110, 2813, 2857, 795, 5563, 1119, + 1809, 3101, -2755, 4587, 5502, 2842, 5205, 5506, 3602, 2826, + 3902, 5279, 3677, 3188, 3745, 1271, 3603, 2835, 5463, 3012, + 3013, -2758, 5764, 1740, 5467, 3411, 1869, 3212, -2686, 5137, + 5138, 5139, 648, 1163, 1119, 3870, 1260, 1259, 3663, 3052, + 4035, 5807, 4292, 2087, 5550, 1658, 3533, 1119, 1119, 3116, + 6066, 6067, 2537, 1119, 1740, 2172, -2753, 1119, 1119, 1119, + 3894, 3252, -2756, 662, 4133, 5370, 4804, 3014, 1119, 1119, + 1738, 4975, 1739, 4976, 1119, 3957, 1119, 1119, 1119, 1119, + 1119, 4485, 1119, 1736, 1737, 1817, 3895, 3825, 5824, 4776, + 4777, 4778, 4779, 1119, 1740, 1119, 4184, 2110, 1119, 1119, + 5765, 1119, 1119, 1119, 5313, 1119, 1119, 1119, 2577, 2912, + 4977, 5656, 1119, 3909, 3601, 1119, 1887, 3830, 3831, 3945, + 1477, 2515, 2578, 1119, 1119, 3854, 1119, 1119, 1119, 1148, + 5327, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 4978, 1119, + 1119, 1119, 1119, 1119, 1119, 2485, 1119, 1119, 3545, 1119, + 1119, 1119, 1119, 1119, 1119, 1119, 2544, 3849, 1119, 1119, + 1119, 1119, 5826, 1119, 1119, 1119, 831, 1119, 4055, 1119, + 4245, 1119, 4247, 4263, 832, 1119, 1119, 1119, 5314, 5666, + 1119, 1119, 1119, 1119, 1119, 3329, 1119, 699, 3819, 2532, + 5538, 1740, 5324, 1119, 3412, 2099, 3824, 5691, 1736, 1737, + 1119, 1119, 1119, 1119, 5997, 2316, 3834, 3922, 1736, 1737, + 562, 1119, 1119, 1119, 3434, 1119, 1119, 1119, 1119, 1119, + 1119, 4101, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, + 16, 17, 3690, 1119, 1948, 3363, 5199, 2317, 1529, -2291, + 4176, 5507, 1736, 1737, -2043, 1966, 1736, 1737, 2111, 4119, + 4257, 5268, 2318, 3263, 1738, 648, 1739, 5280, 1312, 1955, + 3411, 1955, 1357, 5798, 5800, 2930, -2345, -2291, 839, 4239, + 3910, 3662, 5557, 4979, 4233, -2755, 1119, 1736, 1737, 5140, + 5735, 1119, 5736, 4235, 1813, 3983, 1736, 1737, 1358, 2684, + 4236, 1119, 1847, 2319, 3264, 2615, 858, 2634, 3398, 4237, + -1462, 4400, 4241, 1736, 1737, 4260, 2567, 3910, 648, 4980, + 5689, 2603, 2604, 3413, 2606, 2607, 2608, 3910, 3910, 648, + 1813, 2320, 2484, 3323, 1895, 2617, 1888, 3324, 1812, -2753, + 1359, 3076, 1924, 3399, 2112, -2756, 2113, 1736, 1737, 3005, + 648, 2638, 3900, 2857, 4861, 2581, 5692, 804, 1202, 3335, + 3817, 2111, 1736, 1737, 3477, 1736, 1737, 2116, 1964, 1119, + 6021, 3133, 3342, 3343, 6007, 5492, 5924, 5835, 5926, 1738, + -2754, 1739, 2306, 5573, 2073, 1740, 1736, 1737, 687, 1738, + 4479, 1739, 2198, 3541, 1119, 2533, 5363, 1736, 1737, 3263, + 742, 4102, 2779, 1736, 1737, 4168, 4169, 3009, 5513, 4170, + 4171, 4172, 3984, 5882, 1736, 1737, 3668, 3308, 1736, 1737, + 3141, 4481, -2043, 1738, 896, 1739, 5481, 1738, 2710, 1739, + 2321, 1736, 1737, 690, 5614, 1360, 2114, 2713, 1569, 3412, + 4438, 1736, 1737, 3238, 1736, 1737, 2092, 2112, 2720, 2113, + 846, 4622, 4239, 5381, 4609, 5002, 5002, 4233, 1738, 5455, + 1739, 1848, 3143, 1736, 1737, 3146, 4235, 1738, 2685, 1739, + 1736, 1737, 1864, 4236, 1361, 3305, 785, 4216, 889, 1736, + 1737, 3331, 4237, 3306, 1738, 4241, 1739, 3236, 2270, 2758, + 3271, 3653, 3653, 563, 3237, 3542, 3147, 5539, 1977, 5743, + 1740, 5904, 1865, 887, 4623, 2836, 1736, 1737, 5558, 5559, + 1740, 3446, 2643, 2115, 3447, 3358, 3449, -70, 1738, 1163, + 1739, 2814, 2093, 751, 3454, 3410, 5440, 3148, 2223, 1119, + 5447, 5448, 2718, 1738, 1318, 1739, 1738, 547, 1739, 2114, + 1736, 1737, 564, 2270, 1740, 1736, 1737, 2841, 1740, 1736, + 1737, 5574, 4673, 5599, 2837, 5601, 2716, 1738, 3413, 1739, + 5067, 1736, 1737, 2634, 2587, 2199, 3105, 2719, 1738, 1896, + 1739, 5511, 3289, 3045, 1738, 4255, 1739, 1736, 1737, 1740, + 803, 5708, 2917, -2043, 1569, 1738, -2471, 1739, 1740, 1738, + 5093, 1739, 3607, 3985, 4455, 4456, 5775, 5134, 3010, 5649, + 2307, 2726, 1738, 2588, 1739, 1740, 5560, 4674, 803, 4464, + 3886, 3887, 1738, 5744, 1739, 1738, 2115, 1739, 1736, 1737, + 16, 17, 3365, 3386, 3543, 2780, 2582, 5357, 16, 17, + 3373, 2116, 6008, 3901, 1738, 6022, 1739, 5747, 4437, 1740, + 5754, 1738, -2471, 1739, 3533, 3374, 2918, 521, 3268, 3400, + 1738, 3608, 1739, -2754, 1740, 1343, 524, 1740, 2068, 2271, + 1321, 1319, 1897, 4208, 3149, 4789, 3967, 528, 1119, 1119, + 1978, 2069, 1736, 1737, 2831, 897, 2116, 1898, 1740, 4238, + 2228, 5561, 3332, 4277, 4278, 4279, 4280, 5231, 4240, 1740, + 4723, 2831, 3889, 5522, 2272, 1740, 3401, 3544, 5540, 5592, + 2224, 1863, 2960, 5760, 4258, 5456, 1740, 1736, 1737, 4408, + 1740, 1738, 5575, 1739, 2271, -921, 1738, 5905, 1739, 2840, + 1738, 3478, 1739, 1740, 811, 812, 1286, 3463, 5553, 5098, + 4063, 5605, 1738, 1740, 1739, 898, 1740, 5672, -1462, -2471, + 2842, 5855, 1736, 1737, 3290, 1119, 727, 3601, 1738, 2116, + 1739, 526, -2471, 1736, 1737, 1740, 1736, 1737, 2589, 3402, + 2223, 827, 1740, 521, 4648, 1863, 1119, 5919, 1119, 3487, + 830, 1740, 524, 1736, 1737, 525, 1119, 1119, 2245, 4769, + 2144, 835, 2316, 528, 5957, 4246, 527, 5961, 4724, 1738, + 2246, 1739, 5914, 5915, 2173, 2153, 2174, 2299, 1740, 5747, + 3870, 3843, -2471, 3403, 3653, 5064, 5754, 5066, 5742, -2471, + 5069, 5897, 1287, 1288, 2317, 2196, 5075, 5076, 861, 1630, + -2471, 754, 1344, 5607, 3545, 1847, 3644, 1736, 1737, 2318, + 4564, 4209, 1740, 5089, 1202, 4300, 2827, 1740, 5883, 728, + 1345, 1740, 2422, 1738, 2423, 1739, 1736, 1737, 3152, 5099, + 2247, 1813, 1286, 1740, 1736, 1737, -2291, -2291, 3645, 2369, + 3518, 4853, 1119, 1119, 1119, 834, 5002, 526, 5856, 1740, + 2319, 1362, 5484, 4298, 4299, 5485, 762, 1223, 1738, 5743, + 1739, 4304, 4661, 4305, 3546, 4307, 2622, 5743, 1266, 833, + 2005, 525, 2635, 3829, 5783, 2635, 2635, 3918, 2320, 2546, + 527, 5999, 527, 1777, 1736, 1737, 2140, 2924, 1736, 1737, + 1740, 4303, 2087, 1738, 3646, 1739, 2299, 4308, 730, 1544, + 4091, 6056, 5986, 5985, 1738, 889, 1739, 1738, 1569, 1739, + 2623, 5580, 2224, 4210, 1785, 5608, 4761, 3665, 1287, 1288, + 1119, 2828, 3647, 5981, 1738, 4032, 1739, 3910, 3732, 4565, + 887, 684, 3667, 6080, 5321, 1736, 1737, 5384, 3737, 3404, + 3405, 3406, 1119, 3153, 1740, 4679, 703, 767, 5331, 1119, + 1289, 5486, 1119, 3154, 1119, 1267, 4904, 1302, 2372, 5338, + 1119, 5340, 1119, 1119, 1848, 2817, 5189, 1331, 5594, 3653, + 3653, 5979, 5980, 5744, 6062, 2925, 4392, 2321, 1738, 1740, + 1739, 5744, 5292, 764, 1736, 1737, 1119, 3172, 5190, 4091, + 4091, 3177, 3910, 6134, 9, 3770, 4915, 1738, 4786, 1739, + 1817, 1119, 1817, 2926, 1332, 1738, 765, 1739, 5522, 1268, + 2818, 3417, 5701, 4083, 1740, 716, 2248, 4091, 1119, 963, + 3308, 3648, 3180, 2841, 704, 1740, 3781, 4964, 1740, 1860, + 5006, 3187, 2154, 1421, 5487, 5747, 5754, 2020, 5293, 4033, + 3300, 1119, 2841, 2624, 3880, 1740, 1736, 1737, 3198, 3304, + 19, 970, 2819, 1736, 1737, 1738, 2087, 1739, 547, 1738, + 3310, 1739, 4482, 1119, 780, 3319, 2145, 6114, 6115, 6063, + 5686, 6025, 5801, 2021, 4965, 4676, 1656, 3322, 3305, 6135, + 5055, 2032, 3708, -1541, 2146, 3842, 3306, 1736, 1737, 4084, + 1202, 5054, 5129, 717, 5131, 814, 815, 4321, 1176, 1740, + 4322, 4787, 2927, 786, 1874, 4993, 1738, 982, 1739, 1736, + 1737, -2443, 2299, 1736, 1737, 2788, 2133, 5049, 1740, 5051, + -1541, 4333, 6064, 1184, 4917, 796, 1740, 754, 2424, 4918, + 550, 2425, 4353, 4919, 3334, 994, 1736, 1737, 4370, 1736, + 1737, 1791, 1119, 2033, 4966, 2790, 1797, 32, 3109, 4472, + 5802, 1947, 795, 4371, 2836, 1738, 3254, 1739, 4896, 1333, + 5787, 1736, 1737, 4994, 1736, 1737, 5159, 2831, 3307, 2924, + 4923, 1736, 1737, 2820, 2390, 3111, 1740, 807, 3112, 3309, + 1740, 1182, 4677, 684, 1863, 2821, 2831, 5326, 4252, 1183, + 4077, 808, 1736, 1737, 844, 4795, 4796, 3134, 5294, 3870, + 1736, 1737, 3268, 2635, 3137, -2443, 6159, 1736, 1737, 3301, + 39, 5787, 4920, 3139, 1736, 1737, 2842, 1738, 3796, 1739, + 3440, 3923, 3443, 4811, 1738, 2997, 1739, 1740, 42, 3863, + 5662, 3320, 3451, 3797, 1015, 2842, 3451, 852, 1916, 3325, + 4645, 4644, 5663, 4842, 2020, 4231, 2917, 3945, 4838, 4433, + 1119, 3607, 3519, 2223, 3608, 4775, 4495, 2925, 1738, 1860, + 1739, 2831, 1119, 1736, 1737, -2471, 5522, 1736, 1737, 3074, + 6052, 4995, 2223, 4362, 3142, -1541, 1740, 6158, 3924, 3150, + 1738, 2019, 1739, 3151, 1738, 2932, 1739, 4467, 2822, -3476, + 4451, 4452, 4453, 4454, 5125, 3157, 4873, 1122, 5128, 2525, + 5130, 4363, 1904, 2021, 3394, 3395, 4868, 1738, 1348, 1739, + 1738, 3158, 1739, 5974, 2562, 6089, 1119, 803, 5031, 4468, + 2034, 2035, 5207, 6093, 1860, 3373, 2563, 5146, 5147, 5148, + 2036, 903, 1738, 2526, 1739, 1738, 4373, 1739, 1740, 4594, + 3374, 5975, 1738, 2785, 1739, 1740, 1142, 2223, 4996, 2078, + 5470, 2037, 3162, -1164, 5921, 1736, 1737, 5471, 2085, 2823, + 6113, 1150, 3520, 1738, 3097, 1739, 655, 2095, 2021, 3521, + 1223, 1738, 3642, 1739, 5179, 4469, 1242, 3522, 1738, 1740, + 1739, 3396, 5806, 4049, 2927, 1738, 2247, 1739, 1860, 1223, + 2260, 680, 681, 2786, 4823, 5976, 2299, 1246, 4752, 4754, + 4754, 1740, 4754, 4470, 2165, 1740, 3163, -3455, 2527, 1247, + 4752, 4752, 4754, 4754, 2515, 1817, 1736, 1737, 2020, 5472, + 2316, 1255, 4922, 5604, 5737, 2224, 5738, 1391, 1740, 680, + 681, 1740, 2021, 1860, 1738, 1875, 1739, 5082, 1738, 3495, + 1739, 3164, 2190, 2191, 2224, 1119, 3499, 3500, 1736, 1737, + 3523, -3455, 2317, 1740, 2082, 2083, 1740, 2147, 2401, 2635, + 3529, 3099, 2367, 1740, 1223, 4162, 3851, 4085, 1313, 2510, + 2824, 1496, 2204, 2824, 2204, 831, 3170, 2021, 3804, 1876, + 1314, 1877, 3852, 832, 1740, 1257, 1331, 3171, 2121, 2528, + 3175, 1976, 1740, 1273, 5114, 2997, 2788, 1981, 1982, 1740, + 5605, 4780, 4471, 4781, 6060, 6060, 1740, 3176, 4086, 1955, + 3524, 1550, 1550, 1550, 1736, 1737, 1264, 1119, 1280, 2224, + 1119, 1736, 1737, 1332, 1736, 1737, 1738, 781, 1739, 1119, + 1797, 1556, 1556, 1556, 2038, 4727, 4087, 1119, 1282, 1119, + -3455, 1119, 4728, 1119, 1119, 1119, 1119, 1119, 1119, 1315, + 1119, 3469, 1736, 1737, 3502, 1740, 6095, 1296, 1119, 1740, + 1119, 3178, 1144, 1119, 1119, 1119, 1119, -3430, 1300, 1119, + 1119, 1154, 2564, 1119, 1878, 1119, 1234, 1119, 2511, 1119, + 4887, 5217, 5218, 1119, -3455, 1736, 1737, 1738, 3185, 1739, + 2512, 1119, 5607, 1119, 3236, 1119, 1119, 1119, 1119, 1119, + 1306, 5045, 1119, 1119, 1119, 1302, 1119, 3138, 1924, 1119, + 1308, 4636, 4886, 4885, 2984, 1554, 1554, 1554, 1309, 1738, + 4475, 1739, 1119, 1879, -2510, -2510, 1320, 1119, 1310, 4437, + 1119, 1260, 1119, 1119, 1119, 4088, 1341, 1119, 3199, 1553, + 1553, 1553, 4316, 1119, 1364, 2240, 2241, 1740, 1119, 2242, + 1555, 1555, 1555, 2560, 2560, 2560, 2560, 2660, 1736, 1737, + 2817, 2661, 1372, 3300, 1119, 3649, 2513, 680, 681, 3650, + 1119, 1880, 3304, 1119, 1736, 1737, 4407, 666, 1333, 1119, + 1373, 672, 2430, 3310, 1371, 1738, 1119, 1739, 1119, 4319, + 781, 2439, 1738, 1119, 1739, 1738, 1377, 1739, 1381, 2880, + 2881, 1316, 2450, 5436, 5608, 2818, 3978, 1385, 1740, 5380, + 1392, 4897, 1736, 1737, 2893, 1837, 1472, 2087, 2087, 2087, + 2087, 1736, 1737, 1738, 1473, 1739, 1488, 1736, 1737, 1294, + 1295, 1474, 1298, 521, 1299, 1119, 1753, 1475, 4320, 2039, + 1740, 2041, 524, 3144, 3145, 3238, 1863, 2819, 4876, 1478, + 6068, 4535, 4398, 528, 1223, 4756, 1738, 4758, 1739, 1736, + 1737, 1881, 1119, 1736, 1737, 4845, 1177, 4764, 4765, 4847, + 3155, 1924, 1506, 4893, 4894, 1181, 1736, 1737, 1508, 5050, + 5518, 1518, 1882, 1510, 2634, 1516, 1187, 1797, 522, 1519, + 5497, 3307, 5376, 480, 5524, 4258, 481, 1521, 482, 483, + 4325, 2841, 3309, 1527, 4111, 1530, 1740, 4329, 3161, 1924, + 1531, 2895, 2896, 1740, 1753, 1535, 1740, 5058, 4644, 1736, + 1737, 1532, 718, 719, 3165, 1924, 5220, 1119, 1756, 1738, + 4617, 1739, 3301, 1533, 2605, 5700, 1570, 526, 2609, 1540, + 2611, 4330, 2905, 1590, 1740, 1738, 1757, 1739, 4190, 1591, + 4192, 4193, 1592, 2019, 1838, 1597, 4198, 4891, 4892, 720, + 1696, 525, 5811, 4331, 4206, 1598, 1839, 4332, 2820, 4213, + 1185, 1402, 527, 1599, 3607, 1736, 1737, 1740, 3166, 1924, + 2821, 2020, 5395, 1738, 1649, 1739, 2652, 1600, 4028, 3220, + 5237, 1601, 1738, 4334, 1739, 1702, 1860, 4812, 1738, 1605, + 1739, 721, 1759, 1760, -702, 1186, 1756, 3597, 1607, 4813, + 4042, 3167, 1924, 5168, 1119, 4343, 1608, 1348, 1348, 1348, + 1348, 1736, 1737, 4345, 1757, 4349, 1840, 1609, 1119, 4814, + 1738, 1610, 1739, 4597, 1738, 1841, 1739, 1637, 5153, 1611, + 2021, -702, 3173, 1924, 4673, 2831, 4352, 1738, 1753, 1739, + 1740, 4092, 1612, 5335, 4358, 2937, 1613, 1654, -704, 5170, + 1772, 4359, 4815, 5172, 1659, 1660, 1740, 657, 4360, 4638, + 5721, 1511, 657, 2948, 1614, 3463, 657, 4092, 4092, 1615, + 1759, 1760, 2953, 2822, 2140, 1616, 4028, 5343, 2955, 1617, + 1738, 3712, 1739, 1618, 2842, 1773, 2964, 2755, 2756, 4674, + 3617, 3620, -704, 3832, 1740, 1619, 3713, 2977, 5505, 1622, + 2979, 1632, 1119, 1740, 4650, 1348, 4887, 4368, 5705, 1740, + 5214, 5185, 3373, 3347, -1884, 2906, 1633, 1512, 3624, 3625, + 1513, 2223, 3714, 1774, 3348, 3626, 3625, 3374, 3268, 1634, + 1756, 3938, 4092, 4092, 3715, 3628, 3629, 4816, 5210, 4885, + 1635, 1740, 3675, 3676, 2823, 1740, 1638, 1514, 1757, 1639, + 1467, 1593, 1753, 1640, 3716, 1515, 3697, 3698, 1740, 1468, + 1641, 1753, 1642, 3070, 3949, 3950, 1643, 5548, 722, 521, + 1471, 1551, 1644, 1560, 1561, 1562, 5082, 1842, 524, 1563, + 2861, 1566, 1738, 1645, 1739, 723, -702, 3717, 1646, 528, + 4675, 1119, 4114, 4115, 4224, 4225, 1647, -921, 1775, 4369, + 1648, 1740, 1843, 1650, 1759, 1760, 1651, 4817, 5837, 4790, + 724, 5584, 1652, 1119, 1653, 5587, 3113, 4344, 3145, 5836, + 3972, 3939, 2880, 2881, 2960, 4347, 1924, 4107, 4108, 4109, + 4110, 1655, 4112, 4113, 1736, 1737, 1119, 2893, 1223, 4354, + 4355, 1550, 1776, 5927, 1756, 1661, 5832, 5833, 1119, 725, + 1662, 1119, 3352, 1756, 1470, 4361, 1924, 2634, 2634, 1778, + 4372, 1556, 1757, 4802, 1663, 5703, 5704, 4365, 4366, 4441, + 4442, 1757, 1664, 526, 1119, 1119, 1665, 4773, 1469, 4194, + 4195, 1666, 4197, 1753, 4199, 4200, 4201, 4202, 4203, 4204, + 4205, 1780, 4207, 2224, 1667, 4212, 1753, 525, 1119, 4215, + 1119, 3002, 1119, 1740, 1119, 4447, 4448, 2905, 527, 1668, + 2560, 2560, 5058, 4644, 5722, 4717, 2984, 1671, 1759, 1760, + 4818, 5723, 4819, 4730, 4731, 1289, 1119, 1759, 1760, 3026, + 3026, 1672, 3026, 3026, 2895, 2896, 5724, 1176, 4326, 4857, + 1924, -2685, 3718, 5119, 5120, 1554, 1782, 1119, 1119, 4858, + 3039, 1673, 1736, 1737, 3719, 1674, 1544, 1799, 4376, 5121, + 5122, -2443, 1184, 1675, 4661, 4389, 5741, 1119, 5158, 1553, + 5123, 5124, 1119, 5160, 1924, 1756, 5177, 5178, 1119, 1676, + 1555, 5187, 1924, 1677, 1752, 1680, 1736, 1737, 1756, 5201, + 5202, 1119, 1681, 1757, 3849, 5942, 5164, 5242, 5243, 2087, + 1844, 4514, 1682, 5001, 1683, 1738, 1757, 1739, 4515, 1684, + 2831, 4651, 4652, 5780, 1685, 4653, 4654, 2343, 5246, 5048, + 1182, 4655, 4656, 1686, 4516, 1687, 1119, 1119, 1183, 5165, + 1569, 5428, 5429, 1688, 4517, 4518, 4519, 3129, 1753, 4238, + 5053, 1119, 5432, 5429, 4520, 5527, 5528, 1689, 4240, 1759, + 1760, 5570, 4448, 1736, 1737, 3720, 1690, 3721, 5583, 5429, + 6074, 1691, 1759, 1760, 1692, 5725, 1736, 1737, 4348, 1693, + 605, 3758, 1694, 4820, 4821, 1845, 4168, 4169, 5726, 5060, + 4170, 4171, 4172, 1846, 5761, 5762, 2344, 5548, 3711, 1695, + 2906, 5846, 5847, 1754, 1783, 660, 2223, 5727, 1119, 1697, + 660, 1784, 5166, 1698, 660, 1755, 1699, 675, 6023, 1764, + 1765, 1766, 1767, 1768, 1769, 5857, 5858, 1800, 5175, 16, + 17, 1700, 3168, 1738, 1701, 1739, 1740, 1703, 3174, 1704, + 1756, 5876, 4448, 5877, 4448, 1705, 680, 681, 3760, 1706, + 4713, 4714, 4715, 5851, 5068, 5881, 4115, 2907, 1757, 5939, + 5202, 2345, 1707, 2346, 6000, 5429, 5176, 1738, 2347, 1739, + 4741, 4744, 689, 4747, 4028, 5180, 6002, 5429, 1708, 4028, + 4963, 5181, 6003, 5429, 1348, 1348, 1709, 4676, 6028, 6029, + 5734, 1758, 16, 17, 4521, 5014, 1763, 1764, 1765, 1766, + 1767, 1768, 1769, 1712, 4604, 6037, 6038, 1801, 4522, 4, + 1119, 1713, -1164, 5541, 1759, 1760, 1802, 5591, 906, 3722, + 1716, 1119, 4238, 1223, 1717, 5032, 3007, 6044, 5429, 1807, + 1223, 4240, 2348, 5823, 1738, 694, 1739, 1718, 2032, 4822, + 8, 1719, 1817, 1791, 1720, 5728, 1721, 1738, 1722, 1739, + 680, 681, 1736, 1737, 1740, 1723, 3026, 3026, 3026, 3026, + 701, 1779, 2908, 6045, 5429, 4721, -2719, 907, 6053, 5429, + 6077, 5202, 14, 4762, 4763, 2349, 1836, 908, 2224, 1835, + 5206, -2720, 5604, 5859, -2684, 6090, 5429, 1832, 1740, 3843, + 1854, 18, -2716, 4523, 4677, 6112, 4932, 6147, 6148, 4028, + 2033, 2453, 2454, 1855, -2714, 5071, 909, -2718, 4524, -2713, + -2717, -2711, -2715, 910, 1753, 1860, 1870, 1871, 1872, 1873, + 1893, 5544, 1894, 1899, 1911, 2316, 3723, 23, 1924, 1762, + 1763, 1764, 1765, 1766, 1767, 1768, 1769, 3762, 1927, 1962, + 1968, 3642, 1970, 1979, 4525, 1980, 1984, 3341, 4836, 1985, + 1989, 1987, 911, 5683, 4598, 1740, 1863, 2317, 4526, 5605, + 1993, 2010, 2011, 3357, 2350, 2051, 2047, 754, 1740, 2053, + 4849, 4092, 4085, 3370, 3724, 2351, 2064, 16, 17, 2065, + 2071, 2074, 2076, 5606, 4633, 5682, 5681, 2079, 2080, 705, + 2084, 2096, 2106, 2123, 2128, 31, 2126, 3725, 2137, 2127, + 2635, 912, 913, 2141, 5851, 2133, 1756, 2184, 2161, 2168, + 2177, 2185, 2186, 4086, 2195, 914, 2201, 2203, 2211, 2205, + 2213, 2227, 2215, 1738, 1757, 1739, 2217, 5266, 2219, 2233, + 3346, 5733, 5270, 5271, 2234, 2236, 5968, -923, 2237, 709, + 4659, 4087, 2238, 1762, 1763, 1764, 1765, 1766, 1767, 1768, + 1769, 5607, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, + 3448, 2259, 2267, 2276, 2262, 2278, 2279, 2282, 2283, 2280, + 2285, 1119, 1119, 2286, 1119, 2290, 41, 2034, 2035, 2298, + 1759, 1760, 2299, 1119, 2308, 1119, 2315, 2036, 1119, 2326, + 2330, 2355, 2366, 2367, 2368, -923, 2377, 5815, 5816, 732, + 5818, 1119, 2381, 1119, 3347, 1119, 2385, 1119, 2037, 2386, + 2406, 2438, 2444, 2448, 72, 3348, 5831, 2458, 3373, 2469, + 1119, 1119, 3349, 5841, 4947, 4950, 4952, 4954, 2473, 2492, + 2499, 4957, 4958, 3374, 42, 915, 4962, 2521, 2522, 4968, + 4088, 2547, 4972, 2548, 1740, 4947, 2549, 2554, 2558, 4983, + 4947, 3350, 2557, 1736, 1737, 5840, 5839, 2569, 2566, 2597, + 1119, 2599, 6033, 5608, 4491, 5387, 5247, 3504, 946, 2600, + 2620, 6057, 2644, 3346, 1762, 1763, 1764, 1765, 1766, 1767, + 1768, 1769, 6141, 2645, 2646, 2647, 752, 1762, 1763, 1764, + 1765, 1766, 1767, 1768, 1769, 2649, 6151, 2332, 2333, 2334, + 2335, 2650, 6141, -923, 2651, 2672, 2673, 963, 6151, 916, + 2676, 2678, 3351, 2677, 2679, 1177, 2680, 2687, 2688, 2689, + 2693, 2694, 2695, 761, 1181, 605, 2696, 2697, 605, 5779, + 2698, 771, 777, 2700, 2701, 1187, 968, 2707, 2708, 970, + 2729, 1761, 2740, 3352, 733, 1119, 2744, 3347, 2747, 2775, + 2336, 2337, 2338, 2784, 974, 975, 2019, 5936, 3348, 5937, + 5938, 5435, 2804, 2797, 3223, 3349, 3346, 2803, 2816, 2839, + 4492, -2701, 5841, 2855, 5945, 2862, 2863, 2865, 2869, 1119, + -923, 2866, 2902, 2870, 2919, 6033, 2921, 2942, 2944, 2189, + 2954, 2038, 5439, 1817, 3350, 982, 2971, 777, 2978, 2990, + 2991, 2339, 2340, 2021, 5840, 5839, 2999, 5223, 3005, 3008, + 777, 3015, 3021, 3040, 988, 3049, 771, 3066, 3026, 1185, + 3068, 3069, 993, 994, 1738, 3071, 1739, 3081, 3080, 1762, + 1763, 1764, 1765, 1766, 1767, 1768, 1769, 4633, 1145, 3082, + 3347, 3085, 4028, 3191, 3086, 771, 3087, 1179, 917, 3104, + 3097, 3348, 5350, 3100, 1186, 3351, 3107, 3505, 3349, 3156, + 5896, 3214, 771, 3233, 3117, 3118, 3122, 5679, 3130, -1678, + 4661, 1119, 2341, 3131, 3132, 1256, 3136, 3160, 1119, 771, + 1262, 3159, 3169, 2635, 2635, 3179, 3352, 3350, 1119, 3183, + 3184, 3186, 3190, 1284, 1769, 3219, 5065, 3229, 3235, 3249, + 623, -1854, 3242, 3506, 3255, 2930, 3259, 1301, 5648, 5079, + 3269, 1678, 1012, 3489, 3490, 1710, 1714, 5087, 5609, 3270, + 3272, 1014, 1015, 1016, 5090, 3273, 5091, 5092, 3283, 3284, + 3501, 3287, 3288, 3294, 3291, 3292, 1339, 3293, 3317, 3326, + 3527, 3528, 771, 831, 1354, 1740, 2342, 3295, 3351, 3296, + 4939, 832, 3328, 4028, 3330, 3333, 3336, 3356, 3355, 1128, + 3384, 3418, 5951, 771, 3420, 624, 1129, 3421, 3424, 3425, + 4959, 4960, 1379, 1119, 1119, 2841, 3436, 3437, 3455, 3352, + 4973, 3465, 1130, 752, 3507, 1354, 3466, 3346, 3471, 5109, + 3491, -2303, 1131, 1132, 1133, 3481, 2039, 2040, 2041, 2042, + 3474, 3492, 1134, 3493, 3590, 3591, 3592, 3593, 5032, 3494, + 3496, 3497, 3498, 5012, 3550, 3552, 2905, 3555, 1485, 3559, + 1487, 3561, 1489, 3564, 605, 605, 605, 605, 1495, 1354, + 3565, 771, 3566, 3567, 3568, 5388, 3569, 3570, 2343, 625, + 3571, 3572, 3573, 5389, 4251, 3596, 3508, 1119, 3574, 3575, + 5043, 626, 3588, 3862, 3576, 3613, 3577, 3578, 3579, 3580, + 6123, 3347, 3581, -2443, 3509, 3510, 3582, 3583, 3026, 3511, + 3512, 3513, 3348, 3584, 3585, 2905, 3586, 3587, 3589, 3349, + 3614, 3597, 752, 4662, 1559, 3615, 3621, 3622, 3616, -1133, + 3632, -1133, 1564, 3633, 1567, 1762, 1763, 1764, 1765, 1766, + 1767, 1768, 1769, 3617, 3618, 3656, 3620, 2344, 3350, 1576, + 3659, 1119, 2116, 1119, 3642, 3674, 3662, 3678, 2065, 2831, + 627, 5227, -2443, 831, 3680, 3682, 1119, 3681, 3683, 3692, + 5101, 832, 3684, 3685, 3688, 3693, 3694, 3514, 831, 3695, + 3701, 3733, 1135, 1119, 1119, 5732, 832, 3734, 3735, 3746, + 3237, 3747, 3756, 3766, -1892, 3807, 1136, 3808, 3805, 3828, + 3838, 3792, 1119, 3793, 3839, 3847, 16, 17, 2842, 3351, + 3845, 3991, 2345, 3846, 2346, 3857, 3243, 5653, 2831, 2347, + 3855, 3861, 3875, 3878, 3882, 3515, 3883, 3884, 3885, 2581, + 4663, 3891, 2582, 5619, 3892, 3899, 3904, 3915, 3919, 2906, + 3352, 2984, 4741, 2660, 4744, 2223, 4747, 4721, 3934, 3935, + 3951, 3952, 3936, 3953, 3956, 3958, 3959, 3964, 3965, 731, + 5620, 3979, 3980, 3982, 3988, 4050, 4051, 4056, 4060, 4061, + 3989, 3990, 4067, 4081, 4082, 4069, 4163, 4074, 4070, 4164, + 4165, 4181, 4188, 2348, 4177, 4220, 3993, 4189, 4047, 5317, + 4244, 4250, 5319, 4191, 4253, 4261, 1137, 4265, 2906, 5688, + 4273, 1733, 6155, 3000, 2223, 732, 5383, 4274, 16, 17, + 4256, 4267, 628, 4282, 4287, 4275, 4293, 4295, 5398, 4302, + 4306, 4309, 1119, 4375, -1194, 4310, 2349, 5318, -1164, 4311, + 4312, 4364, 1138, 4377, 4387, 4399, 4388, 629, 1119, 4397, + 4406, -1133, 4405, -1133, 4411, 4415, 1139, 3994, 3995, 3996, + 4417, 4424, 4427, 5732, 4428, 2907, 4430, 831, 4434, 4431, + 4443, 4440, 1223, 771, 752, 832, 680, 681, 4444, 752, + 2065, 5621, 3997, 4449, 4450, 5622, 4457, 4458, 4478, 1804, + 4486, 4461, 4490, 4493, 2515, 630, 771, 5390, 771, 4496, + 5391, 4498, 771, 771, 4500, 4501, 4504, 3998, 5604, 5392, + 4511, 4513, 4529, 4531, 5253, 4530, 4532, 4540, 4533, 4534, + 4536, 4547, 4553, 4131, 4600, 2350, 4607, 2224, 16, 17, + 5255, 1223, 771, 3991, 4046, 3999, 2351, 4000, 4621, 4625, + 4626, 4629, 4647, 4669, 1550, 4661, 4672, 4671, 2332, 2333, + 2334, 2335, 4682, 4683, -1133, 3992, 4001, 4691, 4690, 1119, + 733, 4692, 4222, 4693, 1556, 4694, 1908, 4697, 4698, 4695, + 2908, 752, 752, 1918, 4699, 4002, 4700, 4701, 4708, 4726, + -2257, 4734, 4003, 4766, 4617, 5605, 2224, 1961, 1119, 4770, + -71, 4774, 4771, 4783, 4785, 5302, 734, 4004, 1972, 4794, + 4797, 2336, 2337, 2338, 4805, 4798, 4382, 4005, 3993, 5606, + 752, 4806, 4843, 4852, 3195, 4859, -2009, 4863, 4861, 4864, + 2530, 3594, 4006, 4866, 4870, 4867, 4908, 4875, 4909, 4937, + 1996, 631, 4285, 4931, 4936, 4932, 4988, 5623, 4941, 4990, + 549, 4721, 4999, 4943, 4944, 6152, 4991, 5021, 1554, 632, + 2018, 4992, 2339, 2340, 5006, 5022, -2205, 5026, 5047, 5024, + 4028, 5048, 1119, 5052, 5061, -948, 5062, 5070, 5072, 3994, + 3995, 3996, 1553, 5073, 5074, 5102, 5103, 5607, 1467, 4007, + 5345, 5104, 752, 1555, 5107, 5110, 5111, 1468, 5619, 4008, + 633, 752, 5117, 634, 3997, 5126, 5118, 771, 1471, 605, + 752, 5132, 5133, 752, 5135, 5143, 5144, 5149, 5150, 5154, + 5163, 5169, 5161, 752, 5162, 5620, 5171, 5174, 550, 3998, + 635, 5183, 5188, 2341, 5211, 5184, 4009, 5196, 636, 5203, + 5350, -1979, -1984, 5232, 5230, 5244, 5263, 5239, 5264, 4010, + 5276, 5248, 5240, 5254, 5296, 5256, 5969, 3999, 5303, 4000, + 5257, 5304, 5262, 4094, 4095, 5308, 4097, 4099, 5310, 2020, + 5328, 5619, 5309, 16, 17, 5336, -1133, 5311, 4001, 4175, + 5344, 5332, 1119, 5341, 5368, 5346, 5369, 546, 5372, 4011, + 5371, 5374, 1470, -1164, 5378, 4012, 5379, 4002, 5620, 5608, + 5417, 5382, 5386, 5400, 4003, 5409, 5411, 2342, 5418, 5413, + 1119, 5444, 2202, 5425, 5426, 752, 1469, 2210, 5431, 4004, + 1119, 5442, 1119, 5453, 4993, 5468, 5732, 605, 5475, 4005, + 5476, 680, 681, 5474, 771, 5478, 5621, 4225, 771, 752, + 5622, 5480, 5490, 2517, 4006, 5498, 16, 17, 5500, 547, + 5510, 5525, 5533, 5519, 4013, 5535, 4221, 5542, 3667, 5618, + 5543, 4014, 5618, 5604, 771, 5549, -1164, 771, 1467, 5550, + 5554, 5553, 5567, 752, 5551, 5579, 5581, 1468, 6075, 5588, + 5569, 5582, 5586, 1467, 5597, 5589, 3998, 5646, 1471, 5657, + 5640, 4015, 1468, 5641, 2277, 5673, 5643, 5658, 5659, 2343, + 5660, 4007, 5670, 1471, 680, 681, 4016, 4017, 5671, 5621, + 5685, 4008, 5677, 5622, 5698, 5707, 5716, 5720, 5751, 4018, + 5717, 6084, 752, 5768, 5766, 5770, 5771, 5772, 5777, 5776, + 5774, 5778, 5790, 5791, 5792, 5793, 5604, 5817, 548, 5819, + 5605, 5820, 4537, 5827, 5829, 5834, 4541, 1550, 4009, 5843, + 5844, 5845, 5864, 5848, 5860, 5854, 5878, 5875, 5867, 5872, + 735, 4010, 5889, 5899, 5606, 5625, 5917, 1556, 2344, 5900, + 5918, 5901, 1470, 5907, -2257, 5931, 5947, 5940, -165, 5970, + 5923, 4592, 5925, 5950, 5948, -3493, 5955, 1470, 4128, 4133, + 5993, 6005, 5623, 6012, 5749, 6018, 1469, 5749, 6004, 6019, + 6040, 4011, 6020, 6041, 6049, 6050, 6051, 4012, 6078, 6042, + 6043, 1469, 6091, 5605, 6157, 6092, 6103, 6144, 6117, 6081, + 6118, 5618, 634, 6146, 6106, 752, 6119, 6094, 6109, 6111, + 5789, 6120, 5607, 2345, 752, 2346, 6124, 5606, 5618, 6122, + 2347, 6127, 6128, 6142, 3888, 752, 1571, 1963, 2691, 736, + 4510, 1554, 6154, 4214, 5609, 5358, 2462, 5360, 549, 5359, + 1889, 5637, 827, 5644, 5638, 5623, 4013, 5635, 5634, 4030, + 5740, 830, 771, 4014, 4657, 1553, 5479, 5935, 5813, 6076, + 4599, 5789, 835, 2075, 4031, 5299, 1555, 1119, 4751, 6015, + 5650, 6014, 1396, 2124, 4243, 4248, 5238, 4767, 2985, 3393, + 4528, 2539, 4291, 4015, 2348, 5607, 1929, 1583, 4269, 771, + 5794, 2520, 5624, 5141, 3563, 4925, 3060, 1384, 4016, 4017, + 3062, 3061, 2120, 2853, 3063, 5757, 5590, 5454, 4704, 3004, + 752, 4018, 4147, 5984, 5334, 4869, 550, 771, 771, 5195, + 5399, 4874, 3247, 5954, 5608, 771, 2572, 2349, 6027, 5555, + 5404, 5749, 6108, 6085, 4881, 771, 5749, 6110, 5874, -3493, + 4573, 5209, 4702, 5749, 3428, 5633, 834, 6039, 5097, 2593, + 1804, 5261, 4707, 6061, 5916, 605, 605, 752, 605, 605, + 605, 752, 771, 752, 551, 5920, 5773, 5825, 5274, 605, + 833, 4019, 4301, 1119, 5922, 4079, 3627, 4379, 16, 17, + 5952, 527, 2938, 4846, 2637, 605, 5618, 771, 4848, 4844, + 6088, 739, 740, 6054, 5593, 6055, 5982, 5608, 5895, 5898, + 5585, 4705, 2952, 5096, 2086, 2741, 1903, 3971, 3970, 752, + 5676, 3558, 552, 5949, 5504, 2904, 2350, 3258, 3369, 1119, + 4284, 3689, 4784, 5684, 4646, 4396, 2050, 2351, 3483, 5316, + 5944, 2023, 4542, 4543, 4544, 4545, 4546, 4064, 4548, 4549, + 4550, 4551, 4552, 2801, 4554, 4555, 4556, 4557, 4558, 4559, + 4560, 4561, 4562, 4563, 6013, 4865, 4567, 4568, 3769, 3767, + 3946, 2456, 4419, 2518, 4483, 5221, 2365, 771, 2305, 3940, + 4854, 3930, 6086, 5880, 946, 5749, 4, 2723, 5241, 5983, + 5739, 6087, 4627, 752, 2314, 906, 3835, 5495, 2733, 5494, + 5625, 5394, 5853, 5385, 4412, 5509, 5415, 4473, 3468, 5493, + 4619, 3654, 5890, 741, 2552, 3687, 771, 8, 2261, 5204, + 4938, 4105, 5618, 963, 771, 771, 771, 2752, 2753, 2754, + 752, 752, 4914, 605, 6024, 1236, 1486, 1481, 3338, 647, + 2998, 1228, 2626, 3339, 907, 3920, 2015, 1231, 5912, 14, + 750, 1119, 968, 5433, 908, 970, 5424, 3387, 1119, 2732, + 6107, 4788, 6121, 5661, 6153, 6156, 5821, 4484, 18, 1657, + 974, 975, 553, 5625, 3359, 4880, 554, 4681, 3822, 4895, + 1584, 3903, 4689, 909, 1189, 3213, 3898, 3897, 1190, 5609, + 910, 3313, 2749, 3046, 2565, 4712, 2258, 3549, 1161, 3981, + 5749, 771, 5749, 5749, 23, 1798, 3879, 4270, 5534, 4721, + 4722, 982, 1272, 1973, 4905, 4480, 5222, 555, 3932, 743, + 744, 745, 6070, 752, 5946, 3450, 2774, 6101, 0, 911, + 988, 0, 0, 0, 5963, 5964, 0, -923, 993, 994, + 4659, 0, 4721, 752, 0, 5749, 0, -2255, 0, 0, + 0, 0, 0, 5749, 0, -3493, 0, 0, 0, 0, + 0, 0, 5609, 0, 0, 5989, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 0, 0, 771, 912, 913, + 1930, 1119, 0, 0, 0, 0, 0, 0, 0, 0, + 5749, 0, 914, 0, 1931, -923, 1932, 0, 0, 732, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2967, 771, 4987, 0, 0, 0, 3373, 0, + 0, 0, 0, 0, 0, 0, 1933, 0, 1012, 0, + 0, 6034, 0, 3374, 6035, 0, 0, 1014, 1015, 1016, + 1485, 1934, 3001, 0, 752, 0, 3003, 0, 0, 0, + 0, 0, 0, 41, 0, 0, 0, 1119, 752, 752, + 0, 0, 0, 0, 0, 3018, 0, 0, 0, 0, + 0, 0, 3027, 3027, 1935, 3027, 3027, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 771, 72, 1936, 752, 0, 0, 4660, 0, 0, 752, + 0, 0, 0, -923, 0, 3050, 0, 0, 4121, 0, + 4122, 4123, 915, 0, 3055, 0, 1956, 3057, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5084, 0, 4124, 0, 4125, 863, 0, 0, + 0, 0, 4126, 0, 733, 0, 0, -2083, 0, 0, + 0, 5388, 0, 0, 0, 0, 0, 0, 0, 5389, + 0, 0, 0, 0, 2065, 0, 0, 0, 0, 0, + 0, 864, 1937, 0, 0, 0, 4127, 0, 0, 1938, + -923, 0, 0, -1275, 0, -2083, 916, 0, -2083, 1939, + 0, 0, 0, 866, 0, 0, 0, -2083, 0, 0, + 0, 0, 1940, 867, -2083, 0, 0, 0, -2083, 0, + 0, 0, 16, 17, 0, 0, 0, 3991, -2083, 0, + 0, -2083, 0, 0, 0, -2083, 0, -2083, 868, 0, + 0, 0, -2083, 1941, 0, 0, 1942, 0, 0, -2083, + 0, 0, -2083, 0, 869, 4128, 0, -2083, 0, 870, + 0, 1943, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 906, 0, 0, 0, 752, 0, 648, -2083, 0, + 4661, 752, 871, 0, 0, 0, 0, 0, 0, 0, + 4129, -2083, 0, 8, 4130, 0, -2083, 3189, 0, 4945, + 0, 0, 3993, 0, 0, 4131, 0, 0, 0, 0, + 0, 0, 4961, 0, 0, -2083, 0, 0, 0, 0, + 907, 0, 0, 0, 0, 14, 0, 4132, 0, 0, + 908, 0, 0, 0, 0, 917, 0, 0, 0, -2083, + 0, 0, 0, 0, 18, 0, 0, 0, -2083, 0, + 0, 872, 0, 0, 0, 0, 0, 0, 0, 909, + 0, 0, 0, 3994, 3995, 3996, 910, 0, 0, 873, + -2083, 0, 0, 0, 0, 0, 0, 874, 0, 0, + 23, 0, 0, 0, 771, 771, 752, 0, 3997, 0, + -2083, 0, 0, 0, 0, 771, -2083, -2083, 0, 3027, + 3027, 3027, 3027, 3279, 3280, 911, 1804, 0, 0, 875, + -2083, 0, -2083, 3998, 0, -2083, 0, 0, 0, 876, + 877, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4133, 0, 0, 0, 0, 3318, 605, + 0, 3999, 0, 4000, 0, 0, 0, 0, 31, 0, + 0, 605, 0, 5267, 912, 913, 0, 0, 0, 2873, + 0, 0, 4001, 0, 0, 0, 0, 0, 914, 4134, + 0, 0, 0, 5390, 0, 0, 5391, 0, 0, 0, + 0, 4002, 0, 0, 1792, 5545, 0, 0, 4003, 0, + 752, 0, 0, 4662, 0, 0, 0, 0, 3345, 0, + 2874, 0, 0, 4004, 0, 0, 752, 0, 0, 1908, + 3361, 0, 0, 4005, 771, 3368, 752, 4135, 4136, 0, + 0, 0, 0, 0, 4137, 0, 0, 0, 4006, 41, + 0, 0, 0, 0, 0, 0, 4138, 2875, 0, 0, + 752, 0, 0, 0, 0, 0, 0, 0, 0, 1956, + 0, 0, 0, 0, 0, 4139, 0, -2083, 0, 0, + 0, 2250, 0, 0, 752, 0, 2251, 72, 0, 0, + 0, 0, 0, 0, 0, 0, 2252, 0, 0, 0, + -2083, 4140, 0, 0, 0, 4007, 0, 0, 915, 0, + 0, 0, 0, 0, 605, 4008, 605, 605, 0, 0, + 4663, 0, 0, 752, 0, 0, 3452, 0, 605, 0, + 605, 0, 0, 0, 0, 0, 0, 0, -2083, 3462, + 0, -2083, 0, 0, 0, 3467, 0, 0, 0, 0, + -2083, 0, 4009, 0, 0, 0, 0, -2083, 0, 0, + 0, -2083, 0, 0, 0, 4010, 0, 4141, 0, 0, + 0, 0, 0, 0, -2083, 0, 0, 0, -2083, 0, + -2083, 0, 916, 0, 0, -2083, 0, 0, 0, 0, + 0, 0, -2083, 0, 0, -2083, 0, 0, 0, 0, + -2083, 0, 0, 0, 0, 4011, 0, 0, 0, 0, + 0, 4012, 0, 0, 771, 0, 0, 0, 0, 752, + 0, -2083, 0, 0, 0, 0, 0, 0, -1133, 0, + -1133, 0, 0, 0, -2083, 0, 0, 0, 4142, -2083, + 0, 0, 0, 0, 0, 0, 0, 0, 2065, 4143, + 4144, 4145, 0, 0, 2253, 0, 0, 2065, -2083, 0, + 0, 0, 0, 0, 0, 0, 0, -826, 0, 0, + 4013, 0, 0, 0, 0, 2254, 0, 4014, 3612, 0, + 2255, 0, -2083, 0, 0, 0, 0, 3619, 0, 0, + 0, -2083, 0, 0, 0, 0, 16, 17, 0, 0, + 0, 3991, 0, 0, 0, 16, 17, 4015, 0, 0, + 3991, 2256, 0, -2083, 0, 0, 0, 0, 0, 0, + 0, 917, 4016, 4017, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -2083, 0, 4018, 0, 0, 4146, 3643, + -2083, 0, 2257, 5536, 0, 0, 0, 0, 3655, 0, + 3657, 0, 0, -2083, 0, -2083, 0, 0, -2083, 0, + 0, 0, 771, 0, 771, 771, 0, 0, -2083, 0, + 0, 0, 0, 0, 2876, 0, 3993, 0, 771, 0, + 0, 3027, 1957, 0, 0, 3993, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -2083, -2083, + 0, -1275, -2083, -2083, 2877, 2878, 0, 2879, 2880, 2881, + 2882, 2883, 0, 2884, 2885, 2886, 2887, 2888, 2889, 2890, + 2891, 0, 2892, 2893, 2894, 0, 0, 0, 0, 0, + 0, 0, 771, 0, 771, 0, 0, 3994, 3995, 3996, + 0, 0, 0, 0, 0, 0, 3994, 3995, 3996, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3997, 0, 0, 0, 0, 0, 0, 0, + 0, 3997, 0, 1929, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5674, 0, 0, 3998, 0, 0, + 0, 0, 0, 0, 0, 0, 3998, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1398, 1399, 0, + 0, 0, 0, 1400, 1401, 3999, 0, 4000, 0, 0, + 2895, 2896, 0, 1402, 3999, 0, 4000, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4001, 0, 0, 0, + 0, 0, 0, -1133, 0, 4001, 0, 0, 3794, 1403, + 0, 0, 0, 0, 0, 4002, 0, 0, 0, 0, + 0, 1404, 4003, 0, 4002, 16, 17, 0, 0, 0, + 0, 4003, 0, 0, 0, 0, 0, 4004, 0, 0, + 0, 1405, 0, 0, 0, 0, 4004, 4005, 0, 3837, + 0, 0, 0, 0, 0, 0, 4005, 0, 0, 0, + 0, 0, 4006, 0, 0, 0, 0, 0, 0, 0, + 0, 4006, 0, 0, 1406, 0, 752, 0, 0, 0, + 0, 3874, 0, 0, 0, 0, 3877, 0, 0, 771, + 771, 3027, 0, 0, 1407, 1408, 0, 1409, 0, 0, + 0, 771, 0, 0, 0, 1410, 1411, 1412, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4007, + 0, 0, 0, 0, 0, 1413, 0, 0, 4007, 4008, + 0, 0, 0, 1179, 0, 0, 0, 0, 4008, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4, 0, 0, 0, 1414, + 0, 0, 0, 0, 906, 0, 4009, 0, 0, 0, + 0, 0, 2462, 0, 0, 4009, 0, 0, 0, 4010, + 0, 0, 0, 0, 1415, 0, 8, 0, 4010, 0, + 1416, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -328, 0, -328, 0, 0, 0, 0, 0, + 0, 0, 0, 907, 0, 1417, 1418, 1419, 14, 4011, + 0, 0, 0, 908, 0, 4012, 0, 0, 4011, 0, + 0, 0, 0, 0, 4012, 0, 0, 18, 0, 0, + 1420, 1421, 0, 0, 0, 0, 5934, 0, 0, 0, + 0, -2083, 909, 752, 752, 0, 0, 0, 0, 910, + 0, 0, 0, 0, 605, 1957, 4044, 0, 0, 0, + 0, 752, 0, 23, 0, 771, 0, 0, 0, 0, + 0, -2083, -2083, 0, 4013, -2083, -2083, 1422, 0, 1423, + 1424, 4014, 0, 4013, 0, 0, 0, 0, 911, 0, + 4014, 0, 0, 0, 0, 1425, 771, 771, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1930, 0, 0, + 0, 4015, 0, 0, 0, 0, 0, 0, 0, 0, + 4015, 1931, 0, 1932, 0, 0, 4016, 4017, 0, 0, + 0, 31, 1426, 0, 1427, 4016, 4017, 912, 913, 4018, + 0, 0, 0, 0, 0, 0, 0, 771, 4018, 0, + 0, 914, 0, 1933, 0, 0, 0, 1428, 0, 0, + 0, 0, 4179, 0, 0, 0, 0, 0, 1934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1429, - 0, 0, 0, 4004, 0, 0, 0, 0, 0, 0, - 1430, 1431, 1415, 0, 0, 0, 0, 0, 1416, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1432, 1417, 1418, 1419, 0, 0, 0, 0, - 0, 1433, 0, 0, 0, 0, 0, 0, 0, 0, - 4005, 0, 0, 0, 0, 0, 0, 0, 1420, 1421, - 4006, 0, 0, 0, 0, 3793, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 917, - 0, 0, 0, 0, 0, 0, 0, 1434, 1435, 1436, - 0, 0, 0, 0, 0, 1437, 1438, 4007, 0, 0, - 0, 0, 0, 0, 0, 1422, 3836, 1423, 1424, 0, - 4008, 1439, 1440, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1425, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 752, 0, 1441, 1442, 0, 3872, 0, - 0, 0, 0, 3875, 0, 0, 771, 771, 3026, 0, - 4009, 0, 0, 0, 1443, 0, 4010, 0, 771, 0, - 1426, 0, 1427, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1428, 0, 0, 0, 0, - 1179, 0, 0, 0, 0, 0, 0, 5273, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1429, 0, 0, - 0, 0, 0, 0, 0, 4011, 0, 0, 1430, 1431, - 0, 0, 4012, 0, 0, 0, 0, 0, 0, 2461, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1430, 1431, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1935, 0, 0, 0, -826, 0, 0, 0, 0, + -328, 0, 41, 0, 0, 0, 0, 0, 0, 1936, + 0, 0, 1432, 0, 0, 0, 0, 0, 0, 0, + 0, 1433, 0, 0, 0, 0, 0, 0, 0, 4249, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 72, 5865, 5866, 0, 5868, 5869, 5870, 5871, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 915, 0, 5891, 0, 0, 0, 1434, 1435, 1436, + 0, 0, 0, 3018, 0, 1437, 1438, 0, 1961, 771, + 771, 771, 771, 0, 0, 752, 0, 0, 0, 1937, + 0, 1439, 1440, 0, 0, 0, 1938, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1939, 1398, 1399, 0, + 0, 0, 0, 1400, 1401, 1441, 1442, 0, -328, 1940, + 0, 0, 0, 1402, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1443, 916, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1403, + 1941, 0, 0, 1942, 0, 0, 0, 0, 0, 0, + 0, 1404, 0, 0, 0, 0, 0, 0, 1943, 0, + 0, 0, 0, 0, 0, 0, 0, 5272, 0, 0, + 0, 1405, 0, 5962, 0, 0, 5965, 0, 0, 0, + 4374, 0, 0, 0, 5973, 0, 0, 0, 0, 0, + 0, 0, 0, 2065, 0, 0, 0, 0, 0, 4, + 0, 0, 0, 0, 1406, 0, 0, 0, 906, 0, 0, 0, 0, 0, 0, 1445, 0, 0, 1446, 0, - 1432, 1447, 4013, 0, 0, 0, 0, 0, 0, 1433, - 0, 0, 0, 0, 0, 0, 0, 4014, 4015, 0, - 1398, 4224, 0, 0, 1448, 0, 1400, 1401, 0, 0, - 4016, 0, 0, 0, 0, 0, 1402, 0, 0, 0, - 0, 0, 0, 1450, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1434, 1435, 1436, 4, 0, - 752, 752, 1403, 1437, 1438, 0, 0, 906, 0, 0, - 0, 605, 0, 4042, 1404, 0, 0, 0, 752, 1439, - 1440, 0, 771, 0, 0, 0, 4, 0, 0, 8, - 0, 0, 0, 0, 1405, 906, 0, 0, 0, 0, - 0, 0, 0, 1441, 1442, -328, 0, -328, 0, 0, - 0, 0, 0, 771, 771, 0, 907, 8, 0, 0, - 0, 14, 1443, 0, 0, 0, 908, 1406, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 907, 0, 0, 1407, 1408, 14, - 1409, 0, 0, 0, 908, 909, 0, 0, 1410, 1411, - 1412, 0, 910, 0, 771, 0, 0, 0, 18, 0, - 0, 0, 0, 0, 0, 0, 23, 0, 1413, 4177, - 0, 0, 0, 909, 0, 0, 0, 0, 0, 0, - 910, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 911, 0, 0, 23, 0, 0, 0, 0, 0, - 0, 0, 1414, 1445, 1191, 0, 1446, 0, 0, 1447, - 0, 0, 0, 0, 0, 1124, 0, 0, 0, 911, - 0, 0, 0, 0, 0, 0, 0, 1415, 0, 0, - 1163, 0, 1448, 1416, 31, 0, 0, 0, 1192, 1193, - 912, 913, 0, 0, 0, 0, 4247, 0, 1194, 0, - 0, 1450, 0, 0, 914, 0, 0, 0, 1417, 1418, - 1419, 0, 31, 10, 11, 0, 0, 0, 912, 913, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 914, 4225, 1421, 0, 0, 0, 0, 0, - 3017, 0, 0, 0, 0, 1961, 771, 771, 771, 771, - 0, 0, 752, 0, 0, 0, 0, 16, 17, 0, - 0, 0, 1195, -328, 0, 41, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1196, 0, 0, 0, - 1422, 0, 1423, 1424, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 41, 0, 0, 0, 0, 1425, 0, - 0, 0, 0, 72, 0, -560, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 906, - 0, 0, 0, 0, 915, 0, 0, 0, 0, 0, - 0, 72, 0, 0, 0, 1426, 1197, 1427, 0, 0, - 0, 8, 0, 0, 0, 0, 0, 0, 1198, 0, - 0, 0, 915, 0, 0, 0, 0, 4372, 0, 0, - 1428, 0, 5094, 0, 4120, 0, 0, 0, 907, 0, - 0, 0, 0, 14, 0, 0, 0, 0, 908, 0, - 0, -328, 1429, 0, 0, 0, 0, 0, 4122, 0, - 0, 0, 18, 1430, 1431, 0, 4124, 0, 916, 0, - 0, 0, 0, 0, 0, 0, 0, 909, 1199, -560, - 0, 4421, 0, 0, 910, 0, 0, 0, 2065, 0, - 0, 0, 0, 0, 771, 1432, 916, 2461, 23, 0, - 5095, 0, 0, 0, 1433, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 771, 771, 771, 771, 0, - 0, 0, 0, 911, 0, 0, 0, 0, 0, 0, - 0, 0, 4461, 4462, 0, 0, 16, 17, 0, 0, - 0, 3989, 0, 0, 1200, 0, 0, 0, 0, 0, - 1434, 1435, 1436, 1201, 0, 0, 0, 0, 1437, 1438, - 0, 0, 0, 0, 0, 1202, 31, 0, 0, 4126, - 0, 0, 912, 913, 1439, 1440, 1203, 0, 0, 0, - 0, 0, 0, 4498, 0, 0, 914, 0, 0, 4508, - 0, 0, 0, 0, 0, 0, 0, 0, 1441, 1442, - 1204, 0, 0, 0, 0, 0, 0, 917, 4128, 0, - 0, 0, 0, 771, 0, 0, 3991, 4226, 0, 0, - 0, 752, 0, 0, 0, 752, 0, 0, 0, 0, - 0, 0, -2442, 1205, 0, 917, 1206, 0, 1207, 0, - 0, 4130, 0, 0, 0, 0, 0, 41, 0, 4565, - 0, 0, 4587, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1208, 1209, 0, 0, 0, 0, 0, - 0, 1210, 1211, 0, 605, 0, 0, 3992, 3993, 3994, - 0, 0, 0, 3461, 4619, 72, 0, 0, 1212, 0, - 0, 0, -1132, 0, -1132, 0, 0, 0, 4633, 0, - 0, 0, 3995, 0, 0, 0, 915, 0, 1445, 0, - 1213, 1446, 0, 0, 1447, 0, 0, 0, 0, 0, - 0, 2065, 0, 0, 0, 0, 0, 3996, 0, 0, - 0, 1214, 0, 0, 0, 0, 0, 4228, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4131, 0, 0, - 0, 0, 0, 0, 0, 3997, 1450, 3998, 0, 0, - 0, 0, 0, 1568, 0, 0, 0, 0, 0, 16, - 17, 0, 0, 0, 3989, 0, 3999, 0, 0, 0, - 916, 0, 0, 0, 0, 0, 1215, 0, 4587, 0, - 0, 0, 0, 0, 0, 4000, 0, 0, 0, 0, - 1216, 0, 4001, 0, 0, 0, 0, 0, 0, 0, - 0, 1217, 0, 0, 1218, 1219, 0, 4002, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4003, 0, 1220, - 0, 4133, 0, 0, 0, 0, 0, 0, 4135, 0, - 0, 0, 4004, 0, 0, 0, 0, 0, 0, 3991, - 0, 0, 0, 4747, 0, 0, 0, 0, 3611, 0, - 0, 0, 0, 0, 0, 1221, 0, 0, 0, 4137, - 0, 0, 1222, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3642, 0, 0, 0, 0, 4767, - -3218, 0, 1223, 0, 0, 0, 0, 0, 0, 4005, - 0, 0, 0, 0, 0, 0, 0, 771, 0, 4006, - 3992, 3993, 3994, 0, 0, 0, 4, 0, 4, 917, - 0, 0, 0, 0, 0, 906, 0, 906, 0, 0, - 0, 0, 0, 0, 0, 3995, 0, 0, 0, 0, - 0, 0, -3218, 0, 0, 0, 4007, 8, 1224, 8, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4008, - 3996, 4139, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 907, 0, 907, 0, 0, 14, - 0, 14, 0, 0, 908, 0, 908, 0, 3997, 0, - 3998, 0, 0, 0, 0, 0, 0, 0, 18, 4009, - 18, 0, 0, 0, 0, 4010, 0, -1132, 4840, 3999, - 0, 0, 0, 909, 0, 909, 0, 0, 0, 0, - 910, 0, 910, 0, 0, 0, 0, 0, 4000, 0, - 0, 0, 0, 0, 23, 4001, 23, 0, 4855, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4002, 4633, 0, 0, 0, 0, 0, 0, 0, 911, - 4003, 911, 0, 0, 4011, 4421, 0, 0, 0, 0, - 0, 4012, 0, 0, 0, 4004, 3872, 0, 4883, 0, - 0, 0, 4890, 771, 771, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 0, 0, 1179, - 1804, 4013, 31, 906, 31, 0, 0, 0, 912, 913, - 912, 913, 0, 0, 0, 0, 4014, 4015, 0, 0, - 0, 0, 914, 0, 914, 8, 0, 2461, 0, 4016, - 0, 0, 4005, 0, 0, 0, 0, 0, 4930, 0, - 0, 0, 4006, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 907, 0, 0, 0, 0, 14, 0, 0, - 0, 0, 908, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 18, 4, 0, 4007, - 0, 0, 0, 41, 0, 41, 906, 0, 0, 771, - 0, 909, 4008, 0, 0, 0, 0, 0, 910, 0, - 0, 0, 0, 4587, 752, 0, 4989, 0, -542, 0, - 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, - 0, 72, 0, 72, 0, 0, 0, 0, 5013, 0, - 0, 0, 4009, 0, 0, 907, 0, 911, 4010, 0, - 1579, 0, 915, 0, 915, 908, 0, 0, 0, 0, - 0, 771, 0, 0, 0, 0, 0, 0, 0, 18, - 0, 0, 0, 2519, 0, 5044, 0, 0, 0, 0, - 0, 0, 0, 0, 909, 0, 0, 0, 0, 0, - 31, 910, 0, 0, 0, 0, 912, 913, 0, 0, - 0, 0, 0, 4587, 0, 1580, 0, 4011, 0, 3669, - 914, 3946, 0, 0, 4012, 4930, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 5078, 916, 2461, 916, 0, - 911, 0, 752, 5086, 0, 0, 0, 0, 4930, 0, - 0, 0, 0, 0, 4013, 4930, 0, 0, 0, 0, - 4587, 0, 0, 0, 0, 0, 0, 0, 0, 4014, - 4015, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 605, 41, 4016, 1581, 0, 5113, 0, 0, 0, 912, + 0, 1447, 0, 0, 1407, 1408, 0, 1409, 0, 0, + 8, 0, 0, 0, 4423, 1410, 1411, 1412, 0, 0, + 0, 16, 17, 0, 1448, 0, 3991, 4, 771, 0, + 0, 2462, 0, 0, 0, 1413, 906, 907, 0, 0, + 0, 0, 14, 1450, 917, 0, 0, 908, 0, 771, + 771, 771, 771, 0, 0, 0, 0, 0, 8, 0, + 0, 18, 0, 0, 0, 0, 4462, 4463, 0, 1414, + 0, 0, 0, 0, 0, 0, 909, 0, 0, 0, + 0, 0, 0, 910, 0, 907, 0, 0, 0, 0, + 14, 0, 0, 0, 1415, 908, 0, 23, 0, 0, + 1416, 3993, 0, 0, 0, 0, 0, 0, 0, 18, + 0, 0, 0, 0, 0, 0, 0, 4499, 0, 0, + 0, 0, 911, 4509, 909, 1417, 1418, 1419, 0, 0, + 0, 910, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 23, 0, 771, 0, 0, + 1420, 1421, 0, 0, 0, 752, 0, 0, 0, 752, + 0, 0, 3994, 3995, 3996, 31, 0, 0, 0, 0, + 911, 912, 913, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4566, 0, 914, 4588, 3997, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1422, 0, 1423, + 1424, 0, 0, 0, 0, 0, 0, 0, 605, 0, + 0, 0, 3998, 31, 0, 1425, 0, 3462, 4620, 912, 913, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 914, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5127, 0, 0, 0, 0, 72, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 915, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1582, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 917, 0, 917, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 5145, 0, 0, - 0, 0, -542, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 916, 0, 0, 0, 0, 0, - 0, 4421, 0, 915, 0, 0, 0, 0, 0, 0, - 2461, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3642, - 0, 0, 0, 0, 0, 0, 0, 4508, 0, 0, - 0, 0, 0, 0, 0, 0, 771, 916, 5252, 5252, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4587, 0, 0, - 0, 0, 0, 917, 752, 0, 5270, 0, 0, 0, - 0, 5276, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3611, 0, 0, 0, 0, 0, 0, 3611, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4587, - 4930, 4587, 0, 771, 4587, 0, 4930, 0, 0, 0, - 4587, 4587, 0, 0, 4930, 0, 917, 0, 0, 0, - 0, 0, 0, 0, 4587, 4930, 0, 4930, 0, 0, - 0, 0, 0, 5343, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5354, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4634, 914, 0, 0, 0, 0, 0, 0, + 3999, 0, 4000, 0, 0, 0, 41, 0, 0, 0, + 0, 0, 1426, 0, 1427, 0, 0, 0, -560, 0, + 0, 4001, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 0, 0, 0, 1428, 0, 0, + 4002, 0, 906, 0, 72, 0, 0, 4003, 0, 0, + 0, 0, 0, 0, 41, 0, 0, 0, 0, 1429, + 0, 0, 4004, 0, 8, 915, 0, 0, 0, 0, + 1430, 1431, 4005, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4588, 0, 0, 0, 0, 4006, 0, 0, + 0, 907, 72, 0, 0, 0, 14, 0, 0, 0, + 0, 908, 1432, 0, 0, 0, 0, 0, 0, 0, + 0, 1433, 0, 915, 0, 18, 0, 0, 0, 0, + 0, 0, -560, 0, 0, 0, 0, 0, 0, 0, + 909, 0, 0, 0, 0, 0, 0, 910, 0, 916, + 0, 0, 0, 0, 4007, 0, 0, 4748, 0, 0, + 0, 23, 3612, 0, 4008, 1398, 4226, 1434, 1435, 1436, + 0, 1400, 1401, 0, 0, 1437, 1438, 0, 0, 0, + 1568, 1402, 0, 0, 0, 0, 911, 0, 3643, 0, + 0, 1439, 1440, 4768, 0, 0, 0, 916, 0, 0, + 0, 4009, 0, 0, 0, 0, 0, 1403, 0, 0, + 0, 771, 0, 0, 4010, 1441, 1442, 0, 0, 1404, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, + 0, 0, 0, 0, 1443, 912, 913, 0, 0, 1405, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 914, + 0, 0, 0, 0, 4011, 0, 0, 0, 0, 0, + 4012, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1406, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 917, 0, + 0, 0, 1407, 1408, 0, 1409, 0, 0, 0, 0, + 0, 0, 0, 1410, 1411, 1412, 0, 0, 0, 0, + 41, 0, 4841, 0, 0, 0, 0, 0, 0, 4013, + 0, 0, 0, 1413, 0, 1445, 4014, 0, 1446, 0, + 0, 1447, 1191, 0, 0, 0, 917, 0, 0, 0, + 0, 0, 4856, 1124, 0, 0, 0, 0, 72, 0, + 0, 0, 0, 0, 1448, 4634, 4015, 1414, 1163, 0, + 0, 0, 0, 0, 0, 4, 1192, 1193, 4423, 915, + 0, 4016, 4017, 1450, 906, 0, 1194, 0, 0, 3874, + 0, 4883, 1415, 0, 4018, 4890, 771, 771, 1416, 0, + 0, 10, 11, 0, 0, 0, -542, 0, 0, 0, + 0, 0, 1179, 1804, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1417, 1418, 1419, 0, 0, 0, 0, + 0, 0, 0, 907, 0, 0, 3670, 0, 1579, 0, + 2462, 0, 0, 908, 0, 16, 17, 0, 4227, 1421, + 1195, 4930, 0, 916, 0, 0, 0, 18, 0, 0, + 0, 0, 0, 0, 1196, 0, 0, 0, 0, 0, + 0, 0, 909, 0, 0, 0, 0, 0, 0, 910, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1580, 0, 1422, 0, 1423, 1424, 0, + 0, 0, 771, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1425, 0, 0, 4588, 752, 911, 4989, + 0, 0, 0, 0, 1197, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1198, 0, 0, 0, + 0, 5013, 0, 0, 0, 0, 0, 0, 0, 0, + 1426, 0, 1427, 0, 0, 0, 0, 0, 0, 0, + 0, 1581, 0, 0, 771, 0, 0, 912, 913, 0, + 0, 0, 0, 0, 0, 1428, 2520, 0, 5044, 0, + 0, 914, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 917, 0, 0, 0, 1199, 1429, 0, 0, + 0, 0, 0, 0, 0, 0, 4588, 0, 1430, 1431, + 0, 0, 0, 0, 0, 0, 0, 0, 4930, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 5078, 0, + 2462, 0, 0, 0, 0, 752, 5086, 0, 0, 0, + 1432, 4930, 1582, 0, 0, 0, 0, 0, 4930, 1433, + 0, 0, 0, 4588, 0, 0, 0, 0, 0, 0, + 0, 0, 1200, 0, 0, 0, 0, 0, 0, 0, + 0, 1201, 0, 605, 0, 0, 0, 0, 5113, 0, + -542, 0, 0, 1202, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1203, 1434, 1435, 1436, 0, 0, + 0, 915, 0, 1437, 1438, 0, 0, 5127, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1204, 1439, + 1440, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5094, 0, 4122, 0, 0, 0, 0, 0, + 0, 0, 0, 1441, 1442, 0, 0, 0, 0, 0, + -2443, 1205, 0, 0, 1206, 0, 1207, 0, 4124, 0, + 0, 0, 4228, 4, 0, 0, 4126, 0, 0, 0, + 0, 0, 906, 0, 0, 916, 0, 0, 0, 0, + 0, 1208, 1209, 0, 0, 0, 0, 0, 2065, 1210, + 1211, 0, 0, 0, 8, 0, 0, 0, 0, 0, + 5095, 0, 0, 0, 0, 0, 1212, 0, 0, 0, + 0, 0, 0, 0, 4423, 0, 0, 0, 0, 0, + 0, 907, 2462, 0, 0, 0, 14, 0, 1213, 0, + 0, 908, 0, 0, 0, 0, 16, 17, 0, 0, + 0, 3991, 0, 0, 0, 18, 0, 0, 0, 1214, + 0, 0, 0, 1445, 0, 0, 1446, 0, 0, 1447, + 909, 0, 0, 0, 0, 0, 0, 910, 0, 4128, + 0, 3643, 0, 0, 0, 0, 0, 0, 0, 4509, + 0, 23, 4230, 0, 0, 0, 0, 0, 771, 0, + 5251, 5251, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1450, 0, 0, 1215, 0, 911, 0, 4130, 0, + 0, 0, 0, 0, 917, 0, 3993, 0, 1216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1217, + 0, 0, 1218, 1219, 0, 0, 0, 0, 0, 4588, + 0, 4132, 0, 0, 0, 0, 752, 1220, 5269, 31, + 0, 0, 0, 5275, 0, 912, 913, 0, 0, 0, + 0, 0, 0, 3612, 0, 0, 0, 0, 0, 914, + 3612, 0, 0, 0, 0, 0, 0, 3994, 3995, 3996, + 0, 0, 0, 1221, 0, 0, 0, 0, 0, 0, + 1222, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3997, 0, 0, 0, 0, 0, -3219, 0, + 1223, 4588, 4930, 4588, 0, 771, 4588, 0, 4930, 0, + 0, 0, 4588, 4588, 0, 0, 4930, 3998, 0, 0, + 41, 0, 0, 0, 0, 0, 4588, 4930, 0, 4930, + 0, 0, 0, 0, 0, 5342, 0, 4133, 0, 0, + 0, 0, 0, 0, 0, 3999, 0, 4000, 0, 0, + -3219, 0, 0, 5353, 0, 0, 1224, 0, 72, 0, + 0, 0, 0, 0, 0, 0, 4001, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 0, 0, 0, 915, + 0, 906, 0, 0, 0, 4002, 0, 0, 0, 0, + 0, 0, 4003, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 8, 0, 0, 0, 4004, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4005, 0, 0, + 0, 4135, 0, 0, 0, 0, 0, 0, 4137, 0, + 907, 1121, 4006, 0, 0, 14, 3948, 5403, 0, 0, + 908, 0, 0, 0, 0, 0, 0, 0, 4841, 0, + 0, 0, 0, 916, 18, 1121, 0, 0, 0, 4139, + 0, 0, 0, 0, 0, 0, 0, 3877, 0, 909, + 0, 1121, 0, 0, 0, 0, 910, 4930, 0, 0, + 0, 0, 0, 0, 0, 5251, 0, 0, 0, 4007, + 23, 752, 0, 0, 5434, 0, 0, 0, 0, 4008, + 0, 0, 0, 5441, 0, 0, 0, 4588, 4588, 0, + 0, 0, 0, 0, 0, 911, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4009, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2520, 4010, + 0, 4141, 0, 0, 0, 0, 0, 0, 31, 4588, + 0, 0, 0, 4588, 912, 913, 0, 0, 0, 2462, + 0, 0, 0, 0, 0, 0, 4930, 1121, 914, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4011, + 0, 0, 917, 0, 0, 4012, 0, 0, 0, 5532, + 0, 0, 0, 0, 0, 0, 752, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5404, 0, 1121, 0, - 0, 0, 0, 0, 0, 0, 0, 4840, 0, 0, + 0, 0, 0, 0, 4013, 0, 0, 0, 0, 0, + 0, 4014, 0, 0, 0, 0, 5251, 0, 0, 0, + 0, 0, 0, 0, 1121, 0, 4588, 72, 0, 5596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1121, 0, 0, 0, 3875, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4930, 0, 1121, 0, - 0, 0, 0, 0, 5252, 0, 0, 0, 0, 0, - 752, 0, 0, 5435, 0, 0, 0, 0, 0, 0, - 0, 0, 5442, 0, 0, 0, 4587, 4587, 0, 0, + 5631, 4015, 0, 0, 0, 0, 0, 0, 915, 0, + 0, 0, 0, 0, 0, 0, 4016, 4017, 0, 0, + 0, 0, 3612, 0, 0, 0, 0, 0, 0, 4018, + 0, 0, 0, 0, 1121, 0, 0, 0, 0, 1121, + 0, 0, 0, 0, 0, 4588, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 752, 0, 0, + 0, 0, 0, 0, 0, 5145, 0, 0, 0, 1121, + 0, 0, 1631, 0, 0, 5693, 5697, 0, 0, 1121, + 0, 0, 916, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5715, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3877, 0, 3877, 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2519, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4587, 0, - 0, 0, 4587, 0, 0, 0, 0, 0, 2461, 0, - 0, 0, 0, 0, 0, 4930, 0, 0, 0, 0, - 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 5533, 0, - 0, 0, 0, 0, 0, 752, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 771, 0, 1121, 1121, + 1121, 1121, 0, 0, 1631, 0, 0, 0, 0, 0, + 1121, 0, 0, 0, 0, 0, 0, 0, 0, 5804, + 0, 5805, 605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 917, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 5252, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4587, 0, 0, 5597, 0, - 0, 1121, 0, 0, 0, 0, 0, 0, 0, 5632, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1121, 0, 0, 4587, 0, 1121, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 752, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5694, 5698, 1121, 0, 0, 1631, - 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5903, + 0, 0, 0, 0, 0, 5251, 0, 5251, 5251, 0, + 0, 0, 0, 0, 0, 0, 5913, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5716, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3875, 0, 3875, 0, 0, 0, 0, - 0, 0, 0, 0, 1631, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 5757, 0, 0, 0, 0, + 0, 1121, 0, 0, 1631, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5932, 0, 0, 752, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 771, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1121, 1121, 1121, 1121, 0, - 0, 1631, 0, 0, 0, 0, 0, 1121, 5805, 0, - 5806, 605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5697, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 5715, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 771, 0, + 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5990, 0, 0, 0, 5251, 5251, 0, + 0, 0, 0, 0, 5251, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1121, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2461, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 605, 0, 0, 0, 6073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 5905, 0, - 0, 0, 0, 0, 5252, 0, 5252, 5252, 0, 0, - 0, 0, 0, 0, 0, 5915, 0, 0, 0, 0, + 0, 0, 0, 771, 0, 0, 0, 0, 0, 4509, + 4509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6099, 6099, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1121, 0, - 0, 1631, 0, 0, 0, 5934, 0, 0, 752, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5698, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5716, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 771, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, - 0, 0, 0, 5993, 0, 0, 0, 5252, 5252, 0, - 0, 0, 0, 0, 5252, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1121, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2461, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 771, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5252, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 605, 0, 0, 0, 6076, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 771, 0, 0, 0, 0, 0, - 4508, 4508, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2462, 1121, 1121, 0, 771, + 0, 0, 1121, 0, 0, 771, 1121, 1121, 1121, 2462, + 0, 0, 0, 0, 0, 2462, 0, 1121, 1121, 1631, + 0, 2462, 0, 1121, 0, 1121, 1121, 1121, 1121, 1121, + 0, 1121, 0, 0, 1631, 1631, 0, 0, 0, 0, + 0, 0, 1121, 0, 1121, 0, 0, 1121, 1121, 0, + 1121, 1121, 1121, 0, 1121, 1121, 1121, 0, 0, 0, + 0, 1121, 0, 0, 1121, 0, 0, 0, 0, 0, + 0, 0, 1121, 1121, 0, 1121, 1121, 1121, 0, 0, + 1121, 1121, 1121, 1121, 1121, 1121, 1121, 0, 1121, 1121, + 1121, 1121, 1121, 1121, 0, 1121, 1121, 0, 1121, 1121, + 1121, 1121, 1121, 1121, 1121, 0, 0, 1121, 1121, 1121, + 1121, 0, 1121, 1121, 1121, 0, 1121, 0, 1121, 0, + 1121, 0, 0, 0, 1121, 1121, 1121, 0, 0, 1121, + 1121, 1121, 1121, 1121, 0, 1121, 0, 0, 0, 0, + 0, 0, 1121, 0, 0, 0, 0, 0, 0, 1121, + 1121, 1121, 1121, 0, 0, 0, 0, 0, 0, 0, + 1121, 1121, 1121, 0, 1121, 1121, 1121, 1121, 1121, 1121, + 0, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 0, + 0, 0, 1121, 0, 0, 0, 0, 1631, 0, 0, + 0, 0, 0, 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6102, 6102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, + 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1121, 0, 0, 0, 0, 0, 2461, 0, 0, 0, - 771, 0, 0, 1121, 1121, 0, 771, 0, 0, 1121, - 2461, 0, 0, 1121, 1121, 1121, 2461, 0, 0, 0, - 0, 0, 2461, 0, 1121, 1121, 1631, 0, 0, 0, - 1121, 0, 1121, 1121, 1121, 1121, 1121, 0, 1121, 0, - 0, 1631, 1631, 0, 0, 0, 0, 0, 0, 1121, - 0, 1121, 0, 0, 1121, 1121, 0, 1121, 1121, 1121, - 0, 1121, 1121, 1121, 0, 0, 0, 0, 1121, 0, - 0, 1121, 0, 0, 0, 0, 0, 0, 0, 1121, - 1121, 0, 1121, 1121, 1121, 0, 0, 1121, 1121, 1121, - 1121, 1121, 1121, 1121, 0, 1121, 1121, 1121, 1121, 1121, - 1121, 0, 1121, 1121, 0, 1121, 1121, 1121, 1121, 1121, - 1121, 1121, 0, 0, 1121, 1121, 1121, 1121, 0, 1121, - 1121, 1121, 0, 1121, 0, 1121, 0, 1121, 0, 0, - 0, 1121, 1121, 1121, 0, 0, 1121, 1121, 1121, 1121, - 1121, 0, 1121, 0, 0, 0, 0, 0, 0, 1121, - 0, 0, 0, 0, 0, 0, 1121, 1121, 1121, 1121, - 0, 0, 0, 0, 0, 0, 0, 1121, 1121, 1121, - 0, 1121, 1121, 1121, 1121, 1121, 1121, 0, 1121, 1121, - 1121, 1121, 1121, 1121, 1121, 1121, 0, 0, 0, 1121, - 0, 0, 0, 0, 1631, 0, 0, 0, 0, 0, - 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1121, 0, 0, 0, 0, 1121, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1631, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5098,8 +5073,8 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5112,428 +5087,358 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1121, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1121, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1121, 0, 1121, 0, 0, + 0, 0, 0, 0, 0, 1121, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1121, 0, 1121, 0, 0, 0, 0, 0, 0, - 0, 1121, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1631, 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1631, 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1121, 1121, 1121, + 0, 1121, 1121, 1121, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1631, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1121, + 0, 0, 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1631, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1121, 0, 0, 1631, 0, + 0, 1121, 0, 0, 0, 0, 0, 0, 1121, 0, + 0, 1121, 0, 1121, 0, 1087, 0, 0, 0, 1121, + 0, 1121, 1121, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1238, + 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, - 0, 0, 0, 0, 1121, 0, 0, 1121, 0, 1121, - 0, 0, 0, 0, 0, 1121, 0, 1121, 1121, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1121, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1631, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1631, 0, 1631, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1631, 0, 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1121, + 0, 0, 0, 1594, 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1621, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1730, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1121, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, - 0, 0, 1121, 0, 1121, 0, 1121, 0, 1121, 1121, - 1121, 1121, 1121, 1121, 0, 1121, 0, 0, 0, 0, - 0, 0, 0, 1121, 0, 1121, 0, 0, 1121, 1121, - 1121, 1121, 0, 0, 1121, 1121, 0, 0, 1121, 0, - 1121, 0, 1121, 0, 1121, 0, 0, 0, 1121, 0, - 0, 0, 0, 0, 0, 0, 1121, 0, 1121, 0, - 1121, 1121, 1121, 1121, 1121, 0, 0, 1121, 1121, 1121, - 0, 1121, 0, 0, 1121, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, - 0, 0, 1121, 0, 0, 1121, 0, 1121, 1121, 1121, - 0, 0, 1121, 0, 0, 0, 0, 0, 1121, 0, - 0, 0, 0, 1121, 0, 0, 0, 1087, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1121, - 0, 0, 0, 0, 0, 1121, 0, 0, 1121, 0, - 0, 1238, 0, 0, 1121, 0, 0, 0, 0, 0, - 0, 1121, 1631, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1631, 0, 0, 1631, 1631, 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1121, 0, 0, 1121, + 0, 0, 0, 0, 0, 0, 0, 0, 1121, 0, + 0, 0, 0, 0, 0, 0, 1121, 0, 1121, 0, + 1121, 0, 1121, 1121, 1121, 1121, 1121, 1121, 0, 1121, + 0, 0, 0, 0, 0, 1926, 0, 1121, 0, 1121, + 0, 0, 1121, 1121, 1121, 1121, 0, 0, 1121, 1121, + 0, 0, 1121, 0, 1121, 0, 1121, 0, 1121, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, + 1121, 0, 1121, 0, 1121, 1121, 1121, 1121, 1121, 0, + 0, 1121, 1121, 1121, 0, 1121, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1121, 0, 0, 0, 0, 1121, 0, 0, 1121, + 0, 1121, 1121, 1121, 0, 0, 1121, 0, 0, 0, + 0, 2062, 1121, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1121, 0, 0, 0, 0, 0, 1121, + 0, 0, 1121, 0, 0, 0, 0, 0, 1121, 0, + 2102, 0, 0, 2103, 0, 1121, 1631, 1121, 0, 0, + 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1534, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1121, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1594, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1621, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1636, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1631, 0, 0, + 1631, 1631, 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1730, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, - 0, 0, 0, 0, 1631, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1121, 0, 0, 1121, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1121, - 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1121, 0, 1121, 0, 1121, 0, 1121, + 0, 0, 0, 0, 0, 0, 0, 2289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2304, 0, 0, 0, + 2309, 0, 2311, 0, 0, 0, 0, 0, 0, 0, + 0, 2327, 2328, 1121, 0, 0, 0, 2354, 0, 2357, + 2358, 2359, 2360, 2361, 0, 2363, 0, 1121, 0, 0, + 0, 0, 0, 0, 0, 0, 2371, 0, 2374, 0, + 0, 2375, 2376, 0, 2378, 2379, 0, 0, 2382, 2383, + 2384, 0, 0, 0, 0, 2389, 0, 0, 2395, 0, + 0, 0, 0, 0, 0, 0, 2399, 2400, 0, 2403, + 0, 2405, 0, 0, 2407, 2408, 2409, 2412, 2413, 2414, + 2415, 0, 2416, 2417, 2418, 2419, 2420, 0, 0, 2427, + 2428, 0, 0, 2432, 2433, 2434, 0, 0, 0, 0, + 0, 2440, 2441, 2442, 0, 0, 2445, 2446, 2447, 0, + 2449, 1121, 2451, 0, 2452, 0, 0, 0, 2455, 2395, + 2457, 0, 0, 2463, 2464, 2465, 2466, 2467, 0, 2468, + 0, 0, 0, 0, 0, 0, 2472, 0, 0, 0, + 0, 0, 0, 2477, 2478, 2479, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1121, 0, 0, 0, 0, 0, 1631, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1926, 0, 0, - 0, 0, 1121, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1121, 0, 0, 0, 0, 1121, 0, 0, - 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1121, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1121, 1121, 0, 2062, 0, 0, 0, 0, 0, 0, + 1121, 0, 0, 0, 0, 0, 0, 0, 1631, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2574, + 0, 0, 1121, 0, 2062, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1631, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2102, 0, 0, 2103, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1121, 0, 0, 0, 0, 0, 0, 1631, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, + 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1121, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2656, 0, 0, 0, 0, 1121, 0, 1121, + 0, 1121, 0, 1121, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2690, 0, 0, + 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, + 0, 1631, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1121, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, + 0, 1121, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, - 0, 1631, 0, 0, 0, 1121, 0, 0, 0, 0, + 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1121, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2288, + 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2303, 0, - 0, 0, 2308, 0, 2310, 0, 0, 0, 0, 0, - 0, 0, 0, 2326, 2327, 0, 0, 0, 0, 2353, - 0, 2356, 2357, 2358, 2359, 2360, 0, 2362, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2370, 0, - 2373, 0, 0, 2374, 2375, 0, 2377, 2378, 0, 0, - 2381, 2382, 2383, 0, 0, 0, 0, 2388, 0, 0, - 2394, 0, 0, 0, 0, 0, 0, 0, 2398, 2399, - 0, 2402, 0, 2404, 0, 0, 2406, 2407, 2408, 2411, - 2412, 2413, 2414, 0, 2415, 2416, 2417, 2418, 2419, 0, - 0, 2426, 2427, 0, 0, 2431, 2432, 2433, 0, 0, - 0, 0, 0, 2439, 2440, 2441, 0, 0, 2444, 2445, - 2446, 0, 2448, 0, 2450, 0, 2451, 0, 0, 0, - 2454, 2394, 2456, 0, 0, 2462, 2463, 2464, 2465, 2466, - 0, 2467, 0, 0, 0, 0, 0, 0, 2471, 0, - 0, 0, 0, 0, 0, 2476, 2477, 2478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1121, 1121, 0, 1121, 0, - 0, 0, 0, 0, 0, 0, 0, 1121, 0, 1121, - 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1121, 0, 1121, 0, 1121, - 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2573, 0, 0, 1121, 1121, 2062, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2062, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, + 0, 0, 0, 0, 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2689, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2980, 2981, 0, 0, 0, 0, 0, 0, 1121, + 0, 0, 0, 0, 0, 0, 1631, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3047, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, - 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1238, + 0, 3065, 0, 0, 0, 0, 0, 0, 0, 3072, + 3073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1121, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3124, 3126, 3128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2979, 2980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1238, 0, 3064, 0, 0, 0, 0, 0, 0, 0, - 3071, 3072, 0, 0, 0, 0, 1121, 0, 1121, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, + 1121, 1121, 0, 1121, 0, 0, 0, 0, 0, 0, + 0, 0, 1121, 0, 1121, 0, 0, 1121, 0, 0, + 0, 0, 0, 0, 0, 3221, 0, 0, 0, 0, + 1121, 0, 1121, 0, 1121, 3226, 1121, 3227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1121, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1121, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3123, 3125, 3127, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3260, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1121, 0, - 0, 0, 0, 0, 0, 0, 3220, 0, 0, 0, - 0, 1631, 0, 0, 1121, 0, 3225, 0, 3226, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3252, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2062, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3310, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1631, 0, 0, 1121, 0, 3320, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3381, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1121, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1121, 0, 0, 0, 0, 0, 0, 1121, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3475, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3474, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2062, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1121, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3560, + 0, 0, 1121, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1121, 0, 1121, - 3559, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1121, 0, 1121, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1121, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, + 3709, 0, 0, 3710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1631, 1631, 0, 3657, + 3736, 0, 0, 0, 3738, 0, 3739, 3740, 3741, 3742, + 3743, 3744, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3748, 0, 3749, 0, 0, 3750, 3751, 3752, 3753, + 0, 0, 3754, 3755, 0, 0, 3757, 0, 3759, 0, + 3761, 0, 3763, 0, 0, 0, 3765, 0, 0, 0, + 0, 0, 0, 0, 2409, 0, 3768, 0, 2409, 0, + 3771, 3772, 3773, 0, 0, 3774, 3775, 3777, 0, 3778, + 0, 0, 3779, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3780, 0, 0, 0, 0, + 0, 1121, 0, 3787, 0, 3788, 3789, 3790, 0, 0, + 3791, 0, 0, 0, 1631, 0, 3795, 1121, 0, 0, + 0, 3806, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3823, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3833, 0, 0, 0, 0, 0, 0, 0, + 0, 3844, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1631, 0, 0, 1121, 0, + 0, 0, 0, 0, 0, 2062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3708, 0, 0, 3709, 0, 0, 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3735, 0, 0, 0, 3737, 0, 3738, 3739, 3740, - 3741, 3742, 3743, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3747, 0, 3748, 0, 0, 3749, 3750, 3751, - 3752, 0, 0, 3753, 3754, 0, 0, 3756, 1631, 3758, - 0, 3760, 0, 3762, 1121, 0, 0, 3764, 0, 0, - 0, 0, 0, 0, 0, 2408, 0, 3767, 0, 2408, - 0, 3770, 3771, 3772, 0, 0, 3773, 3774, 3776, 0, - 3777, 0, 0, 3778, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3779, 0, 0, 0, - 0, 0, 0, 0, 3786, 0, 3787, 3788, 3789, 0, - 0, 3790, 0, 0, 0, 0, 0, 3794, 0, 0, - 0, 0, 3805, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3832, 0, 0, 0, 0, 0, 0, - 1121, 0, 3843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1121, 0, 0, 2062, + 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2062, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1121, - 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4050, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3381, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4185, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1121, + 0, 1121, 0, 0, 0, 4187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4266, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4288, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4294, 0, 0, 4295, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4268, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1631, 1631, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4312, 4313, + 0, 4296, 0, 0, 4297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4314, 4315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4337, 0, 4338, 0, 4339, 0, 4340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4339, 0, 4340, 0, 4341, 0, 4342, 0, 1631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4365, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4388, 4389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4390, 4391, 0, 0, 0, 0, 0, 0, 0, 0, + 1631, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4050, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4424, 0, 0, 0, 0, 0, + 0, 4052, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2062, @@ -5541,21 +5446,25 @@ 0, 0, 0, 0, 2062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3382, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4052, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1121, 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4050, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5567,129 +5476,131 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4800, 4801, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4808, 0, 4809, 0, + 0, 4810, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4830, 0, 4831, 0, 4832, 0, + 4833, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4839, 4840, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4799, 4800, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4807, 0, 4808, 0, - 0, 4809, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4829, 0, 4830, 0, 4831, 0, - 4832, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4838, 4839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4052, 0, 0, 0, 0, 0, + 0, 5039, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4050, 0, 0, 0, 0, - 0, 0, 5039, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5105, 5106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 5105, 5106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4052, 0, 4052, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4050, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2062, 2062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 5229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4050, 0, 4050, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3381, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2062, 2062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 5230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 5307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 5308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3381, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4050, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 5438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 5439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5566, 0, 5568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4050, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5567, 0, 5569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5710,42 +5621,188 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5828, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2058, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2059, 946, 947, 948, 949, + 0, 0, 0, 0, 0, 0, 0, 950, 951, 0, + 952, 0, 0, 0, 0, 0, 0, 953, 954, 0, + 0, 955, 956, 957, 958, 0, 959, 960, 0, 961, + 962, 0, 0, 0, 0, 963, 0, 0, 0, 2060, + 0, 0, 965, 0, 0, 0, 1730, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 966, 967, 968, 0, 969, 970, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, + 973, 0, 974, 975, 0, 0, 0, 976, 977, 978, + 0, 0, 5941, 0, 0, 0, 0, 979, 0, 980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 981, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 982, 0, 0, 0, 0, 983, 984, + 0, 985, 0, 0, 0, 0, 0, 986, 0, 987, + 0, 0, 988, 0, 0, 989, 990, 991, 0, 992, + 993, 994, 0, 995, 2061, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 996, 0, + 0, 0, 997, 998, 999, 1000, 0, 0, 0, 0, + 0, 0, 1001, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1002, 1003, 0, 0, 0, 0, 0, + 0, 0, 1004, 0, 0, 1005, 0, 0, 0, 0, + 0, 0, 0, 0, 3382, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1006, 0, 0, 0, 0, + 0, 1007, 1008, 0, 1009, 1010, 1011, 0, 0, 0, + 1012, 0, 0, 0, 0, 0, 0, 0, 1013, 1014, + 1015, 1016, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1017, 1018, 1019, 0, 0, 0, 0, 0, 1020, + 0, 1021, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 44, 45, 46, 567, 47, 48, 49, + 50, 51, 52, 53, 1022, 55, 56, 57, 58, 59, + 60, 1023, 62, 63, 64, 65, 66, 67, 68, 1024, + 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, + 570, 81, 82, 83, 84, 1025, 85, 572, 87, 88, + 89, 90, 91, 573, 1026, 93, 1027, 1028, 96, 1029, + 1030, 1031, 1032, 1033, 0, 102, 103, 104, 574, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 1034, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 1035, 1036, 1037, 576, 1038, 1039, 132, 0, 133, 134, + 135, 136, 137, 138, 139, 577, 141, 142, 143, 144, + 578, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 579, 159, 0, 0, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 580, 581, 170, + 3382, 1040, 172, 173, 582, 175, 176, 1041, 178, 1042, + 583, 181, 182, 584, 184, 185, 585, 0, 187, 188, + 189, 1043, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 586, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 587, 210, 1044, 1045, 213, 214, 215, 1046, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 1047, 255, 1048, 257, + 258, 259, 260, 1049, 1050, 1051, 1052, 265, 266, 267, + 268, 269, 270, 271, 272, 1053, 1054, 275, 276, 277, + 278, 279, 588, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 1055, 290, 291, 292, 589, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 1056, 303, 304, 305, + 306, 307, 1057, 1058, 310, 590, 311, 591, 313, 314, + 1059, 316, 317, 318, 319, 320, 321, 1060, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 592, 342, 343, 593, + 345, 346, 347, 348, 349, 350, 351, 1061, 353, 594, + 355, 356, 357, 1062, 1063, 360, 361, 595, 363, 364, + 1064, 366, 367, 368, 369, 370, 371, 1065, 373, 596, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 0, 389, 390, 391, 597, 393, + 394, 598, 396, 397, 398, 399, 1066, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 1067, 1068, 1069, 1070, 423, + 424, 425, 1071, 1072, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 600, 438, 439, 440, 1073, 442, 1074, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 1075, + 1076, 601, 1077, 457, 458, 459, 0, 460, 602, 462, + 1078, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1079, 1080, 0, 0, 0, 0, 1081, 0, 2486, 0, + 1082, 0, 0, 1083, 1084, 0, 0, 1085, 1086, 945, + 946, 947, 948, 949, 0, 0, 0, 0, 0, 0, + 0, 950, 951, 0, 952, 0, 0, 0, 0, 0, + 0, 953, 954, 0, 0, 955, 956, 957, 958, 0, + 959, 960, 0, 961, 962, 0, 0, 0, 0, 963, + 0, 0, 0, 964, 0, 0, 965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5829, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 966, 967, 968, 0, + 969, 970, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 971, 972, 973, 0, 974, 975, 0, 0, + 0, 976, 977, 978, 0, 0, 0, 0, 0, 0, + 0, 979, 0, 980, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 981, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 982, 0, 0, + 0, 0, 983, 984, 0, 985, 0, 0, 0, 0, + 0, 986, 0, 987, 0, 0, 988, 0, 0, 989, + 0, 991, 0, 992, 993, 994, 0, 995, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 996, 0, 0, 0, 997, 998, 999, 1000, + 0, 0, 0, 0, 0, 0, 1001, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1002, 1003, 0, + 0, 0, 0, 0, 0, 0, 1004, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2058, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2059, 946, 947, 948, 949, 0, 0, - 0, 0, 0, 0, 0, 950, 951, 0, 952, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1006, + 0, 0, 0, 0, 0, 1007, 1008, 0, 1009, 1010, + 1011, 0, 0, 0, 1012, 0, 0, 0, 0, 0, + 0, 0, 1013, 1014, 1015, 1016, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1017, 1018, 1019, 0, 0, + 0, 0, 0, 1020, 0, 1021, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, + 567, 47, 48, 49, 50, 51, 52, 53, 1022, 55, + 56, 57, 58, 59, 2487, 1023, 62, 63, 64, 65, + 66, 67, 68, 1024, 70, 0, 568, 569, 74, 75, + 76, 77, 78, 79, 570, 81, 82, 83, 84, 1025, + 85, 572, 87, 88, 89, 90, 91, 573, 1026, 93, + 1027, 1028, 96, 1029, 1030, 1031, 1032, 1033, 0, 102, + 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 1034, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 1035, 1036, 1037, 576, 1038, 1039, + 132, 0, 133, 134, 135, 136, 137, 138, 139, 577, + 141, 142, 143, 144, 578, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 579, 159, + 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 580, 581, 170, 0, 1040, 172, 173, 582, 175, + 176, 1041, 178, 1042, 583, 181, 182, 584, 184, 185, + 585, 0, 187, 188, 189, 1043, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 586, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 587, 210, 1044, 1045, 213, + 214, 215, 1046, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 1047, 255, 1048, 257, 258, 259, 260, 1049, 1050, 1051, + 1052, 265, 266, 267, 268, 269, 270, 271, 272, 1053, + 1054, 275, 276, 277, 278, 279, 588, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 1055, 290, 291, 292, + 589, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 1056, 303, 304, 305, 306, 307, 1057, 1058, 310, 590, + 311, 591, 313, 314, 1059, 316, 317, 318, 319, 320, + 321, 1060, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 592, 342, 343, 593, 345, 346, 347, 348, 349, 350, + 351, 1061, 353, 594, 355, 356, 357, 1062, 1063, 360, + 361, 595, 363, 364, 1064, 366, 367, 368, 369, 370, + 371, 1065, 373, 596, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 0, 389, + 390, 391, 597, 393, 394, 598, 396, 397, 398, 399, + 1066, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 1067, + 1068, 1069, 1070, 423, 424, 425, 1071, 1072, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, + 440, 1073, 442, 1074, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 1075, 1076, 601, 1077, 457, 458, 459, + 0, 460, 602, 462, 1078, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1079, 1080, 0, 0, 0, 0, + 1081, 0, 0, 0, 1082, 0, 0, 1083, 1084, 0, + 0, 1085, 1086, 945, 946, 947, 948, 949, 0, 0, + 0, 2392, 0, 0, 0, 950, 951, 0, 952, 0, 0, 0, 0, 0, 0, 953, 954, 0, 0, 955, 956, 957, 958, 0, 959, 960, 0, 961, 962, 0, - 0, 0, 0, 963, 0, 0, 0, 2060, 0, 0, + 0, 0, 0, 963, 0, 0, 0, 964, 0, 0, 965, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1730, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 966, 967, 968, 0, 969, 970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, 973, 0, 974, 975, 0, 0, 0, 976, 977, 978, 0, 0, 0, 0, 0, 0, 0, 979, 0, 980, 0, 0, - 0, 0, 0, 0, 0, 5943, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2393, 0, 981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 982, 0, 0, 0, 0, 983, 984, 0, 985, 0, 0, 0, 0, 0, 986, 0, 987, 0, 0, 988, 0, 0, 989, 990, 991, 0, 992, 993, 994, - 0, 995, 2061, 0, 0, 0, 0, 0, 0, 0, + 0, 995, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 996, 0, 0, 0, 997, 998, 999, 1000, 0, 0, 0, 0, 0, 0, 1001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1002, 1003, 0, 0, 0, 0, 0, 0, 0, 1004, 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1006, 0, 0, 0, 0, 3381, 1007, + 0, 0, 0, 1006, 0, 0, 0, 0, 0, 1007, 1008, 0, 1009, 1010, 1011, 0, 0, 0, 1012, 0, - 0, 0, 0, 0, 0, 0, 1013, 1014, 1015, 1016, + 0, 0, 0, 0, 2394, 0, 1013, 1014, 1015, 1016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1017, 1018, 1019, 0, 0, 0, 0, 0, 1020, 0, 1021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5764,7 +5821,7 @@ 156, 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, 580, 581, 170, 0, 1040, 172, 173, 582, 175, 176, 1041, 178, 1042, 583, 181, - 182, 584, 184, 185, 585, 3381, 187, 188, 189, 1043, + 182, 584, 184, 185, 585, 0, 187, 188, 189, 1043, 191, 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, 1044, 1045, 213, 214, 215, 1046, 217, 218, 219, @@ -5794,7 +5851,7 @@ 446, 447, 448, 449, 450, 451, 452, 1075, 1076, 601, 1077, 457, 458, 459, 0, 460, 602, 462, 1078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1079, 1080, - 0, 0, 0, 0, 1081, 0, 2485, 0, 1082, 0, + 0, 0, 0, 0, 1081, 0, 0, 0, 1082, 0, 0, 1083, 1084, 0, 0, 1085, 1086, 945, 946, 947, 948, 949, 0, 0, 0, 0, 0, 0, 0, 950, 951, 0, 952, 0, 0, 0, 0, 0, 0, 953, @@ -5810,7 +5867,7 @@ 0, 0, 0, 0, 981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 982, 0, 0, 0, 0, 983, 984, 0, 985, 0, 0, 0, 0, 0, 986, - 0, 987, 0, 0, 988, 0, 0, 989, 0, 991, + 0, 987, 0, 0, 988, 0, 0, 989, 990, 991, 0, 992, 993, 994, 0, 995, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 996, 0, 0, 0, 997, 998, 999, 1000, 0, 0, @@ -5823,10 +5880,10 @@ 0, 0, 1012, 0, 0, 0, 0, 0, 0, 0, 1013, 1014, 1015, 1016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1017, 1018, 1019, 0, 0, 0, 0, - 0, 1020, 0, 1021, 0, 0, 0, 0, 0, 0, + 0, 1020, 0, 1021, 1593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, 53, 1022, 55, 56, 57, - 58, 59, 2486, 1023, 62, 63, 64, 65, 66, 67, + 58, 59, 60, 1023, 62, 63, 64, 65, 66, 67, 68, 1024, 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, 1025, 85, 572, 87, 88, 89, 90, 91, 573, 1026, 93, 1027, 1028, @@ -5871,18 +5928,18 @@ 602, 462, 1078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1079, 1080, 0, 0, 0, 0, 1081, 0, 0, 0, 1082, 0, 0, 1083, 1084, 0, 0, 1085, - 1086, 945, 946, 947, 948, 949, 0, 0, 0, 2391, + 1086, 945, 946, 947, 948, 949, 0, 0, 0, 0, 0, 0, 0, 950, 951, 0, 952, 0, 0, 0, 0, 0, 0, 953, 954, 0, 0, 955, 956, 957, 958, 0, 959, 960, 0, 961, 962, 0, 0, 0, 0, 963, 0, 0, 0, 964, 0, 0, 965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 966, 967, - 968, 0, 969, 970, 0, 0, 0, 0, 0, 0, + 968, 0, 969, 970, 0, 0, 0, 0, 3123, 0, 0, 0, 0, 0, 971, 972, 973, 0, 974, 975, 0, 0, 0, 976, 977, 978, 0, 0, 0, 0, 0, 0, 0, 979, 0, 980, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2392, 0, 981, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 982, 0, 0, 0, 0, 983, 984, 0, 985, 0, 0, 0, 0, 0, 986, 0, 987, 0, 0, 988, 0, @@ -5896,7 +5953,7 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1006, 0, 0, 0, 0, 0, 1007, 1008, 0, 1009, 1010, 1011, 0, 0, 0, 1012, 0, 0, 0, - 0, 0, 2393, 0, 1013, 1014, 1015, 1016, 0, 0, + 0, 0, 0, 0, 1013, 1014, 1015, 1016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1017, 1018, 1019, 0, 0, 0, 0, 0, 1020, 0, 1021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, @@ -5954,7 +6011,7 @@ 0, 0, 965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 966, 967, 968, 0, 969, 970, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, + 0, 0, 3125, 0, 0, 0, 0, 0, 971, 972, 973, 0, 974, 975, 0, 0, 0, 976, 977, 978, 0, 0, 0, 0, 0, 0, 0, 979, 0, 980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5974,7 +6031,7 @@ 1012, 0, 0, 0, 0, 0, 0, 0, 1013, 1014, 1015, 1016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1017, 1018, 1019, 0, 0, 0, 0, 0, 1020, - 0, 1021, 1593, 0, 0, 0, 0, 0, 0, 0, + 0, 1021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, 53, 1022, 55, 56, 57, 58, 59, 60, 1023, 62, 63, 64, 65, 66, 67, 68, 1024, @@ -6029,7 +6086,7 @@ 0, 0, 0, 964, 0, 0, 965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 966, 967, 968, 0, - 969, 970, 0, 0, 0, 0, 3122, 0, 0, 0, + 969, 970, 0, 0, 0, 0, 3127, 0, 0, 0, 0, 0, 971, 972, 973, 0, 974, 975, 0, 0, 0, 976, 977, 978, 0, 0, 0, 0, 0, 0, 0, 979, 0, 980, 0, 0, 0, 0, 0, 0, @@ -6101,12 +6158,12 @@ 0, 0, 0, 0, 0, 950, 951, 0, 952, 0, 0, 0, 0, 0, 0, 953, 954, 0, 0, 955, 956, 957, 958, 0, 959, 960, 0, 961, 962, 0, - 0, 0, 0, 963, 0, 0, 0, 964, 0, 0, + 0, 0, 0, 963, 0, 0, 0, 3378, 0, 0, 965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 966, 967, 968, 0, 969, 970, 0, 0, 0, 0, - 3124, 0, 0, 0, 0, 0, 971, 972, 973, 0, - 974, 975, 0, 0, 0, 976, 977, 978, 0, 0, + 0, 0, 0, 0, 0, 0, 971, 972, 973, 0, + 974, 975, 0, 0, 0, 976, 977, 978, 0, 3379, 0, 0, 0, 0, 0, 979, 0, 980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 981, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6180,7 +6237,7 @@ 0, 964, 0, 0, 965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 966, 967, 968, 0, 969, 970, - 0, 0, 0, 0, 3126, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, 973, 0, 974, 975, 0, 0, 0, 976, 977, 978, 0, 0, 0, 0, 0, 0, 0, 979, 0, 980, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6252,12 +6309,12 @@ 0, 0, 0, 950, 951, 0, 952, 0, 0, 0, 0, 0, 0, 953, 954, 0, 0, 955, 956, 957, 958, 0, 959, 960, 0, 961, 962, 0, 0, 0, - 0, 963, 0, 0, 0, 3377, 0, 0, 965, 0, + 0, 963, 0, 0, 0, 964, 0, 0, 965, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 966, 967, 968, 0, 969, 970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, 973, 0, 974, 975, - 0, 0, 0, 976, 977, 978, 0, 3378, 0, 0, + 0, 0, 0, 976, 977, 978, 0, 0, 0, 0, 0, 0, 0, 979, 0, 980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 982, @@ -6322,7 +6379,7 @@ 448, 449, 450, 451, 452, 1075, 1076, 601, 1077, 457, 458, 459, 0, 460, 602, 462, 1078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1079, 1080, 0, 0, - 0, 0, 1081, 0, 0, 0, 1082, 0, 0, 1083, + 0, 0, 1081, 0, 0, 0, 1620, 0, 0, 1083, 1084, 0, 0, 1085, 1086, 945, 946, 947, 948, 949, 0, 0, 0, 0, 0, 0, 0, 950, 951, 0, 952, 0, 0, 0, 0, 0, 0, 953, 954, 0, @@ -6393,7 +6450,7 @@ 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 1067, 1068, 1069, 1070, 423, 424, 425, 1071, 1072, 428, 429, 430, 431, 432, 433, - 434, 435, 436, 600, 438, 439, 440, 1073, 442, 1074, + 434, 435, 436, 600, 438, 439, 440, 2263, 442, 1074, 444, 445, 446, 447, 448, 449, 450, 451, 452, 1075, 1076, 601, 1077, 457, 458, 459, 0, 460, 602, 462, 1078, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6409,7 +6466,7 @@ 969, 970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, 973, 0, 974, 975, 0, 0, 0, 976, 977, 978, 0, 0, 0, 0, 0, 0, - 0, 979, 0, 980, 0, 0, 0, 0, 0, 0, + 0, 979, 0, 3764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 982, 0, 0, 0, 0, 983, 984, 0, 985, 0, 0, 0, 0, @@ -6473,7 +6530,7 @@ 450, 451, 452, 1075, 1076, 601, 1077, 457, 458, 459, 0, 460, 602, 462, 1078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1079, 1080, 0, 0, 0, 0, - 1081, 0, 0, 0, 1620, 0, 0, 1083, 1084, 0, + 1081, 0, 0, 0, 1082, 0, 0, 1083, 1084, 0, 0, 1085, 1086, 945, 946, 947, 948, 949, 0, 0, 0, 0, 0, 0, 0, 950, 951, 0, 952, 0, 0, 0, 0, 0, 0, 953, 954, 0, 0, 955, @@ -6484,7 +6541,7 @@ 966, 967, 968, 0, 969, 970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, 973, 0, 974, 975, 0, 0, 0, 976, 977, 978, 0, 0, - 0, 0, 0, 0, 0, 979, 0, 980, 0, 0, + 0, 0, 0, 0, 0, 979, 0, 3786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 982, 0, 0, 0, 0, 983, 984, 0, 985, @@ -6544,7 +6601,7 @@ 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 1067, 1068, 1069, 1070, 423, 424, 425, 1071, 1072, 428, 429, 430, 431, 432, 433, 434, 435, - 436, 600, 438, 439, 440, 2262, 442, 1074, 444, 445, + 436, 600, 438, 439, 440, 1073, 442, 1074, 444, 445, 446, 447, 448, 449, 450, 451, 452, 1075, 1076, 601, 1077, 457, 458, 459, 0, 460, 602, 462, 1078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1079, 1080, @@ -6560,11 +6617,11 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, 973, 0, 974, 975, 0, 0, 0, 976, 977, 978, 0, 0, 0, 0, 0, 0, 0, 979, - 0, 3763, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 982, 0, 0, 0, 0, - 983, 984, 0, 985, 0, 0, 0, 0, 0, 986, - 0, 987, 0, 0, 988, 0, 0, 989, 990, 991, + 983, 984, 6030, 985, 0, 0, 0, 0, 0, 986, + 0, 987, 0, 0, 988, 0, 0, 989, 0, 991, 0, 992, 993, 994, 0, 995, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 996, 0, 0, 0, 997, 998, 999, 1000, 0, 0, @@ -6635,12 +6692,12 @@ 968, 0, 969, 970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, 973, 0, 974, 975, 0, 0, 0, 976, 977, 978, 0, 0, 0, 0, - 0, 0, 0, 979, 0, 3785, 0, 0, 0, 0, + 0, 0, 0, 979, 0, 1586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 982, 0, 0, 0, 0, 983, 984, 0, 985, 0, 0, 0, 0, 0, 986, 0, 987, 0, 0, 988, 0, - 0, 989, 990, 991, 0, 992, 993, 994, 0, 995, + 0, 989, 0, 991, 0, 992, 993, 994, 0, 995, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 996, 0, 0, 0, 997, 998, 999, 1000, 0, 0, 0, 0, 0, 0, 1001, 0, @@ -6698,7 +6755,7 @@ 438, 439, 440, 1073, 442, 1074, 444, 445, 446, 447, 448, 449, 450, 451, 452, 1075, 1076, 601, 1077, 457, 458, 459, 0, 460, 602, 462, 1078, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1079, 1080, 0, 0, + 0, 0, 0, 0, 0, 0, 1587, 1588, 0, 0, 0, 0, 1081, 0, 0, 0, 1082, 0, 0, 1083, 1084, 0, 0, 1085, 1086, 945, 946, 947, 948, 949, 0, 0, 0, 0, 0, 0, 0, 950, 951, 0, @@ -6710,11 +6767,11 @@ 0, 0, 966, 967, 968, 0, 969, 970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, 973, 0, 974, 975, 0, 0, 0, 976, 977, 978, - 0, 0, 0, 0, 0, 0, 0, 979, 0, 980, + 0, 0, 0, 0, 0, 0, 0, 979, 0, 1724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 982, 0, 0, 0, 0, 983, 984, - 6033, 985, 0, 0, 0, 0, 0, 986, 0, 987, + 0, 985, 0, 0, 0, 0, 0, 986, 0, 987, 0, 0, 988, 0, 0, 989, 0, 991, 0, 992, 993, 994, 0, 995, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 996, 0, @@ -6774,7 +6831,7 @@ 444, 445, 446, 447, 448, 449, 450, 451, 452, 1075, 1076, 601, 1077, 457, 458, 459, 0, 460, 602, 462, 1078, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1079, 1080, 0, 0, 0, 0, 1081, 0, 0, 0, + 1587, 1588, 0, 0, 0, 0, 1081, 0, 0, 0, 1082, 0, 0, 1083, 1084, 0, 0, 1085, 1086, 945, 946, 947, 948, 949, 0, 0, 0, 0, 0, 0, 0, 950, 951, 0, 952, 0, 0, 0, 0, 0, @@ -6786,7 +6843,7 @@ 969, 970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, 973, 0, 974, 975, 0, 0, 0, 976, 977, 978, 0, 0, 0, 0, 0, 0, - 0, 979, 0, 1586, 0, 0, 0, 0, 0, 0, + 0, 979, 0, 1726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 982, 0, 0, 0, 0, 983, 984, 0, 985, 0, 0, 0, 0, @@ -6861,7 +6918,7 @@ 966, 967, 968, 0, 969, 970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, 973, 0, 974, 975, 0, 0, 0, 976, 977, 978, 0, 0, - 0, 0, 0, 0, 0, 979, 0, 1724, 0, 0, + 0, 0, 0, 0, 0, 979, 0, 980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 982, 0, 0, 0, 0, 983, 984, 0, 985, @@ -6924,7 +6981,7 @@ 436, 600, 438, 439, 440, 1073, 442, 1074, 444, 445, 446, 447, 448, 449, 450, 451, 452, 1075, 1076, 601, 1077, 457, 458, 459, 0, 460, 602, 462, 1078, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1587, 1588, + 0, 0, 0, 0, 0, 0, 0, 0, 1079, 1080, 0, 0, 0, 0, 1081, 0, 0, 0, 1082, 0, 0, 1083, 1084, 0, 0, 1085, 1086, 945, 946, 947, 948, 949, 0, 0, 0, 0, 0, 0, 0, 950, @@ -6937,7 +6994,7 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, 973, 0, 974, 975, 0, 0, 0, 976, 977, 978, 0, 0, 0, 0, 0, 0, 0, 979, - 0, 1726, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 982, 0, 0, 0, 0, 983, 984, 0, 985, 0, 0, 0, 0, 0, 986, @@ -7000,7 +7057,7 @@ 442, 1074, 444, 445, 446, 447, 448, 449, 450, 451, 452, 1075, 1076, 601, 1077, 457, 458, 459, 0, 460, 602, 462, 1078, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1587, 1588, 0, 0, 0, 0, 1081, 0, + 0, 0, 1079, 1080, 0, 0, 0, 0, 1081, 0, 0, 0, 1082, 0, 0, 1083, 1084, 0, 0, 1085, 1086, 945, 946, 947, 948, 949, 0, 0, 0, 0, 0, 0, 0, 950, 951, 0, 952, 0, 0, 0, @@ -7012,7 +7069,7 @@ 968, 0, 969, 970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, 973, 0, 974, 975, 0, 0, 0, 976, 977, 978, 0, 0, 0, 0, - 0, 0, 0, 979, 0, 980, 0, 0, 0, 0, + 0, 0, 0, 979, 0, 2504, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 982, 0, 0, 0, 0, 983, 984, 0, 985, 0, 0, @@ -7077,313 +7134,95 @@ 458, 459, 0, 460, 602, 462, 1078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1079, 1080, 0, 0, 0, 0, 1081, 0, 0, 0, 1082, 0, 0, 1083, - 1084, 0, 0, 1085, 1086, 945, 946, 947, 948, 949, - 0, 0, 0, 0, 0, 0, 0, 950, 951, 0, - 952, 0, 0, 0, 0, 0, 0, 953, 954, 0, - 0, 955, 956, 957, 958, 0, 959, 960, 0, 961, - 962, 0, 0, 0, 0, 963, 0, 0, 0, 964, - 0, 0, 965, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 966, 967, 968, 0, 969, 970, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 971, 972, - 973, 0, 974, 975, 0, 0, 0, 976, 977, 978, - 0, 0, 0, 0, 0, 0, 0, 979, 0, 2501, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 981, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 982, 0, 0, 0, 0, 983, 984, - 0, 985, 0, 0, 0, 0, 0, 986, 0, 987, - 0, 0, 988, 0, 0, 989, 0, 991, 0, 992, - 993, 994, 0, 995, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 996, 0, - 0, 0, 997, 998, 999, 1000, 0, 0, 0, 0, - 0, 0, 1001, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1002, 1003, 0, 0, 0, 0, 0, - 0, 0, 1004, 0, 0, 1005, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1006, 0, 0, 0, 0, - 0, 1007, 1008, 0, 1009, 1010, 1011, 0, 0, 0, - 1012, 0, 0, 0, 0, 0, 0, 0, 1013, 1014, - 1015, 1016, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1017, 1018, 1019, 0, 0, 0, 0, 0, 1020, - 0, 1021, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 44, 45, 46, 567, 47, 48, 49, - 50, 51, 52, 53, 1022, 55, 56, 57, 58, 59, - 60, 1023, 62, 63, 64, 65, 66, 67, 68, 1024, - 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, - 570, 81, 82, 83, 84, 1025, 85, 572, 87, 88, - 89, 90, 91, 573, 1026, 93, 1027, 1028, 96, 1029, - 1030, 1031, 1032, 1033, 0, 102, 103, 104, 574, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 1034, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 1035, 1036, 1037, 576, 1038, 1039, 132, 0, 133, 134, - 135, 136, 137, 138, 139, 577, 141, 142, 143, 144, - 578, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 579, 159, 0, 0, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 580, 581, 170, - 0, 1040, 172, 173, 582, 175, 176, 1041, 178, 1042, - 583, 181, 182, 584, 184, 185, 585, 0, 187, 188, - 189, 1043, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 586, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 587, 210, 1044, 1045, 213, 214, 215, 1046, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 1047, 255, 1048, 257, - 258, 259, 260, 1049, 1050, 1051, 1052, 265, 266, 267, - 268, 269, 270, 271, 272, 1053, 1054, 275, 276, 277, - 278, 279, 588, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 1055, 290, 291, 292, 589, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 1056, 303, 304, 305, - 306, 307, 1057, 1058, 310, 590, 311, 591, 313, 314, - 1059, 316, 317, 318, 319, 320, 321, 1060, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 592, 342, 343, 593, - 345, 346, 347, 348, 349, 350, 351, 1061, 353, 594, - 355, 356, 357, 1062, 1063, 360, 361, 595, 363, 364, - 1064, 366, 367, 368, 369, 370, 371, 1065, 373, 596, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 0, 389, 390, 391, 597, 393, - 394, 598, 396, 397, 398, 399, 1066, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 1067, 1068, 1069, 1070, 423, - 424, 425, 1071, 1072, 428, 429, 430, 431, 432, 433, - 434, 435, 436, 600, 438, 439, 440, 1073, 442, 1074, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 1075, - 1076, 601, 1077, 457, 458, 459, 0, 460, 602, 462, - 1078, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1079, 1080, 0, 0, 0, 0, 1081, 0, 0, 0, - 1082, 0, 0, 1083, 1084, 0, 0, 1085, 1086, 945, - 946, 947, 948, 949, 0, 0, 0, 0, 0, 0, - 0, 950, 951, 0, 952, 0, 0, 0, 0, 0, - 0, 953, 954, 0, 0, 955, 956, 957, 958, 0, - 959, 960, 0, 961, 962, 0, 0, 0, 0, 963, - 0, 0, 0, 964, 0, 0, 965, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 966, 967, 968, 0, - 969, 970, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 971, 972, 973, 0, 974, 975, 0, 0, - 0, 976, 977, 978, 0, 0, 0, 0, 0, 0, - 0, 979, 0, 2503, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 981, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 982, 0, 0, - 0, 0, 983, 984, 0, 985, 0, 0, 0, 0, - 0, 986, 0, 987, 0, 0, 988, 0, 0, 989, - 0, 991, 0, 992, 993, 994, 0, 995, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 996, 0, 0, 0, 997, 998, 999, 1000, - 0, 0, 0, 0, 0, 0, 1001, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1002, 1003, 0, - 0, 0, 0, 0, 0, 0, 1004, 0, 0, 1005, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1006, - 0, 0, 0, 0, 0, 1007, 1008, 0, 1009, 1010, - 1011, 0, 0, 0, 1012, 0, 0, 0, 0, 0, - 0, 0, 1013, 1014, 1015, 1016, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1017, 1018, 1019, 0, 0, - 0, 0, 0, 1020, 0, 1021, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, - 567, 47, 48, 49, 50, 51, 52, 53, 1022, 55, - 56, 57, 58, 59, 60, 1023, 62, 63, 64, 65, - 66, 67, 68, 1024, 70, 0, 568, 569, 74, 75, - 76, 77, 78, 79, 570, 81, 82, 83, 84, 1025, - 85, 572, 87, 88, 89, 90, 91, 573, 1026, 93, - 1027, 1028, 96, 1029, 1030, 1031, 1032, 1033, 0, 102, - 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 1034, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 1035, 1036, 1037, 576, 1038, 1039, - 132, 0, 133, 134, 135, 136, 137, 138, 139, 577, - 141, 142, 143, 144, 578, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 579, 159, - 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 580, 581, 170, 0, 1040, 172, 173, 582, 175, - 176, 1041, 178, 1042, 583, 181, 182, 584, 184, 185, - 585, 0, 187, 188, 189, 1043, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 586, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 587, 210, 1044, 1045, 213, - 214, 215, 1046, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 1047, 255, 1048, 257, 258, 259, 260, 1049, 1050, 1051, - 1052, 265, 266, 267, 268, 269, 270, 271, 272, 1053, - 1054, 275, 276, 277, 278, 279, 588, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 1055, 290, 291, 292, - 589, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 1056, 303, 304, 305, 306, 307, 1057, 1058, 310, 590, - 311, 591, 313, 314, 1059, 316, 317, 318, 319, 320, - 321, 1060, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 592, 342, 343, 593, 345, 346, 347, 348, 349, 350, - 351, 1061, 353, 594, 355, 356, 357, 1062, 1063, 360, - 361, 595, 363, 364, 1064, 366, 367, 368, 369, 370, - 371, 1065, 373, 596, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 0, 389, - 390, 391, 597, 393, 394, 598, 396, 397, 398, 399, - 1066, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 1067, - 1068, 1069, 1070, 423, 424, 425, 1071, 1072, 428, 429, - 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, - 440, 1073, 442, 1074, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 1075, 1076, 601, 1077, 457, 458, 459, - 0, 460, 602, 462, 1078, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1079, 1080, 0, 0, 0, 0, - 1081, 0, 0, 0, 1082, 0, 0, 1083, 1084, 0, - 0, 1085, 1086, 946, 947, 948, 949, 0, 0, 0, - 0, 0, 0, 0, 950, 951, 0, 952, 0, 0, - 0, 0, 0, 0, 953, 954, 0, 0, 955, 956, - 957, 958, 0, 959, 960, 0, 961, 962, 0, 0, - 0, 0, 963, 0, 0, 0, 964, 0, 0, 965, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 966, - 967, 968, 0, 969, 970, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 971, 972, 973, 0, 974, - 975, 0, 0, 0, 976, 977, 978, 0, 0, 0, - 0, 0, 0, 0, 979, 0, 1586, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 981, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 982, 0, 0, 0, 0, 983, 984, 0, 985, 0, - 0, 0, 0, 0, 986, 0, 987, 0, 0, 988, - 0, 0, 0, 0, 991, 0, 992, 993, 994, 0, - 995, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 996, 0, 0, 0, 997, - 998, 999, 1000, 0, 0, 0, 0, 0, 0, 1001, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1002, 1003, 0, 0, 0, 0, 0, 0, 0, 1004, - 0, 0, 1005, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1006, 0, 0, 0, 0, 0, 1007, 1008, - 0, 1009, 1010, 1011, 0, 0, 0, 1012, 0, 0, - 0, 0, 0, 0, 0, 1013, 1014, 1015, 1016, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1017, 1018, - 1019, 0, 0, 0, 0, 0, 1020, 0, 1021, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, - 53, 1022, 55, 56, 57, 58, 59, 60, 1023, 62, - 63, 64, 65, 66, 67, 68, 1024, 70, 0, 568, - 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, - 83, 84, 1025, 85, 572, 87, 88, 89, 90, 91, - 573, 1026, 93, 1027, 1028, 96, 1029, 1030, 1031, 1032, - 1033, 0, 102, 103, 104, 574, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 1034, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 1035, 1036, 1037, - 576, 1038, 1039, 132, 0, 133, 134, 135, 136, 137, - 138, 139, 577, 141, 142, 143, 144, 578, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 580, 581, 170, 0, 1040, 172, - 173, 582, 175, 176, 1041, 178, 1042, 583, 181, 182, - 584, 184, 185, 585, 0, 187, 188, 189, 1043, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, - 1044, 1045, 213, 214, 215, 1046, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 1047, 255, 1048, 257, 258, 259, 260, - 1049, 1050, 1051, 1052, 265, 266, 267, 268, 269, 270, - 271, 272, 1053, 1054, 275, 276, 277, 278, 279, 588, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 1055, - 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 1056, 303, 304, 305, 306, 307, 1057, - 1058, 310, 590, 311, 591, 313, 314, 1059, 316, 317, - 318, 319, 320, 321, 1060, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 592, 342, 343, 593, 345, 346, 347, - 348, 349, 350, 351, 1061, 353, 594, 355, 356, 357, - 1062, 1063, 360, 361, 595, 363, 364, 1064, 366, 367, - 368, 369, 370, 371, 1065, 373, 596, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 0, 389, 390, 391, 597, 393, 394, 598, 396, - 397, 398, 399, 1066, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 1067, 1068, 1069, 1070, 423, 424, 425, 1071, - 1072, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 600, 438, 439, 440, 1073, 442, 1074, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 1075, 1076, 601, 1077, - 457, 458, 459, 946, 460, 602, 462, 1078, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 5782, 5783, 0, - 0, 0, 0, 0, 0, 0, 0, 5784, 0, 0, - 0, 1084, 0, 0, 1085, 1086, 0, 0, 0, 0, - 0, 0, 963, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 968, 0, 0, 970, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 974, - 975, 0, 0, 0, 1623, 1624, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 982, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 988, - 0, 0, 0, 0, 0, 0, 0, 993, 994, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1012, 0, 0, - 0, 0, 0, 0, 0, 0, 1014, 1015, 1016, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, - 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, - 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, - 573, 92, 93, 94, 1625, 96, 97, 98, 99, 100, - 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 2539, 128, - 576, 130, 131, 132, 0, 133, 134, 135, 136, 137, - 138, 139, 577, 141, 142, 143, 144, 578, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 580, 581, 170, 0, 171, 172, - 173, 582, 175, 176, 177, 178, 179, 583, 181, 182, - 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 588, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 590, 311, 591, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 592, 342, 343, 593, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 594, 355, 356, 357, - 358, 359, 360, 361, 595, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 596, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 3023, 389, 390, 391, 597, 393, 394, 598, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 2540, 420, 421, 2541, 423, 424, 425, 426, - 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, - 457, 458, 459, 0, 460, 602, 462, 463, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 17, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1085, 1086, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1084, 0, 0, 1085, 1086, 946, 947, 948, 949, 0, + 0, 0, 0, 0, 0, 0, 950, 951, 0, 952, + 0, 0, 0, 0, 0, 0, 953, 954, 0, 0, + 955, 956, 957, 958, 0, 959, 960, 0, 961, 962, + 0, 0, 0, 0, 963, 0, 0, 0, 964, 0, + 0, 965, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 966, 967, 968, 0, 969, 970, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 971, 972, 973, + 0, 974, 975, 0, 0, 0, 976, 977, 978, 0, + 0, 0, 0, 0, 0, 0, 979, 0, 1586, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 981, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 982, 0, 0, 0, 0, 983, 984, 0, + 985, 0, 0, 0, 0, 0, 986, 0, 987, 0, + 0, 988, 0, 0, 0, 0, 991, 0, 992, 993, + 994, 0, 995, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 996, 0, 0, + 0, 997, 998, 999, 1000, 0, 0, 0, 0, 0, + 0, 1001, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1002, 1003, 0, 0, 0, 0, 0, 0, + 0, 1004, 0, 0, 1005, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1006, 0, 0, 0, 0, 0, + 1007, 1008, 0, 1009, 1010, 1011, 0, 0, 0, 1012, + 0, 0, 0, 0, 0, 0, 0, 1013, 1014, 1015, + 1016, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1017, 1018, 1019, 0, 0, 0, 0, 0, 1020, 0, + 1021, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 44, 45, 46, 567, 47, 48, 49, 50, + 51, 52, 53, 1022, 55, 56, 57, 58, 59, 60, + 1023, 62, 63, 64, 65, 66, 67, 68, 1024, 70, + 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, + 81, 82, 83, 84, 1025, 85, 572, 87, 88, 89, + 90, 91, 573, 1026, 93, 1027, 1028, 96, 1029, 1030, + 1031, 1032, 1033, 0, 102, 103, 104, 574, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 1034, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 1035, + 1036, 1037, 576, 1038, 1039, 132, 0, 133, 134, 135, + 136, 137, 138, 139, 577, 141, 142, 143, 144, 578, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 579, 159, 0, 0, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 580, 581, 170, 0, + 1040, 172, 173, 582, 175, 176, 1041, 178, 1042, 583, + 181, 182, 584, 184, 185, 585, 0, 187, 188, 189, + 1043, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 586, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 587, 210, 1044, 1045, 213, 214, 215, 1046, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 1047, 255, 1048, 257, 258, + 259, 260, 1049, 1050, 1051, 1052, 265, 266, 267, 268, + 269, 270, 271, 272, 1053, 1054, 275, 276, 277, 278, + 279, 588, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 1055, 290, 291, 292, 589, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 1056, 303, 304, 305, 306, + 307, 1057, 1058, 310, 590, 311, 591, 313, 314, 1059, + 316, 317, 318, 319, 320, 321, 1060, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 592, 342, 343, 593, 345, + 346, 347, 348, 349, 350, 351, 1061, 353, 594, 355, + 356, 357, 1062, 1063, 360, 361, 595, 363, 364, 1064, + 366, 367, 368, 369, 370, 371, 1065, 373, 596, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 0, 389, 390, 391, 597, 393, 394, + 598, 396, 397, 398, 399, 1066, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 1067, 1068, 1069, 1070, 423, 424, + 425, 1071, 1072, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 600, 438, 439, 440, 1073, 442, 1074, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 1075, 1076, + 601, 1077, 457, 458, 459, 946, 460, 602, 462, 1078, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5781, + 5782, 0, 0, 0, 0, 0, 0, 0, 0, 5783, + 0, 0, 0, 1084, 0, 0, 1085, 1086, 0, 0, + 0, 0, 0, 0, 963, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 968, 0, 0, 970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 974, 975, 0, 0, 0, 1623, 1624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 982, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 988, 0, 0, 0, 0, 0, 0, 0, 993, + 994, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7391,6 +7230,9 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1012, + 0, 0, 0, 0, 0, 0, 0, 0, 1014, 1015, + 1016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 567, 47, 48, 49, 50, @@ -7398,11 +7240,11 @@ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, 88, 89, - 90, 91, 573, 92, 93, 94, 0, 96, 97, 98, + 90, 91, 573, 92, 93, 94, 1625, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 576, 130, 131, 132, 0, 133, 134, 135, + 2540, 128, 576, 130, 131, 132, 0, 133, 134, 135, 136, 137, 138, 139, 577, 141, 142, 143, 144, 578, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 579, 159, 0, 0, 160, 161, 162, @@ -7429,17 +7271,17 @@ 356, 357, 358, 359, 360, 361, 595, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 596, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 3273, 389, 390, 391, 597, 393, 394, + 386, 387, 388, 3024, 389, 390, 391, 597, 393, 394, 598, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 415, 416, 417, 418, 2541, 420, 421, 2542, 423, 424, 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 16, 17, - 0, 3024, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 698, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1085, 1086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7493,94 +7335,17 @@ 594, 355, 356, 357, 358, 359, 360, 361, 595, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 596, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 0, 389, 390, 391, 597, + 384, 385, 386, 387, 388, 3274, 389, 390, 391, 597, 393, 394, 598, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 601, 456, 457, 458, 459, 1163, 460, 602, + 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3024, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1164, 0, 698, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, - 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, - 83, 84, 1165, 85, 572, 87, 88, 89, 90, 91, - 573, 92, 93, 94, 0, 96, 97, 98, 99, 100, - 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 576, 130, 131, 132, 0, 133, 134, 135, 136, 137, - 138, 139, 577, 141, 142, 143, 144, 578, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 580, 581, 170, 0, 171, 172, - 173, 1166, 175, 176, 177, 178, 179, 583, 1167, 182, - 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, - 211, 212, 213, 214, 215, 216, 217, 1168, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 1169, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 588, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 1170, 303, 304, 305, 306, 307, 308, - 309, 310, 590, 311, 591, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 592, 342, 343, 593, 345, 346, 347, - 348, 349, 350, 351, 352, 1171, 594, 355, 356, 357, - 358, 359, 360, 361, 595, 363, 364, 365, 366, 367, - 368, 369, 1172, 371, 372, 373, 596, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 0, 389, 390, 391, 597, 393, 394, 598, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 1173, 424, 425, 426, - 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 1174, 456, - 457, 458, 459, 1163, 460, 602, 462, 463, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1164, 0, 0, 1175, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 17, 0, 3025, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7602,7 +7367,7 @@ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, 76, - 77, 78, 79, 570, 81, 82, 83, 84, 1165, 85, + 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, 573, 92, 93, 94, 0, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, @@ -7612,27 +7377,27 @@ 142, 143, 144, 578, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 580, 581, 170, 0, 171, 172, 173, 1166, 175, 176, - 177, 178, 179, 583, 1167, 182, 584, 184, 185, 585, + 580, 581, 170, 0, 171, 172, 173, 582, 175, 176, + 177, 178, 179, 583, 181, 182, 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, 211, 212, 213, 214, - 215, 216, 217, 1168, 219, 220, 221, 222, 223, 224, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 1169, 269, 270, 271, 272, 273, 274, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 588, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 589, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 1170, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 590, 311, 591, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 592, 342, 343, 593, 345, 346, 347, 348, 349, 350, 351, - 352, 1171, 594, 355, 356, 357, 358, 359, 360, 361, - 595, 363, 364, 365, 366, 367, 368, 369, 1172, 371, + 352, 353, 594, 355, 356, 357, 358, 359, 360, 361, + 595, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 596, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 0, 389, 390, 391, 597, 393, 394, 598, 396, 397, 398, 399, 400, @@ -7641,161 +7406,91 @@ 421, 422, 423, 424, 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 1174, 456, 457, 458, 459, 0, - 460, 602, 462, 463, 862, 863, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 451, 452, 453, 454, 601, 456, 457, 458, 459, 1163, + 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3025, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1164, 0, + 698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1175, 0, 0, 0, 0, 0, 0, 0, 864, - 0, 0, 0, 0, 865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 866, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 867, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 868, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 16, 17, 0, - 0, 0, 869, 0, 0, 0, 0, 870, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 769, 0, 0, 0, 0, 0, 0, - 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 872, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 873, 0, 0, - 0, 0, 0, 0, 0, 874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 684, 0, 0, 0, 0, 0, 0, 875, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 876, 877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 44, 45, 46, 567, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, - 570, 81, 82, 83, 84, 571, 85, 572, 87, 88, - 89, 90, 91, 573, 92, 93, 94, 0, 96, 97, - 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 575, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 576, 130, 131, 132, 0, 133, 134, - 135, 136, 137, 138, 139, 577, 141, 142, 143, 144, - 578, 145, 146, 147, 148, 149, 150, 151, 152, 878, - 154, 155, 156, 157, 879, 159, 0, 0, 160, 161, - 162, 163, 164, 165, 880, 167, 168, 580, 581, 170, - 0, 171, 172, 173, 582, 175, 176, 177, 178, 179, - 583, 181, 182, 584, 184, 185, 585, 0, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 586, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 587, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 588, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 291, 292, 589, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 590, 311, 591, 313, 314, - 315, 316, 881, 318, 319, 320, 882, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 883, 339, 340, 592, 342, 884, 593, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 594, - 355, 356, 357, 358, 359, 360, 361, 595, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 885, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 0, 389, 390, 391, 597, 393, - 394, 598, 396, 397, 398, 399, 400, 401, 402, 403, - 886, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 599, 428, 429, 430, 431, 432, 433, - 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, - 463, 1155, 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 864, 0, 0, 0, - 0, 865, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 866, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 867, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 868, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 17, 0, 0, 0, 869, - 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 769, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 44, 45, 46, 567, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, + 81, 82, 83, 84, 1165, 85, 572, 87, 88, 89, + 90, 91, 573, 92, 93, 94, 0, 96, 97, 98, + 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 576, 130, 131, 132, 0, 133, 134, 135, + 136, 137, 138, 139, 577, 141, 142, 143, 144, 578, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 579, 159, 0, 0, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 580, 581, 170, 0, + 171, 172, 173, 1166, 175, 176, 177, 178, 179, 583, + 1167, 182, 584, 184, 185, 585, 0, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 586, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 587, 210, 211, 212, 213, 214, 215, 216, 217, 1168, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 1169, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 588, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 589, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 1170, 303, 304, 305, 306, + 307, 308, 309, 310, 590, 311, 591, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 592, 342, 343, 593, 345, + 346, 347, 348, 349, 350, 351, 352, 1171, 594, 355, + 356, 357, 358, 359, 360, 361, 595, 363, 364, 365, + 366, 367, 368, 369, 1172, 371, 372, 373, 596, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 0, 389, 390, 391, 597, 393, 394, + 598, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 1173, 424, + 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 1174, 456, 457, 458, 459, 1163, 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1164, 0, 0, 1175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 872, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 873, 0, 0, 0, 0, 0, - 0, 0, 874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 684, 0, 0, - 0, 0, 0, 0, 875, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 876, 877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, - 1156, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, - 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, - 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, - 573, 92, 93, 94, 0, 96, 97, 98, 99, 100, - 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 576, 130, 131, 132, 0, 133, 134, 135, 136, 137, - 138, 139, 577, 141, 142, 143, 144, 578, 145, 146, - 147, 148, 149, 150, 151, 152, 878, 154, 155, 156, - 157, 879, 159, 0, 0, 160, 161, 162, 163, 164, - 165, 880, 167, 168, 580, 581, 170, 0, 171, 172, - 173, 582, 175, 176, 177, 178, 179, 583, 181, 182, - 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 588, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 590, 311, 591, 313, 314, 315, 316, 881, - 318, 319, 320, 1157, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 883, 339, 340, 592, 342, 884, 593, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 594, 355, 356, 357, - 358, 359, 360, 361, 595, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 885, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 1857, 389, 390, 391, 597, 393, 394, 598, 396, - 397, 398, 399, 400, 401, 402, 403, 886, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, - 457, 458, 459, 0, 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -7807,289 +7502,353 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, + 46, 567, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 0, 568, 569, 74, + 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, + 1165, 85, 572, 87, 88, 89, 90, 91, 573, 92, + 93, 94, 0, 96, 97, 98, 99, 100, 101, 0, + 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 576, 130, + 131, 132, 0, 133, 134, 135, 136, 137, 138, 139, + 577, 141, 142, 143, 144, 578, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 579, + 159, 0, 0, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 580, 581, 170, 0, 171, 172, 173, 1166, + 175, 176, 177, 178, 179, 583, 1167, 182, 584, 184, + 185, 585, 0, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 586, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 587, 210, 211, 212, + 213, 214, 215, 216, 217, 1168, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 1169, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 588, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 589, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 1170, 303, 304, 305, 306, 307, 308, 309, 310, + 590, 311, 591, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 592, 342, 343, 593, 345, 346, 347, 348, 349, + 350, 351, 352, 1171, 594, 355, 356, 357, 358, 359, + 360, 361, 595, 363, 364, 365, 366, 367, 368, 369, + 1172, 371, 372, 373, 596, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 0, + 389, 390, 391, 597, 393, 394, 598, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 599, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 1174, 456, 457, 458, + 459, 0, 460, 602, 462, 463, 862, 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, - 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, - 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, - 573, 92, 93, 94, 0, 96, 97, 98, 99, 100, - 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 576, 130, 131, 132, 0, 133, 134, 135, 136, 137, - 138, 139, 577, 141, 142, 143, 144, 578, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 580, 581, 170, 0, 171, 172, - 173, 582, 175, 176, 177, 178, 179, 583, 181, 182, - 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 588, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 590, 311, 591, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 592, 342, 343, 593, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 594, 355, 356, 357, - 358, 359, 360, 361, 595, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 596, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 4926, 389, 390, 391, 597, 393, 394, 598, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, - 457, 458, 459, 0, 460, 602, 462, 463, 0, 0, + 0, 0, 0, 1175, 0, 0, 0, 0, 0, 0, + 0, 864, 0, 0, 0, 0, 865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 866, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 867, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 868, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, + 17, 0, 0, 0, 869, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 769, 0, 0, 0, 0, + 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 872, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 873, + 0, 0, 0, 0, 0, 0, 0, 874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 684, 0, 0, 0, 0, 0, 0, 875, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 876, + 877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 44, 45, 46, 567, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 0, 568, 569, 74, 75, 76, 77, + 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, + 87, 88, 89, 90, 91, 573, 92, 93, 94, 0, + 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, + 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 576, 130, 131, 132, 0, + 133, 134, 135, 136, 137, 138, 139, 577, 141, 142, + 143, 144, 578, 145, 146, 147, 148, 149, 150, 151, + 152, 878, 154, 155, 156, 157, 879, 159, 0, 0, + 160, 161, 162, 163, 164, 165, 880, 167, 168, 580, + 581, 170, 0, 171, 172, 173, 582, 175, 176, 177, + 178, 179, 583, 181, 182, 584, 184, 185, 585, 0, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 586, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 587, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 588, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 589, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 590, 311, 591, + 313, 314, 315, 316, 881, 318, 319, 320, 882, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 883, 339, 340, 592, 342, + 884, 593, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 594, 355, 356, 357, 358, 359, 360, 361, 595, + 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 885, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 0, 389, 390, 391, + 597, 393, 394, 598, 396, 397, 398, 399, 400, 401, + 402, 403, 886, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 599, 428, 429, 430, 431, + 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, + 602, 462, 463, 1155, 863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 864, 0, + 0, 0, 0, 865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 866, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 867, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 868, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 17, 0, 0, + 0, 869, 0, 0, 0, 0, 870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 769, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, - 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, - 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, - 573, 92, 93, 94, 0, 96, 97, 98, 99, 100, - 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 576, 130, 131, 132, 0, 133, 134, 135, 136, 137, - 138, 139, 577, 141, 142, 143, 144, 578, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 580, 581, 170, 0, 171, 172, - 173, 582, 175, 176, 177, 178, 179, 583, 181, 182, - 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 588, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 590, 311, 591, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 592, 342, 343, 593, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 594, 355, 356, 357, - 358, 359, 360, 361, 595, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 596, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 0, 389, 390, 391, 597, 393, 394, 598, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, - 457, 458, 459, 0, 460, 602, 462, 463, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 4, 0, 5, 0, 6, 0, 0, 0, 0, 0, - 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8, 0, 0, 9, 0, 10, 11, 0, 0, - 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, - 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 14, 0, 0, 0, 0, 0, 15, + 0, 0, 0, 0, 0, 0, 0, 0, 872, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, - 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 21, 0, 22, 0, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 873, 0, 0, 0, + 0, 0, 0, 0, 874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, + 0, 0, 0, 0, 0, 0, 875, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 876, 877, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 44, 45, 46, 567, 47, 48, 49, 50, + 51, 52, 1156, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, + 81, 82, 83, 84, 571, 85, 572, 87, 88, 89, + 90, 91, 573, 92, 93, 94, 0, 96, 97, 98, + 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 576, 130, 131, 132, 0, 133, 134, 135, + 136, 137, 138, 139, 577, 141, 142, 143, 144, 578, + 145, 146, 147, 148, 149, 150, 151, 152, 878, 154, + 155, 156, 157, 879, 159, 0, 0, 160, 161, 162, + 163, 164, 165, 880, 167, 168, 580, 581, 170, 0, + 171, 172, 173, 582, 175, 176, 177, 178, 179, 583, + 181, 182, 584, 184, 185, 585, 0, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 586, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 587, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 588, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 589, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 590, 311, 591, 313, 314, 315, + 316, 881, 318, 319, 320, 1157, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 883, 339, 340, 592, 342, 884, 593, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 594, 355, + 356, 357, 358, 359, 360, 361, 595, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 885, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 1857, 389, 390, 391, 597, 393, 394, + 598, 396, 397, 398, 399, 400, 401, 402, 403, 886, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 17, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 25, 26, 0, 0, 0, 0, 0, 0, - 0, 0, 27, 28, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 29, 30, 31, 32, 0, 33, - 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, - 39, 0, 40, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 41, 42, 0, - 0, 0, 0, 0, 0, 43, 44, 45, 46, 0, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 0, 85, - 86, 87, 88, 89, 90, 91, 0, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 0, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 0, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 0, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 0, 170, 0, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 0, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 0, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 0, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 0, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 0, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 0, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 0, - 460, 461, 462, 463, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, 4, 0, 5, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, - 9, 0, 10, 11, 0, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, - 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 17, 18, 0, - 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 21, 0, 22, - 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 26, - 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 29, 30, 31, 32, 0, 33, 0, 0, 0, 0, - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 35, 0, 0, 0, 36, 37, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 38, 0, 39, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 41, 42, 0, 0, 0, 0, 0, - 0, 43, 44, 45, 46, 0, 47, 48, 49, 50, + 0, 0, 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 0, 85, 86, 87, 88, 89, - 90, 91, 0, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 0, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 0, 115, 116, + 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, + 81, 82, 83, 84, 571, 85, 572, 87, 88, 89, + 90, 91, 573, 92, 93, 94, 0, 96, 97, 98, + 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 0, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 0, + 127, 128, 576, 130, 131, 132, 0, 133, 134, 135, + 136, 137, 138, 139, 577, 141, 142, 143, 144, 578, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 0, 0, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 0, 170, 0, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 0, 187, 188, 189, + 155, 156, 157, 579, 159, 0, 0, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 580, 581, 170, 0, + 171, 172, 173, 582, 175, 176, 177, 178, 179, 583, + 181, 182, 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 0, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 586, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 587, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 0, 293, 294, 295, 296, + 279, 588, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 0, 311, 312, 313, 314, 315, + 307, 308, 309, 310, 590, 311, 591, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 336, 337, 338, 339, 340, 592, 342, 343, 593, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 594, 355, + 356, 357, 358, 359, 360, 361, 595, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 596, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 0, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 386, 387, 388, 4926, 389, 390, 391, 597, 393, 394, + 598, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 17, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 44, 45, 46, 567, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, + 81, 82, 83, 84, 571, 85, 572, 87, 88, 89, + 90, 91, 573, 92, 93, 94, 0, 96, 97, 98, + 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 576, 130, 131, 132, 0, 133, 134, 135, + 136, 137, 138, 139, 577, 141, 142, 143, 144, 578, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 579, 159, 0, 0, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 580, 581, 170, 0, + 171, 172, 173, 582, 175, 176, 177, 178, 179, 583, + 181, 182, 584, 184, 185, 585, 0, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 586, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 587, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 588, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 589, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 590, 311, 591, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 592, 342, 343, 593, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 594, 355, + 356, 357, 358, 359, 360, 361, 595, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 596, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 0, 389, 390, 391, 597, 393, 394, + 598, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 0, 460, 461, 462, 463, + 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 5, 0, 6, 0, 0, 0, + 3, 0, 4, 0, 5, 0, 6, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 9, 0, 10, 11, + 0, 0, 0, 8, 0, 0, 9, 0, 10, 11, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 22, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 26, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 29, 30, 0, 32, + 0, 0, 0, 0, 0, 0, 29, 30, 31, 32, 0, 33, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8097,11 +7856,11 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 39, 0, 40, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 0, 0, 0, 43, 44, 45, 46, 0, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 0, 0, 73, 74, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 0, 85, 86, 87, 88, 89, 90, 91, 0, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 0, @@ -8142,87 +7901,167 @@ 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 1949, 460, 461, 462, 463, 0, 0, 0, 0, + 459, 0, 460, 461, 462, 463, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, + 5, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, + 0, 0, 9, 0, 10, 11, 0, 0, 0, 0, + 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 14, 0, 0, 0, 0, 0, 15, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 17, + 18, 0, 0, 0, 0, 0, 0, 0, 19, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, + 0, 22, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 26, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 29, 30, 31, 32, 0, 33, 0, 0, + 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 35, 0, 0, 0, 36, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1623, 1624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 38, 0, 39, 0, + 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, + 0, 0, 0, 43, 44, 45, 46, 0, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 0, 85, 86, 87, + 88, 89, 90, 91, 0, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 0, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 0, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 0, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 0, 0, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 0, + 170, 0, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 0, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 0, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 0, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 0, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 0, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 0, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, 459, 0, 460, 461, + 462, 463, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, 5, 0, 6, 0, + 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, + 10, 11, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, + 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 21, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 25, 26, 0, 0, + 0, 0, 0, 0, 0, 0, 27, 28, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 29, 30, + 0, 32, 0, 33, 0, 0, 0, 0, 34, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, + 0, 0, 36, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 38, 0, 39, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 42, 0, 0, 0, 0, 0, 0, 43, + 44, 45, 46, 0, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 0, 0, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 0, 85, 86, 87, 88, 89, 90, 91, + 0, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 0, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 0, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 0, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 0, 0, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 0, 170, 0, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 0, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 0, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 0, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 0, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 0, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, 459, 1949, 460, 461, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 44, 45, 46, 567, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, - 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, - 82, 83, 84, 571, 85, 572, 87, 88, 89, 90, - 91, 573, 92, 93, 94, 0, 96, 97, 98, 99, - 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 576, 130, 131, 132, 0, 133, 134, 135, 136, - 137, 138, 139, 577, 141, 142, 143, 144, 578, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 579, 159, 0, 0, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 580, 581, 170, 0, 171, - 172, 173, 582, 175, 176, 177, 178, 179, 583, 181, - 182, 584, 184, 185, 585, 0, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 586, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 587, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 588, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 589, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 590, 311, 591, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 592, 342, 343, 593, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 594, 355, 356, - 357, 358, 359, 360, 361, 595, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 596, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 0, 389, 390, 391, 597, 393, 394, 598, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, - 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, - 456, 457, 458, 459, 4568, 460, 602, 462, 463, 0, + 0, 0, 0, 0, 0, 0, 0, 1623, 1624, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 732, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 16, 17, 0, - 0, 0, 3372, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3373, 0, 0, - 0, 0, 0, 0, 4569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8231,14 +8070,11 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -2625, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 733, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, @@ -8266,7 +8102,7 @@ 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 588, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 589, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 4570, 304, 305, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 590, 311, 591, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, @@ -8282,18 +8118,17 @@ 424, 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 601, 456, 457, 458, 459, 4568, 460, 602, 462, + 454, 601, 456, 457, 458, 459, 4569, 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4571, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, - 17, 0, 0, 0, 3372, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3373, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 3373, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3374, + 0, 0, 0, 0, 0, 0, 4570, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8302,13 +8137,14 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -2626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 733, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, @@ -8336,7 +8172,7 @@ 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 588, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 589, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 4570, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 4571, 304, 305, 306, 307, 308, 309, 310, 590, 311, 591, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, @@ -8345,517 +8181,455 @@ 353, 594, 355, 356, 357, 358, 359, 360, 361, 595, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 596, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 4630, 389, 390, 391, + 383, 384, 385, 386, 387, 388, 0, 389, 390, 391, 597, 393, 394, 598, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, + 452, 453, 454, 601, 456, 457, 458, 459, 4569, 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 17, 0, 0, 0, 4571, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 16, 17, 0, 0, 0, 3373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 684, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, - 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, - 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, - 573, 92, 93, 94, 0, 96, 97, 98, 99, 100, - 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 576, 130, 131, 132, 0, 133, 134, 135, 136, 137, - 138, 139, 577, 141, 142, 143, 144, 578, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 580, 581, 170, 0, 171, 172, - 173, 582, 175, 176, 177, 178, 179, 583, 181, 182, - 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 588, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 590, 311, 591, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 592, 342, 343, 593, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 594, 355, 356, 357, - 358, 359, 360, 361, 595, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 596, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 0, 389, 390, 391, 597, 393, 394, 598, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, - 457, 458, 459, 1810, 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 16, 17, 0, 0, 0, + 0, 0, 733, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, + 567, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, + 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, + 85, 572, 87, 88, 89, 90, 91, 573, 92, 93, + 94, 0, 96, 97, 98, 99, 100, 101, 0, 102, + 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 576, 130, 131, + 132, 0, 133, 134, 135, 136, 137, 138, 139, 577, + 141, 142, 143, 144, 578, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 579, 159, + 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 580, 581, 170, 0, 171, 172, 173, 582, 175, + 176, 177, 178, 179, 583, 181, 182, 584, 184, 185, + 585, 0, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 586, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 587, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 588, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 589, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 4571, 304, 305, 306, 307, 308, 309, 310, 590, + 311, 591, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 592, 342, 343, 593, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 594, 355, 356, 357, 358, 359, 360, + 361, 595, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 596, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 4631, 389, + 390, 391, 597, 393, 394, 598, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 599, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, + 0, 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 17, 0, 0, + 0, 4572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 44, 45, 46, 567, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, - 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, - 82, 83, 84, 571, 85, 572, 87, 88, 89, 90, - 91, 573, 92, 93, 94, 0, 96, 97, 98, 99, - 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 576, 130, 131, 132, 0, 133, 134, 135, 136, - 137, 138, 139, 577, 141, 142, 143, 144, 578, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 579, 159, 0, 0, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 580, 581, 170, 0, 171, - 172, 173, 582, 175, 176, 177, 178, 179, 583, 181, - 182, 584, 184, 185, 585, 0, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 586, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 587, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 588, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 589, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 590, 311, 591, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 592, 342, 343, 593, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 594, 355, 356, - 357, 358, 359, 360, 361, 595, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 596, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 0, 389, 390, 391, 597, 393, 394, 598, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, - 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, - 456, 457, 458, 459, 0, 460, 602, 462, 463, 1398, - 1399, 0, 0, 1813, 0, 1400, 1401, 0, 0, 0, - 0, 0, 0, 0, 0, 1402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1403, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1405, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1407, 1408, 0, 1409, - 0, 0, 0, 0, 0, 0, 0, 1410, 1411, 1412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 44, 45, 46, 567, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, + 81, 82, 83, 84, 571, 85, 572, 87, 88, 89, + 90, 91, 573, 92, 93, 94, 0, 96, 97, 98, + 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 576, 130, 131, 132, 0, 133, 134, 135, + 136, 137, 138, 139, 577, 141, 142, 143, 144, 578, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 579, 159, 0, 0, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 580, 581, 170, 0, + 171, 172, 173, 582, 175, 176, 177, 178, 179, 583, + 181, 182, 584, 184, 185, 585, 0, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 586, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 587, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 588, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 589, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 590, 311, 591, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 592, 342, 343, 593, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 594, 355, + 356, 357, 358, 359, 360, 361, 595, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 596, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 0, 389, 390, 391, 597, 393, 394, + 598, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 601, 456, 457, 458, 459, 1810, 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1415, 0, 0, 0, - 0, 0, 1416, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1417, 1418, 1419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1420, 1421, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, - 46, 0, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 0, 0, 569, 1422, - 75, 1423, 1424, 78, 79, 570, 81, 82, 83, 84, - 571, 85, 572, 87, 88, 89, 0, 1425, 573, 92, - 93, 94, 0, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 1426, 126, 1427, 128, 576, 130, - 131, 132, 0, 133, 134, 135, 136, 137, 138, 139, - 577, 141, 142, 143, 144, 0, 145, 146, 147, 1428, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 579, - 159, 0, 0, 160, 161, 162, 163, 164, 165, 166, - 167, 1429, 580, 581, 170, 0, 171, 172, 173, 0, - 175, 176, 1430, 1431, 179, 583, 181, 182, 584, 184, - 185, 585, 0, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 586, 201, 202, 203, - 204, 205, 206, 207, 1432, 209, 587, 210, 211, 212, - 213, 214, 215, 1433, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 0, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 1434, - 1435, 1436, 265, 266, 267, 268, 269, 1437, 1438, 272, - 273, 274, 275, 276, 277, 278, 279, 588, 280, 281, - 282, 283, 0, 1439, 1440, 287, 288, 289, 290, 291, - 292, 589, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 1441, 1442, 310, - 590, 311, 591, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 0, 1443, 327, 328, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 592, 342, 343, 593, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 594, 355, 356, 357, 1444, 359, - 360, 361, 595, 363, 364, 365, 366, 367, 368, 0, - 370, 371, 372, 373, 596, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 0, - 389, 390, 391, 597, 393, 394, 598, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 1445, 417, 418, - 1446, 420, 421, 1447, 423, 424, 425, 426, 599, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, - 439, 440, 441, 442, 443, 0, 1448, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 1449, 456, 457, 458, - 459, 0, 460, 602, 462, 1450, 1398, 4224, 0, 0, - 0, 0, 1400, 1401, 0, 0, 0, 0, 0, 0, - 0, 0, 1402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1403, 0, + 0, 0, 0, 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1405, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, - 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1406, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1407, 1408, 0, 1409, 0, 0, 0, - 0, 0, 0, 0, 1410, 1411, 1412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1415, 0, 0, 0, 0, 0, 1416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1417, 1418, 1419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4225, - 1421, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 44, 45, 46, 0, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 0, 0, 569, 1422, 75, 1423, 1424, - 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, - 87, 88, 89, 0, 1425, 573, 92, 93, 94, 0, - 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, - 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 1426, 126, 1427, 128, 576, 130, 131, 132, 0, - 133, 134, 135, 136, 137, 138, 139, 577, 141, 142, - 143, 144, 0, 145, 146, 147, 1428, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 579, 159, 0, 0, - 160, 161, 162, 163, 164, 165, 166, 167, 1429, 580, - 581, 170, 0, 171, 172, 173, 0, 175, 176, 1430, - 1431, 179, 583, 181, 182, 584, 184, 185, 585, 0, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 586, 201, 202, 203, 204, 205, 206, - 207, 1432, 209, 587, 210, 211, 212, 213, 214, 215, - 1433, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 0, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 1434, 1435, 1436, 265, - 266, 267, 268, 269, 1437, 1438, 272, 273, 274, 275, - 276, 277, 278, 279, 588, 280, 281, 282, 283, 0, - 1439, 1440, 287, 288, 289, 290, 291, 292, 589, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 1441, 1442, 310, 590, 311, 591, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 0, 4226, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 592, 342, - 343, 593, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 594, 355, 356, 357, 4227, 359, 360, 361, 595, - 363, 364, 365, 366, 367, 368, 0, 370, 371, 372, - 373, 596, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 0, 389, 390, 391, - 597, 393, 394, 598, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 1445, 417, 418, 1446, 420, 421, - 1447, 423, 424, 425, 426, 599, 428, 429, 430, 431, - 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, - 442, 443, 0, 4228, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 1449, 456, 457, 458, 459, 0, 460, - 602, 462, 1450, 1398, 4224, 0, 0, 0, 0, 1400, - 1401, 0, 0, 0, 0, 0, 0, 0, 0, 1402, + 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1403, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1404, 0, 0, + 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1406, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 44, 45, 46, 567, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, + 570, 81, 82, 83, 84, 571, 85, 572, 87, 88, + 89, 90, 91, 573, 92, 93, 94, 0, 96, 97, + 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 575, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 576, 130, 131, 132, 0, 133, 134, + 135, 136, 137, 138, 139, 577, 141, 142, 143, 144, + 578, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 579, 159, 0, 0, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 580, 581, 170, + 0, 171, 172, 173, 582, 175, 176, 177, 178, 179, + 583, 181, 182, 584, 184, 185, 585, 0, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 586, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 587, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 588, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 589, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 590, 311, 591, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 592, 342, 343, 593, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 594, + 355, 356, 357, 358, 359, 360, 361, 595, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 596, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 0, 389, 390, 391, 597, 393, + 394, 598, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 599, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, + 463, 1398, 1399, 0, 0, 1813, 0, 1400, 1401, 0, + 0, 0, 0, 0, 0, 0, 0, 1402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1407, 1408, 0, 1409, 0, 0, 0, 0, 0, 0, - 0, 1410, 1411, 1412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1413, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1403, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1414, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1407, 1408, + 0, 1409, 0, 0, 0, 0, 0, 0, 0, 1410, + 1411, 1412, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1415, 0, 0, 0, 0, 0, 1416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1417, 1418, 1419, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4225, 1421, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1415, 0, + 0, 0, 0, 0, 1416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 45, 46, 0, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 0, 0, 569, 1422, 75, 1423, 1424, 78, 79, 570, - 81, 82, 83, 84, 571, 85, 572, 87, 88, 89, - 0, 1425, 573, 92, 93, 94, 0, 96, 97, 98, - 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 1426, 126, - 1427, 128, 576, 130, 131, 132, 0, 133, 134, 135, - 136, 137, 138, 139, 577, 141, 142, 143, 144, 0, - 145, 146, 147, 1428, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 579, 159, 0, 0, 160, 161, 162, - 163, 164, 165, 166, 167, 1429, 580, 581, 170, 0, - 171, 172, 173, 0, 175, 176, 1430, 1431, 179, 583, - 181, 182, 584, 184, 185, 585, 0, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 586, 201, 202, 203, 204, 205, 206, 207, 1432, 209, - 587, 210, 211, 212, 213, 214, 215, 1433, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 0, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 1434, 1435, 1436, 265, 266, 267, 268, - 269, 1437, 1438, 272, 273, 274, 275, 276, 277, 278, - 279, 588, 280, 281, 282, 283, 0, 1439, 1440, 287, - 288, 289, 290, 291, 292, 589, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 1441, 1442, 310, 590, 311, 591, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 0, - 4226, 327, 328, 329, 330, 331, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 592, 342, 343, 593, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 594, 355, - 356, 357, 5648, 359, 360, 361, 595, 363, 364, 365, - 366, 367, 368, 0, 370, 371, 372, 373, 596, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 0, 389, 390, 391, 597, 393, 394, - 598, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 1445, 417, 418, 1446, 420, 421, 1447, 423, 424, - 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 600, 438, 439, 440, 441, 442, 443, 1826, - 4228, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 1449, 456, 457, 458, 459, 0, 460, 602, 462, 1450, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1417, + 1418, 1419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1420, 1421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1827, 0, 0, 0, 0, 0, 0, + 44, 45, 46, 0, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 0, 0, + 569, 1422, 75, 1423, 1424, 78, 79, 570, 81, 82, + 83, 84, 571, 85, 572, 87, 88, 89, 0, 1425, + 573, 92, 93, 94, 0, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 1426, 126, 1427, 128, + 576, 130, 131, 132, 0, 133, 134, 135, 136, 137, + 138, 139, 577, 141, 142, 143, 144, 0, 145, 146, + 147, 1428, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, + 165, 166, 167, 1429, 580, 581, 170, 0, 171, 172, + 173, 0, 175, 176, 1430, 1431, 179, 583, 181, 182, + 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, + 202, 203, 204, 205, 206, 207, 1432, 209, 587, 210, + 211, 212, 213, 214, 215, 1433, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 0, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 1434, 1435, 1436, 265, 266, 267, 268, 269, 1437, + 1438, 272, 273, 274, 275, 276, 277, 278, 279, 588, + 280, 281, 282, 283, 0, 1439, 1440, 287, 288, 289, + 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 1441, + 1442, 310, 590, 311, 591, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 0, 1443, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 592, 342, 343, 593, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 594, 355, 356, 357, + 1444, 359, 360, 361, 595, 363, 364, 365, 366, 367, + 368, 0, 370, 371, 372, 373, 596, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 0, 389, 390, 391, 597, 393, 394, 598, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 1445, + 417, 418, 1446, 420, 421, 1447, 423, 424, 425, 426, + 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 600, 438, 439, 440, 441, 442, 443, 0, 1448, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 1449, 456, + 457, 458, 459, 0, 460, 602, 462, 1450, 1398, 4226, + 0, 0, 0, 0, 1400, 1401, 0, 0, 0, 0, + 0, 0, 0, 0, 1402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1403, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 769, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1407, 1408, 0, 1409, 0, + 0, 0, 0, 0, 0, 0, 1410, 1411, 1412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1415, 0, 0, 0, 0, + 0, 1416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 684, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1417, 1418, 1419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4227, 1421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, - 567, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 0, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, - 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, - 85, 572, 87, 88, 89, 90, 91, 573, 92, 93, + 66, 67, 68, 69, 70, 0, 0, 569, 1422, 75, + 1423, 1424, 78, 79, 570, 81, 82, 83, 84, 571, + 85, 572, 87, 88, 89, 0, 1425, 573, 92, 93, 94, 0, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 576, 130, 131, + 122, 123, 124, 1426, 126, 1427, 128, 576, 130, 131, 132, 0, 133, 134, 135, 136, 137, 138, 139, 577, - 141, 142, 143, 144, 578, 145, 146, 147, 148, 149, + 141, 142, 143, 144, 0, 145, 146, 147, 1428, 149, 150, 151, 152, 153, 154, 155, 156, 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 580, 581, 170, 0, 171, 172, 173, 582, 175, - 176, 177, 178, 179, 583, 181, 182, 584, 184, 185, + 1429, 580, 581, 170, 0, 171, 172, 173, 0, 175, + 176, 1430, 1431, 179, 583, 181, 182, 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 587, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 205, 206, 207, 1432, 209, 587, 210, 211, 212, 213, + 214, 215, 1433, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 244, 245, 246, 247, 248, 249, 0, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 1434, 1435, + 1436, 265, 266, 267, 268, 269, 1437, 1438, 272, 273, 274, 275, 276, 277, 278, 279, 588, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 283, 0, 1439, 1440, 287, 288, 289, 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 590, + 302, 303, 304, 305, 306, 307, 1441, 1442, 310, 590, 311, 591, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 321, 322, 323, 324, 0, 4228, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 592, 342, 343, 593, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 594, 355, 356, 357, 358, 359, 360, - 361, 595, 363, 364, 365, 366, 367, 368, 369, 370, + 351, 352, 353, 594, 355, 356, 357, 4229, 359, 360, + 361, 595, 363, 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, 596, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 0, 389, 390, 391, 597, 393, 394, 598, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 599, 428, 429, + 410, 411, 412, 413, 414, 415, 1445, 417, 418, 1446, + 420, 421, 1447, 423, 424, 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, - 1810, 460, 602, 462, 463, 0, 0, 0, 0, 0, + 440, 441, 442, 443, 0, 4230, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 1449, 456, 457, 458, 459, + 0, 460, 602, 462, 1450, 1398, 4226, 0, 0, 0, + 0, 1400, 1401, 0, 0, 0, 0, 0, 0, 0, + 0, 1402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1403, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1811, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1407, 1408, 0, 1409, 0, 0, 0, 0, + 0, 0, 0, 1410, 1411, 1412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 769, 0, + 0, 0, 0, 0, 0, 0, 0, 1414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1415, 0, 0, 0, 0, 0, 1416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1417, 1418, 1419, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4227, 1421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 44, 45, 46, 0, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 0, 0, 569, 1422, 75, 1423, 1424, 78, + 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, + 88, 89, 0, 1425, 573, 92, 93, 94, 0, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 1426, 126, 1427, 128, 576, 130, 131, 132, 0, 133, + 134, 135, 136, 137, 138, 139, 577, 141, 142, 143, + 144, 0, 145, 146, 147, 1428, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 579, 159, 0, 0, 160, + 161, 162, 163, 164, 165, 166, 167, 1429, 580, 581, + 170, 0, 171, 172, 173, 0, 175, 176, 1430, 1431, + 179, 583, 181, 182, 584, 184, 185, 585, 0, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 586, 201, 202, 203, 204, 205, 206, 207, + 1432, 209, 587, 210, 211, 212, 213, 214, 215, 1433, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 0, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 1434, 1435, 1436, 265, 266, + 267, 268, 269, 1437, 1438, 272, 273, 274, 275, 276, + 277, 278, 279, 588, 280, 281, 282, 283, 0, 1439, + 1440, 287, 288, 289, 290, 291, 292, 589, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 1441, 1442, 310, 590, 311, 591, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 0, 4228, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 592, 342, 343, + 593, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 594, 355, 356, 357, 5647, 359, 360, 361, 595, 363, + 364, 365, 366, 367, 368, 0, 370, 371, 372, 373, + 596, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 0, 389, 390, 391, 597, + 393, 394, 598, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 1445, 417, 418, 1446, 420, 421, 1447, + 423, 424, 425, 426, 599, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, + 443, 1826, 4230, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 1449, 456, 457, 458, 459, 0, 460, 602, + 462, 1450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1827, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 684, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, - 46, 567, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 0, 568, 569, 74, - 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, - 571, 85, 572, 87, 88, 89, 90, 91, 573, 92, - 93, 94, 0, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 576, 130, - 131, 132, 0, 133, 134, 135, 136, 137, 138, 139, - 577, 141, 142, 143, 144, 578, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 579, - 159, 0, 0, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 580, 581, 170, 0, 171, 172, 173, 582, - 175, 176, 177, 178, 179, 583, 181, 182, 584, 184, - 185, 585, 0, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 586, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 587, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 588, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, - 292, 589, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 590, 311, 591, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 592, 342, 343, 593, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 594, 355, 356, 357, 358, 359, - 360, 361, 595, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 596, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 1810, - 389, 390, 391, 597, 393, 394, 598, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 599, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, - 459, 0, 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8863,66 +8637,67 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, + 45, 46, 567, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 0, 568, 569, + 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, + 84, 571, 85, 572, 87, 88, 89, 90, 91, 573, + 92, 93, 94, 0, 96, 97, 98, 99, 100, 101, + 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 576, + 130, 131, 132, 0, 133, 134, 135, 136, 137, 138, + 139, 577, 141, 142, 143, 144, 578, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 579, 159, 0, 0, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 580, 581, 170, 0, 171, 172, 173, + 582, 175, 176, 177, 178, 179, 583, 181, 182, 584, + 184, 185, 585, 0, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 586, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 587, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 588, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 589, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 590, 311, 591, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 592, 342, 343, 593, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 594, 355, 356, 357, 358, + 359, 360, 361, 595, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 596, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 0, 389, 390, 391, 597, 393, 394, 598, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 599, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, + 458, 459, 1810, 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, - 567, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, - 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, - 85, 572, 87, 88, 89, 90, 91, 573, 92, 93, - 94, 0, 96, 97, 98, 99, 100, 101, 0, 102, - 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 576, 130, 131, - 132, 0, 133, 134, 135, 136, 137, 138, 139, 577, - 141, 142, 143, 144, 578, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 579, 159, - 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 580, 581, 170, 0, 171, 172, 173, 582, 175, - 176, 177, 178, 179, 583, 181, 182, 584, 184, 185, - 585, 0, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 586, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 587, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 588, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 589, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 590, - 311, 591, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 592, 342, 343, 593, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 594, 355, 356, 357, 358, 359, 360, - 361, 595, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 596, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 1286, 389, - 390, 391, 597, 393, 394, 598, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 599, 428, 429, - 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, - 0, 460, 602, 462, 463, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1287, 1288, 0, 0, 0, 16, - 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8933,56 +8708,60 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 44, 45, 46, 567, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 0, 568, 569, 74, 75, 76, 77, - 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, - 87, 88, 89, 90, 91, 573, 92, 93, 94, 0, - 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, - 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 576, 130, 131, 132, 0, - 133, 134, 135, 136, 137, 138, 139, 577, 141, 142, - 143, 144, 578, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 579, 159, 0, 0, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 580, - 581, 170, 0, 171, 172, 173, 582, 175, 176, 177, - 178, 179, 583, 181, 182, 584, 184, 185, 585, 0, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 586, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 587, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 588, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 589, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 590, 311, 591, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 592, 342, - 343, 593, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 594, 355, 356, 357, 358, 359, 360, 361, 595, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 596, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 2601, 389, 390, 391, - 597, 393, 394, 598, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 599, 428, 429, 430, 431, - 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, - 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, - 602, 462, 463, 0, 0, 0, 0, 0, 0, 0, - 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, + 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, + 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, + 573, 92, 93, 94, 0, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 576, 130, 131, 132, 0, 133, 134, 135, 136, 137, + 138, 139, 577, 141, 142, 143, 144, 578, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 580, 581, 170, 0, 171, 172, + 173, 582, 175, 176, 177, 178, 179, 583, 181, 182, + 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 588, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 590, 311, 591, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 592, 342, 343, 593, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 594, 355, 356, 357, + 358, 359, 360, 361, 595, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 596, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 1810, 389, 390, 391, 597, 393, 394, 598, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, + 457, 458, 459, 0, 460, 602, 462, 463, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -8995,12 +8774,75 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 684, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, + 45, 46, 567, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 0, 568, 569, + 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, + 84, 571, 85, 572, 87, 88, 89, 90, 91, 573, + 92, 93, 94, 0, 96, 97, 98, 99, 100, 101, + 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 576, + 130, 131, 132, 0, 133, 134, 135, 136, 137, 138, + 139, 577, 141, 142, 143, 144, 578, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 579, 159, 0, 0, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 580, 581, 170, 0, 171, 172, 173, + 582, 175, 176, 177, 178, 179, 583, 181, 182, 584, + 184, 185, 585, 0, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 586, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 587, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 588, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 589, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 590, 311, 591, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 592, 342, 343, 593, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 594, 355, 356, 357, 358, + 359, 360, 361, 595, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 596, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 1286, 389, 390, 391, 597, 393, 394, 598, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 599, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, + 458, 459, 0, 460, 602, 462, 463, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1287, 1288, 0, 0, + 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1289, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, @@ -9037,7 +8879,7 @@ 351, 352, 353, 594, 355, 356, 357, 358, 359, 360, 361, 595, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 596, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 0, 389, + 381, 382, 383, 384, 385, 386, 387, 388, 2602, 389, 390, 391, 597, 393, 394, 598, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, @@ -9045,16 +8887,15 @@ 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, - 1346, 460, 602, 462, 463, 0, 0, 0, 0, 0, + 0, 460, 602, 462, 463, 0, 0, 0, 0, 0, + 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9066,64 +8907,60 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 684, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, + 45, 46, 567, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 0, 568, 569, + 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, + 84, 571, 85, 572, 87, 88, 89, 90, 91, 573, + 92, 93, 94, 0, 96, 97, 98, 99, 100, 101, + 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 576, + 130, 131, 132, 0, 133, 134, 135, 136, 137, 138, + 139, 577, 141, 142, 143, 144, 578, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 579, 159, 0, 0, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 580, 581, 170, 0, 171, 172, 173, + 582, 175, 176, 177, 178, 179, 583, 181, 182, 584, + 184, 185, 585, 0, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 586, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 587, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 588, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 589, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 590, 311, 591, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 592, 342, 343, 593, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 594, 355, 356, 357, 358, + 359, 360, 361, 595, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 596, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 0, 389, 390, 391, 597, 393, 394, 598, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 599, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, + 458, 459, 1346, 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, - 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, - 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, - 573, 92, 93, 94, 0, 96, 97, 98, 99, 100, - 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 576, 130, 131, 132, 0, 133, 134, 135, 136, 137, - 138, 139, 577, 141, 142, 143, 144, 578, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 580, 581, 170, 0, 171, 172, - 173, 582, 175, 176, 177, 178, 179, 583, 181, 182, - 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 588, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 590, 311, 591, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 592, 342, 343, 593, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 594, 355, 356, 357, - 358, 359, 360, 361, 595, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 596, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 0, 386, 387, - 388, 0, 389, 390, 391, 597, 393, 394, 598, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, - 457, 458, 459, 0, 460, 602, 462, 463, 811, 812, - 0, 0, 0, 0, 0, 0, 0, 0, 813, 0, - 0, 0, 0, 0, 0, 0, 0, 1718, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9135,66 +8972,67 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 44, 45, 46, 567, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, + 81, 82, 83, 84, 571, 85, 572, 87, 88, 89, + 90, 91, 573, 92, 93, 94, 0, 96, 97, 98, + 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 576, 130, 131, 132, 0, 133, 134, 135, + 136, 137, 138, 139, 577, 141, 142, 143, 144, 578, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 579, 159, 0, 0, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 580, 581, 170, 0, + 171, 172, 173, 582, 175, 176, 177, 178, 179, 583, + 181, 182, 584, 184, 185, 585, 0, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 586, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 587, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 588, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 589, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 590, 311, 591, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, + 336, 337, 338, 339, 340, 592, 342, 343, 593, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 594, 355, + 356, 357, 358, 359, 360, 361, 595, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 596, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 0, + 386, 387, 388, 0, 389, 390, 391, 597, 393, 394, + 598, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, + 811, 812, 0, 0, 0, 0, 0, 0, 0, 0, + 813, 0, 0, 0, 0, 0, 0, 0, 0, 1718, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 44, 45, 46, 0, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 0, 0, 569, 74, 75, 76, - 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, - 572, 87, 88, 89, 90, 91, 573, 92, 93, 94, - 0, 96, 97, 98, 99, 100, 101, 0, 102, 103, - 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 576, 130, 131, 132, - 0, 133, 134, 135, 136, 137, 138, 139, 577, 141, - 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 579, 159, 814, - 815, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 580, 581, 170, 0, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 583, 181, 182, 584, 184, 185, 585, - 0, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 586, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 587, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 588, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 589, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 590, 311, - 591, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 592, - 342, 343, 593, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 594, 355, 356, 357, 358, 359, 360, 361, - 595, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 596, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 0, 389, 390, - 391, 597, 393, 394, 598, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 599, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 816, 456, 457, 458, 459, 0, - 460, 602, 462, 463, 1346, 865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9207,63 +9045,62 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, + 46, 0, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 0, 0, 569, 74, + 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, + 571, 85, 572, 87, 88, 89, 90, 91, 573, 92, + 93, 94, 0, 96, 97, 98, 99, 100, 101, 0, + 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 576, 130, + 131, 132, 0, 133, 134, 135, 136, 137, 138, 139, + 577, 141, 142, 143, 144, 0, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 579, + 159, 814, 815, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 580, 581, 170, 0, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 583, 181, 182, 584, 184, + 185, 585, 0, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 586, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 587, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 588, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 589, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 590, 311, 591, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 592, 342, 343, 593, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 594, 355, 356, 357, 358, 359, + 360, 361, 595, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 596, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 0, + 389, 390, 391, 597, 393, 394, 598, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 599, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 816, 456, 457, 458, + 459, 0, 460, 602, 462, 463, 1346, 865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 44, 45, 46, 567, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 0, 568, 569, 74, 75, 76, 77, 78, - 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, - 88, 89, 90, 91, 573, 92, 93, 94, 0, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 576, 130, 131, 132, 0, 133, - 134, 135, 136, 137, 138, 139, 577, 141, 142, 143, - 144, 578, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 579, 159, 0, 0, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 580, 581, - 170, 0, 171, 172, 173, 582, 175, 176, 177, 178, - 179, 583, 181, 182, 584, 184, 185, 585, 0, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 586, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 587, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, - 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 588, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 589, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 590, 311, 591, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 335, 336, 337, 338, 339, 340, 592, 342, 343, - 593, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 594, 355, 356, 357, 358, 359, 360, 361, 595, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 596, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 0, 389, 390, 391, 597, - 393, 394, 598, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 599, 428, 429, 430, 431, 432, - 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 601, 456, 457, 458, 459, 1346, 460, 602, - 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, + 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 769, 0, 0, + 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9276,55 +9113,55 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 684, 0, 0, 0, 0, 0, + 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, - 567, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, - 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, - 85, 572, 87, 88, 89, 90, 91, 573, 92, 93, - 94, 0, 96, 97, 98, 99, 100, 101, 0, 102, - 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 576, 130, 131, - 132, 0, 133, 134, 135, 136, 137, 138, 139, 577, - 141, 142, 143, 144, 578, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 579, 159, - 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 580, 581, 170, 0, 171, 172, 173, 582, 175, - 176, 177, 178, 179, 583, 181, 182, 584, 184, 185, - 585, 0, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 586, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 587, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 588, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 589, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 590, - 311, 591, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 592, 342, 343, 593, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 594, 355, 356, 357, 358, 359, 360, - 361, 595, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 596, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 0, 389, - 390, 391, 597, 393, 394, 598, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 599, 428, 429, - 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, - 865, 460, 602, 462, 463, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 44, 45, 46, 567, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 0, 568, 569, 74, 75, 76, + 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, + 572, 87, 88, 89, 90, 91, 573, 92, 93, 94, + 0, 96, 97, 98, 99, 100, 101, 0, 102, 103, + 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 576, 130, 131, 132, + 0, 133, 134, 135, 136, 137, 138, 139, 577, 141, + 142, 143, 144, 578, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 579, 159, 0, + 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 580, 581, 170, 0, 171, 172, 173, 582, 175, 176, + 177, 178, 179, 583, 181, 182, 584, 184, 185, 585, + 0, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 586, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 587, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 588, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 589, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 590, 311, + 591, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 592, + 342, 343, 593, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 594, 355, 356, 357, 358, 359, 360, 361, + 595, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 596, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 0, 389, 390, + 391, 597, 393, 394, 598, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 599, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 601, 456, 457, 458, 459, 1346, + 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9393,157 +9230,91 @@ 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, - 458, 459, 813, 460, 602, 462, 463, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 458, 459, 865, 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 46, 0, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 0, 0, - 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, - 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, - 573, 92, 93, 94, 0, 96, 97, 98, 99, 100, - 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 576, 130, 131, 132, 0, 133, 134, 135, 136, 137, - 138, 139, 577, 141, 142, 143, 144, 0, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 580, 581, 170, 0, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 583, 181, 182, - 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 588, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 590, 311, 591, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 592, 342, 343, 593, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 594, 355, 356, 357, - 358, 359, 360, 361, 595, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 596, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 0, 389, 390, 391, 597, 393, 394, 598, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 816, 456, - 457, 458, 459, 0, 460, 602, 462, 463, 2315, 0, - 0, 0, 5010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2316, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4083, 0, 0, 0, 0, - 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4085, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 44, 45, 46, 567, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, + 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, + 82, 83, 84, 571, 85, 572, 87, 88, 89, 90, + 91, 573, 92, 93, 94, 0, 96, 97, 98, 99, + 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 576, 130, 131, 132, 0, 133, 134, 135, 136, + 137, 138, 139, 577, 141, 142, 143, 144, 578, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 579, 159, 0, 0, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 580, 581, 170, 0, 171, + 172, 173, 582, 175, 176, 177, 178, 179, 583, 181, + 182, 584, 184, 185, 585, 0, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 586, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 587, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 588, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 589, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 590, 311, 591, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 592, 342, 343, 593, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 594, 355, 356, + 357, 358, 359, 360, 361, 595, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 596, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 0, 389, 390, 391, 597, 393, 394, 598, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, + 456, 457, 458, 459, 813, 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 44, 45, 46, 567, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 0, 568, 569, 74, 75, 76, - 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, - 572, 87, 88, 89, 90, 91, 573, 92, 93, 94, - 0, 96, 97, 98, 99, 100, 101, 0, 102, 103, - 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 576, 130, 131, 132, - 0, 133, 134, 135, 136, 137, 138, 139, 577, 141, - 142, 143, 144, 578, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 579, 159, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 580, 581, 170, 0, 171, 172, 173, 582, 175, 176, - 177, 178, 179, 583, 181, 182, 584, 184, 185, 585, - 0, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 586, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 587, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 588, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 589, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 590, 311, - 591, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 592, - 342, 343, 593, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 594, 355, 356, 357, 358, 359, 360, 361, - 595, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 596, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 0, 389, 390, - 391, 597, 393, 394, 598, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 599, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, - 460, 602, 462, 463, 2315, 0, 0, 0, 5912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4083, 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9551,26 +9322,24 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 45, 46, 567, 47, 48, 49, 50, + 0, 0, 44, 45, 46, 0, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, + 0, 0, 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, 573, 92, 93, 94, 0, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 576, 130, 131, 132, 0, 133, 134, 135, - 136, 137, 138, 139, 577, 141, 142, 143, 144, 578, + 136, 137, 138, 139, 577, 141, 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, 580, 581, 170, 0, - 171, 172, 173, 582, 175, 176, 177, 178, 179, 583, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 583, 181, 182, 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, 202, 203, 204, 205, 206, 207, 208, 209, @@ -9599,19 +9368,19 @@ 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, - 2315, 0, 0, 0, 5990, 0, 0, 0, 0, 0, + 816, 456, 457, 458, 459, 0, 460, 602, 462, 463, + 2316, 0, 0, 0, 5010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2316, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4083, 0, 0, + 0, 0, 2317, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4085, 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4084, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4085, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9621,7 +9390,7 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4086, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, @@ -9668,17 +9437,19 @@ 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, - 459, 2967, 460, 602, 462, 463, 0, 0, 0, 0, + 459, 0, 460, 602, 462, 463, 2316, 0, 0, 0, + 5910, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4085, 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, - 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4087, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9687,29 +9458,435 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 44, 45, 46, 567, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 0, 568, 569, 74, 75, 76, 77, 78, + 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, + 88, 89, 90, 91, 573, 92, 93, 94, 0, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 576, 130, 131, 132, 0, 133, + 134, 135, 136, 137, 138, 139, 577, 141, 142, 143, + 144, 578, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 579, 159, 0, 0, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 580, 581, + 170, 0, 171, 172, 173, 582, 175, 176, 177, 178, + 179, 583, 181, 182, 584, 184, 185, 585, 0, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 586, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 587, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 588, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 589, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 590, 311, 591, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 592, 342, 343, + 593, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 594, 355, 356, 357, 358, 359, 360, 361, 595, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 596, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 0, 389, 390, 391, 597, + 393, 394, 598, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 599, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, + 462, 463, 2316, 0, 0, 0, 5987, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 44, 45, 46, 567, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 0, 568, 569, 74, 75, 76, 77, - 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, - 87, 88, 89, 90, 91, 573, 92, 93, 94, 0, - 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, - 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 576, 130, 131, 132, 0, - 133, 134, 135, 136, 137, 138, 139, 577, 141, 142, - 143, 144, 578, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 579, 159, 0, 0, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 580, - 581, 170, 0, 171, 172, 173, 582, 175, 176, 177, - 178, 179, 583, 181, 182, 584, 184, 185, 585, 0, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 586, 201, 202, 203, 204, 205, 206, + 0, 0, 0, 0, 2317, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4085, + 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4086, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4087, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 684, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4088, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, + 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, + 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, + 573, 92, 93, 94, 0, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 576, 130, 131, 132, 0, 133, 134, 135, 136, 137, + 138, 139, 577, 141, 142, 143, 144, 578, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 580, 581, 170, 0, 171, 172, + 173, 582, 175, 176, 177, 178, 179, 583, 181, 182, + 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 588, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 590, 311, 591, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 592, 342, 343, 593, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 594, 355, 356, 357, + 358, 359, 360, 361, 595, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 596, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 0, 389, 390, 391, 597, 393, 394, 598, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, + 457, 458, 459, 2968, 460, 602, 462, 463, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 769, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 684, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, + 567, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, + 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, + 85, 572, 87, 88, 89, 90, 91, 573, 92, 93, + 94, 0, 96, 97, 98, 99, 100, 101, 0, 102, + 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 576, 130, 131, + 132, 0, 133, 134, 135, 136, 137, 138, 139, 577, + 141, 142, 143, 144, 578, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 579, 159, + 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 580, 581, 170, 0, 171, 172, 173, 582, 175, + 176, 177, 178, 179, 583, 181, 182, 584, 184, 185, + 585, 0, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 586, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 587, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 588, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, + 589, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 590, + 311, 591, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 592, 342, 343, 593, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 594, 355, 356, 357, 358, 359, 360, + 361, 595, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 596, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 0, 389, + 390, 391, 597, 393, 394, 598, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 599, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, + 1803, 460, 602, 462, 463, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 17, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 44, 45, 46, 567, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 0, 568, 569, 74, 75, 76, 77, 78, + 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, + 88, 89, 90, 91, 573, 92, 93, 94, 0, 96, + 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 576, 130, 131, 132, 0, 133, + 134, 135, 136, 137, 138, 139, 577, 141, 142, 143, + 144, 578, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 579, 159, 0, 0, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 580, 581, + 170, 0, 171, 172, 173, 582, 175, 176, 177, 178, + 179, 583, 181, 182, 584, 184, 185, 585, 0, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 586, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 587, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 588, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 589, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 590, 311, 591, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, + 334, 335, 336, 337, 338, 339, 340, 592, 342, 343, + 593, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 594, 355, 356, 357, 358, 359, 360, 361, 595, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 596, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 0, 389, 390, 391, 597, + 393, 394, 598, 396, 397, 398, 399, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 599, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 601, 456, 457, 458, 459, 1803, 460, 602, + 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 16, 17, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 44, 45, 46, 567, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, + 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, + 82, 83, 84, 571, 85, 572, 87, 88, 89, 90, + 91, 573, 92, 93, 94, 0, 96, 97, 98, 99, + 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 576, 130, 131, 132, 0, 133, 134, 135, 136, + 137, 138, 139, 577, 141, 142, 143, 144, 578, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 579, 159, 0, 0, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 580, 581, 170, 0, 171, + 172, 173, 582, 175, 176, 177, 178, 179, 583, 181, + 182, 584, 184, 185, 585, 0, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 586, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 587, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 588, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 589, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 590, 311, 591, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 592, 342, 343, 593, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 594, 355, 356, + 357, 358, 359, 360, 361, 595, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 596, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 0, 389, 390, 391, 597, 393, 394, 598, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 2594, 424, 425, + 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, + 456, 457, 458, 459, 3366, 460, 602, 462, 463, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, + 46, 567, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 0, 568, 569, 74, + 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, + 571, 85, 572, 87, 88, 89, 90, 91, 573, 92, + 93, 94, 0, 96, 97, 98, 99, 100, 101, 0, + 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 576, 130, + 131, 132, 0, 133, 134, 135, 136, 137, 138, 139, + 577, 141, 142, 143, 144, 578, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 579, + 159, 0, 0, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 580, 581, 170, 0, 171, 172, 173, 582, + 175, 176, 177, 178, 179, 583, 181, 182, 584, 184, + 185, 585, 0, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 586, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 587, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 588, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 589, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 590, 311, 591, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 592, 342, 343, 593, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 594, 355, 356, 357, 358, 359, + 360, 361, 595, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 596, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 0, + 389, 390, 391, 597, 393, 394, 598, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 599, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, + 459, 5077, 460, 602, 462, 463, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, + 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 44, 45, 46, 567, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 0, 568, 569, 74, 75, 76, 77, + 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, + 87, 88, 89, 90, 91, 573, 92, 93, 94, 0, + 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, + 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 576, 130, 131, 132, 0, + 133, 134, 135, 136, 137, 138, 139, 577, 141, 142, + 143, 144, 578, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 579, 159, 0, 0, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 580, + 581, 170, 0, 171, 172, 173, 582, 175, 176, 177, + 178, 179, 583, 181, 182, 584, 184, 185, 585, 0, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 586, 201, 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, @@ -9735,7 +9912,7 @@ 422, 423, 424, 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 601, 456, 457, 458, 459, 1803, 460, + 452, 453, 454, 601, 456, 457, 458, 459, 5085, 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9803,7 +9980,7 @@ 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 601, 456, 457, 458, 459, 1803, 460, 602, 462, 463, + 601, 456, 457, 458, 459, 3297, 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9823,7 +10000,7 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9842,11 +10019,11 @@ 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, 580, 581, 170, 0, 171, 172, 173, - 582, 175, 176, 177, 178, 179, 583, 181, 182, 584, + 3298, 175, 176, 177, 178, 179, 583, 0, 182, 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 212, 213, 214, 215, 216, 217, 0, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, @@ -9862,88 +10039,16 @@ 339, 340, 592, 342, 343, 593, 345, 346, 347, 348, 349, 350, 351, 352, 353, 594, 355, 356, 357, 358, 359, 360, 361, 595, 363, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 596, 375, 376, 377, 378, + 369, 0, 371, 372, 373, 596, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 0, 389, 390, 391, 597, 393, 394, 598, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 2593, 424, 425, 426, 599, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, - 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, - 458, 459, 3365, 460, 602, 462, 463, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 44, 45, 46, 567, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 0, 568, 569, 74, 75, 76, - 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, - 572, 87, 88, 89, 90, 91, 573, 92, 93, 94, - 0, 96, 97, 98, 99, 100, 101, 0, 102, 103, - 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 576, 130, 131, 132, - 0, 133, 134, 135, 136, 137, 138, 139, 577, 141, - 142, 143, 144, 578, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 579, 159, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 580, 581, 170, 0, 171, 172, 173, 582, 175, 176, - 177, 178, 179, 583, 181, 182, 584, 184, 185, 585, - 0, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 586, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 587, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 588, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 589, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 590, 311, - 591, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 334, 335, 336, 337, 338, 339, 340, 592, - 342, 343, 593, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 594, 355, 356, 357, 358, 359, 360, 361, - 595, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 596, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 0, 389, 390, - 391, 597, 393, 394, 598, 396, 397, 398, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 599, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 601, 456, 457, 458, 459, 5077, - 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 16, 17, 0, + 448, 449, 450, 451, 452, 453, 454, 3299, 456, 457, + 458, 459, 0, 460, 602, 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9968,7 +10073,7 @@ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, 88, - 89, 90, 91, 573, 92, 93, 94, 0, 96, 97, + 89, 90, 91, 573, 92, 93, 94, 2459, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, @@ -10006,12 +10111,12 @@ 424, 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 601, 456, 457, 458, 459, 5085, 460, 602, 462, - 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, + 463, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6137, 0, 0, 0, 0, 0, 2460, 6138, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10022,130 +10127,58 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, + 45, 46, 567, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 0, 568, 569, + 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, + 84, 571, 85, 572, 87, 88, 89, 90, 91, 573, + 92, 93, 94, 0, 96, 97, 98, 99, 100, 101, + 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 576, + 130, 131, 132, 0, 133, 134, 135, 136, 137, 138, + 139, 577, 141, 142, 143, 144, 578, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 579, 159, 0, 0, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 580, 581, 170, 0, 171, 172, 173, + 582, 175, 176, 177, 178, 179, 583, 181, 182, 584, + 184, 185, 585, 0, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 586, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 587, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 588, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 589, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 590, 311, 591, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 592, 342, 343, 593, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 594, 355, 356, 357, 358, + 359, 360, 361, 595, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 596, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 0, 389, 390, 391, 597, 393, 394, 598, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 599, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, + 458, 459, 0, 460, 602, 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, - 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, - 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, - 573, 92, 93, 94, 0, 96, 97, 98, 99, 100, - 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 576, 130, 131, 132, 0, 133, 134, 135, 136, 137, - 138, 139, 577, 141, 142, 143, 144, 578, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 580, 581, 170, 0, 171, 172, - 173, 582, 175, 176, 177, 178, 179, 583, 181, 182, - 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 588, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 590, 311, 591, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 592, 342, 343, 593, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 594, 355, 356, 357, - 358, 359, 360, 361, 595, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 596, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 0, 389, 390, 391, 597, 393, 394, 598, 396, - 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, - 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, - 457, 458, 459, 3296, 460, 602, 462, 463, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 684, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, - 567, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, - 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, - 85, 572, 87, 88, 89, 90, 91, 573, 92, 93, - 94, 0, 96, 97, 98, 99, 100, 101, 0, 102, - 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 576, 130, 131, - 132, 0, 133, 134, 135, 136, 137, 138, 139, 577, - 141, 142, 143, 144, 578, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 579, 159, - 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 580, 581, 170, 0, 171, 172, 173, 3297, 175, - 176, 177, 178, 179, 583, 0, 182, 584, 184, 185, - 585, 0, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 586, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 587, 210, 211, 212, 213, - 214, 215, 216, 217, 0, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 588, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 589, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 590, - 311, 591, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 592, 342, 343, 593, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 594, 355, 356, 357, 358, 359, 360, - 361, 595, 363, 364, 365, 366, 367, 368, 369, 0, - 371, 372, 373, 596, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 388, 0, 389, - 390, 391, 597, 393, 394, 598, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 599, 428, 429, - 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 3298, 456, 457, 458, 459, - 0, 460, 602, 462, 463, 16, 17, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 769, 1824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10158,57 +10191,57 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 44, 45, 46, 567, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, + 570, 81, 82, 83, 84, 571, 85, 572, 87, 88, + 89, 90, 91, 573, 92, 93, 94, 0, 96, 97, + 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 575, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 576, 130, 131, 132, 0, 133, 134, + 135, 136, 137, 138, 139, 577, 141, 142, 143, 144, + 578, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 579, 159, 0, 0, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 580, 581, 170, + 0, 171, 172, 173, 582, 175, 176, 177, 178, 179, + 583, 181, 182, 584, 184, 185, 585, 0, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 586, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 587, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 588, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 589, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 590, 311, 591, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 592, 342, 343, 593, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 594, + 355, 356, 357, 358, 359, 360, 361, 595, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 596, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 0, 389, 390, 391, 597, 393, + 394, 598, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 599, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, + 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 44, 45, 46, 567, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, - 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, - 82, 83, 84, 571, 85, 572, 87, 88, 89, 90, - 91, 573, 92, 93, 94, 2458, 96, 97, 98, 99, - 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 576, 130, 131, 132, 0, 133, 134, 135, 136, - 137, 138, 139, 577, 141, 142, 143, 144, 578, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 579, 159, 0, 0, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 580, 581, 170, 0, 171, - 172, 173, 582, 175, 176, 177, 178, 179, 583, 181, - 182, 584, 184, 185, 585, 0, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 586, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 587, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 588, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 589, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 590, 311, 591, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 592, 342, 343, 593, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 594, 355, 356, - 357, 358, 359, 360, 361, 595, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 596, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 0, 389, 390, 391, 597, 393, 394, 598, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, - 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, - 456, 457, 458, 459, 0, 460, 602, 462, 463, 0, - 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 6140, - 0, 0, 0, 0, 0, 2459, 6141, 769, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 769, 2474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10272,7 +10305,8 @@ 0, 460, 602, 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 769, 1824, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3458, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10284,7 +10318,6 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10294,7 +10327,7 @@ 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, 88, 89, 90, - 91, 573, 92, 93, 94, 0, 96, 97, 98, 99, + 91, 573, 92, 93, 94, 2459, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, @@ -10332,10 +10365,11 @@ 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, - 456, 457, 458, 459, 0, 460, 602, 462, 463, 16, - 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 456, 457, 458, 459, 0, 460, 602, 462, 463, 1623, + 1624, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2460, 6138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 769, 2473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10348,7 +10382,6 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10399,7 +10432,7 @@ 602, 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3457, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10415,13 +10448,13 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, + 0, 42, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, 573, - 92, 93, 94, 2458, 96, 97, 98, 99, 100, 101, + 92, 93, 94, 2459, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 576, @@ -10461,8 +10494,8 @@ 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, 1623, 1624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2459, 6141, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3867, 0, 0, + 0, 0, 0, 2460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10484,7 +10517,7 @@ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, 88, - 89, 90, 91, 573, 92, 93, 94, 0, 96, 97, + 89, 90, 91, 573, 92, 93, 94, 1625, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, @@ -10524,8 +10557,9 @@ 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1793, 0, 0, 0, 0, 0, + 1626, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10541,14 +10575,13 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, 573, 92, 93, - 94, 2458, 96, 97, 98, 99, 100, 101, 0, 102, + 94, 0, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 576, 130, 131, @@ -10588,8 +10621,8 @@ 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, 1623, 1624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3865, 0, 0, 0, 0, - 0, 2459, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10651,7 +10684,7 @@ 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1793, 0, 0, 0, 0, 0, 1626, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10674,7 +10707,7 @@ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, - 87, 88, 89, 90, 91, 573, 92, 93, 94, 0, + 87, 88, 89, 90, 91, 573, 92, 93, 94, 2459, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, @@ -10713,9 +10746,9 @@ 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, - 602, 462, 463, 1623, 1624, 0, 0, 0, 0, 0, + 602, 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 698, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10738,7 +10771,7 @@ 64, 65, 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, 573, - 92, 93, 94, 1625, 96, 97, 98, 99, 100, 101, + 92, 93, 94, 0, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 576, @@ -10777,9 +10810,9 @@ 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, 16, 17, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1085, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10801,7 +10834,7 @@ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, 88, - 89, 90, 91, 573, 92, 93, 94, 2458, 96, 97, + 89, 90, 91, 573, 92, 93, 94, 0, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, @@ -10840,9 +10873,9 @@ 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, - 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, + 463, 16, 17, 5059, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2459, 0, 0, + 4706, 0, 0, 0, 0, 0, 0, 4572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10904,9 +10937,9 @@ 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, 16, 17, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 698, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10967,9 +11000,9 @@ 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, 16, - 17, 5059, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4705, 0, - 0, 0, 0, 0, 0, 4571, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -10999,8 +11032,8 @@ 133, 134, 135, 136, 137, 138, 139, 577, 141, 142, 143, 144, 578, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 579, 159, 0, 0, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 580, - 581, 170, 0, 171, 172, 173, 582, 175, 176, 177, + 160, 161, 746, 163, 164, 165, 166, 167, 168, 580, + 581, 170, 0, 747, 172, 173, 582, 175, 176, 177, 178, 179, 583, 181, 182, 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, 202, 203, 204, 205, 206, @@ -11013,7 +11046,7 @@ 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 588, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 589, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 294, 295, 296, 297, 298, 299, 748, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 590, 311, 591, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, @@ -11032,7 +11065,7 @@ 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4571, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11096,7 +11129,7 @@ 458, 459, 0, 460, 602, 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 698, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11126,8 +11159,8 @@ 135, 136, 137, 138, 139, 577, 141, 142, 143, 144, 578, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 579, 159, 0, 0, 160, 161, - 746, 163, 164, 165, 166, 167, 168, 580, 581, 170, - 0, 747, 172, 173, 582, 175, 176, 177, 178, 179, + 162, 163, 164, 165, 166, 167, 168, 580, 581, 170, + 0, 171, 172, 173, 582, 175, 176, 177, 178, 179, 583, 181, 182, 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, 202, 203, 204, 205, 206, 207, 208, @@ -11140,7 +11173,7 @@ 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 588, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 589, 293, 294, 295, - 296, 297, 298, 299, 748, 301, 302, 303, 304, 305, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 590, 311, 591, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, @@ -11156,21 +11189,21 @@ 424, 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, + 454, 601, 456, 457, 458, 459, 2983, 460, 602, 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 698, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 680, + 681, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3635, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3636, 656, 3637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11220,10 +11253,11 @@ 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, - 0, 460, 602, 462, 463, 16, 17, 0, 0, 0, + 0, 460, 602, 462, 463, 1480, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2984, 0, 0, 0, 0, + 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4571, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11240,115 +11274,115 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 44, 45, 46, 567, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, - 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, - 82, 83, 84, 571, 85, 572, 87, 88, 89, 90, - 91, 573, 92, 93, 94, 0, 96, 97, 98, 99, - 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 576, 130, 131, 132, 0, 133, 134, 135, 136, - 137, 138, 139, 577, 141, 142, 143, 144, 578, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 579, 159, 0, 0, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 580, 581, 170, 0, 171, - 172, 173, 582, 175, 176, 177, 178, 179, 583, 181, - 182, 584, 184, 185, 585, 0, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 586, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 587, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 588, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 589, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 590, 311, 591, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 339, 340, 592, 342, 343, 593, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 594, 355, 356, - 357, 358, 359, 360, 361, 595, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 596, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 0, 389, 390, 391, 597, 393, 394, 598, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, - 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, - 456, 457, 458, 459, 2982, 460, 602, 462, 463, 16, - 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2516, 0, + 0, 0, 0, 0, 0, 0, 44, 45, 46, 567, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 0, 568, 569, 74, 75, 76, + 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, + 572, 87, 88, 89, 90, 91, 573, 92, 93, 94, + 0, 96, 97, 98, 99, 100, 101, 0, 102, 103, + 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 576, 130, 131, 132, + 0, 133, 134, 135, 136, 137, 138, 139, 577, 141, + 142, 143, 144, 578, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 579, 159, 0, + 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 580, 581, 170, 0, 171, 172, 173, 582, 175, 176, + 177, 178, 179, 583, 181, 182, 584, 184, 185, 585, + 0, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 586, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 587, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 588, 280, 281, 282, 283, + 284, 285, 286, 287, 288, 289, 290, 291, 292, 589, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 590, 311, + 591, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 592, + 342, 343, 593, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 594, 355, 356, 357, 358, 359, 360, 361, + 595, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 596, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 0, 389, 390, + 391, 597, 393, 394, 598, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 599, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 601, 456, 457, 458, 459, 1557, + 460, 602, 462, 463, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 680, 681, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3635, 656, 3636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 44, 45, 46, 567, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 0, 568, 569, 74, 75, 76, 77, - 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, - 87, 88, 89, 90, 91, 573, 92, 93, 94, 0, - 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, - 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 576, 130, 131, 132, 0, - 133, 134, 135, 136, 137, 138, 139, 577, 141, 142, - 143, 144, 578, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 579, 159, 0, 0, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 580, - 581, 170, 0, 171, 172, 173, 582, 175, 176, 177, - 178, 179, 583, 181, 182, 584, 184, 185, 585, 0, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 586, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 587, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 588, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 589, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 590, 311, 591, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 592, 342, - 343, 593, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 594, 355, 356, 357, 358, 359, 360, 361, 595, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 596, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 0, 389, 390, 391, - 597, 393, 394, 598, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 599, 428, 429, 430, 431, - 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, - 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, - 602, 462, 463, 1480, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2983, 0, 0, 0, 0, 16, 17, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, + 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, + 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, + 573, 92, 93, 94, 0, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 576, 130, 131, 132, 0, 133, 134, 135, 136, 137, + 138, 139, 577, 141, 142, 143, 144, 578, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 580, 581, 170, 0, 171, 172, + 173, 582, 175, 176, 177, 178, 179, 583, 181, 182, + 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 1558, 274, 275, 276, 277, 278, 279, 588, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 590, 311, 591, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 592, 342, 343, 593, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 594, 355, 356, 357, + 358, 359, 360, 361, 595, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 596, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 0, 389, 390, 391, 597, 393, 394, 598, 396, + 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, + 457, 458, 459, 0, 460, 602, 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11411,10 +11445,9 @@ 423, 424, 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 601, 456, 457, 458, 459, 1557, 460, 602, - 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 17, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, + 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11457,7 +11490,7 @@ 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 1558, 274, 275, 276, 277, 278, 279, 588, 280, 281, + 273, 274, 275, 276, 277, 278, 279, 588, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, @@ -11476,8 +11509,8 @@ 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, - 459, 0, 460, 602, 462, 463, 16, 17, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 459, 0, 460, 602, 462, 463, 1623, 1624, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11541,7 +11574,7 @@ 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2999, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4635, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11604,7 +11637,7 @@ 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, 1623, 1624, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4274, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4882, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11667,7 +11700,7 @@ 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, 16, 17, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4634, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11730,11 +11763,9 @@ 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, - 462, 463, 1623, 1624, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4882, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5406, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11744,8 +11775,10 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11793,23 +11826,23 @@ 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, - 459, 0, 460, 602, 462, 463, 16, 17, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 5313, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 459, 0, 460, 602, 462, 463, 1623, 1624, 0, 0, + 1813, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2628, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 996, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11818,7 +11851,7 @@ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, 88, 89, - 90, 91, 573, 92, 93, 94, 0, 96, 97, 98, + 90, 91, 573, 92, 93, 94, 2631, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, @@ -11857,23 +11890,23 @@ 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, - 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5407, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1623, 1624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 996, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 567, @@ -11882,7 +11915,7 @@ 67, 68, 69, 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, 573, 92, 93, 94, - 0, 96, 97, 98, 99, 100, 101, 0, 102, 103, + 2631, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 576, 130, 131, 132, @@ -11920,23 +11953,23 @@ 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, - 460, 602, 462, 463, 1623, 1624, 0, 0, 1813, 0, + 460, 602, 462, 463, 1623, 1624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2626, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2627, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 996, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2628, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2629, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -11945,7 +11978,7 @@ 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, - 573, 92, 93, 94, 2630, 96, 97, 98, 99, 100, + 573, 92, 93, 94, 2631, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, @@ -11983,24 +12016,24 @@ 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, - 457, 458, 459, 0, 460, 602, 462, 463, 1623, 1624, + 457, 458, 459, 0, 460, 602, 462, 463, 16, 17, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2627, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 996, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 655, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 567, 47, 48, @@ -12008,7 +12041,7 @@ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, - 88, 89, 90, 91, 573, 92, 93, 94, 2630, 96, + 88, 89, 90, 91, 573, 92, 93, 94, 0, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, @@ -12047,15 +12080,13 @@ 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, - 462, 463, 1623, 1624, 0, 0, 0, 0, 0, 0, + 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 996, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12063,7 +12094,9 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2629, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 684, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, @@ -12072,7 +12105,7 @@ 65, 66, 67, 68, 69, 70, 0, 568, 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, 573, 92, - 93, 94, 2630, 96, 97, 98, 99, 100, 101, 0, + 93, 94, 0, 96, 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 576, 130, @@ -12123,7 +12156,7 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 655, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12174,13 +12207,14 @@ 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, - 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, + 1623, 1624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1669, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12189,7 +12223,6 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12246,11 +12279,11 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4505, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12300,14 +12333,13 @@ 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, - 457, 458, 459, 0, 460, 602, 462, 463, 1623, 1624, + 457, 458, 459, 0, 460, 602, 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1669, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12317,6 +12349,7 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12373,7 +12406,7 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4504, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5694, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12442,7 +12475,7 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 684, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12500,7 +12533,7 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5695, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12526,7 +12559,7 @@ 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, 580, 581, 170, 0, 171, 172, 173, 582, 175, 176, 177, 178, 179, 583, 181, 182, 584, 184, 185, 585, - 0, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 0, 187, 188, 189, 190, 191, 192, 193, 693, 195, 196, 197, 198, 199, 586, 201, 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, @@ -12554,7 +12587,7 @@ 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, - 460, 602, 462, 463, 16, 17, 0, 0, 0, 0, + 460, 602, 462, 463, 1623, 1624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12653,7 +12686,7 @@ 161, 162, 163, 164, 165, 166, 167, 168, 580, 581, 170, 0, 171, 172, 173, 582, 175, 176, 177, 178, 179, 583, 181, 182, 584, 184, 185, 585, 0, 187, - 188, 189, 190, 191, 192, 193, 693, 195, 196, 197, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, @@ -12670,7 +12703,7 @@ 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 592, 342, 343, 593, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 594, 355, 356, 357, 358, 359, 360, 361, 595, 363, + 594, 355, 356, 357, 358, 359, 360, 361, 1971, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 596, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 0, 389, 390, 391, 597, @@ -12681,7 +12714,7 @@ 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, 460, 602, - 462, 463, 1623, 1624, 0, 0, 0, 0, 0, 0, + 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12714,7 +12747,7 @@ 577, 141, 142, 143, 144, 578, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 580, 581, 170, 0, 171, 172, 173, 582, + 2721, 168, 580, 581, 170, 0, 171, 172, 173, 582, 175, 176, 177, 178, 179, 583, 181, 182, 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, 202, 203, @@ -12725,7 +12758,7 @@ 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 588, 280, 281, + 2722, 274, 275, 276, 277, 278, 279, 588, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, @@ -12778,7 +12811,7 @@ 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, 580, 581, 170, 0, - 171, 172, 173, 582, 175, 176, 177, 178, 179, 583, + 171, 172, 173, 2709, 175, 176, 177, 178, 179, 583, 181, 182, 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, 202, 203, 204, 205, 206, 207, 208, 209, @@ -12797,7 +12830,7 @@ 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 592, 342, 343, 593, 345, 346, 347, 348, 349, 350, 351, 352, 353, 594, 355, - 356, 357, 358, 359, 360, 361, 1971, 363, 364, 365, + 356, 357, 358, 359, 360, 361, 595, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 596, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 0, 389, 390, 391, 597, 393, 394, @@ -12807,7 +12840,7 @@ 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 601, 456, 457, 458, 459, 0, 460, 602, 462, 463, + 0, 456, 457, 458, 459, 0, 460, 602, 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12823,7 +12856,7 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12840,18 +12873,18 @@ 0, 133, 134, 135, 136, 137, 138, 139, 577, 141, 142, 143, 144, 578, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 579, 159, 0, - 0, 160, 161, 162, 163, 164, 165, 166, 2720, 168, - 580, 581, 170, 0, 171, 172, 173, 582, 175, 176, - 177, 178, 179, 583, 181, 182, 584, 184, 185, 585, + 0, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 580, 581, 170, 0, 171, 172, 173, 3298, 175, 176, + 177, 178, 179, 583, 0, 182, 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 215, 216, 217, 0, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 2721, 274, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 588, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, @@ -12861,7 +12894,7 @@ 332, 333, 334, 335, 336, 337, 338, 339, 340, 592, 342, 343, 593, 345, 346, 347, 348, 349, 350, 351, 352, 353, 594, 355, 356, 357, 358, 359, 360, 361, - 595, 363, 364, 365, 366, 367, 368, 369, 370, 371, + 595, 363, 364, 365, 366, 367, 368, 369, 0, 371, 372, 373, 596, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 0, 389, 390, 391, 597, 393, 394, 598, 396, 397, 398, 399, 400, @@ -12870,7 +12903,7 @@ 421, 422, 423, 424, 425, 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 601, 456, 457, 458, 459, 0, + 451, 452, 453, 454, 3299, 456, 457, 458, 459, 0, 460, 602, 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12891,49 +12924,49 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 46, 567, 47, 48, 49, 50, 51, 52, + 44, 45, 46, 0, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 0, 568, + 63, 64, 65, 66, 67, 68, 69, 70, 0, 0, 569, 74, 75, 76, 77, 78, 79, 570, 81, 82, - 83, 84, 571, 85, 572, 87, 88, 89, 90, 91, - 573, 92, 93, 94, 0, 96, 97, 98, 99, 100, - 101, 0, 102, 103, 104, 574, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 575, 115, 116, 117, 118, + 83, 84, 0, 85, 572, 87, 88, 89, 90, 91, + 0, 92, 93, 94, 0, 96, 97, 98, 99, 100, + 101, 0, 102, 103, 104, 0, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 0, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 576, 130, 131, 132, 0, 133, 134, 135, 136, 137, - 138, 139, 577, 141, 142, 143, 144, 578, 145, 146, + 138, 139, 0, 141, 142, 143, 144, 0, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 579, 159, 0, 0, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 580, 581, 170, 0, 171, 172, - 173, 2708, 175, 176, 177, 178, 179, 583, 181, 182, - 584, 184, 185, 585, 0, 187, 188, 189, 190, 191, + 165, 166, 167, 168, 580, 0, 170, 0, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 583, 181, 182, + 0, 184, 185, 585, 0, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 586, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 587, 210, + 202, 203, 204, 205, 206, 207, 208, 209, 0, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 588, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 589, 293, 294, 295, 296, 297, 298, + 290, 291, 292, 0, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 590, 311, 591, 313, 314, 315, 316, 317, + 309, 310, 0, 311, 591, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 592, 342, 343, 593, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 594, 355, 356, 357, - 358, 359, 360, 361, 595, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 596, 375, 376, 377, + 338, 339, 340, 0, 342, 343, 593, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 0, 355, 356, 357, + 358, 359, 360, 361, 0, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 0, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 0, 389, 390, 391, 597, 393, 394, 598, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 599, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 0, 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 0, 456, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 0, 460, 602, 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -12950,137 +12983,102 @@ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 684, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 44, 45, 46, 567, 47, 48, + 0, 0, 0, 1547, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 44, 45, 46, 0, 47, 0, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 0, 568, 569, 74, 75, 76, 77, 78, - 79, 570, 81, 82, 83, 84, 571, 85, 572, 87, - 88, 89, 90, 91, 573, 92, 93, 94, 0, 96, - 97, 98, 99, 100, 101, 0, 102, 103, 104, 574, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 575, + 59, 60, 0, 62, 63, 64, 65, 66, 67, 68, + 69, 0, 0, 0, 0, 74, 75, 76, 77, 78, + 0, 0, 81, 82, 83, 84, 0, 0, 0, 87, + 88, 89, 90, 91, 0, 92, 93, 94, 0, 96, + 0, 0, 0, 0, 0, 0, 102, 0, 104, 0, + 106, 107, 1548, 109, 110, 111, 112, 113, 114, 0, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 576, 130, 131, 132, 0, 133, - 134, 135, 136, 137, 138, 139, 577, 141, 142, 143, - 144, 578, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 579, 159, 0, 0, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 580, 581, - 170, 0, 171, 172, 173, 3297, 175, 176, 177, 178, - 179, 583, 0, 182, 584, 184, 185, 585, 0, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 586, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 587, 210, 211, 212, 213, 214, 215, 216, - 217, 0, 219, 220, 221, 222, 223, 224, 225, 226, + 125, 126, 127, 128, 0, 130, 131, 132, 0, 133, + 134, 135, 136, 137, 138, 139, 0, 141, 142, 143, + 144, 0, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 0, 0, 0, 159, 0, 0, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 0, 0, + 0, 0, 0, 172, 173, 1549, 175, 176, 177, 178, + 179, 0, 181, 182, 0, 184, 185, 0, 0, 187, + 0, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 0, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 0, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 588, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 589, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 590, 311, 591, 313, + 277, 278, 279, 0, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 16, 17, 0, + 0, 296, 297, 0, 299, 300, 301, 302, 0, 304, + 305, 306, 307, 308, 309, 0, 0, 0, 0, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 335, 336, 337, 338, 339, 340, 592, 342, 343, - 593, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 594, 355, 356, 357, 358, 359, 360, 361, 595, 363, - 364, 365, 366, 367, 368, 369, 0, 371, 372, 373, - 596, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 0, 389, 390, 391, 597, - 393, 394, 598, 396, 397, 398, 399, 400, 401, 402, + 334, 335, 336, 337, 338, 0, 340, 0, 342, 343, + 0, 345, 346, 0, 348, 349, 350, 351, 352, 353, + 0, 355, 356, 357, 358, 359, 360, 361, 0, 363, + 364, 365, 0, 367, 368, 369, 370, 0, 372, 373, + 0, 0, 376, 0, 0, 379, 380, 381, 0, 383, + 0, 385, 386, 387, 388, 0, 389, 390, 391, 0, + 393, 394, 0, 396, 0, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 599, 428, 429, 430, 431, 432, - 433, 434, 435, 436, 600, 438, 439, 440, 441, 442, + 413, 414, 415, 416, 417, 0, 419, 420, 421, 422, + 423, 424, 425, 426, 0, 428, 429, 430, 0, 432, + 433, 434, 435, 0, 0, 438, 439, 0, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 3298, 456, 457, 458, 459, 0, 460, 602, - 462, 463, 16, 17, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, - 46, 0, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 0, 0, 569, 74, - 75, 76, 77, 78, 79, 570, 81, 82, 83, 84, - 0, 85, 572, 87, 88, 89, 90, 91, 0, 92, - 93, 94, 0, 96, 97, 98, 99, 100, 101, 0, - 102, 103, 104, 0, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 0, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 576, 130, - 131, 132, 0, 133, 134, 135, 136, 137, 138, 139, - 0, 141, 142, 143, 144, 0, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 579, - 159, 0, 0, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 580, 0, 170, 0, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 583, 181, 182, 0, 184, - 185, 585, 0, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 586, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 0, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 0, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, - 292, 0, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 0, 311, 591, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 0, 342, 343, 593, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 0, 355, 356, 357, 358, 359, - 360, 361, 0, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 0, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 0, - 389, 390, 391, 597, 393, 394, 598, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 0, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 600, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 0, 460, 602, 462, 463, 16, 17, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 453, 454, 0, 0, 457, 458, 0, 0, 460, 0, + 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1565, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 44, 45, 46, 0, 47, 0, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 0, 62, 63, 64, 65, 66, 67, 68, 69, + 0, 0, 0, 0, 74, 75, 76, 77, 78, 0, + 0, 81, 82, 83, 84, 0, 0, 0, 87, 88, + 89, 90, 91, 0, 92, 93, 94, 0, 96, 0, + 0, 0, 0, 0, 0, 102, 0, 104, 0, 106, + 107, 1548, 109, 110, 111, 112, 113, 114, 0, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 0, 130, 131, 132, 0, 133, 134, + 135, 136, 137, 138, 139, 0, 141, 142, 143, 144, + 0, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 0, 0, 0, 159, 0, 0, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 0, 0, 0, + 0, 0, 172, 173, 1549, 175, 176, 177, 178, 179, + 0, 181, 182, 0, 184, 185, 0, 0, 187, 0, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 0, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 0, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 0, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 289, 290, 291, 292, 16, 17, 0, 0, + 296, 297, 0, 299, 300, 301, 302, 0, 304, 305, + 306, 307, 308, 309, 0, 0, 0, 0, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 0, 340, 0, 342, 343, 0, + 345, 346, 0, 348, 349, 350, 351, 352, 353, 0, + 355, 356, 357, 358, 359, 360, 361, 0, 363, 364, + 365, 0, 367, 368, 369, 370, 0, 372, 373, 0, + 0, 376, 0, 0, 379, 380, 381, 0, 383, 0, + 385, 386, 387, 388, 0, 389, 390, 391, 0, 393, + 394, 0, 396, 0, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 0, 419, 420, 421, 422, 423, + 424, 425, 426, 0, 428, 429, 430, 0, 432, 433, + 434, 435, 0, 0, 438, 439, 0, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 0, 0, 457, 458, 0, 0, 460, 0, 462, + 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 45, 46, 0, 47, 0, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, 62, 63, 64, 65, 66, 67, 68, 69, 0, @@ -13116,7 +13114,7 @@ 346, 0, 348, 349, 350, 351, 352, 353, 0, 355, 356, 357, 358, 359, 360, 361, 0, 363, 364, 365, 0, 367, 368, 369, 370, 0, 372, 373, 0, 0, - 376, 0, 0, 379, 380, 381, 0, 383, 0, 385, + 376, 0, 0, 379, 380, 381, 5455, 383, 0, 385, 386, 387, 388, 0, 389, 390, 391, 0, 393, 394, 0, 396, 0, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, @@ -13126,1309 +13124,1108 @@ 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 0, 0, 457, 458, 0, 0, 460, 0, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1565, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 44, 45, 46, 0, 47, 0, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, - 62, 63, 64, 65, 66, 67, 68, 69, 0, 0, - 0, 0, 74, 75, 76, 77, 78, 0, 0, 81, - 82, 83, 84, 0, 0, 0, 87, 88, 89, 90, - 91, 0, 92, 93, 94, 0, 96, 0, 0, 0, - 0, 0, 0, 102, 0, 104, 0, 106, 107, 1548, - 109, 110, 111, 112, 113, 114, 0, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 0, 130, 131, 132, 0, 133, 134, 135, 136, - 137, 138, 139, 0, 141, 142, 143, 144, 0, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 0, 0, 0, 159, 0, 0, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 0, 0, 0, 0, 0, - 172, 173, 1549, 175, 176, 177, 178, 179, 0, 181, - 182, 0, 184, 185, 0, 0, 187, 0, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 0, - 201, 202, 203, 204, 205, 206, 207, 208, 209, 0, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 44, 45, 46, 0, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 0, + 0, 569, 0, 75, 0, 0, 78, 79, 570, 81, + 82, 83, 84, 571, 85, 572, 87, 88, 89, 0, + 0, 573, 92, 93, 94, 0, 96, 97, 98, 99, + 100, 101, 0, 102, 103, 104, 574, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 575, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 0, 126, 0, + 128, 576, 130, 131, 132, 0, 133, 134, 135, 136, + 137, 138, 139, 577, 141, 142, 143, 144, 0, 145, + 146, 147, 0, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 579, 159, 0, 0, 160, 161, 162, 163, + 164, 165, 166, 167, 0, 580, 581, 170, 0, 171, + 172, 173, 5456, 175, 176, 0, 0, 179, 583, 181, + 182, 584, 184, 185, 585, 0, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 586, + 201, 202, 203, 204, 205, 206, 207, 0, 209, 587, + 210, 211, 212, 213, 214, 215, 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 0, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 16, 17, 0, 0, 296, 297, - 0, 299, 300, 301, 302, 0, 304, 305, 306, 307, - 308, 309, 0, 0, 0, 0, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 0, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 0, 0, 0, 265, 266, 267, 268, 269, + 0, 0, 272, 273, 274, 275, 276, 277, 278, 279, + 588, 280, 281, 282, 283, 0, 0, 0, 287, 288, + 289, 290, 291, 292, 589, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 0, 0, 310, 590, 311, 591, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 0, 0, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, - 337, 338, 0, 340, 0, 342, 343, 0, 345, 346, - 0, 348, 349, 350, 351, 352, 353, 0, 355, 356, - 357, 358, 359, 360, 361, 0, 363, 364, 365, 0, - 367, 368, 369, 370, 0, 372, 373, 0, 0, 376, - 0, 0, 379, 380, 381, 0, 383, 0, 385, 386, - 387, 388, 0, 389, 390, 391, 0, 393, 394, 0, - 396, 0, 398, 399, 400, 401, 402, 403, 404, 405, + 337, 338, 339, 340, 592, 342, 343, 593, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 594, 355, 356, + 357, 0, 359, 360, 361, 595, 363, 364, 365, 366, + 367, 368, 0, 370, 371, 372, 373, 596, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 0, 389, 390, 391, 597, 393, 394, 598, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 0, 419, 420, 421, 422, 423, 424, 425, - 426, 0, 428, 429, 430, 0, 432, 433, 434, 435, - 0, 0, 438, 439, 0, 441, 442, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 0, - 0, 457, 458, 0, 0, 460, 0, 462, 463, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 45, 46, 0, 47, 0, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 0, 62, - 63, 64, 65, 66, 67, 68, 69, 0, 0, 0, - 0, 74, 75, 76, 77, 78, 0, 0, 81, 82, - 83, 84, 0, 0, 0, 87, 88, 89, 90, 91, - 0, 92, 93, 94, 0, 96, 0, 0, 0, 0, - 0, 0, 102, 0, 104, 0, 106, 107, 1548, 109, - 110, 111, 112, 113, 114, 0, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 0, 130, 131, 132, 0, 133, 134, 135, 136, 137, - 138, 139, 0, 141, 142, 143, 144, 0, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 0, - 0, 0, 159, 0, 0, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 0, 0, 0, 0, 0, 172, - 173, 1549, 175, 176, 177, 178, 179, 0, 181, 182, - 0, 184, 185, 0, 0, 187, 0, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 0, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 0, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 0, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 16, 17, 0, 0, 296, 297, 0, - 299, 300, 301, 302, 0, 304, 305, 306, 307, 308, - 309, 0, 0, 0, 0, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 0, 340, 0, 342, 343, 0, 345, 346, 0, - 348, 349, 350, 351, 352, 353, 0, 355, 356, 357, - 358, 359, 360, 361, 0, 363, 364, 365, 0, 367, - 368, 369, 370, 0, 372, 373, 0, 0, 376, 0, - 0, 379, 380, 381, 5456, 383, 0, 385, 386, 387, - 388, 0, 389, 390, 391, 0, 393, 394, 0, 396, - 0, 398, 399, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 0, 419, 420, 421, 422, 423, 424, 425, 426, - 0, 428, 429, 430, 0, 432, 433, 434, 435, 0, - 0, 438, 439, 0, 441, 442, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 0, 0, - 457, 458, 0, 0, 460, 0, 462, 463, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, - 45, 46, 0, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 0, 0, 569, - 0, 75, 0, 0, 78, 79, 570, 81, 82, 83, - 84, 571, 85, 572, 87, 88, 89, 0, 0, 573, - 92, 93, 94, 0, 96, 97, 98, 99, 100, 101, - 0, 102, 103, 104, 574, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 575, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 0, 126, 0, 128, 576, - 130, 131, 132, 0, 133, 134, 135, 136, 137, 138, - 139, 577, 141, 142, 143, 144, 0, 145, 146, 147, - 0, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 579, 159, 0, 0, 160, 161, 162, 163, 164, 165, - 166, 167, 0, 580, 581, 170, 0, 171, 172, 173, - 5457, 175, 176, 0, 0, 179, 583, 181, 182, 584, - 184, 185, 585, 0, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 586, 201, 202, - 203, 204, 205, 206, 207, 0, 209, 587, 210, 211, - 212, 213, 214, 215, 0, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 0, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 0, 0, 0, 265, 266, 267, 268, 269, 0, 0, - 272, 273, 274, 275, 276, 277, 278, 279, 588, 280, - 281, 282, 283, 0, 0, 0, 287, 288, 289, 290, - 291, 292, 589, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 0, 0, - 310, 590, 311, 591, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 0, 0, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 592, 342, 343, 593, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 594, 355, 356, 357, 0, - 359, 360, 361, 595, 363, 364, 365, 366, 367, 368, - 0, 370, 371, 372, 373, 596, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 0, 389, 390, 391, 597, 393, 394, 598, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 0, 417, - 418, 0, 420, 421, 0, 423, 424, 425, 426, 599, - 428, 429, 430, 431, 432, 433, 434, 435, 436, 600, - 438, 439, 440, 441, 442, 443, 0, 0, 446, 447, - 448, 449, 450, 451, 452, 453, 454, 1449, 456, 457, - 458, 459, 0, 460, 602, 462 + 0, 417, 418, 0, 420, 421, 0, 423, 424, 425, + 426, 599, 428, 429, 430, 431, 432, 433, 434, 435, + 436, 600, 438, 439, 440, 441, 442, 443, 0, 0, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 1449, + 456, 457, 458, 459, 0, 460, 602, 462 }; static const yytype_int16 yycheck[] = { - 0, 820, 1224, 671, 24, 918, 1323, 757, 558, 735, - 736, 0, 3, 1409, 670, 671, 1324, 1324, 553, 518, - 1544, 1643, 1605, 1409, 2123, 2023, 1784, 621, 2026, 72, - 1169, 1170, 1171, 1772, 0, 2053, 670, 621, 1815, 1178, - 566, 1862, 1337, 1862, 855, 2290, 1206, 765, 2203, 1732, - 0, 1405, 0, 1719, 1612, 2211, 2051, 1621, 2770, 1413, - 2025, 2682, 2943, 3031, 1224, 0, 2190, 3535, 692, 3477, - 1485, 0, 0, 0, 1833, 1429, 670, 1530, 639, 3208, - 1146, 1847, 1848, 664, 639, 1439, 670, 2989, 623, 2795, - 625, 626, 627, 628, 629, 2189, 631, 632, 1791, 1465, - 635, 636, 1821, 3061, 3062, 1459, 3535, 668, 3433, 4043, - 3818, 3609, 1831, 668, 1401, 2027, 1340, 1499, 3584, 1743, - 73, 3609, 3609, 3668, 2680, 34, 3500, 1751, 0, 4029, - 1752, 1753, 806, 1755, 1756, 1757, 1758, 1759, 1760, 1426, - 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 3475, 169, - 945, 1340, 3526, 3527, 3609, 3489, 2019, 3609, 1445, 1446, - 1447, 3609, 983, 1450, 4129, 4227, 1784, 1283, 711, 3700, - 1854, 714, 3325, 2287, 2282, 2066, 3077, 1464, 4593, 2704, - 819, 1947, 4027, 2851, 1949, 3261, 3262, 2919, 1872, 3535, - 3344, 1949, 2291, 2919, 0, 3420, 4944, 3819, 3556, 3353, - 3819, 5025, 2749, 3837, 4071, 4119, 4119, 4119, 3938, 2851, - 4120, 4259, 4122, 1897, 1898, 4125, 4477, 3591, 3592, 1399, - 6, 2177, 11, 1403, 818, 1405, 820, 10, 28, 4139, - 9, 10, 3178, 1413, 818, 1148, 820, 11, 2149, 30, - 1420, 6, 1422, 4724, 1565, 11, 61, 566, 11, 1429, - 566, 2919, 80, 2909, 566, 566, 92, 6, 50, 1439, - 1376, 80, 94, 1443, 6, 152, 9, 10, 1448, 26, - 2843, 26, 2245, 74, 2247, 2248, 183, 2919, 80, 1459, - 1460, 1461, 1462, 1463, 1079, 1080, 1081, 80, 114, 104, - 1983, 176, 176, 104, 3530, 86, 1091, 80, 1591, 1592, - 3598, 9, 10, 1410, 9, 10, 11, 1600, 765, 137, - 1417, 846, 9, 10, 3245, 61, 92, 80, 137, 9, - 10, 341, 11, 858, 859, 1432, 61, 226, 61, 80, - 80, 1949, 9, 10, 80, 2832, 3549, 3441, 193, 1632, - 229, 1634, 193, 4391, 4412, 80, 57, 80, 193, 92, - 217, 125, 263, 181, 9, 10, 181, 1650, 1651, 125, - 1653, 9, 10, 113, 247, 234, 260, 2077, 1661, 1662, - 1408, 1409, 1665, 4480, 1412, 354, 9, 10, 89, 3325, - 24, 1419, 9, 10, 1226, 113, 137, 1425, 3810, 176, - 213, 1203, 2085, 104, 1408, 1409, 193, 286, 1412, 12, - 292, 180, 61, 182, 94, 1419, 9, 10, 152, 5274, - 2120, 1425, 352, 1225, 360, 193, 297, 83, 3571, 219, - 61, 57, 1409, 14, 4058, 1412, 369, 200, 3526, 3527, - 5629, 12, 1419, 5071, 145, 1501, 60, 180, 1425, 182, - 5686, 42, 32, 9, 10, 104, 61, 4886, 742, 9, - 10, 372, 65, 89, 120, 148, 9, 10, 234, 148, - 10, 1527, 173, 104, 9, 10, 216, 61, 104, 129, - 9, 10, 180, 32, 182, 180, 295, 182, 267, 234, - 282, 4446, 3038, 180, 65, 182, 9, 10, 176, 104, - 180, 785, 182, 3591, 3592, 104, 234, 234, 440, 453, - 3515, 5249, 5089, 180, 558, 182, 61, 9, 10, 145, - 104, 148, 11, 206, 297, 116, 3843, 206, 9, 10, - 206, 5279, 301, 3865, 193, 180, 127, 182, 406, 229, - 4733, 983, 180, 134, 182, 9, 10, 173, 492, 61, - 297, 176, 9, 10, 295, 1998, 176, 180, 5316, 182, - 4022, 607, 63, 180, 111, 182, 104, 548, 301, 113, - 551, 272, 163, 104, 390, 4693, 58, 672, 73, 9, - 10, 1245, 513, 9, 10, 12, 1028, 180, 86, 182, - 1306, 6068, 1308, 1309, 1310, 1311, 1312, 1313, 2561, 2562, - 2563, 2564, 3560, 301, 92, 385, 301, 620, 176, 297, - 9, 10, 509, 2296, 301, 282, 249, 639, 119, 275, - 633, 301, 402, 6100, 180, 229, 182, 69, 261, 724, - 180, 621, 182, 224, 301, 3571, 125, 180, 65, 182, - 671, 123, 621, 1085, 243, 180, 272, 182, 638, 2795, - 5408, 180, 199, 182, 142, 587, 301, 525, 86, 638, - 172, 63, 652, 301, 255, 621, 712, 180, 104, 182, - 262, 4069, 216, 616, 172, 1804, 104, 1984, 301, 3350, - 670, 671, 638, 446, 301, 729, 676, 1220, 180, 234, - 182, 670, 234, 4041, 80, 1496, 1825, 80, 638, 180, - 262, 182, 692, 647, 621, 2077, 17, 3850, 301, 5945, - 679, 5459, 5340, 4169, 670, 216, 180, 119, 182, 161, - 334, 638, 1386, 180, 654, 182, 208, 267, 229, 640, - 234, 192, 2030, 9, 10, 5924, 317, 9, 10, 127, - 2025, 554, 145, 323, 1800, 301, 5323, 374, 2120, 4066, - 180, 301, 182, 670, 180, 2052, 182, 4854, 301, 621, - 145, 704, 1818, 662, 297, 4485, 301, 347, 711, 4489, - 173, 714, 301, 271, 717, 262, 638, 710, 279, 226, - 5209, 180, 297, 182, 565, 286, 282, 170, 301, 1845, - 9, 10, 4649, 297, 489, 234, 297, 531, 347, 1610, - 4445, 477, 1587, 1588, 688, 3924, 1322, 457, 798, 301, - 113, 4147, 5667, 1255, 216, 1626, 2028, 4017, 707, 2568, - 301, 2723, 234, 813, 262, 621, 762, 229, 818, 5022, - 820, 234, 9, 10, 813, 2790, 617, 301, 1502, 818, - 1329, 820, 638, 271, 301, 148, 138, 2219, 234, 567, - 4888, 234, 2066, 2160, 727, 4219, 637, 813, 2567, 226, - 2167, 2975, 818, 764, 820, 4343, 847, 848, 849, 850, - 651, 301, 3530, 813, 670, 301, 3598, 279, 2028, 2552, - 762, 780, 3598, 762, 286, 762, 2498, 2066, 747, 764, - 764, 4117, 673, 764, 297, 297, 813, 2509, 3530, 2511, - 2512, 818, 301, 820, 180, 895, 182, 764, 180, 234, - 182, 203, 2466, 2467, 3850, 654, 906, 762, 908, 909, - 910, 1585, 654, 1370, 914, 741, 916, 906, 769, 908, - 909, 910, 4220, 923, 769, 914, 3857, 916, 764, 234, - 3598, 4035, 764, 2491, 923, 727, 1497, 3593, 753, 764, - 768, 813, 753, 4153, 853, 945, 818, 856, 820, 768, - 950, 180, 701, 182, 2275, 3528, 3598, 923, 747, 4172, - 2281, 762, 5030, 1784, 764, 766, 768, 2651, 282, 726, - 4392, 747, 769, 923, 1598, 768, 762, 764, 1773, 906, - 980, 908, 909, 910, 747, 768, 4620, 914, 767, 916, - 990, 769, 747, 180, 768, 182, 923, 762, 905, 5480, - 2116, 2140, 768, 1322, 3501, 768, 1322, 813, 2964, 2965, - 1322, 1322, 818, 4028, 5082, 301, 629, 768, 768, 301, - 763, 5769, 768, 5771, 5772, 2132, 2133, 1321, 672, 9, - 10, 769, 769, 768, 906, 768, 908, 909, 910, 1851, - 262, 1853, 914, 1667, 916, 738, 2153, 1090, 629, 738, - 3023, 923, 763, 1895, 1866, 763, 2163, 1869, 747, 764, - 1684, 1873, 762, 1687, 762, 1689, 763, 764, 2175, 1693, - 1694, 1695, 301, 1530, 764, 2368, 764, 1701, 2371, 1079, - 1080, 1081, 1082, 1801, 5152, 2192, 4494, 764, 1900, 1901, - 1902, 1091, 2811, 762, 753, 4422, 2389, 763, 4440, 492, - 906, 5304, 908, 909, 910, 9, 10, 2400, 914, 764, - 916, 1837, 753, 5241, 301, 763, 764, 923, 2156, 4591, - 4528, 4219, 2832, 628, 714, 5193, 5194, 763, 1949, 764, - 763, 764, 3688, 260, 764, 2998, 763, 764, 753, 752, - 2178, 2851, 2156, 2181, 753, 616, 4092, 4093, 762, 5410, - 4096, 4097, 1870, 2191, 5902, 5903, 4102, 4103, 1610, 753, - 763, 5909, 4796, 3074, 2178, 3076, 767, 2181, 770, 2156, - 9, 10, 5220, 1625, 1626, 9, 10, 2191, 4908, 4909, - 5094, 5094, 5094, 5251, 676, 5095, 764, 262, 5055, 491, - 762, 2178, 513, 6017, 2181, 747, 2262, 763, 764, 2909, - 180, 3356, 182, 763, 2191, 753, 3204, 182, 716, 2919, - 763, 764, 753, 9, 10, 763, 764, 769, 763, 4593, - 17, 764, 763, 764, 4170, 764, 4860, 625, 4862, 4637, - 9, 10, 357, 747, 4702, 32, 9, 10, 4585, 764, - 1147, 764, 109, 110, 4899, 1152, 28, 1808, 5996, 6073, - 707, 762, 1252, 1808, 1254, 3936, 3937, 4615, 764, 1302, - 69, 763, 764, 769, 2059, 762, 2077, 1220, 5, 1222, - 9, 10, 763, 4702, 5657, 554, 180, 99, 182, 2005, - 4902, 2007, 4616, 4902, 2010, 32, 2012, 2013, 601, 763, - 764, 432, 1966, 764, 31, 33, 763, 764, 747, 234, - 3273, 2051, 754, 755, 756, 757, 4531, 753, 3001, 2120, - 229, 229, 282, 14, 762, 753, 260, 763, 764, 3012, - 769, 301, 229, 763, 1958, 747, 1778, 763, 764, 345, - 707, 4485, 1784, 357, 747, 4489, 73, 1244, 1338, 752, - 753, 180, 5015, 182, 1801, 5016, 180, 769, 182, 3032, - 762, 4480, 161, 298, 299, 764, 4702, 752, 753, 35, - 639, 9, 10, 260, 1958, 5780, 762, 286, 286, 762, - 179, 185, 768, 769, 1958, 768, 769, 1377, 456, 286, - 1380, 1372, 5907, 5281, 180, 687, 182, 5338, 282, 668, - 170, 627, 5292, 707, 4547, 1304, 1305, 301, 1941, 148, - 4476, 180, 81, 182, 4557, 4558, 685, 180, 73, 182, - 1862, 206, 747, 1870, 2070, 282, 5261, 96, 37, 38, - 49, 63, 278, 702, 6, 2647, 1969, 3339, 327, 92, - 260, 168, 2571, 762, 769, 2574, 1997, 219, 3963, 200, - 769, 180, 747, 182, 324, 4346, 125, 303, 1355, 4117, - 2832, 233, 131, 2592, 260, 5870, 5871, 1364, 2008, 2009, - 601, 24, 301, 1254, 769, 3483, 1373, 301, 4876, 139, - 207, 5539, 762, 229, 1265, 4117, 766, 3099, 764, 206, - 2546, 2547, 764, 5898, 3482, 2124, 165, 2647, 4220, 3254, - 209, 3486, 289, 290, 4220, 4705, 3254, 1949, 129, 1490, - 76, 368, 2809, 578, 4125, 301, 3327, 786, 114, 3330, - 3331, 3330, 3331, 418, 357, 327, 96, 736, 5586, 494, - 2779, 206, 301, 2747, 2105, 5231, 323, 2909, 301, 3623, - 286, 3625, 180, 769, 182, 764, 3427, 2919, 554, 1539, - 762, 1998, 422, 290, 341, 2366, 262, 672, 111, 350, - 347, 131, 4220, 5504, 170, 225, 2230, 2231, 2747, 5457, - 355, 688, 301, 385, 4510, 3284, 267, 3020, 233, 6094, - 6095, 1478, 471, 1480, 1574, 854, 373, 764, 4220, 286, - 3263, 17, 660, 5483, 3698, 3000, 5648, 1587, 1588, 3697, - 297, 113, 3311, 1593, 408, 3219, 32, 1597, 1598, 1599, - 727, 4547, 113, 9, 10, 343, 9, 10, 1608, 1609, - 5283, 4557, 4558, 5144, 1614, 482, 1616, 1617, 1618, 1619, - 1620, 520, 1622, 764, 9, 10, 148, 9, 10, 1536, - 6013, 6014, 308, 1633, 297, 1635, 3254, 279, 1638, 1639, - 5048, 1641, 1642, 1643, 260, 1645, 1646, 1647, 672, 4996, - 399, 2232, 1652, 301, 113, 1655, 3340, 3376, 557, 471, - 3218, 3225, 3226, 1663, 1664, 3248, 1666, 1667, 1668, 11, - 3228, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 479, 1679, - 1680, 1681, 1682, 1683, 1684, 446, 1686, 1687, 3354, 1689, - 1690, 1691, 1692, 1693, 1694, 1695, 2290, 248, 1698, 1699, - 1700, 1701, 1745, 1703, 1704, 1705, 2290, 1707, 520, 1709, - 5675, 1711, 492, 2294, 689, 1715, 1716, 1717, 294, 5046, - 1720, 1721, 1722, 1723, 1724, 4854, 1726, 4283, 4275, 4276, - 4277, 4278, 554, 1733, 5068, 5635, 5636, 9, 10, 5373, - 1740, 1741, 1742, 1743, 688, 2861, 462, 644, 3660, 432, - 477, 1751, 1752, 1753, 492, 1755, 1756, 1757, 1758, 1759, - 1760, 2674, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, - 281, 3464, 554, 1773, 180, 674, 182, 180, 360, 182, - 3039, 1688, 4992, 727, 764, 262, 5331, 86, 9, 10, - 1697, 3501, 3655, 763, 764, 180, 652, 182, 180, 350, - 182, 1708, 2614, 5301, 2943, 5476, 2618, 9, 10, 428, - 429, 4779, 747, 5301, 5301, 5523, 1816, 163, 3816, 764, - 3530, 1821, 281, 4919, 4920, 730, 457, 443, 2640, 672, - 729, 1831, 461, 148, 769, 109, 110, 3658, 644, 3658, - 707, 2653, 2654, 762, 762, 35, 5301, 1838, 1839, 5301, - 1841, 1842, 1843, 5301, 5064, 762, 5066, 437, 688, 5069, - 764, 1852, 5568, 5001, 5570, 5075, 5076, 604, 167, 168, - 764, 9, 10, 172, 696, 769, 492, 1868, 679, 5089, - 9, 10, 688, 3593, 412, 35, 1793, 323, 3598, 719, - 1169, 360, 1171, 9, 10, 301, 1175, 1176, 301, 1899, - 32, 5799, 34, 5801, 484, 341, 5669, 432, 180, 3204, - 182, 347, 109, 110, 2366, 2367, 301, 714, 601, 301, - 1873, 35, 9, 10, 1924, 764, 1205, 3925, 479, 3924, - 764, 442, 5301, 1840, 619, 589, 375, 1844, 460, 1846, - 282, 3007, 571, 752, 753, 754, 755, 756, 757, 578, - 9, 10, 764, 2405, 2867, 2589, 672, 586, 1958, 180, - 645, 182, 57, 4584, 4585, 9, 10, 547, 764, 1958, - 9, 10, 271, 2523, 9, 10, 5474, 391, 180, 393, - 182, 5308, 445, 442, 763, 1892, 5474, 5474, 1941, 576, - 233, 764, 1958, 339, 35, 2589, 2557, 319, 5932, 9, - 10, 552, 2557, 35, 415, 2589, 2458, 3590, 35, 1962, - 28, 591, 485, 5460, 721, 2006, 1969, 4919, 4920, 5474, - 2472, 2832, 5474, 297, 763, 5178, 5474, 566, 3650, 301, - 659, 1958, 247, 9, 10, 2761, 568, 720, 2764, 404, - 2766, 137, 180, 286, 182, 563, 411, 340, 2774, 203, - 145, 180, 2726, 182, 297, 762, 4776, 4777, 4778, 2059, - 471, 136, 9, 10, 180, 80, 182, 563, 747, 748, - 749, 225, 688, 61, 9, 10, 601, 33, 173, 601, - 301, 764, 9, 10, 399, 181, 1958, 564, 561, 2670, - 719, 0, 3913, 180, 368, 182, 2003, 2004, 2909, 301, - 3013, 578, 9, 10, 589, 5474, 9, 10, 2919, 9, - 10, 5753, 575, 5323, 441, 17, 764, 5327, 308, 3501, - 5445, 180, 5447, 182, 446, 386, 595, 2080, 679, 5267, - 32, 84, 5450, 5271, 5272, 91, 180, 5233, 182, 3278, - 3279, 180, 670, 182, 459, 180, 557, 182, 9, 10, - 5118, 94, 1958, 368, 2697, 142, 9, 10, 308, 9, - 10, 600, 3301, 301, 457, 3884, 3885, 747, 748, 749, - 61, 368, 301, 9, 10, 762, 2176, 272, 2630, 5942, - 3899, 124, 3865, 471, 719, 301, 3408, 2176, 739, 2096, - 653, 5638, 4291, 526, 308, 720, 3862, 2197, 2198, 738, - 557, 219, 558, 3427, 180, 3271, 182, 3831, 482, 4915, - 2176, 3593, 327, 3609, 301, 347, 3598, 3283, 1497, 688, - 295, 83, 5351, 3609, 188, 3847, 2176, 4774, 3681, 3682, - 3683, 3684, 5178, 180, 703, 182, 200, 769, 3427, 9, - 10, 3656, 301, 199, 5886, 180, 764, 182, 3408, 2176, - 3472, 2801, 2704, 180, 2706, 182, 79, 301, 120, 82, - 183, 588, 301, 674, 9, 10, 301, 308, 764, 557, - 5595, 83, 745, 180, 2274, 182, 308, 180, 714, 182, - 180, 308, 182, 697, 635, 482, 700, 9, 10, 5499, - 2290, 301, 2292, 554, 5612, 2295, 260, 2297, 5244, 9, - 10, 2290, 5440, 2292, 2176, 2305, 2306, 3624, 120, 2216, - 229, 2810, 3472, 630, 9, 10, 5782, 5783, 729, 180, - 276, 182, 5418, 5419, 2290, 301, 2292, 180, 558, 182, - 180, 5233, 182, 320, 4017, 9, 10, 2244, 2245, 317, - 2247, 2248, 2292, 4255, 180, 638, 182, 2799, 3714, 3880, - 3881, 3882, 3883, 764, 301, 178, 471, 763, 2265, 3713, - 693, 764, 92, 2290, 2271, 2292, 301, 286, 441, 290, - 2176, 292, 729, 729, 301, 4996, 9, 10, 711, 764, - 9, 10, 764, 371, 206, 373, 674, 310, 276, 566, - 5717, 2391, 2392, 2393, 301, 656, 287, 288, 301, 2856, - 4395, 301, 9, 10, 4562, 520, 5780, 4117, 764, 4567, - 180, 762, 182, 275, 5134, 9, 10, 716, 2290, 398, - 2292, 323, 410, 444, 3711, 3712, 583, 3222, 5896, 398, - 9, 10, 3719, 3254, 3721, 180, 3723, 182, 261, 341, - 301, 729, 747, 3004, 3357, 347, 9, 10, 301, 3004, - 438, 301, 769, 4230, 3078, 5423, 1735, 478, 180, 437, - 182, 9, 10, 275, 3088, 301, 5895, 167, 168, 2469, - 180, 373, 182, 99, 5095, 297, 9, 10, 721, 5185, - 368, 24, 446, 4481, 2290, 180, 2292, 182, 92, 580, - 18, 2491, 764, 1772, 385, 474, 5870, 5871, 2498, 729, - 3808, 2501, 747, 2503, 661, 474, 180, 18, 182, 2509, - 4220, 2511, 2512, 9, 10, 588, 5418, 5419, 147, 762, - 98, 3145, 9, 10, 5898, 437, 956, 957, 958, 1808, - 2437, 301, 553, 3713, 764, 2535, 2443, 583, 3718, 5585, - 9, 10, 5588, 764, 3724, 5953, 63, 180, 747, 182, - 2550, 180, 3176, 182, 3272, 495, 301, 5686, 513, 5884, - 5885, 738, 764, 3020, 9, 10, 4670, 2567, 111, 460, - 9, 10, 484, 180, 334, 182, 104, 105, 3212, 301, - 5538, 4493, 17, 2536, 675, 573, 180, 1017, 182, 2589, - 2590, 301, 480, 104, 105, 122, 4700, 32, 513, 539, - 2589, 180, 119, 182, 111, 697, 301, 9, 10, 701, - 2601, 3235, 2612, 634, 136, 661, 346, 180, 3212, 182, - 808, 609, 2613, 2589, 6010, 6011, 764, 301, 3212, 4647, - 3925, 188, 180, 63, 182, 764, 2589, 728, 4762, 398, - 4764, 2548, 554, 200, 4642, 600, 4644, 180, 764, 182, - 5862, 4646, 412, 5865, 2561, 2562, 2563, 2564, 2611, 3315, - 9, 10, 769, 4757, 852, 2226, 2619, 4761, 301, 4763, - 137, 1950, 301, 200, 9, 10, 6062, 764, 4643, 9, - 10, 3315, 9, 10, 180, 600, 182, 15, 3910, 119, - 3501, 2691, 3242, 180, 301, 182, 4790, 4791, 4792, 654, - 2700, 5747, 432, 260, 434, 764, 4465, 301, 5754, 57, - 1989, 180, 707, 182, 181, 9, 10, 2589, 1997, 763, - 1999, 3315, 301, 6, 3637, 764, 94, 9, 10, 764, - 2639, 3315, 672, 4499, 262, 180, 3486, 182, 301, 654, - 262, 180, 346, 182, 2697, 2652, 559, 560, 4312, 4313, - 3910, 262, 6160, 301, 4437, 9, 10, 4440, 294, 4915, - 6, 2668, 279, 4071, 4071, 2756, 216, 2758, 301, 137, - 614, 2678, 117, 295, 769, 145, 4340, 2768, 180, 124, - 182, 2772, 3593, 2589, 3236, 68, 216, 3598, 764, 57, - 3609, 229, 4375, 3859, 524, 2074, 124, 145, 76, 2799, - 78, 4365, 3254, 173, 3943, 301, 9, 10, 136, 9, - 10, 2811, 714, 181, 301, 3272, 5945, 764, 92, 4272, - 6032, 89, 68, 636, 668, 173, 4492, 99, 432, 764, - 434, 180, 301, 182, 6161, 9, 10, 764, 4220, 9, - 10, 186, 188, 5621, 262, 180, 4429, 182, 286, 279, - 180, 2270, 182, 180, 200, 182, 301, 764, 2765, 297, - 4424, 764, 301, 137, 764, 2865, 2819, 297, 142, 121, - 2149, 601, 111, 2826, 2827, 3327, 57, 145, 3330, 3331, - 3332, 9, 10, 4878, 212, 137, 180, 4026, 182, 446, - 633, 99, 2072, 6, 5672, 2075, 6, 99, 180, 301, - 182, 247, 763, 9, 10, 173, 2185, 181, 89, 122, - 763, 9, 10, 763, 5795, 753, 1346, 4448, 4449, 127, - 524, 26, 114, 269, 272, 763, 180, 763, 182, 9, - 10, 4624, 753, 83, 5646, 94, 6003, 129, 2981, 517, - 518, 6, 763, 521, 522, 523, 689, 4343, 6, 692, - 9, 10, 301, 11, 5575, 68, 5577, 15, 68, 6005, - 6006, 5065, 6, 122, 145, 707, 301, 1112, 500, 501, - 120, 301, 4496, 181, 301, 5079, 719, 180, 137, 182, - 180, 6048, 182, 515, 727, 721, 5090, 137, 5092, 6056, - 763, 764, 173, 763, 2994, 9, 10, 601, 1143, 9, - 10, 6, 233, 68, 272, 148, 180, 301, 182, 263, - 180, 325, 182, 1522, 1523, 3609, 4682, 1526, 763, 301, - 9, 10, 181, 57, 68, 3609, 6093, 769, 122, 5185, - 28, 181, 763, 764, 764, 33, 94, 9, 10, 37, - 753, 763, 769, 137, 4224, 4225, 4226, 301, 4228, 4732, - 763, 764, 180, 763, 182, 89, 4236, 4237, 4238, 4239, - 3060, 3061, 3062, 68, 763, 764, 3066, 10, 763, 3069, - 104, 3060, 3061, 3062, 180, 421, 182, 402, 3078, 5173, - 612, 613, 180, 568, 182, 5050, 3086, 181, 3088, 763, - 3090, 272, 3092, 3093, 3094, 3095, 3096, 3097, 301, 3099, - 180, 301, 182, 762, 9, 10, 83, 3107, 3920, 3109, - 769, 145, 3112, 3113, 3114, 3115, 3023, 655, 3118, 3119, - 94, 180, 3122, 182, 3124, 275, 3126, 301, 3128, 655, - 763, 301, 3132, 3060, 3061, 3062, 4444, 4444, 443, 173, - 3140, 768, 3142, 120, 3144, 3145, 3146, 3147, 3148, 4444, - 33, 3151, 3152, 3153, 37, 3155, 763, 260, 3158, 111, - 137, 114, 3880, 3881, 3882, 3883, 180, 648, 182, 763, - 180, 3171, 182, 301, 4893, 4894, 3176, 1358, 1359, 3179, - 114, 3181, 3182, 3183, 763, 658, 3186, 114, 3060, 3061, - 3062, 180, 3192, 182, 667, 301, 769, 3197, 446, 672, - 763, 643, 3826, 301, 181, 122, 3658, 260, 180, 4875, - 182, 1392, 3212, 3213, 718, 763, 9, 10, 11, 3219, - 137, 301, 3222, 3212, 3681, 3682, 3683, 3684, 3228, 727, - 763, 421, 4226, 10, 4228, 3235, 247, 3237, 272, 4381, - 245, 246, 301, 4385, 4238, 4239, 3212, 762, 9, 10, - 255, 4473, 2813, 2814, 3060, 3061, 3062, 763, 764, 3212, - 3978, 267, 1422, 76, 181, 5260, 10, 763, 5, 2830, - 455, 276, 763, 764, 768, 180, 763, 182, 2557, 2840, - 2841, 69, 3282, 200, 3284, 768, 327, 301, 764, 9, - 10, 301, 69, 3282, 763, 3845, 94, 4436, 275, 116, - 1460, 1461, 9, 10, 6016, 763, 764, 36, 36, 2728, - 127, 3311, 301, 4473, 3813, 3315, 3282, 134, 763, 5317, - 763, 764, 4461, 4462, 763, 69, 3315, 368, 49, 301, - 991, 5349, 3282, 84, 3282, 5156, 124, 5156, 674, 3791, - 3212, 4649, 4649, 2904, 2905, 2906, 2907, 3282, 4643, 3315, - 1011, 3258, 4767, 3282, 3282, 3282, 5351, 1018, 1019, 763, - 764, 763, 91, 91, 1274, 4923, 3273, 4667, 6, 4669, - 1280, 1281, 4672, 161, 95, 124, 3376, 4901, 4678, 4679, - 763, 764, 5537, 762, 161, 114, 114, 180, 3315, 182, - 4046, 179, 433, 114, 593, 4695, 301, 2676, 9, 10, - 129, 129, 179, 763, 764, 67, 3212, 224, 5653, 4220, - 3282, 763, 764, 633, 763, 721, 722, 161, 724, 180, - 726, 182, 460, 3880, 3881, 3882, 3883, 688, 763, 570, - 471, 763, 764, 763, 5192, 179, 763, 3437, 255, 4092, - 4093, 763, 764, 4096, 4097, 763, 764, 235, 236, 4102, - 4103, 763, 764, 176, 459, 3446, 267, 4811, 235, 236, - 180, 3913, 182, 3463, 192, 763, 764, 763, 764, 763, - 199, 199, 764, 180, 176, 182, 3282, 3477, 113, 520, - 4797, 763, 4032, 763, 764, 109, 110, 9, 10, 517, - 518, 235, 236, 521, 522, 523, 763, 764, 160, 412, - 3500, 114, 2781, 342, 5087, 167, 168, 762, 301, 3315, - 551, 3963, 327, 763, 764, 768, 557, 762, 4068, 240, - 762, 3978, 763, 764, 57, 762, 3526, 3527, 3435, 3436, - 4817, 763, 764, 762, 4821, 3535, 763, 764, 762, 260, - 301, 762, 5106, 205, 762, 4853, 3453, 5545, 5325, 53, - 54, 55, 56, 763, 764, 276, 89, 762, 49, 193, - 763, 3561, 34, 763, 3517, 3518, 3519, 3520, 762, 3522, - 3523, 104, 162, 4881, 4881, 4074, 109, 110, 57, 9, - 10, 301, 4236, 4237, 6, 247, 4881, 294, 721, 763, - 4885, 3591, 3592, 763, 301, 5278, 763, 764, 762, 320, - 415, 762, 106, 107, 108, 752, 753, 763, 764, 3609, - 89, 762, 145, 4065, 763, 764, 3569, 3570, 762, 3572, - 3609, 3574, 3575, 3576, 3577, 3578, 3579, 3580, 3628, 3582, - 5388, 4811, 3585, 674, 721, 763, 3589, 366, 366, 3628, - 173, 763, 764, 3609, 763, 764, 68, 763, 764, 187, - 3650, 412, 187, 157, 158, 762, 471, 763, 180, 664, - 182, 666, 3628, 762, 94, 763, 145, 5333, 187, 5687, - 763, 764, 3672, 69, 763, 764, 762, 398, 3628, 763, - 764, 762, 3609, 763, 762, 5683, 5684, 762, 729, 69, - 762, 5686, 763, 764, 173, 3695, 762, 188, 4322, 337, - 3700, 3628, 762, 5802, 763, 520, 368, 3707, 762, 200, - 3710, 3700, 4293, 763, 764, 763, 764, 762, 380, 5540, - 5541, 5540, 5541, 762, 228, 3004, 762, 3006, 763, 764, - 4448, 4449, 762, 3733, 3734, 762, 5429, 3609, 4264, 272, - 5433, 263, 557, 381, 762, 383, 762, 5055, 5055, 763, - 180, 734, 182, 763, 762, 368, 3628, 3757, 762, 3759, - 762, 3761, 375, 3763, 11, 161, 129, 763, 764, 260, - 5070, 763, 764, 3700, 763, 762, 3195, 390, 269, 301, - 3687, 161, 762, 179, 4408, 3785, 498, 34, 500, 501, - 769, 763, 762, 272, 762, 3074, 762, 3076, 302, 179, - 763, 764, 415, 515, 167, 168, 3806, 3807, 4464, 906, - 262, 908, 909, 910, 61, 4272, 762, 914, 762, 916, - 160, 483, 3628, 245, 246, 762, 3826, 762, 3700, 762, - 4464, 3831, 2139, 255, 5832, 193, 199, 3837, 476, 235, - 236, 763, 764, 763, 764, 763, 764, 3847, 762, 3849, - 579, 579, 2159, 762, 276, 235, 236, 4583, 763, 674, - 762, 2168, 109, 110, 762, 205, 762, 2174, 763, 764, - 4464, 301, 763, 764, 762, 2182, 4789, 763, 764, 193, - 4464, 5620, 129, 762, 3884, 3885, 2193, 525, 762, 2196, - 394, 5584, 554, 762, 3700, 762, 4646, 9, 10, 3899, - 612, 613, 763, 764, 762, 5301, 519, 247, 762, 630, - 762, 9, 10, 276, 729, 5301, 763, 764, 762, 532, - 167, 168, 6021, 644, 762, 172, 762, 648, 762, 176, - 421, 109, 110, 4659, 5556, 573, 762, 33, 551, 762, - 36, 762, 3503, 3504, 762, 3506, 3507, 495, 5946, 764, - 5708, 129, 199, 368, 762, 446, 3956, 686, 686, 463, - 763, 764, 750, 751, 752, 753, 754, 755, 756, 757, - 762, 692, 762, 750, 751, 752, 753, 754, 755, 756, - 757, 763, 764, 763, 764, 11, 764, 763, 764, 167, - 168, 4448, 4449, 763, 764, 91, 94, 762, 719, 95, - 9, 10, 11, 762, 3423, 368, 750, 751, 752, 753, - 754, 755, 756, 757, 762, 4671, 42, 57, 114, 1712, - 1713, 199, 4022, 762, 528, 663, 530, 4027, 368, 276, - 762, 535, 762, 129, 5700, 3596, 762, 459, 763, 764, - 380, 747, 5566, 762, 762, 4595, 684, 762, 4039, 89, - 763, 764, 762, 300, 80, 570, 471, 83, 4058, 763, - 764, 674, 762, 394, 104, 762, 92, 762, 180, 4069, - 182, 327, 762, 99, 762, 4625, 689, 103, 5474, 3986, - 4033, 328, 180, 3990, 182, 5668, 762, 113, 5474, 762, - 116, 333, 334, 762, 120, 599, 122, 762, 276, 763, - 764, 127, 3521, 199, 762, 145, 763, 764, 134, 762, - 4063, 137, 368, 763, 764, 762, 142, 480, 763, 764, - 762, 368, 300, 762, 176, 762, 762, 4877, 370, 762, - 4173, 762, 463, 173, 94, 5718, 551, 163, 642, 4674, - 176, 233, 557, 483, 240, 655, 3565, 4147, 3567, 3568, - 176, 263, 769, 644, 3573, 181, 762, 769, 3, 415, - 769, 769, 3581, 5385, 769, 769, 769, 3586, 769, 769, - 412, 180, 769, 182, 200, 769, 672, 433, 3457, 420, - 276, 137, 92, 28, 672, 688, 661, 495, 33, 301, - 368, 414, 37, 608, 92, 40, 764, 528, 224, 530, - 764, 448, 282, 301, 535, 661, 4249, 233, 342, 3488, - 3489, 5519, 5519, 764, 554, 471, 376, 764, 764, 4219, - 9, 10, 565, 683, 5519, 5385, 17, 731, 719, 255, - 9, 10, 272, 480, 747, 727, 727, 80, 742, 446, - 763, 32, 664, 665, 666, 667, 762, 286, 229, 275, - 95, 234, 61, 390, 5, 281, 282, 5565, 770, 674, - 3539, 389, 569, 4, 520, 727, 29, 58, 599, 295, - 366, 297, 4998, 412, 300, 38, 334, 5003, 5004, 70, - 762, 768, 768, 198, 762, 373, 5952, 193, 762, 5872, - 34, 762, 301, 762, 762, 551, 152, 60, 713, 90, - 92, 557, 480, 769, 92, 94, 14, 295, 769, 764, - 176, 642, 769, 158, 729, 94, 415, 147, 629, 4319, - 4320, 688, 4322, 763, 87, 762, 111, 492, 464, 92, - 294, 4331, 123, 4333, 97, 94, 4336, 236, 183, 5961, - 122, 5658, 5659, 294, 5661, 762, 147, 589, 111, 4349, - 768, 4351, 764, 4353, 762, 4355, 752, 753, 754, 755, - 756, 757, 6, 126, 606, 412, 763, 68, 4368, 4369, - 133, 751, 752, 753, 754, 755, 756, 757, 9, 10, - 11, 5689, 5689, 318, 147, 763, 763, 5682, 764, 631, - 769, 180, 763, 182, 5689, 763, 634, 763, 92, 646, - 731, 180, 34, 182, 769, 92, 763, 763, 4408, 172, - 763, 742, 297, 69, 769, 762, 442, 136, 674, 99, - 762, 267, 192, 764, 92, 6008, 42, 764, 670, 61, - 3991, 3992, 3993, 3994, 3995, 764, 3997, 3998, 3999, 4000, - 4001, 769, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, - 4011, 4012, 215, 672, 4015, 4016, 754, 124, 221, 222, - 764, 764, 6084, 4416, 4464, 6131, 15, 312, 475, 685, - 435, 92, 235, 729, 764, 4464, 420, 109, 110, 6145, - 5619, 672, 764, 579, 762, 6151, 342, 278, 735, 412, - 770, 6157, 764, 69, 4494, 124, 192, 129, 4464, 290, - 116, 5818, 234, 5820, 5821, 161, 345, 213, 764, 5259, - 495, 127, 301, 495, 342, 495, 495, 362, 134, 495, - 69, 495, 301, 179, 764, 764, 747, 267, 4528, 658, - 5838, 5838, 388, 296, 84, 167, 168, 4464, 5264, 581, - 172, 727, 26, 5838, 176, 5840, 94, 163, 124, 180, - 754, 182, 764, 763, 403, 764, 762, 735, 465, 580, - 176, 465, 368, 763, 29, 4126, 764, 199, 294, 718, - 4131, 334, 281, 762, 17, 124, 373, 4530, 292, 235, - 236, 292, 210, 173, 687, 161, 181, 136, 49, 764, - 686, 4591, 355, 5045, 94, 764, 764, 4550, 4551, 762, - 391, 267, 393, 179, 115, 5518, 122, 4560, 224, 415, - 763, 5750, 161, 469, 412, 5114, 763, 763, 167, 168, - 4620, 763, 754, 763, 94, 763, 753, 4627, 763, 762, - 179, 234, 763, 763, 757, 192, 762, 4637, 763, 255, - 4593, 763, 763, 763, 276, 763, 763, 763, 4668, 764, - 764, 764, 763, 114, 763, 5474, 5795, 764, 4464, 235, - 236, 4681, 4569, 212, 509, 471, 429, 764, 300, 4689, - 301, 762, 18, 763, 763, 531, 4696, 4630, 4698, 4699, - 762, 762, 769, 360, 11, 5279, 235, 236, 763, 576, - 747, 262, 262, 549, 550, 5279, 328, 262, 554, 555, - 556, 546, 4702, 548, 5156, 267, 551, 733, 762, 554, - 555, 57, 98, 5852, 94, 42, 764, 92, 92, 49, - 489, 747, 4722, 4723, 762, 762, 769, 188, 769, 764, - 764, 763, 94, 424, 4725, 225, 368, 763, 764, 200, - 86, 767, 768, 89, 769, 551, 769, 4166, 4167, 4168, - 600, 557, 233, 80, 545, 62, 83, 4710, 104, 105, - 5310, 764, 6, 419, 764, 92, 622, 4186, 4187, 4048, - 4189, 42, 99, 764, 717, 620, 103, 92, 176, 176, - 4687, 111, 262, 279, 124, 99, 764, 762, 633, 116, - 763, 543, 247, 120, 639, 122, 4796, 247, 247, 145, - 127, 643, 608, 247, 297, 568, 6123, 134, 269, 247, - 137, 176, 762, 92, 670, 142, 661, 263, 164, 747, - 747, 747, 747, 668, 764, 670, 172, 173, 747, 747, - 747, 747, 718, 747, 747, 747, 163, 494, 747, 747, - 685, 125, 747, 412, 747, 116, 747, 747, 480, 176, - 747, 5401, 747, 698, 181, 747, 127, 702, 703, 747, - 4860, 652, 4862, 134, 747, 5459, 747, 747, 674, 763, - 200, 716, 42, 200, 763, 5459, 4876, 303, 278, 763, - 5474, 4924, 747, 282, 69, 730, 763, 769, 764, 137, - 5474, 769, 163, 4893, 4894, 5563, 764, 224, 72, 315, - 769, 267, 769, 267, 267, 176, 233, 713, 267, 700, - 764, 738, 4912, 492, 759, 374, 262, 247, 122, 763, - 765, 412, 767, 729, 121, 271, 272, 273, 255, 5479, - 121, 769, 723, 187, 763, 769, 769, 763, 763, 763, - 763, 786, 753, 753, 763, 4364, 116, 26, 275, 763, - 795, 763, 32, 224, 34, 282, 764, 127, 764, 762, - 421, 806, 762, 808, 134, 681, 320, 4386, 295, 267, - 297, 229, 42, 300, 5017, 94, 161, 570, 4539, 94, - 94, 61, 94, 477, 255, 446, 262, 262, 206, 769, - 320, 4552, 4945, 163, 179, 753, 841, 764, 843, 424, - 845, 764, 847, 848, 849, 850, 851, 852, 4961, 854, - 173, 282, 762, 184, 646, 6154, 5059, 127, 127, 5062, - 11, 768, 308, 5522, 762, 764, 747, 747, 764, 109, - 110, 529, 5032, 494, 114, 315, 91, 176, 769, 385, - 5060, 764, 650, 26, 103, 769, 116, 393, 5048, 764, - 235, 236, 390, 763, 224, 762, 34, 127, 390, 5653, - 905, 262, 907, 5731, 134, 214, 262, 262, 398, 5653, - 915, 11, 917, 5026, 762, 99, 762, 762, 173, 173, - 769, 754, 220, 61, 444, 255, 147, 932, 5540, 5541, - 267, 421, 4999, 163, 750, 751, 752, 753, 754, 755, - 756, 757, 763, 735, 570, 754, 176, 176, 113, 189, - 334, 147, 123, 662, 123, 763, 446, 763, 763, 173, - 763, 762, 4541, 4542, 4543, 4544, 764, 769, 589, 4548, - 4549, 109, 110, 763, 4553, 769, 229, 4556, 764, 763, - 4559, 763, 181, 4562, 5144, 763, 26, 4566, 4567, 762, - 747, 129, 762, 215, 224, 5144, 763, 229, 5111, 5159, - 769, 94, 94, 763, 494, 763, 206, 763, 127, 630, - 250, 251, 252, 127, 750, 751, 752, 753, 754, 755, - 756, 757, 764, 93, 147, 255, 294, 648, 5188, 167, - 168, 206, 540, 747, 172, 275, 762, 5853, 176, 762, - 764, 750, 751, 752, 753, 754, 755, 756, 757, 762, - 762, 674, 674, 403, 390, 725, 403, 5144, 192, 762, - 300, 199, 627, 762, 764, 533, 762, 733, 689, 763, - 366, 692, 192, 267, 192, 6148, 32, 192, 26, 1084, - 192, 128, 689, 128, 192, 192, 577, 689, 328, 192, - 330, 192, 262, 192, 267, 11, 763, 424, 719, 5302, - 225, 5261, 58, 5263, 98, 409, 727, 347, 487, 349, - 231, 763, 5144, 26, 70, 4554, 763, 297, 763, 5279, - 489, 763, 629, 181, 763, 26, 764, 763, 368, 763, - 5279, 764, 138, 192, 90, 375, 764, 127, 276, 127, - 764, 1146, 1147, 763, 431, 142, 737, 1152, 762, 762, - 390, 93, 763, 5279, 644, 763, 211, 1162, 648, 764, - 400, 176, 300, 11, 1169, 222, 1171, 123, 769, 763, - 1175, 1176, 9, 10, 763, 415, 661, 4616, 5144, 111, - 764, 763, 725, 129, 5843, 93, 725, 199, 173, 173, - 328, 697, 5279, 590, 700, 176, 176, 470, 263, 689, - 1205, 368, 226, 709, 424, 570, 297, 122, 412, 763, - 763, 137, 483, 5373, 533, 600, 53, 54, 55, 56, - 123, 32, 763, 26, 669, 763, 282, 764, 282, 719, - 368, 763, 472, 763, 1239, 373, 769, 727, 562, 1244, - 1245, 1246, 482, 764, 762, 10, 733, 5279, 763, 762, - 762, 5411, 208, 5413, 763, 1260, 129, 762, 6086, 762, - 747, 129, 11, 640, 11, 360, 1271, 763, 11, 106, - 107, 108, 122, 129, 297, 764, 763, 764, 1283, 519, - 767, 768, 764, 764, 763, 372, 654, 129, 260, 147, - 5450, 407, 532, 5453, 764, 533, 282, 763, 1303, 5459, - 430, 344, 763, 5370, 763, 762, 282, 763, 351, 10, - 5459, 569, 6022, 267, 5474, 404, 282, 33, 1323, 762, - 157, 158, 278, 764, 367, 5474, 412, 769, 17, 5509, - 762, 67, 572, 5459, 377, 378, 379, 763, 578, 763, - 176, 764, 480, 180, 387, 182, 139, 762, 5474, 84, - 1355, 84, 762, 260, 297, 279, 763, 570, 763, 1364, - 588, 425, 588, 762, 762, 1370, 762, 1372, 1373, 635, - 763, 1376, 5459, 348, 762, 173, 763, 150, 5538, 300, - 186, 1386, 764, 26, 26, 33, 79, 5474, 36, 5538, - 26, 228, 768, 768, 768, 61, 5556, 637, 61, 193, - 763, 10, 669, 680, 644, 750, 751, 752, 753, 754, - 755, 756, 757, 695, 763, 176, 762, 129, 762, 762, - 109, 110, 686, 725, 129, 5585, 172, 5459, 5588, 321, - 279, 61, 11, 570, 674, 391, 26, 393, 26, 26, - 122, 763, 5474, 91, 5511, 413, 707, 95, 6158, 689, - 690, 5538, 5612, 33, 635, 33, 762, 762, 403, 403, - 415, 5621, 702, 92, 301, 302, 114, 762, 61, 5629, - 1475, 763, 574, 1478, 762, 1480, 762, 169, 721, 768, - 570, 129, 226, 768, 527, 1490, 762, 80, 570, 681, - 142, 320, 1497, 5653, 412, 5608, 1501, 1502, 541, 764, - 763, 763, 4941, 762, 5653, 762, 5538, 334, 646, 92, - 762, 407, 5672, 26, 26, 762, 109, 110, 5678, 314, - 762, 114, 1527, 176, 764, 1530, 176, 5653, 225, 764, - 63, 1536, 763, 193, 279, 465, 763, 412, 763, 707, - 75, 5120, 26, 5122, 192, 5124, 173, 635, 113, 233, - 762, 199, 1557, 764, 3282, 3956, 923, 394, 1264, 29, - 1925, 3587, 5124, 5120, 3438, 1222, 5653, 5459, 38, 5468, - 5122, 5457, 5538, 5456, 5459, 5583, 4113, 5655, 5814, 5297, - 1585, 6023, 5742, 626, 4035, 1351, 5023, 5747, 544, 545, - 60, 3439, 240, 4223, 5754, 5476, 189, 735, 641, 5932, - 5931, 3628, 1395, 3612, 4924, 5184, 4249, 2202, 818, 1783, - 2706, 3963, 3697, 942, 3673, 4780, 799, 87, 5197, 2870, - 4501, 5653, 92, 2292, 5784, 2293, 463, 97, 276, 5068, - 2295, 5744, 2294, 2219, 677, 2083, 5591, 5797, 5278, 1391, - 5438, 111, 4152, 3535, 4426, 5083, 4430, 4866, 691, 5199, - 5859, 5556, 5955, 6084, 2531, 5203, 126, 250, 251, 252, - 6041, 6086, 4017, 133, 4442, 5731, 4881, 5780, 2747, 4147, - 5830, 5976, 5455, 4705, 4992, 6011, 5794, 147, 5672, 4153, - 5784, 5005, 275, 1688, 3714, 5797, 5853, 5653, 2956, 3488, - 2143, 528, 1697, 530, 3796, 4382, 4385, 4377, 535, 6047, - 485, 485, 172, 1708, 6005, 5441, 6006, 300, 5887, 4152, - 5747, 2167, 401, 4702, 1719, 5754, 1980, 3419, 366, 5430, - 1236, 5515, 1368, 2861, 3415, 5848, 415, 5887, 417, 5324, - 1735, 5891, 2119, 2548, 2678, 328, 3687, 330, 3038, 1327, - 4284, 4072, 5520, 3811, 700, 215, 5813, 5055, 2809, 1324, - 4416, 221, 222, 5838, 5867, 5868, 349, 3473, 447, 5930, - 2044, 3144, 599, 3140, 5924, 235, 1716, 1772, 3845, 1774, - 1594, 1626, 3355, 462, 1774, 368, 3929, 344, 3349, 4902, - 4397, 5739, 375, 3343, 351, 5898, 6045, 5579, 1793, 4932, - 6046, 5312, 3229, 5953, 4058, 1800, 1801, 390, 5311, 3835, - 367, 5961, 5192, 1808, 1809, 642, 495, 400, 5708, 5333, - 377, 378, 379, 1818, 5188, 1600, 3913, 5232, 2790, 5310, - 387, 4048, 415, 2990, 513, 1536, 296, 1832, 1833, 485, - 3032, 1793, 4875, 1838, 1839, 1840, 1841, 1842, 1843, 1844, - 1845, 1846, 3514, 6003, 4528, 6005, 6006, 1852, 4492, 674, - 841, 2212, 5965, 5952, 671, 5968, 2648, 1858, 3338, 842, - 2649, 671, 1867, 1868, 334, 1870, 2700, 1322, 509, 6072, - 5255, 5244, 1970, 4287, 6082, 5489, 6110, 5665, 6151, 472, - 6157, 1016, 4441, 3930, 2671, 355, 3212, 1892, 6048, 482, - 942, 3313, 4464, 670, 731, 71, 6056, 2473, 670, 2593, - 2271, 3291, 6105, 1997, 593, 742, 3292, 1802, 668, 1155, - 3271, 600, 4165, 2856, 1532, 3675, 3430, 708, 5367, 4173, - 1272, 610, 3924, 4483, 6084, 3343, 519, 4905, 485, 485, - 485, 579, 6018, 6093, 623, 32, 112, 34, 2766, 532, - 6070, -1, 5843, -1, -1, 1950, -1, -1, -1, -1, - -1, 2013, -1, -1, -1, 1960, -1, -1, -1, 429, - 527, 1966, -1, -1, 61, 654, 1971, -1, 657, -1, - -1, -1, -1, 149, 541, -1, -1, -1, -1, 572, - -1, -1, -1, 672, 1989, 578, -1, -1, -1, -1, - -1, -1, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, - 6160, 2006, 5723, 5724, -1, 5726, 5727, 5728, 5729, -1, - -1, -1, 109, 110, 7, -1, -1, 114, -1, -1, - -1, -1, -1, -1, 5745, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 686, 136, - -1, -1, 15, -1, 637, 18, -1, -1, 41, -1, - -1, 644, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 2074, - 63, -1, -1, -1, 641, -1, -1, -1, -1, -1, - 73, 674, -1, -1, 57, -1, -1, -1, -1, -1, - -1, 2096, 189, -1, -1, -1, 689, 690, 568, -1, - -1, 5, -1, 7, 8, 98, -1, -1, -1, 702, - 677, 2116, -1, 86, -1, -1, 89, -1, -1, -1, - -1, 114, -1, -1, 691, -1, 119, 31, -1, 33, - -1, 104, 105, -1, -1, 39, -1, -1, -1, -1, - -1, -1, -1, -1, 2149, 5866, -1, -1, 5869, 142, - -1, -1, -1, 250, 251, 252, 5877, 61, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 73, - -1, -1, 145, -1, -1, 768, 80, -1, 275, 2184, - 2185, 5620, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 164, -1, -1, -1, -1, -1, -1, -1, 172, - 173, -1, -1, 300, 17, 109, 110, 2212, -1, 2214, - 114, 2216, -1, 2218, -1, -1, -1, -1, 211, -1, - -1, -1, -1, -1, -1, 2230, 2231, -1, -1, -1, - -1, 328, 2237, 330, -1, -1, 229, -1, 142, 2244, - 2245, -1, 2247, 2248, 237, -1, -1, 717, -1, -1, - 347, -1, 349, -1, -1, -1, -1, 2262, -1, -1, - 2265, -1, -1, -1, -1, -1, 2271, -1, -1, -1, - -1, 368, 2277, 177, -1, -1, 269, 181, 375, -1, - -1, 2286, -1, -1, 2289, 189, 279, 280, 192, 262, - 466, -1, -1, 390, -1, -1, 109, 110, 271, 272, - 273, -1, -1, 400, -1, -1, -1, -1, -1, -1, - 214, -1, -1, -1, 5893, -1, -1, -1, 415, -1, - 496, 497, -1, 499, 500, 501, 502, 503, -1, 505, - 506, 507, 508, 509, 510, 511, 512, -1, 514, 515, - 516, -1, -1, -1, -1, -1, 250, 251, 252, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 275, -1, -1, -1, 472, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 482, -1, -1, -1, -1, + 0, 24, 670, 671, 671, 820, 518, 558, 1409, 0, + 757, 1224, 72, 1323, 735, 736, 3, 1409, 918, 1544, + 0, 1605, 1337, 1719, 1784, 2123, 1772, 670, 1206, 554, + 1169, 1170, 1171, 553, 1791, 2053, 621, 566, 664, 1178, + 1862, 1324, 1324, 1732, 621, 2051, 1224, 2023, 1862, 1815, + 2026, 2291, 1621, 2204, 2944, 0, 1405, 855, 2771, 1821, + 0, 1530, 1485, 0, 1413, 0, 0, 1847, 1848, 1831, + 2191, 3032, 2212, 3434, 3476, 1833, 2025, 983, 34, 2027, + 1429, 1499, 3209, 2683, 1146, 670, 765, 3062, 3063, 639, + 1439, 692, 2990, 670, 3536, 1465, 3536, 1643, 2796, 4045, + 1340, 639, 2750, 623, 0, 625, 626, 627, 628, 629, + 1459, 631, 632, 1340, 639, 635, 636, 1426, 668, 3610, + 3669, 1399, 1028, 1401, 3610, 1403, 3585, 1405, 0, 1612, + 668, 3326, 2077, 3610, 806, 1413, 1445, 1446, 1447, 0, + 3610, 1450, 1420, 668, 1422, 945, 169, 3819, 3478, 3610, + 1743, 1429, 3610, 2019, 3490, 1464, 1283, 983, 1751, 4131, + 685, 1439, 3701, 4229, 2283, 1443, 711, 1947, 2681, 714, + 1448, 2288, 3501, 2066, 1949, 2120, 4594, 702, 2852, 1085, + 2920, 1459, 1460, 1461, 1462, 1463, 2852, 2920, 819, 1949, + 4029, 3262, 3263, 3078, 2292, 3536, 3838, 4944, 3527, 3528, + 4031, 3421, 4073, 3557, 4121, 2705, 1752, 1753, 5025, 1755, + 1756, 1757, 1758, 1759, 1760, 4121, 1762, 1763, 1764, 1765, + 1766, 1767, 1768, 1769, 3820, 1784, 1983, 3820, 4478, 3345, + 4121, 2150, 4122, 818, 4124, 820, 4414, 4127, 3354, 11, + 4019, 818, 73, 820, 2178, 10, 2920, 4725, 1148, 1376, + 2246, 4141, 2248, 2249, 2920, 3940, 1409, 4261, 2910, 1412, + 1854, 786, 11, 3592, 3593, 11, 1419, 9, 10, 61, + 28, 26, 1425, 6, 1565, 11, 2190, 6, 1872, 1079, + 1080, 1081, 92, 50, 6, 566, 61, 6, 80, 80, + 566, 1091, 61, 94, 74, 80, 566, 3599, 566, 11, + 2833, 9, 10, 1897, 1898, 80, 9, 10, 11, 9, + 10, 80, 80, 9, 10, 80, 9, 10, 341, 9, + 10, 4024, 9, 10, 3246, 3550, 846, 193, 2085, 854, + 176, 80, 1591, 1592, 12, 9, 10, 262, 858, 859, + 742, 1600, 9, 10, 26, 4694, 137, 9, 10, 1255, + 765, 9, 10, 125, 1408, 1409, 176, 3867, 1412, 104, + 3516, 229, 226, 9, 10, 1419, 3442, 12, 226, 137, + 193, 1425, 2844, 1632, 176, 1634, 4155, 3572, 61, 125, + 9, 10, 152, 785, 263, 9, 10, 65, 113, 4393, + 1949, 1650, 1651, 113, 1653, 4446, 1408, 1409, 226, 80, + 1412, 94, 1661, 1662, 181, 262, 1665, 1419, 360, 9, + 10, 5273, 148, 1425, 170, 1226, 1407, 297, 4060, 1410, + 65, 104, 278, 148, 9, 10, 1417, 24, 61, 60, + 373, 9, 10, 17, 213, 2780, 9, 10, 180, 1501, + 182, 1432, 3844, 4586, 83, 9, 10, 303, 32, 104, + 4886, 1203, 182, 9, 10, 354, 369, 92, 9, 10, + 61, 219, 9, 10, 5089, 1527, 262, 5628, 14, 345, + 206, 104, 180, 1225, 182, 4447, 5015, 180, 3179, 182, + 180, 120, 182, 148, 180, 440, 182, 180, 192, 182, + 180, 558, 182, 180, 11, 182, 513, 282, 243, 32, + 61, 5248, 114, 104, 295, 375, 180, 456, 182, 61, + 513, 9, 10, 180, 148, 182, 4481, 61, 180, 92, + 182, 206, 180, 104, 182, 3811, 3039, 295, 63, 1998, + 5459, 3531, 297, 4563, 180, 576, 182, 80, 4568, 176, + 2297, 357, 297, 104, 9, 10, 80, 92, 176, 614, + 30, 180, 234, 182, 145, 267, 180, 206, 182, 301, + 104, 548, 80, 17, 551, 148, 2562, 2563, 2564, 2565, + 113, 639, 206, 1245, 282, 9, 10, 73, 32, 385, + 180, 3351, 182, 600, 119, 1306, 176, 1308, 1309, 1310, + 1311, 1312, 1313, 301, 671, 180, 402, 182, 301, 234, + 3561, 301, 180, 668, 182, 301, 86, 180, 301, 182, + 86, 301, 297, 193, 301, 104, 180, 57, 182, 137, + 172, 621, 3527, 3528, 180, 3326, 182, 301, 104, 180, + 621, 182, 587, 180, 301, 182, 275, 654, 638, 301, + 69, 621, 229, 301, 1169, 176, 1171, 638, 69, 89, + 1175, 1176, 652, 193, 193, 301, 2796, 3852, 638, 2077, + 217, 229, 729, 181, 104, 1804, 4068, 193, 127, 234, + 670, 671, 301, 216, 1984, 1220, 676, 301, 554, 670, + 1205, 216, 180, 80, 182, 234, 1825, 3592, 3593, 4043, + 670, 104, 692, 638, 229, 3040, 234, 5322, 1496, 286, + 234, 301, 2120, 334, 1610, 145, 662, 4734, 5637, 374, + 2025, 660, 4171, 234, 1386, 180, 301, 182, 286, 1625, + 1626, 762, 229, 301, 229, 621, 86, 58, 301, 282, + 600, 234, 161, 173, 229, 460, 492, 301, 1800, 323, + 161, 4071, 638, 5282, 279, 301, 180, 2030, 182, 621, + 301, 286, 297, 17, 301, 234, 1818, 341, 179, 247, + 621, 5922, 297, 347, 494, 282, 638, 9, 10, 262, + 2052, 317, 5208, 170, 670, 554, 2724, 638, 390, 4650, + 679, 286, 578, 1845, 1610, 616, 489, 1587, 1588, 373, + 323, 286, 123, 1322, 297, 271, 652, 710, 798, 3926, + 1626, 4486, 2220, 301, 5666, 4490, 2568, 262, 4149, 670, + 762, 2569, 172, 813, 347, 2028, 399, 1329, 818, 762, + 820, 262, 813, 292, 780, 99, 2066, 818, 477, 820, + 1502, 81, 272, 813, 9, 10, 301, 234, 818, 2066, + 820, 5016, 2791, 707, 234, 770, 96, 567, 4899, 707, + 2028, 2161, 5030, 4996, 4345, 2976, 672, 3531, 2168, 3599, + 847, 848, 849, 850, 2553, 3531, 3599, 301, 813, 323, + 234, 3572, 1778, 704, 4030, 125, 601, 208, 1784, 707, + 711, 131, 762, 714, 4888, 764, 717, 341, 2833, 4592, + 4855, 5240, 4221, 347, 762, 895, 42, 853, 2467, 2468, + 856, 4919, 4920, 769, 5082, 762, 906, 2852, 908, 909, + 910, 271, 616, 1585, 914, 165, 916, 813, 764, 1321, + 4222, 654, 818, 923, 820, 3599, 906, 4706, 908, 909, + 910, 4441, 923, 3599, 914, 654, 916, 3859, 180, 762, + 182, 813, 3594, 923, 764, 945, 818, 1497, 820, 4174, + 950, 629, 813, 2499, 764, 1370, 1862, 818, 1784, 689, + 727, 4037, 764, 764, 2510, 2910, 2512, 2513, 701, 3502, + 116, 726, 1497, 1773, 5152, 2920, 768, 768, 923, 4621, + 980, 127, 762, 768, 629, 2276, 766, 764, 134, 2116, + 990, 2282, 762, 768, 2133, 5022, 768, 1598, 747, 768, + 768, 5479, 738, 768, 2157, 180, 764, 182, 753, 2492, + 906, 747, 908, 909, 910, 5193, 5194, 163, 914, 768, + 916, 5768, 768, 5770, 5771, 767, 2179, 923, 3024, 2182, + 1090, 2965, 2966, 762, 906, 747, 908, 909, 910, 2192, + 762, 1322, 914, 1949, 916, 906, 1322, 908, 909, 910, + 2812, 923, 1322, 914, 1322, 916, 764, 3529, 2652, 301, + 764, 764, 923, 763, 764, 747, 1667, 763, 764, 297, + 753, 764, 5250, 763, 764, 672, 763, 764, 224, 1079, + 1080, 1081, 1082, 1684, 1895, 565, 1687, 768, 1689, 763, + 764, 1091, 1693, 1694, 1695, 492, 763, 764, 753, 1851, + 1701, 1853, 764, 2157, 738, 763, 764, 752, 4394, 255, + 2369, 385, 747, 2372, 1866, 1530, 1837, 1869, 764, 4119, + 753, 1873, 1801, 1949, 763, 2179, 301, 764, 2182, 741, + 714, 2390, 628, 2999, 763, 764, 764, 617, 2192, 763, + 764, 2132, 2401, 2134, 260, 2157, 9, 10, 1900, 1901, + 1902, 3852, 753, 5900, 5901, 4797, 3075, 637, 3077, 5409, + 5907, 752, 753, 2154, 764, 4495, 625, 2179, 3938, 3939, + 2182, 651, 753, 2164, 764, 762, 3689, 5094, 763, 764, + 2192, 714, 763, 764, 5055, 2176, 764, 206, 5094, 769, + 763, 1870, 753, 673, 762, 9, 10, 6014, 747, 4529, + 764, 2263, 2193, 5094, 769, 5095, 3357, 764, 764, 753, + 1735, 764, 763, 4992, 5232, 5219, 769, 764, 28, 4861, + 769, 4863, 762, 4908, 4909, 768, 747, 762, 762, 3205, + 769, 769, 86, 764, 768, 769, 5656, 9, 10, 727, + 9, 10, 1302, 769, 747, 3002, 5993, 1772, 769, 513, + 768, 357, 1252, 6070, 1254, 762, 3013, 762, 1808, 2059, + 714, 4703, 4616, 4703, 753, 4594, 764, 762, 747, 762, + 1808, 9, 10, 129, 763, 764, 5303, 753, 3274, 2077, + 554, 4617, 6, 1808, 2005, 5064, 2007, 5066, 35, 2010, + 5069, 2012, 2013, 762, 1966, 35, 5075, 5076, 10, 764, + 5475, 61, 9, 10, 2051, 233, 4902, 762, 4638, 4902, + 5089, 234, 4532, 167, 168, 1958, 4221, 180, 172, 182, + 113, 762, 2120, 763, 282, 754, 755, 756, 757, 282, + 764, 752, 753, 754, 755, 756, 757, 32, 1338, 14, + 753, 418, 9, 10, 3033, 676, 262, 234, 1304, 1305, + 763, 764, 327, 4548, 4481, 148, 716, 747, 286, 350, + 5538, 5779, 4703, 4558, 4559, 762, 180, 260, 182, 297, + 4486, 768, 769, 1958, 4490, 568, 138, 1377, 5278, 769, + 1380, 1958, 152, 747, 73, 1372, 1801, 35, 5280, 1220, + 282, 1222, 3340, 4094, 4095, 627, 1941, 4098, 4099, 5417, + 5418, 630, 2070, 4104, 4105, 769, 4477, 5585, 180, 219, + 182, 180, 297, 182, 260, 2833, 297, 271, 298, 299, + 260, 5260, 696, 233, 1969, 1950, 142, 33, 206, 6, + 163, 260, 445, 2572, 92, 2648, 2575, 441, 301, 9, + 10, 203, 180, 111, 182, 4119, 5315, 1997, 129, 6, + 5868, 5869, 260, 4119, 2593, 1870, 262, 2008, 2009, 247, + 5291, 2367, 2368, 4348, 1989, 3965, 3484, 672, 707, 6065, + 2648, 4172, 1997, 180, 1999, 182, 352, 620, 5896, 2105, + 3255, 3487, 4222, 5230, 142, 2547, 2548, 301, 479, 4222, + 633, 68, 2910, 2124, 286, 3255, 471, 747, 748, 749, + 2406, 6097, 2920, 1490, 753, 297, 3328, 3483, 2748, 3331, + 3332, 68, 372, 180, 763, 182, 98, 3331, 3332, 724, + 357, 2748, 764, 3285, 956, 957, 958, 4127, 2810, 301, + 769, 199, 301, 209, 92, 3428, 764, 769, 5407, 1539, + 769, 2367, 35, 5322, 233, 520, 4876, 5326, 4222, 2074, + 3312, 200, 3021, 2459, 3100, 267, 4222, 3502, 5458, 2231, + 2232, 308, 575, 301, 5456, 432, 672, 2473, 308, 4777, + 4778, 4779, 688, 32, 1574, 3264, 769, 355, 3001, 3698, + 368, 5647, 3699, 1998, 588, 1017, 3531, 1587, 1588, 764, + 6010, 6011, 267, 1593, 301, 290, 35, 1597, 1598, 1599, + 619, 457, 35, 719, 320, 5144, 339, 2233, 1608, 1609, + 180, 371, 182, 373, 1614, 3377, 1616, 1617, 1618, 1619, + 1620, 767, 1622, 9, 10, 2150, 645, 3220, 5668, 4277, + 4278, 4279, 4280, 1633, 301, 1635, 360, 92, 1638, 1639, + 653, 1641, 1642, 1643, 5046, 1645, 1646, 1647, 564, 3594, + 410, 5482, 1652, 730, 3599, 1655, 462, 3226, 3227, 3355, + 308, 2186, 578, 1663, 1664, 3249, 1666, 1667, 1668, 2295, + 5071, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 438, 1679, + 1680, 1681, 1682, 1683, 1684, 1745, 1686, 1687, 679, 1689, + 1690, 1691, 1692, 1693, 1694, 1695, 3255, 3243, 1698, 1699, + 1700, 1701, 5674, 1703, 1704, 1705, 2291, 1707, 3465, 1709, + 3624, 1711, 3626, 3661, 2291, 1715, 1716, 1717, 5048, 5498, + 1720, 1721, 1722, 1723, 1724, 2631, 1726, 183, 4855, 491, + 5372, 301, 5068, 1733, 601, 2862, 3219, 343, 9, 10, + 1740, 1741, 1742, 1743, 554, 57, 3229, 3341, 9, 10, + 170, 1751, 1752, 1753, 707, 1755, 1756, 1757, 1758, 1759, + 1760, 531, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, + 109, 110, 4285, 1773, 1254, 2675, 457, 89, 654, 145, + 640, 5330, 9, 10, 113, 1265, 9, 10, 346, 764, + 3656, 5001, 104, 721, 180, 688, 182, 446, 644, 2705, + 432, 2707, 5, 5634, 5635, 2944, 764, 173, 601, 5300, + 4511, 769, 61, 573, 5300, 308, 1816, 9, 10, 4780, + 5567, 1821, 5569, 5300, 747, 340, 9, 10, 31, 432, + 5300, 1831, 136, 145, 762, 672, 644, 3659, 96, 5300, + 260, 3817, 5300, 9, 10, 3659, 769, 4548, 688, 609, + 5522, 1838, 1839, 720, 1841, 1842, 1843, 4558, 4559, 688, + 747, 173, 716, 2615, 360, 1852, 672, 2619, 234, 308, + 73, 763, 764, 131, 432, 308, 434, 9, 10, 764, + 688, 1868, 769, 764, 764, 206, 492, 727, 347, 2641, + 3205, 346, 9, 10, 2800, 9, 10, 764, 727, 1899, + 5940, 764, 2654, 2655, 412, 5307, 5798, 5685, 5800, 180, + 35, 182, 76, 113, 1346, 301, 9, 10, 114, 180, + 3926, 182, 61, 248, 1924, 687, 5134, 9, 10, 721, + 485, 297, 185, 9, 10, 517, 518, 28, 5339, 521, + 522, 523, 457, 282, 9, 10, 3008, 2590, 9, 10, + 764, 3927, 281, 180, 148, 182, 5300, 180, 1958, 182, + 272, 9, 10, 736, 5449, 168, 524, 1958, 2868, 601, + 762, 9, 10, 2524, 9, 10, 398, 432, 1958, 434, + 24, 12, 5473, 5178, 5930, 4585, 4586, 5473, 180, 200, + 182, 295, 764, 9, 10, 764, 5473, 180, 601, 182, + 9, 10, 94, 5473, 207, 2590, 561, 3591, 2558, 9, + 10, 563, 5473, 2590, 180, 5473, 182, 762, 558, 2006, + 2558, 4919, 4920, 443, 769, 350, 764, 563, 566, 368, + 301, 63, 124, 2558, 65, 2833, 9, 10, 287, 288, + 301, 2762, 1873, 601, 2765, 2671, 2767, 589, 180, 32, + 182, 34, 474, 509, 2775, 2727, 5266, 764, 557, 2059, + 5270, 5271, 1958, 180, 319, 182, 180, 111, 182, 524, + 9, 10, 492, 558, 301, 9, 10, 327, 301, 9, + 10, 281, 36, 5444, 3502, 5446, 1958, 180, 720, 182, + 4671, 9, 10, 3915, 453, 234, 763, 1958, 180, 595, + 182, 5337, 566, 2271, 180, 3651, 182, 9, 10, 301, + 1941, 441, 2910, 442, 3014, 180, 63, 182, 301, 180, + 4701, 182, 2920, 638, 3886, 3887, 5611, 4775, 219, 5473, + 294, 1962, 180, 492, 182, 301, 385, 91, 1969, 3901, + 3279, 3280, 180, 482, 182, 180, 601, 182, 9, 10, + 109, 110, 2677, 2698, 479, 408, 477, 5118, 109, 110, + 114, 764, 670, 3302, 180, 5943, 182, 5584, 3864, 301, + 5587, 180, 119, 182, 4119, 129, 3594, 2177, 3867, 437, + 180, 3599, 182, 308, 301, 526, 2177, 301, 3428, 729, + 745, 446, 688, 386, 764, 4293, 3409, 2177, 2198, 2199, + 738, 3428, 9, 10, 471, 399, 764, 703, 301, 3610, + 3272, 460, 764, 3682, 3683, 3684, 3685, 4915, 3610, 301, + 324, 471, 3284, 5350, 764, 301, 484, 552, 764, 5439, + 729, 3409, 2177, 5594, 3657, 446, 301, 9, 10, 3832, + 301, 180, 442, 182, 729, 199, 180, 279, 182, 2080, + 180, 2802, 182, 301, 37, 38, 18, 2782, 588, 317, + 3473, 276, 180, 301, 182, 459, 301, 5503, 688, 216, + 520, 183, 9, 10, 738, 2275, 0, 4222, 180, 764, + 182, 2177, 229, 9, 10, 301, 9, 10, 647, 547, + 557, 2291, 301, 2293, 229, 3473, 2296, 635, 2298, 2811, + 2291, 301, 2293, 9, 10, 2177, 2306, 2307, 188, 4257, + 17, 2291, 57, 2293, 5860, 3625, 2177, 5863, 422, 180, + 200, 182, 5781, 5782, 290, 32, 292, 6, 301, 5746, + 4019, 3237, 279, 591, 5232, 4668, 5753, 4670, 297, 286, + 4673, 5752, 104, 105, 89, 3715, 4679, 4680, 2293, 3255, + 297, 286, 693, 368, 679, 136, 57, 9, 10, 104, + 406, 554, 301, 4696, 347, 3714, 607, 301, 707, 80, + 711, 301, 391, 180, 393, 182, 9, 10, 764, 437, + 260, 747, 18, 301, 9, 10, 752, 753, 89, 68, + 49, 4397, 2392, 2393, 2394, 2291, 4996, 2293, 310, 301, + 145, 604, 79, 3712, 3713, 82, 84, 674, 180, 368, + 182, 3720, 366, 3722, 739, 3724, 495, 368, 513, 2291, + 24, 2293, 3328, 3223, 762, 3331, 3332, 3333, 173, 3255, + 2291, 5905, 2293, 1112, 9, 10, 3714, 57, 9, 10, + 301, 3719, 2857, 180, 145, 182, 6, 3725, 589, 905, + 5779, 763, 5894, 5893, 180, 3005, 182, 180, 3358, 182, + 539, 5422, 729, 656, 1143, 480, 4232, 3005, 104, 105, + 2470, 712, 173, 5884, 180, 11, 182, 5178, 3079, 525, + 3005, 262, 3007, 6029, 5065, 9, 10, 5185, 3089, 747, + 748, 749, 2492, 764, 301, 5095, 583, 99, 5079, 2499, + 262, 178, 2502, 764, 2504, 600, 4482, 111, 68, 5090, + 2510, 5092, 2512, 2513, 295, 160, 203, 83, 707, 5417, + 5418, 5882, 5883, 482, 580, 145, 3809, 272, 180, 301, + 182, 482, 63, 747, 9, 10, 2536, 764, 225, 5868, + 5869, 764, 5243, 139, 63, 3146, 4494, 180, 113, 182, + 3075, 2551, 3077, 173, 120, 180, 747, 182, 5685, 654, + 205, 2729, 5537, 398, 301, 583, 446, 5896, 2568, 57, + 3213, 272, 764, 327, 661, 301, 3177, 437, 301, 137, + 769, 764, 289, 290, 261, 6002, 6003, 122, 119, 125, + 2590, 2591, 327, 672, 3273, 301, 9, 10, 764, 2590, + 119, 89, 247, 9, 10, 180, 3021, 182, 111, 180, + 2590, 182, 3927, 2613, 719, 2602, 323, 6091, 6092, 675, + 229, 5951, 334, 181, 484, 579, 262, 2614, 3213, 225, + 4648, 6, 764, 83, 341, 3236, 3213, 9, 10, 474, + 347, 4647, 4763, 661, 4765, 428, 429, 764, 3316, 301, + 764, 216, 272, 747, 6, 33, 180, 145, 182, 9, + 10, 415, 6, 9, 10, 200, 373, 4643, 301, 4645, + 120, 764, 728, 3316, 6, 294, 301, 286, 697, 11, + 398, 700, 764, 15, 2640, 173, 9, 10, 764, 9, + 10, 1147, 2692, 68, 554, 4644, 1152, 216, 763, 3912, + 412, 2701, 769, 764, 3502, 180, 2537, 182, 4466, 275, + 5620, 9, 10, 91, 9, 10, 764, 471, 2590, 57, + 4500, 9, 10, 368, 68, 763, 301, 216, 763, 2590, + 301, 3316, 686, 262, 3912, 380, 471, 5070, 3638, 3316, + 3487, 99, 9, 10, 111, 4314, 4315, 763, 279, 4438, + 9, 10, 4441, 3659, 763, 415, 6158, 9, 10, 2590, + 279, 5671, 94, 763, 9, 10, 520, 180, 17, 182, + 2757, 229, 2759, 4342, 180, 4915, 182, 301, 297, 412, + 249, 2612, 2769, 32, 272, 520, 2773, 99, 1244, 2620, + 4073, 4073, 261, 4377, 122, 3610, 3594, 4493, 4367, 3861, + 2800, 3599, 461, 557, 4222, 4274, 3945, 145, 180, 137, + 182, 471, 2812, 9, 10, 762, 5943, 9, 10, 11, + 6000, 199, 557, 145, 763, 275, 301, 6157, 286, 763, + 180, 94, 182, 763, 180, 173, 182, 57, 483, 297, + 3882, 3883, 3884, 3885, 4758, 763, 4430, 26, 4762, 444, + 4764, 173, 147, 181, 559, 560, 4425, 180, 3273, 182, + 180, 763, 182, 99, 188, 6045, 2866, 2698, 4625, 89, + 245, 246, 4878, 6053, 137, 114, 200, 4791, 4792, 4793, + 255, 122, 180, 478, 182, 180, 3792, 182, 301, 4028, + 129, 127, 180, 92, 182, 301, 721, 557, 276, 1355, + 117, 276, 763, 129, 5794, 9, 10, 124, 1364, 554, + 6090, 148, 571, 180, 753, 182, 233, 1373, 181, 578, + 674, 180, 2982, 182, 763, 145, 325, 586, 180, 301, + 182, 636, 5645, 3458, 272, 180, 260, 182, 137, 674, + 263, 167, 168, 142, 4345, 181, 6, 769, 4226, 4227, + 4228, 301, 4230, 173, 1422, 301, 763, 137, 553, 10, + 4238, 4239, 4240, 4241, 3489, 3490, 9, 10, 122, 186, + 57, 402, 4497, 199, 5574, 729, 5576, 808, 301, 167, + 168, 301, 181, 137, 180, 337, 182, 4683, 180, 2820, + 182, 763, 1460, 1461, 729, 2995, 2827, 2828, 9, 10, + 659, 181, 89, 301, 1358, 1359, 301, 714, 68, 3915, + 764, 763, 764, 301, 674, 3540, 121, 104, 188, 15, + 2072, 852, 1478, 2075, 1480, 3610, 763, 181, 3196, 381, + 200, 383, 137, 3610, 301, 568, 83, 763, 1392, 634, + 763, 1274, 301, 655, 4733, 5185, 200, 1280, 1281, 301, + 276, 76, 272, 78, 6007, 6008, 301, 763, 145, 3965, + 719, 3061, 3062, 3063, 9, 10, 94, 3067, 655, 729, + 3070, 9, 10, 120, 9, 10, 180, 247, 182, 3079, + 1536, 3061, 3062, 3063, 459, 404, 173, 3087, 260, 3089, + 137, 3091, 411, 3093, 3094, 3095, 3096, 3097, 3098, 269, + 3100, 5050, 9, 10, 764, 301, 6059, 443, 3108, 301, + 3110, 763, 658, 3113, 3114, 3115, 3116, 67, 768, 3119, + 3120, 667, 446, 3123, 476, 3125, 672, 3127, 124, 3129, + 4445, 4893, 4894, 3133, 181, 9, 10, 180, 763, 182, + 136, 3141, 368, 3143, 762, 3145, 3146, 3147, 3148, 3149, + 648, 769, 3152, 3153, 3154, 111, 3156, 763, 764, 3159, + 114, 4067, 4445, 4445, 753, 3061, 3062, 3063, 114, 180, + 3922, 182, 3172, 525, 763, 764, 446, 3177, 114, 4875, + 3180, 769, 3182, 3183, 3184, 272, 718, 3187, 763, 3061, + 3062, 3063, 763, 3193, 260, 1522, 1523, 301, 3198, 1526, + 3061, 3062, 3063, 3882, 3883, 3884, 3885, 762, 9, 10, + 160, 766, 421, 3213, 3214, 697, 212, 167, 168, 701, + 3220, 573, 3213, 3223, 9, 10, 3827, 33, 275, 3229, + 727, 37, 1688, 3213, 643, 180, 3236, 182, 3238, 763, + 247, 1697, 180, 3243, 182, 180, 762, 182, 76, 500, + 501, 421, 1708, 5259, 480, 205, 3424, 267, 301, 5173, + 5, 4474, 9, 10, 515, 49, 768, 3682, 3683, 3684, + 3685, 9, 10, 180, 768, 182, 84, 9, 10, 721, + 722, 455, 724, 3283, 726, 3285, 69, 764, 763, 664, + 301, 666, 3283, 763, 764, 3846, 4474, 247, 4437, 94, + 6013, 3980, 3814, 3283, 674, 4228, 180, 4230, 182, 9, + 10, 663, 3312, 9, 10, 4383, 3316, 4240, 4241, 4387, + 763, 764, 124, 4462, 4463, 3316, 9, 10, 593, 4644, + 5348, 460, 684, 633, 5156, 762, 3316, 1793, 3283, 570, + 5316, 3213, 5156, 3283, 5350, 4768, 3283, 688, 3283, 3283, + 763, 327, 3213, 176, 3522, 267, 301, 763, 763, 764, + 176, 612, 613, 301, 69, 113, 301, 4650, 4650, 9, + 10, 764, 333, 334, 763, 764, 4901, 3377, 161, 180, + 4048, 182, 3213, 412, 1840, 5536, 768, 3283, 1844, 342, + 1846, 763, 368, 762, 301, 180, 179, 182, 3566, 762, + 3568, 3569, 762, 94, 188, 762, 3574, 4449, 4450, 370, + 721, 3283, 5652, 763, 3582, 762, 200, 763, 368, 3587, + 3316, 32, 3283, 762, 4222, 9, 10, 301, 763, 764, + 380, 122, 5192, 180, 193, 182, 1892, 762, 3438, 10, + 4923, 762, 180, 763, 182, 721, 137, 58, 180, 762, + 182, 412, 235, 236, 83, 3316, 161, 433, 762, 70, + 3447, 763, 764, 4812, 3464, 763, 762, 3882, 3883, 3884, + 3885, 9, 10, 11, 179, 763, 260, 762, 3478, 90, + 180, 762, 182, 4034, 180, 269, 182, 991, 4798, 762, + 181, 120, 763, 764, 36, 471, 763, 180, 69, 182, + 301, 3501, 762, 5087, 763, 2142, 762, 1011, 137, 4818, + 34, 763, 123, 4822, 1018, 1019, 301, 28, 763, 4070, + 114, 633, 33, 2160, 762, 4050, 37, 3527, 3528, 762, + 235, 236, 2169, 483, 4812, 762, 3536, 5106, 2175, 762, + 180, 17, 182, 762, 520, 162, 2183, 2003, 2004, 91, + 763, 764, 181, 10, 301, 762, 32, 2194, 5324, 762, + 2197, 762, 3562, 301, 4076, 3980, 4881, 763, 5544, 301, + 4885, 4854, 114, 116, 187, 551, 762, 689, 763, 764, + 692, 557, 58, 187, 127, 763, 764, 129, 5277, 762, + 161, 134, 3592, 3593, 70, 763, 764, 208, 4881, 4881, + 762, 301, 763, 764, 554, 301, 762, 719, 179, 762, + 3610, 294, 69, 762, 90, 727, 763, 764, 301, 3610, + 762, 69, 762, 263, 763, 764, 762, 5387, 589, 3629, + 3610, 906, 762, 908, 909, 910, 5332, 421, 3629, 914, + 2096, 916, 180, 762, 182, 606, 275, 123, 762, 3629, + 192, 3651, 763, 764, 763, 764, 762, 199, 187, 763, + 762, 301, 446, 762, 235, 236, 762, 278, 5686, 4295, + 631, 5428, 762, 3673, 762, 5432, 124, 763, 764, 5685, + 498, 224, 500, 501, 3629, 763, 764, 3518, 3519, 3520, + 3521, 762, 3523, 3524, 9, 10, 3696, 515, 674, 763, + 764, 3701, 734, 5801, 161, 762, 5682, 5683, 3708, 670, + 762, 3711, 255, 161, 3610, 763, 764, 5539, 5540, 769, + 763, 3701, 179, 4324, 762, 5539, 5540, 763, 764, 763, + 764, 179, 762, 3629, 3734, 3735, 762, 4266, 3610, 3570, + 3571, 762, 3573, 69, 3575, 3576, 3577, 3578, 3579, 3580, + 3581, 193, 3583, 729, 762, 3586, 69, 3629, 3758, 3590, + 3760, 2217, 3762, 301, 3764, 763, 764, 368, 3629, 762, + 4449, 4450, 5055, 5055, 368, 752, 753, 762, 235, 236, + 391, 375, 393, 763, 764, 262, 3786, 235, 236, 2245, + 2246, 762, 2248, 2249, 612, 613, 390, 4465, 124, 763, + 764, 193, 278, 763, 764, 3701, 495, 3807, 3808, 4410, + 2266, 762, 9, 10, 290, 762, 2272, 570, 763, 763, + 764, 415, 4465, 762, 366, 763, 5583, 3827, 763, 3701, + 763, 764, 3832, 763, 764, 161, 763, 764, 3838, 762, + 3701, 763, 764, 762, 15, 762, 9, 10, 161, 763, + 764, 3851, 762, 179, 5400, 5831, 763, 763, 764, 4274, + 644, 344, 762, 4584, 762, 180, 179, 182, 351, 762, + 471, 4094, 4095, 5619, 762, 4098, 4099, 394, 763, 764, + 4465, 4104, 4105, 762, 367, 762, 3886, 3887, 4465, 763, + 4790, 763, 764, 762, 377, 378, 379, 94, 69, 5300, + 4647, 3901, 763, 764, 387, 763, 764, 762, 5300, 235, + 236, 763, 764, 9, 10, 391, 762, 393, 763, 764, + 6018, 762, 235, 236, 762, 519, 9, 10, 11, 762, + 3, 94, 762, 544, 545, 719, 517, 518, 532, 4660, + 521, 522, 523, 727, 763, 764, 463, 5707, 263, 762, + 551, 763, 764, 124, 764, 28, 557, 551, 3958, 762, + 33, 747, 763, 762, 37, 136, 762, 40, 5944, 752, + 753, 754, 755, 756, 757, 763, 764, 176, 763, 109, + 110, 762, 2438, 180, 762, 182, 301, 762, 2444, 762, + 161, 763, 764, 763, 764, 762, 167, 168, 94, 762, + 4168, 4169, 4170, 5699, 4672, 763, 764, 608, 179, 763, + 764, 528, 762, 530, 763, 764, 763, 180, 535, 182, + 4188, 4189, 95, 4191, 4024, 763, 763, 764, 762, 4029, + 4555, 763, 763, 764, 4449, 4450, 762, 579, 763, 764, + 5565, 212, 109, 110, 527, 4596, 751, 752, 753, 754, + 755, 756, 757, 762, 4041, 763, 764, 94, 541, 29, + 4060, 762, 129, 763, 235, 236, 176, 763, 38, 545, + 762, 4071, 5473, 674, 762, 4626, 2227, 763, 764, 233, + 674, 5473, 599, 5667, 180, 158, 182, 762, 6, 700, + 60, 762, 4617, 2549, 762, 689, 762, 180, 762, 182, + 167, 168, 9, 10, 301, 762, 2562, 2563, 2564, 2565, + 183, 762, 713, 763, 764, 4175, 769, 87, 763, 764, + 763, 764, 92, 4238, 4239, 642, 762, 97, 729, 655, + 4877, 769, 199, 5717, 769, 763, 764, 769, 301, 5045, + 672, 111, 769, 626, 686, 763, 764, 763, 764, 4149, + 68, 1712, 1713, 420, 769, 4675, 126, 769, 641, 769, + 769, 769, 769, 133, 69, 137, 92, 672, 688, 661, + 495, 5384, 414, 92, 764, 57, 652, 147, 764, 750, + 751, 752, 753, 754, 755, 756, 757, 94, 282, 661, + 342, 4251, 764, 376, 677, 764, 764, 2653, 4366, 565, + 747, 683, 172, 5518, 4035, 301, 5384, 89, 691, 276, + 80, 727, 446, 2669, 731, 763, 762, 286, 301, 229, + 4388, 4221, 104, 2679, 700, 742, 234, 109, 110, 61, + 390, 770, 5, 300, 4065, 5518, 5518, 569, 389, 312, + 4, 727, 412, 334, 762, 215, 768, 723, 762, 768, + 5156, 221, 222, 198, 5950, 373, 161, 193, 762, 762, + 762, 769, 34, 145, 762, 235, 92, 92, 295, 14, + 764, 415, 769, 180, 179, 182, 176, 4998, 769, 147, + 42, 5564, 5003, 5004, 629, 688, 5870, 33, 763, 362, + 36, 173, 762, 750, 751, 752, 753, 754, 755, 756, + 757, 368, 750, 751, 752, 753, 754, 755, 756, 757, + 2766, 111, 492, 294, 464, 94, 122, 294, 762, 236, + 147, 4321, 4322, 768, 4324, 764, 296, 245, 246, 762, + 235, 236, 6, 4333, 412, 4335, 763, 255, 4338, 763, + 763, 68, 318, 764, 769, 91, 763, 5657, 5658, 95, + 5660, 4351, 763, 4353, 116, 4355, 763, 4357, 276, 634, + 769, 92, 92, 763, 334, 127, 5681, 763, 114, 763, + 4370, 4371, 134, 5688, 4542, 4543, 4544, 4545, 769, 762, + 136, 4549, 4550, 129, 297, 355, 4554, 762, 99, 4557, + 272, 764, 4560, 267, 301, 4563, 764, 192, 92, 4567, + 4568, 163, 764, 9, 10, 5688, 5688, 764, 769, 764, + 4410, 672, 5958, 480, 176, 15, 4941, 152, 18, 754, + 124, 6005, 475, 42, 750, 751, 752, 753, 754, 755, + 756, 757, 6128, 685, 435, 92, 509, 750, 751, 752, + 753, 754, 755, 756, 757, 764, 6142, 53, 54, 55, + 56, 420, 6148, 199, 672, 764, 762, 57, 6154, 429, + 412, 124, 224, 770, 764, 4465, 192, 234, 345, 213, + 495, 495, 495, 546, 4465, 548, 495, 342, 551, 5618, + 495, 554, 555, 495, 764, 4465, 86, 764, 747, 89, + 267, 662, 658, 255, 240, 4495, 581, 116, 84, 727, + 106, 107, 108, 26, 104, 105, 94, 5817, 127, 5819, + 5820, 5258, 763, 754, 419, 134, 42, 764, 403, 762, + 282, 465, 5837, 465, 5839, 764, 580, 763, 29, 4529, + 276, 764, 718, 294, 281, 6081, 762, 17, 373, 292, + 292, 459, 5263, 5068, 163, 145, 210, 620, 173, 687, + 764, 157, 158, 181, 5837, 5837, 94, 176, 764, 764, + 633, 762, 267, 115, 164, 122, 639, 763, 3024, 4465, + 763, 763, 172, 173, 180, 412, 182, 754, 763, 750, + 751, 752, 753, 754, 755, 756, 757, 4418, 661, 763, + 116, 763, 4592, 769, 763, 668, 94, 670, 568, 763, + 753, 127, 5114, 762, 4465, 224, 763, 342, 134, 764, + 5749, 234, 685, 192, 763, 763, 763, 5517, 763, 762, + 366, 4621, 228, 763, 763, 698, 763, 763, 4628, 702, + 703, 764, 763, 5539, 5540, 764, 255, 163, 4638, 764, + 764, 763, 763, 716, 757, 762, 4669, 762, 762, 576, + 49, 763, 360, 388, 747, 5794, 267, 730, 5473, 4682, + 762, 262, 262, 2814, 2815, 262, 262, 4690, 735, 98, + 94, 271, 272, 273, 4697, 764, 4699, 4700, 92, 92, + 2831, 762, 762, 769, 489, 764, 759, 764, 763, 94, + 2841, 2842, 765, 5278, 767, 301, 302, 769, 224, 769, + 4531, 5278, 424, 4703, 225, 769, 600, 764, 233, 344, + 62, 6, 5851, 786, 764, 114, 351, 717, 764, 92, + 4551, 4552, 795, 4723, 4724, 327, 176, 176, 262, 255, + 4561, 279, 367, 806, 469, 808, 124, 42, 99, 4726, + 543, 763, 377, 378, 379, 762, 664, 665, 666, 667, + 764, 247, 387, 247, 2905, 2906, 2907, 2908, 5309, 643, + 247, 247, 247, 4594, 297, 176, 368, 762, 841, 92, + 843, 263, 845, 747, 847, 848, 849, 850, 851, 852, + 747, 854, 747, 747, 747, 385, 747, 747, 394, 188, + 747, 747, 747, 393, 764, 494, 531, 4797, 747, 747, + 4631, 200, 764, 3259, 747, 125, 747, 747, 747, 747, + 6120, 116, 747, 415, 549, 550, 747, 747, 3274, 554, + 555, 556, 127, 747, 747, 368, 747, 747, 718, 134, + 412, 433, 905, 579, 907, 763, 303, 278, 763, 32, + 769, 34, 915, 747, 917, 750, 751, 752, 753, 754, + 755, 756, 757, 763, 763, 282, 764, 463, 163, 932, + 137, 4861, 764, 4863, 4924, 72, 769, 315, 61, 471, + 269, 176, 415, 5458, 769, 267, 4876, 769, 267, 738, + 4711, 5458, 267, 267, 764, 492, 374, 622, 5473, 122, + 412, 763, 527, 4893, 4894, 5562, 5473, 121, 121, 763, + 769, 763, 763, 763, 187, 753, 541, 753, 763, 763, + 26, 769, 4912, 769, 763, 762, 109, 110, 520, 224, + 763, 114, 528, 764, 530, 320, 762, 5478, 471, 535, + 681, 267, 229, 570, 94, 670, 94, 94, 94, 206, + 686, 262, 477, 34, 262, 769, 764, 424, 173, 551, + 255, 753, 5120, 762, 5122, 557, 5124, 5017, 127, 127, + 11, 768, 184, 308, 762, 764, 747, 747, 764, 49, + 61, 529, 315, 91, 176, 764, 769, 650, 26, 103, + 3436, 3437, 769, 390, 390, 763, 262, 762, 764, 262, + 262, 11, 762, 599, 214, 99, 189, 762, 3454, 5059, + 173, 173, 5062, 762, 444, 220, 641, 147, 551, 5521, + 570, 1084, 6151, 754, 557, 95, 5184, 267, 109, 110, + 769, 763, 421, 176, 113, 754, 334, 147, 5196, 123, + 123, 763, 5032, 769, 114, 763, 642, 5060, 129, 763, + 763, 173, 677, 762, 764, 229, 764, 446, 5048, 763, + 763, 32, 769, 34, 763, 181, 691, 250, 251, 252, + 763, 763, 26, 5730, 762, 608, 747, 5652, 215, 762, + 229, 763, 674, 1146, 1147, 5652, 167, 168, 769, 1152, + 61, 172, 275, 94, 94, 176, 763, 763, 763, 1162, + 127, 206, 127, 764, 5619, 494, 1169, 697, 1171, 93, + 700, 147, 1175, 1176, 762, 294, 762, 300, 199, 709, + 762, 206, 762, 747, 4945, 540, 764, 403, 674, 674, + 390, 725, 403, 192, 762, 731, 762, 729, 109, 110, + 4961, 674, 1205, 114, 627, 328, 742, 330, 764, 533, + 762, 733, 763, 192, 5144, 366, 267, 192, 53, 54, + 55, 56, 192, 26, 347, 136, 349, 128, 192, 5159, + 240, 689, 764, 128, 5144, 192, 1239, 192, 577, 689, + 713, 1244, 1245, 1246, 192, 368, 192, 192, 262, 267, + 260, 11, 375, 763, 5852, 276, 729, 1260, 5188, 424, + 589, 98, 225, 409, 487, 5026, 276, 390, 1271, 763, + 26, 106, 107, 108, 763, 231, 629, 400, 189, 300, + 1283, 297, 763, 763, 489, 181, 763, 26, 764, 763, + 138, 764, 415, 763, 192, 764, 127, 764, 127, 142, + 1303, 630, 3688, 763, 431, 764, 93, 328, 737, 763, + 320, 5301, 211, 762, 762, 6145, 763, 176, 5144, 648, + 1323, 764, 157, 158, 769, 11, 763, 661, 763, 222, + 5260, 764, 5262, 763, 725, 11, 111, 129, 93, 250, + 251, 252, 5144, 725, 199, 173, 173, 368, 5278, 472, + 5111, 590, 1355, 5144, 176, 176, 368, 5278, 34, 482, + 689, 1364, 470, 692, 275, 226, 263, 1370, 5278, 1372, + 1373, 424, 570, 1376, 297, 122, 412, 763, 763, 137, + 600, 123, 483, 1386, 533, 61, 32, 763, 398, 300, + 719, 763, 26, 228, 769, 764, 519, 669, 727, 763, + 5842, 282, 282, 562, 762, 10, 129, 763, 129, 532, + 11, 762, 764, 762, 640, 763, 5871, 328, 11, 330, + 762, 360, 762, 3504, 3505, 763, 3507, 3508, 11, 122, + 129, 34, 764, 109, 110, 297, 347, 764, 349, 372, + 654, 764, 5372, 763, 129, 407, 260, 49, 764, 572, + 147, 763, 5278, 129, 533, 578, 430, 368, 61, 480, + 10, 763, 763, 762, 375, 763, 282, 302, 267, 282, + 5400, 282, 1475, 404, 569, 1478, 5278, 1480, 762, 390, + 5410, 762, 5412, 769, 33, 412, 6083, 1490, 764, 400, + 67, 167, 168, 763, 1497, 176, 172, 764, 1501, 1502, + 176, 763, 139, 762, 415, 84, 109, 110, 84, 111, + 260, 297, 570, 762, 637, 279, 3597, 763, 5973, 5449, + 763, 644, 5452, 199, 1527, 635, 129, 1530, 5458, 588, + 762, 588, 762, 1536, 425, 763, 348, 5458, 6019, 763, + 762, 762, 173, 5473, 150, 764, 300, 186, 5458, 26, + 768, 674, 5473, 768, 1557, 5508, 768, 26, 79, 394, + 26, 472, 61, 5473, 167, 168, 689, 690, 61, 172, + 763, 482, 669, 176, 193, 10, 763, 695, 763, 702, + 680, 6036, 1585, 762, 176, 762, 762, 129, 129, 725, + 686, 172, 279, 321, 61, 11, 199, 26, 200, 26, + 276, 26, 3988, 122, 413, 763, 3992, 5537, 519, 570, + 33, 33, 403, 707, 762, 635, 92, 415, 403, 762, + 630, 532, 574, 763, 300, 646, 169, 5537, 463, 762, + 721, 762, 5458, 762, 644, 226, 570, 762, 648, 681, + 768, 764, 768, 764, 570, 247, 762, 5473, 142, 320, + 762, 762, 328, 412, 5584, 334, 5458, 5587, 763, 92, + 26, 572, 407, 26, 314, 176, 176, 578, 225, 762, + 762, 5473, 279, 276, 6155, 63, 193, 6132, 707, 764, + 412, 5611, 692, 6138, 465, 1688, 75, 763, 763, 763, + 5620, 26, 368, 528, 1697, 530, 113, 300, 5628, 635, + 535, 173, 762, 233, 3283, 1708, 923, 1264, 1925, 719, + 3958, 5537, 764, 3588, 735, 5120, 1719, 5124, 320, 5122, + 1222, 5458, 5652, 5467, 5458, 328, 637, 5456, 5455, 3439, + 5582, 5652, 1735, 644, 4115, 5537, 5296, 5813, 5654, 6020, + 4037, 5671, 5652, 1351, 3440, 5023, 5537, 5677, 4225, 5930, + 5475, 5929, 818, 1395, 3613, 3629, 4924, 4251, 2203, 2707, + 3965, 1783, 3698, 674, 599, 368, 17, 942, 3674, 1772, + 373, 1774, 448, 4781, 2871, 4502, 2293, 799, 689, 690, + 2295, 2294, 1391, 2083, 2296, 5590, 5437, 5277, 4154, 2220, + 1793, 702, 3536, 5891, 5083, 4427, 398, 1800, 1801, 4867, + 5198, 4431, 2532, 5858, 480, 1808, 1809, 642, 5953, 5400, + 5202, 5741, 6081, 6038, 4443, 1818, 5746, 6083, 5730, 421, + 4019, 4881, 4149, 5753, 2748, 5454, 5652, 5973, 4706, 1832, + 1833, 4992, 4155, 6008, 5783, 1838, 1839, 1840, 1841, 1842, + 1843, 1844, 1845, 1846, 446, 5793, 5607, 5671, 5005, 1852, + 5652, 762, 3715, 5783, 5796, 3489, 2957, 3797, 109, 110, + 5852, 5652, 2144, 4384, 1867, 1868, 5796, 1870, 4387, 4379, + 6044, 485, 485, 6002, 5440, 6003, 5885, 480, 5746, 5753, + 5429, 4154, 2168, 4703, 1368, 1980, 1236, 3420, 3416, 1892, + 5514, 2862, 494, 5847, 5323, 2119, 731, 2549, 2679, 5829, + 3688, 3039, 4286, 5519, 4074, 3812, 1327, 742, 2810, 5055, + 5837, 1324, 3993, 3994, 3995, 3996, 3997, 3474, 3999, 4000, + 4001, 4002, 4003, 2044, 4005, 4006, 4007, 4008, 4009, 4010, + 4011, 4012, 4013, 4014, 5928, 4418, 4017, 4018, 3145, 3141, + 3356, 1716, 3846, 1774, 3931, 4902, 1626, 1950, 1594, 3350, + 4399, 3344, 6042, 5738, 18, 5885, 29, 1960, 4932, 5889, + 5578, 6043, 4060, 1966, 1600, 38, 3230, 5311, 1971, 5310, + 646, 5192, 5707, 5188, 3836, 5332, 5231, 3915, 2791, 5309, + 4050, 2991, 5743, 485, 1793, 3033, 1989, 60, 1536, 4875, + 4529, 3515, 5922, 57, 1997, 1998, 1999, 2000, 2001, 2002, + 2003, 2004, 4493, 2006, 5950, 674, 842, 841, 2649, 260, + 2213, 671, 1858, 2650, 87, 3339, 1322, 671, 5779, 92, + 509, 5951, 86, 5254, 97, 89, 5243, 2701, 5958, 1970, + 6079, 4289, 6107, 5488, 6148, 6154, 5664, 3932, 111, 1016, + 104, 105, 644, 646, 2672, 4442, 648, 4128, 3213, 4465, + 942, 3314, 4133, 126, 670, 2474, 3293, 3292, 670, 735, + 133, 2594, 1997, 2272, 1802, 4167, 1532, 2857, 668, 3431, + 6000, 2074, 6002, 6003, 147, 1155, 3272, 3676, 5366, 6069, + 4175, 145, 708, 1272, 4484, 3926, 4905, 689, 3344, 485, + 485, 485, 6015, 2096, 5842, 2767, 2013, 6067, -1, 172, + 164, -1, -1, -1, 5865, 5866, -1, 33, 172, 173, + 36, -1, 6102, 2116, -1, 6045, -1, 719, -1, -1, + -1, -1, -1, 6053, -1, 727, -1, -1, -1, -1, + -1, -1, 735, -1, -1, 5896, -1, -1, -1, -1, + -1, -1, 215, -1, -1, -1, -1, 2150, 221, 222, + 401, 6081, -1, -1, -1, -1, -1, -1, -1, -1, + 6090, -1, 235, -1, 415, 91, 417, -1, -1, 95, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2185, 2186, 4570, -1, -1, -1, 114, -1, + -1, -1, -1, -1, -1, -1, 447, -1, 262, -1, + -1, 5962, -1, 129, 5965, -1, -1, 271, 272, 273, + 2213, 462, 2215, -1, 2217, -1, 2219, -1, -1, -1, + -1, -1, -1, 296, -1, -1, -1, 6157, 2231, 2232, + -1, -1, -1, -1, -1, 2238, -1, -1, -1, -1, + -1, -1, 2245, 2246, 495, 2248, 2249, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2263, 334, 513, 2266, -1, -1, 192, -1, -1, 2272, + -1, -1, -1, 199, -1, 2278, -1, -1, 5, -1, + 7, 8, 355, -1, 2287, -1, 11, 2290, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4688, -1, 31, -1, 33, 7, -1, -1, + -1, -1, 39, -1, 240, -1, -1, 42, -1, -1, + -1, 385, -1, -1, -1, -1, -1, -1, -1, 393, + -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, + -1, 41, 593, -1, -1, -1, 73, -1, -1, 600, + 276, -1, -1, 80, -1, 80, 429, -1, 83, 610, + -1, -1, -1, 63, -1, -1, -1, 92, -1, -1, + -1, -1, 623, 73, 99, -1, -1, -1, 103, -1, + -1, -1, 109, 110, -1, -1, -1, 114, 113, -1, + -1, 116, -1, -1, -1, 120, -1, 122, 98, -1, + -1, -1, 127, 654, -1, -1, 657, -1, -1, 134, + -1, -1, 137, -1, 114, 142, -1, 142, -1, 119, + -1, 672, 29, -1, -1, -1, -1, -1, -1, -1, + -1, 38, -1, -1, -1, 2438, -1, 688, 163, -1, + 366, 2444, 142, -1, -1, -1, -1, -1, -1, -1, + 177, 176, -1, 60, 181, -1, 181, 2460, -1, 4540, + -1, -1, 189, -1, -1, 192, -1, -1, -1, -1, + -1, -1, 4553, -1, -1, 200, -1, -1, -1, -1, + 87, -1, -1, -1, -1, 92, -1, 214, -1, -1, + 97, -1, -1, -1, -1, 568, -1, -1, -1, 224, + -1, -1, -1, -1, 111, -1, -1, -1, 233, -1, + -1, 211, -1, -1, -1, -1, -1, -1, -1, 126, + -1, -1, -1, 250, 251, 252, 133, -1, -1, 229, + 255, -1, -1, -1, -1, -1, -1, 237, -1, -1, + 147, -1, -1, -1, 2547, 2548, 2549, -1, 275, -1, + 275, -1, -1, -1, -1, 2558, 281, 282, -1, 2562, + 2563, 2564, 2565, 2566, 2567, 172, 2569, -1, -1, 269, + 295, -1, 297, 300, -1, 300, -1, -1, -1, 279, + 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 320, -1, -1, -1, -1, 2601, 2602, + -1, 328, -1, 330, -1, -1, -1, -1, 215, -1, + -1, 2614, -1, 4999, 221, 222, -1, -1, -1, 71, + -1, -1, 349, -1, -1, -1, -1, -1, 235, 356, + -1, -1, -1, 697, -1, -1, 700, -1, -1, -1, + -1, 368, -1, -1, 717, 709, -1, -1, 375, -1, + 2653, -1, -1, 579, -1, -1, -1, -1, 2661, -1, + 112, -1, -1, 390, -1, -1, 2669, -1, -1, 2672, + 2673, -1, -1, 400, 2677, 2678, 2679, 404, 405, -1, + -1, -1, -1, -1, 411, -1, -1, -1, 415, 296, + -1, -1, -1, -1, -1, -1, 423, 149, -1, -1, + 2703, -1, -1, -1, -1, -1, -1, -1, -1, 11, + -1, -1, -1, -1, -1, 442, -1, 442, -1, -1, + -1, 421, -1, -1, 2727, -1, 426, 334, -1, -1, + -1, -1, -1, -1, -1, -1, 436, -1, -1, -1, + 42, 468, -1, -1, -1, 472, -1, -1, 355, -1, + -1, -1, -1, -1, 2757, 482, 2759, 2760, -1, -1, + 686, -1, -1, 2766, -1, -1, 2769, -1, 2771, -1, + 2773, -1, -1, -1, -1, -1, -1, -1, 80, 2782, + -1, 83, -1, -1, -1, 2788, -1, -1, -1, -1, + 92, -1, 519, -1, -1, -1, -1, 99, -1, -1, + -1, 103, -1, -1, -1, 532, -1, 534, -1, -1, + -1, -1, -1, -1, 116, -1, -1, -1, 120, -1, + 122, -1, 429, -1, -1, 127, -1, -1, -1, -1, + -1, -1, 134, -1, -1, 137, -1, -1, -1, -1, + 142, -1, -1, -1, -1, 572, -1, -1, -1, -1, + -1, 578, -1, -1, 2857, -1, -1, -1, -1, 2862, + -1, 163, -1, -1, -1, -1, -1, -1, 32, -1, + 34, -1, -1, -1, 176, -1, -1, -1, 605, 181, + -1, -1, -1, -1, -1, -1, -1, -1, 61, 616, + 617, 618, -1, -1, 594, -1, -1, 61, 200, -1, + -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, + 637, -1, -1, -1, -1, 615, -1, 644, 2921, -1, + 620, -1, 224, -1, -1, -1, -1, 2930, -1, -1, + -1, 233, -1, -1, -1, -1, 109, 110, -1, -1, + -1, 114, -1, -1, -1, 109, 110, 674, -1, -1, + 114, 651, -1, 255, -1, -1, -1, -1, -1, -1, + -1, 568, 689, 690, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 275, -1, 702, -1, -1, 705, 2982, + 282, -1, 682, 5369, -1, -1, -1, -1, 2991, -1, + 2993, -1, -1, 295, -1, 297, -1, -1, 300, -1, + -1, -1, 3005, -1, 3007, 3008, -1, -1, 733, -1, + -1, -1, -1, -1, 466, -1, 189, -1, 3021, -1, + -1, 3024, 747, -1, -1, 189, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 763, 764, + -1, 768, 767, 768, 496, 497, -1, 499, 500, 501, + 502, 503, -1, 505, 506, 507, 508, 509, 510, 511, + 512, -1, 514, 515, 516, -1, -1, -1, -1, -1, + -1, -1, 3075, -1, 3077, -1, -1, 250, 251, 252, + -1, -1, -1, -1, -1, -1, 250, 251, 252, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 275, -1, -1, -1, -1, -1, -1, -1, + -1, 275, -1, 17, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 5510, -1, -1, 300, -1, -1, -1, -1, -1, -1, -1, -1, 300, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 385, -1, -1, -1, 320, -1, -1, -1, - 393, -1, 519, -1, 328, -1, 330, -1, 421, -1, - -1, -1, 2437, 426, 5873, 532, 612, 613, 2443, -1, - -1, -1, -1, 436, -1, 349, -1, 260, -1, -1, - -1, -1, 356, -1, 2459, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 368, -1, -1, -1, -1, -1, - -1, 375, -1, -1, -1, 572, -1, -1, -1, -1, - -1, 578, -1, -1, -1, -1, 390, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 16, 17, -1, + -1, -1, -1, 22, 23, 328, -1, 330, -1, -1, + 612, 613, -1, 32, 328, -1, 330, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 349, -1, -1, -1, + -1, -1, -1, 347, -1, 349, -1, -1, 3191, 58, + -1, -1, -1, -1, -1, 368, -1, -1, -1, -1, + -1, 70, 375, -1, 368, 109, 110, -1, -1, -1, + -1, 375, -1, -1, -1, -1, -1, 390, -1, -1, + -1, 90, -1, -1, -1, -1, 390, 400, -1, 3232, -1, -1, -1, -1, -1, -1, 400, -1, -1, -1, - 404, 405, -1, -1, -1, -1, -1, 411, -1, -1, - -1, 415, -1, -1, -1, -1, -1, -1, -1, 423, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 5976, 442, -1, - 637, 2546, 2547, 2548, -1, -1, -1, 644, -1, -1, - -1, -1, 2557, -1, -1, -1, 2561, 2562, 2563, 2564, - 2565, 2566, -1, 2568, 468, -1, -1, -1, 472, -1, - -1, -1, -1, -1, -1, -1, -1, 674, 482, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 401, -1, - -1, -1, 689, 690, -1, 2600, 2601, -1, -1, -1, - 6039, 594, 415, -1, 417, 702, -1, -1, 2613, -1, - -1, -1, -1, -1, -1, 519, -1, -1, -1, -1, - -1, -1, 615, -1, -1, -1, -1, 620, 532, -1, - 534, -1, -1, -1, 447, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2652, -1, 462, - -1, -1, -1, -1, -1, 2660, -1, -1, 651, -1, - 29, -1, -1, 2668, -1, 762, 2671, 2672, 572, 38, - -1, 2676, 2677, 2678, 578, -1, -1, -1, -1, -1, - -1, -1, 495, -1, -1, -1, -1, 16, 17, 682, - -1, 60, -1, 22, 23, -1, 6135, 2702, -1, -1, - 513, 605, 6141, 32, -1, -1, -1, -1, -1, -1, - -1, -1, 616, 617, 618, -1, -1, -1, 87, -1, - -1, 2726, -1, 92, 697, -1, -1, 700, 97, 58, - -1, -1, -1, 637, -1, -1, 709, -1, -1, -1, - 644, 70, 111, -1, -1, -1, -1, -1, -1, -1, - -1, 2756, -1, 2758, 2759, -1, -1, 126, -1, 61, - 2765, 90, -1, 2768, 133, 2770, -1, 2772, -1, -1, - 674, -1, -1, -1, -1, -1, 2781, -1, 147, -1, - 593, -1, 2787, -1, -1, 689, 690, 600, -1, -1, - -1, -1, -1, -1, 123, -1, -1, 610, 702, -1, - -1, 705, -1, 172, -1, -1, -1, 109, 110, -1, - 623, -1, 114, -1, 143, 144, -1, 146, -1, -1, - -1, -1, -1, -1, -1, 154, 155, 156, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 654, -1, -1, 657, 174, 215, -1, -1, -1, - -1, 2856, 221, 222, -1, -1, 2861, -1, -1, 672, - -1, -1, -1, -1, 768, -1, 235, -1, -1, -1, - -1, -1, -1, -1, -1, 688, -1, -1, -1, 208, - -1, -1, -1, -1, -1, -1, -1, 189, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 233, 16, 17, -1, -1, -1, - 239, 22, 23, -1, -1, 2920, -1, -1, -1, -1, - -1, 32, -1, -1, -1, -1, -1, 296, -1, -1, - -1, 2936, -1, -1, -1, 264, 265, 266, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 58, 250, 251, - 252, -1, -1, -1, -1, -1, -1, -1, -1, 70, - 289, 290, -1, -1, -1, 334, -1, -1, -1, -1, - -1, -1, -1, 275, -1, -1, 2981, -1, -1, 90, - -1, -1, -1, -1, -1, 2990, 355, 2992, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 300, 3004, - -1, 3006, 3007, -1, -1, -1, -1, 336, -1, 338, - 339, -1, 123, -1, -1, 3020, -1, -1, 3023, -1, - -1, -1, -1, -1, -1, 354, 328, -1, 330, -1, - -1, -1, 143, 144, -1, 146, -1, -1, -1, -1, - -1, -1, -1, 154, 155, 156, -1, 349, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 429, -1, 391, 174, 393, -1, 368, -1, -1, 3074, - -1, 3076, -1, 375, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 416, 390, -1, - -1, -1, -1, -1, -1, -1, -1, 208, 400, -1, + -1, -1, 415, -1, -1, -1, -1, -1, -1, -1, + -1, 415, -1, -1, 123, -1, 3259, -1, -1, -1, + -1, 3264, -1, -1, -1, -1, 3269, -1, -1, 3272, + 3273, 3274, -1, -1, 143, 144, -1, 146, -1, -1, + -1, 3284, -1, -1, -1, 154, 155, 156, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 472, + -1, -1, -1, -1, -1, 174, -1, -1, 472, 482, + -1, -1, -1, 3316, -1, -1, -1, -1, 482, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 29, -1, -1, -1, 208, + -1, -1, -1, -1, 38, -1, 519, -1, -1, -1, + -1, -1, 3355, -1, -1, 519, -1, -1, -1, 532, + -1, -1, -1, -1, 233, -1, 60, -1, 532, -1, + 239, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 76, -1, 78, -1, -1, -1, -1, -1, + -1, -1, -1, 87, -1, 264, 265, 266, 92, 572, + -1, -1, -1, 97, -1, 578, -1, -1, 572, -1, + -1, -1, -1, -1, 578, -1, -1, 111, -1, -1, + 289, 290, -1, -1, -1, -1, 5812, -1, -1, -1, + -1, 733, 126, 3436, 3437, -1, -1, -1, -1, 133, + -1, -1, -1, -1, 3447, 747, 3449, -1, -1, -1, + -1, 3454, -1, 147, -1, 3458, -1, -1, -1, -1, + -1, 763, 764, -1, 637, 767, 768, 336, -1, 338, + 339, 644, -1, 637, -1, -1, -1, -1, 172, -1, + 644, -1, -1, -1, -1, 354, 3489, 3490, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 401, -1, -1, + -1, 674, -1, -1, -1, -1, -1, -1, -1, -1, + 674, 415, -1, 417, -1, -1, 689, 690, -1, -1, + -1, 215, 391, -1, 393, 689, 690, 221, 222, 702, + -1, -1, -1, -1, -1, -1, -1, 3540, 702, -1, + -1, 235, -1, 447, -1, -1, -1, 416, -1, -1, + -1, -1, 3555, -1, -1, -1, -1, -1, 462, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 438, - -1, -1, -1, 415, -1, -1, -1, -1, -1, -1, - 449, 450, 233, -1, -1, -1, -1, -1, 239, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 481, 264, 265, 266, -1, -1, -1, -1, - -1, 490, -1, -1, -1, -1, -1, -1, -1, -1, - 472, -1, -1, -1, -1, -1, -1, -1, 289, 290, - 482, -1, -1, -1, -1, 3190, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 568, - -1, -1, -1, -1, -1, -1, -1, 536, 537, 538, - -1, -1, -1, -1, -1, 544, 545, 519, -1, -1, - -1, -1, -1, -1, -1, 336, 3231, 338, 339, -1, - 532, 560, 561, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 354, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3258, -1, 584, 585, -1, 3263, -1, - -1, -1, -1, 3268, -1, -1, 3271, 3272, 3273, -1, - 572, -1, -1, -1, 603, -1, 578, -1, 3283, -1, - 391, -1, 393, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 416, -1, -1, -1, -1, - 3315, -1, -1, -1, -1, -1, -1, 646, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 438, -1, -1, - -1, -1, -1, -1, -1, 637, -1, -1, 449, 450, - -1, -1, 644, -1, -1, -1, -1, -1, -1, 3354, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 449, 450, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 495, -1, -1, -1, 768, -1, -1, -1, -1, + 294, -1, 296, -1, -1, -1, -1, -1, -1, 513, + -1, -1, 481, -1, -1, -1, -1, -1, -1, -1, + -1, 490, -1, -1, -1, -1, -1, -1, -1, 3632, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 334, 5722, 5723, -1, 5725, 5726, 5727, 5728, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 355, -1, 5744, -1, -1, -1, 536, 537, 538, + -1, -1, -1, 3676, -1, 544, 545, -1, 3681, 3682, + 3683, 3684, 3685, -1, -1, 3688, -1, -1, -1, 593, + -1, 560, 561, -1, -1, -1, 600, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 610, 16, 17, -1, + -1, -1, -1, 22, 23, 584, 585, -1, 412, 623, + -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 603, 429, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, + 654, -1, -1, 657, -1, -1, -1, -1, -1, -1, + -1, 70, -1, -1, -1, -1, -1, -1, 672, -1, + -1, -1, -1, -1, -1, -1, -1, 646, -1, -1, + -1, 90, -1, 5864, -1, -1, 5867, -1, -1, -1, + 3793, -1, -1, -1, 5875, -1, -1, -1, -1, -1, + -1, -1, -1, 61, -1, -1, -1, -1, -1, 29, + -1, -1, -1, -1, 123, -1, -1, -1, 38, -1, -1, -1, -1, -1, -1, 694, -1, -1, 697, -1, - 481, 700, 674, -1, -1, -1, -1, -1, -1, 490, - -1, -1, -1, -1, -1, -1, -1, 689, 690, -1, - 16, 17, -1, -1, 723, -1, 22, 23, -1, -1, - 702, -1, -1, -1, -1, -1, 32, -1, -1, -1, - -1, -1, -1, 742, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 536, 537, 538, 29, -1, - 3435, 3436, 58, 544, 545, -1, -1, 38, -1, -1, - -1, 3446, -1, 3448, 70, -1, -1, -1, 3453, 560, - 561, -1, 3457, -1, -1, -1, 29, -1, -1, 60, - -1, -1, -1, -1, 90, 38, -1, -1, -1, -1, - -1, -1, -1, 584, 585, 76, -1, 78, -1, -1, - -1, -1, -1, 3488, 3489, -1, 87, 60, -1, -1, - -1, 92, 603, -1, -1, -1, 97, 123, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 111, -1, -1, -1, 87, -1, -1, 143, 144, 92, - 146, -1, -1, -1, 97, 126, -1, -1, 154, 155, - 156, -1, 133, -1, 3539, -1, -1, -1, 111, -1, - -1, -1, -1, -1, -1, -1, 147, -1, 174, 3554, - -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, - 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 172, -1, -1, 147, -1, -1, -1, -1, -1, - -1, -1, 208, 694, 6, -1, 697, -1, -1, 700, - -1, -1, -1, -1, -1, 17, -1, -1, -1, 172, - -1, -1, -1, -1, -1, -1, -1, 233, -1, -1, - 32, -1, 723, 239, 215, -1, -1, -1, 40, 41, - 221, 222, -1, -1, -1, -1, 3631, -1, 50, -1, - -1, 742, -1, -1, 235, -1, -1, -1, 264, 265, - 266, -1, 215, 65, 66, -1, -1, -1, 221, 222, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 235, 289, 290, -1, -1, -1, -1, -1, - 3675, -1, -1, -1, -1, 3680, 3681, 3682, 3683, 3684, - -1, -1, 3687, -1, -1, -1, -1, 109, 110, -1, - -1, -1, 114, 294, -1, 296, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 128, -1, -1, -1, - 336, -1, 338, 339, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 296, -1, -1, -1, -1, 354, -1, - -1, -1, -1, 334, -1, 308, -1, -1, -1, -1, - 29, -1, -1, -1, -1, -1, -1, -1, -1, 38, - -1, -1, -1, -1, 355, -1, -1, -1, -1, -1, - -1, 334, -1, -1, -1, 391, 188, 393, -1, -1, - -1, 60, -1, -1, -1, -1, -1, -1, 200, -1, - -1, -1, 355, -1, -1, -1, -1, 3792, -1, -1, - 416, -1, 5, -1, 7, -1, -1, -1, 87, -1, - -1, -1, -1, 92, -1, -1, -1, -1, 97, -1, - -1, 412, 438, -1, -1, -1, -1, -1, 31, -1, - -1, -1, 111, 449, 450, -1, 39, -1, 429, -1, - -1, -1, -1, -1, -1, -1, -1, 126, 260, 412, - -1, 3846, -1, -1, 133, -1, -1, -1, 61, -1, - -1, -1, -1, -1, 3859, 481, 429, 3862, 147, -1, - 73, -1, -1, -1, 490, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 3880, 3881, 3882, 3883, -1, - -1, -1, -1, 172, -1, -1, -1, -1, -1, -1, - -1, -1, 3897, 3898, -1, -1, 109, 110, -1, -1, - -1, 114, -1, -1, 326, -1, -1, -1, -1, -1, - 536, 537, 538, 335, -1, -1, -1, -1, 544, 545, - -1, -1, -1, -1, -1, 347, 215, -1, -1, 142, - -1, -1, 221, 222, 560, 561, 358, -1, -1, -1, - -1, -1, -1, 3948, -1, -1, 235, -1, -1, 3954, - -1, -1, -1, -1, -1, -1, -1, -1, 584, 585, - 382, -1, -1, -1, -1, -1, -1, 568, 181, -1, - -1, -1, -1, 3978, -1, -1, 189, 603, -1, -1, - -1, 3986, -1, -1, -1, 3990, -1, -1, -1, -1, - -1, -1, 414, 415, -1, 568, 418, -1, 420, -1, - -1, 214, -1, -1, -1, -1, -1, 296, -1, 4014, - -1, -1, 4017, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 445, 446, -1, -1, -1, -1, -1, - -1, 453, 454, -1, 4039, -1, -1, 250, 251, 252, - -1, -1, -1, 4048, 4049, 334, -1, -1, 470, -1, - -1, -1, 32, -1, 34, -1, -1, -1, 4063, -1, - -1, -1, 275, -1, -1, -1, 355, -1, 694, -1, - 492, 697, -1, -1, 700, -1, -1, -1, -1, -1, - -1, 61, -1, -1, -1, -1, -1, 300, -1, -1, - -1, 513, -1, -1, -1, -1, -1, 723, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 320, -1, -1, - -1, -1, -1, -1, -1, 328, 742, 330, -1, -1, - -1, -1, -1, 412, -1, -1, -1, -1, -1, 109, - 110, -1, -1, -1, 114, -1, 349, -1, -1, -1, - 429, -1, -1, -1, -1, -1, 568, -1, 4153, -1, - -1, -1, -1, -1, -1, 368, -1, -1, -1, -1, - 582, -1, 375, -1, -1, -1, -1, -1, -1, -1, - -1, 593, -1, -1, 596, 597, -1, 390, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 400, -1, 611, - -1, 404, -1, -1, -1, -1, -1, -1, 411, -1, - -1, -1, 415, -1, -1, -1, -1, -1, -1, 189, - -1, -1, -1, 4218, -1, -1, -1, -1, 4223, -1, - -1, -1, -1, -1, -1, 647, -1, -1, -1, 442, - -1, -1, 654, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4249, -1, -1, -1, -1, 4254, - 672, -1, 674, -1, -1, -1, -1, -1, -1, 472, - -1, -1, -1, -1, -1, -1, -1, 4272, -1, 482, - 250, 251, 252, -1, -1, -1, 29, -1, 29, 568, - -1, -1, -1, -1, -1, 38, -1, 38, -1, -1, - -1, -1, -1, -1, -1, 275, -1, -1, -1, -1, - -1, -1, 724, -1, -1, -1, 519, 60, 730, 60, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 532, - 300, 534, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 87, -1, 87, -1, -1, 92, - -1, 92, -1, -1, 97, -1, 97, -1, 328, -1, - 330, -1, -1, -1, -1, -1, -1, -1, 111, 572, - 111, -1, -1, -1, -1, 578, -1, 347, 4373, 349, - -1, -1, -1, 126, -1, 126, -1, -1, -1, -1, - 133, -1, 133, -1, -1, -1, -1, -1, 368, -1, - -1, -1, -1, -1, 147, 375, 147, -1, 4403, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 390, 4416, -1, -1, -1, -1, -1, -1, -1, 172, - 400, 172, -1, -1, 637, 4430, -1, -1, -1, -1, - -1, 644, -1, -1, -1, 415, 4441, -1, 4443, -1, - -1, -1, 4447, 4448, 4449, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 29, -1, -1, -1, -1, 4464, - 4465, 674, 215, 38, 215, -1, -1, -1, 221, 222, - 221, 222, -1, -1, -1, -1, 689, 690, -1, -1, - -1, -1, 235, -1, 235, 60, -1, 4492, -1, 702, - -1, -1, 472, -1, -1, -1, -1, -1, 4503, -1, - -1, -1, 482, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 87, -1, -1, -1, -1, 92, -1, -1, - -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 111, 29, -1, 519, - -1, -1, -1, 296, -1, 296, 38, -1, -1, 4554, - -1, 126, 532, -1, -1, -1, -1, -1, 133, -1, - -1, -1, -1, 4568, 4569, -1, 4571, -1, 60, -1, - -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, - -1, 334, -1, 334, -1, -1, -1, -1, 4593, -1, - -1, -1, 572, -1, -1, 87, -1, 172, 578, -1, - 92, -1, 355, -1, 355, 97, -1, -1, -1, -1, - -1, 4616, -1, -1, -1, -1, -1, -1, -1, 111, - -1, -1, -1, 4628, -1, 4630, -1, -1, -1, -1, - -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, - 215, 133, -1, -1, -1, -1, 221, 222, -1, -1, - -1, -1, -1, 4658, -1, 147, -1, 637, -1, 412, - 235, 412, -1, -1, 644, 4670, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 4680, 429, 4682, 429, -1, - 172, -1, 4687, 4688, -1, -1, -1, -1, 4693, -1, - -1, -1, -1, -1, 674, 4700, -1, -1, -1, -1, - 4705, -1, -1, -1, -1, -1, -1, -1, -1, 689, - 690, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 4725, 296, 702, 215, -1, 4730, -1, -1, -1, 221, + -1, 700, -1, -1, 143, 144, -1, 146, -1, -1, + 60, -1, -1, -1, 3847, 154, 155, 156, -1, -1, + -1, 109, 110, -1, 723, -1, 114, 29, 3861, -1, + -1, 3864, -1, -1, -1, 174, 38, 87, -1, -1, + -1, -1, 92, 742, 568, -1, -1, 97, -1, 3882, + 3883, 3884, 3885, -1, -1, -1, -1, -1, 60, -1, + -1, 111, -1, -1, -1, -1, 3899, 3900, -1, 208, + -1, -1, -1, -1, -1, -1, 126, -1, -1, -1, + -1, -1, -1, 133, -1, 87, -1, -1, -1, -1, + 92, -1, -1, -1, 233, 97, -1, 147, -1, -1, + 239, 189, -1, -1, -1, -1, -1, -1, -1, 111, + -1, -1, -1, -1, -1, -1, -1, 3950, -1, -1, + -1, -1, 172, 3956, 126, 264, 265, 266, -1, -1, + -1, 133, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 147, -1, 3980, -1, -1, + 289, 290, -1, -1, -1, 3988, -1, -1, -1, 3992, + -1, -1, 250, 251, 252, 215, -1, -1, -1, -1, + 172, 221, 222, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4016, -1, 235, 4019, 275, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 336, -1, 338, + 339, -1, -1, -1, -1, -1, -1, -1, 4041, -1, + -1, -1, 300, 215, -1, 354, -1, 4050, 4051, 221, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 235, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4759, -1, -1, -1, -1, 334, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 355, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 296, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 568, -1, 568, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 412, -1, -1, - -1, -1, 334, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 429, -1, -1, -1, -1, -1, - -1, 4866, -1, 355, -1, -1, -1, -1, -1, -1, - 4875, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 4924, - -1, -1, -1, -1, -1, -1, -1, 4932, -1, -1, - -1, -1, -1, -1, -1, -1, 4941, 429, 4943, 4944, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 4992, -1, -1, - -1, -1, -1, 568, 4999, -1, 5001, -1, -1, -1, - -1, 5006, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 5016, -1, -1, -1, -1, -1, -1, 5023, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 5064, - 5065, 5066, -1, 5068, 5069, -1, 5071, -1, -1, -1, - 5075, 5076, -1, -1, 5079, -1, 568, -1, -1, -1, - -1, -1, -1, -1, 5089, 5090, -1, 5092, -1, -1, - -1, -1, -1, 5098, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 5116, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 5201, -1, 652, -1, - -1, -1, -1, -1, -1, -1, -1, 5212, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 676, -1, -1, -1, 5231, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 5241, -1, 692, -1, - -1, -1, -1, -1, 5249, -1, -1, -1, -1, -1, - 5255, -1, -1, 5258, -1, -1, -1, -1, -1, -1, - -1, -1, 5267, -1, -1, -1, 5271, 5272, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 5312, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 5323, -1, - -1, -1, 5327, -1, -1, -1, -1, -1, 5333, -1, - -1, -1, -1, -1, -1, 5340, -1, -1, -1, -1, - -1, -1, -1, -1, 798, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 5363, -1, - -1, -1, -1, -1, -1, 5370, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 5430, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 5440, -1, -1, 5443, -1, - -1, 895, -1, -1, -1, -1, -1, -1, -1, 5454, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 5476, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 945, -1, -1, 5499, -1, 950, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 5511, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 5529, 5530, 980, -1, -1, 983, - -1, -1, -1, -1, -1, -1, 990, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 5555, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 5568, -1, 5570, -1, -1, -1, -1, - -1, -1, -1, -1, 1028, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 5590, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 5620, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1079, 1080, 1081, 1082, -1, - -1, 1085, -1, -1, -1, -1, -1, 1091, 5643, -1, - 5645, 5646, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 5700, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 5763, -1, - -1, -1, -1, -1, 5769, -1, 5771, 5772, -1, -1, - -1, -1, -1, -1, -1, 5780, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1252, -1, - -1, 1255, -1, -1, -1, 5810, -1, -1, 5813, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 5848, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 5859, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 5873, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1338, -1, -1, -1, -1, -1, - -1, -1, -1, 5898, -1, -1, -1, 5902, 5903, -1, - -1, -1, -1, -1, 5909, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1377, -1, -1, 1380, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 5952, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 5976, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 5996, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 6016, -1, -1, -1, 6020, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 6039, -1, -1, -1, -1, -1, - 6045, 6046, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 6069, 6070, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1539, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1574, -1, -1, -1, -1, -1, 6131, -1, -1, -1, - 6135, -1, -1, 1587, 1588, -1, 6141, -1, -1, 1593, - 6145, -1, -1, 1597, 1598, 1599, 6151, -1, -1, -1, - -1, -1, 6157, -1, 1608, 1609, 1610, -1, -1, -1, - 1614, -1, 1616, 1617, 1618, 1619, 1620, -1, 1622, -1, - -1, 1625, 1626, -1, -1, -1, -1, -1, -1, 1633, - -1, 1635, -1, -1, 1638, 1639, -1, 1641, 1642, 1643, - -1, 1645, 1646, 1647, -1, -1, -1, -1, 1652, -1, - -1, 1655, -1, -1, -1, -1, -1, -1, -1, 1663, - 1664, -1, 1666, 1667, 1668, -1, -1, 1671, 1672, 1673, - 1674, 1675, 1676, 1677, -1, 1679, 1680, 1681, 1682, 1683, - 1684, -1, 1686, 1687, -1, 1689, 1690, 1691, 1692, 1693, - 1694, 1695, -1, -1, 1698, 1699, 1700, 1701, -1, 1703, - 1704, 1705, -1, 1707, -1, 1709, -1, 1711, -1, -1, - -1, 1715, 1716, 1717, -1, -1, 1720, 1721, 1722, 1723, - 1724, -1, 1726, -1, -1, -1, -1, -1, -1, 1733, - -1, -1, -1, -1, -1, -1, 1740, 1741, 1742, 1743, - -1, -1, -1, -1, -1, -1, -1, 1751, 1752, 1753, - -1, 1755, 1756, 1757, 1758, 1759, 1760, -1, 1762, 1763, - 1764, 1765, 1766, 1767, 1768, 1769, -1, -1, -1, 1773, - -1, -1, -1, -1, 1778, -1, -1, -1, -1, -1, - 1784, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1816, -1, -1, -1, -1, 1821, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1831, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1862, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1899, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1924, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1949, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2059, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4065, 235, -1, -1, -1, -1, -1, -1, + 328, -1, 330, -1, -1, -1, 296, -1, -1, -1, + -1, -1, 391, -1, 393, -1, -1, -1, 308, -1, + -1, 349, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 29, -1, -1, -1, 416, -1, -1, + 368, -1, 38, -1, 334, -1, -1, 375, -1, -1, + -1, -1, -1, -1, 296, -1, -1, -1, -1, 438, + -1, -1, 390, -1, 60, 355, -1, -1, -1, -1, + 449, 450, 400, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4155, -1, -1, -1, -1, 415, -1, -1, + -1, 87, 334, -1, -1, -1, 92, -1, -1, -1, + -1, 97, 481, -1, -1, -1, -1, -1, -1, -1, + -1, 490, -1, 355, -1, 111, -1, -1, -1, -1, + -1, -1, 412, -1, -1, -1, -1, -1, -1, -1, + 126, -1, -1, -1, -1, -1, -1, 133, -1, 429, + -1, -1, -1, -1, 472, -1, -1, 4220, -1, -1, + -1, 147, 4225, -1, 482, 16, 17, 536, 537, 538, + -1, 22, 23, -1, -1, 544, 545, -1, -1, -1, + 412, 32, -1, -1, -1, -1, 172, -1, 4251, -1, + -1, 560, 561, 4256, -1, -1, -1, 429, -1, -1, + -1, 519, -1, -1, -1, -1, -1, 58, -1, -1, + -1, 4274, -1, -1, 532, 584, 585, -1, -1, 70, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 215, + -1, -1, -1, -1, 603, 221, 222, -1, -1, 90, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 235, + -1, -1, -1, -1, 572, -1, -1, -1, -1, -1, + 578, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 568, -1, + -1, -1, 143, 144, -1, 146, -1, -1, -1, -1, + -1, -1, -1, 154, 155, 156, -1, -1, -1, -1, + 296, -1, 4375, -1, -1, -1, -1, -1, -1, 637, + -1, -1, -1, 174, -1, 694, 644, -1, 697, -1, + -1, 700, 6, -1, -1, -1, 568, -1, -1, -1, + -1, -1, 4405, 17, -1, -1, -1, -1, 334, -1, + -1, -1, -1, -1, 723, 4418, 674, 208, 32, -1, + -1, -1, -1, -1, -1, 29, 40, 41, 4431, 355, + -1, 689, 690, 742, 38, -1, 50, -1, -1, 4442, + -1, 4444, 233, -1, 702, 4448, 4449, 4450, 239, -1, + -1, 65, 66, -1, -1, -1, 60, -1, -1, -1, + -1, -1, 4465, 4466, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 264, 265, 266, -1, -1, -1, -1, + -1, -1, -1, 87, -1, -1, 412, -1, 92, -1, + 4493, -1, -1, 97, -1, 109, 110, -1, 289, 290, + 114, 4504, -1, 429, -1, -1, -1, 111, -1, -1, + -1, -1, -1, -1, 128, -1, -1, -1, -1, -1, + -1, -1, 126, -1, -1, -1, -1, -1, -1, 133, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 147, -1, 336, -1, 338, 339, -1, + -1, -1, 4555, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 354, -1, -1, 4569, 4570, 172, 4572, + -1, -1, -1, -1, 188, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 200, -1, -1, -1, + -1, 4594, -1, -1, -1, -1, -1, -1, -1, -1, + 391, -1, 393, -1, -1, -1, -1, -1, -1, -1, + -1, 215, -1, -1, 4617, -1, -1, 221, 222, -1, + -1, -1, -1, -1, -1, 416, 4629, -1, 4631, -1, + -1, 235, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 568, -1, -1, -1, 260, 438, -1, -1, + -1, -1, -1, -1, -1, -1, 4659, -1, 449, 450, + -1, -1, -1, -1, -1, -1, -1, -1, 4671, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 4681, -1, + 4683, -1, -1, -1, -1, 4688, 4689, -1, -1, -1, + 481, 4694, 296, -1, -1, -1, -1, -1, 4701, 490, + -1, -1, -1, 4706, -1, -1, -1, -1, -1, -1, + -1, -1, 326, -1, -1, -1, -1, -1, -1, -1, + -1, 335, -1, 4726, -1, -1, -1, -1, 4731, -1, + 334, -1, -1, 347, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 358, 536, 537, 538, -1, -1, + -1, 355, -1, 544, 545, -1, -1, 4760, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 382, 560, + 561, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 5, -1, 7, -1, -1, -1, -1, -1, + -1, -1, -1, 584, 585, -1, -1, -1, -1, -1, + 414, 415, -1, -1, 418, -1, 420, -1, 31, -1, + -1, -1, 603, 29, -1, -1, 39, -1, -1, -1, + -1, -1, 38, -1, -1, 429, -1, -1, -1, -1, + -1, 445, 446, -1, -1, -1, -1, -1, 61, 453, + 454, -1, -1, -1, 60, -1, -1, -1, -1, -1, + 73, -1, -1, -1, -1, -1, 470, -1, -1, -1, + -1, -1, -1, -1, 4867, -1, -1, -1, -1, -1, + -1, 87, 4875, -1, -1, -1, 92, -1, 492, -1, + -1, 97, -1, -1, -1, -1, 109, 110, -1, -1, + -1, 114, -1, -1, -1, 111, -1, -1, -1, 513, + -1, -1, -1, 694, -1, -1, 697, -1, -1, 700, + 126, -1, -1, -1, -1, -1, -1, 133, -1, 142, + -1, 4924, -1, -1, -1, -1, -1, -1, -1, 4932, + -1, 147, 723, -1, -1, -1, -1, -1, 4941, -1, + 4943, 4944, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 742, -1, -1, 568, -1, 172, -1, 181, -1, + -1, -1, -1, -1, 568, -1, 189, -1, 582, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 593, + -1, -1, 596, 597, -1, -1, -1, -1, -1, 4992, + -1, 214, -1, -1, -1, -1, 4999, 611, 5001, 215, + -1, -1, -1, 5006, -1, 221, 222, -1, -1, -1, + -1, -1, -1, 5016, -1, -1, -1, -1, -1, 235, + 5023, -1, -1, -1, -1, -1, -1, 250, 251, 252, + -1, -1, -1, 647, -1, -1, -1, -1, -1, -1, + 654, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 275, -1, -1, -1, -1, -1, 672, -1, + 674, 5064, 5065, 5066, -1, 5068, 5069, -1, 5071, -1, + -1, -1, 5075, 5076, -1, -1, 5079, 300, -1, -1, + 296, -1, -1, -1, -1, -1, 5089, 5090, -1, 5092, + -1, -1, -1, -1, -1, 5098, -1, 320, -1, -1, + -1, -1, -1, -1, -1, 328, -1, 330, -1, -1, + 724, -1, -1, 5116, -1, -1, 730, -1, 334, -1, + -1, -1, -1, -1, -1, -1, 349, -1, -1, -1, + -1, -1, 29, -1, -1, -1, -1, -1, -1, 355, + -1, 38, -1, -1, -1, 368, -1, -1, -1, -1, + -1, -1, 375, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 60, -1, -1, -1, 390, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 400, -1, -1, + -1, 404, -1, -1, -1, -1, -1, -1, 411, -1, + 87, 652, 415, -1, -1, 92, 412, 5200, -1, -1, + 97, -1, -1, -1, -1, -1, -1, -1, 5211, -1, + -1, -1, -1, 429, 111, 676, -1, -1, -1, 442, + -1, -1, -1, -1, -1, -1, -1, 5230, -1, 126, + -1, 692, -1, -1, -1, -1, 133, 5240, -1, -1, + -1, -1, -1, -1, -1, 5248, -1, -1, -1, 472, + 147, 5254, -1, -1, 5257, -1, -1, -1, -1, 482, + -1, -1, -1, 5266, -1, -1, -1, 5270, 5271, -1, + -1, -1, -1, -1, -1, 172, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 519, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 5311, 532, + -1, 534, -1, -1, -1, -1, -1, -1, 215, 5322, + -1, -1, -1, 5326, 221, 222, -1, -1, -1, 5332, + -1, -1, -1, -1, -1, -1, 5339, 798, 235, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 572, + -1, -1, 568, -1, -1, 578, -1, -1, -1, 5362, + -1, -1, -1, -1, -1, -1, 5369, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 2197, 2198, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 637, -1, -1, -1, -1, -1, + -1, 644, -1, -1, -1, -1, 5429, -1, -1, -1, + -1, -1, -1, -1, 895, -1, 5439, 334, -1, 5442, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 5453, 674, -1, -1, -1, -1, -1, -1, 355, -1, + -1, -1, -1, -1, -1, -1, 689, 690, -1, -1, + -1, -1, 5475, -1, -1, -1, -1, -1, -1, 702, + -1, -1, -1, -1, 945, -1, -1, -1, -1, 950, + -1, -1, -1, -1, -1, 5498, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5510, -1, -1, + -1, -1, -1, -1, -1, 412, -1, -1, -1, 980, + -1, -1, 983, -1, -1, 5528, 5529, -1, -1, 990, + -1, -1, 429, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5554, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 5567, -1, 5569, 1028, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 5589, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 5619, -1, 1079, 1080, + 1081, 1082, -1, -1, 1085, -1, -1, -1, -1, -1, + 1091, -1, -1, -1, -1, -1, -1, -1, -1, 5642, + -1, 5644, 5645, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2295, -1, 2297, -1, -1, -1, -1, -1, -1, - -1, 2305, 2306, -1, -1, -1, -1, -1, -1, -1, + -1, 568, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 5699, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2366, 2367, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2391, 2392, 2393, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5762, + -1, -1, -1, -1, -1, 5768, -1, 5770, 5771, -1, + -1, -1, -1, -1, -1, -1, 5779, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2405, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1252, -1, -1, 1255, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 5809, -1, -1, 5812, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 5847, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 5858, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 5871, -1, + -1, -1, -1, -1, -1, -1, -1, 1338, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2458, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2469, -1, -1, 2472, -1, + -1, -1, -1, 5896, -1, -1, -1, 5900, 5901, -1, + -1, -1, -1, -1, 5907, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1377, -1, -1, 1380, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2491, -1, -1, - -1, -1, -1, -1, 2498, -1, -1, 2501, -1, 2503, - -1, -1, -1, -1, -1, 2509, -1, 2511, 2512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5950, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2535, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2550, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 2567, -1, -1, -1, -1, -1, -1, + 5973, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2590, -1, -1, -1, + 5993, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 2612, -1, + 6013, -1, -1, -1, 6017, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2630, -1, -1, -1, + -1, -1, -1, 6036, -1, -1, -1, -1, -1, 6042, + 6043, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 6066, 6067, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1539, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1574, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 6128, 1587, 1588, -1, 6132, + -1, -1, 1593, -1, -1, 6138, 1597, 1598, 1599, 6142, + -1, -1, -1, -1, -1, 6148, -1, 1608, 1609, 1610, + -1, 6154, -1, 1614, -1, 1616, 1617, 1618, 1619, 1620, + -1, 1622, -1, -1, 1625, 1626, -1, -1, -1, -1, + -1, -1, 1633, -1, 1635, -1, -1, 1638, 1639, -1, + 1641, 1642, 1643, -1, 1645, 1646, 1647, -1, -1, -1, + -1, 1652, -1, -1, 1655, -1, -1, -1, -1, -1, + -1, -1, 1663, 1664, -1, 1666, 1667, 1668, -1, -1, + 1671, 1672, 1673, 1674, 1675, 1676, 1677, -1, 1679, 1680, + 1681, 1682, 1683, 1684, -1, 1686, 1687, -1, 1689, 1690, + 1691, 1692, 1693, 1694, 1695, -1, -1, 1698, 1699, 1700, + 1701, -1, 1703, 1704, 1705, -1, 1707, -1, 1709, -1, + 1711, -1, -1, -1, 1715, 1716, 1717, -1, -1, 1720, + 1721, 1722, 1723, 1724, -1, 1726, -1, -1, -1, -1, + -1, -1, 1733, -1, -1, -1, -1, -1, -1, 1740, + 1741, 1742, 1743, -1, -1, -1, -1, -1, -1, -1, + 1751, 1752, 1753, -1, 1755, 1756, 1757, 1758, 1759, 1760, + -1, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, -1, + -1, -1, 1773, -1, -1, -1, -1, 1778, -1, -1, + -1, -1, -1, 1784, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2691, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2704, -1, 2706, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1816, -1, -1, -1, -1, + 1821, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1831, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1862, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1899, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1924, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1949, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2799, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 2811, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 2865, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2059, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -14437,369 +14234,389 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2994, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2198, 2199, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3066, -1, -1, 3069, -1, -1, -1, -1, - -1, -1, -1, -1, 3078, -1, -1, -1, -1, -1, - -1, -1, 3086, -1, 3088, -1, 3090, -1, 3092, 3093, - 3094, 3095, 3096, 3097, -1, 3099, -1, -1, -1, -1, - -1, -1, -1, 3107, -1, 3109, -1, -1, 3112, 3113, - 3114, 3115, -1, -1, 3118, 3119, -1, -1, 3122, -1, - 3124, -1, 3126, -1, 3128, -1, -1, -1, 3132, -1, - -1, -1, -1, -1, -1, -1, 3140, -1, 3142, -1, - 3144, 3145, 3146, 3147, 3148, -1, -1, 3151, 3152, 3153, - -1, 3155, -1, -1, 3158, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3171, -1, -1, - -1, -1, 3176, -1, -1, 3179, -1, 3181, 3182, 3183, - -1, -1, 3186, -1, -1, -1, -1, -1, 3192, -1, - -1, -1, -1, 3197, -1, -1, -1, 652, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 3213, - -1, -1, -1, -1, -1, 3219, -1, -1, 3222, -1, - -1, 676, -1, -1, 3228, -1, -1, -1, -1, -1, - -1, 3235, 3236, 3237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 3254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 3284, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3311, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3327, -1, -1, 3330, 3331, 3332, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 798, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2275, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2296, -1, 2298, -1, -1, + -1, -1, -1, -1, -1, 2306, 2307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3376, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2367, 2368, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 895, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 3463, + -1, 2392, 2393, 2394, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2406, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3477, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 950, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 980, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 990, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2459, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2470, + -1, -1, 2473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3561, -1, -1, + -1, 2492, -1, -1, -1, -1, -1, -1, 2499, -1, + -1, 2502, -1, 2504, -1, 652, -1, -1, -1, 2510, + -1, 2512, 2513, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 676, + -1, -1, -1, -1, -1, 2536, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2551, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2568, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2591, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2613, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2631, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1082, -1, -1, + -1, 798, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 3650, -1, -1, -1, - -1, -1, -1, -1, 3658, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 3672, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3695, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3707, -1, -1, 3710, -1, -1, -1, + -1, 2692, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2705, -1, 2707, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 3733, - 3734, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3757, -1, 3759, -1, 3761, -1, 3763, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 895, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3785, -1, -1, -1, -1, -1, 3791, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1252, -1, -1, - -1, -1, 3806, 3807, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3826, -1, -1, -1, -1, 3831, -1, -1, - -1, -1, -1, 3837, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3847, -1, 3849, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2800, + -1, -1, -1, 950, -1, -1, -1, -1, -1, -1, + -1, 2812, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 3884, 3885, -1, 1338, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 3899, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 3913, + -1, -1, -1, 980, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 990, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1377, -1, -1, 1380, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2866, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3956, -1, -1, -1, -1, -1, -1, 3963, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1082, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4058, -1, -1, -1, -1, -1, - -1, 4065, -1, -1, -1, 4069, -1, -1, -1, -1, + -1, -1, -1, -1, 2995, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1539, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1574, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1593, -1, - -1, -1, 1597, -1, 1599, -1, -1, -1, -1, -1, - -1, -1, -1, 1608, 1609, -1, -1, -1, -1, 1614, - -1, 1616, 1617, 1618, 1619, 1620, -1, 1622, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1633, -1, - 1635, -1, -1, 1638, 1639, -1, 1641, 1642, -1, -1, - 1645, 1646, 1647, -1, -1, -1, -1, 1652, -1, -1, - 1655, -1, -1, -1, -1, -1, -1, -1, 1663, 1664, - -1, 1666, -1, 1668, -1, -1, 1671, 1672, 1673, 1674, - 1675, 1676, 1677, -1, 1679, 1680, 1681, 1682, 1683, -1, - -1, 1686, 1687, -1, -1, 1690, 1691, 1692, -1, -1, - -1, -1, -1, 1698, 1699, 1700, -1, -1, 1703, 1704, - 1705, -1, 1707, -1, 1709, -1, 1711, -1, -1, -1, - 1715, 1716, 1717, -1, -1, 1720, 1721, 1722, 1723, 1724, - -1, 1726, -1, -1, -1, -1, -1, -1, 1733, -1, - -1, -1, -1, -1, -1, 1740, 1741, 1742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 4319, 4320, -1, 4322, -1, - -1, -1, -1, -1, -1, -1, -1, 4331, -1, 4333, - -1, -1, 4336, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 4349, -1, 4351, -1, 4353, - -1, 4355, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1816, -1, -1, 4368, 4369, 1821, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1831, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3067, -1, -1, 3070, + -1, -1, -1, -1, -1, -1, -1, -1, 3079, -1, + -1, -1, -1, -1, -1, -1, 3087, -1, 3089, -1, + 3091, -1, 3093, 3094, 3095, 3096, 3097, 3098, -1, 3100, + -1, -1, -1, -1, -1, 1252, -1, 3108, -1, 3110, + -1, -1, 3113, 3114, 3115, 3116, -1, -1, 3119, 3120, + -1, -1, 3123, -1, 3125, -1, 3127, -1, 3129, -1, + -1, -1, 3133, -1, -1, -1, -1, -1, -1, -1, + 3141, -1, 3143, -1, 3145, 3146, 3147, 3148, 3149, -1, + -1, 3152, 3153, 3154, -1, 3156, -1, -1, 3159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3172, -1, -1, -1, -1, 3177, -1, -1, 3180, + -1, 3182, 3183, 3184, -1, -1, 3187, -1, -1, -1, + -1, 1338, 3193, -1, -1, -1, -1, 3198, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4408, -1, -1, -1, -1, -1, + -1, -1, -1, 3214, -1, -1, -1, -1, -1, 3220, + -1, -1, 3223, -1, -1, -1, -1, -1, 3229, -1, + 1377, -1, -1, 1380, -1, 3236, 3237, 3238, -1, -1, + -1, -1, 3243, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3255, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1899, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1924, + -1, 3312, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3328, -1, -1, + 3331, 3332, 3333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 4494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3377, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4528, -1, -1, -1, -1, -1, + -1, -1, 1539, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1574, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1593, -1, -1, -1, + 1597, -1, 1599, -1, -1, -1, -1, -1, -1, -1, + -1, 1608, 1609, 3464, -1, -1, -1, 1614, -1, 1616, + 1617, 1618, 1619, 1620, -1, 1622, -1, 3478, -1, -1, + -1, -1, -1, -1, -1, -1, 1633, -1, 1635, -1, + -1, 1638, 1639, -1, 1641, 1642, -1, -1, 1645, 1646, + 1647, -1, -1, -1, -1, 1652, -1, -1, 1655, -1, + -1, -1, -1, -1, -1, -1, 1663, 1664, -1, 1666, + -1, 1668, -1, -1, 1671, 1672, 1673, 1674, 1675, 1676, + 1677, -1, 1679, 1680, 1681, 1682, 1683, -1, -1, 1686, + 1687, -1, -1, 1690, 1691, 1692, -1, -1, -1, -1, + -1, 1698, 1699, 1700, -1, -1, 1703, 1704, 1705, -1, + 1707, 3562, 1709, -1, 1711, -1, -1, -1, 1715, 1716, + 1717, -1, -1, 1720, 1721, 1722, 1723, 1724, -1, 1726, + -1, -1, -1, -1, -1, -1, 1733, -1, -1, -1, + -1, -1, -1, 1740, 1741, 1742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 4620, -1, -1, -1, - -1, -1, -1, 4627, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 4637, -1, -1, -1, -1, -1, -1, + 3651, -1, -1, -1, -1, -1, -1, -1, 3659, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1816, + -1, -1, 3673, -1, 1821, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1831, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3696, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3708, -1, -1, + 3711, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3734, 3735, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1899, -1, -1, -1, -1, 3758, -1, 3760, + -1, 3762, -1, 3764, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1924, -1, -1, + -1, -1, -1, -1, -1, 3786, -1, -1, -1, -1, + -1, 3792, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3807, 3808, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3827, -1, -1, -1, + -1, 3832, -1, -1, -1, -1, -1, 3838, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 3851, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3886, 3887, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 4722, 4723, + 3901, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3915, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2197, 2198, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3958, -1, -1, + -1, -1, -1, -1, 3965, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 4796, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 2274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2295, -1, 2297, -1, -1, -1, -1, -1, -1, -1, - 2305, 2306, -1, -1, -1, -1, 4860, -1, 4862, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 4876, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 4893, - 4894, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 4912, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2198, 2199, -1, -1, -1, -1, -1, -1, 4060, + -1, -1, -1, -1, -1, -1, 4067, -1, -1, -1, + 4071, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2391, 2392, 2393, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2275, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2296, + -1, 2298, -1, -1, -1, -1, -1, -1, -1, 2306, + 2307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 5032, -1, - -1, -1, -1, -1, -1, -1, 2491, -1, -1, -1, - -1, 5045, -1, -1, 5048, -1, 2501, -1, 2503, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2535, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2550, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2392, 2393, 2394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 2567, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2590, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 5156, -1, -1, 5159, -1, 2612, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 5188, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4321, 4322, -1, 4324, -1, -1, -1, -1, -1, -1, + -1, -1, 4333, -1, 4335, -1, -1, 4338, -1, -1, + -1, -1, -1, -1, -1, 2492, -1, -1, -1, -1, + 4351, -1, 4353, -1, 4355, 2502, 4357, 2504, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 4370, + 4371, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2536, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2551, -1, -1, -1, -1, 4410, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2691, -1, -1, -1, + -1, 2568, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 5263, + -1, -1, -1, -1, 2591, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2613, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4495, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 4529, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2692, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2799, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2811, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 5373, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 5411, -1, 5413, - 2865, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4621, -1, -1, -1, -1, -1, -1, 4628, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4638, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2800, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2812, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2866, + -1, -1, 4723, 4724, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 5540, 5541, -1, 2994, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 5556, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4797, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3066, -1, -1, 3069, -1, -1, 5621, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2995, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3086, -1, -1, -1, 3090, -1, 3092, 3093, 3094, - 3095, 3096, 3097, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3107, -1, 3109, -1, -1, 3112, 3113, 3114, - 3115, -1, -1, 3118, 3119, -1, -1, 3122, 5672, 3124, - -1, 3126, -1, 3128, 5678, -1, -1, 3132, -1, -1, - -1, -1, -1, -1, -1, 3140, -1, 3142, -1, 3144, - -1, 3146, 3147, 3148, -1, -1, 3151, 3152, 3153, -1, - 3155, -1, -1, 3158, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 3171, -1, -1, -1, - -1, -1, -1, -1, 3179, -1, 3181, 3182, 3183, -1, - -1, 3186, -1, -1, -1, -1, -1, 3192, -1, -1, - -1, -1, 3197, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 3213, -1, + 4861, -1, 4863, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4876, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3228, -1, -1, -1, -1, -1, -1, - 5784, -1, 3237, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4893, 4894, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4912, -1, -1, -1, -1, -1, -1, -1, -1, + 3067, -1, -1, 3070, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 3087, -1, -1, -1, 3091, -1, 3093, 3094, 3095, 3096, + 3097, 3098, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3108, -1, 3110, -1, -1, 3113, 3114, 3115, 3116, + -1, -1, 3119, 3120, -1, -1, 3123, -1, 3125, -1, + 3127, -1, 3129, -1, -1, -1, 3133, -1, -1, -1, + -1, -1, -1, -1, 3141, -1, 3143, -1, 3145, -1, + 3147, 3148, 3149, -1, -1, 3152, 3153, 3154, -1, 3156, + -1, -1, 3159, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3172, -1, -1, -1, -1, + -1, 5032, -1, 3180, -1, 3182, 3183, 3184, -1, -1, + 3187, -1, -1, -1, 5045, -1, 3193, 5048, -1, -1, + -1, 3198, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3214, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 5830, -1, -1, 3284, + -1, -1, 3229, -1, -1, -1, -1, -1, -1, -1, + -1, 3238, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 3311, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 5156, -1, -1, 5159, -1, + -1, -1, -1, -1, -1, 3312, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5188, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3376, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 5953, - -1, -1, -1, -1, -1, -1, -1, 5961, -1, -1, + 3377, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 3463, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3477, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3464, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3478, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 6084, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5372, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 3561, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5400, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 5410, + -1, 5412, -1, -1, -1, 3562, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 6160, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3672, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3673, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 5539, 5540, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3696, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 3695, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3707, -1, -1, 3710, -1, -1, -1, -1, + -1, 3708, -1, -1, 3711, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 3733, 3734, + -1, -1, -1, -1, -1, -1, -1, 3734, 3735, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3757, -1, 3759, -1, 3761, -1, 3763, -1, + -1, 3758, -1, 3760, -1, 3762, -1, 3764, -1, 5620, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3786, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 3785, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3806, 3807, -1, -1, -1, -1, -1, -1, -1, + 3807, 3808, -1, -1, -1, -1, -1, -1, -1, -1, + 5671, -1, -1, -1, -1, -1, 5677, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3838, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3851, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3837, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 3849, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3886, + 3887, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3901, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 3884, - 3885, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 3899, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 5783, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3958, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 5829, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3956, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4060, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4071, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 5951, -1, -1, -1, -1, -1, -1, 5958, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 4058, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4069, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -14811,129 +14628,131 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 6081, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 6157, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4321, 4322, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4333, -1, 4335, -1, + -1, 4338, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4351, -1, 4353, -1, 4355, -1, + 4357, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4370, 4371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4319, 4320, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 4331, -1, 4333, -1, - -1, 4336, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4349, -1, 4351, -1, 4353, -1, - 4355, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 4368, 4369, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 4495, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 4529, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 4494, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 4528, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4621, -1, -1, -1, -1, -1, + -1, 4628, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4638, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 4620, -1, -1, -1, -1, - -1, -1, 4627, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 4637, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4723, 4724, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 4722, 4723, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4797, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 4861, -1, 4863, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 4876, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4796, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4893, 4894, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4912, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 4860, -1, 4862, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4876, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 4893, 4894, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 4912, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 5032, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5048, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 5032, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 5048, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 5159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5188, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 5159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 5188, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 5262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 5263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 5372, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 5410, -1, 5412, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 5373, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 5411, -1, 5413, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -14954,42 +14773,188 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 5677, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 6, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 17, 18, 19, 20, 21, + -1, -1, -1, -1, -1, -1, -1, 29, 30, -1, + 32, -1, -1, -1, -1, -1, -1, 39, 40, -1, + -1, 43, 44, 45, 46, -1, 48, 49, -1, 51, + 52, -1, -1, -1, -1, 57, -1, -1, -1, 61, + -1, -1, 64, -1, -1, -1, 5783, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 84, 85, 86, -1, 88, 89, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, + 102, -1, 104, 105, -1, -1, -1, 109, 110, 111, + -1, -1, 5829, -1, -1, -1, -1, 119, -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 145, -1, -1, -1, -1, 150, 151, + -1, 153, -1, -1, -1, -1, -1, 159, -1, 161, + -1, -1, 164, -1, -1, 167, 168, 169, -1, 171, + 172, 173, -1, 175, 176, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 190, -1, + -1, -1, 194, 195, 196, 197, -1, -1, -1, -1, + -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 215, 216, -1, -1, -1, -1, -1, + -1, -1, 224, -1, -1, 227, -1, -1, -1, -1, + -1, -1, -1, -1, 5951, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 247, -1, -1, -1, -1, + -1, 253, 254, -1, 256, 257, 258, -1, -1, -1, + 262, -1, -1, -1, -1, -1, -1, -1, 270, 271, + 272, 273, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 283, 284, 285, -1, -1, -1, -1, -1, 291, + -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + 6157, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, + 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, + 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 752, 753, -1, -1, -1, -1, 758, -1, 6, -1, + 762, -1, -1, 765, 766, -1, -1, 769, 770, 17, + 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, + -1, 29, 30, -1, 32, -1, -1, -1, -1, -1, + -1, 39, 40, -1, -1, 43, 44, 45, 46, -1, + 48, 49, -1, 51, 52, -1, -1, -1, -1, 57, + -1, -1, -1, 61, -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 5678, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, + 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 100, 101, 102, -1, 104, 105, -1, -1, + -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, + -1, 119, -1, 121, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 145, -1, -1, + -1, -1, 150, 151, -1, 153, -1, -1, -1, -1, + -1, 159, -1, 161, -1, -1, 164, -1, -1, 167, + -1, 169, -1, 171, 172, 173, -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 190, -1, -1, -1, 194, 195, 196, 197, + -1, -1, -1, -1, -1, -1, 204, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 215, 216, -1, + -1, -1, -1, -1, -1, -1, 224, -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 6, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 17, 18, 19, 20, 21, -1, -1, - -1, -1, -1, -1, -1, 29, 30, -1, 32, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, + -1, -1, -1, -1, -1, 253, 254, -1, 256, 257, + 258, -1, -1, -1, 262, -1, -1, -1, -1, -1, + -1, -1, 270, 271, 272, 273, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 283, 284, 285, -1, -1, + -1, -1, -1, 291, -1, 293, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, + 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + -1, 739, 740, 741, 742, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 752, 753, -1, -1, -1, -1, + 758, -1, -1, -1, 762, -1, -1, 765, 766, -1, + -1, 769, 770, 17, 18, 19, 20, 21, -1, -1, + -1, 25, -1, -1, -1, 29, 30, -1, 32, -1, -1, -1, -1, -1, -1, 39, 40, -1, -1, 43, 44, 45, 46, -1, 48, 49, -1, 51, 52, -1, -1, -1, -1, 57, -1, -1, -1, 61, -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 5784, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, 104, 105, -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, 119, -1, 121, -1, -1, - -1, -1, -1, -1, -1, 5830, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 132, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 145, -1, -1, -1, -1, 150, 151, -1, 153, -1, -1, -1, -1, -1, 159, -1, 161, -1, -1, 164, -1, -1, 167, 168, 169, -1, 171, 172, 173, - -1, 175, 176, -1, -1, -1, -1, -1, -1, -1, + -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 190, -1, -1, -1, 194, 195, 196, 197, -1, -1, -1, -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 215, 216, -1, -1, -1, -1, -1, -1, -1, 224, -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 247, -1, -1, -1, -1, 5953, 253, + -1, -1, -1, 247, -1, -1, -1, -1, -1, 253, 254, -1, 256, 257, 258, -1, -1, -1, 262, -1, - -1, -1, -1, -1, -1, -1, 270, 271, 272, 273, + -1, -1, -1, -1, 268, -1, 270, 271, 272, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, 283, 284, 285, -1, -1, -1, -1, -1, 291, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -15008,7 +14973,7 @@ 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 6160, 460, 461, 462, 463, + 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, @@ -15038,7 +15003,7 @@ 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, 752, 753, - -1, -1, -1, -1, 758, -1, 6, -1, 762, -1, + -1, -1, -1, -1, 758, -1, -1, -1, 762, -1, -1, 765, 766, -1, -1, 769, 770, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, 29, 30, -1, 32, -1, -1, -1, -1, -1, -1, 39, @@ -15054,7 +15019,7 @@ -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 145, -1, -1, -1, -1, 150, 151, -1, 153, -1, -1, -1, -1, -1, 159, - -1, 161, -1, -1, 164, -1, -1, 167, -1, 169, + -1, 161, -1, -1, 164, -1, -1, 167, 168, 169, -1, 171, 172, 173, -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 190, -1, -1, -1, 194, 195, 196, 197, -1, -1, @@ -15067,7 +15032,7 @@ -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, 270, 271, 272, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, 283, 284, 285, -1, -1, -1, -1, - -1, 291, -1, 293, -1, -1, -1, -1, -1, -1, + -1, 291, -1, 293, 294, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, @@ -15115,18 +15080,18 @@ 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, 752, 753, -1, -1, -1, -1, 758, -1, -1, -1, 762, -1, -1, 765, 766, -1, -1, 769, - 770, 17, 18, 19, 20, 21, -1, -1, -1, 25, + 770, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, 29, 30, -1, 32, -1, -1, -1, -1, -1, -1, 39, 40, -1, -1, 43, 44, 45, 46, -1, 48, 49, -1, 51, 52, -1, -1, -1, -1, 57, -1, -1, -1, 61, -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, - 86, -1, 88, 89, -1, -1, -1, -1, -1, -1, + 86, -1, 88, 89, -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, 100, 101, 102, -1, 104, 105, -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, 119, -1, 121, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 132, -1, 134, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 145, -1, -1, -1, -1, 150, 151, -1, 153, -1, -1, -1, -1, -1, 159, -1, 161, -1, -1, 164, -1, @@ -15140,7 +15105,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, -1, -1, -1, -1, 253, 254, -1, 256, 257, 258, -1, -1, -1, 262, -1, -1, -1, - -1, -1, 268, -1, 270, 271, 272, 273, -1, -1, + -1, -1, -1, -1, 270, 271, 272, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, 283, 284, 285, -1, -1, -1, -1, -1, 291, -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, @@ -15198,7 +15163,7 @@ -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, 88, 89, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, + -1, -1, 94, -1, -1, -1, -1, -1, 100, 101, 102, -1, 104, 105, -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, 119, -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -15218,7 +15183,7 @@ 262, -1, -1, -1, -1, -1, -1, -1, 270, 271, 272, 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, 283, 284, 285, -1, -1, -1, -1, -1, 291, - -1, 293, 294, -1, -1, -1, -1, -1, -1, -1, + -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, @@ -15349,8 +15314,8 @@ 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, 88, 89, -1, -1, -1, -1, - 94, -1, -1, -1, -1, -1, 100, 101, 102, -1, - 104, 105, -1, -1, -1, 109, 110, 111, -1, -1, + -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, + 104, 105, -1, -1, -1, 109, 110, 111, -1, 113, -1, -1, -1, -1, -1, 119, -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -15424,7 +15389,7 @@ -1, 61, -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, 88, 89, - -1, -1, -1, -1, 94, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, 104, 105, -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, 119, -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, @@ -15501,7 +15466,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, -1, 104, 105, - -1, -1, -1, 109, 110, 111, -1, 113, -1, -1, + -1, -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, 119, -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 145, @@ -15807,8 +15772,8 @@ -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 145, -1, -1, -1, -1, - 150, 151, -1, 153, -1, -1, -1, -1, -1, 159, - -1, 161, -1, -1, 164, -1, -1, 167, 168, 169, + 150, 151, 152, 153, -1, -1, -1, -1, -1, 159, + -1, 161, -1, -1, 164, -1, -1, 167, -1, 169, -1, 171, 172, 173, -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 190, -1, -1, -1, 194, 195, 196, 197, -1, -1, @@ -15884,7 +15849,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, 145, -1, -1, -1, -1, 150, 151, -1, 153, -1, -1, -1, -1, -1, 159, -1, 161, -1, -1, 164, -1, - -1, 167, 168, 169, -1, 171, 172, 173, -1, 175, + -1, 167, -1, 169, -1, 171, 172, 173, -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 190, -1, -1, -1, 194, 195, 196, 197, -1, -1, -1, -1, -1, -1, 204, -1, @@ -15958,7 +15923,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 145, -1, -1, -1, -1, 150, 151, - 152, 153, -1, -1, -1, -1, -1, 159, -1, 161, + -1, 153, -1, -1, -1, -1, -1, 159, -1, 161, -1, -1, 164, -1, -1, 167, -1, 169, -1, 171, 172, 173, -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 190, -1, @@ -16321,313 +16286,95 @@ 736, 737, -1, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, 752, 753, -1, -1, -1, -1, 758, -1, -1, -1, 762, -1, -1, 765, - 766, -1, -1, 769, 770, 17, 18, 19, 20, 21, - -1, -1, -1, -1, -1, -1, -1, 29, 30, -1, - 32, -1, -1, -1, -1, -1, -1, 39, 40, -1, - -1, 43, 44, 45, 46, -1, 48, 49, -1, 51, - 52, -1, -1, -1, -1, 57, -1, -1, -1, 61, - -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 84, 85, 86, -1, 88, 89, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, - 102, -1, 104, 105, -1, -1, -1, 109, 110, 111, - -1, -1, -1, -1, -1, -1, -1, 119, -1, 121, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 134, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 145, -1, -1, -1, -1, 150, 151, - -1, 153, -1, -1, -1, -1, -1, 159, -1, 161, - -1, -1, 164, -1, -1, 167, -1, 169, -1, 171, - 172, 173, -1, 175, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 190, -1, - -1, -1, 194, 195, 196, 197, -1, -1, -1, -1, - -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 215, 216, -1, -1, -1, -1, -1, - -1, -1, 224, -1, -1, 227, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 247, -1, -1, -1, -1, - -1, 253, 254, -1, 256, 257, 258, -1, -1, -1, - 262, -1, -1, -1, -1, -1, -1, -1, 270, 271, - 272, 273, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 283, 284, 285, -1, -1, -1, -1, -1, 291, - -1, 293, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, - 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, - 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, - 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, - 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, - 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, - 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, - 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, - 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, - 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, - 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, - 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, - 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, - 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, - 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, - 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, - 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, - 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, - 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 752, 753, -1, -1, -1, -1, 758, -1, -1, -1, - 762, -1, -1, 765, 766, -1, -1, 769, 770, 17, - 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, - -1, 29, 30, -1, 32, -1, -1, -1, -1, -1, - -1, 39, 40, -1, -1, 43, 44, 45, 46, -1, - 48, 49, -1, 51, 52, -1, -1, -1, -1, 57, - -1, -1, -1, 61, -1, -1, 64, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 84, 85, 86, -1, - 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 100, 101, 102, -1, 104, 105, -1, -1, - -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, - -1, 119, -1, 121, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 145, -1, -1, - -1, -1, 150, 151, -1, 153, -1, -1, -1, -1, - -1, 159, -1, 161, -1, -1, 164, -1, -1, 167, - -1, 169, -1, 171, 172, 173, -1, 175, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 190, -1, -1, -1, 194, 195, 196, 197, - -1, -1, -1, -1, -1, -1, 204, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 215, 216, -1, - -1, -1, -1, -1, -1, -1, 224, -1, -1, 227, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, - -1, -1, -1, -1, -1, 253, 254, -1, 256, 257, - 258, -1, -1, -1, 262, -1, -1, -1, -1, -1, - -1, -1, 270, 271, 272, 273, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 283, 284, 285, -1, -1, - -1, -1, -1, 291, -1, 293, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, - 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, - 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, - 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, - 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, - 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, - 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, - 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, - 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, - 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, - 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, - 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, - 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, - -1, 739, 740, 741, 742, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 752, 753, -1, -1, -1, -1, - 758, -1, -1, -1, 762, -1, -1, 765, 766, -1, - -1, 769, 770, 18, 19, 20, 21, -1, -1, -1, - -1, -1, -1, -1, 29, 30, -1, 32, -1, -1, - -1, -1, -1, -1, 39, 40, -1, -1, 43, 44, - 45, 46, -1, 48, 49, -1, 51, 52, -1, -1, - -1, -1, 57, -1, -1, -1, 61, -1, -1, 64, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, - 85, 86, -1, 88, 89, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 100, 101, 102, -1, 104, - 105, -1, -1, -1, 109, 110, 111, -1, -1, -1, - -1, -1, -1, -1, 119, -1, 121, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 134, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 145, -1, -1, -1, -1, 150, 151, -1, 153, -1, - -1, -1, -1, -1, 159, -1, 161, -1, -1, 164, - -1, -1, -1, -1, 169, -1, 171, 172, 173, -1, - 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 190, -1, -1, -1, 194, - 195, 196, 197, -1, -1, -1, -1, -1, -1, 204, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 215, 216, -1, -1, -1, -1, -1, -1, -1, 224, - -1, -1, 227, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 247, -1, -1, -1, -1, -1, 253, 254, - -1, 256, 257, 258, -1, -1, -1, 262, -1, -1, - -1, -1, -1, -1, -1, 270, 271, 272, 273, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 283, 284, - 285, -1, -1, -1, -1, -1, 291, -1, 293, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, 18, 739, 740, 741, 742, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 752, 753, -1, - -1, -1, -1, -1, -1, -1, -1, 762, -1, -1, - -1, 766, -1, -1, 769, 770, -1, -1, -1, -1, - -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 86, -1, -1, 89, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 104, - 105, -1, -1, -1, 109, 110, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 164, - -1, -1, -1, -1, -1, -1, -1, 172, 173, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, - -1, -1, -1, -1, -1, -1, 271, 272, 273, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, 24, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, -1, 739, 740, 741, 742, -1, -1, - -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 769, 770, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 766, -1, -1, 769, 770, 18, 19, 20, 21, -1, + -1, -1, -1, -1, -1, -1, 29, 30, -1, 32, + -1, -1, -1, -1, -1, -1, 39, 40, -1, -1, + 43, 44, 45, 46, -1, 48, 49, -1, 51, 52, + -1, -1, -1, -1, 57, -1, -1, -1, 61, -1, + -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 84, 85, 86, -1, 88, 89, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, + -1, 104, 105, -1, -1, -1, 109, 110, 111, -1, + -1, -1, -1, -1, -1, -1, 119, -1, 121, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 134, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 145, -1, -1, -1, -1, 150, 151, -1, + 153, -1, -1, -1, -1, -1, 159, -1, 161, -1, + -1, 164, -1, -1, -1, -1, 169, -1, 171, 172, + 173, -1, 175, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 190, -1, -1, + -1, 194, 195, 196, 197, -1, -1, -1, -1, -1, + -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 215, 216, -1, -1, -1, -1, -1, -1, + -1, 224, -1, -1, 227, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 247, -1, -1, -1, -1, -1, + 253, 254, -1, 256, 257, 258, -1, -1, -1, 262, + -1, -1, -1, -1, -1, -1, -1, 270, 271, 272, + 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 283, 284, 285, -1, -1, -1, -1, -1, 291, -1, + 293, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, 18, 739, 740, 741, 742, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 752, + 753, -1, -1, -1, -1, -1, -1, -1, -1, 762, + -1, -1, -1, 766, -1, -1, 769, 770, -1, -1, + -1, -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 86, -1, -1, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 104, 105, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 164, -1, -1, -1, -1, -1, -1, -1, 172, + 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -16635,6 +16382,9 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, + -1, -1, -1, -1, -1, -1, -1, -1, 271, 272, + 273, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, @@ -16642,7 +16392,7 @@ 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, @@ -16682,8 +16432,8 @@ 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, - -1, 754, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 769, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 769, 770, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -16737,94 +16487,17 @@ 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, + 661, 662, 663, 664, 665, 24, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, 32, 739, 740, + 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 754, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 61, -1, 769, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, 32, 739, 740, 741, 742, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 61, -1, -1, 770, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 109, 110, -1, 754, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -16885,161 +16558,89 @@ 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, - 739, 740, 741, 742, 6, 7, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 770, -1, -1, -1, -1, -1, -1, -1, 41, - -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 73, -1, -1, -1, -1, -1, -1, -1, -1, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 32, + 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 754, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, + 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, - -1, -1, 114, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, - 142, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 211, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 229, -1, -1, - -1, -1, -1, -1, -1, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 262, -1, -1, -1, -1, -1, -1, 269, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, - 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, - 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, - 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, - 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, - 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, - 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, - 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, - 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, - 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, - 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, - 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, - 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, - 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, - 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, - 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, - 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, - 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, - 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, - 742, 6, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, - -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 63, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 109, 110, -1, -1, -1, 114, - -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 135, -1, -1, -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, + 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, 32, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 211, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 229, -1, -1, -1, -1, -1, - -1, -1, 237, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 61, -1, -1, 770, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, - -1, -1, -1, -1, 269, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, 6, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, -1, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -17051,253 +16652,319 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, 6, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, -1, 739, 740, 741, 742, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, -1, 739, 740, 741, 742, 6, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, + -1, -1, -1, 770, -1, -1, -1, -1, -1, -1, + -1, 41, -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 63, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, + 110, -1, -1, -1, 114, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, + -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 211, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 229, + -1, -1, -1, -1, -1, -1, -1, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 262, -1, -1, -1, -1, -1, -1, 269, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, + 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, + 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, + 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, + 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, + 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, + 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, + 740, 741, 742, 6, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, + -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, + -1, 114, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 135, -1, -1, -1, -1, -1, -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, -1, 739, 740, 741, 742, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 27, -1, - 29, -1, 31, -1, 33, -1, -1, -1, -1, -1, - -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 60, -1, -1, 63, -1, 65, 66, -1, -1, - -1, -1, -1, -1, 73, -1, -1, -1, -1, -1, - -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 92, -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, - 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 130, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 140, -1, 142, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 211, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, + -1, -1, -1, -1, -1, -1, 229, -1, -1, -1, + -1, -1, -1, -1, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 191, 192, -1, -1, -1, -1, -1, -1, - -1, -1, 201, 202, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 213, 214, 215, 216, -1, 218, - -1, -1, -1, -1, 223, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 233, -1, -1, -1, 237, 238, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, + -1, -1, -1, -1, -1, -1, 269, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, + 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 6, 667, 668, 669, 670, 671, 672, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 277, -1, - 279, -1, 281, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 296, 297, -1, - -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, - 349, 350, 351, 352, 353, 354, -1, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, - -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, -1, 441, -1, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, -1, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 565, 566, 567, -1, - 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 584, 585, 586, -1, 588, - 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, - 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, - 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, - 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, - 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, - 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, - 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, - 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, - 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, - 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, - 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, - 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, - 739, 740, 741, 742, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 27, -1, 29, -1, 31, -1, - 33, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, - 63, -1, 65, 66, -1, -1, -1, -1, -1, -1, - 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 92, - -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 109, 110, 111, -1, - -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 130, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 140, -1, 142, - -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 191, 192, - -1, -1, -1, -1, -1, -1, -1, -1, 201, 202, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 213, 214, 215, 216, -1, 218, -1, -1, -1, -1, - 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 233, -1, -1, -1, 237, 238, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 277, -1, 279, -1, 281, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 296, 297, -1, -1, -1, -1, -1, - -1, 304, 305, 306, 307, -1, 309, 310, 311, 312, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, - 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, + -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, -1, 441, -1, + 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - -1, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 553, -1, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 565, 566, 567, -1, 569, 570, 571, 572, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, 6, 667, 668, 669, 670, 671, 672, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, + 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, - 583, 584, 585, 586, -1, 588, 589, 590, 591, 592, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, @@ -17315,25 +16982,25 @@ 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 27, -1, -1, -1, 31, -1, 33, -1, -1, -1, + 27, -1, 29, -1, 31, -1, 33, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 63, -1, 65, 66, + -1, -1, -1, 60, -1, -1, 63, -1, 65, 66, -1, -1, -1, -1, -1, -1, 73, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 92, -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, + -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, -1, -1, -1, 140, -1, 142, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 191, 192, -1, -1, -1, -1, -1, -1, -1, -1, 201, 202, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 213, 214, -1, 216, + -1, -1, -1, -1, -1, -1, 213, 214, 215, 216, -1, 218, -1, -1, -1, -1, 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, 233, -1, -1, -1, 237, 238, -1, -1, -1, -1, -1, -1, -1, -1, @@ -17341,11 +17008,11 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 277, -1, 279, -1, 281, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 296, 297, -1, -1, -1, -1, -1, -1, 304, 305, 306, 307, -1, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, + 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, @@ -17386,87 +17053,167 @@ 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, - 737, 35, 739, 740, 741, 742, -1, -1, -1, -1, + 737, -1, 739, 740, 741, 742, 7, 8, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 27, -1, 29, -1, + 31, -1, 33, -1, -1, -1, -1, -1, -1, -1, + 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, + -1, -1, 63, -1, 65, 66, -1, -1, -1, -1, + -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 92, -1, -1, -1, -1, -1, 98, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, + 111, -1, -1, -1, -1, -1, -1, -1, 119, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 130, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 140, + -1, 142, -1, -1, -1, -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 191, 192, -1, -1, -1, -1, -1, -1, -1, -1, + 201, 202, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 213, 214, 215, 216, -1, 218, -1, -1, + -1, -1, 223, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 233, -1, -1, -1, 237, 238, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 277, -1, 279, -1, + 281, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 296, 297, -1, -1, -1, + -1, -1, -1, 304, 305, 306, 307, -1, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, + 351, 352, 353, 354, -1, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, -1, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, -1, + 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, -1, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, -1, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, -1, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, + 741, 742, 7, 8, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 27, -1, -1, -1, 31, -1, 33, -1, + -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 63, -1, + 65, 66, -1, -1, -1, -1, -1, -1, 73, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, + -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 130, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 140, -1, 142, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 191, 192, -1, -1, + -1, -1, -1, -1, -1, -1, 201, 202, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 213, 214, + -1, 216, -1, 218, -1, -1, -1, -1, 223, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 233, -1, + -1, -1, 237, 238, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 277, -1, 279, -1, 281, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 297, -1, -1, -1, -1, -1, -1, 304, + 305, 306, 307, -1, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, + -1, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, -1, 441, -1, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, -1, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, -1, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, -1, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, -1, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, 35, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, - 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, - 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, 36, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 770, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, - -1, -1, 114, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 129, -1, -1, - -1, -1, -1, -1, 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -17475,14 +17222,11 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 229, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 240, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, @@ -17529,13 +17273,14 @@ 732, 733, 734, 735, 736, 737, 36, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 769, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 770, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, 114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 129, + -1, -1, -1, -1, -1, -1, 136, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -17544,15 +17289,14 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 229, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 240, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, @@ -17589,341 +17333,121 @@ 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 661, 662, 663, 664, 665, 11, 667, 668, 669, + 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, - 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, + 730, 731, 732, 733, 734, 735, 736, 737, 36, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 109, 110, -1, -1, -1, 769, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 109, 110, -1, -1, -1, 114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, 17, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 240, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 234, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, - 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, - 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, -1, 739, 740, 741, 742, 16, - 17, -1, -1, 747, -1, 22, 23, -1, -1, -1, - -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 58, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 143, 144, -1, 146, - -1, -1, -1, -1, -1, -1, -1, 154, 155, 156, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 174, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 208, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 233, -1, -1, -1, - -1, -1, 239, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 264, 265, 266, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 289, 290, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, - 307, -1, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, -1, 354, 355, 356, - 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, -1, 443, 444, 445, -1, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, -1, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 557, 558, -1, 560, 561, 562, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, - 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, - 597, 598, 599, 600, 601, -1, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, - 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, - 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, - 637, 638, 639, 640, 641, 642, 643, 644, 645, -1, - 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, - 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, - 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, - 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, - 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, - 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, - 717, 718, 719, 720, 721, -1, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, - 737, -1, 739, 740, 741, 742, 16, 17, -1, -1, - -1, -1, 22, 23, -1, -1, -1, -1, -1, -1, - -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 58, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, - 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 123, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 143, 144, -1, 146, -1, -1, -1, - -1, -1, -1, -1, 154, 155, 156, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 174, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 208, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 233, -1, -1, -1, -1, -1, 239, + -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 11, 667, + 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + -1, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, + -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 264, 265, 266, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 289, - 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 305, 306, 307, -1, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, -1, -1, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, -1, 354, 355, 356, 357, 358, -1, - 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, -1, 443, 444, 445, -1, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, -1, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, -1, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, - 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, - 600, 601, -1, 603, 604, 605, 606, 607, 608, 609, - 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, - 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, - 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, - 640, 641, 642, 643, 644, 645, -1, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, - 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, - 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, - 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, - 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, - 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, - 720, 721, -1, 723, 724, 725, 726, 727, 728, 729, - 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, - 740, 741, 742, 16, 17, -1, -1, -1, -1, 22, - 23, -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 58, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 143, 144, -1, 146, -1, -1, -1, -1, -1, -1, - -1, 154, 155, 156, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 174, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 208, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 233, -1, -1, -1, -1, -1, 239, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 264, 265, 266, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 289, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 305, 306, 307, -1, 309, 310, 311, 312, + -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - -1, -1, 335, 336, 337, 338, 339, 340, 341, 342, + -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - -1, 354, 355, 356, 357, 358, -1, 360, 361, 362, + 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, - 443, 444, 445, -1, 447, 448, 449, 450, 451, 452, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, @@ -17931,206 +17455,216 @@ 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, - 523, -1, 525, 526, 527, 528, 529, 530, 531, 532, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 553, 554, 555, 556, 557, 558, -1, 560, 561, 562, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, - 593, 594, 595, 596, 597, 598, 599, 600, 601, -1, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, - 643, 644, 645, -1, 647, 648, 649, 650, 651, 652, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 17, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, - 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, + 733, 734, 735, 736, 737, 17, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, - 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, - 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, - 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, - 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, - 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, - 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, - 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, - 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, - 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, - 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, - 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, - 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, - 17, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, + -1, -1, 234, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, + -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, + 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, + 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, + 742, 16, 17, -1, -1, 747, -1, 22, 23, -1, + -1, -1, -1, -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 58, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 143, 144, + -1, 146, -1, -1, -1, -1, -1, -1, -1, 154, + 155, 156, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 174, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 208, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 233, -1, + -1, -1, -1, -1, 239, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 264, + 265, 266, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 289, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, + 305, 306, 307, -1, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, -1, 354, + 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, + 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, + 445, -1, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, -1, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, -1, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, -1, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, -1, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, -1, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, -1, 739, 740, 741, 742, 16, 17, + -1, -1, -1, -1, 22, 23, -1, -1, -1, -1, + -1, -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 58, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, - 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, - 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, - 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, - 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, - 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, - 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, - 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, 17, - 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, - 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, - 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, - 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, - 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, - 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, - 737, -1, 739, 740, 741, 742, -1, -1, -1, -1, + -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 143, 144, -1, 146, -1, + -1, -1, -1, -1, -1, -1, 154, 155, 156, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 174, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 208, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 233, -1, -1, -1, -1, + -1, 239, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 264, 265, 266, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 289, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + -1, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, + 328, 329, 330, 331, 332, -1, -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 348, 349, 350, 351, 352, -1, 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, + 438, 439, 440, 441, -1, 443, 444, 445, -1, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, @@ -18138,98 +17672,111 @@ 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 518, 519, 520, 521, 522, 523, -1, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 558, -1, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, - 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 598, 599, 600, 601, -1, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, - 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 638, 639, 640, 641, 642, 643, 644, 645, -1, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, - 658, 659, 660, 661, 662, 663, 664, 665, 18, 667, + 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 718, 719, 720, 721, -1, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, - -1, 739, 740, 741, 742, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 104, 105, -1, -1, -1, 109, - 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 739, 740, 741, 742, 16, 17, -1, -1, -1, + -1, 22, 23, -1, -1, -1, -1, -1, -1, -1, + -1, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 58, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 143, 144, -1, 146, -1, -1, -1, -1, + -1, -1, -1, 154, 155, 156, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 174, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 208, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 233, -1, -1, -1, -1, -1, 239, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 264, 265, 266, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 289, 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 305, 306, 307, -1, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, -1, -1, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, -1, 354, 355, 356, 357, 358, -1, 360, + 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, -1, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, -1, 443, 444, 445, -1, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, -1, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, -1, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, -1, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, -1, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 17, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, + 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, - 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, - 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, - 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, - 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, - 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, - 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, - 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 661, 662, 663, 664, 665, 24, 667, 668, 669, - 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, - 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, - 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, - 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, - 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, - 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, - 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, - 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, - -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -18242,57 +17789,61 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, - 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, - 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, - 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, - 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, - 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, - 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, - 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, - 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, - 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, - 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, - 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, - 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, - 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, - 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, - 45, 739, 740, 741, 742, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, + -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 17, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, @@ -18350,23 +17901,82 @@ 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, -1, 663, 664, - 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, 17, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, -1, 739, 740, 741, 742, 37, 38, - -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, - -1, -1, -1, -1, -1, -1, -1, 762, -1, -1, + 735, 736, 737, -1, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, + -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 18, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, -1, 739, 740, 741, 742, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 104, 105, -1, -1, + -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -18381,14 +17991,288 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, + 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, + 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, + 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, + 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, + 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 24, 667, + 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, + 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, + 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + -1, 739, 740, 741, 742, -1, -1, -1, -1, -1, + -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, + -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 45, 739, 740, 741, 742, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, + 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, -1, + 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, + 37, 38, -1, -1, -1, -1, -1, -1, -1, -1, + 47, -1, -1, -1, -1, -1, -1, -1, -1, 762, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 305, 306, 307, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, + 307, -1, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, -1, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, -1, 739, 740, 741, 742, 45, 46, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, -1, -1, 335, 336, 337, 338, + 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, @@ -18396,9 +18280,9 @@ 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, + -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, @@ -18428,21 +18312,296 @@ 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, - 739, 740, 741, 742, 45, 46, -1, -1, -1, -1, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 45, + 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, + -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, 46, 739, 740, 741, 742, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, + 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 47, 739, 740, 741, 742, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 305, 306, 307, -1, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + -1, -1, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, + 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, -1, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, + 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, + 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, + 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, + 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, + 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, + 57, -1, -1, -1, 61, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 89, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, + -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 145, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 173, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 272, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, + 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, + 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, + 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, + 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, + 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, + 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, + 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, + 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, + 737, -1, 739, 740, 741, 742, 57, -1, -1, -1, + 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 89, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 104, -1, -1, -1, -1, 109, 110, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -18452,7 +18611,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, @@ -18498,10 +18657,77 @@ 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, 45, 739, 740, - 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, + 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, + 741, 742, 57, -1, -1, -1, 61, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 89, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 104, + -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 173, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 272, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, + 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, 61, 739, 740, 741, 742, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -18568,88 +18794,11 @@ 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, - 46, 739, 740, 741, 742, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 135, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, - -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, - 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, - 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, - 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, - 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, - 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, - 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, - 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, - 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, - 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, - 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, - 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, - 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, - 736, 737, 47, 739, 740, 741, 742, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 61, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -18663,199 +18812,137 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, -1, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, -1, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, -1, 739, 740, 741, 742, 57, -1, - -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, - 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, + 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, -1, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, + 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, + 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 61, 739, 740, + 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, - -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, - 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, - 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, - 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, - 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, - 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, - 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, - 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, - 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, - 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, - 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, - 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, - 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, - 739, 740, 741, 742, 57, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 104, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, + 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, + 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, + 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, + 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, + 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, + 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, 61, 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, - 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, - 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, -1, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, - 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, - 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, - 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, - 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, - 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, - 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, - 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, - 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, - 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, - 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, - 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, - 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, - 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, - 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, - 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, - 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, - 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, - 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, - 57, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 89, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 104, -1, -1, - -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -18864,8 +18951,6 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, @@ -18919,7 +19004,6 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -18932,7 +19016,8 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -19067,7 +19152,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -19086,11 +19171,11 @@ 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 446, 447, 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 486, 487, 488, 489, 490, 491, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, @@ -19106,7 +19191,7 @@ 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 646, -1, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, @@ -19115,12 +19200,14 @@ 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, - 736, 737, 61, 739, 740, 741, 742, -1, -1, -1, + 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -19133,65 +19220,117 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, + -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, -1, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, + 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, + 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, + 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, + 742, -1, -1, 109, 110, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 763, -1, -1, -1, -1, -1, 769, 770, 135, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, - -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, - 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, - 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, - 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, - 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, - 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, - 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, - 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, - 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, - 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, - 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, - 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, - 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, - 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, - 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 734, 735, 736, 737, 61, - 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, + 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, + -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, + 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, + 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, + 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, + 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, + 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, + 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, + 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, + 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 135, 770, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -19204,6 +19343,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -19250,209 +19390,10 @@ 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, - 732, 733, 734, 735, 736, 737, 61, 739, 740, 741, - 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, - 735, 736, 737, 61, 739, 740, 741, 742, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, - -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, - 448, 449, 450, 451, 452, -1, 454, 455, 456, 457, - 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, -1, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, - 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, - 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, - 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, - 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, - 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, - 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, - 638, 639, 640, 641, 642, 643, 644, 645, 646, -1, - 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, - 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, - 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, - 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, - 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, - 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, - 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, - -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, + 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, - 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, -1, 739, 740, 741, 742, -1, - -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 763, - -1, -1, -1, -1, -1, 769, 770, 135, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 135, 770, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -19516,7 +19457,8 @@ -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 135, 770, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 770, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -19528,7 +19470,6 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -19538,7 +19479,7 @@ 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, @@ -19579,7 +19520,8 @@ 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 135, 770, -1, -1, -1, + -1, -1, -1, -1, -1, 769, 770, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -19592,7 +19534,6 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -19659,7 +19600,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, + -1, 297, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, @@ -19705,8 +19646,8 @@ 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 769, 770, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 763, -1, -1, + -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -19728,7 +19669,7 @@ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, @@ -19768,8 +19709,9 @@ 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 122, -1, -1, -1, -1, -1, + 762, -1, -1, -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 770, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -19785,14 +19727,13 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 297, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, + 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, @@ -19832,7 +19773,7 @@ 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 763, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -19895,7 +19836,7 @@ 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 122, -1, -1, -1, -1, -1, 762, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -19918,7 +19859,7 @@ 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, @@ -19982,7 +19923,7 @@ 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, @@ -20021,7 +19962,7 @@ 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 754, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -20045,7 +19986,7 @@ 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, @@ -20084,9 +20025,9 @@ 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, - 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, + 742, 109, 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 769, -1, -1, + 762, -1, -1, -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -20148,7 +20089,7 @@ 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 754, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -20211,8 +20152,8 @@ 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, - 110, 111, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 762, -1, + 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -20400,21 +20341,21 @@ 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, - 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, + 732, 733, 734, 735, 736, 737, 104, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 769, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 762, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 167, + 168, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 183, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 242, 243, 244, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -20464,10 +20405,11 @@ 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, - -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, + -1, 739, 740, 741, 742, 94, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 753, -1, -1, -1, -1, + 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 769, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -20484,115 +20426,115 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, - 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, - 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, - 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, - 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, - 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, - 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, - 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, - 734, 735, 736, 737, 104, 739, 740, 741, 742, 109, - 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 762, -1, + -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, + -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, + 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, + 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, + 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, + 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, + 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, + 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, + 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 94, + 739, 740, 741, 742, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 167, 168, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 183, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 242, 243, 244, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, -1, - 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, -1, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 452, 453, 454, 455, 456, 457, 458, -1, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, - 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, - 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, - 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, - 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, - 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, - 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, - 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, - 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, - 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, - 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, - 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, - 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, - 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, - 740, 741, 742, 94, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 753, -1, -1, -1, -1, 109, 110, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, + 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, + 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, + 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, + 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -20655,10 +20597,9 @@ 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, 94, 739, 740, - 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, + 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 754, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -20721,7 +20662,7 @@ 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 754, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -20976,6 +20917,7 @@ 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, 754, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -20985,11 +20927,10 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 234, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21038,22 +20979,22 @@ 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 754, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 747, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 190, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21062,7 +21003,7 @@ 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, @@ -21102,22 +21043,22 @@ 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 754, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 190, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 234, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, @@ -21126,7 +21067,7 @@ 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, + 359, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, @@ -21164,7 +21105,7 @@ 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, - 739, 740, 741, 742, 109, 110, -1, -1, 747, -1, + 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21176,7 +21117,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 225, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21231,20 +21172,20 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 190, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 233, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 243, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, @@ -21252,7 +21193,7 @@ 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, @@ -21293,21 +21234,21 @@ 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 135, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 145, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 190, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, @@ -21316,7 +21257,7 @@ 327, 328, 329, 330, 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 362, 363, 364, 365, -1, + 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, @@ -21367,7 +21308,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 233, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 243, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21420,11 +21361,12 @@ 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 173, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21433,7 +21375,6 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21490,11 +21431,11 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 199, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 243, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21551,7 +21492,6 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21561,6 +21501,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21686,7 +21627,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -21744,7 +21685,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 199, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -22051,7 +21992,7 @@ 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, - 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, + -1, 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -22067,7 +22008,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -22086,11 +22027,11 @@ 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 449, 450, 451, 452, -1, 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 489, 490, 491, -1, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, @@ -22105,7 +22046,7 @@ 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, - 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, + 639, 640, 641, 642, 643, 644, 645, 646, -1, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, @@ -22135,49 +22076,49 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 305, 306, 307, -1, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, -1, 334, + 325, 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, -1, 360, 361, 362, 363, 364, - 365, -1, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, + -1, 356, 357, 358, -1, 360, 361, 362, 363, 364, + 365, -1, 367, 368, 369, -1, 371, 372, 373, 374, + 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 405, 406, -1, 408, 409, 410, 411, -1, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, -1, 443, 444, + 435, 436, 437, 438, 439, -1, 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, -1, 460, 461, 462, 463, 464, + -1, 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + 475, 476, 477, 478, 479, 480, 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 545, 546, 547, 548, 549, 550, 551, 552, 553, -1, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, + 565, 566, 567, -1, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, + 585, 586, -1, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, - 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, + 615, 616, 617, -1, 619, 620, 621, 622, 623, 624, + 625, 626, 627, 628, 629, 630, -1, 632, 633, 634, + 635, 636, 637, 638, -1, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, -1, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, + -1, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, -1, 734, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -22194,137 +22135,102 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 305, 306, 307, 308, 309, 310, + -1, -1, -1, 294, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 305, 306, 307, -1, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, -1, 334, 335, 336, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, -1, 360, - 361, 362, 363, 364, 365, -1, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, + 331, -1, -1, -1, -1, 336, 337, 338, 339, 340, + -1, -1, 343, 344, 345, 346, -1, -1, -1, 350, + 351, 352, 353, 354, -1, 356, 357, 358, -1, 360, + -1, -1, -1, -1, -1, -1, 367, -1, 369, -1, + 371, 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, 427, -1, -1, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, -1, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, -1, 454, 455, 456, 457, 458, -1, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, -1, 493, 494, 495, 496, 497, 498, 499, 500, + 391, 392, 393, 394, -1, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, -1, 408, 409, 410, + 411, -1, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, -1, -1, -1, 427, -1, -1, 430, + 431, 432, 433, 434, 435, 436, 437, 438, -1, -1, + -1, -1, -1, 444, 445, 446, 447, 448, 449, 450, + 451, -1, 453, 454, -1, 456, 457, -1, -1, 460, + -1, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, -1, 474, 475, 476, 477, 478, 479, 480, + 481, 482, -1, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, - 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, - 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 551, 552, 553, -1, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 109, 110, -1, + -1, 572, 573, -1, 575, 576, 577, 578, -1, 580, + 581, 582, 583, 584, 585, -1, -1, -1, -1, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, - 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, - 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, - 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, - 641, 642, 643, 644, 645, 646, -1, 648, 649, 650, - 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, -1, 667, 668, 669, 670, - 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, + 611, 612, 613, 614, 615, -1, 617, -1, 619, 620, + -1, 622, 623, -1, 625, 626, 627, 628, 629, 630, + -1, 632, 633, 634, 635, 636, 637, 638, -1, 640, + 641, 642, -1, 644, 645, 646, 647, -1, 649, 650, + -1, -1, 653, -1, -1, 656, 657, 658, -1, 660, + -1, 662, 663, 664, 665, -1, 667, 668, 669, -1, + 671, 672, -1, 674, -1, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, - 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, - 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, - 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, + 691, 692, 693, 694, 695, -1, 697, 698, 699, 700, + 701, 702, 703, 704, -1, 706, 707, 708, -1, 710, + 711, 712, 713, -1, -1, 716, 717, -1, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, -1, 739, 740, - 741, 742, 109, 110, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, - 307, -1, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 330, 331, 332, -1, -1, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - -1, 348, 349, 350, 351, 352, 353, 354, -1, 356, - 357, 358, -1, 360, 361, 362, 363, 364, 365, -1, - 367, 368, 369, -1, 371, 372, 373, 374, 375, 376, - 377, 378, 379, -1, 381, 382, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, - -1, 408, 409, 410, 411, -1, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - 427, -1, -1, 430, 431, 432, 433, 434, 435, 436, - 437, 438, 439, -1, 441, -1, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, -1, 456, - 457, 458, -1, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, -1, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, - 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, -1, 555, 556, - 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, - 567, -1, 569, 570, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, - -1, 588, 589, 590, 591, 592, 593, 594, 595, 596, - 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, - 617, -1, 619, 620, 621, 622, 623, 624, 625, 626, - 627, 628, 629, 630, -1, 632, 633, 634, 635, 636, - 637, 638, -1, 640, 641, 642, 643, 644, 645, 646, - 647, 648, 649, 650, -1, 652, 653, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, -1, - 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, - 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, - 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, - 697, 698, 699, 700, 701, 702, 703, 704, -1, 706, - 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, - 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, - 737, -1, 739, 740, 741, 742, 109, 110, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 731, 732, -1, -1, 735, 736, -1, -1, 739, -1, + 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 294, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 305, 306, 307, -1, 309, -1, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, + -1, -1, -1, -1, 336, 337, 338, 339, 340, -1, + -1, 343, 344, 345, 346, -1, -1, -1, 350, 351, + 352, 353, 354, -1, 356, 357, 358, -1, 360, -1, + -1, -1, -1, -1, -1, 367, -1, 369, -1, 371, + 372, 373, 374, 375, 376, 377, 378, 379, -1, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, -1, 396, 397, 398, -1, 400, 401, + 402, 403, 404, 405, 406, -1, 408, 409, 410, 411, + -1, 413, 414, 415, 416, 417, 418, 419, 420, 421, + 422, 423, -1, -1, -1, 427, -1, -1, 430, 431, + 432, 433, 434, 435, 436, 437, 438, -1, -1, -1, + -1, -1, 444, 445, 446, 447, 448, 449, 450, 451, + -1, 453, 454, -1, 456, 457, -1, -1, 460, -1, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, + 472, -1, 474, 475, 476, 477, 478, 479, 480, 481, + 482, -1, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, -1, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 109, 110, -1, -1, + 572, 573, -1, 575, 576, 577, 578, -1, 580, 581, + 582, 583, 584, 585, -1, -1, -1, -1, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 615, -1, 617, -1, 619, 620, -1, + 622, 623, -1, 625, 626, 627, 628, 629, 630, -1, + 632, 633, 634, 635, 636, 637, 638, -1, 640, 641, + 642, -1, 644, 645, 646, 647, -1, 649, 650, -1, + -1, 653, -1, -1, 656, 657, 658, -1, 660, -1, + 662, 663, 664, 665, -1, 667, 668, 669, -1, 671, + 672, -1, 674, -1, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, -1, 697, 698, 699, 700, 701, + 702, 703, 704, -1, 706, 707, 708, -1, 710, 711, + 712, 713, -1, -1, 716, 717, -1, 719, 720, 721, + 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, + 732, -1, -1, 735, 736, -1, -1, 739, -1, 741, + 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 294, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, 306, 307, -1, 309, -1, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, 326, 327, 328, 329, 330, 331, -1, @@ -22360,7 +22266,7 @@ 623, -1, 625, 626, 627, 628, 629, 630, -1, 632, 633, 634, 635, 636, 637, 638, -1, 640, 641, 642, -1, 644, 645, 646, 647, -1, 649, 650, -1, -1, - 653, -1, -1, 656, 657, 658, -1, 660, -1, 662, + 653, -1, -1, 656, 657, 658, 200, 660, -1, 662, 663, 664, 665, -1, 667, 668, 669, -1, 671, 672, -1, 674, -1, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, @@ -22370,143 +22276,51 @@ 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, -1, -1, 735, 736, -1, -1, 739, -1, 741, 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 294, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 305, 306, 307, -1, 309, -1, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, - 324, 325, 326, 327, 328, 329, 330, 331, -1, -1, - -1, -1, 336, 337, 338, 339, 340, -1, -1, 343, - 344, 345, 346, -1, -1, -1, 350, 351, 352, 353, - 354, -1, 356, 357, 358, -1, 360, -1, -1, -1, - -1, -1, -1, 367, -1, 369, -1, 371, 372, 373, - 374, 375, 376, 377, 378, 379, -1, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, -1, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, -1, 408, 409, 410, 411, -1, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - -1, -1, -1, 427, -1, -1, 430, 431, 432, 433, - 434, 435, 436, 437, 438, -1, -1, -1, -1, -1, - 444, 445, 446, 447, 448, 449, 450, 451, -1, 453, - 454, -1, 456, 457, -1, -1, 460, -1, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, -1, - 474, 475, 476, 477, 478, 479, 480, 481, 482, -1, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 305, 306, 307, -1, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 329, 330, 331, 332, -1, + -1, 335, -1, 337, -1, -1, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 349, 350, 351, 352, -1, + -1, 355, 356, 357, 358, -1, 360, 361, 362, 363, + 364, 365, -1, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 388, 389, 390, -1, 392, -1, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, -1, 413, + 414, 415, -1, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, 427, -1, -1, 430, 431, 432, 433, + 434, 435, 436, 437, -1, 439, 440, 441, -1, 443, + 444, 445, 446, 447, 448, -1, -1, 451, 452, 453, + 454, 455, 456, 457, 458, -1, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, -1, 482, 483, + 484, 485, 486, 487, 488, 489, -1, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, - 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, - 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, - -1, 555, 556, 557, 558, 559, 560, 561, 562, 563, - 564, 565, 566, 567, 109, 110, -1, -1, 572, 573, - -1, 575, 576, 577, 578, -1, 580, 581, 582, 583, - 584, 585, -1, -1, -1, -1, 590, 591, 592, 593, - 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, + -1, 525, 526, 527, 528, 529, 530, 531, 532, 533, + 534, 535, -1, -1, -1, 539, 540, 541, 542, 543, + -1, -1, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, -1, -1, -1, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, + 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, + -1, -1, 586, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, -1, -1, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, - 614, 615, -1, 617, -1, 619, 620, -1, 622, 623, - -1, 625, 626, 627, 628, 629, 630, -1, 632, 633, - 634, 635, 636, 637, 638, -1, 640, 641, 642, -1, - 644, 645, 646, 647, -1, 649, 650, -1, -1, 653, - -1, -1, 656, 657, 658, -1, 660, -1, 662, 663, - 664, 665, -1, 667, 668, 669, -1, 671, 672, -1, - 674, -1, 676, 677, 678, 679, 680, 681, 682, 683, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, + 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, -1, 636, 637, 638, 639, 640, 641, 642, 643, + 644, 645, -1, 647, 648, 649, 650, 651, 652, 653, + 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, -1, 667, 668, 669, 670, 671, 672, 673, + 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, - 694, 695, -1, 697, 698, 699, 700, 701, 702, 703, - 704, -1, 706, 707, 708, -1, 710, 711, 712, 713, - -1, -1, 716, 717, -1, 719, 720, 721, 722, 723, - 724, 725, 726, 727, 728, 729, 730, 731, 732, -1, - -1, 735, 736, -1, -1, 739, -1, 741, 742, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 305, 306, 307, -1, 309, -1, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, - 325, 326, 327, 328, 329, 330, 331, -1, -1, -1, - -1, 336, 337, 338, 339, 340, -1, -1, 343, 344, - 345, 346, -1, -1, -1, 350, 351, 352, 353, 354, - -1, 356, 357, 358, -1, 360, -1, -1, -1, -1, - -1, -1, 367, -1, 369, -1, 371, 372, 373, 374, - 375, 376, 377, 378, 379, -1, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - -1, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, -1, 408, 409, 410, 411, -1, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, -1, - -1, -1, 427, -1, -1, 430, 431, 432, 433, 434, - 435, 436, 437, 438, -1, -1, -1, -1, -1, 444, - 445, 446, 447, 448, 449, 450, 451, -1, 453, 454, - -1, 456, 457, -1, -1, 460, -1, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, -1, 474, - 475, 476, 477, 478, 479, 480, 481, 482, -1, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, -1, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 109, 110, -1, -1, 572, 573, -1, - 575, 576, 577, 578, -1, 580, 581, 582, 583, 584, - 585, -1, -1, -1, -1, 590, 591, 592, 593, 594, - 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, -1, 617, -1, 619, 620, -1, 622, 623, -1, - 625, 626, 627, 628, 629, 630, -1, 632, 633, 634, - 635, 636, 637, 638, -1, 640, 641, 642, -1, 644, - 645, 646, 647, -1, 649, 650, -1, -1, 653, -1, - -1, 656, 657, 658, 200, 660, -1, 662, 663, 664, - 665, -1, 667, 668, 669, -1, 671, 672, -1, 674, - -1, 676, 677, 678, 679, 680, 681, 682, 683, 684, - 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, - 695, -1, 697, 698, 699, 700, 701, 702, 703, 704, - -1, 706, 707, 708, -1, 710, 711, 712, 713, -1, - -1, 716, 717, -1, 719, 720, 721, 722, 723, 724, - 725, 726, 727, 728, 729, 730, 731, 732, -1, -1, - 735, 736, -1, -1, 739, -1, 741, 742, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 305, - 306, 307, -1, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 332, -1, -1, 335, - -1, 337, -1, -1, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, -1, -1, 355, - 356, 357, 358, -1, 360, 361, 362, 363, 364, 365, - -1, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, -1, 392, -1, 394, 395, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, -1, 413, 414, 415, - -1, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, -1, -1, 430, 431, 432, 433, 434, 435, - 436, 437, -1, 439, 440, 441, -1, 443, 444, 445, - 446, 447, 448, -1, -1, 451, 452, 453, 454, 455, - 456, 457, 458, -1, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, -1, 482, 483, 484, 485, - 486, 487, 488, 489, -1, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, -1, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - -1, -1, -1, 539, 540, 541, 542, 543, -1, -1, - 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, -1, -1, -1, 562, 563, 564, 565, - 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 583, -1, -1, - 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, - 596, 597, 598, 599, 600, 601, -1, -1, 604, 605, - 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, - 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 634, -1, - 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, - -1, 647, 648, 649, 650, 651, 652, 653, 654, 655, - 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - -1, 667, 668, 669, 670, 671, 672, 673, 674, 675, - 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, - 686, 687, 688, 689, 690, 691, 692, 693, -1, 695, - 696, -1, 698, 699, -1, 701, 702, 703, 704, 705, - 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, - 716, 717, 718, 719, 720, 721, -1, -1, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, - 736, 737, -1, 739, 740, 741 + -1, 695, 696, -1, 698, 699, -1, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, -1, -1, + 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, + 734, 735, 736, 737, -1, 739, 740, 741 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -22726,280 +22540,280 @@ 878, 879, 1489, 1489, 897, 898, 412, 992, 792, 1694, 92, 346, 432, 434, 524, 601, 764, 1407, 1408, 1409, 1055, 1072, 913, 334, 903, 904, 768, 768, 762, 1243, - 1245, 1243, 1244, 1244, 762, 1240, 1241, 1243, 198, 1240, - 373, 1252, 1253, 17, 323, 341, 714, 1226, 1253, 1261, - 1271, 1273, 32, 289, 1226, 1233, 1235, 1252, 1226, 1240, - 762, 1252, 1226, 1243, 1245, 1226, 1244, 762, 1240, 1252, - 32, 290, 290, 292, 1240, 1243, 762, 909, 1244, 1244, - 1244, 1243, 1244, 193, 769, 34, 1268, 1240, 292, 1245, - 1245, 1243, 1243, 1244, 762, 1241, 1248, 61, 234, 949, - 92, 1883, 92, 1871, 14, 1745, 1697, 1698, 1872, 1883, - 295, 1626, 764, 1749, 769, 1754, 176, 863, 769, 1086, - 1964, 1966, 557, 729, 1087, 1088, 415, 1891, 1980, 1694, - 1693, 1691, 147, 629, 1024, 688, 763, 762, 1986, 1986, - 1986, 1986, 1891, 1981, 188, 200, 260, 446, 1967, 421, - 426, 436, 594, 615, 620, 651, 682, 1971, 111, 263, - 1710, 464, 719, 1489, 1819, 1427, 492, 1828, 1624, 558, - 729, 764, 1943, 963, 964, 294, 1883, 94, 122, 236, - 963, 294, 762, 977, 147, 768, 769, 956, 1489, 764, - 1006, 1005, 1036, 1034, 1039, 1035, 1694, 762, 6, 1552, - 1625, 1552, 1552, 1489, 1565, 76, 294, 412, 1489, 1561, - 1489, 68, 1552, 1625, 763, 57, 89, 104, 145, 173, - 272, 763, 1666, 1670, 1671, 763, 1489, 1489, 1868, 763, - 2026, 53, 54, 55, 56, 106, 107, 108, 157, 158, - 228, 302, 394, 463, 528, 530, 535, 599, 642, 731, - 742, 1620, 1621, 1489, 68, 1544, 1489, 1489, 1489, 1489, - 1489, 1620, 1489, 1875, 1563, 318, 764, 769, 68, 1552, - 1489, 68, 1552, 1489, 1489, 1489, 763, 1489, 1489, 1492, - 763, 1489, 1489, 1489, 763, 634, 1552, 1552, 1489, 68, - 1552, 25, 132, 268, 1489, 1509, 1552, 1552, 1489, 1489, - 68, 1552, 1489, 1561, 1489, 769, 1489, 1489, 1489, 1505, - 1506, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, - 1561, 391, 393, 697, 700, 1622, 1489, 1489, 1561, 1871, - 1561, 1489, 1489, 1489, 1561, 1561, 1561, 92, 1871, 1489, - 1489, 1489, 1561, 92, 1489, 1489, 1489, 763, 1489, 1871, - 1489, 1489, 1621, 1621, 1489, 1509, 1489, 763, 359, 769, - 1869, 1883, 1489, 1489, 1489, 1489, 1489, 1489, 763, 764, - 1854, 1489, 769, 770, 1543, 1888, 1489, 1489, 1489, 1491, - 86, 172, 271, 716, 1495, 6, 322, 1491, 1498, 1492, - 1492, 762, 1492, 1492, 1492, 1492, 1492, 1492, 136, 1492, - 1492, 121, 1492, 121, 1492, 1492, 1492, 1492, 1492, 15, - 124, 136, 212, 1267, 1888, 1513, 762, 1540, 1637, 1883, - 762, 99, 1875, 1521, 444, 478, 553, 634, 1507, 138, - 203, 491, 687, 1109, 1113, 14, 267, 1814, 934, 393, - 697, 700, 933, 1541, 1851, 1868, 764, 267, 764, 1943, - 1031, 1711, 1707, 192, 1580, 1581, 764, 92, 1891, 1890, - 1982, 188, 200, 446, 1967, 769, 769, 1719, 764, 1910, - 1966, 1883, 1268, 1489, 1891, 262, 564, 578, 1939, 1940, - 206, 477, 1933, 1934, 1935, 1936, 453, 492, 647, 1930, - 1719, 1940, 1883, 701, 1920, 1931, 764, 1922, 672, 754, - 1166, 24, 863, 863, 1871, 863, 863, 863, 1871, 1891, - 1871, 1480, 1480, 357, 672, 1779, 863, 1779, 1774, 124, - 1777, 495, 539, 672, 1771, 1771, 145, 173, 225, 272, - 359, 1659, 1660, 1849, 1875, 1779, 1883, 863, 1779, 1890, - 1774, 1779, 1877, 475, 685, 435, 92, 1765, 764, 420, - 672, 1871, 1776, 1774, 1774, 1489, 1779, 1779, 1779, 762, - 766, 1567, 1568, 1569, 1570, 1571, 1582, 1583, 1584, 1585, - 1029, 764, 762, 1861, 895, 412, 770, 124, 764, 192, - 1432, 1434, 1435, 432, 601, 1380, 234, 345, 213, 1489, - 785, 786, 495, 495, 495, 495, 342, 495, 802, 495, - 764, 1480, 1792, 933, 943, 1888, 764, 747, 446, 1876, - 1880, 1892, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, - 437, 547, 1883, 1952, 1953, 1877, 1382, 1694, 267, 1810, - 802, 1806, 1883, 1367, 614, 668, 1374, 1375, 1366, 658, - 1371, 1943, 1847, 581, 2072, 1888, 84, 810, 1964, 1981, - 1888, 1883, 1883, 1883, 1871, 1871, 1166, 863, 1166, 2058, - 2062, 1482, 2046, 850, 1482, 1166, 818, 842, 1166, 2052, - 2055, 2061, 1166, 2061, 727, 74, 1469, 1568, 185, 408, - 1679, 1680, 1685, 26, 92, 142, 1477, 200, 1674, 1684, - 2016, 1477, 1626, 1656, 1466, 1467, 754, 1478, 1479, 1482, - 1476, 1726, 764, 763, 2010, 2014, 1459, 1462, 1467, 1464, - 2011, 1913, 1164, 34, 1261, 403, 160, 205, 247, 368, - 380, 483, 554, 867, 874, 1888, 607, 712, 1073, 1074, - 471, 1069, 1070, 1071, 1078, 1086, 1088, 1329, 762, 1877, - 327, 520, 1063, 1064, 1065, 1078, 1079, 1080, 1086, 1088, - 1056, 1057, 1063, 1943, 465, 217, 764, 1989, 1326, 1325, - 1871, 764, 580, 1393, 763, 764, 1000, 896, 29, 294, - 993, 995, 71, 112, 149, 466, 496, 497, 499, 500, - 501, 502, 503, 505, 506, 507, 508, 509, 510, 511, - 512, 514, 515, 516, 612, 613, 793, 794, 801, 92, - 1410, 718, 1695, 1408, 368, 551, 608, 713, 1066, 1067, - 1068, 1078, 1082, 1083, 1084, 1085, 1086, 1088, 281, 1051, - 762, 916, 1018, 57, 145, 173, 272, 1252, 1252, 173, - 278, 303, 652, 1242, 1242, 1251, 1719, 1271, 1272, 1273, - 1262, 17, 1274, 373, 1254, 1252, 1226, 1242, 1317, 1847, - 1252, 1317, 1242, 292, 1242, 1252, 906, 907, 908, 1884, - 949, 1226, 1226, 1242, 226, 707, 1883, 61, 1267, 1269, - 210, 1239, 1272, 1274, 1226, 1252, 1242, 173, 1242, 1489, - 1489, 915, 104, 753, 923, 924, 1663, 1665, 1580, 687, - 764, 1750, 769, 1754, 1627, 1651, 1652, 1753, 94, 754, - 1883, 1871, 1883, 1087, 764, 1719, 1720, 764, 28, 219, - 1362, 1694, 1694, 896, 762, 971, 974, 1883, 1987, 1988, - 267, 297, 1963, 24, 754, 1871, 1883, 1979, 1979, 1979, - 1979, 985, 1704, 1891, 1428, 1429, 1430, 1431, 1871, 115, - 148, 206, 738, 1947, 1665, 1946, 1489, 963, 122, 1883, - 963, 971, 972, 976, 1883, 877, 1883, 900, 1018, 1025, - 1027, 1030, 1028, 1943, 1489, 763, 1553, 763, 763, 263, - 412, 1489, 1489, 11, 282, 763, 282, 764, 1529, 763, - 754, 763, 764, 764, 763, 763, 94, 763, 1531, 763, - 764, 763, 764, 764, 764, 764, 753, 764, 763, 762, - 1868, 1875, 1552, 763, 763, 1552, 763, 764, 763, 764, - 763, 763, 124, 764, 764, 764, 763, 763, 94, 764, - 1552, 763, 94, 1489, 94, 1489, 94, 1489, 94, 763, - 763, 763, 764, 763, 1552, 763, 763, 763, 763, 1875, - 764, 763, 764, 763, 764, 764, 764, 764, 764, 763, - 763, 764, 764, 764, 763, 764, 763, 763, 764, 763, - 763, 763, 763, 763, 763, 763, 763, 1871, 763, 763, - 763, 764, 763, 1871, 763, 763, 764, 763, 764, 764, - 763, 764, 764, 764, 763, 763, 764, 1875, 1883, 763, - 769, 763, 764, 11, 489, 764, 1285, 764, 763, 1620, - 1620, 1561, 229, 762, 2019, 2020, 2022, 2023, 2024, 2025, - 767, 1875, 1930, 234, 86, 172, 271, 716, 762, 10, - 1489, 2026, 419, 1630, 1492, 1489, 1489, 1492, 762, 1492, - 1492, 1638, 192, 1640, 762, 762, 769, 1482, 1525, 1526, - 1527, 360, 762, 1118, 1119, 1111, 1118, 1112, 576, 1121, - 129, 457, 1489, 1877, 747, 1891, 1891, 1418, 267, 1489, - 233, 286, 721, 762, 1096, 1712, 1715, 1854, 762, 98, - 1966, 94, 764, 24, 1979, 1979, 1979, 1979, 1883, 1883, - 1940, 1931, 92, 92, 1719, 1719, 762, 762, 566, 738, - 489, 764, 764, 769, 769, 769, 61, 446, 733, 1876, - 1877, 1882, 1895, 1899, 1900, 1901, 1902, 1903, 1905, 1906, - 1489, 1719, 1933, 1921, 1923, 1924, 763, 1883, 863, 1877, - 1489, 863, 1779, 1779, 1877, 94, 1778, 424, 1875, 225, - 563, 764, 769, 862, 1779, 600, 1656, 1764, 1777, 1774, - 1871, 1779, 1779, 1602, 1883, 42, 116, 127, 134, 163, - 224, 255, 1578, 1579, 233, 764, 1871, 896, 1859, 1862, - 1883, 1860, 950, 1019, 1888, 61, 1425, 1883, 1423, 1871, - 1104, 1434, 114, 129, 1294, 1436, 1914, 61, 113, 787, - 788, 1489, 1731, 62, 1799, 802, 1797, 1694, 1798, 941, - 944, 945, 940, 559, 560, 636, 942, 96, 131, 437, - 484, 547, 591, 747, 748, 749, 1954, 1956, 1626, 1694, - 432, 601, 720, 1385, 1386, 1387, 1665, 6, 1809, 764, - 717, 1376, 1759, 764, 92, 2073, 1162, 1163, 297, 1962, - 1989, 847, 282, 707, 1307, 176, 176, 805, 806, 863, - 871, 872, 863, 863, 864, 1166, 1166, 1871, 1166, 2052, - 863, 1883, 864, 1166, 262, 1879, 1879, 770, 1681, 1682, - 1683, 1883, 1888, 1653, 279, 124, 1883, 1674, 1684, 1454, - 99, 1631, 1651, 764, 1489, 1866, 1875, 1482, 1728, 1730, - 762, 1723, 1459, 229, 762, 1440, 2020, 1940, 1720, 1720, - 543, 247, 247, 643, 1877, 247, 247, 247, 1877, 1877, - 1720, 764, 1071, 152, 342, 388, 469, 531, 549, 550, - 554, 555, 556, 622, 670, 844, 845, 49, 461, 571, - 578, 586, 659, 719, 848, 849, 1720, 1720, 764, 1065, - 1058, 1059, 1078, 1079, 1080, 1320, 26, 297, 726, 1983, - 248, 350, 479, 552, 679, 739, 1977, 1978, 1985, 297, - 1992, 176, 858, 1330, 762, 2038, 1324, 1392, 92, 1489, - 263, 996, 995, 747, 747, 747, 747, 747, 747, 747, + 1245, 1243, 1244, 373, 1243, 1252, 1253, 762, 1240, 1241, + 1243, 198, 1240, 1252, 17, 323, 341, 714, 1226, 1253, + 1261, 1271, 1273, 32, 289, 1226, 1233, 1235, 1252, 1226, + 1240, 762, 1252, 1226, 1243, 1245, 1226, 1244, 762, 1240, + 1252, 32, 290, 290, 292, 1240, 1243, 762, 909, 1244, + 1244, 1244, 1243, 1244, 193, 769, 34, 1268, 1240, 292, + 1245, 1245, 1243, 1243, 1244, 762, 1241, 1248, 61, 234, + 949, 92, 1883, 92, 1871, 14, 1745, 1697, 1698, 1872, + 1883, 295, 1626, 764, 1749, 769, 1754, 176, 863, 769, + 1086, 1964, 1966, 557, 729, 1087, 1088, 415, 1891, 1980, + 1694, 1693, 1691, 147, 629, 1024, 688, 763, 762, 1986, + 1986, 1986, 1986, 1891, 1981, 188, 200, 260, 446, 1967, + 421, 426, 436, 594, 615, 620, 651, 682, 1971, 111, + 263, 1710, 464, 719, 1489, 1819, 1427, 492, 1828, 1624, + 558, 729, 764, 1943, 963, 964, 294, 1883, 94, 122, + 236, 963, 294, 762, 977, 147, 768, 769, 956, 1489, + 764, 1006, 1005, 1036, 1034, 1039, 1035, 1694, 762, 6, + 1552, 1625, 1552, 1552, 1489, 1565, 76, 294, 412, 1489, + 1561, 1489, 68, 1552, 1625, 763, 57, 89, 104, 145, + 173, 272, 763, 1666, 1670, 1671, 763, 1489, 1489, 1868, + 763, 2026, 53, 54, 55, 56, 106, 107, 108, 157, + 158, 228, 302, 394, 463, 528, 530, 535, 599, 642, + 731, 742, 1620, 1621, 1489, 68, 1544, 1489, 1489, 1489, + 1489, 1489, 1620, 1489, 1875, 1563, 318, 764, 769, 68, + 1552, 1489, 68, 1552, 1489, 1489, 1489, 763, 1489, 1489, + 1492, 763, 1489, 1489, 1489, 763, 634, 1552, 1552, 1489, + 68, 1552, 25, 132, 268, 1489, 1509, 1552, 1552, 1489, + 1489, 68, 1552, 1489, 1561, 1489, 769, 1489, 1489, 1489, + 1505, 1506, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, + 1489, 1561, 391, 393, 697, 700, 1622, 1489, 1489, 1561, + 1871, 1561, 1489, 1489, 1489, 1561, 1561, 1561, 92, 1871, + 1489, 1489, 1489, 1561, 92, 1489, 1489, 1489, 763, 1489, + 1871, 1489, 1489, 1621, 1621, 1489, 1509, 1489, 763, 359, + 769, 1869, 1883, 1489, 1489, 1489, 1489, 1489, 1489, 763, + 764, 1854, 1489, 769, 770, 1543, 1888, 1489, 1489, 1489, + 1491, 86, 172, 271, 716, 1495, 6, 322, 1491, 1498, + 1492, 1492, 762, 1492, 1492, 1492, 1492, 1492, 1492, 136, + 1492, 1492, 121, 1492, 121, 1492, 1492, 1492, 1492, 1492, + 15, 124, 136, 212, 1267, 1888, 1513, 762, 1540, 1637, + 1883, 762, 99, 1875, 1521, 444, 478, 553, 634, 1507, + 138, 203, 491, 687, 1109, 1113, 14, 267, 1814, 934, + 393, 697, 700, 933, 1541, 1851, 1868, 764, 267, 764, + 1943, 1031, 1711, 1707, 192, 1580, 1581, 764, 92, 1891, + 1890, 1982, 188, 200, 446, 1967, 769, 769, 1719, 764, + 1910, 1966, 1883, 1268, 1489, 1891, 262, 564, 578, 1939, + 1940, 206, 477, 1933, 1934, 1935, 1936, 453, 492, 647, + 1930, 1719, 1940, 1883, 701, 1920, 1931, 764, 1922, 672, + 754, 1166, 24, 863, 863, 1871, 863, 863, 863, 1871, + 1891, 1871, 1480, 1480, 357, 672, 1779, 863, 1779, 1774, + 124, 1777, 495, 539, 672, 1771, 1771, 145, 173, 225, + 272, 359, 1659, 1660, 1849, 1875, 1779, 1883, 863, 1779, + 1890, 1774, 1779, 1877, 475, 685, 435, 92, 1765, 764, + 420, 672, 1871, 1776, 1774, 1774, 1489, 1779, 1779, 1779, + 762, 766, 1567, 1568, 1569, 1570, 1571, 1582, 1583, 1584, + 1585, 1029, 764, 762, 1861, 895, 412, 770, 124, 764, + 192, 1432, 1434, 1435, 432, 601, 1380, 234, 345, 213, + 1489, 785, 786, 495, 495, 495, 495, 342, 495, 802, + 495, 764, 1480, 1792, 933, 943, 1888, 764, 747, 446, + 1876, 1880, 1892, 1899, 1900, 1901, 1902, 1903, 1904, 1905, + 1906, 437, 547, 1883, 1952, 1953, 1877, 1382, 1694, 267, + 1810, 802, 1806, 1883, 1367, 614, 668, 1374, 1375, 1366, + 658, 1371, 1943, 1847, 581, 2072, 1888, 84, 810, 1964, + 1981, 1888, 1883, 1883, 1883, 1871, 1871, 1166, 863, 1166, + 2058, 2062, 1482, 2046, 850, 1482, 1166, 818, 842, 1166, + 2052, 2055, 2061, 1166, 2061, 727, 74, 1469, 1568, 185, + 408, 1679, 1680, 1685, 26, 92, 142, 1477, 200, 1674, + 1684, 2016, 1477, 1626, 1656, 1466, 1467, 754, 1478, 1479, + 1482, 1476, 1726, 764, 763, 2010, 2014, 1459, 1462, 1467, + 1464, 2011, 1913, 1164, 34, 1261, 403, 160, 205, 247, + 368, 380, 483, 554, 867, 874, 1888, 607, 712, 1073, + 1074, 471, 1069, 1070, 1071, 1078, 1086, 1088, 1329, 762, + 1877, 327, 520, 1063, 1064, 1065, 1078, 1079, 1080, 1086, + 1088, 1056, 1057, 1063, 1943, 465, 217, 764, 1989, 1326, + 1325, 1871, 764, 580, 1393, 763, 764, 1000, 896, 29, + 294, 993, 995, 71, 112, 149, 466, 496, 497, 499, + 500, 501, 502, 503, 505, 506, 507, 508, 509, 510, + 511, 512, 514, 515, 516, 612, 613, 793, 794, 801, + 92, 1410, 718, 1695, 1408, 368, 551, 608, 713, 1066, + 1067, 1068, 1078, 1082, 1083, 1084, 1085, 1086, 1088, 281, + 1051, 762, 916, 1018, 57, 145, 173, 272, 1252, 1251, + 1719, 1252, 173, 278, 303, 652, 1242, 1242, 1271, 1272, + 1273, 1262, 17, 1274, 373, 1254, 1252, 1226, 1242, 1317, + 1847, 1252, 1317, 1242, 292, 1242, 1252, 906, 907, 908, + 1884, 949, 1226, 1226, 1242, 226, 707, 1883, 61, 1267, + 1269, 210, 1239, 1272, 1274, 1226, 1252, 1242, 173, 1242, + 1489, 1489, 915, 104, 753, 923, 924, 1663, 1665, 1580, + 687, 764, 1750, 769, 1754, 1627, 1651, 1652, 1753, 94, + 754, 1883, 1871, 1883, 1087, 764, 1719, 1720, 764, 28, + 219, 1362, 1694, 1694, 896, 762, 971, 974, 1883, 1987, + 1988, 267, 297, 1963, 24, 754, 1871, 1883, 1979, 1979, + 1979, 1979, 985, 1704, 1891, 1428, 1429, 1430, 1431, 1871, + 115, 148, 206, 738, 1947, 1665, 1946, 1489, 963, 122, + 1883, 963, 971, 972, 976, 1883, 877, 1883, 900, 1018, + 1025, 1027, 1030, 1028, 1943, 1489, 763, 1553, 763, 763, + 263, 412, 1489, 1489, 11, 282, 763, 282, 764, 1529, + 763, 754, 763, 764, 764, 763, 763, 94, 763, 1531, + 763, 764, 763, 764, 764, 764, 764, 753, 764, 763, + 762, 1868, 1875, 1552, 763, 763, 1552, 763, 764, 763, + 764, 763, 763, 124, 764, 764, 764, 763, 763, 94, + 764, 1552, 763, 94, 1489, 94, 1489, 94, 1489, 94, + 763, 763, 763, 764, 763, 1552, 763, 763, 763, 763, + 1875, 764, 763, 764, 763, 764, 764, 764, 764, 764, + 763, 763, 764, 764, 764, 763, 764, 763, 763, 764, + 763, 763, 763, 763, 763, 763, 763, 763, 1871, 763, + 763, 763, 764, 763, 1871, 763, 763, 764, 763, 764, + 764, 763, 764, 764, 764, 763, 763, 764, 1875, 1883, + 763, 769, 763, 764, 11, 489, 764, 1285, 764, 763, + 1620, 1620, 1561, 229, 762, 2019, 2020, 2022, 2023, 2024, + 2025, 767, 1875, 1930, 234, 86, 172, 271, 716, 762, + 10, 1489, 2026, 419, 1630, 1492, 1489, 1489, 1492, 762, + 1492, 1492, 1638, 192, 1640, 762, 762, 769, 1482, 1525, + 1526, 1527, 360, 762, 1118, 1119, 1111, 1118, 1112, 576, + 1121, 129, 457, 1489, 1877, 747, 1891, 1891, 1418, 267, + 1489, 233, 286, 721, 762, 1096, 1712, 1715, 1854, 762, + 98, 1966, 94, 764, 24, 1979, 1979, 1979, 1979, 1883, + 1883, 1940, 1931, 92, 92, 1719, 1719, 762, 762, 566, + 738, 489, 764, 764, 769, 769, 769, 61, 446, 733, + 1876, 1877, 1882, 1895, 1899, 1900, 1901, 1902, 1903, 1905, + 1906, 1489, 1719, 1933, 1921, 1923, 1924, 763, 1883, 863, + 1877, 1489, 863, 1779, 1779, 1877, 94, 1778, 424, 1875, + 225, 563, 764, 769, 862, 1779, 600, 1656, 1764, 1777, + 1774, 1871, 1779, 1779, 1602, 1883, 42, 116, 127, 134, + 163, 224, 255, 1578, 1579, 233, 764, 1871, 896, 1859, + 1862, 1883, 1860, 950, 1019, 1888, 61, 1425, 1883, 1423, + 1871, 1104, 1434, 114, 129, 1294, 1436, 1914, 61, 113, + 787, 788, 1489, 1731, 62, 1799, 802, 1797, 1694, 1798, + 941, 944, 945, 940, 559, 560, 636, 942, 96, 131, + 437, 484, 547, 591, 747, 748, 749, 1954, 1956, 1626, + 1694, 432, 601, 720, 1385, 1386, 1387, 1665, 6, 1809, + 764, 717, 1376, 1759, 764, 92, 2073, 1162, 1163, 297, + 1962, 1989, 847, 282, 707, 1307, 176, 176, 805, 806, + 863, 871, 872, 863, 863, 864, 1166, 1166, 1871, 1166, + 2052, 863, 1883, 864, 1166, 262, 1879, 1879, 770, 1681, + 1682, 1683, 1883, 1888, 1653, 279, 124, 1883, 1674, 1684, + 1454, 99, 1631, 1651, 764, 1489, 1866, 1875, 1482, 1728, + 1730, 762, 1723, 1459, 229, 762, 1440, 2020, 1940, 1720, + 1720, 543, 247, 247, 643, 1877, 247, 247, 247, 1877, + 1877, 1720, 764, 1071, 152, 342, 388, 469, 531, 549, + 550, 554, 555, 556, 622, 670, 844, 845, 49, 461, + 571, 578, 586, 659, 719, 848, 849, 1720, 1720, 764, + 1065, 1058, 1059, 1078, 1079, 1080, 1320, 26, 297, 726, + 1983, 248, 350, 479, 552, 679, 739, 1977, 1978, 1985, + 297, 1992, 176, 858, 1330, 762, 2038, 1324, 1392, 92, + 1489, 263, 996, 995, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, - 747, 747, 747, 747, 747, 747, 747, 764, 718, 1720, - 1720, 1720, 1720, 764, 1068, 494, 433, 1060, 1061, 1062, - 1078, 1079, 1080, 1081, 1084, 1085, 1086, 1088, 881, 882, - 883, 1883, 125, 412, 763, 763, 763, 763, 764, 303, - 278, 1883, 1251, 763, 764, 763, 1259, 763, 764, 949, - 949, 769, 747, 1274, 183, 242, 244, 921, 922, 923, - 926, 1495, 1883, 57, 89, 145, 173, 272, 697, 701, - 1471, 1472, 1515, 1698, 1883, 282, 1883, 1489, 137, 1662, - 1568, 769, 1754, 1943, 1966, 1177, 1888, 1891, 1943, 412, - 917, 918, 975, 72, 763, 764, 1981, 315, 1979, 769, - 769, 267, 267, 267, 267, 897, 1712, 764, 1432, 1434, - 1879, 738, 492, 374, 122, 973, 763, 764, 957, 1007, - 412, 1037, 1002, 1032, 1885, 1032, 1032, 764, 1489, 1489, - 263, 17, 32, 58, 70, 90, 123, 278, 290, 391, - 393, 545, 652, 700, 723, 1554, 1558, 1559, 1262, 1262, - 1554, 1561, 763, 121, 121, 1489, 1561, 1489, 1489, 1489, - 1489, 1489, 1489, 1489, 1492, 763, 763, 1489, 1489, 1489, - 1489, 1489, 1489, 1489, 1489, 763, 1489, 94, 1489, 94, - 1489, 94, 1489, 121, 1489, 763, 1506, 1489, 1505, 1561, - 1489, 1489, 1489, 1489, 1489, 1566, 1489, 1489, 1489, 1489, - 1561, 145, 752, 1663, 1667, 121, 1489, 1489, 1489, 1489, - 1489, 769, 769, 1883, 1489, 17, 32, 1280, 1281, 1282, - 1283, 1284, 1666, 1665, 763, 1489, 753, 753, 1591, 1592, - 1593, 762, 1450, 1451, 1452, 1477, 2016, 1590, 2008, 2017, - 2028, 1882, 1489, 2026, 1491, 763, 764, 763, 1513, 1620, - 1620, 10, 1489, 2026, 1630, 1639, 1883, 26, 763, 1537, - 1560, 1561, 1875, 1489, 763, 764, 762, 1482, 1119, 121, - 137, 1153, 1666, 681, 1122, 320, 1114, 1110, 933, 267, - 1871, 412, 1713, 1716, 1716, 763, 1155, 1714, 1854, 1864, - 1865, 1869, 1883, 229, 1619, 1883, 570, 1980, 1890, 1979, - 94, 94, 94, 94, 1719, 1719, 775, 1891, 1940, 262, - 262, 206, 619, 645, 1937, 1935, 1934, 769, 769, 1719, - 1940, 1922, 764, 1926, 1928, 1932, 418, 730, 1663, 1668, - 1769, 1660, 1661, 424, 1660, 1660, 1875, 173, 1778, 1626, - 1774, 229, 286, 1586, 1594, 1595, 1596, 1597, 1602, 1603, - 2027, 1567, 127, 127, 184, 1605, 134, 224, 1578, 1605, - 1567, 1738, 1739, 1869, 1569, 1580, 412, 763, 764, 11, - 768, 308, 1020, 1433, 762, 1940, 764, 747, 92, 297, - 1793, 1794, 747, 764, 1955, 1656, 94, 1388, 1386, 1375, - 498, 801, 1377, 73, 628, 1760, 1665, 529, 315, 1992, - 91, 340, 457, 638, 1313, 1313, 176, 1871, 1871, 114, - 136, 189, 250, 251, 252, 275, 300, 328, 330, 349, - 368, 375, 390, 400, 415, 472, 482, 519, 532, 572, - 578, 637, 644, 674, 689, 690, 702, 762, 1090, 1094, - 1168, 1170, 1171, 1174, 1175, 1176, 1876, 843, 844, 871, - 11, 125, 2064, 368, 868, 869, 870, 874, 2059, 2047, - 863, 811, 1883, 2056, 627, 1871, 1686, 1888, 764, 769, - 1489, 1654, 1867, 1943, 650, 1675, 2009, 2010, 26, 103, - 1628, 1656, 1479, 1483, 1483, 769, 1731, 763, 764, 1724, - 1477, 1464, 762, 1445, 1446, 2010, 2014, 1269, 1263, 390, - 390, 398, 474, 104, 145, 173, 272, 1089, 1669, 1670, - 1876, 1071, 1720, 1720, 26, 1720, 1722, 1720, 152, 531, - 297, 1720, 1721, 1721, 845, 1877, 1877, 1877, 1877, 1665, - 1877, 1877, 763, 764, 1089, 1089, 1065, 764, 1059, 5, - 7, 8, 31, 33, 39, 73, 142, 177, 181, 192, - 214, 320, 356, 404, 405, 411, 423, 442, 468, 534, - 605, 616, 617, 618, 705, 1102, 1169, 1171, 1334, 1338, - 1340, 1343, 1349, 1350, 1351, 1353, 1354, 1648, 262, 578, - 1888, 262, 262, 262, 10, 1976, 517, 518, 521, 522, - 523, 1990, 1991, 372, 640, 214, 1331, 1883, 2039, 11, - 2038, 6, 360, 1394, 897, 1489, 762, 762, 1665, 762, - 1665, 1665, 1877, 1877, 1668, 1877, 1665, 1877, 1877, 1877, - 1877, 1877, 1877, 1877, 1665, 1877, 386, 554, 656, 1852, - 1877, 1665, 794, 1877, 1666, 1089, 1089, 1068, 99, 1720, - 764, 1062, 763, 764, 17, 289, 603, 635, 723, 947, - 1224, 1225, 1228, 1229, 1230, 1231, 1233, 1234, 1235, 1236, - 1260, 918, 173, 1272, 1847, 1272, 907, 1883, 173, 764, - 950, 444, 262, 1492, 769, 1568, 1754, 225, 1660, 220, - 1751, 1626, 1362, 147, 919, 763, 1489, 974, 1988, 297, - 1994, 570, 267, 754, 754, 1981, 1981, 1981, 1981, 986, - 176, 1732, 1430, 1871, 1434, 113, 1437, 1824, 1489, 972, - 877, 334, 1002, 147, 1489, 1489, 1244, 1244, 1240, 1248, - 123, 1243, 1244, 1244, 123, 1244, 1243, 763, 763, 763, - 763, 1530, 1489, 1489, 763, 181, 1546, 763, 763, 764, - 764, 763, 764, 763, 124, 1522, 1523, 763, 763, 763, - 763, 764, 763, 92, 763, 763, 764, 1489, 1489, 1489, - 1489, 763, 763, 11, 1499, 763, 11, 763, 763, 764, - 763, 764, 763, 764, 763, 764, 763, 763, 763, 763, - 145, 173, 173, 763, 764, 1489, 763, 763, 764, 764, - 763, 1875, 1883, 769, 763, 762, 1275, 1275, 12, 65, - 629, 752, 1277, 1278, 1279, 764, 764, 763, 1489, 1489, - 1467, 2029, 2030, 2031, 1450, 763, 2020, 229, 1477, 2018, - 1588, 2023, 2024, 769, 763, 1561, 1491, 763, 764, 763, - 1640, 1632, 1867, 181, 1539, 763, 1483, 1527, 1115, 1116, - 1117, 1883, 1127, 1492, 1489, 1668, 26, 762, 1129, 747, - 762, 1119, 1891, 215, 1717, 1718, 1869, 762, 1715, 763, - 763, 764, 229, 769, 1156, 1157, 763, 764, 94, 94, - 1982, 1982, 1982, 1982, 1940, 1940, 763, 763, 369, 710, - 206, 1883, 1883, 1940, 1925, 1927, 57, 89, 145, 173, - 272, 1656, 1661, 1770, 1779, 1604, 1598, 763, 2014, 2017, - 1477, 2016, 1570, 1855, 767, 127, 1605, 1605, 1582, 127, - 176, 282, 764, 1737, 1719, 93, 1473, 147, 1883, 762, - 294, 1021, 1022, 762, 199, 1616, 1617, 1618, 1883, 788, - 762, 1795, 206, 344, 351, 367, 377, 378, 379, 387, - 527, 541, 626, 641, 677, 691, 946, 945, 762, 540, - 747, 764, 674, 674, 1890, 390, 1871, 808, 809, 403, - 1871, 1720, 1720, 1720, 1720, 1720, 725, 1720, 1720, 1720, - 1720, 1720, 403, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 406, 525, 1883, 1720, 1720, 36, 136, - 579, 769, 1155, 1182, 1183, 1184, 1185, 1186, 1194, 1195, - 1199, 1200, 1201, 1294, 1298, 1299, 1870, 1883, 1100, 1101, - 1102, 764, 1170, 1719, 1168, 2064, 1482, 1877, 868, 762, - 890, 892, 894, 863, 851, 2038, 762, 888, 892, 893, - 58, 123, 208, 676, 1181, 812, 1261, 1264, 1682, 1883, - 764, 12, 65, 1655, 533, 762, 1632, 1629, 733, 1634, - 11, 1485, 1877, 1883, 754, 1875, 1483, 1482, 1727, 1729, - 1731, 1455, 1463, 1466, 1467, 1445, 763, 229, 1444, 2020, - 1667, 1667, 1667, 1667, 1667, 1667, 849, 1059, 36, 192, - 366, 579, 686, 1186, 1194, 1195, 1355, 1355, 192, 1355, - 192, 267, 36, 91, 192, 579, 686, 1198, 1294, 1355, - 1720, 192, 26, 1104, 11, 267, 747, 1364, 1720, 192, - 128, 689, 128, 192, 689, 1355, 192, 577, 192, 192, - 192, 1169, 764, 1101, 1338, 762, 1185, 262, 11, 282, - 1984, 1977, 1665, 1665, 1665, 1852, 752, 1663, 1664, 1990, - 1495, 2000, 324, 422, 852, 267, 404, 411, 854, 763, - 764, 2040, 2041, 11, 6, 762, 1395, 997, 797, 798, - 1665, 799, 800, 1665, 795, 796, 1665, 1883, 1089, 1062, - 883, 1243, 1247, 1243, 1246, 1246, 909, 1246, 193, 769, - 1268, 1247, 1247, 1246, 1246, 763, 922, 1883, 1626, 424, - 225, 1478, 1438, 98, 1981, 1989, 1989, 1989, 1989, 76, - 78, 987, 409, 1437, 487, 113, 216, 1830, 1018, 896, - 1555, 1556, 1557, 763, 1620, 1620, 26, 231, 1545, 1489, - 1489, 1561, 163, 339, 763, 297, 1524, 1489, 1489, 1489, - 1620, 58, 70, 90, 123, 208, 278, 391, 393, 544, - 545, 700, 1233, 1234, 1500, 1501, 1502, 1503, 1554, 1489, - 1489, 1489, 1489, 86, 271, 1665, 1673, 1620, 1489, 1489, - 1883, 1666, 763, 1285, 1280, 1278, 1280, 1281, 1665, 1478, - 2031, 763, 2014, 1592, 1589, 1883, 763, 1561, 181, 1641, - 764, 1655, 26, 763, 1485, 763, 764, 1483, 1620, 1113, + 747, 747, 747, 747, 747, 747, 747, 747, 764, 718, + 1720, 1720, 1720, 1720, 764, 1068, 494, 433, 1060, 1061, + 1062, 1078, 1079, 1080, 1081, 1084, 1085, 1086, 1088, 881, + 882, 883, 1883, 125, 412, 763, 763, 763, 763, 1883, + 764, 303, 278, 1251, 763, 764, 763, 1259, 763, 764, + 949, 949, 769, 747, 1274, 183, 242, 244, 921, 922, + 923, 926, 1495, 1883, 57, 89, 145, 173, 272, 697, + 701, 1471, 1472, 1515, 1698, 1883, 282, 1883, 1489, 137, + 1662, 1568, 769, 1754, 1943, 1966, 1177, 1888, 1891, 1943, + 412, 917, 918, 975, 72, 763, 764, 1981, 315, 1979, + 769, 769, 267, 267, 267, 267, 897, 1712, 764, 1432, + 1434, 1879, 738, 492, 374, 122, 973, 763, 764, 957, + 1007, 412, 1037, 1002, 1032, 1885, 1032, 1032, 764, 1489, + 1489, 263, 17, 32, 58, 70, 90, 123, 278, 290, + 391, 393, 545, 652, 700, 723, 1554, 1558, 1559, 1262, + 1262, 1554, 1561, 763, 121, 121, 1489, 1561, 1489, 1489, + 1489, 1489, 1489, 1489, 1489, 1492, 763, 763, 1489, 1489, + 1489, 1489, 1489, 1489, 1489, 1489, 763, 1489, 94, 1489, + 94, 1489, 94, 1489, 121, 1489, 763, 1506, 1489, 1505, + 1561, 1489, 1489, 1489, 1489, 1489, 1566, 1489, 1489, 1489, + 1489, 1561, 145, 752, 1663, 1667, 121, 1489, 1489, 1489, + 1489, 1489, 769, 769, 1883, 1489, 17, 32, 1280, 1281, + 1282, 1283, 1284, 1666, 1665, 763, 1489, 753, 753, 1591, + 1592, 1593, 762, 1450, 1451, 1452, 1477, 2016, 1590, 2008, + 2017, 2028, 1882, 1489, 2026, 1491, 763, 764, 763, 1513, + 1620, 1620, 10, 1489, 2026, 1630, 1639, 1883, 26, 763, + 1537, 1560, 1561, 1875, 1489, 763, 764, 762, 1127, 1492, + 1119, 121, 137, 1153, 1666, 681, 1122, 320, 1114, 1110, + 933, 267, 1871, 412, 1713, 1716, 1716, 763, 1155, 1714, + 1854, 1864, 1865, 1869, 1883, 229, 1619, 1883, 570, 1980, + 1890, 1979, 94, 94, 94, 94, 1719, 1719, 775, 1891, + 1940, 262, 262, 206, 619, 645, 1937, 1935, 1934, 769, + 769, 1719, 1940, 1922, 764, 1926, 1928, 1932, 418, 730, + 1663, 1668, 1769, 1660, 1661, 424, 1660, 1660, 1875, 173, + 1778, 1626, 1774, 229, 286, 1586, 1594, 1595, 1596, 1597, + 1602, 1603, 2027, 1567, 127, 127, 184, 1605, 134, 224, + 1578, 1605, 1567, 1738, 1739, 1869, 1569, 1580, 412, 763, + 764, 11, 768, 308, 1020, 1433, 762, 1940, 764, 747, + 92, 297, 1793, 1794, 747, 764, 1955, 1656, 94, 1388, + 1386, 1375, 498, 801, 1377, 73, 628, 1760, 1665, 529, + 315, 1992, 91, 340, 457, 638, 1313, 1313, 176, 1871, + 1871, 114, 136, 189, 250, 251, 252, 275, 300, 328, + 330, 349, 368, 375, 390, 400, 415, 472, 482, 519, + 532, 572, 578, 637, 644, 674, 689, 690, 702, 762, + 1090, 1094, 1168, 1170, 1171, 1174, 1175, 1176, 1876, 843, + 844, 871, 11, 125, 2064, 368, 868, 869, 870, 874, + 2059, 2047, 863, 811, 1883, 2056, 627, 1871, 1686, 1888, + 764, 769, 1489, 1654, 1867, 1943, 650, 1675, 2009, 2010, + 26, 103, 1628, 1656, 1479, 1483, 1483, 769, 1731, 763, + 764, 1724, 1477, 1464, 762, 1445, 1446, 2010, 2014, 1269, + 1263, 390, 390, 398, 474, 104, 145, 173, 272, 1089, + 1669, 1670, 1876, 1071, 1720, 1720, 26, 1720, 1722, 1720, + 152, 531, 297, 1720, 1721, 1721, 845, 1877, 1877, 1877, + 1877, 1665, 1877, 1877, 763, 764, 1089, 1089, 1065, 764, + 1059, 5, 7, 8, 31, 33, 39, 73, 142, 177, + 181, 192, 214, 320, 356, 404, 405, 411, 423, 442, + 468, 534, 605, 616, 617, 618, 705, 1102, 1169, 1171, + 1334, 1338, 1340, 1343, 1349, 1350, 1351, 1353, 1354, 1648, + 262, 578, 1888, 262, 262, 262, 10, 1976, 517, 518, + 521, 522, 523, 1990, 1991, 372, 640, 214, 1331, 1883, + 2039, 11, 2038, 6, 360, 1394, 897, 1489, 762, 762, + 1665, 762, 1665, 1665, 1877, 1877, 1668, 1877, 1665, 1877, + 1877, 1877, 1877, 1877, 1877, 1877, 1665, 1877, 386, 554, + 656, 1852, 1877, 1665, 794, 1877, 1666, 1089, 1089, 1068, + 99, 1720, 764, 1062, 763, 764, 17, 289, 603, 635, + 723, 947, 1224, 1225, 1228, 1229, 1230, 1231, 1233, 1234, + 1235, 1236, 1260, 918, 173, 1272, 1847, 1272, 907, 1883, + 173, 764, 950, 444, 262, 1492, 769, 1568, 1754, 225, + 1660, 220, 1751, 1626, 1362, 147, 919, 763, 1489, 974, + 1988, 297, 1994, 570, 267, 754, 754, 1981, 1981, 1981, + 1981, 986, 176, 1732, 1430, 1871, 1434, 113, 1437, 1824, + 1489, 972, 877, 334, 1002, 147, 1489, 1489, 1244, 1244, + 1240, 1248, 123, 1243, 1244, 1244, 123, 1244, 1243, 763, + 763, 763, 763, 1530, 1489, 1489, 763, 181, 1546, 763, + 763, 764, 764, 763, 764, 763, 124, 1522, 1523, 763, + 763, 763, 763, 764, 763, 92, 763, 763, 764, 1489, + 1489, 1489, 1489, 763, 763, 11, 1499, 763, 11, 763, + 763, 764, 763, 764, 763, 764, 763, 764, 763, 763, + 763, 763, 145, 173, 173, 763, 764, 1489, 763, 763, + 764, 764, 763, 1875, 1883, 769, 763, 762, 1275, 1275, + 12, 65, 629, 752, 1277, 1278, 1279, 764, 764, 763, + 1489, 1489, 1467, 2029, 2030, 2031, 1450, 763, 2020, 229, + 1477, 2018, 1588, 2023, 2024, 769, 763, 1561, 1491, 763, + 764, 763, 1640, 1632, 1867, 181, 1539, 763, 1483, 1527, + 1115, 1116, 1117, 1883, 763, 1489, 1668, 26, 762, 1129, + 747, 762, 1119, 1891, 215, 1717, 1718, 1869, 762, 1715, + 763, 763, 764, 229, 769, 1156, 1157, 763, 764, 94, + 94, 1982, 1982, 1982, 1982, 1940, 1940, 763, 763, 369, + 710, 206, 1883, 1883, 1940, 1925, 1927, 57, 89, 145, + 173, 272, 1656, 1661, 1770, 1779, 1604, 1598, 763, 2014, + 2017, 1477, 2016, 1570, 1855, 767, 127, 1605, 1605, 1582, + 127, 176, 282, 764, 1737, 1719, 93, 1473, 147, 1883, + 762, 294, 1021, 1022, 762, 199, 1616, 1617, 1618, 1883, + 788, 762, 1795, 206, 344, 351, 367, 377, 378, 379, + 387, 527, 541, 626, 641, 677, 691, 946, 945, 762, + 540, 747, 764, 674, 674, 1890, 390, 1871, 808, 809, + 403, 1871, 1720, 1720, 1720, 1720, 1720, 725, 1720, 1720, + 1720, 1720, 1720, 403, 1720, 1720, 1720, 1720, 1720, 1720, + 1720, 1720, 1720, 1720, 406, 525, 1883, 1720, 1720, 36, + 136, 579, 769, 1155, 1182, 1183, 1184, 1185, 1186, 1194, + 1195, 1199, 1200, 1201, 1294, 1298, 1299, 1870, 1883, 1100, + 1101, 1102, 764, 1170, 1719, 1168, 2064, 1482, 1877, 868, + 762, 890, 892, 894, 863, 851, 2038, 762, 888, 892, + 893, 58, 123, 208, 676, 1181, 812, 1261, 1264, 1682, + 1883, 764, 12, 65, 1655, 533, 762, 1632, 1629, 733, + 1634, 11, 1485, 1877, 1883, 754, 1875, 1483, 1482, 1727, + 1729, 1731, 1455, 1463, 1466, 1467, 1445, 763, 229, 1444, + 2020, 1667, 1667, 1667, 1667, 1667, 1667, 849, 1059, 36, + 192, 366, 579, 686, 1186, 1194, 1195, 1355, 1355, 192, + 1355, 192, 267, 36, 91, 192, 579, 686, 1198, 1294, + 1355, 1720, 192, 26, 1104, 11, 267, 747, 1364, 1720, + 192, 128, 689, 128, 192, 689, 1355, 192, 577, 192, + 192, 192, 1169, 764, 1101, 1338, 762, 1185, 262, 11, + 282, 1984, 1977, 1665, 1665, 1665, 1852, 752, 1663, 1664, + 1990, 1495, 2000, 324, 422, 852, 267, 404, 411, 854, + 763, 764, 2040, 2041, 11, 6, 762, 1395, 997, 797, + 798, 1665, 799, 800, 1665, 795, 796, 1665, 1883, 1089, + 1062, 883, 1243, 1247, 1243, 1246, 1246, 909, 1246, 193, + 769, 1268, 1247, 1247, 1246, 1246, 763, 922, 1883, 1626, + 424, 225, 1478, 1438, 98, 1981, 1989, 1989, 1989, 1989, + 76, 78, 987, 409, 1437, 487, 113, 216, 1830, 1018, + 896, 1555, 1556, 1557, 763, 1620, 1620, 26, 231, 1545, + 1489, 1489, 1561, 163, 339, 763, 297, 1524, 1489, 1489, + 1489, 1620, 58, 70, 90, 123, 208, 278, 391, 393, + 544, 545, 700, 1233, 1234, 1500, 1501, 1502, 1503, 1554, + 1489, 1489, 1489, 1489, 86, 271, 1665, 1673, 1620, 1489, + 1489, 1883, 1666, 763, 1285, 1280, 1278, 1280, 1281, 1665, + 1478, 2031, 763, 2014, 1592, 1589, 1883, 763, 1561, 181, + 1641, 764, 1655, 26, 763, 1485, 763, 764, 1620, 1113, 192, 1130, 1131, 1666, 1115, 764, 1719, 1098, 1099, 1715, 1864, 1156, 754, 1883, 1159, 1466, 1467, 2016, 1470, 1104, 1883, 1982, 1982, 1719, 1719, 1926, 1931, 1656, 1599, 1600, @@ -23032,104 +22846,103 @@ 763, 483, 533, 600, 763, 763, 763, 763, 1240, 123, 1244, 32, 1244, 1504, 763, 763, 763, 763, 764, 763, 763, 763, 1276, 763, 764, 1467, 1590, 763, 26, 203, - 225, 1642, 1643, 1867, 1867, 1117, 763, 669, 1154, 129, - 457, 1132, 763, 764, 763, 1718, 1731, 2010, 2014, 1158, - 1159, 1467, 769, 1160, 1477, 2016, 1160, 1478, 1940, 1940, - 1470, 1624, 1588, 2028, 176, 1575, 1582, 1582, 176, 1577, - 1489, 762, 1651, 562, 1472, 1472, 1614, 1615, 2026, 921, - 763, 764, 1617, 763, 764, 10, 1802, 763, 1888, 762, - 1314, 1315, 1883, 1314, 1877, 762, 1877, 763, 762, 1092, - 1093, 1091, 1184, 762, 129, 129, 1295, 1166, 1871, 1316, - 1883, 1166, 1166, 646, 1203, 1223, 1883, 11, 1161, 821, - 200, 446, 839, 840, 841, 882, 884, 885, 886, 867, - 873, 2000, 2060, 63, 119, 279, 1047, 640, 2040, 880, - 881, 2054, 866, 1877, 11, 360, 1831, 1655, 1489, 763, - 764, 11, 764, 754, 1483, 1731, 1456, 1460, 1495, 1413, - 1495, 1870, 1339, 1870, 1336, 1263, 1870, 1699, 1347, 129, - 1870, 1870, 1339, 764, 1655, 1107, 1666, 297, 1201, 1339, - 1344, 1339, 763, 1883, 1620, 654, 1877, 407, 1332, 229, - 762, 2020, 2042, 1399, 1883, 6, 762, 1397, 897, 798, - 800, 796, 193, 769, 1993, 98, 1990, 1995, 1996, 129, - 260, 1002, 147, 764, 1655, 763, 1551, 1660, 1489, 533, - 430, 1272, 1668, 763, 1665, 1651, 1654, 763, 15, 385, - 393, 697, 700, 709, 1644, 1645, 1851, 1655, 1655, 1665, - 1114, 762, 1120, 1133, 1883, 1131, 1160, 754, 1097, 1478, - 763, 1574, 282, 1576, 282, 1619, 1662, 1472, 10, 267, - 1612, 1613, 1481, 263, 1348, 1801, 404, 569, 1314, 763, - 764, 1655, 762, 763, 1798, 1883, 2010, 2014, 1168, 1489, - 1166, 1316, 1883, 762, 1288, 282, 1306, 707, 1316, 1316, - 1205, 1196, 1197, 1204, 769, 1096, 200, 446, 825, 826, - 827, 833, 838, 841, 911, 831, 970, 829, 970, 412, - 841, 117, 124, 186, 887, 763, 764, 67, 2064, 176, - 852, 763, 1260, 2057, 2040, 79, 82, 178, 261, 1832, - 1833, 139, 1834, 1483, 1678, 1637, 1636, 2009, 1477, 84, - 1341, 84, 73, 233, 1201, 1407, 1268, 1870, 1362, 1335, - 1650, 260, 1363, 1345, 1347, 1337, 853, 860, 861, 1464, - 762, 1448, 1449, 2008, 2012, 2014, 297, 2043, 763, 764, - 1398, 226, 707, 1883, 570, 1996, 279, 1871, 1038, 1867, - 563, 764, 763, 763, 763, 1656, 709, 1645, 1646, 1851, - 635, 588, 425, 1647, 588, 762, 1482, 1123, 61, 287, - 288, 385, 460, 1134, 2009, 1601, 1473, 1489, 762, 1489, - 762, 763, 1472, 1472, 113, 281, 442, 1607, 1608, 1611, - 763, 897, 348, 762, 763, 1943, 1315, 173, 1943, 763, - 764, 1100, 763, 1316, 1306, 707, 1289, 1883, 150, 1290, - 1313, 1187, 1313, 1189, 1190, 199, 276, 300, 368, 480, - 735, 1206, 1207, 1216, 1256, 1257, 1258, 1286, 1495, 1876, - 34, 61, 172, 176, 328, 448, 646, 1210, 1212, 1249, - 1250, 1257, 1883, 1173, 1174, 831, 829, 822, 827, 838, - 833, 768, 768, 828, 768, 828, 1484, 186, 635, 947, - 1260, 886, 1014, 1015, 1482, 857, 858, 2064, 26, 26, - 79, 26, 1833, 249, 261, 1835, 1836, 1870, 576, 762, - 1342, 61, 61, 1363, 1413, 1871, 1346, 1385, 669, 855, - 950, 1457, 1466, 1467, 2016, 1448, 763, 229, 1447, 2020, - 2018, 33, 343, 492, 1883, 199, 1400, 1401, 1883, 193, - 1734, 1580, 1032, 1655, 1660, 1660, 1477, 441, 10, 441, - 99, 385, 554, 696, 1125, 1126, 1883, 1127, 680, 1128, - 1136, 695, 114, 368, 375, 390, 519, 532, 551, 689, - 1150, 1151, 1152, 1773, 1467, 1624, 1619, 1619, 1294, 1294, - 1608, 848, 1943, 297, 368, 482, 1301, 1305, 1309, 1312, - 1876, 1655, 763, 1302, 1304, 1309, 1311, 1883, 1095, 1193, - 1191, 1313, 763, 764, 445, 575, 653, 176, 1291, 762, - 1188, 762, 762, 129, 1877, 686, 1257, 725, 129, 172, - 1719, 1267, 752, 753, 762, 1220, 1221, 1222, 1510, 1850, - 1876, 279, 321, 61, 11, 373, 1250, 1255, 836, 2064, - 834, 2064, 334, 412, 824, 1883, 1883, 864, 909, 193, - 769, 899, 900, 2048, 854, 1014, 1847, 1847, 26, 1847, - 26, 26, 1836, 1197, 1666, 1130, 1222, 1104, 122, 1489, - 413, 856, 2016, 1477, 1477, 763, 2012, 2014, 1464, 1461, - 1466, 1467, 2016, 2013, 570, 33, 33, 763, 764, 707, - 1740, 1741, 1869, 1825, 1646, 635, 183, 310, 763, 764, - 1483, 1666, 762, 1138, 1140, 1135, 403, 1720, 1720, 403, - 1720, 1720, 1720, 1720, 762, 1145, 1152, 415, 763, 763, - 92, 1606, 1606, 763, 282, 707, 1300, 1303, 1308, 1309, - 1310, 574, 1877, 1720, 1352, 1353, 1354, 1312, 1719, 1352, - 1311, 763, 762, 762, 1192, 1883, 63, 279, 1314, 762, - 1314, 1314, 61, 1669, 1877, 1883, 1852, 1852, 1219, 169, - 721, 635, 1220, 1251, 1249, 768, 970, 768, 970, 1018, - 823, 832, 830, 226, 1883, 1016, 1871, 859, 1847, 1847, - 1847, 763, 762, 1489, 1477, 1458, 1461, 2016, 2042, 570, - 570, 1401, 764, 1719, 1264, 1124, 1126, 763, 762, 1139, - 1140, 1141, 152, 1137, 1140, 1720, 1877, 1877, 1720, 1669, - 1669, 1666, 1888, 681, 1146, 1147, 1720, 99, 127, 181, - 1610, 1609, 1313, 1313, 1352, 1310, 1876, 1665, 1354, 1353, - 61, 1669, 1877, 1883, 1314, 1314, 762, 28, 219, 233, - 554, 1292, 1292, 763, 1314, 763, 763, 763, 762, 1486, - 412, 670, 1211, 837, 835, 412, 1484, 894, 893, 193, - 769, 334, 92, 407, 1130, 2012, 1477, 1741, 1731, 1826, - 1128, 763, 764, 152, 1143, 1144, 1492, 1877, 1877, 1148, - 763, 764, 1177, 26, 26, 762, 762, 763, 763, 1314, - 61, 172, 314, 176, 176, 1300, 763, 1301, 1302, 763, - 1666, 1208, 1209, 1256, 1208, 580, 675, 728, 1213, 1014, - 1014, 864, 866, 2053, 226, 707, 1883, 1018, 1482, 860, - 763, 225, 1837, 1140, 764, 1142, 1149, 1888, 1147, 1616, - 1618, 1287, 1300, 763, 279, 63, 1300, 763, 1256, 1214, - 1215, 1216, 1883, 2063, 2063, 866, 193, 1017, 2049, 465, - 1831, 1144, 763, 1150, 763, 763, 1300, 1292, 1292, 1216, - 707, 412, 75, 26, 1834, 635, 1847, 113, 1838, 2050, - 173, 762, 1840, 440, 587, 2044, 2045, 139, 225, 1839, - 763, 770, 1841, 1842, 1869, 233, 1843, 1888, 2051, 1888, - 763, 764, 1844, 1845, 1869, 950, 1842, 764, 1719, 1845, - 1482, 1731, 1483 + 225, 1642, 1643, 1867, 1867, 1117, 669, 1154, 129, 457, + 1132, 763, 764, 763, 1718, 1731, 2010, 2014, 1158, 1159, + 1467, 769, 1160, 1477, 2016, 1160, 1478, 1940, 1940, 1470, + 1624, 1588, 2028, 176, 1575, 1582, 1582, 176, 1577, 1489, + 762, 1651, 562, 1472, 1472, 1614, 1615, 2026, 921, 763, + 764, 1617, 763, 764, 10, 1802, 763, 1888, 762, 1314, + 1315, 1883, 1314, 1877, 762, 1877, 763, 762, 1092, 1093, + 1091, 1184, 762, 129, 129, 1295, 1166, 1871, 1316, 1883, + 1166, 1166, 646, 1203, 1223, 1883, 11, 1161, 821, 200, + 446, 839, 840, 841, 882, 884, 885, 886, 867, 873, + 2000, 2060, 63, 119, 279, 1047, 640, 2040, 880, 881, + 2054, 866, 1877, 11, 360, 1831, 1655, 1489, 763, 764, + 11, 764, 754, 1483, 1731, 1456, 1460, 1495, 1413, 1495, + 1870, 1339, 1870, 1336, 1263, 1870, 1699, 1347, 129, 1870, + 1870, 1339, 764, 1655, 1107, 1666, 297, 1201, 1339, 1344, + 1339, 763, 1883, 1620, 654, 1877, 407, 1332, 229, 762, + 2020, 2042, 1399, 1883, 6, 762, 1397, 897, 798, 800, + 796, 193, 769, 1993, 98, 1990, 1995, 1996, 129, 260, + 1002, 147, 764, 1655, 763, 1551, 1660, 1489, 533, 430, + 1272, 1668, 763, 1665, 1651, 1654, 763, 15, 385, 393, + 697, 700, 709, 1644, 1645, 1851, 1655, 1655, 1665, 1114, + 762, 1120, 1133, 1883, 1131, 1160, 754, 1097, 1478, 763, + 1574, 282, 1576, 282, 1619, 1662, 1472, 10, 267, 1612, + 1613, 1481, 263, 1348, 1801, 404, 569, 1314, 763, 764, + 1655, 762, 763, 1798, 1883, 2010, 2014, 1168, 1489, 1166, + 1316, 1883, 762, 1288, 282, 1306, 707, 1316, 1316, 1205, + 1196, 1197, 1204, 769, 1096, 200, 446, 825, 826, 827, + 833, 838, 841, 911, 831, 970, 829, 970, 412, 841, + 117, 124, 186, 887, 763, 764, 67, 2064, 176, 852, + 763, 1260, 2057, 2040, 79, 82, 178, 261, 1832, 1833, + 139, 1834, 1483, 1678, 1637, 1636, 2009, 1477, 84, 1341, + 84, 73, 233, 1201, 1407, 1268, 1870, 1362, 1335, 1650, + 260, 1363, 1345, 1347, 1337, 853, 860, 861, 1464, 762, + 1448, 1449, 2008, 2012, 2014, 297, 2043, 763, 764, 1398, + 226, 707, 1883, 570, 1996, 279, 1871, 1038, 1867, 563, + 764, 763, 763, 763, 1656, 709, 1645, 1646, 1851, 635, + 588, 425, 1647, 588, 762, 1127, 1123, 61, 287, 288, + 385, 460, 1134, 2009, 1601, 1473, 1489, 762, 1489, 762, + 763, 1472, 1472, 113, 281, 442, 1607, 1608, 1611, 763, + 897, 348, 762, 763, 1943, 1315, 173, 1943, 763, 764, + 1100, 763, 1316, 1306, 707, 1289, 1883, 150, 1290, 1313, + 1187, 1313, 1189, 1190, 199, 276, 300, 368, 480, 735, + 1206, 1207, 1216, 1256, 1257, 1258, 1286, 1495, 1876, 34, + 61, 172, 176, 328, 448, 646, 1210, 1212, 1249, 1250, + 1257, 1883, 1173, 1174, 831, 829, 822, 827, 838, 833, + 768, 768, 828, 768, 828, 1484, 186, 635, 947, 1260, + 886, 1014, 1015, 1482, 857, 858, 2064, 26, 26, 79, + 26, 1833, 249, 261, 1835, 1836, 1870, 576, 762, 1342, + 61, 61, 1363, 1413, 1871, 1346, 1385, 669, 855, 950, + 1457, 1466, 1467, 2016, 1448, 763, 229, 1447, 2020, 2018, + 33, 343, 492, 1883, 199, 1400, 1401, 1883, 193, 1734, + 1580, 1032, 1655, 1660, 1660, 1477, 441, 10, 441, 99, + 385, 554, 696, 1125, 1126, 1883, 763, 680, 1128, 1136, + 695, 114, 368, 375, 390, 519, 532, 551, 689, 1150, + 1151, 1152, 1773, 1467, 1624, 1619, 1619, 1294, 1294, 1608, + 848, 1943, 297, 368, 482, 1301, 1305, 1309, 1312, 1876, + 1655, 763, 1302, 1304, 1309, 1311, 1883, 1095, 1193, 1191, + 1313, 763, 764, 445, 575, 653, 176, 1291, 762, 1188, + 762, 762, 129, 1877, 686, 1257, 725, 129, 172, 1719, + 1267, 752, 753, 762, 1220, 1221, 1222, 1510, 1850, 1876, + 279, 321, 61, 11, 373, 1250, 1255, 836, 2064, 834, + 2064, 334, 412, 824, 1883, 1883, 864, 909, 193, 769, + 899, 900, 2048, 854, 1014, 1847, 1847, 26, 1847, 26, + 26, 1836, 1197, 1666, 1130, 1222, 1104, 122, 1489, 413, + 856, 2016, 1477, 1477, 763, 2012, 2014, 1464, 1461, 1466, + 1467, 2016, 2013, 570, 33, 33, 763, 764, 707, 1740, + 1741, 1869, 1825, 1646, 635, 183, 310, 763, 764, 1666, + 762, 1138, 1140, 1135, 403, 1720, 1720, 403, 1720, 1720, + 1720, 1720, 762, 1145, 1152, 415, 763, 763, 92, 1606, + 1606, 763, 282, 707, 1300, 1303, 1308, 1309, 1310, 574, + 1877, 1720, 1352, 1353, 1354, 1312, 1719, 1352, 1311, 763, + 762, 762, 1192, 1883, 63, 279, 1314, 762, 1314, 1314, + 61, 1669, 1877, 1883, 1852, 1852, 1219, 169, 721, 635, + 1220, 1251, 1249, 768, 970, 768, 970, 1018, 823, 832, + 830, 226, 1883, 1016, 1871, 859, 1847, 1847, 1847, 763, + 762, 1489, 1477, 1458, 1461, 2016, 2042, 570, 570, 1401, + 764, 1719, 1264, 1124, 1126, 762, 1139, 1140, 1141, 152, + 1137, 1140, 1720, 1877, 1877, 1720, 1669, 1669, 1666, 1888, + 681, 1146, 1147, 1720, 99, 127, 181, 1610, 1609, 1313, + 1313, 1352, 1310, 1876, 1665, 1354, 1353, 61, 1669, 1877, + 1883, 1314, 1314, 762, 28, 219, 233, 554, 1292, 1292, + 763, 1314, 763, 763, 763, 762, 1486, 412, 670, 1211, + 837, 835, 412, 1484, 894, 893, 193, 769, 334, 92, + 407, 1130, 2012, 1477, 1741, 1731, 1826, 1128, 763, 764, + 152, 1143, 1144, 1492, 1877, 1877, 1148, 763, 764, 1177, + 26, 26, 762, 762, 763, 763, 1314, 61, 172, 314, + 176, 176, 1300, 763, 1301, 1302, 763, 1666, 1208, 1209, + 1256, 1208, 580, 675, 728, 1213, 1014, 1014, 864, 866, + 2053, 226, 707, 1883, 1018, 1482, 860, 763, 225, 1837, + 1140, 764, 1142, 1149, 1888, 1147, 1616, 1618, 1287, 1300, + 763, 279, 63, 1300, 763, 1256, 1214, 1215, 1216, 1883, + 2063, 2063, 866, 193, 1017, 2049, 465, 1831, 1144, 763, + 1150, 763, 763, 1300, 1292, 1292, 1216, 707, 412, 75, + 26, 1834, 635, 1847, 113, 1838, 2050, 173, 762, 1840, + 440, 587, 2044, 2045, 139, 225, 1839, 763, 770, 1841, + 1842, 1869, 233, 1843, 1888, 2051, 1888, 763, 764, 1844, + 1845, 1869, 950, 1842, 764, 1719, 1845, 1482, 1731, 1483 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ @@ -23238,191 +23051,191 @@ 1227, 1227, 1227, 1227, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1228, 1229, 1229, 1229, 1229, 1229, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, - 1230, 1230, 1231, 1231, 1232, 1232, 1232, 1232, 1232, 1232, - 1232, 1232, 1233, 1234, 1234, 1235, 1235, 1236, 1236, 1236, - 1236, 1236, 1237, 1237, 1237, 1237, 1237, 1238, 1238, 1238, - 1239, 1239, 1240, 1240, 1240, 1241, 1242, 1242, 1242, 1242, - 1242, 1242, 1243, 1243, 1243, 1243, 1244, 1244, 1245, 1245, - 1246, 1246, 1247, 1247, 1248, 1248, 1249, 1249, 1250, 1250, - 1250, 1250, 1250, 1250, 1250, 1251, 1251, 1252, 1252, 1253, - 1254, 1255, 1256, 1256, 1256, 1257, 1257, 1257, 1257, 1257, - 1257, 1258, 1258, 1259, 1260, 1261, 1261, 1262, 1262, 1263, - 1263, 1264, 1264, 1265, 1265, 1266, 1266, 1267, 1268, 1268, - 1269, 1269, 1270, 1270, 1271, 1271, 1271, 1272, 1272, 1273, - 1273, 1273, 1273, 1274, 1274, 1276, 1275, 1277, 1277, 1278, - 1279, 1279, 1279, 1279, 1280, 1281, 1282, 1282, 1283, 1284, - 1284, 1285, 1285, 1286, 1286, 1287, 1288, 1288, 1289, 1289, - 1290, 1290, 1290, 1290, 1291, 1291, 1291, 1291, 1291, 1292, - 1292, 1292, 1292, 1292, 1293, 1293, 1294, 1294, 1295, 1295, - 1296, 1296, 1296, 1297, 1297, 1298, 1299, 1300, 1300, 1301, - 1301, 1302, 1302, 1303, 1303, 1304, 1304, 1305, 1305, 1306, - 1306, 1307, 1307, 1307, 1308, 1308, 1309, 1309, 1309, 1309, - 1309, 1309, 1310, 1310, 1311, 1312, 1312, 1313, 1313, 1313, - 1314, 1314, 1315, 1315, 1316, 1316, 1317, 1317, 1319, 1320, - 1318, 1321, 1318, 1318, 1322, 1318, 1323, 1318, 1324, 1318, - 1325, 1318, 1326, 1318, 1318, 1318, 1318, 1318, 1327, 1318, - 1318, 1328, 1329, 1318, 1330, 1330, 1330, 1330, 1331, 1331, - 1332, 1332, 1333, 1333, 1334, 1334, 1334, 1334, 1334, 1334, - 1334, 1334, 1334, 1334, 1335, 1334, 1334, 1336, 1334, 1337, - 1334, 1334, 1334, 1334, 1334, 1338, 1339, 1339, 1341, 1340, - 1342, 1342, 1342, 1344, 1343, 1345, 1346, 1345, 1347, 1347, - 1348, 1349, 1349, 1350, 1351, 1351, 1351, 1351, 1351, 1351, + 1230, 1230, 1230, 1231, 1231, 1232, 1232, 1232, 1232, 1232, + 1232, 1232, 1232, 1233, 1234, 1234, 1235, 1235, 1236, 1236, + 1236, 1236, 1236, 1237, 1237, 1237, 1237, 1237, 1238, 1238, + 1238, 1239, 1239, 1240, 1240, 1240, 1241, 1242, 1242, 1242, + 1242, 1242, 1242, 1243, 1243, 1243, 1243, 1244, 1244, 1245, + 1245, 1246, 1246, 1247, 1247, 1248, 1248, 1249, 1249, 1250, + 1250, 1250, 1250, 1250, 1250, 1250, 1251, 1251, 1252, 1252, + 1253, 1254, 1255, 1256, 1256, 1256, 1257, 1257, 1257, 1257, + 1257, 1257, 1258, 1258, 1259, 1260, 1261, 1261, 1262, 1262, + 1263, 1263, 1264, 1264, 1265, 1265, 1266, 1266, 1267, 1268, + 1268, 1269, 1269, 1270, 1270, 1271, 1271, 1271, 1272, 1272, + 1273, 1273, 1273, 1273, 1274, 1274, 1276, 1275, 1277, 1277, + 1278, 1279, 1279, 1279, 1279, 1280, 1281, 1282, 1282, 1283, + 1284, 1284, 1285, 1285, 1286, 1286, 1287, 1288, 1288, 1289, + 1289, 1290, 1290, 1290, 1290, 1291, 1291, 1291, 1291, 1291, + 1292, 1292, 1292, 1292, 1292, 1293, 1293, 1294, 1294, 1295, + 1295, 1296, 1296, 1296, 1297, 1297, 1298, 1299, 1300, 1300, + 1301, 1301, 1302, 1302, 1303, 1303, 1304, 1304, 1305, 1305, + 1306, 1306, 1307, 1307, 1307, 1308, 1308, 1309, 1309, 1309, + 1309, 1309, 1309, 1310, 1310, 1311, 1312, 1312, 1313, 1313, + 1313, 1314, 1314, 1315, 1315, 1316, 1316, 1317, 1317, 1319, + 1320, 1318, 1321, 1318, 1318, 1322, 1318, 1323, 1318, 1324, + 1318, 1325, 1318, 1326, 1318, 1318, 1318, 1318, 1318, 1327, + 1318, 1318, 1328, 1329, 1318, 1330, 1330, 1330, 1330, 1331, + 1331, 1332, 1332, 1333, 1333, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1335, 1334, 1334, 1336, 1334, + 1337, 1334, 1334, 1334, 1334, 1334, 1338, 1339, 1339, 1341, + 1340, 1342, 1342, 1342, 1344, 1343, 1345, 1346, 1345, 1347, + 1347, 1348, 1349, 1349, 1350, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, - 1351, 1352, 1352, 1352, 1352, 1352, 1353, 1353, 1354, 1354, - 1355, 1355, 1356, 1356, 1358, 1357, 1359, 1359, 1360, 1360, - 1361, 1361, 1362, 1362, 1362, 1363, 1363, 1363, 1364, 1364, - 1364, 1364, 1366, 1365, 1367, 1365, 1365, 1365, 1368, 1369, - 1369, 1370, 1370, 1371, 1371, 1371, 1373, 1372, 1374, 1374, - 1375, 1375, 1375, 1376, 1376, 1376, 1377, 1377, 1379, 1378, - 1380, 1380, 1380, 1381, 1382, 1381, 1384, 1383, 1385, 1385, - 1386, 1386, 1387, 1387, 1387, 1388, 1388, 1390, 1389, 1391, - 1391, 1392, 1393, 1393, 1394, 1394, 1395, 1396, 1395, 1397, - 1398, 1397, 1399, 1399, 1399, 1400, 1400, 1400, 1401, 1401, - 1402, 1402, 1403, 1404, 1403, 1406, 1405, 1407, 1407, 1408, - 1408, 1409, 1409, 1409, 1409, 1409, 1409, 1410, 1410, 1412, - 1411, 1413, 1413, 1413, 1415, 1414, 1414, 1416, 1416, 1417, - 1417, 1418, 1420, 1419, 1421, 1421, 1422, 1422, 1423, 1424, - 1425, 1425, 1427, 1426, 1428, 1428, 1429, 1429, 1430, 1431, - 1433, 1432, 1435, 1434, 1436, 1436, 1437, 1437, 1438, 1439, - 1439, 1439, 1439, 1439, 1439, 1439, 1440, 1440, 1440, 1440, - 1440, 1440, 1440, 1442, 1441, 1443, 1441, 1441, 1444, 1444, - 1446, 1445, 1445, 1447, 1447, 1449, 1448, 1448, 1451, 1450, - 1452, 1450, 1450, 1454, 1453, 1453, 1456, 1455, 1455, 1457, - 1458, 1457, 1457, 1457, 1459, 1459, 1460, 1460, 1461, 1461, - 1461, 1462, 1462, 1462, 1463, 1463, 1463, 1463, 1463, 1465, - 1464, 1466, 1467, 1467, 1468, 1469, 1469, 1470, 1470, 1471, - 1471, 1471, 1472, 1472, 1472, 1473, 1473, 1474, 1474, 1474, - 1474, 1475, 1475, 1476, 1476, 1476, 1477, 1477, 1477, 1478, - 1478, 1478, 1479, 1479, 1480, 1481, 1482, 1483, 1484, 1485, - 1485, 1485, 1485, 1485, 1486, 1486, 1486, 1487, 1487, 1487, - 1488, 1488, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, - 1489, 1489, 1489, 1490, 1490, 1490, 1490, 1490, 1490, 1491, + 1351, 1351, 1352, 1352, 1352, 1352, 1352, 1353, 1353, 1354, + 1354, 1355, 1355, 1356, 1356, 1358, 1357, 1359, 1359, 1360, + 1360, 1361, 1361, 1362, 1362, 1362, 1363, 1363, 1363, 1364, + 1364, 1364, 1364, 1366, 1365, 1367, 1365, 1365, 1365, 1368, + 1369, 1369, 1370, 1370, 1371, 1371, 1371, 1373, 1372, 1374, + 1374, 1375, 1375, 1375, 1376, 1376, 1376, 1377, 1377, 1379, + 1378, 1380, 1380, 1380, 1381, 1382, 1381, 1384, 1383, 1385, + 1385, 1386, 1386, 1387, 1387, 1387, 1388, 1388, 1390, 1389, + 1391, 1391, 1392, 1393, 1393, 1394, 1394, 1395, 1396, 1395, + 1397, 1398, 1397, 1399, 1399, 1399, 1400, 1400, 1400, 1401, + 1401, 1402, 1402, 1403, 1404, 1403, 1406, 1405, 1407, 1407, + 1408, 1408, 1409, 1409, 1409, 1409, 1409, 1409, 1410, 1410, + 1412, 1411, 1413, 1413, 1413, 1415, 1414, 1414, 1416, 1416, + 1417, 1417, 1418, 1420, 1419, 1421, 1421, 1422, 1422, 1423, + 1424, 1425, 1425, 1427, 1426, 1428, 1428, 1429, 1429, 1430, + 1431, 1433, 1432, 1435, 1434, 1436, 1436, 1437, 1437, 1438, + 1439, 1439, 1439, 1439, 1439, 1439, 1439, 1440, 1440, 1440, + 1440, 1440, 1440, 1440, 1442, 1441, 1443, 1441, 1441, 1444, + 1444, 1446, 1445, 1445, 1447, 1447, 1449, 1448, 1448, 1451, + 1450, 1452, 1450, 1450, 1454, 1453, 1453, 1456, 1455, 1455, + 1457, 1458, 1457, 1457, 1457, 1459, 1459, 1460, 1460, 1461, + 1461, 1461, 1462, 1462, 1462, 1463, 1463, 1463, 1463, 1463, + 1465, 1464, 1466, 1467, 1467, 1468, 1469, 1469, 1470, 1470, + 1471, 1471, 1471, 1472, 1472, 1472, 1473, 1473, 1474, 1474, + 1474, 1474, 1475, 1475, 1476, 1476, 1476, 1477, 1477, 1477, + 1478, 1478, 1478, 1479, 1479, 1480, 1481, 1482, 1483, 1484, + 1485, 1485, 1485, 1485, 1485, 1486, 1486, 1486, 1487, 1487, + 1487, 1488, 1488, 1489, 1489, 1489, 1489, 1489, 1489, 1489, + 1489, 1489, 1489, 1489, 1490, 1490, 1490, 1490, 1490, 1490, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, - 1491, 1491, 1491, 1492, 1492, 1492, 1492, 1492, 1492, 1492, + 1491, 1491, 1491, 1491, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, - 1492, 1492, 1493, 1493, 1494, 1494, 1495, 1495, 1496, 1496, - 1497, 1497, 1497, 1497, 1497, 1497, 1498, 1498, 1499, 1499, - 1500, 1500, 1500, 1501, 1501, 1501, 1501, 1501, 1501, 1502, - 1502, 1502, 1504, 1503, 1503, 1505, 1506, 1506, 1507, 1507, - 1507, 1507, 1508, 1509, 1509, 1509, 1509, 1509, 1509, 1509, - 1509, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, + 1492, 1492, 1492, 1493, 1493, 1494, 1494, 1495, 1495, 1496, + 1496, 1497, 1497, 1497, 1497, 1497, 1497, 1498, 1498, 1499, + 1499, 1500, 1500, 1500, 1501, 1501, 1501, 1501, 1501, 1501, + 1502, 1502, 1502, 1504, 1503, 1503, 1505, 1506, 1506, 1507, + 1507, 1507, 1507, 1508, 1509, 1509, 1509, 1509, 1509, 1509, + 1509, 1509, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, - 1511, 1511, 1511, 1512, 1512, 1513, 1513, 1513, 1513, 1513, - 1513, 1514, 1514, 1515, 1515, 1516, 1516, 1516, 1516, 1516, + 1510, 1511, 1511, 1511, 1512, 1512, 1513, 1513, 1513, 1513, + 1513, 1513, 1514, 1514, 1515, 1515, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, - 1516, 1516, 1516, 1516, 1516, 1516, 1517, 1517, 1517, 1517, + 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, - 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1518, 1518, + 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1517, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, - 1518, 1518, 1518, 1518, 1518, 1519, 1519, 1519, 1519, 1519, - 1519, 1519, 1519, 1519, 1521, 1520, 1520, 1522, 1522, 1523, - 1523, 1524, 1524, 1525, 1525, 1526, 1526, 1527, 1528, 1528, - 1528, 1528, 1528, 1528, 1528, 1529, 1530, 1528, 1528, 1528, - 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1531, 1528, - 1532, 1532, 1533, 1533, 1534, 1534, 1534, 1534, 1534, 1534, - 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1535, 1537, 1536, - 1536, 1538, 1538, 1539, 1540, 1542, 1541, 1543, 1543, 1543, - 1543, 1544, 1544, 1545, 1545, 1546, 1546, 1547, 1547, 1548, - 1548, 1549, 1550, 1551, 1551, 1551, 1553, 1552, 1554, 1555, - 1554, 1556, 1554, 1557, 1554, 1554, 1554, 1554, 1558, 1558, - 1558, 1558, 1558, 1558, 1558, 1558, 1559, 1559, 1559, 1560, - 1560, 1561, 1561, 1562, 1562, 1563, 1563, 1564, 1564, 1565, - 1565, 1566, 1566, 1567, 1567, 1568, 1569, 1569, 1570, 1570, - 1571, 1572, 1571, 1573, 1571, 1571, 1574, 1571, 1575, 1571, - 1571, 1576, 1571, 1577, 1571, 1571, 1578, 1578, 1578, 1579, - 1579, 1580, 1580, 1581, 1582, 1582, 1584, 1583, 1585, 1585, - 1586, 1586, 1587, 1586, 1586, 1586, 1586, 1588, 1588, 1589, - 1588, 1590, 1591, 1593, 1592, 1594, 1595, 1595, 1596, 1598, - 1597, 1600, 1601, 1599, 1602, 1603, 1604, 1605, 1605, 1606, - 1606, 1606, 1606, 1607, 1607, 1609, 1608, 1610, 1608, 1611, - 1611, 1612, 1613, 1612, 1615, 1614, 1616, 1616, 1617, 1617, - 1618, 1618, 1619, 1619, 1620, 1620, 1620, 1620, 1620, 1620, - 1620, 1620, 1620, 1620, 1620, 1620, 1621, 1621, 1621, 1621, - 1621, 1621, 1621, 1621, 1621, 1622, 1622, 1622, 1622, 1623, - 1623, 1623, 1624, 1624, 1625, 1625, 1626, 1627, 1626, 1628, - 1629, 1628, 1630, 1630, 1631, 1631, 1632, 1632, 1633, 1633, - 1633, 1634, 1634, 1635, 1635, 1636, 1638, 1637, 1639, 1639, - 1640, 1640, 1641, 1641, 1642, 1642, 1643, 1643, 1644, 1644, - 1645, 1645, 1645, 1646, 1646, 1646, 1647, 1647, 1647, 1647, - 1647, 1647, 1648, 1649, 1649, 1650, 1651, 1651, 1653, 1652, - 1654, 1654, 1655, 1655, 1655, 1656, 1656, 1657, 1658, 1658, - 1658, 1659, 1659, 1659, 1660, 1660, 1660, 1660, 1660, 1660, - 1661, 1662, 1662, 1662, 1662, 1663, 1663, 1664, 1664, 1665, - 1665, 1665, 1665, 1665, 1665, 1666, 1666, 1666, 1666, 1666, - 1667, 1667, 1667, 1667, 1668, 1668, 1668, 1668, 1668, 1669, - 1669, 1669, 1669, 1669, 1670, 1671, 1671, 1672, 1672, 1673, - 1673, 1673, 1675, 1674, 1676, 1676, 1677, 1677, 1678, 1680, - 1679, 1681, 1681, 1682, 1683, 1683, 1683, 1684, 1686, 1687, - 1685, 1685, 1685, 1689, 1688, 1691, 1690, 1690, 1690, 1690, - 1690, 1690, 1690, 1690, 1690, 1690, 1692, 1690, 1690, 1690, - 1690, 1690, 1690, 1693, 1690, 1694, 1694, 1695, 1696, 1697, - 1697, 1698, 1699, 1699, 1700, 1700, 1701, 1701, 1703, 1704, - 1702, 1706, 1707, 1705, 1708, 1708, 1708, 1708, 1709, 1709, - 1710, 1710, 1711, 1712, 1712, 1712, 1713, 1712, 1714, 1714, - 1715, 1715, 1715, 1716, 1716, 1717, 1717, 1718, 1719, 1719, - 1720, 1720, 1721, 1721, 1722, 1722, 1724, 1723, 1726, 1725, - 1727, 1727, 1728, 1728, 1729, 1729, 1730, 1730, 1731, 1731, - 1731, 1732, 1733, 1734, 1732, 1736, 1737, 1735, 1738, 1738, - 1739, 1740, 1740, 1741, 1742, 1742, 1744, 1743, 1745, 1745, - 1746, 1746, 1747, 1748, 1749, 1748, 1750, 1748, 1751, 1751, - 1752, 1752, 1753, 1753, 1754, 1754, 1755, 1755, 1756, 1756, - 1756, 1758, 1759, 1757, 1760, 1760, 1760, 1761, 1761, 1762, - 1762, 1763, 1763, 1764, 1764, 1764, 1764, 1764, 1764, 1764, - 1764, 1764, 1765, 1765, 1767, 1766, 1768, 1768, 1768, 1768, + 1518, 1518, 1518, 1518, 1518, 1518, 1519, 1519, 1519, 1519, + 1519, 1519, 1519, 1519, 1519, 1521, 1520, 1520, 1522, 1522, + 1523, 1523, 1524, 1524, 1525, 1525, 1526, 1526, 1527, 1528, + 1528, 1528, 1528, 1528, 1528, 1528, 1529, 1530, 1528, 1528, + 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1528, 1531, + 1528, 1532, 1532, 1533, 1533, 1534, 1534, 1534, 1534, 1534, + 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1535, 1537, + 1536, 1536, 1538, 1538, 1539, 1540, 1542, 1541, 1543, 1543, + 1543, 1543, 1544, 1544, 1545, 1545, 1546, 1546, 1547, 1547, + 1548, 1548, 1549, 1550, 1551, 1551, 1551, 1553, 1552, 1554, + 1555, 1554, 1556, 1554, 1557, 1554, 1554, 1554, 1554, 1558, + 1558, 1558, 1558, 1558, 1558, 1558, 1558, 1559, 1559, 1559, + 1560, 1560, 1561, 1561, 1562, 1562, 1563, 1563, 1564, 1564, + 1565, 1565, 1566, 1566, 1567, 1567, 1568, 1569, 1569, 1570, + 1570, 1571, 1572, 1571, 1573, 1571, 1571, 1574, 1571, 1575, + 1571, 1571, 1576, 1571, 1577, 1571, 1571, 1578, 1578, 1578, + 1579, 1579, 1580, 1580, 1581, 1582, 1582, 1584, 1583, 1585, + 1585, 1586, 1586, 1587, 1586, 1586, 1586, 1586, 1588, 1588, + 1589, 1588, 1590, 1591, 1593, 1592, 1594, 1595, 1595, 1596, + 1598, 1597, 1600, 1601, 1599, 1602, 1603, 1604, 1605, 1605, + 1606, 1606, 1606, 1606, 1607, 1607, 1609, 1608, 1610, 1608, + 1611, 1611, 1612, 1613, 1612, 1615, 1614, 1616, 1616, 1617, + 1617, 1618, 1618, 1619, 1619, 1620, 1620, 1620, 1620, 1620, + 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1621, 1621, 1621, + 1621, 1621, 1621, 1621, 1621, 1621, 1622, 1622, 1622, 1622, + 1623, 1623, 1623, 1624, 1624, 1625, 1625, 1626, 1627, 1626, + 1628, 1629, 1628, 1630, 1630, 1631, 1631, 1632, 1632, 1633, + 1633, 1633, 1634, 1634, 1635, 1635, 1636, 1638, 1637, 1639, + 1639, 1640, 1640, 1641, 1641, 1642, 1642, 1643, 1643, 1644, + 1644, 1645, 1645, 1645, 1646, 1646, 1646, 1647, 1647, 1647, + 1647, 1647, 1647, 1648, 1649, 1649, 1650, 1651, 1651, 1653, + 1652, 1654, 1654, 1655, 1655, 1655, 1656, 1656, 1657, 1658, + 1658, 1658, 1659, 1659, 1659, 1660, 1660, 1660, 1660, 1660, + 1660, 1661, 1662, 1662, 1662, 1662, 1663, 1663, 1664, 1664, + 1665, 1665, 1665, 1665, 1665, 1665, 1666, 1666, 1666, 1666, + 1666, 1667, 1667, 1667, 1667, 1668, 1668, 1668, 1668, 1668, + 1669, 1669, 1669, 1669, 1669, 1670, 1671, 1671, 1672, 1672, + 1673, 1673, 1673, 1675, 1674, 1676, 1676, 1677, 1677, 1678, + 1680, 1679, 1681, 1681, 1682, 1683, 1683, 1683, 1684, 1686, + 1687, 1685, 1685, 1685, 1689, 1688, 1691, 1690, 1690, 1690, + 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1692, 1690, 1690, + 1690, 1690, 1690, 1690, 1693, 1690, 1694, 1694, 1695, 1696, + 1697, 1697, 1698, 1699, 1699, 1700, 1700, 1701, 1701, 1703, + 1704, 1702, 1706, 1707, 1705, 1708, 1708, 1708, 1708, 1709, + 1709, 1710, 1710, 1711, 1712, 1712, 1712, 1713, 1712, 1714, + 1714, 1715, 1715, 1715, 1716, 1716, 1717, 1717, 1718, 1719, + 1719, 1720, 1720, 1721, 1721, 1722, 1722, 1724, 1723, 1726, + 1725, 1727, 1727, 1728, 1728, 1729, 1729, 1730, 1730, 1731, + 1731, 1731, 1732, 1733, 1734, 1732, 1736, 1737, 1735, 1738, + 1738, 1739, 1740, 1740, 1741, 1742, 1742, 1744, 1743, 1745, + 1745, 1746, 1746, 1747, 1748, 1749, 1748, 1750, 1748, 1751, + 1751, 1752, 1752, 1753, 1753, 1754, 1754, 1755, 1755, 1756, + 1756, 1756, 1758, 1759, 1757, 1760, 1760, 1760, 1761, 1761, + 1762, 1762, 1763, 1763, 1764, 1764, 1764, 1764, 1764, 1764, + 1764, 1764, 1764, 1765, 1765, 1767, 1766, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, - 1769, 1768, 1770, 1768, 1768, 1768, 1768, 1768, 1768, 1768, + 1768, 1769, 1768, 1770, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, - 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1771, 1771, 1771, - 1772, 1772, 1773, 1773, 1774, 1774, 1775, 1775, 1776, 1776, - 1777, 1777, 1778, 1778, 1779, 1779, 1779, 1781, 1780, 1782, - 1780, 1783, 1783, 1783, 1783, 1783, 1784, 1784, 1785, 1786, - 1786, 1786, 1787, 1787, 1788, 1788, 1788, 1790, 1789, 1792, - 1791, 1791, 1793, 1793, 1794, 1795, 1794, 1796, 1796, 1797, + 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1771, 1771, + 1771, 1772, 1772, 1773, 1773, 1774, 1774, 1775, 1775, 1776, + 1776, 1777, 1777, 1778, 1778, 1779, 1779, 1779, 1781, 1780, + 1782, 1780, 1783, 1783, 1783, 1783, 1783, 1784, 1784, 1785, + 1786, 1786, 1786, 1787, 1787, 1788, 1788, 1788, 1790, 1789, + 1792, 1791, 1791, 1793, 1793, 1794, 1795, 1794, 1796, 1796, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, 1797, - 1797, 1797, 1797, 1797, 1797, 1798, 1798, 1799, 1799, 1800, - 1800, 1800, 1801, 1802, 1802, 1804, 1803, 1805, 1805, 1807, - 1806, 1808, 1806, 1806, 1809, 1809, 1810, 1810, 1812, 1811, - 1813, 1814, 1814, 1816, 1815, 1817, 1817, 1817, 1818, 1818, - 1818, 1818, 1819, 1819, 1820, 1821, 1823, 1824, 1825, 1826, - 1822, 1827, 1827, 1828, 1828, 1829, 1829, 1829, 1830, 1830, - 1830, 1831, 1831, 1832, 1832, 1833, 1833, 1833, 1833, 1834, - 1834, 1835, 1835, 1836, 1836, 1837, 1837, 1838, 1838, 1839, - 1839, 1840, 1840, 1840, 1841, 1841, 1842, 1842, 1843, 1843, - 1844, 1844, 1845, 1846, 1846, 1846, 1846, 1847, 1847, 1848, - 1848, 1848, 1849, 1849, 1849, 1850, 1850, 1851, 1851, 1851, - 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1852, 1852, 1852, - 1852, 1852, 1853, 1853, 1853, 1854, 1854, 1856, 1855, 1857, - 1857, 1858, 1858, 1860, 1859, 1861, 1861, 1862, 1862, 1863, - 1864, 1864, 1865, 1865, 1866, 1866, 1867, 1868, 1868, 1868, - 1868, 1868, 1869, 1869, 1869, 1869, 1869, 1870, 1870, 1870, - 1870, 1871, 1871, 1871, 1872, 1872, 1873, 1874, 1874, 1875, - 1875, 1875, 1876, 1877, 1878, 1879, 1880, 1880, 1881, 1881, - 1882, 1882, 1882, 1883, 1883, 1884, 1884, 1885, 1885, 1886, - 1886, 1887, 1888, 1888, 1888, 1889, 1889, 1889, 1890, 1890, - 1891, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, - 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, - 1894, 1894, 1894, 1894, 1894, 1894, 1895, 1895, 1895, 1895, - 1895, 1895, 1895, 1895, 1895, 1896, 1896, 1896, 1896, 1896, - 1896, 1896, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, - 1897, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1899, 1899, + 1797, 1797, 1797, 1797, 1797, 1797, 1798, 1798, 1799, 1799, + 1800, 1800, 1800, 1801, 1802, 1802, 1804, 1803, 1805, 1805, + 1807, 1806, 1808, 1806, 1806, 1809, 1809, 1810, 1810, 1812, + 1811, 1813, 1814, 1814, 1816, 1815, 1817, 1817, 1817, 1818, + 1818, 1818, 1818, 1819, 1819, 1820, 1821, 1823, 1824, 1825, + 1826, 1822, 1827, 1827, 1828, 1828, 1829, 1829, 1829, 1830, + 1830, 1830, 1831, 1831, 1832, 1832, 1833, 1833, 1833, 1833, + 1834, 1834, 1835, 1835, 1836, 1836, 1837, 1837, 1838, 1838, + 1839, 1839, 1840, 1840, 1840, 1841, 1841, 1842, 1842, 1843, + 1843, 1844, 1844, 1845, 1846, 1846, 1846, 1846, 1847, 1847, + 1848, 1848, 1848, 1849, 1849, 1849, 1850, 1850, 1851, 1851, + 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1851, 1852, 1852, + 1852, 1852, 1852, 1853, 1853, 1853, 1854, 1854, 1856, 1855, + 1857, 1857, 1858, 1858, 1860, 1859, 1861, 1861, 1862, 1862, + 1863, 1864, 1864, 1865, 1865, 1866, 1866, 1867, 1868, 1868, + 1868, 1868, 1868, 1869, 1869, 1869, 1869, 1869, 1870, 1870, + 1870, 1870, 1871, 1871, 1871, 1872, 1872, 1873, 1874, 1874, + 1875, 1875, 1875, 1876, 1877, 1878, 1879, 1880, 1880, 1881, + 1881, 1882, 1882, 1882, 1883, 1883, 1884, 1884, 1885, 1885, + 1886, 1886, 1887, 1888, 1888, 1888, 1889, 1889, 1889, 1890, + 1890, 1891, 1892, 1892, 1892, 1892, 1892, 1892, 1892, 1892, + 1892, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, 1893, + 1893, 1894, 1894, 1894, 1894, 1894, 1894, 1895, 1895, 1895, + 1895, 1895, 1895, 1895, 1895, 1895, 1896, 1896, 1896, 1896, + 1896, 1896, 1896, 1897, 1897, 1897, 1897, 1897, 1897, 1897, + 1897, 1897, 1898, 1898, 1898, 1898, 1898, 1898, 1898, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, - 1899, 1899, 1899, 1900, 1900, 1900, 1900, 1900, 1900, 1901, - 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1902, - 1902, 1902, 1903, 1903, 1903, 1904, 1904, 1904, 1905, 1905, + 1899, 1899, 1899, 1899, 1900, 1900, 1900, 1900, 1900, 1900, + 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, + 1902, 1902, 1902, 1903, 1903, 1903, 1904, 1904, 1904, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, - 1905, 1905, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, + 1905, 1905, 1905, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, @@ -23453,46 +23266,46 @@ 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, 1906, - 1906, 1906, 1906, 1906, 1908, 1907, 1909, 1910, 1907, 1912, - 1911, 1913, 1911, 1914, 1911, 1915, 1915, 1917, 1916, 1918, - 1916, 1919, 1916, 1921, 1920, 1920, 1922, 1922, 1924, 1923, - 1925, 1923, 1927, 1926, 1926, 1928, 1928, 1928, 1929, 1929, - 1929, 1929, 1930, 1930, 1930, 1930, 1931, 1931, 1931, 1932, + 1906, 1906, 1906, 1906, 1906, 1908, 1907, 1909, 1910, 1907, + 1912, 1911, 1913, 1911, 1914, 1911, 1915, 1915, 1917, 1916, + 1918, 1916, 1919, 1916, 1921, 1920, 1920, 1922, 1922, 1924, + 1923, 1925, 1923, 1927, 1926, 1926, 1928, 1928, 1928, 1929, + 1929, 1929, 1929, 1930, 1930, 1930, 1930, 1931, 1931, 1931, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1932, - 1932, 1932, 1932, 1932, 1933, 1933, 1933, 1933, 1934, 1935, - 1936, 1936, 1937, 1937, 1937, 1937, 1938, 1938, 1939, 1939, - 1939, 1940, 1940, 1940, 1940, 1940, 1942, 1941, 1943, 1943, - 1943, 1944, 1944, 1945, 1945, 1946, 1947, 1947, 1947, 1947, - 1947, 1949, 1948, 1950, 1950, 1951, 1950, 1952, 1952, 1953, - 1953, 1954, 1954, 1954, 1954, 1955, 1954, 1956, 1956, 1956, - 1956, 1956, 1957, 1958, 1958, 1958, 1958, 1958, 1958, 1958, - 1958, 1959, 1959, 1960, 1961, 1961, 1961, 1961, 1961, 1961, - 1961, 1962, 1962, 1963, 1963, 1964, 1964, 1965, 1966, 1966, - 1967, 1967, 1968, 1968, 1969, 1969, 1970, 1970, 1972, 1971, - 1973, 1971, 1974, 1971, 1975, 1971, 1971, 1971, 1971, 1971, + 1932, 1932, 1932, 1932, 1932, 1933, 1933, 1933, 1933, 1934, + 1935, 1936, 1936, 1937, 1937, 1937, 1937, 1938, 1938, 1939, + 1939, 1939, 1940, 1940, 1940, 1940, 1940, 1942, 1941, 1943, + 1943, 1943, 1944, 1944, 1945, 1945, 1946, 1947, 1947, 1947, + 1947, 1947, 1949, 1948, 1950, 1950, 1951, 1950, 1952, 1952, + 1953, 1953, 1954, 1954, 1954, 1954, 1955, 1954, 1956, 1956, + 1956, 1956, 1956, 1957, 1958, 1958, 1958, 1958, 1958, 1958, + 1958, 1958, 1959, 1959, 1960, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1962, 1962, 1963, 1963, 1964, 1964, 1965, 1966, + 1966, 1967, 1967, 1968, 1968, 1969, 1969, 1970, 1970, 1972, + 1971, 1973, 1971, 1974, 1971, 1975, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971, - 1971, 1971, 1971, 1976, 1976, 1977, 1977, 1978, 1978, 1978, - 1979, 1979, 1979, 1979, 1980, 1980, 1981, 1981, 1982, 1982, - 1983, 1983, 1984, 1984, 1985, 1985, 1985, 1985, 1985, 1986, - 1986, 1987, 1987, 1988, 1989, 1989, 1989, 1989, 1989, 1990, - 1990, 1990, 1990, 1990, 1991, 1991, 1992, 1992, 1993, 1993, - 1994, 1994, 1995, 1995, 1996, 1996, 1998, 1997, 1999, 2000, - 2000, 2001, 2001, 2002, 2002, 2002, 2003, 2003, 2003, 2004, - 2005, 2005, 2005, 2006, 2007, 2008, 2008, 2008, 2009, 2009, - 2011, 2010, 2013, 2012, 2015, 2014, 2016, 2016, 2017, 2018, - 2018, 2018, 2019, 2019, 2021, 2020, 2022, 2023, 2023, 2024, - 2024, 2025, 2025, 2025, 2026, 2027, 2028, 2029, 2029, 2030, - 2030, 2031, 2031, 2031, 2031, 2031, 2031, 2031, 2031, 2031, - 2032, 2032, 2033, 2034, 2035, 2035, 2035, 2036, 2036, 2037, - 2037, 2038, 2038, 2039, 2039, 2041, 2040, 2042, 2042, 2042, - 2042, 2042, 2042, 2042, 2043, 2043, 2043, 2043, 2044, 2044, - 2045, 2045, 2047, 2048, 2049, 2050, 2051, 2046, 2052, 2054, - 2053, 2056, 2057, 2055, 2059, 2060, 2058, 2061, 2062, 2063, - 2063, 2064, 2064, 2065, 2065, 2065, 2065, 2065, 2065, 2066, - 2066, 2067, 2067, 2067, 2068, 2068, 2068, 2069, 2069, 2069, - 2070, 2070, 2071, 2072, 2071, 2073, 2073, 2074, 2074, 2075, - 2075, 2076 + 1971, 1971, 1971, 1971, 1976, 1976, 1977, 1977, 1978, 1978, + 1978, 1979, 1979, 1979, 1979, 1980, 1980, 1981, 1981, 1982, + 1982, 1983, 1983, 1984, 1984, 1985, 1985, 1985, 1985, 1985, + 1986, 1986, 1987, 1987, 1988, 1989, 1989, 1989, 1989, 1989, + 1990, 1990, 1990, 1990, 1990, 1991, 1991, 1992, 1992, 1993, + 1993, 1994, 1994, 1995, 1995, 1996, 1996, 1998, 1997, 1999, + 2000, 2000, 2001, 2001, 2002, 2002, 2002, 2003, 2003, 2003, + 2004, 2005, 2005, 2005, 2006, 2007, 2008, 2008, 2008, 2009, + 2009, 2011, 2010, 2013, 2012, 2015, 2014, 2016, 2016, 2017, + 2018, 2018, 2018, 2019, 2019, 2021, 2020, 2022, 2023, 2023, + 2024, 2024, 2025, 2025, 2025, 2026, 2027, 2028, 2029, 2029, + 2030, 2030, 2031, 2031, 2031, 2031, 2031, 2031, 2031, 2031, + 2031, 2032, 2032, 2033, 2034, 2035, 2035, 2035, 2036, 2036, + 2037, 2037, 2038, 2038, 2039, 2039, 2041, 2040, 2042, 2042, + 2042, 2042, 2042, 2042, 2042, 2043, 2043, 2043, 2043, 2044, + 2044, 2045, 2045, 2047, 2048, 2049, 2050, 2051, 2046, 2052, + 2054, 2053, 2056, 2057, 2055, 2059, 2060, 2058, 2061, 2062, + 2063, 2063, 2064, 2064, 2065, 2065, 2065, 2065, 2065, 2065, + 2066, 2066, 2067, 2067, 2067, 2068, 2068, 2068, 2069, 2069, + 2069, 2070, 2070, 2071, 2072, 2071, 2073, 2073, 2074, 2074, + 2075, 2075, 2076 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -23571,7 +23384,7 @@ 5, 3, 0, 5, 0, 5, 1, 0, 1, 0, 4, 0, 0, 3, 0, 6, 6, 0, 4, 2, 2, 0, 3, 2, 0, 3, 0, 1, 0, 3, - 0, 1, 1, 3, 1, 4, 5, 5, 0, 2, + 0, 1, 1, 3, 1, 4, 3, 3, 0, 2, 0, 0, 7, 0, 10, 1, 3, 1, 1, 0, 2, 0, 3, 1, 3, 0, 6, 1, 0, 0, 4, 0, 3, 1, 1, 1, 1, 1, 1, 3, @@ -23600,175 +23413,174 @@ 3, 3, 0, 1, 2, 2, 3, 3, 2, 3, 3, 4, 3, 3, 3, 3, 2, 3, 3, 3, 2, 2, 3, 1, 2, 2, 2, 2, 3, 3, - 3, 2, 2, 3, 3, 2, 3, 2, 2, 2, - 2, 2, 5, 5, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 1, 2, 1, 2, - 3, 2, 1, 1, 1, 1, 1, 1, 1, 2, - 0, 3, 0, 1, 1, 5, 0, 1, 1, 1, - 2, 2, 3, 3, 3, 3, 0, 1, 0, 1, - 0, 1, 0, 1, 0, 1, 2, 1, 1, 2, - 4, 1, 3, 2, 1, 0, 2, 0, 1, 2, - 2, 2, 2, 2, 1, 1, 3, 3, 3, 3, - 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, - 1, 0, 2, 1, 1, 1, 1, 1, 0, 2, - 1, 1, 0, 1, 2, 1, 1, 0, 1, 1, - 2, 1, 2, 0, 1, 0, 4, 1, 1, 1, - 0, 1, 2, 1, 1, 2, 1, 3, 3, 1, - 1, 0, 2, 0, 1, 5, 0, 3, 3, 1, - 0, 2, 2, 2, 0, 3, 3, 6, 6, 1, - 1, 2, 2, 2, 2, 2, 1, 1, 0, 1, - 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, - 1, 0, 1, 1, 2, 1, 2, 1, 2, 0, - 2, 0, 2, 2, 2, 2, 3, 2, 3, 3, - 3, 3, 1, 1, 1, 1, 3, 1, 1, 1, - 4, 2, 1, 4, 0, 1, 1, 3, 0, 0, - 8, 0, 5, 7, 0, 5, 0, 5, 0, 10, - 0, 9, 0, 11, 3, 4, 3, 3, 0, 8, - 7, 0, 0, 7, 0, 3, 1, 4, 0, 3, - 0, 2, 0, 1, 0, 2, 2, 2, 2, 1, - 1, 1, 4, 4, 0, 6, 4, 0, 5, 0, - 6, 4, 3, 1, 7, 2, 1, 1, 0, 6, - 0, 3, 2, 0, 5, 0, 0, 6, 1, 3, - 1, 1, 3, 3, 3, 2, 2, 4, 2, 7, - 6, 5, 5, 4, 5, 4, 4, 2, 2, 7, - 6, 3, 5, 1, 1, 1, 1, 1, 3, 3, - 3, 0, 1, 1, 2, 2, 3, 3, 3, 3, - 0, 1, 0, 1, 0, 2, 0, 1, 2, 1, - 1, 1, 0, 1, 1, 0, 2, 1, 0, 1, - 1, 1, 0, 6, 0, 5, 4, 4, 3, 0, - 1, 1, 3, 3, 2, 2, 0, 2, 1, 3, - 0, 1, 1, 0, 2, 4, 1, 3, 0, 5, - 0, 1, 1, 3, 0, 4, 0, 4, 0, 1, - 1, 2, 1, 1, 1, 0, 2, 0, 5, 1, - 3, 2, 0, 3, 1, 4, 1, 0, 4, 1, - 0, 4, 0, 1, 3, 0, 1, 3, 1, 1, - 2, 6, 3, 0, 4, 0, 3, 0, 1, 1, - 2, 1, 1, 1, 1, 1, 2, 0, 2, 0, - 6, 0, 1, 1, 0, 4, 4, 3, 5, 1, - 3, 4, 0, 6, 1, 1, 1, 3, 2, 3, - 1, 1, 0, 6, 1, 1, 1, 3, 3, 4, - 0, 6, 0, 2, 0, 4, 0, 2, 2, 3, - 1, 2, 2, 3, 4, 4, 3, 1, 2, 2, - 3, 4, 4, 0, 3, 0, 5, 3, 4, 2, - 0, 2, 3, 4, 2, 0, 2, 3, 0, 2, - 0, 7, 3, 0, 4, 2, 0, 4, 2, 2, - 0, 4, 2, 3, 1, 1, 1, 1, 1, 1, - 2, 1, 2, 3, 1, 4, 2, 2, 3, 0, - 3, 5, 0, 1, 2, 1, 1, 0, 1, 0, - 1, 1, 2, 1, 2, 0, 2, 3, 1, 4, - 4, 2, 1, 1, 1, 1, 0, 3, 5, 3, - 1, 1, 3, 4, 0, 0, 0, 0, 0, 0, - 2, 2, 1, 1, 0, 2, 3, 0, 2, 3, - 0, 2, 3, 3, 3, 2, 3, 4, 3, 4, - 3, 4, 1, 3, 4, 3, 3, 6, 1, 5, - 6, 5, 7, 6, 8, 5, 6, 4, 4, 5, - 3, 4, 1, 3, 3, 3, 3, 3, 3, 3, - 5, 5, 5, 6, 6, 3, 3, 3, 3, 3, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, - 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, - 2, 2, 0, 3, 1, 4, 1, 3, 1, 1, - 1, 1, 3, 1, 4, 4, 4, 3, 3, 3, - 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 6, 4, 4, 7, 6, 3, 4, 6, - 6, 4, 4, 4, 4, 4, 4, 6, 8, 10, - 1, 1, 3, 1, 3, 1, 2, 2, 2, 2, - 2, 1, 3, 4, 6, 4, 6, 2, 2, 4, - 4, 4, 10, 6, 8, 6, 4, 4, 6, 4, - 3, 4, 1, 4, 3, 4, 6, 8, 2, 2, - 8, 8, 6, 8, 6, 6, 6, 6, 2, 6, - 6, 8, 8, 6, 8, 6, 2, 8, 8, 4, - 2, 2, 2, 6, 6, 4, 4, 8, 4, 4, - 4, 4, 3, 8, 6, 8, 4, 6, 4, 6, - 4, 4, 4, 6, 8, 4, 3, 6, 4, 6, - 5, 8, 7, 10, 1, 6, 4, 4, 4, 4, - 4, 6, 4, 6, 0, 5, 6, 2, 3, 0, - 4, 0, 3, 0, 1, 1, 3, 4, 4, 5, - 4, 4, 4, 5, 4, 0, 0, 7, 4, 5, - 4, 5, 4, 4, 4, 4, 4, 5, 0, 9, - 3, 3, 1, 1, 3, 3, 3, 3, 3, 4, - 4, 4, 6, 4, 6, 4, 6, 5, 0, 7, - 4, 4, 4, 4, 1, 0, 3, 3, 1, 3, - 5, 0, 1, 0, 2, 0, 3, 4, 2, 0, - 1, 1, 2, 1, 3, 3, 0, 3, 2, 0, - 4, 0, 4, 0, 4, 2, 1, 1, 1, 1, - 2, 1, 2, 2, 1, 2, 1, 2, 2, 0, - 1, 1, 3, 1, 3, 1, 3, 4, 5, 1, - 3, 3, 3, 1, 1, 1, 1, 4, 1, 3, - 3, 0, 6, 0, 8, 4, 0, 8, 0, 10, - 6, 0, 8, 0, 10, 6, 1, 2, 1, 1, - 2, 0, 1, 5, 1, 1, 0, 6, 6, 9, - 1, 2, 0, 4, 2, 3, 3, 1, 1, 0, - 3, 2, 1, 0, 3, 2, 1, 1, 3, 0, - 3, 0, 0, 5, 0, 1, 0, 0, 1, 0, - 2, 3, 3, 1, 1, 0, 7, 0, 7, 1, - 2, 0, 0, 2, 0, 2, 0, 1, 1, 1, - 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 3, 2, 2, 3, 3, 2, 3, 2, 2, + 2, 2, 2, 5, 5, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, + 2, 3, 2, 1, 1, 1, 1, 1, 1, 1, + 2, 0, 3, 0, 1, 1, 5, 0, 1, 1, + 1, 2, 2, 3, 3, 3, 3, 0, 1, 0, + 1, 0, 1, 0, 1, 0, 1, 2, 1, 1, + 2, 4, 1, 3, 2, 1, 0, 2, 0, 1, + 2, 2, 2, 2, 2, 1, 1, 3, 3, 3, + 3, 2, 1, 2, 2, 2, 2, 1, 1, 1, + 1, 1, 0, 2, 1, 1, 1, 1, 1, 0, + 2, 1, 1, 0, 1, 2, 1, 1, 0, 1, + 1, 2, 1, 2, 0, 1, 0, 4, 1, 1, + 1, 0, 1, 2, 1, 1, 2, 1, 3, 3, + 1, 1, 0, 2, 0, 1, 5, 0, 3, 3, + 1, 0, 2, 2, 2, 0, 3, 3, 6, 6, + 1, 1, 2, 2, 2, 2, 2, 1, 1, 0, + 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, + 0, 1, 0, 1, 1, 2, 1, 2, 1, 2, + 0, 2, 0, 2, 2, 2, 2, 3, 2, 3, + 3, 3, 3, 1, 1, 1, 1, 3, 1, 1, + 1, 4, 2, 1, 4, 0, 1, 1, 3, 0, + 0, 8, 0, 5, 7, 0, 5, 0, 5, 0, + 10, 0, 9, 0, 11, 3, 4, 3, 3, 0, + 8, 7, 0, 0, 7, 0, 3, 1, 4, 0, + 3, 0, 2, 0, 1, 0, 2, 2, 2, 2, + 1, 1, 1, 4, 4, 0, 6, 4, 0, 5, + 0, 6, 4, 3, 1, 7, 2, 1, 1, 0, + 6, 0, 3, 2, 0, 5, 0, 0, 6, 1, + 3, 1, 1, 3, 3, 3, 2, 2, 4, 2, + 7, 6, 5, 5, 4, 5, 4, 4, 2, 2, + 7, 6, 3, 5, 1, 1, 1, 1, 1, 3, + 3, 3, 0, 1, 1, 2, 2, 3, 3, 3, + 3, 0, 1, 0, 1, 0, 2, 0, 1, 2, + 1, 1, 1, 0, 1, 1, 0, 2, 1, 0, + 1, 1, 1, 0, 6, 0, 5, 4, 4, 3, + 0, 1, 1, 3, 3, 2, 2, 0, 2, 1, + 3, 0, 1, 1, 0, 2, 4, 1, 3, 0, + 5, 0, 1, 1, 3, 0, 4, 0, 4, 0, + 1, 1, 2, 1, 1, 1, 0, 2, 0, 5, + 1, 3, 2, 0, 3, 1, 4, 1, 0, 4, + 1, 0, 4, 0, 1, 3, 0, 1, 3, 1, + 1, 2, 6, 3, 0, 4, 0, 3, 0, 1, + 1, 2, 1, 1, 1, 1, 1, 2, 0, 2, + 0, 6, 0, 1, 1, 0, 4, 4, 3, 5, + 1, 3, 4, 0, 6, 1, 1, 1, 3, 2, + 3, 1, 1, 0, 6, 1, 1, 1, 3, 3, + 4, 0, 6, 0, 2, 0, 4, 0, 2, 2, + 3, 1, 2, 2, 3, 4, 4, 3, 1, 2, + 2, 3, 4, 4, 0, 3, 0, 5, 3, 4, + 2, 0, 2, 3, 4, 2, 0, 2, 3, 0, + 2, 0, 7, 3, 0, 4, 2, 0, 4, 2, + 2, 0, 4, 2, 3, 1, 1, 1, 1, 1, + 1, 2, 1, 2, 3, 1, 4, 2, 2, 3, + 0, 3, 5, 0, 1, 2, 1, 1, 0, 1, + 0, 1, 1, 2, 1, 2, 0, 2, 3, 1, + 4, 4, 2, 1, 1, 1, 1, 0, 3, 5, + 3, 1, 1, 3, 4, 0, 0, 0, 0, 0, + 0, 2, 2, 1, 1, 0, 2, 3, 0, 2, + 3, 0, 2, 3, 3, 3, 2, 3, 4, 3, + 4, 3, 4, 1, 3, 4, 3, 3, 6, 1, + 5, 6, 5, 7, 6, 8, 5, 6, 4, 4, + 5, 3, 4, 1, 3, 3, 3, 3, 3, 3, + 3, 5, 5, 5, 6, 6, 3, 3, 3, 3, + 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 1, 1, 0, 2, 0, 1, 0, 0, 3, 0, - 0, 3, 2, 0, 0, 4, 4, 2, 0, 1, - 1, 0, 2, 3, 1, 3, 0, 7, 0, 1, - 0, 3, 0, 3, 0, 3, 1, 1, 1, 4, - 2, 2, 2, 1, 2, 2, 0, 3, 2, 2, - 3, 3, 3, 3, 1, 2, 0, 1, 0, 4, - 4, 2, 0, 1, 1, 0, 1, 1, 2, 5, - 4, 1, 3, 3, 1, 3, 1, 1, 1, 1, - 1, 0, 2, 3, 4, 0, 1, 2, 2, 2, - 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, - 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, + 2, 1, 1, 1, 1, 2, 1, 1, 1, 2, + 1, 2, 2, 0, 3, 1, 4, 1, 3, 1, + 1, 1, 1, 3, 1, 4, 4, 4, 3, 3, + 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 6, 4, 4, 7, 6, 3, 4, + 6, 6, 4, 4, 4, 4, 4, 4, 6, 8, + 10, 1, 1, 3, 1, 3, 1, 2, 2, 2, + 2, 2, 1, 3, 4, 6, 4, 6, 2, 2, + 4, 4, 4, 10, 6, 8, 6, 4, 4, 6, + 4, 3, 4, 1, 4, 3, 4, 6, 8, 2, + 2, 8, 8, 6, 8, 6, 6, 6, 6, 2, + 6, 6, 8, 8, 6, 8, 6, 2, 8, 8, + 4, 2, 2, 2, 6, 6, 4, 4, 8, 4, + 4, 4, 4, 3, 8, 6, 8, 4, 6, 4, + 6, 4, 4, 4, 6, 8, 4, 3, 6, 4, + 6, 5, 8, 7, 10, 1, 6, 4, 4, 4, + 4, 4, 6, 4, 6, 0, 5, 6, 2, 3, + 0, 4, 0, 3, 0, 1, 1, 3, 4, 4, + 5, 4, 4, 4, 5, 4, 0, 0, 7, 4, + 5, 4, 5, 4, 4, 4, 4, 4, 5, 0, + 9, 3, 3, 1, 1, 3, 3, 3, 3, 3, + 4, 4, 4, 6, 4, 6, 4, 6, 5, 0, + 7, 4, 4, 4, 4, 1, 0, 3, 3, 1, + 3, 5, 0, 1, 0, 2, 0, 3, 4, 2, + 0, 1, 1, 2, 1, 3, 3, 0, 3, 2, + 0, 4, 0, 4, 0, 4, 2, 1, 1, 1, + 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, + 0, 1, 1, 3, 1, 3, 1, 3, 4, 5, + 1, 3, 3, 3, 1, 1, 1, 1, 4, 1, + 3, 3, 0, 6, 0, 8, 4, 0, 8, 0, + 10, 6, 0, 8, 0, 10, 6, 1, 2, 1, + 1, 2, 0, 1, 5, 1, 1, 0, 6, 6, + 9, 1, 2, 0, 4, 2, 3, 3, 1, 1, + 0, 3, 2, 1, 0, 3, 2, 1, 1, 3, + 0, 3, 0, 0, 5, 0, 1, 0, 0, 1, + 0, 2, 3, 3, 1, 1, 0, 7, 0, 7, + 1, 2, 0, 0, 2, 0, 2, 0, 1, 1, + 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 6, 0, 1, 3, 1, 3, 0, - 2, 3, 1, 1, 2, 1, 3, 2, 0, 0, - 7, 2, 1, 0, 3, 0, 8, 7, 4, 4, - 5, 6, 4, 4, 5, 5, 0, 6, 4, 4, - 5, 6, 4, 0, 6, 1, 3, 1, 2, 1, - 3, 1, 0, 2, 0, 2, 0, 1, 0, 0, - 8, 0, 0, 6, 0, 1, 1, 1, 1, 1, - 2, 1, 1, 1, 3, 4, 0, 3, 3, 1, - 2, 2, 1, 3, 1, 3, 1, 3, 1, 1, - 0, 1, 1, 1, 1, 1, 0, 4, 0, 4, - 0, 1, 0, 1, 3, 1, 5, 3, 1, 1, - 1, 0, 0, 0, 7, 0, 0, 11, 3, 1, - 3, 3, 1, 3, 0, 1, 0, 3, 0, 3, - 2, 3, 3, 5, 0, 5, 0, 6, 0, 2, - 1, 3, 2, 4, 0, 2, 0, 2, 1, 1, - 1, 0, 0, 7, 0, 2, 2, 0, 1, 0, - 1, 1, 3, 1, 1, 2, 2, 2, 1, 1, - 1, 1, 0, 3, 0, 3, 2, 4, 4, 3, - 4, 4, 1, 3, 3, 3, 3, 6, 2, 2, - 0, 6, 0, 7, 5, 2, 1, 1, 1, 5, - 5, 2, 2, 1, 4, 3, 2, 3, 2, 2, - 1, 4, 4, 3, 3, 3, 2, 3, 2, 3, - 3, 3, 3, 4, 3, 2, 3, 3, 3, 3, - 4, 3, 3, 4, 3, 3, 3, 1, 1, 1, - 1, 1, 0, 1, 0, 2, 0, 1, 1, 1, - 0, 2, 0, 2, 0, 3, 3, 0, 4, 0, - 4, 1, 1, 1, 1, 1, 1, 1, 3, 1, - 1, 1, 0, 3, 0, 1, 1, 0, 4, 0, - 4, 1, 0, 1, 4, 0, 3, 3, 1, 2, - 2, 2, 2, 3, 3, 2, 1, 1, 1, 1, - 2, 1, 1, 1, 2, 0, 1, 0, 5, 0, - 1, 3, 1, 0, 3, 0, 3, 3, 1, 0, - 4, 0, 3, 2, 0, 1, 0, 2, 0, 3, - 3, 2, 2, 0, 5, 0, 1, 1, 0, 1, - 1, 2, 1, 2, 1, 2, 0, 0, 0, 0, - 22, 1, 1, 0, 1, 0, 1, 1, 0, 1, - 1, 0, 2, 2, 1, 3, 4, 3, 3, 0, - 2, 2, 1, 3, 3, 0, 4, 0, 3, 1, - 1, 0, 3, 2, 3, 1, 1, 2, 0, 2, - 3, 1, 5, 1, 1, 2, 2, 1, 1, 1, - 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, - 1, 1, 2, 2, 2, 0, 1, 0, 4, 0, - 1, 1, 3, 0, 9, 0, 3, 1, 3, 1, - 1, 1, 3, 5, 3, 5, 1, 1, 3, 4, - 5, 4, 1, 3, 4, 4, 5, 1, 5, 3, - 2, 1, 3, 2, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 1, 1, 0, 2, 0, 1, 0, 0, 3, + 0, 0, 3, 2, 0, 0, 4, 4, 2, 0, + 1, 1, 0, 2, 3, 1, 3, 0, 7, 0, + 1, 0, 3, 0, 3, 0, 3, 1, 1, 1, + 4, 2, 2, 2, 1, 2, 2, 0, 3, 2, + 2, 3, 3, 3, 3, 1, 2, 0, 1, 0, + 4, 4, 2, 0, 1, 1, 0, 1, 1, 2, + 5, 4, 1, 3, 3, 1, 3, 1, 1, 1, + 1, 1, 0, 2, 3, 4, 0, 1, 2, 2, + 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, + 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 6, 0, 1, 3, 1, 3, + 0, 2, 3, 1, 1, 2, 1, 3, 2, 0, + 0, 7, 2, 1, 0, 3, 0, 8, 7, 4, + 4, 5, 6, 4, 4, 5, 5, 0, 6, 4, + 4, 5, 6, 4, 0, 6, 1, 3, 1, 2, + 1, 3, 1, 0, 2, 0, 2, 0, 1, 0, + 0, 8, 0, 0, 6, 0, 1, 1, 1, 1, + 1, 2, 1, 1, 1, 3, 4, 0, 3, 3, + 1, 2, 2, 1, 3, 1, 3, 1, 3, 1, + 1, 0, 1, 1, 1, 1, 1, 0, 4, 0, + 4, 0, 1, 0, 1, 3, 1, 5, 3, 1, + 1, 1, 0, 0, 0, 7, 0, 0, 11, 3, + 1, 3, 3, 1, 3, 0, 1, 0, 3, 0, + 3, 2, 3, 3, 5, 0, 5, 0, 6, 0, + 2, 1, 3, 2, 4, 0, 2, 0, 2, 1, + 1, 1, 0, 0, 7, 0, 2, 2, 0, 1, + 0, 1, 1, 3, 1, 1, 2, 2, 2, 1, + 1, 1, 1, 0, 3, 0, 3, 2, 4, 4, + 3, 4, 4, 1, 3, 3, 3, 3, 6, 2, + 2, 0, 6, 0, 7, 5, 2, 1, 1, 1, + 5, 5, 2, 2, 1, 4, 3, 2, 3, 2, + 2, 1, 4, 4, 3, 3, 3, 2, 3, 2, + 3, 3, 3, 3, 4, 3, 2, 3, 3, 3, + 3, 4, 3, 3, 4, 3, 3, 3, 1, 1, + 1, 1, 1, 0, 1, 0, 2, 0, 1, 1, + 1, 0, 2, 0, 2, 0, 3, 3, 0, 4, + 0, 4, 1, 1, 1, 1, 1, 1, 1, 3, + 1, 1, 1, 0, 3, 0, 1, 1, 0, 4, + 0, 4, 1, 0, 1, 4, 0, 3, 3, 1, + 2, 2, 2, 2, 3, 3, 2, 1, 1, 1, + 1, 2, 1, 1, 1, 2, 0, 1, 0, 5, + 0, 1, 3, 1, 0, 3, 0, 3, 3, 1, + 0, 4, 0, 3, 2, 0, 1, 0, 2, 0, + 3, 3, 2, 2, 0, 5, 0, 1, 1, 0, + 1, 1, 2, 1, 2, 1, 2, 0, 0, 0, + 0, 22, 1, 1, 0, 1, 0, 1, 1, 0, + 1, 1, 0, 2, 2, 1, 3, 4, 3, 3, + 0, 2, 2, 1, 3, 3, 0, 4, 0, 3, + 1, 1, 0, 3, 2, 3, 1, 1, 2, 0, + 2, 3, 1, 5, 1, 1, 2, 2, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, + 1, 1, 1, 2, 2, 2, 0, 1, 0, 4, + 0, 1, 1, 3, 0, 9, 0, 3, 1, 3, + 1, 1, 1, 3, 5, 3, 5, 1, 1, 3, + 4, 5, 4, 1, 3, 4, 4, 5, 1, 5, + 3, 2, 1, 3, 2, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 3, 1, 1, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 3, 1, 1, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -23816,46 +23628,47 @@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 3, 0, 0, 7, 0, - 4, 0, 6, 0, 7, 1, 3, 0, 3, 0, - 3, 0, 3, 0, 3, 2, 0, 2, 0, 2, - 0, 4, 0, 3, 1, 1, 1, 1, 0, 1, - 1, 1, 0, 2, 2, 2, 3, 5, 5, 3, - 5, 5, 4, 6, 8, 8, 2, 3, 3, 3, - 5, 2, 3, 3, 1, 1, 3, 3, 1, 3, - 2, 2, 2, 2, 2, 1, 1, 3, 1, 4, - 4, 1, 1, 1, 1, 1, 0, 5, 0, 2, - 1, 1, 1, 1, 3, 3, 1, 1, 2, 2, - 2, 0, 3, 4, 3, 0, 7, 1, 2, 1, - 1, 1, 1, 1, 1, 0, 5, 1, 1, 1, - 1, 1, 3, 6, 6, 6, 6, 7, 7, 5, - 3, 4, 1, 3, 8, 8, 8, 8, 9, 6, - 4, 0, 3, 0, 3, 1, 3, 2, 1, 1, - 0, 1, 1, 2, 0, 1, 1, 3, 0, 3, - 0, 3, 0, 3, 0, 3, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, - 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 1, 2, 2, 0, 1, 3, 1, 2, 2, 2, - 1, 3, 3, 1, 1, 3, 1, 3, 1, 3, - 1, 1, 1, 1, 4, 5, 4, 6, 1, 0, - 3, 3, 1, 1, 0, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 0, 2, 0, 2, - 0, 3, 2, 1, 2, 1, 0, 3, 1, 0, - 1, 0, 1, 0, 3, 2, 0, 1, 2, 4, - 4, 5, 4, 2, 3, 1, 1, 1, 0, 1, - 0, 4, 0, 4, 0, 2, 2, 1, 2, 0, - 1, 1, 1, 1, 0, 3, 3, 3, 4, 2, - 3, 1, 1, 2, 4, 0, 0, 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 3, 3, 3, 3, 0, 1, 3, - 3, 0, 3, 1, 3, 0, 4, 3, 1, 2, - 2, 3, 4, 4, 0, 3, 4, 4, 1, 1, - 0, 2, 0, 0, 0, 0, 0, 19, 6, 0, - 3, 0, 0, 9, 0, 0, 8, 2, 2, 0, - 1, 1, 1, 4, 4, 3, 4, 3, 3, 0, - 3, 1, 3, 5, 1, 1, 1, 0, 1, 1, - 0, 2, 0, 0, 3, 0, 2, 5, 3, 3, - 3, 1 + 1, 1, 1, 1, 1, 0, 3, 0, 0, 7, + 0, 4, 0, 6, 0, 7, 1, 3, 0, 3, + 0, 3, 0, 3, 0, 3, 2, 0, 2, 0, + 2, 0, 4, 0, 3, 1, 1, 1, 1, 0, + 1, 1, 1, 0, 2, 2, 2, 3, 5, 5, + 3, 5, 5, 4, 6, 8, 8, 2, 3, 3, + 3, 5, 2, 3, 3, 1, 1, 3, 3, 1, + 3, 2, 2, 2, 2, 2, 1, 1, 3, 1, + 4, 4, 1, 1, 1, 1, 1, 0, 5, 0, + 2, 1, 1, 1, 1, 3, 3, 1, 1, 2, + 2, 2, 0, 3, 4, 3, 0, 7, 1, 2, + 1, 1, 1, 1, 1, 1, 0, 5, 1, 1, + 1, 1, 1, 3, 6, 6, 6, 6, 7, 7, + 5, 3, 4, 1, 3, 8, 8, 8, 8, 9, + 6, 4, 0, 3, 0, 3, 1, 3, 2, 1, + 1, 0, 1, 1, 2, 0, 1, 1, 3, 0, + 3, 0, 3, 0, 3, 0, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 2, 2, 0, 1, 3, 1, 2, 2, + 2, 1, 3, 3, 1, 1, 3, 1, 3, 1, + 3, 1, 1, 1, 1, 4, 5, 4, 6, 1, + 0, 3, 3, 1, 1, 0, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 0, 2, 0, + 2, 0, 3, 2, 1, 2, 1, 0, 3, 1, + 0, 1, 0, 1, 0, 3, 2, 0, 1, 2, + 4, 4, 5, 4, 2, 3, 1, 1, 1, 0, + 1, 0, 4, 0, 4, 0, 2, 2, 1, 2, + 0, 1, 1, 1, 1, 0, 3, 3, 3, 4, + 2, 3, 1, 1, 2, 4, 0, 0, 0, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 3, 3, 3, 3, 0, 1, + 3, 3, 0, 3, 1, 3, 0, 4, 3, 1, + 2, 2, 3, 4, 4, 0, 3, 4, 4, 1, + 1, 0, 2, 0, 0, 0, 0, 0, 19, 6, + 0, 3, 0, 0, 9, 0, 0, 8, 2, 2, + 0, 1, 1, 1, 4, 4, 3, 4, 3, 3, + 0, 3, 1, 3, 5, 1, 1, 1, 0, 1, + 1, 0, 2, 0, 0, 3, 0, 2, 5, 3, + 3, 3, 1 }; @@ -24547,7 +24360,7 @@ thd->lex->sql_command= SQLCOM_EMPTY_QUERY; YYLIP->found_semicolon= NULL; } -#line 24551 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24364 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3: @@ -24574,7 +24387,7 @@ lip->found_semicolon= NULL; } } -#line 24578 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24391 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 5: @@ -24583,7 +24396,7 @@ /* Single query, not terminated. */ YYLIP->found_semicolon= NULL; } -#line 24587 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24400 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 69: @@ -24593,7 +24406,7 @@ lex->sql_command= SQLCOM_DEALLOCATE_PREPARE; lex->prepared_stmt_name= (yyvsp[0].ident_sys); } -#line 24597 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24410 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 72: @@ -24606,13 +24419,13 @@ lex->sql_command= SQLCOM_PREPARE; lex->prepared_stmt_name= (yyvsp[-2].ident_sys); } -#line 24610 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24423 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 73: #line 1805 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->expr_allows_subselect= false; } -#line 24616 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24429 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 74: @@ -24621,7 +24434,7 @@ Lex->prepared_stmt_code= (yyvsp[0].item); Lex->expr_allows_subselect= true; } -#line 24625 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24438 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 75: @@ -24631,13 +24444,13 @@ lex->sql_command= SQLCOM_EXECUTE; lex->prepared_stmt_name= (yyvsp[0].ident_sys); } -#line 24635 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24448 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 76: #line 1821 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 24641 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24454 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 77: @@ -24648,19 +24461,19 @@ "EXECUTE IMMEDIATE")); Lex->sql_command= SQLCOM_EXECUTE_IMMEDIATE; } -#line 24652 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24465 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 78: #line 1830 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 24658 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24471 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 80: #line 1835 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->expr_allows_subselect= false; } -#line 24664 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24477 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 81: @@ -24671,7 +24484,7 @@ "EXECUTE..USING")); Lex->expr_allows_subselect= true; } -#line 24675 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24488 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 84: @@ -24681,7 +24494,7 @@ thd->mem_root))) MYSQL_YYABORT; } -#line 24685 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24498 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 85: @@ -24690,7 +24503,7 @@ if (unlikely(Lex->sphead)) my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "HELP")); } -#line 24694 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24507 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 86: @@ -24700,7 +24513,7 @@ lex->sql_command= SQLCOM_HELP; lex->help_arg= (yyvsp[0].lex_str).str; } -#line 24704 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24517 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 87: @@ -24708,13 +24521,13 @@ { Lex->sql_command = SQLCOM_CHANGE_MASTER; } -#line 24712 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24525 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 88: #line 1883 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 24718 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24531 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 91: @@ -24722,7 +24535,7 @@ { Lex->mi.host = (yyvsp[0].lex_str).str; } -#line 24726 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24539 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 92: @@ -24730,7 +24543,7 @@ { Lex->mi.user = (yyvsp[0].lex_str).str; } -#line 24734 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24547 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 93: @@ -24738,7 +24551,7 @@ { Lex->mi.password = (yyvsp[0].lex_str).str; } -#line 24742 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24555 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 94: @@ -24746,7 +24559,7 @@ { Lex->mi.port = (yyvsp[0].ulong_num); } -#line 24750 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24563 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 95: @@ -24754,7 +24567,7 @@ { Lex->mi.connect_retry = (yyvsp[0].ulong_num); } -#line 24758 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24571 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 96: @@ -24768,7 +24581,7 @@ else Lex->mi.sql_delay = (yyvsp[0].ulong_num); } -#line 24772 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24585 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 97: @@ -24777,7 +24590,7 @@ Lex->mi.ssl= (yyvsp[0].ulong_num) ? LEX_MASTER_INFO::LEX_MI_ENABLE : LEX_MASTER_INFO::LEX_MI_DISABLE; } -#line 24781 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24594 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 98: @@ -24785,7 +24598,7 @@ { Lex->mi.ssl_ca= (yyvsp[0].lex_str).str; } -#line 24789 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24602 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 99: @@ -24793,7 +24606,7 @@ { Lex->mi.ssl_capath= (yyvsp[0].lex_str).str; } -#line 24797 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24610 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 100: @@ -24801,7 +24614,7 @@ { Lex->mi.ssl_cert= (yyvsp[0].lex_str).str; } -#line 24805 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24618 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 101: @@ -24809,7 +24622,7 @@ { Lex->mi.ssl_cipher= (yyvsp[0].lex_str).str; } -#line 24813 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24626 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 102: @@ -24817,7 +24630,7 @@ { Lex->mi.ssl_key= (yyvsp[0].lex_str).str; } -#line 24821 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24634 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 103: @@ -24826,7 +24639,7 @@ Lex->mi.ssl_verify_server_cert= (yyvsp[0].ulong_num) ? LEX_MASTER_INFO::LEX_MI_ENABLE : LEX_MASTER_INFO::LEX_MI_DISABLE; } -#line 24830 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24643 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 104: @@ -24834,7 +24647,7 @@ { Lex->mi.ssl_crl= (yyvsp[0].lex_str).str; } -#line 24838 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24651 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 105: @@ -24842,7 +24655,7 @@ { Lex->mi.ssl_crlpath= (yyvsp[0].lex_str).str; } -#line 24846 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24659 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 106: @@ -24874,7 +24687,7 @@ } Lex->mi.heartbeat_opt= LEX_MASTER_INFO::LEX_MI_ENABLE; } -#line 24878 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24691 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 107: @@ -24882,7 +24695,7 @@ { Lex->mi.repl_ignore_server_ids_opt= LEX_MASTER_INFO::LEX_MI_ENABLE; } -#line 24886 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24699 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 108: @@ -24890,7 +24703,7 @@ { Lex->mi.repl_do_domain_ids_opt= LEX_MASTER_INFO::LEX_MI_ENABLE; } -#line 24894 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24707 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 109: @@ -24898,7 +24711,7 @@ { Lex->mi.repl_ignore_domain_ids_opt= LEX_MASTER_INFO::LEX_MI_ENABLE; } -#line 24902 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24715 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 114: @@ -24906,7 +24719,7 @@ { insert_dynamic(&Lex->mi.repl_ignore_server_ids, (uchar*) &((yyvsp[0].ulong_num))); } -#line 24910 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24723 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 118: @@ -24914,7 +24727,7 @@ { insert_dynamic(&Lex->mi.repl_do_domain_ids, (uchar*) &((yyvsp[0].ulong_num))); } -#line 24918 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24731 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 122: @@ -24922,7 +24735,7 @@ { insert_dynamic(&Lex->mi.repl_ignore_domain_ids, (uchar*) &((yyvsp[0].ulong_num))); } -#line 24926 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24739 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 123: @@ -24930,7 +24743,7 @@ { Lex->mi.log_file_name = (yyvsp[0].lex_str).str; } -#line 24934 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24747 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 124: @@ -24949,7 +24762,7 @@ */ Lex->mi.pos= MY_MAX(BIN_LOG_HEADER_SIZE, (yyvsp[0].ulonglong_number)); } -#line 24953 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24766 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 125: @@ -24957,7 +24770,7 @@ { Lex->mi.relay_log_name = (yyvsp[0].lex_str).str; } -#line 24961 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24774 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 126: @@ -24967,7 +24780,7 @@ /* Adjust if < BIN_LOG_HEADER_SIZE (same comment as Lex->mi.pos) */ Lex->mi.relay_log_pos= MY_MAX(BIN_LOG_HEADER_SIZE, Lex->mi.relay_log_pos); } -#line 24971 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24784 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 127: @@ -24977,7 +24790,7 @@ my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MASTER_use_gtid")); Lex->mi.use_gtid_opt= LEX_MASTER_INFO::LEX_GTID_CURRENT_POS; } -#line 24981 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24794 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 128: @@ -24987,7 +24800,7 @@ my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MASTER_use_gtid")); Lex->mi.use_gtid_opt= LEX_MASTER_INFO::LEX_GTID_SLAVE_POS; } -#line 24991 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24804 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 129: @@ -24997,7 +24810,7 @@ my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MASTER_use_gtid")); Lex->mi.use_gtid_opt= LEX_MASTER_INFO::LEX_GTID_NO; } -#line 25001 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24814 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 130: @@ -25006,7 +24819,7 @@ LEX *lex= thd->lex; lex->mi.connection_name= null_clex_str; } -#line 25010 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24823 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 132: @@ -25018,7 +24831,7 @@ my_yyabort_error((ER_WRONG_ARGUMENTS, MYF(0), "MASTER_CONNECTION_NAME")); #endif } -#line 25022 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24835 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 133: @@ -25046,7 +24859,7 @@ lex->name= null_clex_str; lex->create_last_non_select_table= lex->last_table(); } -#line 25050 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24863 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 134: @@ -25056,7 +24869,7 @@ lex->current_select= &lex->select_lex; create_table_set_open_action_and_adjust_tables(lex); } -#line 25060 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24873 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 135: @@ -25089,7 +24902,7 @@ new (thd->mem_root) sequence_definition()))) MYSQL_YYABORT; } -#line 25093 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24906 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 136: @@ -25117,7 +24930,7 @@ lex->current_select= &lex->select_lex; create_table_set_open_action_and_adjust_tables(lex); } -#line 25121 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24934 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 137: @@ -25128,13 +24941,13 @@ if (unlikely(Lex->add_create_index((yyvsp[-6].key_type), &(yyvsp[-3].ident_sys), (yyvsp[-2].key_alg), (yyvsp[-7].object_ddl_options) | (yyvsp[-4].object_ddl_options)))) MYSQL_YYABORT; } -#line 25132 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24945 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 138: #line 2210 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 25138 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24951 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 139: @@ -25146,13 +24959,13 @@ (yyvsp[-6].object_ddl_options) | (yyvsp[-3].object_ddl_options)))) MYSQL_YYABORT; } -#line 25150 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24963 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 140: #line 2221 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 25156 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24969 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 141: @@ -25164,13 +24977,13 @@ (yyvsp[-6].object_ddl_options) | (yyvsp[-3].object_ddl_options)))) MYSQL_YYABORT; } -#line 25168 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24981 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 142: #line 2232 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 25174 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24987 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 143: @@ -25179,7 +24992,7 @@ Lex->create_info.default_table_charset= NULL; Lex->create_info.used_fields= 0; } -#line 25183 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 24996 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 144: @@ -25191,7 +25004,7 @@ MYSQL_YYABORT; lex->name= (yyvsp[-2].ident_sys); } -#line 25195 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25008 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 145: @@ -25202,13 +25015,13 @@ (yyvsp[0].table)))) MYSQL_YYABORT; } -#line 25206 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25019 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 146: #line 2255 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 25212 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25025 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 147: @@ -25217,73 +25030,73 @@ if (unlikely(Lex->add_create_view(thd, (yyvsp[-6].object_ddl_options) | (yyvsp[-1].object_ddl_options), (yyvsp[-5].num), (yyvsp[-3].view_suid), (yyvsp[0].table)))) MYSQL_YYABORT; } -#line 25221 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25034 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 148: #line 2263 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 25227 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25040 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 149: #line 2265 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->create_info.set((yyvsp[-2].object_ddl_options)); } -#line 25233 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25046 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 150: #line 2267 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 25239 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25052 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 151: #line 2269 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->create_info.set((yyvsp[-2].object_ddl_options)); } -#line 25245 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25058 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 152: #line 2271 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 25251 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25064 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 153: #line 2273 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->create_info.set((yyvsp[-2].object_ddl_options)); } -#line 25257 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25070 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 154: #line 2275 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 25263 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25076 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 155: #line 2277 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->create_info.set((yyvsp[-2].object_ddl_options)); } -#line 25269 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25082 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 156: #line 2279 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 25275 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25088 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 157: #line 2281 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->create_info.set((yyvsp[-2].object_ddl_options)); } -#line 25281 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25094 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 158: #line 2283 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 25287 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25100 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 159: @@ -25292,13 +25105,13 @@ Lex->create_info.set((yyvsp[-3].object_ddl_options)); Lex->udf.type= UDFTYPE_AGGREGATE; } -#line 25296 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25109 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 160: #line 2290 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 25302 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25115 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 161: @@ -25308,7 +25121,7 @@ (yyvsp[-6].object_ddl_options) | (yyvsp[-4].object_ddl_options)))) MYSQL_YYABORT; } -#line 25312 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25125 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 162: @@ -25318,7 +25131,7 @@ (yyvsp[-5].object_ddl_options) | (yyvsp[-3].object_ddl_options)))) MYSQL_YYABORT; } -#line 25322 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25135 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 163: @@ -25326,7 +25139,7 @@ { Lex->alter_tablespace_info->ts_cmd_type= CREATE_LOGFILE_GROUP; } -#line 25330 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25143 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 164: @@ -25334,19 +25147,19 @@ { Lex->alter_tablespace_info->ts_cmd_type= CREATE_TABLESPACE; } -#line 25338 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25151 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 165: #line 2313 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->set_command(SQLCOM_CREATE_SERVER, (yyvsp[0].object_ddl_options)); } -#line 25344 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25157 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 166: #line 2315 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 25350 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25163 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 167: @@ -25361,7 +25174,7 @@ MYSQL_YYABORT; pkg->set_chistics(Lex->sp_chistics); } -#line 25365 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25178 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 168: @@ -25370,7 +25183,7 @@ if (unlikely(Lex->create_package_finalize(thd, (yyvsp[-8].spname), (yyvsp[0].spname), (yyvsp[-5].simple_string), (yyvsp[-1].simple_string)))) MYSQL_YYABORT; } -#line 25374 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25187 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 169: @@ -25386,7 +25199,7 @@ pkg->set_chistics(Lex->sp_chistics); Lex->sp_block_init(thd); } -#line 25390 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25203 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 170: @@ -25395,7 +25208,7 @@ if (unlikely(Lex->sp_block_with_exceptions_finalize_declarations(thd))) MYSQL_YYABORT; } -#line 25399 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25212 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 171: @@ -25405,7 +25218,7 @@ if (unlikely(Lex->sp_block_finalize(thd, (yyvsp[-2].spblock)))) MYSQL_YYABORT; } -#line 25409 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25222 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 172: @@ -25414,7 +25227,7 @@ if (unlikely(Lex->create_package_finalize(thd, (yyvsp[-10].spname), (yyvsp[0].spname), (yyvsp[-7].simple_string), (yyvsp[-1].simple_string)))) MYSQL_YYABORT; } -#line 25418 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25231 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 173: @@ -25424,31 +25237,31 @@ MYSQL_YYABORT; (yyval.spblock_handlers).init(0); } -#line 25428 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25241 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 174: #line 2376 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spblock_handlers)= (yyvsp[-1].spblock_handlers); } -#line 25434 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25247 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 177: #line 2388 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spblock).join((yyvsp[-1].spblock), (yyvsp[0].spblock)); } -#line 25440 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25253 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 179: #line 2395 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spblock).join((yyvsp[-1].spblock), (yyvsp[0].spblock)); } -#line 25446 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25259 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 181: #line 2402 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spblock).join((yyvsp[-1].spblock), (yyvsp[0].spblock)); } -#line 25452 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25265 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 182: @@ -25459,7 +25272,7 @@ MYSQL_YYABORT; thd->m_parser_state->m_yacc.reset_before_substatement(); } -#line 25463 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25276 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 183: @@ -25477,7 +25290,7 @@ (yyvsp[-2].lex)->sphead->get_package()->m_current_routine= (yyvsp[-1].lex); (void) is_native_function_with_warn(thd, &(yyvsp[0].ident_sys)); } -#line 25481 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25294 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 184: @@ -25488,7 +25301,7 @@ thd->lex= (yyvsp[-6].lex); (yyval.lex)= (yyvsp[-5].lex); } -#line 25492 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25305 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 185: @@ -25505,7 +25318,7 @@ MYSQL_YYABORT; (yyvsp[-2].lex)->sphead->get_package()->m_current_routine= (yyvsp[-1].lex); } -#line 25509 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25322 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 186: @@ -25517,7 +25330,7 @@ (yyval.lex)= (yyvsp[-4].lex); } -#line 25521 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25334 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 187: @@ -25529,7 +25342,7 @@ pkg->m_current_routine= NULL; (yyval.spblock).init(); } -#line 25533 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25346 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 188: @@ -25541,13 +25354,13 @@ pkg->m_current_routine= NULL; (yyval.spblock).init(); } -#line 25545 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25358 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 189: #line 2486 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spblock).init(); } -#line 25551 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25364 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 190: @@ -25559,7 +25372,7 @@ sp->reset_thd_mem_root(thd); sp->set_body_start(thd, YYLIP->get_cpp_tok_start()); } -#line 25563 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25376 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 191: @@ -25575,7 +25388,7 @@ MYSQL_YYABORT; thd->lex= (yyvsp[-3].lex); } -#line 25579 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25392 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 192: @@ -25587,7 +25400,7 @@ sp->reset_thd_mem_root(thd); sp->set_body_start(thd, YYLIP->get_cpp_tok_start()); } -#line 25591 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25404 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 193: @@ -25598,7 +25411,7 @@ MYSQL_YYABORT; thd->lex= (yyvsp[-3].lex); } -#line 25602 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25415 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 199: @@ -25609,7 +25422,7 @@ MYSQL_YYABORT; pkg->m_current_routine= NULL; } -#line 25613 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25426 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 200: @@ -25620,25 +25433,25 @@ MYSQL_YYABORT; pkg->m_current_routine= NULL; } -#line 25624 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25437 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 201: #line 2564 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 25630 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25443 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 202: #line 2565 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->udf.type= UDFTYPE_FUNCTION; } -#line 25636 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25449 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 203: #line 2569 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 25642 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25455 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 207: @@ -25647,7 +25460,7 @@ Lex->create_info.seq_create_info->min_value= (yyvsp[0].longlong_number); Lex->create_info.seq_create_info->used_fields|= seq_field_used_min_value; } -#line 25651 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25464 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 208: @@ -25657,7 +25470,7 @@ my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MINVALUE")); Lex->create_info.seq_create_info->used_fields|= seq_field_used_min_value; } -#line 25661 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25474 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 209: @@ -25667,7 +25480,7 @@ my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MINVALUE")); Lex->create_info.seq_create_info->used_fields|= seq_field_used_min_value; } -#line 25671 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25484 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 210: @@ -25679,7 +25492,7 @@ Lex->create_info.seq_create_info->max_value= (yyvsp[0].longlong_number); Lex->create_info.seq_create_info->used_fields|= seq_field_used_max_value; } -#line 25683 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25496 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 211: @@ -25689,7 +25502,7 @@ my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MAXVALUE")); Lex->create_info.seq_create_info->used_fields|= seq_field_used_max_value; } -#line 25693 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25506 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 212: @@ -25699,7 +25512,7 @@ my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "MAXVALUE")); Lex->create_info.seq_create_info->used_fields|= seq_field_used_max_value; } -#line 25703 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25516 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 213: @@ -25711,7 +25524,7 @@ Lex->create_info.seq_create_info->start= (yyvsp[0].longlong_number); Lex->create_info.seq_create_info->used_fields|= seq_field_used_start; } -#line 25715 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25528 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 214: @@ -25723,7 +25536,7 @@ Lex->create_info.seq_create_info->increment= (yyvsp[0].longlong_number); Lex->create_info.seq_create_info->used_fields|= seq_field_used_increment; } -#line 25727 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25540 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 215: @@ -25735,7 +25548,7 @@ Lex->create_info.seq_create_info->cache= (yyvsp[0].longlong_number); Lex->create_info.seq_create_info->used_fields|= seq_field_used_cache; } -#line 25739 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25552 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 216: @@ -25747,7 +25560,7 @@ Lex->create_info.seq_create_info->cache= 0; Lex->create_info.seq_create_info->used_fields|= seq_field_used_cache; } -#line 25751 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25564 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 217: @@ -25759,7 +25572,7 @@ Lex->create_info.seq_create_info->cycle= 1; Lex->create_info.seq_create_info->used_fields|= seq_field_used_cycle; } -#line 25763 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25576 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 218: @@ -25771,7 +25584,7 @@ Lex->create_info.seq_create_info->cycle= 0; Lex->create_info.seq_create_info->used_fields|= seq_field_used_cycle; } -#line 25775 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25588 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 219: @@ -25787,7 +25600,7 @@ my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "RESTART")); Lex->create_info.seq_create_info->used_fields|= seq_field_used_restart; } -#line 25791 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25604 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 220: @@ -25804,7 +25617,7 @@ Lex->create_info.seq_create_info->restart= (yyvsp[0].longlong_number); Lex->create_info.seq_create_info->used_fields|= seq_field_used_restart | seq_field_used_restart_value; } -#line 25808 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25621 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 221: @@ -25814,13 +25627,13 @@ MYSQL_YYABORT; Lex->server_options.reset((yyvsp[0].lex_str)); } -#line 25818 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25631 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 222: #line 2700 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->server_options.scheme= (yyvsp[-4].lex_str); } -#line 25824 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25637 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 225: @@ -25829,7 +25642,7 @@ MYSQL_YYABORT_UNLESS(Lex->server_options.username.str == 0); Lex->server_options.username= (yyvsp[0].lex_str); } -#line 25833 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25646 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 226: @@ -25837,58 +25650,56 @@ { MYSQL_YYABORT_UNLESS(Lex->server_options.host.str == 0); Lex->server_options.host= (yyvsp[0].lex_str); - my_casedn_str(system_charset_info, - (char*) Lex->server_options.host.str); } -#line 25844 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25655 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 227: -#line 2722 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2720 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS(Lex->server_options.db.str == 0); Lex->server_options.db= (yyvsp[0].lex_str); } -#line 25853 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25664 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 228: -#line 2727 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2725 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS(Lex->server_options.owner.str == 0); Lex->server_options.owner= (yyvsp[0].lex_str); } -#line 25862 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25673 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 229: -#line 2732 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2730 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS(Lex->server_options.password.str == 0); Lex->server_options.password= (yyvsp[0].lex_str); } -#line 25871 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25682 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 230: -#line 2737 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2735 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS(Lex->server_options.socket.str == 0); Lex->server_options.socket= (yyvsp[0].lex_str); } -#line 25880 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25691 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 231: -#line 2742 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2740 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->server_options.port= (yyvsp[0].ulong_num); } -#line 25888 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25699 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 232: -#line 2749 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2747 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; @@ -25905,11 +25716,11 @@ lex->sql_command= SQLCOM_CREATE_EVENT; /* We need that for disallowing subqueries */ } -#line 25909 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25720 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 233: -#line 2770 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2768 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* sql_command is set here because some rules in ev_sql_stmt @@ -25917,123 +25728,123 @@ */ Lex->sql_command= SQLCOM_CREATE_EVENT; } -#line 25921 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25732 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 234: -#line 2781 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2779 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->event_parse_data->item_expression= (yyvsp[-1].item); Lex->event_parse_data->interval= (yyvsp[0].interval); } -#line 25930 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25741 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 236: -#line 2788 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2786 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->event_parse_data->item_execute_at= (yyvsp[0].item); } -#line 25938 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25749 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 237: -#line 2794 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2792 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 25944 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25755 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 238: -#line 2796 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2794 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->event_parse_data->status= Event_parse_data::ENABLED; Lex->event_parse_data->status_changed= true; (yyval.num)= 1; } -#line 25954 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25765 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 239: -#line 2802 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2800 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->event_parse_data->status= Event_parse_data::SLAVESIDE_DISABLED; Lex->event_parse_data->status_changed= true; (yyval.num)= 1; } -#line 25964 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25775 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 240: -#line 2808 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2806 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->event_parse_data->status= Event_parse_data::DISABLED; Lex->event_parse_data->status_changed= true; (yyval.num)= 1; } -#line 25974 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25785 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 241: -#line 2817 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2815 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Item *item= new (thd->mem_root) Item_func_now_local(thd, 0); if (unlikely(item == NULL)) MYSQL_YYABORT; Lex->event_parse_data->item_starts= item; } -#line 25985 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25796 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 242: -#line 2824 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2822 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->event_parse_data->item_starts= (yyvsp[0].item); } -#line 25993 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25804 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 244: -#line 2832 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2830 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->event_parse_data->item_ends= (yyvsp[0].item); } -#line 26001 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25812 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 245: -#line 2838 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2836 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 26007 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25818 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 247: -#line 2844 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2842 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->event_parse_data->on_completion= (yyvsp[-1].num) ? Event_parse_data::ON_COMPLETION_DROP : Event_parse_data::ON_COMPLETION_PRESERVE; (yyval.num)= 1; } -#line 26018 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25829 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 248: -#line 2853 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2851 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 26024 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25835 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 249: -#line 2855 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2853 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->comment= Lex->event_parse_data->comment= (yyvsp[0].lex_str); (yyval.num)= 1; } -#line 26033 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25844 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 250: -#line 2862 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2860 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; @@ -26065,11 +25876,11 @@ lex->sphead->set_body_start(thd, lip->get_cpp_ptr()); } -#line 26069 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25880 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 251: -#line 2894 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2892 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; @@ -26079,11 +25890,11 @@ lex->event_parse_data->body_changed= TRUE; } -#line 26083 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25894 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 252: -#line 2907 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2905 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->users_list.empty(); @@ -26095,516 +25906,516 @@ lex->ssl_cipher= lex->x509_subject= lex->x509_issuer= 0; bzero((char *)&(lex->mqh),sizeof(lex->mqh)); } -#line 26099 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25910 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 253: -#line 2922 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2920 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.spname)= Lex->make_sp_name(thd, &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 26108 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25919 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 254: -#line 2927 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2925 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.spname)= Lex->make_sp_name(thd, &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 26117 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25928 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 255: -#line 2934 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2932 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spname)= NULL; } -#line 26123 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25934 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 256: -#line 2935 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2933 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spname)= (yyvsp[0].spname); } -#line 26129 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25940 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 257: -#line 2939 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2937 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 26135 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25946 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 258: -#line 2940 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2938 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 26141 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25952 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 259: -#line 2944 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2942 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 26147 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25958 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 260: -#line 2945 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2943 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 26153 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25964 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 261: -#line 2951 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2949 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sp_chistics.comment= (yyvsp[0].lex_str); } -#line 26159 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25970 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 262: -#line 2953 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2951 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* Just parse it, we only have one language for now. */ } -#line 26165 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25976 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 263: -#line 2955 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2953 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sp_chistics.daccess= SP_NO_SQL; } -#line 26171 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25982 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 264: -#line 2957 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2955 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sp_chistics.daccess= SP_CONTAINS_SQL; } -#line 26177 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25988 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 265: -#line 2959 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2957 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sp_chistics.daccess= SP_READS_SQL_DATA; } -#line 26183 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 25994 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 266: -#line 2961 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2959 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sp_chistics.daccess= SP_MODIFIES_SQL_DATA; } -#line 26189 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26000 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 267: -#line 2963 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2961 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sp_chistics.suid= (yyvsp[0].sp_suid); } -#line 26195 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26006 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 268: -#line 2968 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2966 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sp_chistics.comment= (yyvsp[0].lex_str); } -#line 26201 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26012 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 269: -#line 2970 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2968 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sp_chistics.suid= (yyvsp[0].sp_suid); } -#line 26207 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26018 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 270: -#line 2974 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2972 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 26213 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26024 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 271: -#line 2975 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2973 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 26219 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26030 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 273: -#line 2980 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2978 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 26225 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26036 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 274: -#line 2984 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2982 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sp_chistics.init(); } -#line 26231 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26042 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 276: -#line 2990 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2988 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 26237 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26048 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 277: -#line 2991 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2989 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sp_chistics.detistic= ! (yyvsp[-1].num); } -#line 26243 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26054 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 278: -#line 2995 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2993 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.sp_suid)= SP_IS_SUID; } -#line 26249 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26060 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 279: -#line 2996 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2994 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.sp_suid)= SP_IS_NOT_SUID; } -#line 26255 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26066 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 280: -#line 3001 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 2999 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->call_statement_start(thd, (yyvsp[0].spname)))) MYSQL_YYABORT; } -#line 26264 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26075 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 281: -#line 3005 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3003 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 26270 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26081 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 286: -#line 3021 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3019 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->value_list.push_back((yyvsp[0].item), thd->mem_root); } -#line 26278 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26089 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 287: -#line 3025 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3023 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->value_list.push_back((yyvsp[0].item), thd->mem_root); } -#line 26286 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26097 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 292: -#line 3043 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3041 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.spvar)= Lex->sp_param_init(&(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 26295 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26106 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 293: -#line 3051 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3049 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_param_fill_definition((yyval.spvar)= (yyvsp[-1].spvar)))) MYSQL_YYABORT; } -#line 26304 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26115 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 294: -#line 3056 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3054 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sphead->spvar_fill_type_reference(thd, (yyval.spvar)= (yyvsp[-5].spvar), (yyvsp[-4].ident_sys), (yyvsp[-2].ident_sys)))) MYSQL_YYABORT; } -#line 26313 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26124 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 295: -#line 3061 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3059 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sphead->spvar_fill_type_reference(thd, (yyval.spvar)= (yyvsp[-7].spvar), (yyvsp[-6].ident_sys), (yyvsp[-4].ident_sys), (yyvsp[-2].ident_sys)))) MYSQL_YYABORT; } -#line 26322 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26133 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 296: -#line 3066 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3064 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sphead->spvar_fill_table_rowtype_reference(thd, (yyval.spvar)= (yyvsp[-3].spvar), (yyvsp[-2].ident_sys)))) MYSQL_YYABORT; } -#line 26331 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26142 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 297: -#line 3071 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3069 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sphead->spvar_fill_table_rowtype_reference(thd, (yyval.spvar)= (yyvsp[-5].spvar), (yyvsp[-4].ident_sys), (yyvsp[-2].ident_sys)))) MYSQL_YYABORT; } -#line 26340 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26151 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 298: -#line 3076 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3074 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sphead->spvar_fill_row(thd, (yyval.spvar)= (yyvsp[-2].spvar), (yyvsp[0].spvar_definition_list)))) MYSQL_YYABORT; } -#line 26349 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26160 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 303: -#line 3095 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3093 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-2].spvar)->mode= (yyvsp[-1].spvar_mode); if (unlikely(Lex->sp_param_fill_definition((yyvsp[-2].spvar)))) MYSQL_YYABORT; } -#line 26359 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26170 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 304: -#line 3101 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3099 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-6].spvar)->mode= (yyvsp[-5].spvar_mode); if (unlikely(Lex->sphead->spvar_fill_type_reference(thd, (yyvsp[-6].spvar), (yyvsp[-4].ident_sys), (yyvsp[-2].ident_sys)))) MYSQL_YYABORT; } -#line 26369 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26180 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 305: -#line 3107 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3105 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-8].spvar)->mode= (yyvsp[-7].spvar_mode); if (unlikely(Lex->sphead->spvar_fill_type_reference(thd, (yyvsp[-8].spvar), (yyvsp[-6].ident_sys), (yyvsp[-4].ident_sys), (yyvsp[-2].ident_sys)))) MYSQL_YYABORT; } -#line 26379 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26190 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 306: -#line 3113 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3111 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-4].spvar)->mode= (yyvsp[-3].spvar_mode); if (unlikely(Lex->sphead->spvar_fill_table_rowtype_reference(thd, (yyvsp[-4].spvar), (yyvsp[-2].ident_sys)))) MYSQL_YYABORT; } -#line 26389 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26200 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 307: -#line 3119 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3117 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-6].spvar)->mode= (yyvsp[-5].spvar_mode); if (unlikely(Lex->sphead->spvar_fill_table_rowtype_reference(thd, (yyvsp[-6].spvar), (yyvsp[-4].ident_sys), (yyvsp[-2].ident_sys)))) MYSQL_YYABORT; } -#line 26399 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26210 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 308: -#line 3125 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3123 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-3].spvar)->mode= (yyvsp[-2].spvar_mode); if (unlikely(Lex->sphead->spvar_fill_row(thd, (yyvsp[-3].spvar), (yyvsp[0].spvar_definition_list)))) MYSQL_YYABORT; } -#line 26409 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26220 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 309: -#line 3133 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3131 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spvar_mode)= sp_variable::MODE_IN; } -#line 26415 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26226 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 310: -#line 3134 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3132 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spvar_mode)= sp_variable::MODE_IN; } -#line 26421 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26232 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 311: -#line 3135 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3133 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spvar_mode)= sp_variable::MODE_OUT; } -#line 26427 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26238 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 312: -#line 3136 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3134 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spvar_mode)= sp_variable::MODE_INOUT; } -#line 26433 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26244 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 313: -#line 3137 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3135 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spvar_mode)= sp_variable::MODE_INOUT; } -#line 26439 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26250 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 314: -#line 3142 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3140 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sphead->m_param_begin= YYLIP->get_cpp_tok_start() + 1; } -#line 26447 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26258 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 315: -#line 3147 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3145 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sphead->m_param_end= YYLIP->get_cpp_tok_start(); } -#line 26455 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26266 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 316: -#line 3154 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3152 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sphead->m_param_begin= YYLIP->get_cpp_tok_start() + 1; } -#line 26463 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26274 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 317: -#line 3159 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3157 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sphead->m_param_end= YYLIP->get_cpp_tok_start(); } -#line 26471 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26282 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 318: -#line 3166 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3164 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sphead->m_param_begin= Lex->sphead->m_param_end= YYLIP->get_cpp_tok_start() + 1; } -#line 26480 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26291 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 323: -#line 3183 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3181 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 26486 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26297 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 325: -#line 3188 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3186 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 26492 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26303 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 327: -#line 3193 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3191 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sp_block_init(thd); } -#line 26500 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26311 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 328: -#line 3197 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3195 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_block_finalize(thd))) MYSQL_YYABORT; } -#line 26509 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26320 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 329: -#line 3205 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3203 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spblock).init(); } -#line 26517 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26328 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 330: -#line 3208 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3206 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spblock)= (yyvsp[0].spblock); } -#line 26523 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26334 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 331: -#line 3213 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3211 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sphead->sp_add_instr_cpush_for_cursors(thd, Lex->spcont))) MYSQL_YYABORT; } -#line 26532 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26343 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 332: -#line 3218 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3216 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spblock).join((yyvsp[-2].spblock), (yyvsp[0].spblock)); } -#line 26540 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26351 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 334: -#line 3225 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3223 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spblock)= (yyvsp[-1].spblock); } -#line 26546 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26357 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 335: -#line 3227 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3225 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spblock).join((yyvsp[-2].spblock), (yyvsp[-1].spblock)); } -#line 26554 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26365 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 336: -#line 3233 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3231 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spblock)= (yyvsp[-1].spblock); } -#line 26560 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26371 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 337: -#line 3235 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3233 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spblock).join((yyvsp[-2].spblock), (yyvsp[-1].spblock)); } -#line 26568 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26379 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 338: -#line 3241 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3239 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spblock).init(); } -#line 26574 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26385 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 340: -#line 3247 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3245 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.qualified_column_ident)= new (thd->mem_root) Qualified_column_ident(&(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 26584 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26395 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 341: -#line 3253 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3251 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.qualified_column_ident)= new (thd->mem_root) Qualified_column_ident(&(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 26594 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26405 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 342: -#line 3259 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3257 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.qualified_column_ident)= new (thd->mem_root) Qualified_column_ident(thd, &(yyvsp[-4].ident_sys), &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 26604 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26415 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 343: -#line 3268 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3266 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(check_string_char_length(&(yyvsp[0].ident_sys), 0, NAME_CHAR_LEN, system_charset_info, 1))) @@ -26613,21 +26424,21 @@ MYSQL_YYABORT; Lex->init_last_field((yyval.spvar_definition), &(yyvsp[0].ident_sys), thd->variables.collation_database); } -#line 26617 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26428 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 345: -#line 3284 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3282 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.spvar_definition_list)= new (thd->mem_root) Row_definition_list())) || unlikely((yyval.spvar_definition_list)->push_back((yyvsp[0].spvar_definition), thd->mem_root))) MYSQL_YYABORT; } -#line 26627 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26438 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 346: -#line 3290 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3288 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { uint unused; if (unlikely((yyvsp[-2].spvar_definition_list)->find_row_field_by_name(&(yyvsp[0].spvar_definition)->field_name, &unused))) @@ -26636,25 +26447,25 @@ if (unlikely((yyval.spvar_definition_list)->push_back((yyvsp[0].spvar_definition), thd->mem_root))) MYSQL_YYABORT; } -#line 26640 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26451 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 347: -#line 3301 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3299 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spvar_definition_list)= (yyvsp[-1].spvar_definition_list); } -#line 26646 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26457 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 348: -#line 3306 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3304 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sp_variable_declarations_init(thd, (yyvsp[0].num)); } -#line 26654 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26465 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 349: -#line 3315 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3313 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_variable_declarations_finalize(thd, (yyvsp[-2].num), &Lex->last_field[0], @@ -26662,52 +26473,52 @@ MYSQL_YYABORT; (yyval.spblock).init_using_vars((yyvsp[-2].num)); } -#line 26666 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26477 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 350: -#line 3325 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3323 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_variable_declarations_with_ref_finalize(thd, (yyvsp[-4].num), (yyvsp[-3].qualified_column_ident), (yyvsp[0].item)))) MYSQL_YYABORT; (yyval.spblock).init_using_vars((yyvsp[-4].num)); } -#line 26676 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26487 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 351: -#line 3333 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3331 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_variable_declarations_rowtype_finalize(thd, (yyvsp[-4].num), (yyvsp[-3].qualified_column_ident), (yyvsp[0].item)))) MYSQL_YYABORT; (yyval.spblock).init_using_vars((yyvsp[-4].num)); } -#line 26686 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26497 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 352: -#line 3341 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3339 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_variable_declarations_row_finalize(thd, (yyvsp[-3].num), (yyvsp[-1].spvar_definition_list), (yyvsp[0].item)))) MYSQL_YYABORT; (yyval.spblock).init_using_vars((yyvsp[-3].num)); } -#line 26696 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26507 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 354: -#line 3351 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3349 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->spcont->declare_condition(thd, &(yyvsp[-3].ident_sys), (yyvsp[0].spcondvalue)))) MYSQL_YYABORT; (yyval.spblock).vars= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0; (yyval.spblock).conds= 1; } -#line 26707 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26518 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 355: -#line 3358 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3356 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { sp_condition_value *spcond= new (thd->mem_root) sp_condition_value_user_defined(); @@ -26717,19 +26528,19 @@ (yyval.spblock).vars= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0; (yyval.spblock).conds= 1; } -#line 26721 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26532 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 356: -#line 3368 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3366 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sp_block_init(thd); } -#line 26729 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26540 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 357: -#line 3373 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3371 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { sp_pcontext *param_ctx= Lex->spcont; if (unlikely(Lex->sp_block_finalize(thd))) @@ -26739,51 +26550,51 @@ (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).hndlrs= 0; (yyval.spblock).curs= 1; } -#line 26743 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26554 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 358: -#line 3386 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3384 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_handler_declaration_init(thd, (yyvsp[-2].num)))) MYSQL_YYABORT; } -#line 26752 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26563 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 359: -#line 3391 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3389 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_handler_declaration_finalize(thd, (yyvsp[-5].num)))) MYSQL_YYABORT; (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).curs= 0; (yyval.spblock).hndlrs= 1; } -#line 26763 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26574 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 362: -#line 3406 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3404 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { DBUG_ASSERT(thd->lex->sphead); if (unlikely(!((yyval.sp_cursor_stmt)= new (thd->mem_root) sp_lex_cursor(thd, thd->lex)))) MYSQL_YYABORT; } -#line 26774 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26585 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 363: -#line 3416 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3414 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { DBUG_ASSERT(thd->free_list == NULL); Lex->sphead->reset_lex(thd, (yyvsp[0].sp_cursor_stmt)); } -#line 26783 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26594 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 364: -#line 3421 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3419 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex == (yyvsp[-2].sp_cursor_stmt)); if (unlikely((yyvsp[-2].sp_cursor_stmt)->stmt_finalize(thd)) || @@ -26791,47 +26602,47 @@ MYSQL_YYABORT; (yyval.sp_cursor_stmt)= (yyvsp[-2].sp_cursor_stmt); } -#line 26795 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26606 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 365: -#line 3431 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3429 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= sp_handler::EXIT; } -#line 26801 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26612 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 366: -#line 3432 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3430 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= sp_handler::CONTINUE; } -#line 26807 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26618 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 367: -#line 3433 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3431 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= sp_handler::EXIT; } -#line 26813 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26624 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 368: -#line 3434 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3432 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= sp_handler::CONTINUE; } -#line 26819 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26630 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 369: -#line 3440 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3438 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 26825 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26636 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 370: -#line 3442 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3440 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)+= 1; } -#line 26831 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26642 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 371: -#line 3447 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3445 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; sp_head *sp= lex->sphead; @@ -26843,11 +26654,11 @@ sp_instr_hpush_jump *i= (sp_instr_hpush_jump *)sp->last_instruction(); i->add_condition((yyvsp[0].spcondvalue)); } -#line 26847 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26658 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 372: -#line 3462 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3460 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* mysql errno */ if (unlikely((yyvsp[0].ulong_num) == 0)) my_yyabort_error((ER_WRONG_VALUE, MYF(0), "CONDITION", "0")); @@ -26855,11 +26666,11 @@ if (unlikely((yyval.spcondvalue) == NULL)) MYSQL_YYABORT; } -#line 26859 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26670 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 374: -#line 3474 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3472 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* SQLSTATE */ /* @@ -26876,108 +26687,108 @@ if (unlikely((yyval.spcondvalue) == NULL)) MYSQL_YYABORT; } -#line 26880 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26691 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 375: -#line 3493 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3491 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 26886 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26697 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 376: -#line 3494 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3492 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 26892 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26703 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 377: -#line 3499 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3497 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spcondvalue)= (yyvsp[0].spcondvalue); } -#line 26900 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26711 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 378: -#line 3503 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3501 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spcondvalue)= Lex->spcont->find_declared_or_predefined_condition(thd, &(yyvsp[0].ident_sys)); if (unlikely((yyval.spcondvalue) == NULL)) my_yyabort_error((ER_SP_COND_MISMATCH, MYF(0), (yyvsp[0].ident_sys).str)); } -#line 26910 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26721 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 379: -#line 3509 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3507 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spcondvalue)= new (thd->mem_root) sp_condition_value(sp_condition_value::WARNING); if (unlikely((yyval.spcondvalue) == NULL)) MYSQL_YYABORT; } -#line 26920 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26731 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 380: -#line 3515 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3513 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spcondvalue)= new (thd->mem_root) sp_condition_value(sp_condition_value::NOT_FOUND); if (unlikely((yyval.spcondvalue) == NULL)) MYSQL_YYABORT; } -#line 26930 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26741 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 381: -#line 3521 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3519 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spcondvalue)= new (thd->mem_root) sp_condition_value(sp_condition_value::EXCEPTION); if (unlikely((yyval.spcondvalue) == NULL)) MYSQL_YYABORT; } -#line 26940 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26751 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 382: -#line 3527 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3525 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spcondvalue)= new (thd->mem_root) sp_condition_value(sp_condition_value::EXCEPTION); if (unlikely((yyval.spcondvalue) == NULL)) MYSQL_YYABORT; } -#line 26950 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26761 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 383: -#line 3537 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3535 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_resignal_statement(thd, NULL))) MYSQL_YYABORT; } -#line 26959 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26770 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 384: -#line 3542 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3540 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_signal_statement(thd, (yyvsp[-1].spcondvalue)))) MYSQL_YYABORT; } -#line 26968 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26779 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 385: -#line 3550 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3548 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_signal_statement(thd, (yyvsp[-1].spcondvalue)))) MYSQL_YYABORT; } -#line 26977 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26788 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 386: -#line 3558 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3556 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; sp_condition_value *cond; @@ -26992,37 +26803,37 @@ my_yyabort_error((ER_SIGNAL_BAD_CONDITION_TYPE, MYF(0))); (yyval.spcondvalue)= cond; } -#line 26996 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26807 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 387: -#line 3573 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3571 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spcondvalue)= (yyvsp[0].spcondvalue); } -#line 27002 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26813 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 388: -#line 3578 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3576 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spcondvalue)= NULL; } -#line 27008 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26819 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 389: -#line 3580 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3578 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.spcondvalue)= (yyvsp[0].spcondvalue); } -#line 27014 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26825 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 390: -#line 3585 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3583 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { thd->m_parser_state->m_yacc.m_set_signal_info.clear(); } -#line 27022 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26833 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 392: -#line 3593 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3591 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Set_signal_information *info; info= &thd->m_parser_state->m_yacc.m_set_signal_info; @@ -27030,11 +26841,11 @@ info->clear(); info->m_item[index]= (yyvsp[0].item); } -#line 27034 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26845 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 393: -#line 3602 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3600 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Set_signal_information *info; info= &thd->m_parser_state->m_yacc.m_set_signal_info; @@ -27044,17 +26855,17 @@ Diag_condition_item_names[index].str)); info->m_item[index]= (yyvsp[0].item); } -#line 27048 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26859 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 394: -#line 3618 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3616 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item); } -#line 27054 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26865 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 395: -#line 3620 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3618 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if ((yyvsp[0].item)->type() == Item::FUNC_ITEM) { @@ -27072,98 +26883,98 @@ } (yyval.item)= (yyvsp[0].item); } -#line 27076 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26887 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 396: -#line 3638 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3636 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item); } -#line 27082 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26893 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 397: -#line 3644 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3642 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_CLASS_ORIGIN; } -#line 27088 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26899 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 398: -#line 3646 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3644 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_SUBCLASS_ORIGIN; } -#line 27094 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26905 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 399: -#line 3648 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3646 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_CATALOG; } -#line 27100 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26911 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 400: -#line 3650 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3648 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_SCHEMA; } -#line 27106 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26917 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 401: -#line 3652 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3650 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_NAME; } -#line 27112 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26923 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 402: -#line 3654 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3652 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_CATALOG_NAME; } -#line 27118 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26929 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 403: -#line 3656 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3654 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_SCHEMA_NAME; } -#line 27124 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26935 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 404: -#line 3658 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3656 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_TABLE_NAME; } -#line 27130 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26941 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 405: -#line 3660 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3658 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_COLUMN_NAME; } -#line 27136 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26947 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 406: -#line 3662 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3660 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_CURSOR_NAME; } -#line 27142 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26953 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 407: -#line 3664 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3662 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_MESSAGE_TEXT; } -#line 27148 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26959 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 408: -#line 3666 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3664 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.diag_condition_item_name)= DIAG_MYSQL_ERRNO; } -#line 27154 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26965 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 409: -#line 3671 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3669 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_resignal_statement(thd, (yyvsp[-1].spcondvalue)))) MYSQL_YYABORT; } -#line 27163 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26974 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 410: -#line 3679 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3677 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Diagnostics_information *info= (yyvsp[0].diag_info); @@ -27175,222 +26986,222 @@ if (unlikely(Lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 27179 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26990 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 411: -#line 3694 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3692 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.diag_area)= Diagnostics_information::CURRENT_AREA; } -#line 27185 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 26996 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 412: -#line 3696 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3694 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.diag_area)= Diagnostics_information::CURRENT_AREA; } -#line 27191 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27002 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 413: -#line 3701 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3699 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.diag_info)= new (thd->mem_root) Statement_information((yyvsp[0].stmt_info_list)); if (unlikely((yyval.diag_info) == NULL)) MYSQL_YYABORT; } -#line 27201 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27012 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 414: -#line 3707 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3705 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.diag_info)= new (thd->mem_root) Condition_information((yyvsp[-1].item), (yyvsp[0].cond_info_list)); if (unlikely((yyval.diag_info) == NULL)) MYSQL_YYABORT; } -#line 27211 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27022 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 415: -#line 3716 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3714 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.stmt_info_list)= new (thd->mem_root) List; if (unlikely((yyval.stmt_info_list) == NULL) || unlikely((yyval.stmt_info_list)->push_back((yyvsp[0].stmt_info_item), thd->mem_root))) MYSQL_YYABORT; } -#line 27222 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27033 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 416: -#line 3723 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3721 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[-2].stmt_info_list)->push_back((yyvsp[0].stmt_info_item), thd->mem_root))) MYSQL_YYABORT; (yyval.stmt_info_list)= (yyvsp[-2].stmt_info_list); } -#line 27232 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27043 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 417: -#line 3732 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3730 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.stmt_info_item)= new (thd->mem_root) Statement_information_item((yyvsp[0].stmt_info_item_name), (yyvsp[-2].item)); if (unlikely((yyval.stmt_info_item) == NULL)) MYSQL_YYABORT; } -#line 27242 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27053 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 418: -#line 3740 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3739 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= thd->lex->create_item_for_sp_var(&(yyvsp[0].ident_cli), NULL)))) MYSQL_YYABORT; } -#line 27251 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27062 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 419: -#line 3745 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3744 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_get_user_var(thd, &(yyvsp[0].lex_str)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 27261 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27072 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 420: -#line 3754 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3753 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.stmt_info_item_name)= Statement_information_item::NUMBER; } -#line 27267 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27078 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 421: -#line 3756 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3755 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.stmt_info_item_name)= Statement_information_item::NUMBER; } -#line 27273 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27084 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 422: -#line 3758 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3757 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.stmt_info_item_name)= Statement_information_item::ROW_COUNT; } -#line 27279 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27090 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 423: -#line 3767 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3766 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item); } -#line 27285 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27096 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 424: -#line 3772 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3771 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.cond_info_list)= new (thd->mem_root) List; if (unlikely((yyval.cond_info_list) == NULL) || unlikely((yyval.cond_info_list)->push_back((yyvsp[0].cond_info_item), thd->mem_root))) MYSQL_YYABORT; } -#line 27296 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27107 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 425: -#line 3779 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3778 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[-2].cond_info_list)->push_back((yyvsp[0].cond_info_item), thd->mem_root))) MYSQL_YYABORT; (yyval.cond_info_list)= (yyvsp[-2].cond_info_list); } -#line 27306 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27117 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 426: -#line 3788 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 3787 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.cond_info_item)= new (thd->mem_root) Condition_information_item((yyvsp[0].cond_info_item_name), (yyvsp[-2].item)); if (unlikely((yyval.cond_info_item) == NULL)) MYSQL_YYABORT; } -#line 27316 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27127 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 427: #line 3796 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::CLASS_ORIGIN; } -#line 27322 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27133 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 428: #line 3798 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::SUBCLASS_ORIGIN; } -#line 27328 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27139 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 429: #line 3800 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::CONSTRAINT_CATALOG; } -#line 27334 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27145 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 430: #line 3802 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::CONSTRAINT_SCHEMA; } -#line 27340 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27151 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 431: #line 3804 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::CONSTRAINT_NAME; } -#line 27346 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27157 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 432: #line 3806 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::CATALOG_NAME; } -#line 27352 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27163 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 433: #line 3808 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::SCHEMA_NAME; } -#line 27358 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27169 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 434: #line 3810 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::TABLE_NAME; } -#line 27364 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27175 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 435: #line 3812 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::COLUMN_NAME; } -#line 27370 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27181 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 436: #line 3814 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::CURSOR_NAME; } -#line 27376 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27187 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 437: #line 3816 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::MESSAGE_TEXT; } -#line 27382 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27193 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 438: #line 3818 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::MYSQL_ERRNO; } -#line 27388 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27199 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 439: #line 3820 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.cond_info_item_name)= Condition_information_item::RETURNED_SQLSTATE; } -#line 27394 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27205 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 441: @@ -27399,7 +27210,7 @@ if (unlikely((yyval.ident_sys).copy_ident_cli(thd, &(yyvsp[0].kwd)))) MYSQL_YYABORT; } -#line 27403 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27214 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 442: @@ -27415,7 +27226,7 @@ spc->add_variable(thd, &(yyvsp[0].ident_sys)); (yyval.num)= 1; } -#line 27419 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27230 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 443: @@ -27431,37 +27242,37 @@ spc->add_variable(thd, &(yyvsp[0].ident_sys)); (yyval.num)= (yyvsp[-2].num) + 1; } -#line 27435 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27246 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 444: #line 3860 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item) = NULL; } -#line 27441 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27252 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 445: #line 3861 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item) = (yyvsp[0].item); } -#line 27447 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27258 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 446: #line 3862 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item) = (yyvsp[0].item); } -#line 27453 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27264 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 452: #line 3871 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 27459 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27270 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 465: #line 3887 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 27465 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27276 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 470: @@ -27471,13 +27282,13 @@ MYSQL_YYABORT; Lex->sphead->new_cont_backpatch(NULL); } -#line 27475 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27286 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 471: #line 3905 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sphead->do_cont_backpatch(); } -#line 27481 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27292 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 473: @@ -27487,7 +27298,7 @@ if (unlikely(Lex->call_statement_start(thd, &(yyvsp[0].ident_sys)))) MYSQL_YYABORT; } -#line 27491 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27302 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 475: @@ -27496,7 +27307,7 @@ if (unlikely(Lex->call_statement_start(thd, &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys)))) MYSQL_YYABORT; } -#line 27500 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27311 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 477: @@ -27508,7 +27319,7 @@ lex->sphead->reset_lex(thd); lex->sphead->m_tmp_query= lip->get_tok_start(); } -#line 27512 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27323 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 478: @@ -27554,13 +27365,13 @@ if (unlikely(sp->restore_lex(thd))) MYSQL_YYABORT; } -#line 27558 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27369 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 481: #line 3985 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sphead->reset_lex(thd); } -#line 27564 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27375 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 482: @@ -27573,7 +27384,7 @@ unlikely(sp->restore_lex(thd))) MYSQL_YYABORT; } -#line 27577 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27388 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 483: @@ -27585,19 +27396,19 @@ lex->spcont))) MYSQL_YYABORT; } -#line 27589 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27400 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 484: #line 4006 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sphead->reset_lex(thd); } -#line 27595 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27406 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 485: #line 4006 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item); } -#line 27601 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27412 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 486: @@ -27606,7 +27417,7 @@ if (unlikely(Lex->sp_exit_statement(thd, NULL))) MYSQL_YYABORT; } -#line 27610 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27421 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 487: @@ -27615,7 +27426,7 @@ if (unlikely(Lex->sp_exit_statement(thd, &(yyvsp[0].ident_sys), NULL))) MYSQL_YYABORT; } -#line 27619 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27430 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 488: @@ -27625,7 +27436,7 @@ unlikely(Lex->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 27629 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27440 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 489: @@ -27635,7 +27446,7 @@ unlikely(Lex->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 27639 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27450 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 490: @@ -27644,7 +27455,7 @@ if (unlikely(Lex->sp_continue_statement(thd, NULL))) MYSQL_YYABORT; } -#line 27648 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27459 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 491: @@ -27653,7 +27464,7 @@ if (unlikely(Lex->sp_continue_statement(thd, &(yyvsp[0].ident_sys), NULL))) MYSQL_YYABORT; } -#line 27657 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27468 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 492: @@ -27663,7 +27474,7 @@ unlikely(Lex->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 27667 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27478 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 493: @@ -27673,7 +27484,7 @@ unlikely(Lex->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 27677 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27488 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 494: @@ -27682,7 +27493,7 @@ if (unlikely(Lex->sp_leave_statement(thd, &(yyvsp[0].ident_sys)))) MYSQL_YYABORT; } -#line 27686 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27497 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 495: @@ -27691,7 +27502,7 @@ if (unlikely(Lex->sp_iterate_statement(thd, &(yyvsp[0].ident_sys)))) MYSQL_YYABORT; } -#line 27695 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27506 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 496: @@ -27700,7 +27511,7 @@ if (unlikely(Lex->sp_goto_statement(thd, &(yyvsp[0].ident_sys)))) MYSQL_YYABORT; } -#line 27704 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27515 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 497: @@ -27708,7 +27519,7 @@ { (yyval.lex)= thd->lex; } -#line 27712 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27523 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 498: @@ -27719,7 +27530,7 @@ sp_assignment_lex(thd, thd->lex)))) MYSQL_YYABORT; } -#line 27723 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27534 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 499: @@ -27728,7 +27539,7 @@ DBUG_ASSERT(thd->free_list == NULL); Lex->sphead->reset_lex(thd, (yyvsp[0].assignment_lex)); } -#line 27732 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27543 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 500: @@ -27742,7 +27553,7 @@ if (unlikely((yyval.assignment_lex)->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 27746 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27557 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 501: @@ -27750,7 +27561,7 @@ { Lex->sphead->reset_lex(thd, (yyvsp[0].assignment_lex)); } -#line 27754 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27565 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 502: @@ -27763,7 +27574,7 @@ if (unlikely((yyval.assignment_lex)->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 27767 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27578 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 503: @@ -27773,7 +27584,7 @@ MYSQL_YYABORT; (yyval.sp_assignment_lex_list)->push_back((yyvsp[0].assignment_lex), thd->mem_root); } -#line 27777 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27588 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 504: @@ -27782,19 +27593,19 @@ (yyval.sp_assignment_lex_list)= (yyvsp[-2].sp_assignment_lex_list); (yyval.sp_assignment_lex_list)->push_back((yyvsp[0].assignment_lex), thd->mem_root); } -#line 27786 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27597 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 505: #line 4149 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.sp_assignment_lex_list)= NULL; } -#line 27792 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27603 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 506: #line 4150 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.sp_assignment_lex_list)= (yyvsp[-1].sp_assignment_lex_list); } -#line 27798 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27609 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 507: @@ -27803,7 +27614,7 @@ if (unlikely(Lex->sp_open_cursor(thd, &(yyvsp[-1].ident_sys), (yyvsp[0].sp_assignment_lex_list)))) MYSQL_YYABORT; } -#line 27807 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27618 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 508: @@ -27812,7 +27623,7 @@ if (unlikely(Lex->sp_add_cfetch(thd, &(yyvsp[-1].ident_sys)))) MYSQL_YYABORT; } -#line 27816 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27627 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 509: @@ -27821,7 +27632,7 @@ if (unlikely(Lex->sp_add_cfetch(thd, &(yyvsp[-1].ident_sys)))) MYSQL_YYABORT; } -#line 27825 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27636 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 510: @@ -27830,13 +27641,13 @@ if (unlikely(Lex->sp_add_cfetch(thd, &(yyvsp[-1].ident_sys)))) MYSQL_YYABORT; } -#line 27834 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27645 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 511: #line 4180 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 27840 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27651 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 512: @@ -27855,7 +27666,7 @@ unlikely(sp->add_instr(i))) MYSQL_YYABORT; } -#line 27859 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27670 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 513: @@ -27873,7 +27684,7 @@ sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction(); i->add_to_varlist(spv); } -#line 27877 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27688 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 514: @@ -27891,13 +27702,13 @@ sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction(); i->add_to_varlist(spv); } -#line 27895 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27706 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 515: #line 4233 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sphead->reset_lex(thd); } -#line 27901 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27712 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 516: @@ -27917,7 +27728,7 @@ if (unlikely(sp->restore_lex(thd))) MYSQL_YYABORT; } -#line 27921 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27732 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 517: @@ -27933,7 +27744,7 @@ sp->backpatch(ctx->pop_label()); sp->push_backpatch(thd, i, ctx->push_label(thd, &empty_clex_str, 0)); } -#line 27937 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27748 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 518: @@ -27943,7 +27754,7 @@ lex->sphead->backpatch(lex->spcont->pop_label()); } -#line 27947 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27758 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 522: @@ -27997,7 +27808,7 @@ */ Lex->spcont->push_label(thd, &empty_clex_str, Lex->sphead->instructions()); } -#line 28001 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27812 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 523: @@ -28015,13 +27826,13 @@ Lex->sphead->do_cont_backpatch(); } -#line 28019 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27830 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 524: #line 4347 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sphead->reset_lex(thd); /* For expr $2 */ } -#line 28025 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27836 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 525: @@ -28032,19 +27843,19 @@ if (unlikely(Lex->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 28036 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27847 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 526: #line 4356 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 28042 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27853 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 527: #line 4358 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 28048 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27859 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 532: @@ -28052,7 +27863,7 @@ { Lex->sphead->reset_lex(thd); /* For expr $3 */ } -#line 28056 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27867 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 533: @@ -28067,7 +27878,7 @@ if (unlikely(lex->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 28071 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27882 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 534: @@ -28076,7 +27887,7 @@ if (unlikely(Lex->case_stmt_action_then())) MYSQL_YYABORT; } -#line 28080 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27891 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 535: @@ -28084,7 +27895,7 @@ { Lex->sphead->reset_lex(thd); /* For expr $3 */ } -#line 28088 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27899 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 536: @@ -28097,7 +27908,7 @@ if (unlikely(lex->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 28101 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27912 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 537: @@ -28106,7 +27917,7 @@ if (unlikely(Lex->case_stmt_action_then())) MYSQL_YYABORT; } -#line 28110 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27921 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 538: @@ -28121,19 +27932,19 @@ unlikely(sp->add_instr(i))) MYSQL_YYABORT; } -#line 28125 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27936 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 540: #line 4433 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)= null_clex_str; } -#line 28131 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27942 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 541: #line 4434 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)= (yyvsp[0].ident_sys); } -#line 28137 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27948 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 542: @@ -28143,7 +27954,7 @@ MYSQL_YYABORT; (yyval.lex_str)= (yyvsp[0].lex_str); } -#line 28147 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27958 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 543: @@ -28153,7 +27964,7 @@ if (unlikely(Lex->sp_block_with_exceptions_finalize_declarations(thd))) MYSQL_YYABORT; } -#line 28157 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27968 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 544: @@ -28162,7 +27973,7 @@ if (unlikely(Lex->sp_block_finalize(thd, Lex_spblock((yyvsp[-2].spblock_handlers)), &(yyvsp[0].lex_str)))) MYSQL_YYABORT; } -#line 28166 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27977 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 545: @@ -28170,7 +27981,7 @@ { Lex->sp_block_init(thd, &(yyvsp[-1].lex_str)); } -#line 28174 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27985 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 546: @@ -28179,7 +27990,7 @@ if (unlikely(Lex->sp_block_with_exceptions_finalize_declarations(thd))) MYSQL_YYABORT; } -#line 28183 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 27994 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 547: @@ -28189,7 +28000,7 @@ if (unlikely(Lex->sp_block_finalize(thd, (yyvsp[-5].spblock), &(yyvsp[0].lex_str)))) MYSQL_YYABORT; } -#line 28193 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28004 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 550: @@ -28201,7 +28012,7 @@ if (unlikely(Lex->sp_block_with_exceptions_finalize_declarations(thd))) MYSQL_YYABORT; } -#line 28205 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28016 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 551: @@ -28210,7 +28021,7 @@ if (unlikely(Lex->sp_block_finalize(thd, Lex_spblock((yyvsp[-1].spblock_handlers))))) MYSQL_YYABORT; } -#line 28214 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28025 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 552: @@ -28220,7 +28031,7 @@ MYSQL_YYABORT; Lex->sp_block_init(thd); } -#line 28224 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28035 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 553: @@ -28229,7 +28040,7 @@ if (unlikely(Lex->sp_block_with_exceptions_finalize_declarations(thd))) MYSQL_YYABORT; } -#line 28233 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28044 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 554: @@ -28239,13 +28050,13 @@ if (unlikely(Lex->sp_block_finalize(thd, (yyvsp[-4].spblock)))) MYSQL_YYABORT; } -#line 28243 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28054 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 555: #line 4524 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.sp_instr_addr)= Lex->sphead->instructions(); } -#line 28249 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28060 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 556: @@ -28253,7 +28064,7 @@ { Lex->sp_block_init(thd); } -#line 28257 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28068 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 557: @@ -28262,7 +28073,7 @@ if (unlikely(Lex->sp_block_with_exceptions_finalize_declarations(thd))) MYSQL_YYABORT; } -#line 28266 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28077 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 558: @@ -28272,7 +28083,7 @@ if (unlikely(Lex->sp_block_finalize(thd, (yyvsp[-3].spblock)))) MYSQL_YYABORT; } -#line 28276 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28087 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 560: @@ -28281,7 +28092,7 @@ if (unlikely(Lex->sp_block_with_exceptions_finalize_executable_section(thd, (yyvsp[-1].sp_instr_addr)))) MYSQL_YYABORT; } -#line 28285 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28096 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 561: @@ -28291,31 +28102,31 @@ MYSQL_YYABORT; (yyval.spblock_handlers).init((yyvsp[0].num)); } -#line 28295 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28106 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 562: #line 4562 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 28301 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28112 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 563: #line 4563 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= (yyvsp[0].num); } -#line 28307 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28118 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 564: #line 4567 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 28313 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28124 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 565: #line 4568 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= (yyvsp[-1].num) + 1; } -#line 28319 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28130 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 566: @@ -28324,7 +28135,7 @@ if (unlikely(Lex->sp_handler_declaration_init(thd, sp_handler::EXIT))) MYSQL_YYABORT; } -#line 28328 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28139 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 567: @@ -28333,19 +28144,19 @@ if (unlikely(Lex->sp_handler_declaration_finalize(thd, sp_handler::EXIT))) MYSQL_YYABORT; } -#line 28337 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28148 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 568: #line 4588 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 28343 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28154 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 569: #line 4589 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= -1; } -#line 28349 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28160 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 570: @@ -28354,7 +28165,7 @@ if (unlikely(Lex->sp_for_loop_declarations(thd, &(yyval.for_loop), &(yyvsp[-1].ident_sys), (yyvsp[0].for_loop_bounds)))) MYSQL_YYABORT; } -#line 28358 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28169 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 571: @@ -28362,7 +28173,7 @@ { (yyval.for_loop_bounds)= Lex_for_loop_bounds_intrange((yyvsp[-3].num), (yyvsp[-2].assignment_lex), (yyvsp[0].assignment_lex)); } -#line 28366 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28177 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 572: @@ -28373,7 +28184,7 @@ (yyval.for_loop_bounds).m_target_bound= NULL; (yyval.for_loop_bounds).m_implicit_cursor= false; } -#line 28377 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28188 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 573: @@ -28383,7 +28194,7 @@ (yyvsp[-1].sp_cursor_stmt)))) MYSQL_YYABORT; } -#line 28387 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28198 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 574: @@ -28398,7 +28209,7 @@ unlikely(lex->sphead->add_instr(i))) MYSQL_YYABORT; } -#line 28402 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28213 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 575: @@ -28410,7 +28221,7 @@ if (unlikely(lex->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 28414 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28225 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 576: @@ -28419,13 +28230,13 @@ if (unlikely(Lex->sp_while_loop_finalize(thd))) MYSQL_YYABORT; } -#line 28423 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28234 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 577: #line 4653 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sphead->reset_lex(thd); } -#line 28429 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28240 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 578: @@ -28444,7 +28255,7 @@ /* We can shortcut the cont_backpatch here */ i->m_cont_dest= ip+1; } -#line 28448 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28259 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 579: @@ -28453,7 +28264,7 @@ if (unlikely(Lex->sp_pop_loop_label(thd, &(yyvsp[0].lex_str)))) MYSQL_YYABORT; } -#line 28457 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28268 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 580: @@ -28462,13 +28273,13 @@ if (unlikely(Lex->sp_push_loop_label(thd, &(yyvsp[-1].lex_str)))) MYSQL_YYABORT; } -#line 28466 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28277 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 581: #line 4686 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 28472 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28283 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 582: @@ -28478,13 +28289,13 @@ MYSQL_YYABORT; Lex->sphead->reset_lex(thd); } -#line 28482 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28293 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 583: #line 4694 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 28488 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28299 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 584: @@ -28493,7 +28304,7 @@ // See "The FOR LOOP statement" comments in sql_lex.cc Lex->sp_block_init(thd); // The outer DECLARE..BEGIN..END block } -#line 28497 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28308 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 585: @@ -28504,7 +28315,7 @@ if (unlikely(Lex->sp_for_loop_condition_test(thd, (yyvsp[0].for_loop)))) MYSQL_YYABORT; } -#line 28508 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28319 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 586: @@ -28513,7 +28324,7 @@ if (unlikely(Lex->sp_for_loop_finalize(thd, (yyvsp[-5].for_loop)))) MYSQL_YYABORT; } -#line 28517 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28328 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 587: @@ -28522,7 +28333,7 @@ if (unlikely(Lex->sp_for_loop_outer_block_finalize(thd, (yyvsp[-7].for_loop)))) MYSQL_YYABORT; } -#line 28526 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28337 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 588: @@ -28531,13 +28342,13 @@ if (unlikely(Lex->sp_push_loop_label(thd, &(yyvsp[-1].lex_str)))) MYSQL_YYABORT; } -#line 28535 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28346 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 589: #line 4725 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 28541 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28352 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 590: @@ -28546,7 +28357,7 @@ if (unlikely(Lex->sp_push_loop_empty_label(thd))) MYSQL_YYABORT; } -#line 28550 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28361 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 591: @@ -28554,7 +28365,7 @@ { Lex->sp_pop_loop_empty_label(thd); } -#line 28558 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28369 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 592: @@ -28564,7 +28375,7 @@ MYSQL_YYABORT; Lex->sphead->reset_lex(thd); } -#line 28568 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28379 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 593: @@ -28572,7 +28383,7 @@ { Lex->sp_pop_loop_empty_label(thd); } -#line 28576 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28387 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 594: @@ -28583,7 +28394,7 @@ MYSQL_YYABORT; Lex->sp_block_init(thd); // The outer DECLARE..BEGIN..END block } -#line 28587 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28398 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 595: @@ -28594,7 +28405,7 @@ if (unlikely(Lex->sp_for_loop_condition_test(thd, (yyvsp[0].for_loop)))) MYSQL_YYABORT; } -#line 28598 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28409 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 596: @@ -28606,7 +28417,7 @@ if (unlikely(Lex->sp_for_loop_outer_block_finalize(thd, (yyvsp[-5].for_loop)))) MYSQL_YYABORT; } -#line 28610 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28421 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 597: @@ -28615,7 +28426,7 @@ if (unlikely(Lex->sp_push_loop_empty_label(thd))) MYSQL_YYABORT; } -#line 28619 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28430 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 598: @@ -28623,43 +28434,43 @@ { Lex->sp_pop_loop_empty_label(thd); } -#line 28627 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28438 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 599: #line 4785 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->trg_chistics.action_time= TRG_ACTION_BEFORE; } -#line 28633 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28444 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 600: #line 4787 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->trg_chistics.action_time= TRG_ACTION_AFTER; } -#line 28639 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28450 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 601: #line 4792 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->trg_chistics.event= TRG_EVENT_INSERT; } -#line 28645 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28456 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 602: #line 4794 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->trg_chistics.event= TRG_EVENT_UPDATE; } -#line 28651 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28462 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 603: #line 4796 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->trg_chistics.event= TRG_EVENT_DELETE; } -#line 28657 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28468 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 607: #line 4830 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 28663 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28474 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 608: @@ -28668,7 +28479,7 @@ LEX *lex= Lex; lex->alter_tablespace_info->logfile_group_name= (yyvsp[0].ident_sys).str; } -#line 28672 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28483 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 609: @@ -28676,7 +28487,7 @@ { Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_ADD_FILE; } -#line 28680 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28491 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 610: @@ -28684,13 +28495,13 @@ { Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_DROP_FILE; } -#line 28688 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28499 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 615: #line 4871 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 28694 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28505 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 662: @@ -28699,7 +28510,7 @@ LEX *lex= Lex; lex->alter_tablespace_info->data_file_name= (yyvsp[0].lex_str).str; } -#line 28703 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28514 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 663: @@ -28708,7 +28519,7 @@ LEX *lex= Lex; lex->alter_tablespace_info->undo_file_name= (yyvsp[0].lex_str).str; } -#line 28712 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28523 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 664: @@ -28717,7 +28528,7 @@ LEX *lex= Lex; lex->alter_tablespace_info->redo_file_name= (yyvsp[0].lex_str).str; } -#line 28721 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28532 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 665: @@ -28731,7 +28542,7 @@ lex->alter_tablespace_info->tablespace_name= (yyvsp[0].ident_sys).str; lex->sql_command= SQLCOM_ALTER_TABLESPACE; } -#line 28735 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28546 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 666: @@ -28745,7 +28556,7 @@ lex->alter_tablespace_info->logfile_group_name= (yyvsp[0].ident_sys).str; lex->sql_command= SQLCOM_ALTER_TABLESPACE; } -#line 28749 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28560 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 667: @@ -28754,7 +28565,7 @@ LEX *lex= Lex; lex->alter_tablespace_info->ts_access_mode= TS_READ_ONLY; } -#line 28758 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28569 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 668: @@ -28763,7 +28574,7 @@ LEX *lex= Lex; lex->alter_tablespace_info->ts_access_mode= TS_READ_WRITE; } -#line 28767 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28578 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 669: @@ -28772,7 +28583,7 @@ LEX *lex= Lex; lex->alter_tablespace_info->ts_access_mode= TS_NOT_ACCESSIBLE; } -#line 28776 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28587 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 670: @@ -28781,7 +28592,7 @@ LEX *lex= Lex; lex->alter_tablespace_info->initial_size= (yyvsp[0].ulonglong_number); } -#line 28785 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28596 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 671: @@ -28790,7 +28601,7 @@ LEX *lex= Lex; lex->alter_tablespace_info->autoextend_size= (yyvsp[0].ulonglong_number); } -#line 28794 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28605 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 672: @@ -28799,7 +28610,7 @@ LEX *lex= Lex; lex->alter_tablespace_info->max_size= (yyvsp[0].ulonglong_number); } -#line 28803 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28614 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 673: @@ -28808,7 +28619,7 @@ LEX *lex= Lex; lex->alter_tablespace_info->extent_size= (yyvsp[0].ulonglong_number); } -#line 28812 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28623 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 674: @@ -28817,7 +28628,7 @@ LEX *lex= Lex; lex->alter_tablespace_info->undo_buffer_size= (yyvsp[0].ulonglong_number); } -#line 28821 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28632 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 675: @@ -28826,7 +28637,7 @@ LEX *lex= Lex; lex->alter_tablespace_info->redo_buffer_size= (yyvsp[0].ulonglong_number); } -#line 28830 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28641 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 676: @@ -28837,7 +28648,7 @@ my_yyabort_error((ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"NODEGROUP")); lex->alter_tablespace_info->nodegroup_id= (yyvsp[0].ulong_num); } -#line 28841 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28652 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 677: @@ -28848,7 +28659,7 @@ my_yyabort_error((ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"COMMENT")); lex->alter_tablespace_info->ts_comment= (yyvsp[0].lex_str).str; } -#line 28852 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28663 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 678: @@ -28860,7 +28671,7 @@ "STORAGE ENGINE")); lex->alter_tablespace_info->storage_engine= (yyvsp[0].db_type); } -#line 28864 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28675 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 681: @@ -28869,7 +28680,7 @@ LEX *lex= Lex; lex->alter_tablespace_info->wait_until_completed= TRUE; } -#line 28873 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28684 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 682: @@ -28880,13 +28691,13 @@ my_yyabort_error((ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"NO_WAIT")); lex->alter_tablespace_info->wait_until_completed= FALSE; } -#line 28884 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28695 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 683: #line 5131 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulonglong_number)= (yyvsp[0].ulonglong_number);} -#line 28890 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28701 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 684: @@ -28895,49 +28706,49 @@ if ((yyvsp[0].ident_sys).to_size_number(&(yyval.ulonglong_number))) MYSQL_YYABORT; } -#line 28899 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28710 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 685: #line 5145 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->create_info.option_list= NULL; } -#line 28905 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28716 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 686: #line 5146 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 28911 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28722 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 687: #line 5147 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 28917 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28728 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 689: #line 5155 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->set_braces(1);} -#line 28923 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28734 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 690: #line 5155 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 28929 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28740 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 691: #line 5157 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->set_braces(1);} -#line 28935 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28746 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 692: #line 5157 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 28941 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28752 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 693: @@ -28952,25 +28763,25 @@ /* CREATE TABLE ... LIKE is not allowed for views. */ src_table->required_type= TABLE_TYPE_NORMAL; } -#line 28956 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28767 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 694: #line 5172 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.table)= (yyvsp[0].table); } -#line 28962 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28773 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 695: #line 5173 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.table)= (yyvsp[-1].table); } -#line 28968 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28779 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 696: #line 5177 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 28974 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28785 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 698: @@ -28979,7 +28790,7 @@ Select->set_braces(0); Select->set_with_clause((yyvsp[-4].with_clause)); } -#line 28983 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28794 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 700: @@ -28987,31 +28798,31 @@ { Select->set_with_clause((yyvsp[-4].with_clause)); } -#line 28991 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28802 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 702: #line 5196 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->set_braces(1);} -#line 28997 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28808 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 703: #line 5196 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29003 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28814 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 704: #line 5198 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->set_braces(1);} -#line 29009 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28820 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 705: #line 5198 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29015 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28826 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 706: @@ -29025,13 +28836,13 @@ last_non_sel_table->next_global= 0; Lex->query_tables_last= &last_non_sel_table->next_global; } -#line 29029 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28840 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 707: #line 5239 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29035 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28846 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 709: @@ -29046,7 +28857,7 @@ lex->alter_info.partition_flags|= ALTER_PARTITION_INFO; } } -#line 29050 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28861 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 711: @@ -29062,7 +28873,7 @@ "--with-plugin-partition")); #endif } -#line 29066 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28877 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 712: @@ -29079,19 +28890,19 @@ partition info string into part_info data structure. */ } -#line 29083 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28894 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 713: #line 5287 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29089 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28900 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 714: #line 5292 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->safe_to_cache_query= 1; } -#line 29095 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28906 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 716: @@ -29102,31 +28913,31 @@ part_info->column_list= FALSE; part_info->part_type= HASH_PARTITION; } -#line 29106 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28917 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 717: #line 5305 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->part_info->part_type= HASH_PARTITION; } -#line 29112 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28923 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 718: #line 5306 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29118 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28929 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 719: #line 5308 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->part_info->part_type= RANGE_PARTITION; } -#line 29124 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28935 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 720: #line 5310 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->part_info->part_type= RANGE_PARTITION; } -#line 29130 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28941 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 721: @@ -29134,7 +28945,7 @@ { Select->parsing_place= IN_PART_FUNC; } -#line 29138 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28949 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 722: @@ -29143,13 +28954,13 @@ Lex->part_info->part_type= LIST_PARTITION; Select->parsing_place= NO_MATTER; } -#line 29147 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28958 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 723: #line 5321 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->part_info->part_type= LIST_PARTITION; } -#line 29153 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28964 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 724: @@ -29158,25 +28969,25 @@ if (unlikely(Lex->part_info->vers_init_info(thd))) MYSQL_YYABORT; } -#line 29162 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28973 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 726: #line 5331 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29168 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28979 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 727: #line 5333 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->part_info->linear_hash_ind= TRUE;} -#line 29174 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28985 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 728: #line 5338 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->part_info->key_algorithm= partition_info::KEY_ALGORITHM_NONE;} -#line 29180 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 28991 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 729: @@ -29194,31 +29005,31 @@ MYSQL_YYABORT; } } -#line 29198 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29009 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 730: #line 5356 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29204 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29015 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 731: #line 5357 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29210 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29021 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 732: #line 5361 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29216 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29027 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 733: #line 5362 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29222 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29033 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 734: @@ -29233,7 +29044,7 @@ my_yyabort_error((ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR, MYF(0), "list of partition fields")); } -#line 29237 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29048 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 735: @@ -29243,34 +29054,34 @@ part_info->column_list= TRUE; part_info->list_of_part_fields= TRUE; } -#line 29247 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29058 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 736: #line 5391 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; - if (unlikely(part_info->set_part_expr(thd, (yyvsp[-3].simple_string) + 1, (yyvsp[-2].item), (yyvsp[-1].simple_string), FALSE))) + if (unlikely(part_info->set_part_expr(thd, (yyvsp[-1].item), FALSE))) MYSQL_YYABORT; part_info->num_columns= 1; part_info->column_list= FALSE; } -#line 29259 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29070 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 737: #line 5402 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { - if (unlikely(Lex->part_info->set_part_expr(thd, (yyvsp[-3].simple_string) + 1, (yyvsp[-2].item), (yyvsp[-1].simple_string), TRUE))) + if (unlikely(Lex->part_info->set_part_expr(thd, (yyvsp[-1].item), TRUE))) MYSQL_YYABORT; } -#line 29268 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29079 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 738: #line 5410 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29274 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29085 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 739: @@ -29284,25 +29095,25 @@ part_info->num_parts= num_parts; part_info->use_default_num_partitions= FALSE; } -#line 29288 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29099 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 740: #line 5424 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29294 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29105 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 741: #line 5426 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->part_info->subpart_type= HASH_PARTITION; } -#line 29300 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29111 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 742: #line 5427 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29306 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29117 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 743: @@ -29312,25 +29123,25 @@ part_info->subpart_type= HASH_PARTITION; part_info->list_of_subpart_fields= TRUE; } -#line 29316 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29127 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 744: #line 5435 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29322 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29133 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 745: #line 5439 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29328 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29139 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 746: #line 5440 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29334 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29145 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 747: @@ -29345,7 +29156,7 @@ my_yyabort_error((ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR, MYF(0), "list of subpartition fields")); } -#line 29349 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29160 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 748: @@ -29358,13 +29169,13 @@ } (yyval.item)=(yyvsp[0].item); } -#line 29362 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29173 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 749: #line 5470 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29368 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29179 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 750: @@ -29377,7 +29188,7 @@ lex->part_info->num_subparts= num_parts; lex->part_info->use_default_num_subpartitions= FALSE; } -#line 29381 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29192 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 751: @@ -29391,7 +29202,7 @@ my_yyabort_error((ER_PARTITIONS_MUST_BE_DEFINED_ERROR, MYF(0), "LIST")); } -#line 29395 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29206 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 752: @@ -29414,19 +29225,19 @@ } part_info->count_curr_subparts= 0; } -#line 29418 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29229 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 753: #line 5515 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29424 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29235 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 754: #line 5516 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29430 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29241 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 755: @@ -29446,13 +29257,13 @@ part_info->use_default_partitions= FALSE; part_info->use_default_num_partitions= FALSE; } -#line 29450 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29261 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 756: #line 5540 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29456 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29267 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 757: @@ -29464,7 +29275,7 @@ MYSQL_YYABORT; p_elem->partition_name= (yyvsp[0].ident_sys).str; } -#line 29468 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29279 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 758: @@ -29484,7 +29295,7 @@ else part_info->part_type= HASH_PARTITION; } -#line 29488 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29299 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 759: @@ -29501,13 +29312,13 @@ else part_info->part_type= RANGE_PARTITION; } -#line 29505 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29316 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 760: #line 5584 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29511 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29322 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 761: @@ -29524,13 +29335,13 @@ else part_info->part_type= LIST_PARTITION; } -#line 29528 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29339 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 762: #line 5598 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29534 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29345 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 763: @@ -29539,7 +29350,7 @@ if (Lex->part_values_current(thd)) MYSQL_YYABORT; } -#line 29543 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29354 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 764: @@ -29548,7 +29359,7 @@ if (Lex->part_values_history(thd)) MYSQL_YYABORT; } -#line 29552 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29363 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 765: @@ -29569,7 +29380,7 @@ if (unlikely(part_info->add_max_value(thd))) MYSQL_YYABORT; } -#line 29573 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29384 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 766: @@ -29591,13 +29402,13 @@ if (unlikely(part_info->add_max_value(thd))) MYSQL_YYABORT; } -#line 29595 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29406 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 767: #line 5647 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29601 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29412 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 768: @@ -29628,7 +29439,7 @@ MYSQL_YYABORT; } } -#line 29632 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29443 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 769: @@ -29641,19 +29452,19 @@ MYSQL_YYABORT; } } -#line 29645 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29456 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 770: #line 5690 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29651 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29462 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 771: #line 5691 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29657 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29468 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 772: @@ -29667,13 +29478,13 @@ part_info->init_column_part(thd))) MYSQL_YYABORT; } -#line 29671 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29482 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 773: #line 5705 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29677 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29488 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 774: @@ -29698,19 +29509,19 @@ } part_info->curr_list_object= 0; } -#line 29702 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29513 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 775: #line 5730 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29708 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29519 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 776: #line 5731 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29714 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29525 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 777: @@ -29725,7 +29536,7 @@ if (unlikely(part_info->add_max_value(thd))) MYSQL_YYABORT; } -#line 29729 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29540 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 778: @@ -29743,7 +29554,7 @@ if (unlikely(part_info->add_column_list_value(thd, part_expr))) MYSQL_YYABORT; } -#line 29747 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29558 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 779: @@ -29761,7 +29572,7 @@ MYSQL_YYABORT; } } -#line 29765 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29576 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 780: @@ -29788,19 +29599,19 @@ } part_info->count_curr_subparts= 0; } -#line 29792 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29603 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 781: #line 5804 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29798 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29609 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 782: #line 5805 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29804 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29615 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 783: @@ -29837,13 +29648,13 @@ part_info->use_default_num_subpartitions= FALSE; part_info->count_curr_subparts++; } -#line 29841 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29652 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 784: #line 5842 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29847 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29658 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 785: @@ -29853,37 +29664,37 @@ MYSQL_YYABORT; Lex->part_info->curr_part_elem->partition_name= (yyvsp[0].lex_str).str; } -#line 29857 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29668 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 786: #line 5855 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29863 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29674 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 787: #line 5856 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29869 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29680 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 788: #line 5860 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29875 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29686 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 789: #line 5861 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29881 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29692 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 790: #line 5866 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->part_info->curr_part_elem->tablespace_name= (yyvsp[0].lex_str).str; } -#line 29887 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29698 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 791: @@ -29893,7 +29704,7 @@ part_info->curr_part_elem->engine_type= (yyvsp[0].db_type); part_info->default_engine_type= (yyvsp[0].db_type); } -#line 29897 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29708 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 792: @@ -29903,49 +29714,49 @@ lex->part_info->curr_part_elem->connect_string.str= (yyvsp[0].lex_str).str; lex->part_info->curr_part_elem->connect_string.length= (yyvsp[0].lex_str).length; } -#line 29907 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29718 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 793: #line 5880 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->part_info->curr_part_elem->nodegroup_id= (uint16) (yyvsp[0].ulong_num); } -#line 29913 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29724 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 794: #line 5882 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->part_info->curr_part_elem->part_max_rows= (ha_rows) (yyvsp[0].ulonglong_number); } -#line 29919 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29730 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 795: #line 5884 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->part_info->curr_part_elem->part_min_rows= (ha_rows) (yyvsp[0].ulonglong_number); } -#line 29925 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29736 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 796: #line 5886 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->part_info->curr_part_elem->data_file_name= (yyvsp[0].lex_str).str; } -#line 29931 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29742 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 797: #line 5888 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->part_info->curr_part_elem->index_file_name= (yyvsp[0].lex_str).str; } -#line 29937 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29748 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 798: #line 5890 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->part_info->curr_part_elem->part_comment= (yyvsp[0].lex_str).str; } -#line 29943 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29754 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 799: #line 5894 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 29949 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29760 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 800: @@ -29955,7 +29766,7 @@ if (unlikely(part_info->vers_set_interval(thd, (yyvsp[-2].item), (yyvsp[-1].interval), (yyvsp[0].ulong_num)))) MYSQL_YYABORT; } -#line 29959 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29770 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 801: @@ -29970,7 +29781,7 @@ MYSQL_YYABORT; } } -#line 29974 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29785 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 802: @@ -29978,7 +29789,7 @@ { (yyval.ulong_num)= thd->query_start(); } -#line 29982 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29793 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 803: @@ -29992,7 +29803,7 @@ } (yyval.ulong_num)= (ulong)(yyvsp[0].ulong_num); } -#line 29996 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29807 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 804: @@ -30000,7 +29811,7 @@ { Select->set_with_clause((yyvsp[-4].with_clause)); } -#line 30004 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29815 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 805: @@ -30019,7 +29830,7 @@ mysql_init_select(lex); lex->current_select->parsing_place= SELECT_LIST; } -#line 30023 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29834 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 806: @@ -30027,7 +29838,7 @@ { Select->parsing_place= NO_MATTER; } -#line 30031 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29842 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 811: @@ -30039,55 +29850,55 @@ */ Lex->current_select->table_list.push_front(&Lex->save_list); } -#line 30043 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29854 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 812: #line 5987 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 30049 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29860 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 813: #line 5988 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 30055 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29866 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 814: #line 5992 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 30061 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29872 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 815: #line 5993 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 30067 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29878 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 816: #line 5997 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 30073 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29884 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 817: #line 5998 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 30079 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29890 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 818: #line 6002 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 30085 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29896 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 819: #line 6003 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 30091 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29902 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 820: @@ -30095,7 +29906,7 @@ { Lex->check_exists= FALSE; } -#line 30099 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29910 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 821: @@ -30103,7 +29914,7 @@ { Lex->check_exists= TRUE; } -#line 30107 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29918 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 822: @@ -30111,7 +29922,7 @@ { (yyval.object_ddl_options).init(); } -#line 30115 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29926 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 823: @@ -30119,7 +29930,7 @@ { (yyval.object_ddl_options).set(DDL_options_st::OPT_IF_NOT_EXISTS); } -#line 30123 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29934 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 824: @@ -30127,7 +29938,7 @@ { (yyval.object_ddl_options).init(); } -#line 30131 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29942 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 825: @@ -30135,7 +29946,7 @@ { (yyval.object_ddl_options).set(DDL_options_st::OPT_OR_REPLACE); } -#line 30139 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29950 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 833: @@ -30154,7 +29965,7 @@ *opt= Storage_engine_name((yyvsp[0].lex_str)); lex->create_info.used_fields|= HA_CREATE_USED_ENGINE; } -#line 30158 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29969 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 834: @@ -30163,7 +29974,7 @@ Lex->create_info.max_rows= (yyvsp[0].ulonglong_number); Lex->create_info.used_fields|= HA_CREATE_USED_MAX_ROWS; } -#line 30167 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29978 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 835: @@ -30172,7 +29983,7 @@ Lex->create_info.min_rows= (yyvsp[0].ulonglong_number); Lex->create_info.used_fields|= HA_CREATE_USED_MIN_ROWS; } -#line 30176 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29987 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 836: @@ -30181,7 +29992,7 @@ Lex->create_info.avg_row_length=(yyvsp[0].ulong_num); Lex->create_info.used_fields|= HA_CREATE_USED_AVG_ROW_LENGTH; } -#line 30185 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 29996 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 837: @@ -30190,7 +30001,7 @@ Lex->create_info.password=(yyvsp[0].lex_str).str; Lex->create_info.used_fields|= HA_CREATE_USED_PASSWORD; } -#line 30194 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30005 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 838: @@ -30199,7 +30010,7 @@ Lex->create_info.comment=(yyvsp[0].lex_str); Lex->create_info.used_fields|= HA_CREATE_USED_COMMENT; } -#line 30203 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30014 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 839: @@ -30208,7 +30019,7 @@ Lex->create_info.auto_increment_value=(yyvsp[0].ulonglong_number); Lex->create_info.used_fields|= HA_CREATE_USED_AUTO; } -#line 30212 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30023 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 840: @@ -30227,7 +30038,7 @@ } Lex->create_info.used_fields|= HA_CREATE_USED_PACK_KEYS; } -#line 30231 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30042 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 841: @@ -30237,7 +30048,7 @@ ~(HA_OPTION_PACK_KEYS | HA_OPTION_NO_PACK_KEYS); Lex->create_info.used_fields|= HA_CREATE_USED_PACK_KEYS; } -#line 30241 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30052 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 842: @@ -30256,7 +30067,7 @@ } Lex->create_info.used_fields|= HA_CREATE_USED_STATS_AUTO_RECALC; } -#line 30260 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30071 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 843: @@ -30265,7 +30076,7 @@ Lex->create_info.stats_auto_recalc= HA_STATS_AUTO_RECALC_DEFAULT; Lex->create_info.used_fields|= HA_CREATE_USED_STATS_AUTO_RECALC; } -#line 30269 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30080 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 844: @@ -30284,7 +30095,7 @@ } Lex->create_info.used_fields|= HA_CREATE_USED_STATS_PERSISTENT; } -#line 30288 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30099 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 845: @@ -30294,7 +30105,7 @@ ~(HA_OPTION_STATS_PERSISTENT | HA_OPTION_NO_STATS_PERSISTENT); Lex->create_info.used_fields|= HA_CREATE_USED_STATS_PERSISTENT; } -#line 30298 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30109 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 846: @@ -30316,7 +30127,7 @@ Lex->create_info.stats_sample_pages=(yyvsp[0].ulong_num); Lex->create_info.used_fields|= HA_CREATE_USED_STATS_SAMPLE_PAGES; } -#line 30320 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30131 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 847: @@ -30325,7 +30136,7 @@ Lex->create_info.stats_sample_pages=0; Lex->create_info.used_fields|= HA_CREATE_USED_STATS_SAMPLE_PAGES; } -#line 30329 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30140 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 848: @@ -30334,7 +30145,7 @@ Lex->create_info.table_options|= (yyvsp[0].ulong_num) ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM; Lex->create_info.used_fields|= HA_CREATE_USED_CHECKSUM; } -#line 30338 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30149 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 849: @@ -30343,7 +30154,7 @@ Lex->create_info.table_options|= (yyvsp[0].ulong_num) ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM; Lex->create_info.used_fields|= HA_CREATE_USED_CHECKSUM; } -#line 30347 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30158 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 850: @@ -30352,7 +30163,7 @@ Lex->create_info.used_fields|= HA_CREATE_USED_PAGE_CHECKSUM; Lex->create_info.page_checksum= (yyvsp[0].choice); } -#line 30356 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30167 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 851: @@ -30361,7 +30172,7 @@ Lex->create_info.table_options|= (yyvsp[0].ulong_num) ? HA_OPTION_DELAY_KEY_WRITE : HA_OPTION_NO_DELAY_KEY_WRITE; Lex->create_info.used_fields|= HA_CREATE_USED_DELAY_KEY_WRITE; } -#line 30365 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30176 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 852: @@ -30370,7 +30181,7 @@ Lex->create_info.row_type= (yyvsp[0].row_type); Lex->create_info.used_fields|= HA_CREATE_USED_ROW_FORMAT; } -#line 30374 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30185 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 853: @@ -30378,7 +30189,7 @@ { Lex->select_lex.table_list.save_and_clear(&Lex->save_list); } -#line 30382 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30193 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 854: @@ -30404,7 +30215,7 @@ lex->create_info.used_fields|= HA_CREATE_USED_UNION; } -#line 30408 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30219 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 857: @@ -30413,7 +30224,7 @@ Lex->create_info.merge_insert_method= (yyvsp[0].ulong_num); Lex->create_info.used_fields|= HA_CREATE_USED_INSERT_METHOD; } -#line 30417 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30228 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 858: @@ -30422,7 +30233,7 @@ Lex->create_info.data_file_name= (yyvsp[0].lex_str).str; Lex->create_info.used_fields|= HA_CREATE_USED_DATADIR; } -#line 30426 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30237 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 859: @@ -30431,25 +30242,25 @@ Lex->create_info.index_file_name= (yyvsp[0].lex_str).str; Lex->create_info.used_fields|= HA_CREATE_USED_INDEXDIR; } -#line 30435 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30246 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 860: #line 6255 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {Lex->create_info.tablespace= (yyvsp[0].ident_sys).str;} -#line 30441 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30252 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 861: #line 6257 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {Lex->create_info.storage_media= HA_SM_DISK;} -#line 30447 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30258 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 862: #line 6259 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {Lex->create_info.storage_media= HA_SM_MEMORY;} -#line 30453 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30264 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 863: @@ -30459,7 +30270,7 @@ Lex->create_info.connect_string.length= (yyvsp[0].lex_str).length; Lex->create_info.used_fields|= HA_CREATE_USED_CONNECTION; } -#line 30463 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30274 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 864: @@ -30468,7 +30279,7 @@ Lex->create_info.used_fields|= HA_CREATE_USED_KEY_BLOCK_SIZE; Lex->create_info.key_block_size= (yyvsp[0].ulong_num); } -#line 30472 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30283 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 865: @@ -30477,7 +30288,7 @@ Lex->create_info.used_fields|= HA_CREATE_USED_TRANSACTIONAL; Lex->create_info.transactional= (yyvsp[0].choice); } -#line 30481 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30292 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 866: @@ -30490,7 +30301,7 @@ &Lex->create_info.option_list, &Lex->option_list_last); } -#line 30494 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30305 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 867: @@ -30503,7 +30314,7 @@ &Lex->create_info.option_list, &Lex->option_list_last); } -#line 30507 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30318 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 868: @@ -30513,7 +30324,7 @@ engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].ulonglong_number), &Lex->create_info.option_list, &Lex->option_list_last, thd->mem_root); } -#line 30517 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30328 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 869: @@ -30523,7 +30334,7 @@ engine_option_value((yyvsp[-2].ident_sys), &Lex->create_info.option_list, &Lex->option_list_last); } -#line 30527 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30338 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 870: @@ -30532,7 +30343,7 @@ Lex->create_info.used_fields|= HA_CREATE_USED_SEQUENCE; Lex->create_info.sequence= ((yyvsp[0].choice) == HA_CHOICE_YES); } -#line 30536 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30347 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 874: @@ -30552,7 +30363,7 @@ Lex->create_info.options|= HA_VERSIONED_TABLE; } } -#line 30556 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30367 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 875: @@ -30561,7 +30372,7 @@ if (unlikely(Lex->create_info.add_table_option_default_charset((yyvsp[0].charset)))) MYSQL_YYABORT; } -#line 30565 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30376 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 876: @@ -30577,7 +30388,7 @@ Lex->create_info.default_table_charset= (yyvsp[0].charset); Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET; } -#line 30581 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30392 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 877: @@ -30588,7 +30399,7 @@ thd->lex->create_info.tmp_table())) MYSQL_YYABORT; } -#line 30592 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30403 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 878: @@ -30600,91 +30411,91 @@ else my_yyabort_error((ER_UNKNOWN_STORAGE_ENGINE, MYF(0), (yyvsp[0].lex_str).str)); } -#line 30604 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30415 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 879: #line 6383 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.row_type)= ROW_TYPE_DEFAULT; } -#line 30610 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30421 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 880: #line 6384 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.row_type)= ROW_TYPE_FIXED; } -#line 30616 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30427 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 881: #line 6385 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.row_type)= ROW_TYPE_DYNAMIC; } -#line 30622 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30433 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 882: #line 6386 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.row_type)= ROW_TYPE_COMPRESSED; } -#line 30628 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30439 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 883: #line 6387 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.row_type)= ROW_TYPE_REDUNDANT; } -#line 30634 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30445 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 884: #line 6388 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.row_type)= ROW_TYPE_COMPACT; } -#line 30640 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30451 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 885: #line 6389 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.row_type)= ROW_TYPE_PAGE; } -#line 30646 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30457 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 886: #line 6393 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= MERGE_INSERT_DISABLED; } -#line 30652 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30463 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 887: #line 6394 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= MERGE_INSERT_TO_FIRST; } -#line 30658 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30469 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 888: #line 6395 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= MERGE_INSERT_TO_LAST; } -#line 30664 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30475 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 889: #line 6399 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {(yyval.num) = (int) STRING_RESULT; } -#line 30670 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30481 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 890: #line 6400 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {(yyval.num) = (int) REAL_RESULT; } -#line 30676 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30487 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 891: #line 6401 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {(yyval.num) = (int) DECIMAL_RESULT; } -#line 30682 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30493 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 892: #line 6402 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {(yyval.num) = (int) INT_RESULT; } -#line 30688 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30499 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 893: @@ -30692,25 +30503,25 @@ { Lex->create_last_non_select_table= Lex->last_table(); } -#line 30696 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30507 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 896: #line 6419 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 30702 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30513 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 900: #line 6427 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.create_field)= (yyvsp[0].create_field); } -#line 30708 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30519 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 901: #line 6429 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.create_field)= (yyvsp[-1].create_field); } -#line 30714 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30525 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 902: @@ -30720,13 +30531,13 @@ if (unlikely(Lex->add_key(Key::MULTIPLE, &(yyvsp[-1].lex_str), (yyvsp[0].key_alg), (yyvsp[-2].object_ddl_options)))) MYSQL_YYABORT; } -#line 30724 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30535 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 903: #line 6439 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 30730 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30541 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 904: @@ -30736,13 +30547,13 @@ if (unlikely(Lex->add_key(Key::MULTIPLE, &(yyvsp[-2].ident_sys), (yyvsp[0].key_alg), (yyvsp[-3].object_ddl_options)))) MYSQL_YYABORT; } -#line 30740 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30551 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 905: #line 6446 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 30746 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30557 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 906: @@ -30752,13 +30563,13 @@ if (unlikely(Lex->add_key((yyvsp[-3].key_type), &(yyvsp[0].lex_str), HA_KEY_ALG_UNDEF, (yyvsp[-1].object_ddl_options)))) MYSQL_YYABORT; } -#line 30756 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30567 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 907: #line 6453 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 30762 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30573 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 908: @@ -30768,13 +30579,13 @@ if (unlikely(Lex->add_key((yyvsp[-3].key_type), &(yyvsp[0].lex_str), HA_KEY_ALG_UNDEF, (yyvsp[-1].object_ddl_options)))) MYSQL_YYABORT; } -#line 30772 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30583 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 909: #line 6460 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 30778 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30589 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 910: @@ -30784,13 +30595,13 @@ if (unlikely(Lex->add_key((yyvsp[-3].key_type), (yyvsp[-1].lex_str).str ? &(yyvsp[-1].lex_str) : &(yyvsp[-4].lex_str), (yyvsp[0].key_alg), (yyvsp[-2].object_ddl_options)))) MYSQL_YYABORT; } -#line 30788 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30599 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 911: #line 6469 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 30794 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30605 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 912: @@ -30800,13 +30611,13 @@ if (unlikely(Lex->add_key((yyvsp[-4].key_type), (yyvsp[-2].ident_sys).str ? &(yyvsp[-2].ident_sys) : &(yyvsp[-5].lex_str), (yyvsp[0].key_alg), (yyvsp[-3].object_ddl_options)))) MYSQL_YYABORT; } -#line 30804 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30615 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 913: #line 6477 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 30810 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30621 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 914: @@ -30820,7 +30631,7 @@ MYSQL_YYABORT; Lex->option_list= NULL; } -#line 30824 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30635 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 915: @@ -30850,7 +30661,7 @@ /* Only used for ALTER TABLE. Ignored otherwise. */ lex->alter_info.flags|= ALTER_ADD_FOREIGN_KEY; } -#line 30854 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30665 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 916: @@ -30858,7 +30669,7 @@ { Lex->add_constraint(&(yyvsp[-1].lex_str), (yyvsp[0].virtual_column), FALSE); } -#line 30862 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30673 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 917: @@ -30867,19 +30678,19 @@ Vers_parse_info &info= Lex->vers_get_info(); info.set_system_time((yyvsp[-3].ident_sys), (yyvsp[-1].ident_sys)); } -#line 30871 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30682 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 918: #line 6533 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.virtual_column)= (Virtual_column_info*) 0; } -#line 30877 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30688 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 919: #line 6534 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.virtual_column)= (yyvsp[0].virtual_column);} -#line 30883 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30694 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 920: @@ -30890,37 +30701,37 @@ MYSQL_YYABORT; (yyval.virtual_column)= v; } -#line 30894 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30705 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 921: #line 6548 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 30900 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30711 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 922: #line 6549 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 30906 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30717 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 923: #line 6553 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)= null_clex_str; } -#line 30912 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30723 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 924: #line 6554 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)= (yyvsp[0].lex_str); } -#line 30918 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30729 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 925: #line 6558 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)=(yyvsp[0].lex_str); } -#line 30924 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30735 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 926: @@ -30939,7 +30750,7 @@ lex->init_last_field(f, &(yyvsp[0].lex_str), NULL); (yyval.create_field)= f; } -#line 30943 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30754 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 927: @@ -30961,13 +30772,13 @@ else if ((yyval.create_field)->flags & UNIQUE_KEY_FLAG) lex->add_key_to_list(&(yyvsp[-3].lex_str), Key::UNIQUE, lex->check_exists); } -#line 30965 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30776 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 928: #line 6598 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_field->set_attributes((yyvsp[0].Lex_field_type), Lex->charset); } -#line 30971 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30782 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 930: @@ -30977,49 +30788,49 @@ Lex->last_field->flags|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNSIGNED_FLAG | UNIQUE_KEY_FLAG; } -#line 30981 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30792 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 932: #line 6610 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 30987 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30798 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 933: #line 6611 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 30993 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30804 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 934: #line 6615 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 30999 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30810 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 936: #line 6620 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 31005 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30816 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 937: #line 6621 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 31011 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30822 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 938: #line 6625 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 31017 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30828 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 940: #line 6630 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 31023 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30834 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 944: @@ -31028,7 +30839,7 @@ Lex->last_field->vcol_info= (yyvsp[0].virtual_column); Lex->last_field->flags&= ~NOT_NULL_FLAG; // undo automatic NOT NULL for timestamps } -#line 31032 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30843 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 946: @@ -31037,7 +30848,7 @@ if (Lex->last_field_generated_always_as_row_start()) MYSQL_YYABORT; } -#line 31041 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30852 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 947: @@ -31046,19 +30857,19 @@ if (Lex->last_field_generated_always_as_row_end()) MYSQL_YYABORT; } -#line 31050 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30861 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 948: #line 6653 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 31056 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30867 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 949: #line 6654 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 31062 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30873 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 950: @@ -31066,7 +30877,7 @@ { Lex->last_field->vcol_info->set_stored_in_db_flag(FALSE); } -#line 31070 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30881 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 951: @@ -31074,7 +30885,7 @@ { Lex->last_field->vcol_info->set_stored_in_db_flag(FALSE); } -#line 31078 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30889 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 952: @@ -31082,7 +30893,7 @@ { Lex->last_field->vcol_info->set_stored_in_db_flag(TRUE); } -#line 31086 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30897 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 953: @@ -31090,25 +30901,25 @@ { Lex->last_field->vcol_info->set_stored_in_db_flag(TRUE); } -#line 31094 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30905 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 954: #line 6677 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 31100 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30911 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 955: #line 6678 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 31106 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30917 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 956: #line 6682 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 31112 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30923 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 958: @@ -31118,7 +30929,7 @@ lex->last_field->flags|= UNIQUE_KEY_FLAG; lex->alter_info.flags|= ALTER_ADD_INDEX; } -#line 31122 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30933 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 959: @@ -31128,13 +30939,13 @@ lex->last_field->flags|= UNIQUE_KEY_FLAG; lex->alter_info.flags|= ALTER_ADD_INDEX; } -#line 31132 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30943 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 960: #line 6699 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_field->comment= (yyvsp[0].lex_str); } -#line 31138 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30949 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 961: @@ -31142,7 +30953,7 @@ { Lex->last_field->invisible= INVISIBLE_USER; } -#line 31146 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30957 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 962: @@ -31155,7 +30966,7 @@ */ MYSQL_YYABORT_UNLESS(Lex->parse_vcol_expr); } -#line 31159 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30970 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 963: @@ -31166,7 +30977,7 @@ MYSQL_YYABORT; Lex->last_field->vcol_info= v; } -#line 31170 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30981 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 964: @@ -31176,7 +30987,7 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 31180 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 30991 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 966: @@ -31187,7 +30998,7 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 31191 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31002 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 967: @@ -31199,7 +31010,7 @@ MYSQL_YYABORT; (yyval.virtual_column)= v; } -#line 31203 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31014 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 971: @@ -31208,19 +31019,19 @@ if (unlikely(!((yyval.virtual_column)= add_virtual_expression(thd, (yyvsp[0].item))))) MYSQL_YYABORT; } -#line 31212 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31023 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 982: #line 6783 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set((yyvsp[-2].type_handler), (yyvsp[-1].const_simple_string)); } -#line 31218 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31029 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 983: #line 6784 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set((yyvsp[-2].type_handler), (yyvsp[-1].Lex_length_and_dec)); } -#line 31224 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31035 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 984: @@ -31240,7 +31051,7 @@ (yyval.Lex_field_type).set(&type_handler_float); } } -#line 31244 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31055 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 985: @@ -31248,7 +31059,7 @@ { (yyval.Lex_field_type).set(&type_handler_bit, (yyvsp[0].const_simple_string)); } -#line 31252 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31063 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 986: @@ -31256,7 +31067,7 @@ { (yyval.Lex_field_type).set(&type_handler_tiny, "1"); } -#line 31260 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31071 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 987: @@ -31264,13 +31075,13 @@ { (yyval.Lex_field_type).set(&type_handler_tiny, "1"); } -#line 31268 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31079 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 988: #line 6814 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(&type_handler_newdecimal, (yyvsp[-1].Lex_length_and_dec));} -#line 31274 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31085 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 989: @@ -31281,19 +31092,19 @@ else (yyval.Lex_field_type).set(&type_handler_double); } -#line 31285 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31096 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 990: #line 6823 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(&type_handler_newdecimal, (yyvsp[-1].Lex_length_and_dec));} -#line 31291 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31102 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 991: #line 6825 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(&type_handler_newdecimal, (yyvsp[-1].Lex_length_and_dec));} -#line 31297 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31108 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 996: @@ -31301,7 +31112,7 @@ { (yyval.Lex_field_type).set(&type_handler_string, (yyvsp[-1].const_simple_string)); } -#line 31305 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31116 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 997: @@ -31310,7 +31121,7 @@ (yyval.Lex_field_type).set(&type_handler_string, (yyvsp[-1].const_simple_string)); bincmp_collation(national_charset_info, (yyvsp[0].num)); } -#line 31314 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31125 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 998: @@ -31319,7 +31130,7 @@ Lex->charset=&my_charset_bin; (yyval.Lex_field_type).set(&type_handler_string, (yyvsp[0].const_simple_string)); } -#line 31323 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31134 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 999: @@ -31327,7 +31138,7 @@ { (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].const_simple_string)); } -#line 31331 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31142 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1000: @@ -31335,7 +31146,7 @@ { (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].const_simple_string)); } -#line 31339 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31150 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1001: @@ -31344,7 +31155,7 @@ (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-2].const_simple_string)); bincmp_collation(national_charset_info, (yyvsp[0].num)); } -#line 31348 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31159 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1002: @@ -31353,7 +31164,7 @@ Lex->charset=&my_charset_bin; (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].const_simple_string)); } -#line 31357 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31168 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1003: @@ -31362,7 +31173,7 @@ Lex->charset= &my_charset_bin; (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].const_simple_string)); } -#line 31366 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31177 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1004: @@ -31370,7 +31181,7 @@ { (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].Lex_length_and_dec)); } -#line 31374 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31185 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1005: @@ -31379,7 +31190,7 @@ (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].Lex_length_and_dec)); bincmp_collation(national_charset_info, (yyvsp[0].num)); } -#line 31383 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31194 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1006: @@ -31388,7 +31199,7 @@ Lex->charset=&my_charset_bin; (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[0].Lex_length_and_dec)); } -#line 31392 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31203 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1007: @@ -31396,7 +31207,7 @@ { (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].Lex_length_and_dec)); } -#line 31400 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31211 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1008: @@ -31404,7 +31215,7 @@ { (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].Lex_length_and_dec)); } -#line 31408 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31219 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1009: @@ -31413,7 +31224,7 @@ (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[-1].Lex_length_and_dec)); bincmp_collation(national_charset_info, (yyvsp[0].num)); } -#line 31417 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31228 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1010: @@ -31422,7 +31233,7 @@ Lex->charset= &my_charset_bin; (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[0].Lex_length_and_dec)); } -#line 31426 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31237 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1011: @@ -31431,7 +31242,7 @@ Lex->charset= &my_charset_bin; (yyval.Lex_field_type).set(&type_handler_varchar, (yyvsp[0].Lex_length_and_dec)); } -#line 31435 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31246 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1012: @@ -31453,13 +31264,13 @@ } (yyval.Lex_field_type).set(&type_handler_year, (yyvsp[-1].const_simple_string)); } -#line 31457 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31268 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1013: #line 6937 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(thd->type_handler_for_date()); } -#line 31463 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31274 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1014: @@ -31470,7 +31281,7 @@ static_cast(&type_handler_time), (yyvsp[0].const_simple_string)); } -#line 31474 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31285 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1015: @@ -31495,7 +31306,7 @@ (yyvsp[0].const_simple_string)); } } -#line 31499 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31310 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1016: @@ -31506,7 +31317,7 @@ static_cast(&type_handler_datetime), (yyvsp[0].const_simple_string)); } -#line 31510 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31321 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1017: @@ -31515,7 +31326,7 @@ Lex->charset=&my_charset_bin; (yyval.Lex_field_type).set(&type_handler_tiny_blob); } -#line 31519 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31330 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1018: @@ -31524,21 +31335,30 @@ Lex->charset=&my_charset_bin; (yyval.Lex_field_type).set(&type_handler_blob, (yyvsp[-1].const_simple_string)); } -#line 31528 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31339 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1019: #line 6988 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->charset=&my_charset_bin; - (yyval.Lex_field_type).set(&type_handler_long_blob); + (yyval.Lex_field_type).set(&type_handler_blob, (yyvsp[-1].const_simple_string)); } -#line 31537 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31348 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1020: #line 6993 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { + Lex->charset=&my_charset_bin; + (yyval.Lex_field_type).set(&type_handler_long_blob); + } +#line 31357 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 1021: +#line 6998 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { #ifdef HAVE_SPATIAL Lex->charset=&my_charset_bin; Lex->last_field->geom_type= (yyvsp[-2].geom_type); @@ -31548,545 +31368,545 @@ sym_group_geom.needed_define)); #endif } -#line 31552 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 1021: -#line 7004 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { - Lex->charset=&my_charset_bin; - (yyval.Lex_field_type).set(&type_handler_medium_blob); - } -#line 31561 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31372 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1022: #line 7009 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->charset=&my_charset_bin; - (yyval.Lex_field_type).set(&type_handler_long_blob); + (yyval.Lex_field_type).set(&type_handler_medium_blob); } -#line 31570 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31381 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1023: #line 7014 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->charset=&my_charset_bin; - (yyval.Lex_field_type).set(&type_handler_medium_blob); + (yyval.Lex_field_type).set(&type_handler_long_blob); } -#line 31579 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31390 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1024: #line 7019 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_field_type).set(&type_handler_medium_blob); } -#line 31585 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + { + Lex->charset=&my_charset_bin; + (yyval.Lex_field_type).set(&type_handler_medium_blob); + } +#line 31399 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1025: -#line 7021 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_field_type).set(&type_handler_tiny_blob); } -#line 31591 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7024 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_field_type).set(&type_handler_medium_blob); } +#line 31405 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1026: -#line 7023 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_field_type).set(&type_handler_blob, (yyvsp[-1].const_simple_string)); } -#line 31597 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7026 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_field_type).set(&type_handler_tiny_blob); } +#line 31411 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1027: -#line 7025 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_field_type).set(&type_handler_medium_blob); } -#line 31603 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7028 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_field_type).set(&type_handler_blob, (yyvsp[-1].const_simple_string)); } +#line 31417 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1028: -#line 7027 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_field_type).set(&type_handler_long_blob); } -#line 31609 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7030 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_field_type).set(&type_handler_medium_blob); } +#line 31423 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1029: -#line 7029 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7032 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type).set(&type_handler_long_blob); } -#line 31615 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31429 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1030: -#line 7031 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_field_type).set(&type_handler_medium_blob); } -#line 31621 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7034 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_field_type).set(&type_handler_long_blob); } +#line 31435 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1031: -#line 7033 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7036 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_field_type).set(&type_handler_medium_blob); } +#line 31441 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 1032: +#line 7038 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->charset= &my_charset_utf8mb4_bin; (yyval.Lex_field_type).set(&type_handler_long_blob); } -#line 31630 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 1032: -#line 7041 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_field_type).set(&type_handler_enum); } -#line 31636 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31450 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1033: -#line 7043 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_field_type).set(&type_handler_set); } -#line 31642 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7046 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_field_type).set(&type_handler_enum); } +#line 31456 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1034: -#line 7047 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.geom_type)= Field::GEOM_GEOMETRY; } -#line 31648 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7048 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_field_type).set(&type_handler_set); } +#line 31462 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1035: -#line 7048 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.geom_type)= Field::GEOM_GEOMETRYCOLLECTION; } -#line 31654 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7052 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.geom_type)= Field::GEOM_GEOMETRY; } +#line 31468 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1036: -#line 7049 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.geom_type)= Field::GEOM_POINT; } -#line 31660 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7053 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.geom_type)= Field::GEOM_GEOMETRYCOLLECTION; } +#line 31474 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1037: -#line 7050 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.geom_type)= Field::GEOM_MULTIPOINT; } -#line 31666 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7054 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.geom_type)= Field::GEOM_POINT; } +#line 31480 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1038: -#line 7051 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.geom_type)= Field::GEOM_LINESTRING; } -#line 31672 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7055 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.geom_type)= Field::GEOM_MULTIPOINT; } +#line 31486 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1039: -#line 7052 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.geom_type)= Field::GEOM_MULTILINESTRING; } -#line 31678 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7056 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.geom_type)= Field::GEOM_LINESTRING; } +#line 31492 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1040: -#line 7053 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.geom_type)= Field::GEOM_POLYGON; } -#line 31684 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7057 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.geom_type)= Field::GEOM_MULTILINESTRING; } +#line 31498 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1041: -#line 7054 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.geom_type)= Field::GEOM_MULTIPOLYGON; } -#line 31690 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7058 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.geom_type)= Field::GEOM_POLYGON; } +#line 31504 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1042: -#line 7058 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 31696 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7059 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.geom_type)= Field::GEOM_MULTIPOLYGON; } +#line 31510 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1043: -#line 7062 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7063 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 31702 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31516 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1044: -#line 7063 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7067 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 31708 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31522 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1045: -#line 7067 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7068 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 31714 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31528 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1046: -#line 7068 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7072 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 31720 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31534 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1047: -#line 7072 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7073 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 31726 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31540 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1048: -#line 7073 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7077 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 31732 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31546 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1049: -#line 7074 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7078 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 31738 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31552 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1050: -#line 7075 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7079 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 31744 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31558 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1051: -#line 7076 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7080 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 31750 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31564 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1052: -#line 7080 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.type_handler)= &type_handler_long; } -#line 31756 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7081 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {} +#line 31570 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1053: -#line 7081 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.type_handler)= &type_handler_tiny; } -#line 31762 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7085 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.type_handler)= &type_handler_long; } +#line 31576 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1054: -#line 7082 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.type_handler)= &type_handler_short; } -#line 31768 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7086 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.type_handler)= &type_handler_tiny; } +#line 31582 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1055: -#line 7083 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.type_handler)= &type_handler_int24; } -#line 31774 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7087 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.type_handler)= &type_handler_short; } +#line 31588 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1056: -#line 7084 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.type_handler)= &type_handler_longlong; } -#line 31780 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7088 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.type_handler)= &type_handler_int24; } +#line 31594 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1057: #line 7089 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.type_handler)= &type_handler_longlong; } +#line 31600 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 1058: +#line 7094 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.type_handler)= thd->variables.sql_mode & MODE_REAL_AS_FLOAT ? static_cast(&type_handler_float) : static_cast(&type_handler_double); } -#line 31790 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 1058: -#line 7094 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.type_handler)= &type_handler_double; } -#line 31796 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31610 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1059: -#line 7095 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7099 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.type_handler)= &type_handler_double; } -#line 31802 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31616 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1060: #line 7100 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->last_field->srid= 0; } -#line 31808 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + { (yyval.type_handler)= &type_handler_double; } +#line 31622 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1061: -#line 7103 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { - Lex->last_field->srid=atoi((yyvsp[0].lex_str).str); - } -#line 31816 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7105 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->last_field->srid= 0; } +#line 31628 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1062: -#line 7109 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_length_and_dec).set(0, 0); } -#line 31822 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7108 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { + Lex->last_field->srid=atoi((yyvsp[0].lex_str).str); + } +#line 31636 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1063: -#line 7110 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_length_and_dec).set((yyvsp[0].const_simple_string), 0); } -#line 31828 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7114 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_length_and_dec).set(0, 0); } +#line 31642 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1064: -#line 7111 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_length_and_dec)= (yyvsp[0].Lex_length_and_dec); } -#line 31834 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7115 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_length_and_dec).set((yyvsp[0].const_simple_string), 0); } +#line 31648 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1065: -#line 7115 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_length_and_dec).set((yyvsp[-3].lex_str).str, (yyvsp[-1].lex_str).str); } -#line 31840 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7116 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_length_and_dec)= (yyvsp[0].Lex_length_and_dec); } +#line 31654 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1066: -#line 7119 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 31846 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7120 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_length_and_dec).set((yyvsp[-3].lex_str).str, (yyvsp[-1].lex_str).str); } +#line 31660 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1067: -#line 7120 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7124 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 31852 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31666 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1068: -#line 7121 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->last_field->flags|= UNSIGNED_FLAG;} -#line 31858 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7125 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {} +#line 31672 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1069: -#line 7122 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->last_field->flags|= UNSIGNED_FLAG | ZEROFILL_FLAG; } -#line 31864 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7126 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->last_field->flags|= UNSIGNED_FLAG;} +#line 31678 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1070: -#line 7123 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7127 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_field->flags|= UNSIGNED_FLAG | ZEROFILL_FLAG; } -#line 31870 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31684 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1071: -#line 7124 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7128 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_field->flags|= UNSIGNED_FLAG | ZEROFILL_FLAG; } -#line 31876 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31690 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1072: -#line 7128 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.const_simple_string)= (yyvsp[-1].lex_str).str; } -#line 31882 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7129 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->last_field->flags|= UNSIGNED_FLAG | ZEROFILL_FLAG; } +#line 31696 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1073: -#line 7129 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7133 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.const_simple_string)= (yyvsp[-1].lex_str).str; } -#line 31888 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31702 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1074: -#line 7130 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7134 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.const_simple_string)= (yyvsp[-1].lex_str).str; } -#line 31894 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31708 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1075: -#line 7131 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7135 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.const_simple_string)= (yyvsp[-1].lex_str).str; } -#line 31900 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31714 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1076: -#line 7134 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.const_simple_string)= (char*) 0; /* use default length */ } -#line 31906 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7136 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.const_simple_string)= (yyvsp[-1].lex_str).str; } +#line 31720 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1077: -#line 7135 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.const_simple_string)= (yyvsp[0].const_simple_string); } -#line 31912 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7140 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.const_simple_string)= (char*) 0; /* use default length */ } +#line 31726 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1078: -#line 7138 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.const_simple_string)= (char*) "1"; } -#line 31918 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7141 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.const_simple_string)= (yyvsp[0].const_simple_string); } +#line 31732 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1079: -#line 7139 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.const_simple_string)= (yyvsp[0].const_simple_string); } -#line 31924 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7145 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.const_simple_string)= (char*) "1"; } +#line 31738 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1080: -#line 7160 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_length_and_dec).set("4000", "4000"); } -#line 31930 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7146 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.const_simple_string)= (yyvsp[0].const_simple_string); } +#line 31744 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1081: -#line 7161 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_length_and_dec).set((yyvsp[0].const_simple_string), NULL); } -#line 31936 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7168 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_length_and_dec).set("4000", "4000"); } +#line 31750 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1082: -#line 7164 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_length_and_dec).set("2000", "2000"); } -#line 31942 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7169 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_length_and_dec).set((yyvsp[0].const_simple_string), NULL); } +#line 31756 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1083: -#line 7165 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_length_and_dec).set((yyvsp[0].const_simple_string), NULL); } -#line 31948 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7173 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_length_and_dec).set("2000", "2000"); } +#line 31762 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1084: -#line 7168 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_length_and_dec).set(0, 0); } -#line 31954 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7174 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_length_and_dec).set((yyvsp[0].const_simple_string), NULL); } +#line 31768 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1085: -#line 7169 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_length_and_dec)= (yyvsp[0].Lex_length_and_dec); } -#line 31960 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7178 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_length_and_dec).set(0, 0); } +#line 31774 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1086: -#line 7174 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7179 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_length_and_dec)= (yyvsp[0].Lex_length_and_dec); } +#line 31780 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 1087: +#line 7184 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 31966 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31786 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1088: -#line 7179 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1089: +#line 7189 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_field->flags&= ~ NOT_NULL_FLAG; } -#line 31972 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31792 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1089: -#line 7180 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1090: +#line 7190 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_field->default_value= (yyvsp[0].virtual_column); } -#line 31978 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31798 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1090: -#line 7182 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1091: +#line 7192 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Item *item= new (thd->mem_root) Item_func_now_local(thd, (yyvsp[0].num)); if (unlikely(item == NULL)) MYSQL_YYABORT; Lex->last_field->on_update= item; } -#line 31989 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31809 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1091: -#line 7188 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1092: +#line 7198 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_field->flags|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG; } -#line 31995 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31815 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1092: -#line 7190 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1093: +#line 7200 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->last_field->flags|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNIQUE_KEY_FLAG; lex->alter_info.flags|= ALTER_ADD_INDEX; } -#line 32005 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31825 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1093: -#line 7196 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1094: +#line 7206 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->charset && !my_charset_same(Lex->charset,(yyvsp[0].charset)))) my_yyabort_error((ER_COLLATION_CHARSET_MISMATCH, MYF(0), (yyvsp[0].charset)->name,Lex->charset->csname)); Lex->last_field->charset= (yyvsp[0].charset); } -#line 32016 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31836 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1095: -#line 7206 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1096: +#line 7216 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.const_simple_string)= NULL; } -#line 32022 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31842 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1096: -#line 7207 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1097: +#line 7217 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.const_simple_string)= (yyvsp[0].ident_sys).str; } -#line 32028 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31848 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1097: -#line 7211 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1098: +#line 7221 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 32034 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31854 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1098: -#line 7212 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1099: +#line 7222 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 32040 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31860 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1099: -#line 7217 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1100: +#line 7227 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->last_field->set_compressed((yyvsp[0].const_simple_string)))) MYSQL_YYABORT; } -#line 32049 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31869 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1100: -#line 7225 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1101: +#line 7235 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->last_field->set_compressed_deprecated(thd, (yyvsp[0].const_simple_string)))) MYSQL_YYABORT; } -#line 32058 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31878 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1101: -#line 7233 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1102: +#line 7243 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->last_field-> set_compressed_deprecated_column_attribute(thd, (yyvsp[-1].kwd).pos(), (yyvsp[0].const_simple_string)))) MYSQL_YYABORT; } -#line 32068 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31888 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1102: -#line 7242 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1103: +#line 7252 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_field->flags|= NOT_NULL_FLAG; } -#line 32076 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31896 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1103: -#line 7246 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1104: +#line 7256 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->last_field->flags|= PRI_KEY_FLAG | NOT_NULL_FLAG; lex->alter_info.flags|= ALTER_ADD_INDEX; } -#line 32086 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31906 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1106: -#line 7257 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1107: +#line 7267 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[0].lex_str).length > ENGINE_OPTION_MAX_LENGTH)) my_yyabort_error((ER_VALUE_TOO_LONG, MYF(0), (yyvsp[-2].ident_sys).str)); @@ -32095,11 +31915,11 @@ &Lex->last_field->option_list, &Lex->option_list_last); } -#line 32099 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31919 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1107: -#line 7266 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1108: +#line 7276 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[0].ident_sys).length > ENGINE_OPTION_MAX_LENGTH)) my_yyabort_error((ER_VALUE_TOO_LONG, MYF(0), (yyvsp[-2].ident_sys).str)); @@ -32108,60 +31928,65 @@ &Lex->last_field->option_list, &Lex->option_list_last); } -#line 32112 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31932 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1108: -#line 7275 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1109: +#line 7285 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (void) new (thd->mem_root) engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].ulonglong_number), &Lex->last_field->option_list, &Lex->option_list_last, thd->mem_root); } -#line 32122 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31942 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1109: -#line 7281 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1110: +#line 7291 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (void) new (thd->mem_root) engine_option_value((yyvsp[-2].ident_sys), &Lex->last_field->option_list, &Lex->option_list_last); } -#line 32132 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31952 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1110: -#line 7287 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1111: +#line 7297 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_field->versioning= (yyvsp[-1].vers_column_versioning); Lex->create_info.options|= HA_VERSIONED_TABLE; + if (Lex->alter_info.flags & ALTER_DROP_SYSTEM_VERSIONING) + { + my_yyabort_error((ER_VERS_NOT_VERSIONED, MYF(0), + Lex->create_last_non_select_table->table_name.str)); + } } -#line 32141 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31966 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1111: -#line 7295 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1112: +#line 7310 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_COLUMN_UNVERSIONED; Lex->create_info.vers_info.versioned_fields= true; (yyval.vers_column_versioning)= Column_definition::WITH_VERSIONING; } -#line 32151 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31976 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1112: -#line 7301 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1113: +#line 7316 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_COLUMN_UNVERSIONED; Lex->create_info.vers_info.unversioned_fields= true; (yyval.vers_column_versioning)= Column_definition::WITHOUT_VERSIONING; } -#line 32161 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 31986 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1113: -#line 7311 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1114: +#line 7326 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type)= (yyvsp[-1].Lex_field_type); @@ -32172,11 +31997,11 @@ } Lex->last_field->set_attributes((yyvsp[-1].Lex_field_type), Lex->charset); } -#line 32176 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32001 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1114: -#line 7325 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1115: +#line 7340 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_field_type)= (yyvsp[-1].Lex_field_type); if ((yyvsp[0].charset)) @@ -32186,205 +32011,205 @@ } Lex->last_field->set_attributes((yyvsp[-1].Lex_field_type), Lex->charset); } -#line 32190 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32015 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1115: -#line 7337 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1116: +#line 7352 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 32196 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32021 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1116: -#line 7338 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1117: +#line 7353 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 32202 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32027 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1117: -#line 7343 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1118: +#line 7358 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.charset)=get_charset_by_csname((yyvsp[0].lex_str).str,MY_CS_PRIMARY,MYF(0))))) my_yyabort_error((ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[0].lex_str).str)); } -#line 32211 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32036 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1118: -#line 7347 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1119: +#line 7362 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.charset)= &my_charset_bin; } -#line 32217 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32042 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1119: -#line 7351 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1120: +#line 7366 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.charset)=(yyvsp[0].charset); } -#line 32223 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32048 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1120: -#line 7352 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1121: +#line 7367 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.charset)=NULL; } -#line 32229 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32054 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1121: -#line 7356 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1122: +#line 7371 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.charset)= NULL; } -#line 32235 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32060 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1122: -#line 7357 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1123: +#line 7372 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.charset)= (yyvsp[0].charset); } -#line 32241 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32066 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1123: -#line 7362 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1124: +#line 7377 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.charset)=get_charset_by_csname((yyvsp[0].lex_str).str, MY_CS_PRIMARY,MYF(0))) && !((yyval.charset)=get_old_charset_by_name((yyvsp[0].lex_str).str)))) my_yyabort_error((ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[0].lex_str).str)); } -#line 32252 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32077 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1124: -#line 7368 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1125: +#line 7383 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.charset)= &my_charset_bin; } -#line 32258 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32083 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1125: -#line 7372 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1126: +#line 7387 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.charset)=(yyvsp[0].charset); } -#line 32264 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32089 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1126: -#line 7373 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1127: +#line 7388 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.charset)=NULL; } -#line 32270 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32095 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1127: -#line 7378 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1128: +#line 7393 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.charset)= mysqld_collation_get_by_name((yyvsp[0].lex_str).str)))) MYSQL_YYABORT; } -#line 32279 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 1128: -#line 7385 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.charset)=NULL; } -#line 32285 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32104 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1129: -#line 7386 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.charset)=(yyvsp[0].charset); } -#line 32291 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7400 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.charset)=NULL; } +#line 32110 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1130: -#line 7390 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7401 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.charset)=(yyvsp[0].charset); } -#line 32297 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32116 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1131: -#line 7391 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.charset)=NULL; } -#line 32303 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7405 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.charset)=(yyvsp[0].charset); } +#line 32122 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1132: -#line 7395 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 32309 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7406 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.charset)=NULL; } +#line 32128 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1133: -#line 7396 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7410 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 32315 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32134 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1134: -#line 7400 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.charset)= (yyvsp[0].charset); } -#line 32321 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7411 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {} +#line 32140 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1135: -#line 7401 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.charset)= &my_charset_latin1; } -#line 32327 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7415 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.charset)= (yyvsp[0].charset); } +#line 32146 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1136: -#line 7403 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7416 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.charset)= &my_charset_latin1; } +#line 32152 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 1137: +#line 7418 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.charset)= get_charset_by_csname("ucs2", MY_CS_PRIMARY,MYF(0))))) my_yyabort_error((ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2")); } -#line 32336 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32161 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1137: -#line 7410 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1138: +#line 7425 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { bincmp_collation(NULL, false); } -#line 32342 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32167 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1138: -#line 7411 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1139: +#line 7426 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 32348 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32173 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1139: -#line 7415 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1140: +#line 7430 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { bincmp_collation(&my_charset_bin, false); } -#line 32354 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32179 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1140: -#line 7416 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1141: +#line 7431 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { bincmp_collation((yyvsp[-1].charset), (yyvsp[0].num)); } -#line 32360 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32185 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1141: -#line 7417 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1142: +#line 7432 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { bincmp_collation(NULL, true); } -#line 32366 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32191 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1142: -#line 7418 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1143: +#line 7433 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { bincmp_collation((yyvsp[0].charset), true); } -#line 32372 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32197 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1143: -#line 7422 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1144: +#line 7437 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= false; } -#line 32378 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32203 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1144: -#line 7423 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1145: +#line 7438 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= true; } -#line 32384 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32209 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1145: -#line 7428 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1146: +#line 7443 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[0].ulong_num) == 0)) { @@ -32392,148 +32217,148 @@ MYSQL_YYABORT; } } -#line 32396 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32221 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1146: -#line 7436 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1147: +#line 7451 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[-2].ulong_num); } -#line 32402 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32227 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1147: -#line 7440 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1148: +#line 7455 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= 0; } -#line 32408 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32233 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1148: -#line 7441 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1149: +#line 7456 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= 1 << MY_STRXFRM_DESC_SHIFT; } -#line 32414 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32239 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1149: -#line 7445 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1150: +#line 7460 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= 1 << MY_STRXFRM_REVERSE_SHIFT; } -#line 32420 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32245 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1150: -#line 7448 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1151: +#line 7463 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= 0; } -#line 32426 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32251 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1151: -#line 7449 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1152: +#line 7464 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[0].ulong_num); } -#line 32432 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32257 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1152: -#line 7450 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1153: +#line 7465 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[-1].ulong_num) | (yyvsp[0].ulong_num); } -#line 32438 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32263 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1153: -#line 7451 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1154: +#line 7466 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[0].ulong_num) ; } -#line 32444 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32269 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1154: -#line 7456 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1155: +#line 7471 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[0].ulong_num) < 1 ? 1 : ((yyvsp[0].ulong_num) > MY_STRXFRM_NLEVELS ? MY_STRXFRM_NLEVELS : (yyvsp[0].ulong_num)); (yyval.ulong_num)--; } -#line 32453 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32278 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1155: -#line 7464 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1156: +#line 7479 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (1 | (yyvsp[0].ulong_num)) << (yyvsp[-1].ulong_num); } -#line 32461 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32286 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1156: -#line 7470 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1157: +#line 7485 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[0].ulong_num); } -#line 32467 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32292 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1157: -#line 7471 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1158: +#line 7486 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)|= (yyvsp[0].ulong_num); } -#line 32473 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32298 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1158: -#line 7476 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1159: +#line 7491 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { uint start= (yyvsp[-2].ulong_num); uint end= (yyvsp[0].ulong_num); for ((yyval.ulong_num)= 0; start <= end; start++) (yyval.ulong_num)|= (1 << start); } -#line 32484 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32309 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1159: -#line 7485 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1160: +#line 7500 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[0].ulong_num); } -#line 32490 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32315 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1160: -#line 7486 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1161: +#line 7501 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[0].ulong_num); } -#line 32496 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32321 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1161: -#line 7490 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1162: +#line 7505 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= 0; } -#line 32502 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32327 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1162: -#line 7491 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1163: +#line 7506 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[0].ulong_num); } -#line 32508 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32333 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1165: -#line 7505 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1166: +#line 7520 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.table)=(yyvsp[-3].table); } -#line 32516 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32341 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1166: -#line 7512 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1167: +#line 7527 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->ref_list.empty(); } -#line 32522 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32347 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1168: -#line 7518 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1169: +#line 7533 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Key_part_spec *key= new (thd->mem_root) Key_part_spec(&(yyvsp[0].ident_sys), 0); if (unlikely(key == NULL)) MYSQL_YYABORT; Lex->ref_list.push_back(key, thd->mem_root); } -#line 32533 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32358 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1169: -#line 7525 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1170: +#line 7540 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Key_part_spec *key= new (thd->mem_root) Key_part_spec(&(yyvsp[0].ident_sys), 0); if (unlikely(key == NULL)) @@ -32542,181 +32367,181 @@ lex->ref_list.empty(); lex->ref_list.push_back(key, thd->mem_root); } -#line 32546 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32371 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1170: -#line 7537 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1171: +#line 7552 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->fk_match_option= Foreign_key::FK_MATCH_UNDEF; } -#line 32552 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32377 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1171: -#line 7539 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1172: +#line 7554 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->fk_match_option= Foreign_key::FK_MATCH_FULL; } -#line 32558 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32383 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1172: -#line 7541 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1173: +#line 7556 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->fk_match_option= Foreign_key::FK_MATCH_PARTIAL; } -#line 32564 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32389 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1173: -#line 7543 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1174: +#line 7558 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->fk_match_option= Foreign_key::FK_MATCH_SIMPLE; } -#line 32570 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32395 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1174: -#line 7548 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1175: +#line 7563 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->fk_update_opt= FK_OPTION_UNDEF; lex->fk_delete_opt= FK_OPTION_UNDEF; } -#line 32580 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32405 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1175: -#line 7554 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1176: +#line 7569 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->fk_update_opt= (yyvsp[0].m_fk_option); lex->fk_delete_opt= FK_OPTION_UNDEF; } -#line 32590 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32415 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1176: -#line 7560 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1177: +#line 7575 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->fk_update_opt= FK_OPTION_UNDEF; lex->fk_delete_opt= (yyvsp[0].m_fk_option); } -#line 32600 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32425 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1177: -#line 7567 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1178: +#line 7582 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->fk_update_opt= (yyvsp[-3].m_fk_option); lex->fk_delete_opt= (yyvsp[0].m_fk_option); } -#line 32610 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32435 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1178: -#line 7574 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1179: +#line 7589 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->fk_update_opt= (yyvsp[0].m_fk_option); lex->fk_delete_opt= (yyvsp[-3].m_fk_option); } -#line 32620 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 1179: -#line 7582 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.m_fk_option)= FK_OPTION_RESTRICT; } -#line 32626 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32445 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1180: -#line 7583 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.m_fk_option)= FK_OPTION_CASCADE; } -#line 32632 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7597 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.m_fk_option)= FK_OPTION_RESTRICT; } +#line 32451 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1181: -#line 7584 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.m_fk_option)= FK_OPTION_SET_NULL; } -#line 32638 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7598 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.m_fk_option)= FK_OPTION_CASCADE; } +#line 32457 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1182: -#line 7585 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.m_fk_option)= FK_OPTION_NO_ACTION; } -#line 32644 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7599 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.m_fk_option)= FK_OPTION_SET_NULL; } +#line 32463 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1183: -#line 7586 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.m_fk_option)= FK_OPTION_SET_DEFAULT; } -#line 32650 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7600 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.m_fk_option)= FK_OPTION_NO_ACTION; } +#line 32469 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1184: -#line 7590 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.key_type)= Key::PRIMARY; } -#line 32656 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7601 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.m_fk_option)= FK_OPTION_SET_DEFAULT; } +#line 32475 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1185: -#line 7591 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.key_type)= Key::UNIQUE; } -#line 32662 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7605 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.key_type)= Key::PRIMARY; } +#line 32481 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1186: -#line 7595 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 32668 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7606 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.key_type)= Key::UNIQUE; } +#line 32487 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1187: -#line 7596 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7610 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 32674 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32493 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1188: -#line 7600 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7611 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 32680 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32499 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1190: -#line 7605 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1189: +#line 7615 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 32686 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32505 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1191: -#line 7606 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7620 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 32692 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32511 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1192: -#line 7607 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7621 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 32698 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32517 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1193: -#line 7611 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.key_type)= Key::MULTIPLE; } -#line 32704 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7622 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {} +#line 32523 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1194: -#line 7612 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.key_type)= Key::UNIQUE; } -#line 32710 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7626 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.key_type)= Key::MULTIPLE; } +#line 32529 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1195: -#line 7616 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.key_type)= Key::FULLTEXT;} -#line 32716 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7627 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.key_type)= Key::UNIQUE; } +#line 32535 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1196: -#line 7621 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7631 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.key_type)= Key::FULLTEXT;} +#line 32541 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 1197: +#line 7636 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { #ifdef HAVE_SPATIAL (yyval.key_type)= Key::SPATIAL; @@ -32725,104 +32550,104 @@ sym_group_geom.needed_define)); #endif } -#line 32729 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32554 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1197: -#line 7632 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1198: +#line 7647 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 32735 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32560 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1198: -#line 7633 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1199: +#line 7648 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_key->option_list= Lex->option_list; } -#line 32741 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32566 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1199: -#line 7637 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1200: +#line 7652 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 32747 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32572 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1200: -#line 7638 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1201: +#line 7653 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_key->option_list= Lex->option_list; } -#line 32753 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32578 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1201: -#line 7642 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1202: +#line 7657 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 32759 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32584 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1202: -#line 7643 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1203: +#line 7658 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_key->option_list= Lex->option_list; } -#line 32765 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 1209: -#line 7662 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.key_alg)= HA_KEY_ALG_UNDEF; } -#line 32771 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32590 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1210: -#line 7663 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.key_alg)= (yyvsp[0].key_alg); } -#line 32777 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7677 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.key_alg)= HA_KEY_ALG_UNDEF; } +#line 32596 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1211: -#line 7667 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.key_alg)= HA_KEY_ALG_UNDEF; } -#line 32783 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7678 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.key_alg)= (yyvsp[0].key_alg); } +#line 32602 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1212: -#line 7668 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.key_alg)= (yyvsp[0].key_alg); } -#line 32789 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7683 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.key_alg)= HA_KEY_ALG_UNDEF; } +#line 32608 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1213: -#line 7669 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7684 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.key_alg)= (yyvsp[0].key_alg); } -#line 32795 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32614 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1214: -#line 7673 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->last_key->key_create_info.algorithm= (yyvsp[0].key_alg); } -#line 32801 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 7685 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.key_alg)= (yyvsp[0].key_alg); } +#line 32620 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1215: -#line 7675 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7690 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_key->key_create_info.algorithm= (yyvsp[0].key_alg); } -#line 32807 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32626 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1216: -#line 7680 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 7692 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->last_key->key_create_info.algorithm= (yyvsp[0].key_alg); } +#line 32632 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 1217: +#line 7697 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_key->key_create_info.block_size= (yyvsp[0].ulong_num); Lex->last_key->key_create_info.flags|= HA_USES_BLOCK_SIZE; } -#line 32816 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32641 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1217: -#line 7685 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1218: +#line 7702 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_key->key_create_info.comment= (yyvsp[0].lex_str); } -#line 32822 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32647 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1218: -#line 7687 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1219: +#line 7704 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[0].lex_str).length > ENGINE_OPTION_MAX_LENGTH)) my_yyabort_error((ER_VALUE_TOO_LONG, MYF(0), (yyvsp[-2].ident_sys).str)); @@ -32830,11 +32655,11 @@ engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].lex_str), true, &Lex->option_list, &Lex->option_list_last); } -#line 32834 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32659 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1219: -#line 7695 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1220: +#line 7712 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[0].ident_sys).length > ENGINE_OPTION_MAX_LENGTH)) my_yyabort_error((ER_VALUE_TOO_LONG, MYF(0), (yyvsp[-2].ident_sys).str)); @@ -32842,86 +32667,86 @@ engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].ident_sys), false, &Lex->option_list, &Lex->option_list_last); } -#line 32846 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32671 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1220: -#line 7703 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1221: +#line 7720 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (void) new (thd->mem_root) engine_option_value((yyvsp[-2].ident_sys), (yyvsp[0].ulonglong_number), &Lex->option_list, &Lex->option_list_last, thd->mem_root); } -#line 32856 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32681 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1221: -#line 7709 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1222: +#line 7726 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (void) new (thd->mem_root) engine_option_value((yyvsp[-2].ident_sys), &Lex->option_list, &Lex->option_list_last); } -#line 32866 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32691 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1226: -#line 7728 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1227: +#line 7745 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (likely(plugin_is_ready(&(yyvsp[0].ident_sys), MYSQL_FTPARSER_PLUGIN))) Lex->last_key->key_create_info.parser_name= (yyvsp[0].ident_sys); else my_yyabort_error((ER_FUNCTION_NOT_DEFINED, MYF(0), (yyvsp[0].ident_sys).str)); } -#line 32877 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32702 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1227: -#line 7737 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1228: +#line 7754 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.key_alg)= HA_KEY_ALG_BTREE; } -#line 32883 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32708 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1228: -#line 7738 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1229: +#line 7755 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.key_alg)= HA_KEY_ALG_RTREE; } -#line 32889 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32714 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1229: -#line 7739 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1230: +#line 7756 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.key_alg)= HA_KEY_ALG_HASH; } -#line 32895 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32720 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1230: -#line 7744 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1231: +#line 7761 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_key->columns.push_back((yyvsp[-1].key_part), thd->mem_root); } -#line 32903 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32728 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1231: -#line 7748 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1232: +#line 7765 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_key->columns.push_back((yyvsp[-1].key_part), thd->mem_root); } -#line 32911 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32736 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1232: -#line 7755 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1233: +#line 7772 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.key_part)= new (thd->mem_root) Key_part_spec(&(yyvsp[0].ident_sys), 0); if (unlikely((yyval.key_part) == NULL)) MYSQL_YYABORT; } -#line 32921 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32746 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1233: -#line 7761 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1234: +#line 7778 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { int key_part_len= atoi((yyvsp[-1].lex_str).str); if (unlikely(!key_part_len)) @@ -32930,35 +32755,35 @@ if (unlikely((yyval.key_part) == NULL)) MYSQL_YYABORT; } -#line 32934 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32759 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1234: -#line 7772 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1235: +#line 7789 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)= null_clex_str; } -#line 32940 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32765 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1235: -#line 7773 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1236: +#line 7790 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)= (yyvsp[0].lex_str); } -#line 32946 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32771 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1236: -#line 7778 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1237: +#line 7795 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_field->interval_list.push_back((yyvsp[0].string), thd->mem_root); } -#line 32952 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32777 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1237: -#line 7780 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1238: +#line 7797 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_field->interval_list.push_back((yyvsp[0].string), thd->mem_root); } -#line 32958 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32783 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1238: -#line 7788 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1239: +#line 7806 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->name= null_clex_str; Lex->table_type= TABLE_TYPE_UNKNOWN; @@ -32972,11 +32797,11 @@ Lex->create_info.storage_media= HA_SM_DEFAULT; DBUG_ASSERT(!Lex->m_sql_cmd); } -#line 32976 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32801 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1239: -#line 7802 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1240: +#line 7820 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!Lex->select_lex.add_table_to_list(thd, (yyvsp[-1].table), NULL, TL_OPTION_UPDATING, @@ -32985,12 +32810,13 @@ MYSQL_YYABORT; Lex->select_lex.db= (Lex->select_lex.table_list.first)->db; Lex->create_last_non_select_table= Lex->last_table(); + Lex->mark_first_table_as_inserting(); } -#line 32990 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32816 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1240: -#line 7812 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1241: +#line 7831 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (likely(!Lex->m_sql_cmd)) { @@ -33000,20 +32826,20 @@ MYSQL_YYABORT; } } -#line 33004 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32830 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1241: -#line 7822 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1242: +#line 7841 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->create_info.default_table_charset= NULL; Lex->create_info.used_fields= 0; } -#line 33013 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32839 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1242: -#line 7827 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1243: +#line 7846 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command=SQLCOM_ALTER_DB; @@ -33022,11 +32848,11 @@ unlikely(lex->copy_db_to(&lex->name))) MYSQL_YYABORT; } -#line 33026 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32852 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1243: -#line 7836 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1244: +#line 7855 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->sphead)) @@ -33034,11 +32860,11 @@ lex->sql_command= SQLCOM_ALTER_DB_UPGRADE; lex->name= (yyvsp[-4].ident_sys); } -#line 33038 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32864 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1244: -#line 7844 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1245: +#line 7863 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; @@ -33046,22 +32872,22 @@ my_yyabort_error((ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE")); lex->sp_chistics.init(); } -#line 33050 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32876 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1245: -#line 7852 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1246: +#line 7871 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_ALTER_PROCEDURE; lex->spname= (yyvsp[-2].spname); } -#line 33061 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32887 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1246: -#line 7859 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1247: +#line 7878 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; @@ -33069,52 +32895,52 @@ my_yyabort_error((ER_SP_NO_DROP_SP, MYF(0), "FUNCTION")); lex->sp_chistics.init(); } -#line 33073 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32899 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1247: -#line 7867 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1248: +#line 7886 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_ALTER_FUNCTION; lex->spname= (yyvsp[-2].spname); } -#line 33084 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32910 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1248: -#line 7874 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1249: +#line 7893 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_alter_view(thd, (yyvsp[-4].num), (yyvsp[-2].view_suid), (yyvsp[0].table)))) MYSQL_YYABORT; } -#line 33093 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32919 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1249: -#line 7879 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1250: +#line 7898 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 33099 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32925 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1250: -#line 7886 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1251: +#line 7905 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_alter_view(thd, VIEW_ALGORITHM_INHERIT, (yyvsp[-2].view_suid), (yyvsp[0].table)))) MYSQL_YYABORT; } -#line 33108 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32934 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1251: -#line 7891 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1252: +#line 7910 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 33114 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32940 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1252: -#line 7893 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1253: +#line 7912 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* It is safe to use Lex->spname because @@ -33131,11 +32957,11 @@ Lex->sql_command= SQLCOM_ALTER_EVENT; Lex->stmt_definition_begin= (yyvsp[-2].simple_string); } -#line 33135 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32961 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1253: -#line 7914 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1254: +#line 7933 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyvsp[-4].num) || (yyvsp[-3].num) || (yyvsp[-2].num) || (yyvsp[-1].num) || (yyvsp[0].num)))) { @@ -33149,72 +32975,72 @@ Lex->sql_command= SQLCOM_ALTER_EVENT; Lex->stmt_definition_end= (char*)YYLIP->get_cpp_ptr(); } -#line 33153 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32979 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1254: -#line 7928 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1255: +#line 7947 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= ALTER_TABLESPACE; } -#line 33162 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32988 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1255: -#line 7933 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1256: +#line 7952 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= ALTER_LOGFILE_GROUP; } -#line 33171 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 32997 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1256: -#line 7938 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1257: +#line 7957 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= CHANGE_FILE_TABLESPACE; } -#line 33180 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33006 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1257: -#line 7943 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1258: +#line 7962 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= ALTER_ACCESS_MODE_TABLESPACE; } -#line 33189 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33015 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1258: -#line 7948 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1259: +#line 7967 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_ALTER_SERVER; lex->server_options.reset((yyvsp[0].lex_str)); } -#line 33199 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33025 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1259: -#line 7952 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1260: +#line 7971 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 33205 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33031 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1260: -#line 7956 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1261: +#line 7975 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->create_info.set((yyvsp[-5].object_ddl_options)); Lex->sql_command= SQLCOM_ALTER_USER; } -#line 33214 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33040 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1261: -#line 7961 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1262: +#line 7980 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->name= null_clex_str; @@ -33224,11 +33050,11 @@ lex->no_write_to_binlog= 0; DBUG_ASSERT(!lex->m_sql_cmd); } -#line 33228 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33054 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1262: -#line 7971 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1263: +#line 7990 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(!(lex->create_info.seq_create_info= @@ -33239,52 +33065,52 @@ MDL_EXCLUSIVE))) MYSQL_YYABORT; } -#line 33243 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33069 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1263: -#line 7982 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1264: +#line 8001 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* Create a generic ALTER SEQUENCE statment. */ Lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_alter_sequence((yyvsp[-4].object_ddl_options)); if (unlikely(Lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 33254 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 1264: -#line 7991 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.num)= 0;} -#line 33260 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33080 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1265: -#line 7992 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.num)= 1; } -#line 33266 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 8010 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.num)= 0;} +#line 33086 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1266: -#line 7993 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 8011 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 33272 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33092 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1267: -#line 7994 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 8012 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 33278 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33098 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1268: -#line 7998 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.num)= 0;} -#line 33284 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 8013 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.num)= 1; } +#line 33104 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1269: -#line 8000 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 8017 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.num)= 0;} +#line 33110 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 1270: +#line 8019 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* Use lex's spname to hold the new name. @@ -33293,29 +33119,29 @@ Lex->spname= (yyvsp[0].spname); (yyval.num)= 1; } -#line 33297 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33123 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1270: -#line 8011 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1271: +#line 8030 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 0;} -#line 33303 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33129 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1271: -#line 8012 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1272: +#line 8031 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 33309 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33135 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1272: -#line 8016 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1273: +#line 8035 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ident_sys)= Lex_ident_sys(); } -#line 33315 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33141 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1275: -#line 8023 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1276: +#line 8042 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_discard_import_tablespace( @@ -33323,11 +33149,11 @@ if (unlikely(Lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 33327 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33153 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1276: -#line 8031 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1277: +#line 8050 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->m_sql_cmd= new (thd->mem_root) Sql_cmd_discard_import_tablespace( @@ -33335,31 +33161,31 @@ if (unlikely(Lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 33339 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33165 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1282: -#line 8053 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1283: +#line 8072 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.partition_flags|= ALTER_PARTITION_DROP; DBUG_ASSERT(!Lex->if_exists()); Lex->create_info.add((yyvsp[-1].object_ddl_options)); } -#line 33349 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33175 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1283: -#line 8060 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1284: +#line 8079 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_info.partition_flags|= ALTER_PARTITION_REBUILD; lex->no_write_to_binlog= (yyvsp[-1].num); } -#line 33359 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33185 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1284: -#line 8067 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1285: +#line 8086 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; lex->no_write_to_binlog= (yyvsp[-1].num); @@ -33370,11 +33196,11 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 33374 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33200 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1286: -#line 8080 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1287: +#line 8099 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; lex->no_write_to_binlog= (yyvsp[-1].num); @@ -33385,11 +33211,11 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 33389 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33215 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1287: -#line 8091 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1288: +#line 8110 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; lex->check_opt.init(); @@ -33399,11 +33225,11 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 33403 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33229 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1289: -#line 8103 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1290: +#line 8122 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; lex->no_write_to_binlog= (yyvsp[-1].num); @@ -33414,22 +33240,22 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 33418 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33244 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1291: -#line 8115 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1292: +#line 8134 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_info.partition_flags|= ALTER_PARTITION_COALESCE; lex->no_write_to_binlog= (yyvsp[-1].num); lex->alter_info.num_parts= (yyvsp[0].ulong_num); } -#line 33429 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33255 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1292: -#line 8122 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1293: +#line 8141 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; lex->check_opt.init(); @@ -33439,11 +33265,11 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 33443 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33269 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1294: -#line 8134 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1295: +#line 8153 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; lex->select_lex.db= (yyvsp[-1].table)->db; @@ -33463,27 +33289,27 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 33467 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33293 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1295: -#line 8157 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1296: +#line 8176 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.partition_flags|= ALTER_PARTITION_REMOVE; } -#line 33475 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33301 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1296: -#line 8164 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1297: +#line 8183 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.partition_flags|= ALTER_PARTITION_ALL; } -#line 33483 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33309 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1298: -#line 8173 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1299: +#line 8192 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->part_info= new (thd->mem_root) partition_info(); @@ -33495,34 +33321,34 @@ lex->create_info.set((yyvsp[-1].object_ddl_options)); lex->no_write_to_binlog= (yyvsp[0].num); } -#line 33499 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33325 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1299: -#line 8185 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1300: +#line 8204 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 33505 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33331 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1301: -#line 8191 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1302: +#line 8210 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->part_info->num_parts= lex->part_info->partitions.elements; } -#line 33514 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33340 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1302: -#line 8196 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1303: +#line 8215 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->part_info->num_parts= (yyvsp[0].ulong_num); } -#line 33522 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33348 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1303: -#line 8203 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1304: +#line 8222 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->part_info= new (thd->mem_root) partition_info(); @@ -33531,136 +33357,136 @@ lex->no_write_to_binlog= (yyvsp[0].num); } -#line 33535 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33361 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1305: -#line 8216 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1306: +#line 8235 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.partition_flags|= ALTER_PARTITION_TABLE_REORG; } -#line 33543 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33369 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1306: -#line 8220 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1307: +#line 8239 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.partition_flags|= ALTER_PARTITION_REORGANIZE; } -#line 33551 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33377 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1307: -#line 8224 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1308: +#line 8243 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { partition_info *part_info= Lex->part_info; part_info->num_parts= part_info->partitions.elements; } -#line 33560 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33386 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1308: -#line 8231 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1309: +#line 8250 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 33566 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33392 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1309: -#line 8232 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1310: +#line 8251 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 33572 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33398 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1310: -#line 8237 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1311: +#line 8256 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->alter_info.partition_names.push_back((yyvsp[0].ident_sys).str, thd->mem_root))) MYSQL_YYABORT; } -#line 33582 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33408 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1314: -#line 8259 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1315: +#line 8278 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->create_last_non_select_table= lex->last_table(); lex->alter_info.flags|= ALTER_PARSER_ADD_COLUMN; (yyvsp[-1].create_field)->after= (yyvsp[0].lex_str); } -#line 33593 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33419 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1315: -#line 8266 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1316: +#line 8285 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->create_last_non_select_table= Lex->last_table(); Lex->alter_info.flags|= ALTER_ADD_INDEX; } -#line 33602 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33428 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1316: -#line 8271 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1317: +#line 8290 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_ADD_PERIOD; } -#line 33610 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33436 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1317: -#line 8275 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1318: +#line 8294 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->alter_info.flags|= ALTER_PARSER_ADD_COLUMN; if (!lex->alter_info.key_list.is_empty()) lex->alter_info.flags|= ALTER_ADD_INDEX; } -#line 33621 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33447 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1318: -#line 8282 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1319: +#line 8301 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_ADD_CHECK_CONSTRAINT; } -#line 33629 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33455 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1319: -#line 8286 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1320: +#line 8305 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_ADD_CHECK_CONSTRAINT; Lex->add_constraint(&(yyvsp[-1].lex_str), (yyvsp[0].virtual_column), TRUE); } -#line 33638 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33464 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1320: -#line 8292 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1321: +#line 8311 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_CHANGE_COLUMN | ALTER_RENAME_COLUMN; Lex->create_last_non_select_table= Lex->last_table(); (yyvsp[-1].create_field)->change= (yyvsp[-2].lex_str); (yyvsp[-1].create_field)->after= (yyvsp[0].lex_str); } -#line 33649 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33475 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1321: -#line 8300 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1322: +#line 8319 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_CHANGE_COLUMN; Lex->create_last_non_select_table= Lex->last_table(); (yyvsp[-1].create_field)->change= (yyvsp[-1].create_field)->field_name; (yyvsp[-1].create_field)->after= (yyvsp[0].lex_str); } -#line 33660 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33486 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1322: -#line 8307 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1323: +#line 8326 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; Alter_drop *ad= (new (thd->mem_root) @@ -33670,11 +33496,11 @@ lex->alter_info.drop_list.push_back(ad, thd->mem_root); lex->alter_info.flags|= ALTER_PARSER_DROP_COLUMN; } -#line 33674 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33500 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1323: -#line 8317 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1324: +#line 8336 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; Alter_drop *ad= (new (thd->mem_root) @@ -33685,11 +33511,11 @@ lex->alter_info.drop_list.push_back(ad, thd->mem_root); lex->alter_info.flags|= ALTER_DROP_CHECK_CONSTRAINT; } -#line 33689 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33515 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1324: -#line 8328 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1325: +#line 8347 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; Alter_drop *ad= (new (thd->mem_root) @@ -33699,11 +33525,11 @@ lex->alter_info.drop_list.push_back(ad, thd->mem_root); lex->alter_info.flags|= ALTER_DROP_FOREIGN_KEY; } -#line 33703 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33529 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1325: -#line 8338 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1326: +#line 8357 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; Alter_drop *ad= (new (thd->mem_root) @@ -33714,11 +33540,11 @@ lex->alter_info.drop_list.push_back(ad, thd->mem_root); lex->alter_info.flags|= ALTER_DROP_INDEX; } -#line 33718 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33544 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1326: -#line 8349 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1327: +#line 8368 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; Alter_drop *ad= (new (thd->mem_root) @@ -33728,50 +33554,50 @@ lex->alter_info.drop_list.push_back(ad, thd->mem_root); lex->alter_info.flags|= ALTER_DROP_INDEX; } -#line 33732 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33558 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1327: -#line 8359 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1328: +#line 8378 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->alter_info.keys_onoff= Alter_info::DISABLE; lex->alter_info.flags|= ALTER_KEYS_ONOFF; } -#line 33742 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33568 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1328: -#line 8365 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1329: +#line 8384 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->alter_info.keys_onoff= Alter_info::ENABLE; lex->alter_info.flags|= ALTER_KEYS_ONOFF; } -#line 33752 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33578 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1329: -#line 8371 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1330: +#line 8390 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_alter_list((yyvsp[-3].lex_str).str, (yyvsp[0].virtual_column), (yyvsp[-4].num)))) MYSQL_YYABORT; } -#line 33761 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33587 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1330: -#line 8376 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1331: +#line 8395 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_alter_list((yyvsp[-2].lex_str).str, (Virtual_column_info*) 0, (yyvsp[-3].num)))) MYSQL_YYABORT; } -#line 33771 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33597 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1331: -#line 8382 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1332: +#line 8401 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->select_lex.db= (yyvsp[0].table)->db; @@ -33785,11 +33611,11 @@ lex->name= (yyvsp[0].table)->table; lex->alter_info.flags|= ALTER_RENAME; } -#line 33789 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33615 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1332: -#line 8396 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1333: +#line 8415 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (!(yyvsp[-1].charset)) { @@ -33803,266 +33629,267 @@ MYSQL_YYABORT; Lex->alter_info.flags|= ALTER_OPTIONS; } -#line 33807 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33633 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1333: -#line 8410 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1334: +#line 8429 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->alter_info.flags|= ALTER_OPTIONS; } -#line 33816 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33642 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1334: -#line 8415 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1335: +#line 8434 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_RECREATE; } -#line 33824 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33650 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1335: -#line 8419 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1336: +#line 8438 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->alter_info.flags|= ALTER_ORDER; } -#line 33833 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33659 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1338: -#line 8426 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1339: +#line 8445 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_ADD_SYSTEM_VERSIONING; Lex->create_info.options|= HA_VERSIONED_TABLE; } -#line 33842 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33668 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1339: -#line 8431 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1340: +#line 8450 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_DROP_SYSTEM_VERSIONING; + Lex->create_info.options&= ~HA_VERSIONED_TABLE; } -#line 33850 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33677 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1340: -#line 8435 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1341: +#line 8455 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.flags|= ALTER_DROP_PERIOD; } -#line 33858 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33685 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1346: -#line 8449 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1347: +#line 8470 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.requested_algorithm= Alter_info::ALTER_TABLE_ALGORITHM_DEFAULT; } -#line 33867 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33694 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1347: -#line 8454 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1348: +#line 8475 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->alter_info.set_requested_algorithm(&(yyvsp[0].ident_sys)))) my_yyabort_error((ER_UNKNOWN_ALTER_ALGORITHM, MYF(0), (yyvsp[0].ident_sys).str)); } -#line 33876 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33703 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1348: -#line 8462 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1349: +#line 8483 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.requested_lock= Alter_info::ALTER_TABLE_LOCK_DEFAULT; } -#line 33885 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33712 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1349: -#line 8467 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1350: +#line 8488 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->alter_info.set_requested_lock(&(yyvsp[0].ident_sys)))) my_yyabort_error((ER_UNKNOWN_ALTER_LOCK, MYF(0), (yyvsp[0].ident_sys).str)); } -#line 33894 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33721 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1350: -#line 8474 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1351: +#line 8495 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 33900 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33727 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1351: -#line 8475 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1352: +#line 8496 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 33906 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33733 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1352: -#line 8479 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1353: +#line 8500 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->ignore= 0;} -#line 33912 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33739 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1353: -#line 8480 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1354: +#line 8501 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->ignore= 1;} -#line 33918 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33745 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1354: -#line 8484 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1355: +#line 8505 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->ignore= 0;} -#line 33924 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33751 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1360: -#line 8498 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1361: +#line 8519 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->ignore= 1;} -#line 33930 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33757 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1361: -#line 8500 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1362: +#line 8521 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.requested_lock= Alter_info::ALTER_TABLE_LOCK_NONE; } -#line 33939 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33766 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1362: -#line 8507 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1363: +#line 8529 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->drop_mode= DROP_DEFAULT; } -#line 33945 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33772 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1363: -#line 8508 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1364: +#line 8530 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->drop_mode= DROP_RESTRICT; } -#line 33951 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33778 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1364: -#line 8509 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1365: +#line 8531 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->drop_mode= DROP_CASCADE; } -#line 33957 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33784 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1365: -#line 8513 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1366: +#line 8535 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)= null_clex_str; } -#line 33963 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33790 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1366: -#line 8515 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1367: +#line 8537 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)= (yyvsp[0].ident_sys); Lex->alter_info.flags |= ALTER_COLUMN_ORDER; } -#line 33972 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33799 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1367: -#line 8520 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1368: +#line 8542 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str).str= first_keyword; (yyval.lex_str).length= 5; /* Length of "first" */ Lex->alter_info.flags |= ALTER_COLUMN_ORDER; } -#line 33982 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 1368: -#line 8528 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 33988 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33809 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1369: -#line 8529 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 8550 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 33994 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33815 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1370: -#line 8530 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 8551 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34000 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33821 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1371: -#line 8531 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 8552 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34006 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33827 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1372: -#line 8536 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 8553 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {} +#line 33833 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 1373: +#line 8558 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_SLAVE_START; lex->type = 0; /* If you change this code don't forget to update SLAVE START too */ } -#line 34017 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33844 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1373: -#line 8543 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1374: +#line 8565 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34023 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33850 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1374: -#line 8545 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1375: +#line 8567 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_SLAVE_ALL_START; lex->type = 0; /* If you change this code don't forget to update STOP SLAVE too */ } -#line 34034 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33861 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1375: -#line 8551 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1376: +#line 8573 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34040 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33867 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1376: -#line 8553 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1377: +#line 8575 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_SLAVE_STOP; lex->type = 0; /* If you change this code don't forget to update SLAVE STOP too */ } -#line 34051 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33878 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1377: -#line 8560 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1378: +#line 8582 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_SLAVE_ALL_STOP; lex->type = 0; /* If you change this code don't forget to update SLAVE STOP too */ } -#line 34062 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33889 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1378: -#line 8570 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1379: +#line 8592 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_BEGIN; @@ -34075,103 +33902,103 @@ } lex->start_transaction_opt= (yyvsp[0].num); } -#line 34079 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33906 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1379: -#line 8586 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1380: +#line 8608 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 34087 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33914 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1380: -#line 8590 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1381: +#line 8612 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= (yyvsp[0].num); } -#line 34095 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33922 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1381: -#line 8597 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1382: +#line 8619 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= (yyvsp[0].num); } -#line 34103 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33930 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1382: -#line 8601 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1383: +#line 8623 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= (yyvsp[-2].num) | (yyvsp[0].num); } -#line 34111 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33938 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1383: -#line 8608 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1384: +#line 8630 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= MYSQL_START_TRANS_OPT_WITH_CONS_SNAPSHOT; } -#line 34119 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33946 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1384: -#line 8612 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1385: +#line 8634 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= MYSQL_START_TRANS_OPT_READ_ONLY; } -#line 34127 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33954 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1385: -#line 8616 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1386: +#line 8638 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= MYSQL_START_TRANS_OPT_READ_WRITE; } -#line 34135 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33962 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1386: -#line 8622 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1387: +#line 8644 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->slave_thd_opt= 0; } -#line 34141 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33968 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1387: -#line 8624 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1388: +#line 8646 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34147 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33974 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1390: -#line 8633 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1391: +#line 8655 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34153 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33980 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1391: -#line 8634 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1392: +#line 8656 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->slave_thd_opt|=SLAVE_SQL; } -#line 34159 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33986 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1392: -#line 8635 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1393: +#line 8657 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->slave_thd_opt|=SLAVE_IO; } -#line 34165 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33992 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1393: -#line 8639 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1394: +#line 8661 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34171 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 33998 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1394: -#line 8641 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1395: +#line 8663 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(((lex->mi.log_file_name || lex->mi.pos) && @@ -34180,60 +34007,60 @@ (lex->mi.relay_log_name && lex->mi.relay_log_pos)))) my_yyabort_error((ER_BAD_SLAVE_UNTIL_COND, MYF(0))); } -#line 34184 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34011 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1395: -#line 8650 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1396: +#line 8672 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->mi.gtid_pos_str = (yyvsp[0].lex_str); } -#line 34192 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34019 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1398: -#line 8662 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1399: +#line 8684 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_CHECKSUM; /* Will be overridden during execution. */ YYPS->m_lock_type= TL_UNLOCK; } -#line 34203 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34030 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1399: -#line 8669 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1400: +#line 8691 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34209 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34036 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1400: -#line 8673 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1401: +#line 8695 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->check_opt.flags= 0; } -#line 34215 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34042 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1401: -#line 8674 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1402: +#line 8696 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->check_opt.flags= T_QUICK; } -#line 34221 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34048 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1402: -#line 8675 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1403: +#line 8697 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->check_opt.flags= T_EXTEND; } -#line 34227 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34054 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1404: -#line 8681 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1405: +#line 8703 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->table_type= TABLE_TYPE_VIEW; } -#line 34233 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34060 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1406: -#line 8687 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1407: +#line 8709 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_REPAIR; @@ -34243,11 +34070,11 @@ /* Will be overridden during execution. */ YYPS->m_lock_type= TL_UNLOCK; } -#line 34247 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34074 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1407: -#line 8697 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1408: +#line 8719 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX* lex= thd->lex; DBUG_ASSERT(!lex->m_sql_cmd); @@ -34255,65 +34082,65 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 34259 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 1408: -#line 8707 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->check_opt.flags = T_MEDIUM; } -#line 34265 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34086 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1409: -#line 8708 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 34271 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 8729 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->check_opt.flags = T_MEDIUM; } +#line 34092 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1410: -#line 8712 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 8730 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34277 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34098 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1411: -#line 8713 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 8734 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34283 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34104 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1412: -#line 8717 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->check_opt.flags|= T_QUICK; } -#line 34289 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 8735 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {} +#line 34110 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1413: -#line 8718 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->check_opt.flags|= T_EXTEND; } -#line 34295 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 8739 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->check_opt.flags|= T_QUICK; } +#line 34116 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1414: -#line 8719 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->check_opt.sql_flags|= TT_USEFRM; } -#line 34301 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 8740 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->check_opt.flags|= T_EXTEND; } +#line 34122 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1415: -#line 8723 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { } -#line 34307 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 8741 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->check_opt.sql_flags|= TT_USEFRM; } +#line 34128 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1416: -#line 8724 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->check_opt.sql_flags|= TT_FROM_MYSQL; } -#line 34313 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 8745 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { } +#line 34134 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1417: -#line 8729 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 8746 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->check_opt.sql_flags|= TT_FROM_MYSQL; } +#line 34140 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 1418: +#line 8751 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_ANALYZE; @@ -34323,11 +34150,11 @@ /* Will be overridden during execution. */ YYPS->m_lock_type= TL_UNLOCK; } -#line 34327 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34154 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1418: -#line 8739 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1419: +#line 8761 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX* lex= thd->lex; DBUG_ASSERT(!lex->m_sql_cmd); @@ -34335,149 +34162,149 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 34339 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34166 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1422: -#line 8759 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1423: +#line 8781 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34345 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34172 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1423: -#line 8761 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1424: +#line 8783 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { thd->lex->with_persistent_for_clause= TRUE; } -#line 34353 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 1424: -#line 8768 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 34359 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34180 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1425: -#line 8770 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 8790 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34365 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34186 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1426: -#line 8773 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 8792 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34371 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34192 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1427: -#line 8775 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 8796 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {} +#line 34198 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 1428: +#line 8798 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX* lex= thd->lex; lex->column_list= new (thd->mem_root) List; if (unlikely(lex->column_list == NULL)) MYSQL_YYABORT; } -#line 34382 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34209 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1429: -#line 8786 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1430: +#line 8809 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34388 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34215 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1430: -#line 8788 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1431: +#line 8811 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX* lex= thd->lex; lex->index_list= new (thd->mem_root) List; if (unlikely(lex->index_list == NULL)) MYSQL_YYABORT; } -#line 34399 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34226 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1432: -#line 8800 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1433: +#line 8823 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34405 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34232 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1433: -#line 8802 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1434: +#line 8825 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->column_list->push_back((LEX_STRING*) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_STRING)), thd->mem_root); } -#line 34414 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34241 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1434: -#line 8807 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1435: +#line 8830 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->column_list->push_back((LEX_STRING*) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_STRING)), thd->mem_root); } -#line 34423 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34250 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1435: -#line 8815 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1436: +#line 8838 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34429 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34256 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1438: -#line 8822 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1439: +#line 8845 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->index_list->push_back((LEX_STRING*) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_STRING)), thd->mem_root); } -#line 34439 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34266 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1439: -#line 8829 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1440: +#line 8852 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX_STRING str= {(char*) "PRIMARY", 7}; Lex->index_list->push_back((LEX_STRING*) thd->memdup(&str, sizeof(LEX_STRING)), thd->mem_root); } -#line 34450 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34277 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1440: -#line 8839 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1441: +#line 8862 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_BINLOG_BASE64_EVENT; Lex->comment= (yyvsp[0].lex_str); Lex->ident.str= NULL; Lex->ident.length= 0; } -#line 34461 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34288 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1441: -#line 8847 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1442: +#line 8870 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_BINLOG_BASE64_EVENT; Lex->comment= (yyvsp[-3].lex_str); Lex->ident= (yyvsp[0].lex_str); } -#line 34471 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34298 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1443: -#line 8857 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1444: +#line 8880 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->table_type= TABLE_TYPE_VIEW; } -#line 34477 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34304 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1445: -#line 8862 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1446: +#line 8885 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; @@ -34487,11 +34314,11 @@ /* Will be overridden during execution. */ YYPS->m_lock_type= TL_UNLOCK; } -#line 34491 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34318 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1446: -#line 8872 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1447: +#line 8895 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX* lex= thd->lex; if (unlikely(lex->sphead)) @@ -34501,83 +34328,83 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 34505 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 1447: -#line 8884 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->check_opt.flags = T_MEDIUM; } -#line 34511 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34332 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1448: -#line 8885 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 34517 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 8907 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->check_opt.flags = T_MEDIUM; } +#line 34338 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1449: -#line 8889 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 8908 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34523 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34344 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1450: -#line 8890 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 8912 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34529 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34350 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1451: -#line 8894 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->check_opt.flags|= T_QUICK; } -#line 34535 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 8913 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {} +#line 34356 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1452: -#line 8895 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->check_opt.flags|= T_FAST; } -#line 34541 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 8917 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->check_opt.flags|= T_QUICK; } +#line 34362 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1453: -#line 8896 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->check_opt.flags|= T_MEDIUM; } -#line 34547 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 8918 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->check_opt.flags|= T_FAST; } +#line 34368 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1454: -#line 8897 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->check_opt.flags|= T_EXTEND; } -#line 34553 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 8919 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->check_opt.flags|= T_MEDIUM; } +#line 34374 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1455: -#line 8898 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->check_opt.flags|= T_CHECK_ONLY_CHANGED; } -#line 34559 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 8920 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->check_opt.flags|= T_EXTEND; } +#line 34380 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1456: -#line 8899 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; } -#line 34565 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 8921 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->check_opt.flags|= T_CHECK_ONLY_CHANGED; } +#line 34386 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1457: -#line 8903 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { } -#line 34571 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 8922 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; } +#line 34392 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1458: -#line 8904 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; } -#line 34577 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 8926 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { } +#line 34398 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1459: -#line 8909 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 8927 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; } +#line 34404 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 1460: +#line 8932 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_OPTIMIZE; @@ -34587,11 +34414,11 @@ /* Will be overridden during execution. */ YYPS->m_lock_type= TL_UNLOCK; } -#line 34591 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34418 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1460: -#line 8919 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1461: +#line 8942 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX* lex= thd->lex; DBUG_ASSERT(!lex->m_sql_cmd); @@ -34599,71 +34426,71 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 34603 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34430 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1461: -#line 8929 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1462: +#line 8952 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 34609 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34436 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1462: -#line 8930 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1463: +#line 8953 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 34615 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34442 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1463: -#line 8931 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1464: +#line 8954 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 34621 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34448 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1464: -#line 8936 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1465: +#line 8959 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_RENAME_TABLE; } -#line 34629 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34456 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1465: -#line 8940 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1466: +#line 8963 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34635 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34462 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1466: -#line 8942 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1467: +#line 8965 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_RENAME_USER; } -#line 34643 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34470 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1467: -#line 8949 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1468: +#line 8972 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[-2].lex_user), thd->mem_root) || Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 34653 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34480 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1468: -#line 8955 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1469: +#line 8978 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[-2].lex_user), thd->mem_root) || Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 34663 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34490 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1471: -#line 8969 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1472: +#line 8992 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; SELECT_LEX *sl= lex->current_select; @@ -34675,29 +34502,29 @@ TL_IGNORE, MDL_EXCLUSIVE))) MYSQL_YYABORT; } -#line 34679 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34506 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1472: -#line 8984 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1473: +#line 9007 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.reset(); } -#line 34687 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34514 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1473: -#line 8988 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1474: +#line 9011 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_ASSIGN_TO_KEYCACHE; lex->ident= (yyvsp[0].lex_str); } -#line 34697 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34524 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1478: -#line 9007 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1479: +#line 9030 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!Select->add_table_to_list(thd, (yyvsp[-1].table), NULL, 0, TL_READ, MDL_SHARED_READ, @@ -34705,11 +34532,11 @@ pop_index_hints()))) MYSQL_YYABORT; } -#line 34709 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34536 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1479: -#line 9018 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1480: +#line 9041 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!Select->add_table_to_list(thd, (yyvsp[-2].table), NULL, 0, TL_READ, MDL_SHARED_READ, @@ -34717,39 +34544,39 @@ pop_index_hints()))) MYSQL_YYABORT; } -#line 34721 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34548 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1480: -#line 9028 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1481: +#line 9051 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)= (yyvsp[0].ident_sys); } -#line 34727 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34554 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1481: -#line 9029 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1482: +#line 9052 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str) = default_key_cache_base; } -#line 34733 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34560 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1482: -#line 9034 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1483: +#line 9057 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command=SQLCOM_PRELOAD_KEYS; lex->alter_info.reset(); } -#line 34743 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34570 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1483: -#line 9040 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1484: +#line 9063 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 34749 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34576 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1488: -#line 9055 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1489: +#line 9078 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!Select->add_table_to_list(thd, (yyvsp[-2].table), NULL, (yyvsp[0].num), TL_READ, MDL_SHARED_READ, @@ -34757,11 +34584,11 @@ pop_index_hints()))) MYSQL_YYABORT; } -#line 34761 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34588 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1489: -#line 9066 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1490: +#line 9089 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!Select->add_table_to_list(thd, (yyvsp[-3].table), NULL, (yyvsp[0].num), TL_READ, MDL_SHARED_READ, @@ -34769,73 +34596,73 @@ pop_index_hints()))) MYSQL_YYABORT; } -#line 34773 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34600 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1490: -#line 9077 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1491: +#line 9100 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->alter_info.partition_flags|= ALTER_PARTITION_ADMIN; } -#line 34781 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34608 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1492: -#line 9084 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1493: +#line 9107 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->select_lex.alloc_index_hints(thd); Select->set_index_hint_type(INDEX_HINT_USE, INDEX_HINT_MASK_ALL); } -#line 34791 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34618 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1494: -#line 9093 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1495: +#line 9116 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 34797 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34624 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1496: -#line 9099 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1497: +#line 9122 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 34803 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34630 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1497: -#line 9100 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1498: +#line 9123 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= TL_OPTION_IGNORE_LEAVES; } -#line 34809 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34636 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1498: -#line 9110 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1499: +#line 9133 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SELECT; lex->current_select->set_with_clause((yyvsp[-1].with_clause)); } -#line 34819 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34646 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1513: -#line 9138 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1514: +#line 9161 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->current_select->set_braces(true); } -#line 34827 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34654 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1514: -#line 9142 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1515: +#line 9165 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->current_select->braces); } -#line 34835 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34662 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1515: -#line 9146 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1516: +#line 9169 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* In order to correctly parse UNION's global ORDER BY we need to @@ -34843,19 +34670,19 @@ */ Lex->current_select->set_braces(true); } -#line 34847 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34674 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1516: -#line 9155 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1517: +#line 9178 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->current_select->braces); } -#line 34855 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34682 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1520: -#line 9168 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1521: +#line 9191 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* In order to correctly parse UNION's global ORDER BY we need to @@ -34863,19 +34690,19 @@ */ Lex->current_select->set_braces(true); } -#line 34867 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34694 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1521: -#line 9176 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1522: +#line 9199 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->current_select->braces); } -#line 34875 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34702 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1525: -#line 9189 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1526: +#line 9212 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* In order to correctly parse UNION's global ORDER BY we need to @@ -34883,127 +34710,127 @@ */ Lex->current_select->set_braces(true); } -#line 34887 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34714 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1526: -#line 9197 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1527: +#line 9220 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->current_select->braces); } -#line 34895 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34722 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1528: -#line 9205 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1529: +#line 9228 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->current_select->set_braces(true); } -#line 34903 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34730 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1529: -#line 9209 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1530: +#line 9232 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->current_select->braces); (yyval.select_lex)= Lex->current_select->master_unit()->first_select(); } -#line 34912 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34739 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1530: -#line 9214 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1531: +#line 9237 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->current_select->set_braces(true); } -#line 34920 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34747 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1531: -#line 9222 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1532: +#line 9245 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->current_select->braces); (yyval.select_lex)= Lex->current_select->master_unit()->first_select(); } -#line 34929 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34756 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1532: -#line 9226 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1533: +#line 9249 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.select_lex)= (yyvsp[-1].select_lex); } -#line 34935 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34762 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1533: -#line 9232 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1534: +#line 9255 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* Parentheses carry no meaning here */ Lex->current_select->set_braces(false); } -#line 34944 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34771 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1535: -#line 9239 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1536: +#line 9262 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* Parentheses carry no meaning here */ Lex->current_select->set_braces(false); } -#line 34953 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34780 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1536: -#line 9249 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1537: +#line 9272 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* Parentheses carry no meaning here */ Lex->current_select->set_braces(false); } -#line 34962 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34789 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1538: -#line 9256 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1539: +#line 9279 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* Parentheses carry no meaning here */ Lex->current_select->set_braces(false); } -#line 34971 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34798 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1539: -#line 9265 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1540: +#line 9288 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->current_select->set_braces(false); } -#line 34979 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34806 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1540: -#line 9269 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1541: +#line 9292 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->current_select->set_braces(false); } -#line 34987 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34814 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1542: -#line 9274 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1543: +#line 9297 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->current_select->set_braces(false); } -#line 34995 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34822 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1543: -#line 9278 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1544: +#line 9301 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->current_select->set_braces(false); } -#line 35003 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34830 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1559: -#line 9318 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1560: +#line 9341 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; SELECT_LEX *sel= lex->current_select; @@ -35011,63 +34838,63 @@ mysql_init_select(lex); lex->current_select->parsing_place= SELECT_LIST; } -#line 35015 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34842 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1560: -#line 9326 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1561: +#line 9349 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->parsing_place= NO_MATTER; } -#line 35023 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34850 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1565: -#line 9354 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1566: +#line 9377 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->context.table_list= Select->context.first_name_resolution_table= Select->table_list.first; } -#line 35033 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34860 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1568: -#line 9369 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1569: +#line 9392 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((Select->options & SELECT_DISTINCT) && (Select->options & SELECT_ALL))) my_yyabort_error((ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT")); } -#line 35043 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34870 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1569: -#line 9378 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1570: +#line 9401 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.vers_range_unit)= VERS_UNDEFINED; } -#line 35051 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34878 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1570: -#line 9382 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1571: +#line 9405 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.vers_range_unit)= VERS_TRX_ID; } -#line 35059 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34886 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1571: -#line 9386 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1572: +#line 9409 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.vers_range_unit)= VERS_TIMESTAMP; } -#line 35067 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34894 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1572: -#line 9393 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1573: +#line 9416 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Item *item; if (!(item= create_temporal_literal(thd, (yyvsp[0].lex_string_with_metadata).str, (yyvsp[0].lex_string_with_metadata).length, YYCSCL, @@ -35075,75 +34902,75 @@ MYSQL_YYABORT; (yyval.vers_history_point)= Vers_history_point(VERS_TIMESTAMP, item); } -#line 35079 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34906 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1573: -#line 9401 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1574: +#line 9424 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.vers_history_point)= Vers_history_point(VERS_TIMESTAMP, (yyvsp[0].item)); } -#line 35087 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34914 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1574: -#line 9405 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1575: +#line 9428 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.vers_history_point)= Vers_history_point((yyvsp[-1].vers_range_unit), (yyvsp[0].item)); } -#line 35095 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34922 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1575: -#line 9412 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1576: +#line 9435 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= false; } -#line 35103 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34930 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1576: -#line 9416 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1577: +#line 9439 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= true; } -#line 35111 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34938 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1577: -#line 9423 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1578: +#line 9446 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->vers_conditions.init(SYSTEM_TIME_AS_OF, (yyvsp[0].vers_history_point)); } -#line 35119 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34946 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1578: -#line 9427 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1579: +#line 9450 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->vers_conditions.init(SYSTEM_TIME_ALL); } -#line 35127 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34954 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1579: -#line 9431 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1580: +#line 9454 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->vers_conditions.init(SYSTEM_TIME_FROM_TO, (yyvsp[-2].vers_history_point), (yyvsp[0].vers_history_point)); } -#line 35135 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34962 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1580: -#line 9435 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1581: +#line 9458 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->vers_conditions.init(SYSTEM_TIME_BETWEEN, (yyvsp[-2].vers_history_point), (yyvsp[0].vers_history_point)); } -#line 35143 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34970 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1584: -#line 9448 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1585: +#line 9471 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* Allow this flag only on the first top-level SELECT statement, if @@ -35160,11 +34987,11 @@ Lex->select_lex.options&= ~OPTION_TO_QUERY_CACHE; Lex->select_lex.sql_cache= SELECT_LEX::SQL_NO_CACHE; } -#line 35164 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 34991 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1585: -#line 9465 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1586: +#line 9488 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* Allow this flag only on the first top-level SELECT statement, if @@ -35181,22 +35008,22 @@ Lex->select_lex.options|= OPTION_TO_QUERY_CACHE; Lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE; } -#line 35185 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35012 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1587: -#line 9486 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1588: +#line 9509 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->current_select->lock_type= TL_WRITE; lex->current_select->set_lock_for_tables(TL_WRITE, false); lex->safe_to_cache_query=0; } -#line 35196 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35023 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1588: -#line 9493 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1589: +#line 9516 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->current_select->lock_type= TL_READ_WITH_SHARED_LOCKS; @@ -35204,11 +35031,11 @@ set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS, false); lex->safe_to_cache_query=0; } -#line 35208 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35035 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1591: -#line 9506 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1592: +#line 9529 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Item *item= new (thd->mem_root) Item_field(thd, &thd->lex->current_select->context, @@ -35219,20 +35046,20 @@ MYSQL_YYABORT; (thd->lex->current_select->with_wild)++; } -#line 35223 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35050 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1592: -#line 9520 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1593: +#line 9543 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(add_item_to_list(thd, (yyvsp[-1].item)))) MYSQL_YYABORT; } -#line 35232 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35059 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1593: -#line 9525 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1594: +#line 9548 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { DBUG_ASSERT((yyvsp[-3].simple_string) < (yyvsp[-1].simple_string)); @@ -35251,132 +35078,132 @@ (yyvsp[-2].item)->set_name(thd, (yyvsp[-3].simple_string), (uint) ((yyvsp[-1].simple_string) - (yyvsp[-3].simple_string)), thd->charset()); } } -#line 35255 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35082 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1594: -#line 9546 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1595: +#line 9569 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.simple_string)= (char*) YYLIP->get_tok_start(); } -#line 35263 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35090 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1595: -#line 9552 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1596: +#line 9575 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.simple_string)= (char*) YYLIP->get_tok_end(); } -#line 35271 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35098 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1596: -#line 9558 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1597: +#line 9581 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_start(); } -#line 35279 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35106 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1597: -#line 9564 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1598: +#line 9587 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_end_rtrim(); } -#line 35287 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35114 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1598: -#line 9570 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1599: +#line 9593 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (yychar == YYEMPTY) (yyval.simple_string)= (char*) YYLIP->get_cpp_ptr_rtrim(); else (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_end_rtrim(); } -#line 35298 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 1599: -#line 9579 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.lex_str)=null_clex_str;} -#line 35304 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35125 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1600: -#line 9580 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.lex_str)=(yyvsp[0].ident_sys); } -#line 35310 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 9602 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.lex_str)=null_clex_str;} +#line 35131 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1601: -#line 9581 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.lex_str)=(yyvsp[0].lex_str); } -#line 35316 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 9603 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.lex_str)=(yyvsp[0].ident_sys); } +#line 35137 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1602: -#line 9582 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.lex_str)=(yyvsp[0].ident_sys); } -#line 35322 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 9604 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.lex_str)=(yyvsp[0].lex_str); } +#line 35143 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1603: -#line 9583 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.lex_str)=(yyvsp[0].lex_str); } -#line 35328 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 9605 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.lex_str)=(yyvsp[0].ident_sys); } +#line 35149 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1604: -#line 9587 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.num)= NOT_FIXED_DEC; } -#line 35334 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 9606 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.lex_str)=(yyvsp[0].lex_str); } +#line 35155 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1605: -#line 9588 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 9610 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= NOT_FIXED_DEC; } -#line 35340 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35161 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1606: -#line 9589 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.num)= (yyvsp[-1].ulong_num); } -#line 35346 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 9611 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.num)= NOT_FIXED_DEC; } +#line 35167 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1607: -#line 9593 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.num)= 0; } -#line 35352 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 9612 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.num)= (yyvsp[-1].ulong_num); } +#line 35173 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1608: -#line 9594 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 9616 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 35358 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35179 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1609: -#line 9595 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.num)= (yyvsp[-1].ulong_num); } -#line 35364 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 9617 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.num)= 0; } +#line 35185 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1610: -#line 9599 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 35370 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 9618 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.num)= (yyvsp[-1].ulong_num); } +#line 35191 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1611: -#line 9600 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 9622 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 35376 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35197 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1612: -#line 9606 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 9623 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {} +#line 35203 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 1613: +#line 9629 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* Design notes: @@ -35427,22 +35254,22 @@ MYSQL_YYABORT; } } -#line 35431 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35258 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1613: -#line 9657 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1614: +#line 9680 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* XOR is a proprietary extension */ (yyval.item)= new (thd->mem_root) Item_func_xor(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35442 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35269 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1614: -#line 9664 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1615: +#line 9687 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* See comments in rule expr: expr or expr */ Item_cond_and *item1; @@ -35485,141 +35312,141 @@ MYSQL_YYABORT; } } -#line 35489 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35316 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1615: -#line 9707 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1616: +#line 9730 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= negate_expression(thd, (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35499 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35326 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1616: -#line 9713 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1617: +#line 9736 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_istrue(thd, (yyvsp[-2].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35509 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35336 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1617: -#line 9719 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1618: +#line 9742 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_isnottrue(thd, (yyvsp[-3].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35519 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35346 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1618: -#line 9725 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1619: +#line 9748 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_isfalse(thd, (yyvsp[-2].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35529 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35356 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1619: -#line 9731 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1620: +#line 9754 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_isnotfalse(thd, (yyvsp[-3].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35539 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35366 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1620: -#line 9737 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1621: +#line 9760 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_isnull(thd, (yyvsp[-2].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35549 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35376 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1621: -#line 9743 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1622: +#line 9766 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_isnotnull(thd, (yyvsp[-3].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35559 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35386 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1623: -#line 9753 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1624: +#line 9776 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_isnull(thd, (yyvsp[-2].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35569 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35396 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1624: -#line 9759 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1625: +#line 9782 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_isnotnull(thd, (yyvsp[-3].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35579 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35406 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1625: -#line 9765 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1626: +#line 9788 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_equal(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35589 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35416 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1626: -#line 9771 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1627: +#line 9794 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= (*(yyvsp[-1].boolfunc2creator))(0)->create(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35599 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35426 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1627: -#line 9777 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1628: +#line 9800 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= all_any_subquery_creator(thd, (yyvsp[-5].item), (yyvsp[-4].boolfunc2creator), (yyvsp[-3].num), (yyvsp[-1].select_lex)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35609 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35436 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1629: -#line 9787 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1630: +#line 9810 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_in_subselect(thd, (yyvsp[-4].item), (yyvsp[-1].select_lex)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35619 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35446 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1630: -#line 9793 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1631: +#line 9816 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Item *item= new (thd->mem_root) Item_in_subselect(thd, (yyvsp[-5].item), (yyvsp[-1].select_lex)); if (unlikely(item == NULL)) @@ -35628,21 +35455,21 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35632 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35459 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1631: -#line 9802 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1632: +#line 9825 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= handle_sql2003_note184_exception(thd, (yyvsp[-4].item), true, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35642 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35469 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1632: -#line 9808 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1633: +#line 9831 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-1].item_list)->push_front((yyvsp[-3].item), thd->mem_root); (yyvsp[-1].item_list)->push_front((yyvsp[-6].item), thd->mem_root); @@ -35650,21 +35477,21 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35654 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35481 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1633: -#line 9816 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1634: +#line 9839 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= handle_sql2003_note184_exception(thd, (yyvsp[-5].item), false, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35664 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35491 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1634: -#line 9822 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1635: +#line 9845 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-1].item_list)->push_front((yyvsp[-3].item), thd->mem_root); (yyvsp[-1].item_list)->push_front((yyvsp[-7].item), thd->mem_root); @@ -35673,21 +35500,21 @@ MYSQL_YYABORT; (yyval.item)= item->neg_transformer(thd); } -#line 35677 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35504 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1635: -#line 9831 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1636: +#line 9854 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_between(thd, (yyvsp[-4].item), (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35687 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35514 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1636: -#line 9837 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1637: +#line 9860 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Item_func_between *item; item= new (thd->mem_root) Item_func_between(thd, (yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[0].item)); @@ -35695,11 +35522,11 @@ MYSQL_YYABORT; (yyval.item)= item->neg_transformer(thd); } -#line 35699 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35526 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1637: -#line 9845 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1638: +#line 9868 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Item *item1= new (thd->mem_root) Item_func_soundex(thd, (yyvsp[-3].item)); Item *item4= new (thd->mem_root) Item_func_soundex(thd, (yyvsp[0].item)); @@ -35709,22 +35536,22 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35713 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35540 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1638: -#line 9855 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1639: +#line 9878 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_like(thd, (yyvsp[-3].item), (yyvsp[-1].item), (yyvsp[0].item), Lex->escape_used); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35724 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35551 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1639: -#line 9862 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1640: +#line 9885 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Item *item= new (thd->mem_root) Item_func_like(thd, (yyvsp[-4].item), (yyvsp[-1].item), (yyvsp[0].item), Lex->escape_used); @@ -35732,21 +35559,21 @@ MYSQL_YYABORT; (yyval.item)= item->neg_transformer(thd); } -#line 35736 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35563 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1640: -#line 9870 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1641: +#line 9893 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_regex(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35746 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35573 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1641: -#line 9876 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1642: +#line 9899 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Item *item= new (thd->mem_root) Item_func_regex(thd, (yyvsp[-3].item), (yyvsp[0].item)); if (unlikely(item == NULL)) @@ -35755,350 +35582,350 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35759 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35586 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1643: -#line 9889 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1644: +#line 9912 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_bit_or(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35769 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35596 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1644: -#line 9895 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1645: +#line 9918 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_bit_and(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35779 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35606 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1645: -#line 9901 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1646: +#line 9924 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_shift_left(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35789 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35616 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1646: -#line 9907 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1647: +#line 9930 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_shift_right(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35799 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35626 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1647: -#line 9913 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1648: +#line 9936 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_concat_operator_oracle(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35810 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35637 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1648: -#line 9920 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1649: +#line 9943 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_plus(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35820 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35647 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1649: -#line 9926 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1650: +#line 9949 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_minus(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35830 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35657 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1650: -#line 9932 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1651: +#line 9955 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-4].item), (yyvsp[-1].item), (yyvsp[0].interval), 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35840 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35667 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1651: -#line 9938 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1652: +#line 9961 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-4].item), (yyvsp[-1].item), (yyvsp[0].interval), 1); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35850 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35677 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1652: -#line 9945 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1653: +#line 9968 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[0].item), (yyvsp[-3].item), (yyvsp[-2].interval), 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35860 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35687 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1653: -#line 9951 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1654: +#line 9974 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[0].item), (yyvsp[-3].item), (yyvsp[-2].interval), 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35870 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35697 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1654: -#line 9957 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1655: +#line 9980 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[0].item), (yyvsp[-3].item), (yyvsp[-2].interval), 1); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35880 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35707 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1655: -#line 9963 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1656: +#line 9986 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_mul(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35890 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35717 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1656: -#line 9969 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1657: +#line 9992 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_div(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35900 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35727 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1657: -#line 9975 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1658: +#line 9998 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_mod(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35910 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35737 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1658: -#line 9981 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1659: +#line 10004 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_int_div(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35920 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35747 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1659: -#line 9987 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1660: +#line 10010 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_mod(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35930 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35757 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1660: -#line 9993 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1661: +#line 10016 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_bit_xor(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 35940 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35767 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1670: -#line 10022 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1671: +#line 10045 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.boolfunc2creator) = &comp_eq_creator; } -#line 35946 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35773 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1671: -#line 10023 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1672: +#line 10046 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.boolfunc2creator) = &comp_ge_creator; } -#line 35952 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35779 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1672: -#line 10024 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1673: +#line 10047 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.boolfunc2creator) = &comp_gt_creator; } -#line 35958 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35785 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1673: -#line 10025 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1674: +#line 10048 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.boolfunc2creator) = &comp_le_creator; } -#line 35964 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35791 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1674: -#line 10026 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1675: +#line 10049 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.boolfunc2creator) = &comp_lt_creator; } -#line 35970 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35797 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1675: -#line 10027 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1676: +#line 10050 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.boolfunc2creator) = &comp_ne_creator; } -#line 35976 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35803 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1676: -#line 10031 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1677: +#line 10054 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num) = 1; } -#line 35982 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35809 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1677: -#line 10032 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1678: +#line 10055 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num) = 0; } -#line 35988 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35815 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1678: -#line 10037 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1679: +#line 10060 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_dyncol_type).set(DYN_COL_NULL); /* automatic type */ Lex->charset= NULL; } -#line 35997 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 1679: -#line 10041 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type)= (yyvsp[0].Lex_dyncol_type); } -#line 36003 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35824 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1680: -#line 10045 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type)= (yyvsp[0].Lex_dyncol_type); Lex->charset= NULL; } -#line 36009 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 10064 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type)= (yyvsp[0].Lex_dyncol_type); } +#line 35830 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1681: -#line 10046 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 10068 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_dyncol_type)= (yyvsp[0].Lex_dyncol_type); Lex->charset= NULL; } -#line 36015 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35836 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1682: -#line 10047 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type)= (yyvsp[0].Lex_dyncol_type); } -#line 36021 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 10069 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type)= (yyvsp[0].Lex_dyncol_type); Lex->charset= NULL; } +#line 35842 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1683: -#line 10051 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type).set(DYN_COL_INT); } -#line 36027 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 10070 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type)= (yyvsp[0].Lex_dyncol_type); } +#line 35848 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1684: -#line 10052 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type).set(DYN_COL_UINT); } -#line 36033 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 10074 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type).set(DYN_COL_INT); } +#line 35854 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1685: -#line 10053 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type).set(DYN_COL_DOUBLE); } -#line 36039 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 10075 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type).set(DYN_COL_UINT); } +#line 35860 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1686: -#line 10054 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type).set(DYN_COL_DOUBLE); } -#line 36045 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 10076 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type).set(DYN_COL_DOUBLE); } +#line 35866 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1687: -#line 10055 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 10077 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_dyncol_type).set(DYN_COL_DOUBLE); } -#line 36051 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35872 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1688: -#line 10056 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type).set(DYN_COL_DECIMAL, (yyvsp[0].Lex_length_and_dec)); } -#line 36057 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 10078 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type).set(DYN_COL_DOUBLE); } +#line 35878 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1689: -#line 10060 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type).set(DYN_COL_DATE); } -#line 36063 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 10079 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type).set(DYN_COL_DECIMAL, (yyvsp[0].Lex_length_and_dec)); } +#line 35884 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1690: -#line 10061 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type).set(DYN_COL_TIME, 0, (yyvsp[0].const_simple_string)); } -#line 36069 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 10083 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type).set(DYN_COL_DATE); } +#line 35890 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1691: -#line 10062 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_dyncol_type).set(DYN_COL_DATETIME, 0, (yyvsp[0].const_simple_string)); } -#line 36075 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 10084 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type).set(DYN_COL_TIME, 0, (yyvsp[0].const_simple_string)); } +#line 35896 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1692: -#line 10067 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->charset= thd->variables.collation_connection; } -#line 36081 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 10085 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_dyncol_type).set(DYN_COL_DATETIME, 0, (yyvsp[0].const_simple_string)); } +#line 35902 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1693: -#line 10069 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 10090 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->charset= thd->variables.collation_connection; } +#line 35908 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 1694: +#line 10092 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_dyncol_type).set(DYN_COL_STRING); } -#line 36089 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35916 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1694: -#line 10073 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1695: +#line 10096 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_dyncol_type).set(DYN_COL_STRING); Lex->charset= national_charset_info; } -#line 36098 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35925 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1695: -#line 10081 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1696: +#line 10104 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; (yyval.dyncol_def)= (DYNCALL_CREATE_DEF *) @@ -36118,148 +35945,148 @@ else (yyval.dyncol_def)->len= 0; } -#line 36122 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35949 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1696: -#line 10103 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1697: +#line 10127 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.dyncol_def_list)= new (thd->mem_root) List; if (unlikely((yyval.dyncol_def_list) == NULL)) MYSQL_YYABORT; (yyval.dyncol_def_list)->push_back((yyvsp[0].dyncol_def), thd->mem_root); } -#line 36133 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35960 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1697: -#line 10110 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1698: +#line 10134 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-2].dyncol_def_list)->push_back((yyvsp[0].dyncol_def), thd->mem_root); (yyval.dyncol_def_list)= (yyvsp[-2].dyncol_def_list); } -#line 36142 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35969 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1698: -#line 10118 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1699: +#line 10142 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.plsql_cursor_attr)= PLSQL_CURSOR_ATTR_ISOPEN; } -#line 36148 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35975 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1699: -#line 10119 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1700: +#line 10143 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.plsql_cursor_attr)= PLSQL_CURSOR_ATTR_FOUND; } -#line 36154 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35981 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1700: -#line 10120 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1701: +#line 10144 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.plsql_cursor_attr)= PLSQL_CURSOR_ATTR_NOTFOUND; } -#line 36160 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35987 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1701: -#line 10121 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1702: +#line 10145 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.plsql_cursor_attr)= PLSQL_CURSOR_ATTR_ROWCOUNT; } -#line 36166 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 35993 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1702: -#line 10126 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1703: +#line 10150 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_plsql_cursor_attr(thd, &(yyvsp[-2].ident_sys), (yyvsp[0].plsql_cursor_attr))))) MYSQL_YYABORT; } -#line 36175 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36002 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1703: -#line 10134 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1704: +#line 10158 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.trim).set(TRIM_BOTH, (yyvsp[0].item)); } -#line 36181 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36008 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1704: -#line 10135 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1705: +#line 10159 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.trim).set(TRIM_LEADING, (yyvsp[-2].item), (yyvsp[0].item)); } -#line 36187 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36014 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1705: -#line 10136 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1706: +#line 10160 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.trim).set(TRIM_TRAILING, (yyvsp[-2].item), (yyvsp[0].item)); } -#line 36193 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36020 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1706: -#line 10137 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1707: +#line 10161 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.trim).set(TRIM_BOTH, (yyvsp[-2].item), (yyvsp[0].item)); } -#line 36199 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36026 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1707: -#line 10138 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1708: +#line 10162 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.trim).set(TRIM_LEADING, (yyvsp[0].item)); } -#line 36205 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36032 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1708: -#line 10139 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1709: +#line 10163 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.trim).set(TRIM_TRAILING, (yyvsp[0].item)); } -#line 36211 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36038 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1709: -#line 10140 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1710: +#line 10164 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.trim).set(TRIM_BOTH, (yyvsp[0].item)); } -#line 36217 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36044 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1710: -#line 10141 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1711: +#line 10165 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.trim).set(TRIM_BOTH, (yyvsp[-2].item), (yyvsp[0].item)); } -#line 36223 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36050 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1717: -#line 10179 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1718: +#line 10203 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item_param); } -#line 36229 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36056 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1722: -#line 10185 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1723: +#line 10209 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-1].item_list)->push_front((yyvsp[-3].item), thd->mem_root); (yyval.item)= new (thd->mem_root) Item_row(thd, *(yyvsp[-1].item_list)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36240 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36067 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1723: -#line 10192 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1724: +#line 10216 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_exists_subselect(thd, (yyvsp[-1].select_lex)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36250 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36077 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1724: -#line 10198 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1725: +#line 10222 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= (yyvsp[-1].item)->make_odbc_literal(thd, &(yyvsp[-2].ident_sys))))) MYSQL_YYABORT; } -#line 36259 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36086 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1725: -#line 10203 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1726: +#line 10227 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-5].item_list)->push_front((yyvsp[-2].item), thd->mem_root); Item_func_match *i1= new (thd->mem_root) Item_func_match(thd, *(yyvsp[-5].item_list), @@ -36269,58 +36096,58 @@ Select->add_ftfunc_to_list(thd, i1); (yyval.item)= i1; } -#line 36273 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36100 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1726: -#line 10213 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1727: +#line 10237 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= (yyvsp[-1].Lex_cast_type).create_typecast_item(thd, (yyvsp[-3].item), Lex->charset)))) MYSQL_YYABORT; } -#line 36282 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36109 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1727: -#line 10218 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1728: +#line 10242 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= new(thd->mem_root) Item_func_case_searched(thd, *(yyvsp[-1].item_list))))) MYSQL_YYABORT; } -#line 36291 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36118 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1728: -#line 10223 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1729: +#line 10247 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-1].item_list)->push_front((yyvsp[-2].item), thd->mem_root); if (unlikely(!((yyval.item)= new (thd->mem_root) Item_func_case_simple(thd, *(yyvsp[-1].item_list))))) MYSQL_YYABORT; } -#line 36301 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36128 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1729: -#line 10229 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1730: +#line 10253 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= (yyvsp[-1].Lex_cast_type).create_typecast_item(thd, (yyvsp[-3].item), Lex->charset)))) MYSQL_YYABORT; } -#line 36310 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36137 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1730: -#line 10234 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1731: +#line 10258 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_conv_charset(thd, (yyvsp[-3].item), (yyvsp[-1].charset)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36320 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36147 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1731: -#line 10240 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1732: +#line 10264 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Item_splocal *il= (yyvsp[-1].item)->get_item_splocal(); if (unlikely(il)) @@ -36331,199 +36158,199 @@ MYSQL_YYABORT; Lex->default_used= TRUE; } -#line 36335 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36162 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1732: -#line 10251 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1733: +#line 10275 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_insert_value(thd, Lex->current_context(), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36346 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36173 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1733: -#line 10258 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1734: +#line 10282 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_func_nextval(thd, (yyvsp[0].table))))) MYSQL_YYABORT; } -#line 36355 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36182 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1734: -#line 10263 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1735: +#line 10287 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_func_nextval(thd, (yyvsp[-1].table))))) MYSQL_YYABORT; } -#line 36364 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36191 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1735: -#line 10268 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1736: +#line 10292 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_func_lastval(thd, (yyvsp[0].table))))) MYSQL_YYABORT; } -#line 36373 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36200 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1736: -#line 10273 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1737: +#line 10297 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_func_lastval(thd, (yyvsp[-1].table))))) MYSQL_YYABORT; } -#line 36382 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36209 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1737: -#line 10278 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1738: +#line 10302 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_func_setval(thd, (yyvsp[-3].table), (yyvsp[-1].longlong_number), 0, 1)))) MYSQL_YYABORT; } -#line 36391 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36218 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1738: -#line 10283 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1739: +#line 10307 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_func_setval(thd, (yyvsp[-5].table), (yyvsp[-3].longlong_number), 0, (yyvsp[-1].ulong_num))))) MYSQL_YYABORT; } -#line 36400 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36227 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1739: -#line 10288 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1740: +#line 10312 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_func_setval(thd, (yyvsp[-7].table), (yyvsp[-5].longlong_number), (yyvsp[-1].ulonglong_number), (yyvsp[-3].ulong_num))))) MYSQL_YYABORT; } -#line 36409 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36236 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1742: -#line 10297 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1743: +#line 10321 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[-1].item); } -#line 36415 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36242 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1744: -#line 10303 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1745: +#line 10327 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= new (thd->mem_root) Item_func_set_collation(thd, (yyvsp[-2].item), (yyvsp[0].charset))))) MYSQL_YYABORT; } -#line 36424 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36251 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1746: -#line 10312 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1747: +#line 10336 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Type_cast_attributes at(&my_charset_bin); if (unlikely(!((yyval.item)= type_handler_long_blob.create_typecast_item(thd, (yyvsp[0].item), at)))) MYSQL_YYABORT; } -#line 36434 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36261 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1747: -#line 10318 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1748: +#line 10342 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item); } -#line 36442 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36269 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1748: -#line 10322 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1749: +#line 10346 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item)->neg(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36452 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36279 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1749: -#line 10328 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1750: +#line 10352 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_bit_neg(thd, (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36462 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36289 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1750: -#line 10334 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1751: +#line 10358 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= negate_expression(thd, (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36472 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36299 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1752: -#line 10344 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1753: +#line 10368 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_concat(thd, (yyvsp[-2].item), (yyvsp[0].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36482 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36309 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1753: -#line 10353 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1754: +#line 10377 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_datetime_typecast(thd, (yyvsp[-1].item), AUTO_SEC_PART_DIGITS); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36493 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36320 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1754: -#line 10360 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1755: +#line 10384 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_add_time(thd, (yyvsp[-3].item), (yyvsp[-1].item), 1, 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36503 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36330 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1755: -#line 10374 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1756: +#line 10398 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_char(thd, *(yyvsp[-1].item_list)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36513 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36340 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1756: -#line 10380 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1757: +#line 10404 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_char(thd, *(yyvsp[-3].item_list), (yyvsp[-1].charset)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36523 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36350 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1757: -#line 10386 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1758: +#line 10410 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_current_user(thd, Lex->current_context()); @@ -36532,11 +36359,11 @@ Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); Lex->safe_to_cache_query= 0; } -#line 36536 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36363 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1758: -#line 10395 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1759: +#line 10419 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_current_role(thd, Lex->current_context()); @@ -36545,51 +36372,51 @@ Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); Lex->safe_to_cache_query= 0; } -#line 36549 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36376 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1759: -#line 10404 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1760: +#line 10428 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_typecast(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36559 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36386 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1760: -#line 10410 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1761: +#line 10434 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_dayofmonth(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36569 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36396 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1761: -#line 10416 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1762: +#line 10440 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_hour(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36579 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36406 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1762: -#line 10422 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1763: +#line 10446 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_insert(thd, (yyvsp[-7].item), (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36589 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36416 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1763: -#line 10428 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1764: +#line 10452 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { List *list= new (thd->mem_root) List; if (unlikely(list == NULL)) @@ -36604,11 +36431,11 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36608 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36435 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1764: -#line 10443 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1765: +#line 10467 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-1].item_list)->push_front((yyvsp[-3].item), thd->mem_root); (yyvsp[-1].item_list)->push_front((yyvsp[-5].item), thd->mem_root); @@ -36619,61 +36446,61 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36623 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36450 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1765: -#line 10454 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1766: +#line 10478 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_left(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36633 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36460 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1766: -#line 10460 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1767: +#line 10484 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_minute(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36643 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36470 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1767: -#line 10466 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1768: +#line 10490 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_month(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36653 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36480 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1768: -#line 10472 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1769: +#line 10496 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_right(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36663 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36490 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1769: -#line 10478 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1770: +#line 10502 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_second(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36673 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36500 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1770: -#line 10484 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1771: +#line 10508 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_oracle_sql_rowcount(thd); if (unlikely((yyval.item) == NULL)) @@ -36681,39 +36508,39 @@ Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); Lex->safe_to_cache_query= 0; } -#line 36685 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36512 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1771: -#line 10492 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1772: +#line 10516 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_time_typecast(thd, (yyvsp[-1].item), AUTO_SEC_PART_DIGITS); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36696 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36523 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1772: -#line 10499 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1773: +#line 10523 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item); } -#line 36704 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36531 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1773: -#line 10503 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1774: +#line 10527 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= (yyvsp[-1].trim).make_item_func_trim(thd)))) MYSQL_YYABORT; } -#line 36713 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36540 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1774: -#line 10508 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1775: +#line 10532 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_user(thd); if (unlikely((yyval.item) == NULL)) @@ -36721,222 +36548,222 @@ Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); Lex->safe_to_cache_query=0; } -#line 36725 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36552 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1775: -#line 10516 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1776: +#line 10540 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_year(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36735 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36562 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1776: -#line 10537 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1777: +#line 10561 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-3].item), (yyvsp[-1].item), INTERVAL_DAY, 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36746 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36573 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1777: -#line 10544 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1778: +#line 10568 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[-1].interval), 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36756 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36583 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1778: -#line 10550 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1779: +#line 10574 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_curdate_local(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } -#line 36767 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36594 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1779: -#line 10557 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1780: +#line 10581 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_curtime_local(thd, (yyvsp[0].num)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } -#line 36778 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36605 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1780: -#line 10564 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1781: +#line 10588 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[-1].interval), 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36788 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36615 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1781: -#line 10570 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1782: +#line 10594 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[-1].interval), 1); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36798 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36625 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1782: -#line 10576 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1783: +#line 10600 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_date_format(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36808 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36635 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1783: -#line 10582 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1784: +#line 10606 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_date_format(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36818 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36645 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1784: -#line 10588 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1785: +#line 10612 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_decode(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36828 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36655 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1785: -#line 10594 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1786: +#line 10618 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-1].item_list)->push_front((yyvsp[-3].item), thd->mem_root); if (unlikely(!((yyval.item)= new (thd->mem_root) Item_func_decode_oracle(thd, *(yyvsp[-1].item_list))))) MYSQL_YYABORT; } -#line 36838 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36665 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1786: -#line 10600 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1787: +#line 10624 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)=new (thd->mem_root) Item_extract(thd, (yyvsp[-3].interval), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36848 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36675 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1787: -#line 10606 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1788: +#line 10630 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_get_format(thd, (yyvsp[-3].date_time_type), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36858 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36685 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1788: -#line 10612 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1789: +#line 10636 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_now_local(thd, (yyvsp[0].num)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } -#line 36869 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36696 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1789: -#line 10619 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1790: +#line 10643 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_locate(thd, (yyvsp[-1].item), (yyvsp[-3].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36879 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36706 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1790: -#line 10625 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1791: +#line 10649 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-3].item), (yyvsp[-1].item), INTERVAL_DAY, 1); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36890 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36717 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1791: -#line 10632 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1792: +#line 10656 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[-1].interval), 1); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36900 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36727 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1792: -#line 10638 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1793: +#line 10662 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_func_substr(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item))))) MYSQL_YYABORT; } -#line 36909 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36736 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1793: -#line 10643 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1794: +#line 10667 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_func_substr(thd, (yyvsp[-3].item), (yyvsp[-1].item))))) MYSQL_YYABORT; } -#line 36918 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36745 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1794: -#line 10648 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1795: +#line 10672 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_func_substr(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item))))) MYSQL_YYABORT; } -#line 36927 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36754 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1795: -#line 10653 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1796: +#line 10677 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_func_substr(thd, (yyvsp[-3].item), (yyvsp[-1].item))))) MYSQL_YYABORT; } -#line 36936 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36763 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1796: -#line 10658 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1797: +#line 10682 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* Unlike other time-related functions, SYSDATE() is @@ -36954,113 +36781,113 @@ MYSQL_YYABORT; Lex->safe_to_cache_query=0; } -#line 36958 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36785 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1797: -#line 10676 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1798: +#line 10700 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_date_add_interval(thd, (yyvsp[-1].item), (yyvsp[-3].item), (yyvsp[-5].interval_time_st), 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36968 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36795 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1798: -#line 10682 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1799: +#line 10706 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_timestamp_diff(thd, (yyvsp[-3].item), (yyvsp[-1].item), (yyvsp[-5].interval_time_st)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 36978 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36805 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1799: -#line 10688 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1800: +#line 10712 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= (yyvsp[-1].trim).make_item_func_trim_oracle(thd)))) MYSQL_YYABORT; } -#line 36987 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36814 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1800: -#line 10693 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1801: +#line 10717 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_curdate_utc(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } -#line 36998 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36825 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1801: -#line 10700 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1802: +#line 10724 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_curtime_utc(thd, (yyvsp[0].num)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } -#line 37009 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36836 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1802: -#line 10707 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1803: +#line 10731 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_now_utc(thd, (yyvsp[0].num)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } -#line 37020 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36847 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1803: -#line 10715 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1804: +#line 10739 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= create_func_dyncol_add(thd, (yyvsp[-3].item), *(yyvsp[-1].dyncol_def_list)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37030 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36857 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1804: -#line 10722 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1805: +#line 10746 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= create_func_dyncol_delete(thd, (yyvsp[-3].item), *(yyvsp[-1].item_list)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37040 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36867 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1805: -#line 10729 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1806: +#line 10753 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_dyncol_check(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37050 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36877 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1806: -#line 10736 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1807: +#line 10760 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= create_func_dyncol_create(thd, *(yyvsp[-1].dyncol_def_list)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37060 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36887 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1807: -#line 10743 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1808: +#line 10767 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; (yyval.item)= create_func_dyncol_get(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].Lex_cast_type).type_handler(), @@ -37069,92 +36896,92 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37073 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36900 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1808: -#line 10760 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1809: +#line 10784 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_ascii(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37083 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36910 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1809: -#line 10766 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1810: +#line 10790 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_charset(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37093 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36920 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1810: -#line 10772 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1811: +#line 10796 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_coalesce(thd, *(yyvsp[-1].item_list)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37103 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36930 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1811: -#line 10778 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1812: +#line 10802 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_collation(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37113 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36940 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1812: -#line 10784 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1813: +#line 10808 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_database(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; Lex->safe_to_cache_query=0; } -#line 37124 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36951 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1813: -#line 10791 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1814: +#line 10815 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_if(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37134 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36961 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1814: -#line 10797 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1815: +#line 10821 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_format(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37144 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36971 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1815: -#line 10803 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1816: +#line 10827 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_format(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37154 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36981 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1816: -#line 10812 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1817: +#line 10836 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { List *list= new (thd->mem_root) List; if (unlikely(list == NULL)) @@ -37165,53 +36992,53 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37169 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 36996 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1817: -#line 10823 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1818: +#line 10847 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-3].item_list)->push_back((yyvsp[-1].item), thd->mem_root); (yyval.item)= new (thd->mem_root) Item_func_last_value(thd, *(yyvsp[-3].item_list)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37180 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37007 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1818: -#line 10830 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1819: +#line 10854 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_microsecond(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37190 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37017 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1819: -#line 10836 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1820: +#line 10860 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_mod(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37200 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37027 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1820: -#line 10842 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1821: +#line 10866 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_password(thd, (yyvsp[-1].item), Item_func_password::OLD); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37211 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37038 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1821: -#line 10849 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1822: +#line 10873 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Item* i1; i1= new (thd->mem_root) Item_func_password(thd, (yyvsp[-1].item)); @@ -37219,50 +37046,50 @@ MYSQL_YYABORT; (yyval.item)= i1; } -#line 37223 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37050 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1822: -#line 10857 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1823: +#line 10881 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_quarter(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37233 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37060 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1823: -#line 10863 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1824: +#line 10887 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_repeat(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37243 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37070 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1824: -#line 10869 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1825: +#line 10893 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_func_replace(thd, (yyvsp[-5].item), (yyvsp[-3].item), (yyvsp[-1].item))))) MYSQL_YYABORT; } -#line 37252 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37079 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1825: -#line 10874 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1826: +#line 10898 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_reverse(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37262 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37089 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1826: -#line 10880 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1827: +#line 10904 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_row_count(thd); if (unlikely((yyval.item) == NULL)) @@ -37270,51 +37097,51 @@ Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION); Lex->safe_to_cache_query= 0; } -#line 37274 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37101 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1827: -#line 10888 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1828: +#line 10912 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_round(thd, (yyvsp[-3].item), (yyvsp[-1].item), 1); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37284 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37111 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1828: -#line 10894 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1829: +#line 10918 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_week(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37294 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37121 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1829: -#line 10900 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1830: +#line 10924 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_week(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37304 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37131 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1830: -#line 10906 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1831: +#line 10930 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_weight_string(thd, (yyvsp[-2].item), 0, 0, (yyvsp[-1].ulong_num)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37314 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37141 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1831: -#line 10912 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1832: +#line 10936 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_weight_string(thd, (yyvsp[-5].item), 0, (yyvsp[-2].ulong_num), @@ -37322,11 +37149,11 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37326 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37153 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1832: -#line 10920 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1833: +#line 10944 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Item *item= new (thd->mem_root) Item_char_typecast(thd, (yyvsp[-4].item), (yyvsp[-1].ulong_num), &my_charset_bin); @@ -37338,22 +37165,22 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37342 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37169 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1833: -#line 10932 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1834: +#line 10956 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_weight_string(thd, (yyvsp[-7].item), (yyvsp[-5].ulong_num), (yyvsp[-3].ulong_num), (yyvsp[-1].ulong_num)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37353 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37180 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1834: -#line 10939 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1835: +#line 10963 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { #ifdef HAVE_SPATIAL (yyval.item)= (yyvsp[0].item); @@ -37365,104 +37192,104 @@ sym_group_geom.needed_define)); #endif } -#line 37369 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37196 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1835: -#line 10954 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1836: +#line 10978 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= GEOM_NEW(thd, Item_func_spatial_precise_rel(thd, (yyvsp[-3].item), (yyvsp[-1].item), Item_func::SP_CONTAINS_FUNC)); } -#line 37379 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37206 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1836: -#line 10960 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1837: +#line 10984 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= GEOM_NEW(thd, Item_func_spatial_collection(thd, *(yyvsp[-1].item_list), Geometry::wkb_geometrycollection, Geometry::wkb_point)); } -#line 37390 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37217 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1837: -#line 10967 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1838: +#line 10991 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= GEOM_NEW(thd, Item_func_spatial_collection(thd, *(yyvsp[-1].item_list), Geometry::wkb_linestring, Geometry::wkb_point)); } -#line 37401 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37228 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1838: -#line 10974 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1839: +#line 10998 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= GEOM_NEW(thd, Item_func_spatial_collection(thd, *(yyvsp[-1].item_list), Geometry::wkb_multilinestring, Geometry::wkb_linestring)); } -#line 37412 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37239 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1839: -#line 10981 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1840: +#line 11005 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= GEOM_NEW(thd, Item_func_spatial_collection(thd, *(yyvsp[-1].item_list), Geometry::wkb_multipoint, Geometry::wkb_point)); } -#line 37423 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37250 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1840: -#line 10988 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1841: +#line 11012 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= GEOM_NEW(thd, Item_func_spatial_collection(thd, *(yyvsp[-1].item_list), Geometry::wkb_multipolygon, Geometry::wkb_polygon)); } -#line 37434 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37261 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1841: -#line 10995 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1842: +#line 11019 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= GEOM_NEW(thd, Item_func_point(thd, (yyvsp[-3].item), (yyvsp[-1].item))); } -#line 37442 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37269 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1842: -#line 10999 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1843: +#line 11023 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= GEOM_NEW(thd, Item_func_spatial_collection(thd, *(yyvsp[-1].item_list), Geometry::wkb_polygon, Geometry::wkb_linestring)); } -#line 37453 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37280 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1843: -#line 11006 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1844: +#line 11030 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= GEOM_NEW(thd, Item_func_spatial_precise_rel(thd, (yyvsp[-3].item), (yyvsp[-1].item), Item_func::SP_WITHIN_FUNC)); } -#line 37462 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37289 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1844: -#line 11023 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1845: +#line 11047 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { #ifdef HAVE_DLOPEN udf_func *udf= 0; @@ -37481,11 +37308,11 @@ (yyval.udf)= udf; #endif } -#line 37485 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37312 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1845: -#line 11042 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1846: +#line 11066 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Create_func *builder; Item *item= NULL; @@ -37534,88 +37361,88 @@ if (unlikely(! ((yyval.item)= item))) MYSQL_YYABORT; } -#line 37538 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37365 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1846: -#line 11091 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1847: +#line 11115 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_func_call_generic(thd, &(yyvsp[-5].ident_cli), &(yyvsp[-3].ident_cli), (yyvsp[-1].item_list))))) MYSQL_YYABORT; } -#line 37547 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37374 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1847: -#line 11099 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1848: +#line 11123 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= (yyvsp[-1].num) | (yyvsp[0].num); } -#line 37553 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37380 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1848: -#line 11101 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1849: +#line 11125 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= FT_BOOL; } -#line 37559 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37386 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1849: -#line 11105 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1850: +#line 11129 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= FT_NL; } -#line 37565 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37392 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1850: -#line 11106 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1851: +#line 11130 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= FT_NL; } -#line 37571 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37398 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1851: -#line 11110 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1852: +#line 11134 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 37577 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37404 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1852: -#line 11111 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1853: +#line 11135 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= FT_EXPAND; } -#line 37583 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37410 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1853: -#line 11115 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1854: +#line 11139 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item_list)= NULL; } -#line 37589 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37416 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1854: -#line 11116 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1855: +#line 11140 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item_list)= (yyvsp[0].item_list); } -#line 37595 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37422 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1855: -#line 11121 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1856: +#line 11145 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item_list)= new (thd->mem_root) List; if (unlikely((yyval.item_list) == NULL)) MYSQL_YYABORT; (yyval.item_list)->push_back((yyvsp[0].item), thd->mem_root); } -#line 37606 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37433 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1856: -#line 11128 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1857: +#line 11152 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-2].item_list)->push_back((yyvsp[0].item), thd->mem_root); (yyval.item_list)= (yyvsp[-2].item_list); } -#line 37615 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37442 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1857: -#line 11136 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1858: +#line 11160 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* Use Item::name as a storage for the attribute value of user @@ -37639,61 +37466,61 @@ (yyvsp[-2].item)->set_name(thd, (yyvsp[-3].simple_string), (uint) ((yyvsp[-1].simple_string) - (yyvsp[-3].simple_string)), thd->charset()); (yyval.item)= (yyvsp[-2].item); } -#line 37643 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37470 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1858: -#line 11163 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1859: +#line 11187 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_avg(thd, (yyvsp[-1].item), FALSE); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37653 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37480 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1859: -#line 11169 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1860: +#line 11193 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_avg(thd, (yyvsp[-1].item), TRUE); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37663 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37490 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1860: -#line 11175 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1861: +#line 11199 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_and(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37673 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37500 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1861: -#line 11181 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1862: +#line 11205 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_or(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37683 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37510 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1862: -#line 11187 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1863: +#line 11211 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_xor(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37693 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37520 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1863: -#line 11193 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1864: +#line 11217 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Item *item= new (thd->mem_root) Item_int(thd, (int32) 0L, 1); if (unlikely(item == NULL)) @@ -37702,149 +37529,149 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37706 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37533 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1864: -#line 11202 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1865: +#line 11226 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_count(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37716 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37543 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1865: -#line 11208 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1866: +#line 11232 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->in_sum_expr++; } -#line 37722 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37549 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1866: -#line 11210 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1867: +#line 11234 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->in_sum_expr--; } -#line 37728 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37555 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1867: -#line 11212 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1868: +#line 11236 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_count(thd, *(yyvsp[-2].item_list)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37738 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37565 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1868: -#line 11218 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1869: +#line 11242 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_min(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37748 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37575 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1869: -#line 11229 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1870: +#line 11253 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_min(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37758 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37585 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1870: -#line 11235 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1871: +#line 11259 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_max(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37768 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37595 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1871: -#line 11241 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1872: +#line 11265 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_max(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37778 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37605 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1872: -#line 11247 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1873: +#line 11271 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_std(thd, (yyvsp[-1].item), 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37788 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37615 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1873: -#line 11253 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1874: +#line 11277 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_variance(thd, (yyvsp[-1].item), 0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37798 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37625 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1874: -#line 11259 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1875: +#line 11283 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_std(thd, (yyvsp[-1].item), 1); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37808 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37635 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1875: -#line 11265 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1876: +#line 11289 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_variance(thd, (yyvsp[-1].item), 1); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37818 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37645 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1876: -#line 11271 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1877: +#line 11295 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_sum(thd, (yyvsp[-1].item), FALSE); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37828 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37655 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1877: -#line 11277 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1878: +#line 11301 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_sum(thd, (yyvsp[-1].item), TRUE); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37838 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37665 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1878: -#line 11283 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1879: +#line 11307 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->in_sum_expr++; } -#line 37844 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37671 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1879: -#line 11287 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1880: +#line 11311 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; sel->in_sum_expr--; @@ -37862,11 +37689,11 @@ (yyvsp[-4].item_list)->empty(); sel->gorder_list.empty(); } -#line 37866 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37693 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1880: -#line 11308 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1881: +#line 11332 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_window_func(thd, (Item_sum *) (yyvsp[-2].item), (yyvsp[0].lex_str_ptr)); if (unlikely((yyval.item) == NULL)) @@ -37874,11 +37701,11 @@ if (unlikely(Select->add_window_func((Item_window_func *) (yyval.item)))) MYSQL_YYABORT; } -#line 37878 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37705 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1881: -#line 11317 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1882: +#line 11341 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(Select->add_window_spec(thd, lex->win_ref, @@ -37893,109 +37720,109 @@ if (unlikely(Select->add_window_func((Item_window_func *) (yyval.item)))) MYSQL_YYABORT; } -#line 37897 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37724 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1883: -#line 11337 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1884: +#line 11361 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { ((Item_sum *) (yyvsp[0].item))->mark_as_window_func_sum_expr(); } -#line 37905 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37732 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1884: -#line 11344 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1885: +#line 11368 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_row_number(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37915 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37742 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1885: -#line 11351 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1886: +#line 11375 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_rank(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37925 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37752 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1886: -#line 11358 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1887: +#line 11382 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_dense_rank(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37935 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37762 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1887: -#line 11365 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1888: +#line 11389 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_percent_rank(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37945 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37772 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1888: -#line 11372 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1889: +#line 11396 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_cume_dist(thd); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37955 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37782 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1889: -#line 11379 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1890: +#line 11403 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_ntile(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37965 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37792 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1890: -#line 11386 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1891: +#line 11410 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_first_value(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37975 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37802 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1891: -#line 11393 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1892: +#line 11417 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_last_value(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37985 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37812 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1892: -#line 11400 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1893: +#line 11424 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_nth_value(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 37995 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37822 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1893: -#line 11407 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1894: +#line 11431 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* No second argument defaults to 1. */ Item* item_offset= new (thd->mem_root) Item_uint(thd, 1); @@ -38005,21 +37832,21 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38009 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37836 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1894: -#line 11418 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1895: +#line 11442 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_lead(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38019 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37846 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1895: -#line 11425 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1896: +#line 11449 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* No second argument defaults to 1. */ Item* item_offset= new (thd->mem_root) Item_uint(thd, 1); @@ -38029,21 +37856,21 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38033 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37860 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1896: -#line 11436 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1897: +#line 11460 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_lag(thd, (yyvsp[-3].item), (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38043 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37870 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1897: -#line 11448 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1898: +#line 11472 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(Select->add_window_spec(thd, lex->win_ref, @@ -38058,25 +37885,25 @@ if (unlikely(Select->add_window_func((Item_window_func *) (yyval.item)))) MYSQL_YYABORT; } -#line 38062 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37889 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1898: -#line 11466 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1899: +#line 11490 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->prepare_add_window_spec(thd); } -#line 38068 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37895 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1899: -#line 11468 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1900: +#line 11492 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[-6].item); } -#line 38076 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37903 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1900: -#line 11472 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1901: +#line 11496 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Item *args= new (thd->mem_root) Item_decimal(thd, "0.5", 3, thd->charset()); @@ -38090,67 +37917,67 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38094 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37921 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1901: -#line 11489 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1902: +#line 11513 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_percentile_cont(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38104 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37931 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1902: -#line 11495 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1903: +#line 11519 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_sum_percentile_disc(thd, (yyvsp[-1].item)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 38114 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37941 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1903: -#line 11504 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1904: +#line 11528 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(add_order_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) MYSQL_YYABORT; } -#line 38123 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37950 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1904: -#line 11513 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1905: +#line 11537 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str_ptr)= (LEX_CSTRING *) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_CSTRING)); if (unlikely((yyval.lex_str_ptr) == NULL)) MYSQL_YYABORT; } -#line 38133 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37960 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1905: -#line 11522 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1906: +#line 11546 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(! Lex->parsing_options.allows_variable)) my_yyabort_error((ER_VIEW_SELECT_VARIABLE, MYF(0))); } -#line 38142 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37969 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1906: -#line 11527 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1907: +#line 11551 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item); } -#line 38150 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37977 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1907: -#line 11534 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1908: +#line 11558 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Item_func_set_user_var *item; (yyval.item)= item= new (thd->mem_root) Item_func_set_user_var(thd, &(yyvsp[-2].lex_str), (yyvsp[0].item)); @@ -38160,11 +37987,11 @@ lex->uncacheable(UNCACHEABLE_SIDEEFFECT); lex->set_var_list.push_back(item, thd->mem_root); } -#line 38164 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 37991 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1908: -#line 11544 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1909: +#line 11568 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_func_get_user_var(thd, &(yyvsp[0].lex_str)); if (unlikely((yyval.item) == NULL)) @@ -38172,134 +37999,134 @@ LEX *lex= Lex; lex->uncacheable(UNCACHEABLE_SIDEEFFECT); } -#line 38176 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38003 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1909: -#line 11552 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1910: +#line 11576 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_sysvar(thd, (yyvsp[-1].var_type), &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 38185 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38012 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1910: -#line 11557 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1911: +#line 11581 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_sysvar(thd, (yyvsp[-3].var_type), &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 38194 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38021 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1911: -#line 11564 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1912: +#line 11588 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num) = 0; } -#line 38200 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38027 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1912: -#line 11565 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1913: +#line 11589 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num) = 1; } -#line 38206 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38033 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1913: -#line 11570 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1914: +#line 11594 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.string)= new (thd->mem_root) String(",", 1, &my_charset_latin1); if (unlikely((yyval.string) == NULL)) MYSQL_YYABORT; } -#line 38216 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38043 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1914: -#line 11575 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1915: +#line 11599 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.string) = (yyvsp[0].string); } -#line 38222 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38049 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1917: -#line 11585 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1918: +#line 11609 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(add_gorder_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) MYSQL_YYABORT; } -#line 38231 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38058 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1918: -#line 11590 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1919: +#line 11614 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(add_gorder_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) MYSQL_YYABORT; } -#line 38240 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38067 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1919: -#line 11597 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1920: +#line 11621 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num) = 0; } -#line 38246 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38073 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1920: -#line 11598 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1921: +#line 11622 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num) = 1; } -#line 38252 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38079 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1921: -#line 11602 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1922: +#line 11626 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 38258 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38085 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1922: -#line 11607 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1923: +#line 11631 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); } -#line 38266 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38093 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1923: -#line 11614 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1924: +#line 11638 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; sel->select_limit= (yyvsp[0].item); sel->offset_limit= 0; sel->explicit_limit= 1; } -#line 38277 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38104 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1924: -#line 11621 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1925: +#line 11645 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; sel->select_limit= (yyvsp[0].item); sel->offset_limit= (yyvsp[-2].item); sel->explicit_limit= 1; } -#line 38288 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38115 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1925: -#line 11628 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1926: +#line 11652 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; sel->select_limit= (yyvsp[-2].item); sel->offset_limit= (yyvsp[0].item); sel->explicit_limit= 1; } -#line 38299 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38126 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1926: -#line 11640 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1927: +#line 11664 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->current_select->inc_in_sum_expr())) @@ -38308,213 +38135,213 @@ MYSQL_YYABORT; } } -#line 38312 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38139 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1927: -#line 11649 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1928: +#line 11673 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->in_sum_expr--; (yyval.item)= (yyvsp[0].item); } -#line 38321 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38148 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1928: -#line 11657 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1929: +#line 11681 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[0].const_simple_string)); Lex->charset= &my_charset_bin; } -#line 38327 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38154 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1929: -#line 11659 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1930: +#line 11683 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->charset= thd->variables.collation_connection; } -#line 38333 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38160 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1930: -#line 11661 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1931: +#line 11685 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[-2].const_simple_string)); } -#line 38339 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38166 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1931: -#line 11663 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1932: +#line 11687 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->charset= thd->variables.collation_connection; } -#line 38345 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38172 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1932: -#line 11665 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1933: +#line 11689 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[-2].const_simple_string)); } -#line 38351 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38178 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1933: -#line 11667 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1934: +#line 11691 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->charset= thd->variables.collation_connection; } -#line 38357 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38184 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1934: -#line 11669 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1935: +#line 11693 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[-2].const_simple_string)); } -#line 38363 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38190 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1935: -#line 11671 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1936: +#line 11695 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->charset= national_charset_info; (yyval.Lex_cast_type).set(&type_handler_long_blob, (yyvsp[0].const_simple_string), 0); } -#line 38372 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 1936: -#line 11675 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_cast_type)= (yyvsp[0].Lex_cast_type); Lex->charset= NULL; } -#line 38378 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38199 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1937: -#line 11676 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 11699 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_cast_type)= (yyvsp[0].Lex_cast_type); Lex->charset= NULL; } -#line 38384 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38205 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1938: -#line 11680 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_cast_type).set(&type_handler_longlong); } -#line 38390 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 11700 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_cast_type)= (yyvsp[0].Lex_cast_type); Lex->charset= NULL; } +#line 38211 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1939: -#line 11681 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 11704 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_cast_type).set(&type_handler_longlong); } -#line 38396 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38217 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1940: -#line 11682 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 11705 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_cast_type).set(&type_handler_longlong); } -#line 38402 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38223 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1941: -#line 11683 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_cast_type).set(&type_handler_ulonglong); } -#line 38408 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 11706 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_cast_type).set(&type_handler_longlong); } +#line 38229 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1942: -#line 11684 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 11707 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.Lex_cast_type).set(&type_handler_ulonglong); } -#line 38414 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38235 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1943: -#line 11685 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_cast_type).set(&type_handler_newdecimal, (yyvsp[0].Lex_length_and_dec)); } -#line 38420 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 11708 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_cast_type).set(&type_handler_ulonglong); } +#line 38241 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1944: -#line 11686 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_cast_type).set(&type_handler_float); } -#line 38426 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 11709 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_cast_type).set(&type_handler_newdecimal, (yyvsp[0].Lex_length_and_dec)); } +#line 38247 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1945: -#line 11687 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_cast_type).set(&type_handler_double, (yyvsp[0].Lex_length_and_dec)); } -#line 38432 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 11710 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_cast_type).set(&type_handler_float); } +#line 38253 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1946: -#line 11691 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_cast_type).set(&type_handler_newdate); } -#line 38438 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 11711 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_cast_type).set(&type_handler_double, (yyvsp[0].Lex_length_and_dec)); } +#line 38259 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1947: -#line 11692 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_cast_type).set(&type_handler_time2, 0, (yyvsp[0].const_simple_string)); } -#line 38444 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 11715 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_cast_type).set(&type_handler_newdate); } +#line 38265 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1948: -#line 11693 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.Lex_cast_type).set(&type_handler_datetime2, 0, (yyvsp[0].const_simple_string)); } -#line 38450 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 11716 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_cast_type).set(&type_handler_time2, 0, (yyvsp[0].const_simple_string)); } +#line 38271 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1949: -#line 11697 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.item_list)= NULL; } -#line 38456 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 11717 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.Lex_cast_type).set(&type_handler_datetime2, 0, (yyvsp[0].const_simple_string)); } +#line 38277 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1950: -#line 11698 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.item_list)= (yyvsp[0].item_list);} -#line 38462 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 11721 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.item_list)= NULL; } +#line 38283 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 1951: -#line 11703 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 11722 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.item_list)= (yyvsp[0].item_list);} +#line 38289 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 1952: +#line 11727 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item_list)= new (thd->mem_root) List; if (unlikely((yyval.item_list) == NULL) || unlikely((yyval.item_list)->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; } -#line 38473 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38300 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1952: -#line 11710 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1953: +#line 11734 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-2].item_list)->push_back((yyvsp[0].item), thd->mem_root); (yyval.item_list)= (yyvsp[-2].item_list); } -#line 38482 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38309 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1953: -#line 11717 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1954: +#line 11741 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item_list)= (yyvsp[0].item_list); } -#line 38488 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38315 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1954: -#line 11718 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1955: +#line 11742 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item_list)= (yyvsp[-1].item_list); } -#line 38494 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38321 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1955: -#line 11723 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1956: +#line 11747 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item_list)= new (thd->mem_root) List; if (unlikely((yyval.item_list) == NULL) || unlikely((yyval.item_list)->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; } -#line 38505 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38332 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1956: -#line 11730 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1957: +#line 11754 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-2].item_list)->push_back((yyvsp[0].item), thd->mem_root); (yyval.item_list)= (yyvsp[-2].item_list); } -#line 38514 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38341 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1957: -#line 11738 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1958: +#line 11762 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item_list)= new (thd->mem_root) List; if (unlikely((yyval.item_list) == NULL)) @@ -38523,32 +38350,32 @@ (yyval.item_list)->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; } -#line 38527 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38354 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1958: -#line 11747 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1959: +#line 11771 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[-4].item_list)->push_back((yyvsp[-2].item), thd->mem_root) || (yyvsp[-4].item_list)->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; (yyval.item_list)= (yyvsp[-4].item_list); } -#line 38538 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38365 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1960: -#line 11758 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1961: +#line 11782 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[-2].item_list)->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; (yyval.item_list)= (yyvsp[-2].item_list); } -#line 38548 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38375 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1961: -#line 11767 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1962: +#line 11791 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item_list)= new (thd->mem_root) List; if (unlikely((yyval.item_list) == NULL) || @@ -38557,27 +38384,27 @@ MYSQL_YYABORT; } -#line 38561 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38388 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1962: -#line 11776 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1963: +#line 11800 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item_list)= (yyvsp[-2].item_list); if (unlikely((yyval.item_list)->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; } -#line 38571 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38398 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1963: -#line 11787 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1964: +#line 11811 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.table_list)= (yyvsp[0].table_list); } -#line 38577 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38404 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1964: -#line 11789 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1965: +#line 11813 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(!((yyval.table_list)= lex->current_select->nest_last_join(thd)))) @@ -38586,54 +38413,54 @@ MYSQL_YYABORT; } } -#line 38590 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38417 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1965: -#line 11800 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1966: +#line 11824 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyval.table_list)=(yyvsp[0].table_list)); } -#line 38596 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38423 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1966: -#line 11811 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1967: +#line 11835 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.table_list)=(yyvsp[0].table_list); } -#line 38602 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38429 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1967: -#line 11812 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1968: +#line 11836 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.table_list)=(yyvsp[-1].table_list); } -#line 38608 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38435 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1968: -#line 11818 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1969: +#line 11842 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.table_list)=(yyvsp[0].table_list); } -#line 38614 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38441 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1969: -#line 11820 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1970: +#line 11844 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-2].table_list) && ((yyval.table_list)=(yyvsp[0].table_list))); } -#line 38622 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38449 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1970: -#line 11838 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1971: +#line 11862 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-2].table_list) && ((yyval.table_list)=(yyvsp[0].table_list))); if (unlikely(Select->add_cross_joined_table((yyvsp[-2].table_list), (yyvsp[0].table_list), (yyvsp[-1].num)))) MYSQL_YYABORT; } -#line 38633 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38460 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1971: -#line 11846 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1972: +#line 11870 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-3].table_list) && (yyvsp[-1].table_list)); /* Change the current name resolution context to a local context. */ @@ -38641,50 +38468,50 @@ MYSQL_YYABORT; Select->parsing_place= IN_ON; } -#line 38645 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38472 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1972: -#line 11854 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1973: +#line 11878 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-3].table_list)->straight=(yyvsp[-4].num); add_join_on(thd, (yyvsp[-3].table_list), (yyvsp[0].item)); (yyvsp[-3].table_list)->on_context= Lex->pop_context(); Select->parsing_place= NO_MATTER; } -#line 38656 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38483 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1973: -#line 11862 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1974: +#line 11886 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-3].table_list) && (yyvsp[-1].table_list)); } -#line 38664 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38491 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1974: -#line 11866 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1975: +#line 11890 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-5].table_list)->straight=(yyvsp[-6].num); add_join_natural((yyvsp[-7].table_list),(yyvsp[-5].table_list),(yyvsp[-1].string_list),Select); (yyval.table_list)=(yyvsp[-5].table_list); } -#line 38674 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38501 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1975: -#line 11872 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1976: +#line 11896 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-3].table_list) && ((yyval.table_list)=(yyvsp[0].table_list))); (yyvsp[0].table_list)->straight=(yyvsp[-1].num); add_join_natural((yyvsp[-3].table_list),(yyvsp[0].table_list),NULL,Select); } -#line 38684 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38511 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1976: -#line 11881 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1977: +#line 11905 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[-1].table_list)); /* Change the current name resolution context to a local context. */ @@ -38692,11 +38519,11 @@ MYSQL_YYABORT; Select->parsing_place= IN_ON; } -#line 38696 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38523 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1977: -#line 11889 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1978: +#line 11913 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { add_join_on(thd, (yyvsp[-3].table_list), (yyvsp[0].item)); (yyvsp[-3].table_list)->on_context= Lex->pop_context(); @@ -38704,40 +38531,40 @@ (yyval.table_list)=(yyvsp[-3].table_list); Select->parsing_place= NO_MATTER; } -#line 38708 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38535 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1978: -#line 11897 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1979: +#line 11921 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-4].table_list) && (yyvsp[0].table_list)); } -#line 38716 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38543 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1979: -#line 11901 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1980: +#line 11925 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { add_join_natural((yyvsp[-9].table_list),(yyvsp[-5].table_list),(yyvsp[-1].string_list),Select); (yyvsp[-5].table_list)->outer_join|=JOIN_TYPE_LEFT; (yyval.table_list)=(yyvsp[-5].table_list); } -#line 38726 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38553 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1980: -#line 11907 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1981: +#line 11931 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[0].table_list)); add_join_natural((yyvsp[-5].table_list),(yyvsp[0].table_list),NULL,Select); (yyvsp[0].table_list)->outer_join|=JOIN_TYPE_LEFT; (yyval.table_list)=(yyvsp[0].table_list); } -#line 38737 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38564 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1981: -#line 11917 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1982: +#line 11941 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[-1].table_list)); /* Change the current name resolution context to a local context. */ @@ -38745,11 +38572,11 @@ MYSQL_YYABORT; Select->parsing_place= IN_ON; } -#line 38749 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38576 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1982: -#line 11925 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1983: +#line 11949 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(!((yyval.table_list)= lex->current_select->convert_right_join()))) @@ -38758,30 +38585,30 @@ (yyvsp[-7].table_list)->on_context= Lex->pop_context(); Select->parsing_place= NO_MATTER; } -#line 38762 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38589 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1983: -#line 11934 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1984: +#line 11958 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-4].table_list) && (yyvsp[0].table_list)); } -#line 38770 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38597 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1984: -#line 11938 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1985: +#line 11962 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(!((yyval.table_list)= lex->current_select->convert_right_join()))) MYSQL_YYABORT; add_join_natural((yyval.table_list),(yyvsp[-5].table_list),(yyvsp[-1].string_list),Select); } -#line 38781 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38608 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1985: -#line 11945 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1986: +#line 11969 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[0].table_list)); add_join_natural((yyvsp[0].table_list),(yyvsp[-5].table_list),NULL,Select); @@ -38789,65 +38616,65 @@ if (unlikely(!((yyval.table_list)= lex->current_select->convert_right_join()))) MYSQL_YYABORT; } -#line 38793 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38620 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1986: -#line 11956 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1987: +#line 11980 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num) = 0; } -#line 38799 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38626 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1987: -#line 11957 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1988: +#line 11981 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num) = 0; } -#line 38805 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38632 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1988: -#line 11958 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1989: +#line 11982 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num) = 1; } -#line 38811 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38638 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1989: -#line 11962 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1990: +#line 11986 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num) = (yyvsp[0].num); } -#line 38817 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38644 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1990: -#line 11963 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1991: +#line 11987 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num) = 0; } -#line 38823 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38650 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1991: -#line 11971 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1992: +#line 11995 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.string_list)= 0;} -#line 38829 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38656 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1993: -#line 11977 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1994: +#line 12001 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.string_list)= (yyvsp[-2].string_list); } -#line 38837 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38664 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1996: -#line 11996 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1997: +#line 12020 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Select); SELECT_LEX *sel= Select; sel->table_join_options= 0; } -#line 38847 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38674 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1997: -#line 12002 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1998: +#line 12026 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.table_list)= Select->add_table_to_list(thd, (yyvsp[-4].table), (yyvsp[-1].lex_str_ptr), Select->get_table_join_options(), @@ -38861,11 +38688,11 @@ if ((yyvsp[-2].num)) (yyval.table_list)->vers_conditions= Lex->vers_conditions; } -#line 38865 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38692 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1998: -#line 12037 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 1999: +#line 12061 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* Use $2 instead of Lex->current_select as derived table will alter value of Lex->current_select. */ @@ -38930,11 +38757,11 @@ (yyval.table_list)->vers_conditions= Lex->vers_conditions; } } -#line 38934 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38761 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 1999: -#line 12105 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2000: +#line 12129 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; SELECT_LEX *sel= (yyvsp[-7].select_lex); @@ -38953,11 +38780,11 @@ if ((yyvsp[-1].num)) (yyval.table_list)->vers_conditions= Lex->vers_conditions; } -#line 38957 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38784 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2001: -#line 12147 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2002: +#line 12171 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[-1].table_list))) { @@ -38965,11 +38792,11 @@ MYSQL_YYABORT; } } -#line 38969 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38796 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2002: -#line 12155 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2003: +#line 12179 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[-1].table_list))) { @@ -38977,37 +38804,37 @@ MYSQL_YYABORT; } } -#line 38981 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38808 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2007: -#line 12169 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2008: +#line 12193 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->pop_context(); } -#line 38987 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38814 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2008: -#line 12170 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2009: +#line 12194 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->pop_context(); } -#line 38993 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38820 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2009: -#line 12171 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2010: +#line 12195 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->pop_context(); } -#line 38999 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38826 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2012: -#line 12182 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2013: +#line 12206 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->set_braces(0); } -#line 39007 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38834 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2013: -#line 12189 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2014: +#line 12213 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; SELECT_LEX *sel= lex->current_select; @@ -39015,19 +38842,19 @@ mysql_init_select(lex); lex->current_select->parsing_place= SELECT_LIST; } -#line 39019 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38846 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2014: -#line 12197 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2015: +#line 12221 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->parsing_place= NO_MATTER; } -#line 39027 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38854 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2015: -#line 12205 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2016: +#line 12229 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; /* for normal joins, $2 != NULL and end_nested_join() != NULL, @@ -39041,51 +38868,51 @@ MYSQL_YYABORT; } } -#line 39045 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38872 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2016: -#line 12221 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2017: +#line 12245 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.table_list)= (yyvsp[0].table_list); } -#line 39051 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38878 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2017: -#line 12222 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2018: +#line 12246 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.table_list)= (yyvsp[0].table_list); } -#line 39057 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38884 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2018: -#line 12231 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2019: +#line 12255 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if ((yyvsp[-1].num)) Select->set_braces(1); (yyval.table_list)= NULL; } -#line 39067 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38894 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2019: -#line 12240 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2020: +#line 12264 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->tvc_start(); } -#line 39075 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38902 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2020: -#line 12244 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2021: +#line 12268 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (Lex->tvc_finalize_derived()) MYSQL_YYABORT; (yyval.table_list)= NULL; } -#line 39085 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38912 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2021: -#line 12253 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2022: +#line 12277 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->derived_tables|= DERIVED_SUBQUERY; @@ -39102,35 +38929,35 @@ lex->current_select->linkage= DERIVED_TABLE_TYPE; lex->current_select->parsing_place= SELECT_LIST; } -#line 39106 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38933 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2022: -#line 12270 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2023: +#line 12294 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->parsing_place= NO_MATTER; } -#line 39114 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38941 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2024: -#line 12277 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2025: +#line 12301 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.select_lex)= Select; } -#line 39120 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38947 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2025: -#line 12282 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2026: +#line 12306 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely((yyvsp[0].select_lex)->init_nested_join(lex->thd))) MYSQL_YYABORT; } -#line 39130 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38957 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2026: -#line 12290 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2027: +#line 12314 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; @@ -39139,113 +38966,113 @@ !embedding->nested_join->join_list.elements; /* return true if we are deeply nested */ } -#line 39143 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38970 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2027: -#line 12301 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2028: +#line 12325 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 39149 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38976 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2028: -#line 12302 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2029: +#line 12326 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 39155 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38982 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2029: -#line 12307 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2030: +#line 12331 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= thd->variables.old_mode ? INDEX_HINT_MASK_JOIN : INDEX_HINT_MASK_ALL; } -#line 39163 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38990 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2030: -#line 12310 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2031: +#line 12334 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= INDEX_HINT_MASK_JOIN; } -#line 39169 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 38996 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2031: -#line 12311 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2032: +#line 12335 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= INDEX_HINT_MASK_ORDER; } -#line 39175 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39002 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2032: -#line 12312 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2033: +#line 12336 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= INDEX_HINT_MASK_GROUP; } -#line 39181 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39008 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2033: -#line 12316 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2034: +#line 12340 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.index_hint)= INDEX_HINT_FORCE; } -#line 39187 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39014 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2034: -#line 12317 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2035: +#line 12341 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.index_hint)= INDEX_HINT_IGNORE; } -#line 39193 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39020 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2035: -#line 12322 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2036: +#line 12346 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->set_index_hint_type((yyvsp[-2].index_hint), (yyvsp[0].num)); } -#line 39201 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39028 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2037: -#line 12327 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2038: +#line 12351 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->set_index_hint_type(INDEX_HINT_USE, (yyvsp[0].num)); } -#line 39209 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39036 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2042: -#line 12340 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2043: +#line 12364 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->alloc_index_hints(thd); } -#line 39215 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39042 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2044: -#line 12344 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2045: +#line 12368 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->clear_index_hints(); } -#line 39221 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39048 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2046: -#line 12349 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2047: +#line 12373 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->add_index_hint(thd, NULL, 0); } -#line 39227 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39054 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2047: -#line 12350 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2048: +#line 12374 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 39233 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39060 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2048: -#line 12355 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2049: +#line 12379 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->add_index_hint(thd, (yyvsp[0].ident_sys).str, (yyvsp[0].ident_sys).length); } -#line 39239 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39066 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2049: -#line 12357 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2050: +#line 12381 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->add_index_hint(thd, "PRIMARY", 7); } -#line 39245 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39072 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2052: -#line 12367 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2053: +#line 12391 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.string_list)= new (thd->mem_root) List))) MYSQL_YYABORT; @@ -39256,11 +39083,11 @@ MYSQL_YYABORT; (yyval.string_list)->push_back(s, thd->mem_root); } -#line 39260 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39087 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2053: -#line 12378 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2054: +#line 12402 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { String *s= new (thd->mem_root) String((const char *) (yyvsp[0].ident_sys).str, (yyvsp[0].ident_sys).length, @@ -39271,191 +39098,191 @@ MYSQL_YYABORT; (yyval.string_list)= (yyvsp[-2].string_list); } -#line 39275 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39102 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2054: -#line 12391 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2055: +#line 12415 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 39281 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39108 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2055: -#line 12392 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2056: +#line 12416 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_DAY_HOUR; } -#line 39287 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39114 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2056: -#line 12393 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2057: +#line 12417 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_DAY_MICROSECOND; } -#line 39293 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39120 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2057: -#line 12394 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2058: +#line 12418 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_DAY_MINUTE; } -#line 39299 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39126 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2058: -#line 12395 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2059: +#line 12419 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_DAY_SECOND; } -#line 39305 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39132 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2059: -#line 12396 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2060: +#line 12420 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_HOUR_MICROSECOND; } -#line 39311 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39138 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2060: -#line 12397 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2061: +#line 12421 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_HOUR_MINUTE; } -#line 39317 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39144 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2061: -#line 12398 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2062: +#line 12422 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_HOUR_SECOND; } -#line 39323 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39150 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2062: -#line 12399 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2063: +#line 12423 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_MINUTE_MICROSECOND; } -#line 39329 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39156 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2063: -#line 12400 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2064: +#line 12424 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_MINUTE_SECOND; } -#line 39335 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39162 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2064: -#line 12401 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2065: +#line 12425 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_SECOND_MICROSECOND; } -#line 39341 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39168 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2065: -#line 12402 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2066: +#line 12426 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval)=INTERVAL_YEAR_MONTH; } -#line 39347 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39174 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2066: -#line 12406 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2067: +#line 12430 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval_time_st)=INTERVAL_DAY; } -#line 39353 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39180 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2067: -#line 12407 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2068: +#line 12431 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval_time_st)=INTERVAL_WEEK; } -#line 39359 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39186 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2068: -#line 12408 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2069: +#line 12432 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval_time_st)=INTERVAL_HOUR; } -#line 39365 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39192 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2069: -#line 12409 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2070: +#line 12433 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval_time_st)=INTERVAL_MINUTE; } -#line 39371 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39198 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2070: -#line 12410 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2071: +#line 12434 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval_time_st)=INTERVAL_MONTH; } -#line 39377 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39204 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2071: -#line 12411 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2072: +#line 12435 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval_time_st)=INTERVAL_QUARTER; } -#line 39383 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39210 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2072: -#line 12412 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2073: +#line 12436 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval_time_st)=INTERVAL_SECOND; } -#line 39389 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39216 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2073: -#line 12413 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2074: +#line 12437 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval_time_st)=INTERVAL_MICROSECOND; } -#line 39395 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39222 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2074: -#line 12414 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2075: +#line 12438 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.interval_time_st)=INTERVAL_YEAR; } -#line 39401 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39228 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2075: -#line 12418 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2076: +#line 12442 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATE;} -#line 39407 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39234 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2076: -#line 12419 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2077: +#line 12443 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {(yyval.date_time_type)=MYSQL_TIMESTAMP_TIME;} -#line 39413 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39240 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2077: -#line 12420 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2078: +#line 12444 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;} -#line 39419 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39246 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2078: -#line 12421 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2079: +#line 12445 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;} -#line 39425 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39252 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2082: -#line 12431 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2083: +#line 12455 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str_ptr)=0; } -#line 39431 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39258 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2083: -#line 12433 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2084: +#line 12457 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str_ptr)= (LEX_CSTRING*) thd->memdup(&(yyvsp[0].ident_sys),sizeof(LEX_STRING)); if (unlikely((yyval.lex_str_ptr) == NULL)) MYSQL_YYABORT; } -#line 39441 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39268 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2086: -#line 12446 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2087: +#line 12470 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->where= 0; } -#line 39447 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39274 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2087: -#line 12448 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2088: +#line 12472 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->parsing_place= IN_WHERE; } -#line 39455 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39282 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2088: -#line 12452 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2089: +#line 12476 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { SELECT_LEX *select= Select; select->where= normalize_cond(thd, (yyvsp[0].item)); @@ -39463,19 +39290,19 @@ if ((yyvsp[0].item)) (yyvsp[0].item)->top_level_item(); } -#line 39467 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39294 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2090: -#line 12464 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2091: +#line 12488 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->parsing_place= IN_HAVING; } -#line 39475 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39302 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2091: -#line 12468 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2092: +#line 12492 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; sel->having= normalize_cond(thd, (yyvsp[0].item)); @@ -39483,20 +39310,20 @@ if ((yyvsp[0].item)) (yyvsp[0].item)->top_level_item(); } -#line 39487 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39314 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2092: -#line 12479 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2093: +#line 12503 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->escape_used= TRUE; (yyval.item)= (yyvsp[0].item); } -#line 39496 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39323 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2093: -#line 12484 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2094: +#line 12508 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->escape_used= FALSE; (yyval.item)= ((thd->variables.sql_mode & MODE_NO_BACKSLASH_ESCAPES) ? @@ -39505,35 +39332,35 @@ if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 39509 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39336 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2096: -#line 12505 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2097: +#line 12529 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(add_group_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) MYSQL_YYABORT; } -#line 39518 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39345 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2097: -#line 12510 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2098: +#line 12534 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(add_group_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) MYSQL_YYABORT; } -#line 39527 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39354 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2098: -#line 12517 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2099: +#line 12541 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 39533 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39360 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2099: -#line 12519 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2100: +#line 12543 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* 'WITH CUBE' is reserved in the MySQL syntax, but not implemented, @@ -39550,11 +39377,11 @@ my_yyabort_error((ER_NOT_SUPPORTED_YET, MYF(0), "CUBE")); } -#line 39554 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39381 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2100: -#line 12536 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2101: +#line 12560 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* 'WITH ROLLUP' is needed for backward compatibility, @@ -39569,23 +39396,23 @@ "global union parameters")); lex->current_select->olap= ROLLUP_TYPE; } -#line 39573 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39400 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2101: -#line 12558 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2102: +#line 12582 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 39579 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39406 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2102: -#line 12561 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2103: +#line 12585 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 39585 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39412 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2105: -#line 12571 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2106: +#line 12595 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(Select->add_window_def(thd, (yyvsp[-2].lex_str_ptr), lex->win_ref, @@ -39594,51 +39421,51 @@ lex->win_frame))) MYSQL_YYABORT; } -#line 39598 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39425 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2106: -#line 12583 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2107: +#line 12607 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->prepare_add_window_spec(thd); } -#line 39604 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39431 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2108: -#line 12590 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2109: +#line 12614 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 39610 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39437 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2109: -#line 12592 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2110: +#line 12616 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { thd->lex->win_ref= (LEX_CSTRING *) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_CSTRING)); if (unlikely(thd->lex->win_ref == NULL)) MYSQL_YYABORT; } -#line 39620 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39447 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2110: -#line 12599 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2111: +#line 12624 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 39626 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39453 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2112: -#line 12604 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2113: +#line 12629 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 39632 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39459 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2114: -#line 12609 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2115: +#line 12634 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 39638 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39465 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2115: -#line 12611 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2116: +#line 12636 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->win_frame= @@ -39649,23 +39476,23 @@ if (unlikely(lex->win_frame == NULL)) MYSQL_YYABORT; } -#line 39653 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39480 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2116: -#line 12624 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2117: +#line 12649 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.frame_units)= Window_frame::UNITS_ROWS; } -#line 39659 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39486 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2117: -#line 12625 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2118: +#line 12650 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.frame_units)= Window_frame::UNITS_RANGE; } -#line 39665 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39492 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2118: -#line 12630 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2119: +#line 12655 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->frame_top_bound= (yyvsp[0].window_frame_bound); @@ -39675,128 +39502,128 @@ if (unlikely(lex->frame_bottom_bound == NULL)) MYSQL_YYABORT; } -#line 39679 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39506 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2119: -#line 12640 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2120: +#line 12665 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->frame_top_bound= (yyvsp[-2].window_frame_bound); lex->frame_bottom_bound= (yyvsp[0].window_frame_bound); } -#line 39689 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39516 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2120: -#line 12649 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2121: +#line 12674 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.window_frame_bound)= new (thd->mem_root) Window_frame_bound(Window_frame_bound::PRECEDING, NULL); if (unlikely((yyval.window_frame_bound) == NULL)) MYSQL_YYABORT; } -#line 39700 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39527 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2121: -#line 12656 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2122: +#line 12681 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.window_frame_bound)= new (thd->mem_root) Window_frame_bound(Window_frame_bound::CURRENT, NULL); if (unlikely((yyval.window_frame_bound) == NULL)) MYSQL_YYABORT; } -#line 39711 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39538 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2122: -#line 12663 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2123: +#line 12688 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.window_frame_bound)= new (thd->mem_root) Window_frame_bound(Window_frame_bound::PRECEDING, (yyvsp[-1].item)); if (unlikely((yyval.window_frame_bound) == NULL)) MYSQL_YYABORT; } -#line 39722 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39549 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2123: -#line 12672 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2124: +#line 12697 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.window_frame_bound)= (yyvsp[0].window_frame_bound); } -#line 39728 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39555 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2124: -#line 12674 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2125: +#line 12699 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.window_frame_bound)= new (thd->mem_root) Window_frame_bound(Window_frame_bound::FOLLOWING, NULL); if (unlikely((yyval.window_frame_bound) == NULL)) MYSQL_YYABORT; } -#line 39739 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39566 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2125: -#line 12681 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2126: +#line 12706 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.window_frame_bound)= new (thd->mem_root) Window_frame_bound(Window_frame_bound::FOLLOWING, (yyvsp[-1].item)); if (unlikely((yyval.window_frame_bound) == NULL)) MYSQL_YYABORT; } -#line 39750 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39577 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2126: -#line 12690 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2127: +#line 12715 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.frame_exclusion)= Window_frame::EXCL_NONE; } -#line 39756 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39583 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2127: -#line 12692 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2128: +#line 12717 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.frame_exclusion)= Window_frame::EXCL_CURRENT_ROW; } -#line 39762 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39589 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2128: -#line 12694 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2129: +#line 12719 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.frame_exclusion)= Window_frame::EXCL_GROUP; } -#line 39768 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39595 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2129: -#line 12696 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2130: +#line 12721 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.frame_exclusion)= Window_frame::EXCL_TIES; } -#line 39774 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39601 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2130: -#line 12698 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2131: +#line 12723 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.frame_exclusion)= Window_frame::EXCL_NONE; } -#line 39780 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39607 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2131: -#line 12700 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2132: +#line 12725 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.frame_exclusion)= Window_frame::EXCL_NONE; } -#line 39786 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39613 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2135: -#line 12718 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2136: +#line 12743 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { bool ascending= ((yyvsp[0].num) == 1) ? true : false; if (unlikely(add_order_to_list(thd, (yyvsp[-1].item), ascending))) MYSQL_YYABORT; } -#line 39796 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39623 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2138: -#line 12736 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2139: +#line 12761 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; SELECT_LEX *sel= lex->current_select; @@ -39839,67 +39666,67 @@ lex->current_select= sel->master_unit()->fake_select_lex; } } -#line 39843 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39670 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2139: -#line 12779 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2140: +#line 12804 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 39851 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39678 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2140: -#line 12786 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2141: +#line 12811 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(add_order_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) MYSQL_YYABORT; } -#line 39860 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39687 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2141: -#line 12791 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2142: +#line 12816 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(add_order_to_list(thd, (yyvsp[-1].item),(bool) (yyvsp[0].num)))) MYSQL_YYABORT; } -#line 39869 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39696 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2142: -#line 12798 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2143: +#line 12823 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num) = 1; } -#line 39875 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39702 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2143: -#line 12799 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2144: +#line 12824 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num) =1; } -#line 39881 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39708 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2144: -#line 12800 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2145: +#line 12825 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num) =0; } -#line 39887 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39714 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2145: -#line 12804 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2146: +#line 12829 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 39893 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39720 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2146: -#line 12805 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2147: +#line 12830 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 39899 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39726 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2147: -#line 12810 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2148: +#line 12835 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; if (sel->master_unit()->is_unit_op() && !sel->braces) @@ -39909,366 +39736,366 @@ DBUG_ASSERT(Select); } } -#line 39913 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39740 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2148: -#line 12823 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2149: +#line 12848 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; if (!sel->select_limit->basic_const_item() || sel->select_limit->val_int() > 0) Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); } -#line 39924 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39751 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2149: -#line 12831 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2150: +#line 12856 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); } -#line 39932 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39759 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2150: -#line 12835 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2151: +#line 12860 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); } -#line 39940 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39767 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2151: -#line 12842 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2152: +#line 12867 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; sel->select_limit= (yyvsp[0].item); sel->offset_limit= 0; sel->explicit_limit= 1; } -#line 39951 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39778 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2152: -#line 12849 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2153: +#line 12874 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; sel->select_limit= (yyvsp[0].item); sel->offset_limit= (yyvsp[-2].item); sel->explicit_limit= 1; } -#line 39962 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39789 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2153: -#line 12856 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2154: +#line 12881 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; sel->select_limit= (yyvsp[-2].item); sel->offset_limit= (yyvsp[0].item); sel->explicit_limit= 1; } -#line 39973 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39800 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2154: -#line 12866 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2155: +#line 12891 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_limit(thd, &(yyvsp[0].ident_cli))))) MYSQL_YYABORT; } -#line 39982 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39809 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2155: -#line 12871 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2156: +#line 12896 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_limit(thd, &(yyvsp[-2].ident_cli), &(yyvsp[0].ident_cli))))) MYSQL_YYABORT; } -#line 39991 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39818 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2156: -#line 12876 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2157: +#line 12901 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[0].item_param)->limit_clause_param= TRUE; } -#line 39999 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39826 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2157: -#line 12880 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2158: +#line 12905 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_uint(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 40009 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39836 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2158: -#line 12886 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2159: +#line 12911 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_uint(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 40019 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39846 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2159: -#line 12892 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2160: +#line 12917 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_uint(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 40029 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39856 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2160: -#line 12901 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2161: +#line 12926 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->limit_rows_examined= (yyvsp[0].item); } -#line 40038 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39865 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2161: -#line 12908 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2162: +#line 12934 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->current_select->select_limit= 0; } -#line 40047 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39874 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2162: -#line 12913 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2163: +#line 12939 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { SELECT_LEX *sel= Select; sel->select_limit= (yyvsp[0].item); Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT); sel->explicit_limit= 1; } -#line 40058 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 2163: -#line 12919 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { thd->parse_error(); MYSQL_YYABORT; } -#line 40064 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39885 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2164: -#line 12920 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 12945 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { thd->parse_error(); MYSQL_YYABORT; } -#line 40070 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39891 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2167: -#line 12929 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { int error; (yyval.num)= (int) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40076 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + case 2165: +#line 12946 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { thd->parse_error(); MYSQL_YYABORT; } +#line 39897 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2168: -#line 12930 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { int error; (yyval.num)= -(int) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40082 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 12955 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { int error; (yyval.num)= (int) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 39903 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2169: -#line 12933 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40088 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 12956 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { int error; (yyval.num)= -(int) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 39909 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2170: -#line 12934 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.ulong_num)= (ulong) strtol((yyvsp[0].lex_str).str, (char**) 0, 16); } -#line 40094 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 12960 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 39915 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2171: -#line 12935 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40100 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 12961 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.ulong_num)= (ulong) strtol((yyvsp[0].lex_str).str, (char**) 0, 16); } +#line 39921 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2172: -#line 12936 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 12962 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40106 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39927 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2173: -#line 12937 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 12963 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40112 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39933 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2174: -#line 12938 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 12964 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40118 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39939 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2175: -#line 12942 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 12965 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40124 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39945 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2176: -#line 12943 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.ulong_num)= (ulong) strtol((yyvsp[0].lex_str).str, (char**) 0, 16); } -#line 40130 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 12969 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 39951 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2177: -#line 12944 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40136 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 12970 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.ulong_num)= (ulong) strtol((yyvsp[0].lex_str).str, (char**) 0, 16); } +#line 39957 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2178: -#line 12945 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 12971 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40142 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39963 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2179: -#line 12946 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { MYSQL_YYABORT; } -#line 40148 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 12972 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 39969 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2180: -#line 12950 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { int error; (yyval.longlong_number)= (longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40154 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 12973 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { MYSQL_YYABORT; } +#line 39975 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2181: -#line 12951 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 12977 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { int error; (yyval.longlong_number)= (longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40160 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39981 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2182: -#line 12952 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { int error; (yyval.longlong_number)= -(longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40166 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 12978 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { int error; (yyval.longlong_number)= (longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 39987 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2183: -#line 12953 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 12979 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { int error; (yyval.longlong_number)= -(longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40172 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 39993 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2184: -#line 12957 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40178 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 12980 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { int error; (yyval.longlong_number)= -(longlong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 39999 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2185: -#line 12958 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 12984 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40184 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40005 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2186: -#line 12959 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 12985 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40190 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40011 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2187: -#line 12960 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 12986 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40196 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40017 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2188: -#line 12961 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 12987 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40202 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40023 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2189: -#line 12965 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 12988 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40208 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40029 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2190: -#line 12966 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 12992 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40214 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40035 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2191: -#line 12967 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.ulonglong_number)= strtoull((yyvsp[0].lex_str).str, (char**) 0, 16); } -#line 40220 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 12993 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 40041 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2192: -#line 12968 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } -#line 40226 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 12994 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.ulonglong_number)= strtoull((yyvsp[0].lex_str).str, (char**) 0, 16); } +#line 40047 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2193: -#line 12969 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { MYSQL_YYABORT; } -#line 40232 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 12995 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } +#line 40053 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2194: -#line 12974 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 12996 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { MYSQL_YYABORT; } +#line 40059 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 2195: +#line 13001 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { thd->parse_error(ER_ONLY_INTEGERS_ALLOWED); } -#line 40238 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40065 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2197: -#line 12983 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2198: +#line 13010 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.choice)= (yyvsp[0].ulong_num) != 0 ? HA_CHOICE_YES : HA_CHOICE_NO; } -#line 40244 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40071 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2198: -#line 12984 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2199: +#line 13011 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.choice)= HA_CHOICE_UNDEF; } -#line 40250 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40077 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2199: -#line 12988 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2200: +#line 13015 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= (yyvsp[0].ulong_num) != 0; } -#line 40256 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40083 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2200: -#line 12989 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2201: +#line 13016 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= 1; } -#line 40262 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40089 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2201: -#line 12990 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2202: +#line 13017 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ulong_num)= 0; } -#line 40268 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40095 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2202: -#line 12995 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2203: +#line 13022 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; @@ -40294,43 +40121,43 @@ */ Lex->expr_allows_subselect= false; } -#line 40298 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40125 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2203: -#line 13021 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2204: +#line 13048 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* Subqueries are allowed from now.*/ Lex->expr_allows_subselect= true; } -#line 40307 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40134 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2204: -#line 13028 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2205: +#line 13055 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 40313 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40140 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2205: -#line 13029 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2206: +#line 13056 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 40319 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40146 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2208: -#line 13039 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2209: +#line 13066 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(add_proc_to_list(thd, (yyvsp[-1].item)))) MYSQL_YYABORT; if (!(yyvsp[-1].item)->name.str || (yyvsp[-1].item)->name.str == item_empty_name) (yyvsp[-1].item)->set_name(thd, (yyvsp[-2].simple_string), (uint) ((yyvsp[0].simple_string) - (yyvsp[-2].simple_string)), thd->charset()); } -#line 40330 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40157 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2209: -#line 13048 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2210: +#line 13075 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (!lex->describe && @@ -40338,23 +40165,23 @@ select_dumpvar(thd))))) MYSQL_YYABORT; } -#line 40342 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40169 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2210: -#line 13056 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2211: +#line 13083 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 40348 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40175 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2212: -#line 13061 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2213: +#line 13088 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 40354 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40181 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2213: -#line 13065 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2214: +#line 13092 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (Lex->result) { @@ -40371,37 +40198,37 @@ DBUG_ASSERT(Lex->describe); } } -#line 40375 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40202 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2214: -#line 13085 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2215: +#line 13112 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.myvar) = Lex->result ? new (thd->mem_root) my_var_user(&(yyvsp[0].lex_str)) : NULL; } -#line 40383 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40210 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2215: -#line 13089 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2216: +#line 13116 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.myvar)= Lex->create_outvar(thd, &(yyvsp[0].lex_str))) && Lex->result)) MYSQL_YYABORT; } -#line 40392 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40219 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2216: -#line 13094 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2217: +#line 13121 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.myvar)= Lex->create_outvar(thd, &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))) && Lex->result)) MYSQL_YYABORT; } -#line 40401 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40228 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2218: -#line 13106 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2219: +#line 13133 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->uncacheable(UNCACHEABLE_SIDEEFFECT); @@ -40412,17 +40239,17 @@ select_export(thd, lex->exchange)))) MYSQL_YYABORT; } -#line 40416 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40243 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2219: -#line 13117 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2220: +#line 13144 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->exchange->cs= (yyvsp[0].charset); } -#line 40422 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40249 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2221: -#line 13120 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2222: +#line 13147 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (!lex->describe) @@ -40437,54 +40264,54 @@ MYSQL_YYABORT; } } -#line 40441 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40268 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2222: -#line 13135 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2223: +#line 13162 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->uncacheable(UNCACHEABLE_SIDEEFFECT); } -#line 40449 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40276 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2223: -#line 13146 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2224: +#line 13173 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_DO; mysql_init_select(lex); } -#line 40459 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40286 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2224: -#line 13152 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2225: +#line 13179 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->insert_list= (yyvsp[0].item_list); } -#line 40467 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40294 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2225: -#line 13163 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2226: +#line 13190 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->set_command(SQLCOM_DROP_TABLE, (yyvsp[-2].num), (yyvsp[0].object_ddl_options)); YYPS->m_lock_type= TL_UNLOCK; YYPS->m_mdl_type= MDL_EXCLUSIVE; } -#line 40478 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40305 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2226: -#line 13170 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2227: +#line 13197 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 40484 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40311 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2227: -#line 13172 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2228: +#line 13199 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; Alter_drop *ad= (new (thd->mem_root) @@ -40501,21 +40328,21 @@ MDL_SHARED_UPGRADABLE))) MYSQL_YYABORT; } -#line 40505 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40332 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2228: -#line 13189 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2229: +#line 13216 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->set_command(SQLCOM_DROP_DB, (yyvsp[-1].object_ddl_options)); lex->name= (yyvsp[0].ident_sys); } -#line 40515 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40342 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2229: -#line 13195 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2230: +#line 13222 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->set_command(SQLCOM_DROP_PACKAGE, (yyvsp[-1].object_ddl_options)); @@ -40523,11 +40350,11 @@ my_yyabort_error((ER_SP_NO_DROP_SP, MYF(0), "PACKAGE")); lex->spname= (yyvsp[0].spname); } -#line 40527 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40354 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2230: -#line 13203 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2231: +#line 13230 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->set_command(SQLCOM_DROP_PACKAGE_BODY, (yyvsp[-1].object_ddl_options)); @@ -40535,11 +40362,11 @@ my_yyabort_error((ER_SP_NO_DROP_SP, MYF(0), "PACKAGE BODY")); lex->spname= (yyvsp[0].spname); } -#line 40539 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40366 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2231: -#line 13211 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2232: +#line 13238 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; sp_name *spname; @@ -40553,11 +40380,11 @@ MYSQL_YYABORT; lex->spname= spname; } -#line 40557 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40384 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2232: -#line 13225 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2233: +#line 13252 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; LEX_CSTRING db= {0, 0}; @@ -40572,11 +40399,11 @@ MYSQL_YYABORT; lex->spname= spname; } -#line 40576 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40403 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2233: -#line 13240 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2234: +#line 13267 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(lex->sphead)) @@ -40584,90 +40411,90 @@ lex->set_command(SQLCOM_DROP_PROCEDURE, (yyvsp[-1].object_ddl_options)); lex->spname= (yyvsp[0].spname); } -#line 40588 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40415 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2234: -#line 13248 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2235: +#line 13275 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->set_command(SQLCOM_DROP_USER, (yyvsp[-2].object_ddl_options)); } -#line 40596 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40423 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2235: -#line 13252 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2236: +#line 13279 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->set_command(SQLCOM_DROP_ROLE, (yyvsp[-2].object_ddl_options)); } -#line 40604 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40431 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2236: -#line 13256 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2237: +#line 13283 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->set_command(SQLCOM_DROP_VIEW, (yyvsp[0].object_ddl_options)); YYPS->m_lock_type= TL_UNLOCK; YYPS->m_mdl_type= MDL_EXCLUSIVE; } -#line 40615 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40442 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2237: -#line 13263 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2238: +#line 13290 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 40621 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40448 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2238: -#line 13265 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2239: +#line 13292 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->spname= (yyvsp[0].spname); Lex->set_command(SQLCOM_DROP_EVENT, (yyvsp[-1].object_ddl_options)); } -#line 40630 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40457 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2239: -#line 13270 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2240: +#line 13297 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->set_command(SQLCOM_DROP_TRIGGER, (yyvsp[-1].object_ddl_options)); lex->spname= (yyvsp[0].spname); } -#line 40640 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40467 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2240: -#line 13276 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2241: +#line 13303 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= DROP_TABLESPACE; } -#line 40649 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40476 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2241: -#line 13281 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2242: +#line 13308 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= DROP_LOGFILE_GROUP; } -#line 40658 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40485 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2242: -#line 13286 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2243: +#line 13313 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->set_command(SQLCOM_DROP_SERVER, (yyvsp[-1].object_ddl_options)); Lex->server_options.reset((yyvsp[0].lex_str)); } -#line 40667 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40494 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2243: -#line 13292 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2244: +#line 13319 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->set_command(SQLCOM_DROP_SEQUENCE, (yyvsp[-2].num), (yyvsp[0].object_ddl_options)); @@ -40675,17 +40502,17 @@ YYPS->m_lock_type= TL_UNLOCK; YYPS->m_mdl_type= MDL_EXCLUSIVE; } -#line 40679 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40506 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2244: -#line 13300 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2245: +#line 13327 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 40685 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40512 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2247: -#line 13310 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2248: +#line 13337 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!Select->add_table_to_list(thd, (yyvsp[0].table), NULL, TL_OPTION_UPDATING, @@ -40693,11 +40520,11 @@ YYPS->m_mdl_type))) MYSQL_YYABORT; } -#line 40697 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40524 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2248: -#line 13321 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2249: +#line 13348 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!Select->add_table_to_list(thd, (yyvsp[-1].table), NULL, TL_OPTION_UPDATING, @@ -40707,11 +40534,11 @@ (yyvsp[0].string_list)))) MYSQL_YYABORT; } -#line 40711 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40538 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2251: -#line 13339 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2252: +#line 13366 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!Select-> add_table_to_list(thd, (yyvsp[0].table), NULL, @@ -40721,109 +40548,113 @@ YYPS->m_mdl_type))) MYSQL_YYABORT; } -#line 40725 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40552 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2252: -#line 13352 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2253: +#line 13379 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->check_exists= FALSE; (yyval.num)= 0; } -#line 40734 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40561 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2253: -#line 13357 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2254: +#line 13384 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->check_exists= TRUE; (yyval.num)= 1; } -#line 40743 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40570 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2254: -#line 13365 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2255: +#line 13392 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.object_ddl_options).set(DDL_options_st::OPT_NONE); } -#line 40751 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40578 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2255: -#line 13369 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2256: +#line 13396 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.object_ddl_options).set(DDL_options_st::OPT_IF_EXISTS); } -#line 40759 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40586 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2256: -#line 13375 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2257: +#line 13402 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 40765 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40592 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2257: -#line 13376 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2258: +#line 13403 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= HA_LEX_CREATE_TMP_TABLE; } -#line 40771 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40598 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2258: -#line 13384 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2259: +#line 13411 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_INSERT; lex->duplicates= DUP_ERROR; mysql_init_select(lex); } -#line 40782 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40609 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2259: -#line 13392 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2260: +#line 13419 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->set_lock_for_tables((yyvsp[-2].lock_type), true); Lex->current_select= &Lex->select_lex; } -#line 40791 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40618 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2260: -#line 13397 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 40797 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + case 2261: +#line 13424 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { + Lex->mark_first_table_as_inserting(); + } +#line 40626 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2261: -#line 13402 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2262: +#line 13431 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_REPLACE; lex->duplicates= DUP_REPLACE; mysql_init_select(lex); } -#line 40808 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40637 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2262: -#line 13409 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2263: +#line 13438 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->set_lock_for_tables((yyvsp[-1].lock_type), true); Lex->current_select= &Lex->select_lex; } -#line 40817 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40646 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2263: -#line 13414 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 40823 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + case 2264: +#line 13443 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { + Lex->mark_first_table_as_inserting(); + } +#line 40654 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2264: -#line 13419 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2265: +#line 13450 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* If it is SP we do not allow insert optimisation when result of @@ -40832,91 +40663,91 @@ */ (yyval.lock_type)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT); } -#line 40836 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40667 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2265: -#line 13427 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2266: +#line 13458 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; } -#line 40842 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40673 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2266: -#line 13429 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2267: +#line 13460 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { // QQ: why was +1? Lex->keyword_delayed_begin_offset= (uint)((yyvsp[0].kwd).pos() - thd->query()); Lex->keyword_delayed_end_offset= (uint)((yyvsp[0].kwd).end() - thd->query()); (yyval.lock_type)= TL_WRITE_DELAYED; } -#line 40853 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40684 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2267: -#line 13435 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2268: +#line 13466 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lock_type)= TL_WRITE; } -#line 40859 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40690 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2268: -#line 13439 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2269: +#line 13470 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lock_type)= (yyvsp[0].lock_type); } -#line 40865 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40696 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2269: -#line 13441 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2270: +#line 13472 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->keyword_delayed_begin_offset= (uint)((yyvsp[0].kwd).pos() - thd->query()); Lex->keyword_delayed_end_offset= (uint)((yyvsp[0].kwd).end() - thd->query()); (yyval.lock_type)= TL_WRITE_DELAYED; } -#line 40875 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40706 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2270: -#line 13449 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2271: +#line 13480 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 40881 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40712 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2271: -#line 13450 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2272: +#line 13481 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 40887 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40718 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2272: -#line 13455 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2273: +#line 13486 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->field_list.empty(); lex->many_values.empty(); lex->insert_list=0; } -#line 40898 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 2273: -#line 13463 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 40904 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40729 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2274: -#line 13464 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 13495 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 40910 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40735 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2275: -#line 13465 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 13496 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 40916 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40741 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2276: -#line 13467 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 13497 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {} +#line 40747 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 2277: +#line 13499 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(!(lex->insert_list= new (thd->mem_root) List_item)) || @@ -40924,170 +40755,170 @@ thd->mem_root))) MYSQL_YYABORT; } -#line 40928 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 2278: -#line 13479 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } -#line 40934 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40759 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2279: -#line 13480 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 13511 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } -#line 40940 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40765 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2280: -#line 13484 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 40946 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 13512 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } +#line 40771 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2281: -#line 13485 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 13516 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 40952 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40777 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2282: -#line 13486 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 13517 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 40958 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40783 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 2283: +#line 13518 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {} +#line 40789 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2287: -#line 13501 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2288: +#line 13533 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(lex->field_list.push_back((yyvsp[-2].item), thd->mem_root)) || unlikely(lex->insert_list->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; } -#line 40969 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 2288: -#line 13510 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 40975 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40800 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2289: -#line 13511 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 13542 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 40981 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40806 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2290: -#line 13515 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 13543 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 40987 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40812 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2291: -#line 13516 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 13547 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 40993 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40818 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2292: -#line 13520 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 13548 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 40999 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40824 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2293: -#line 13521 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 13552 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 41005 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40830 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2294: -#line 13525 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 13553 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 41011 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40836 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2295: -#line 13526 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 13557 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 41017 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40842 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2296: -#line 13531 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 13558 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {} +#line 40848 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 2297: +#line 13563 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!(Lex->insert_list= new (thd->mem_root) List_item))) MYSQL_YYABORT; } -#line 41026 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40857 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2297: -#line 13536 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2298: +#line 13568 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(lex->many_values.push_back(lex->insert_list, thd->mem_root))) MYSQL_YYABORT; } -#line 41037 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40868 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2298: -#line 13546 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2299: +#line 13578 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!(Lex->insert_list= new (thd->mem_root) List_item))) MYSQL_YYABORT; } -#line 41046 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40877 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2299: -#line 13551 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2300: +#line 13583 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(lex->many_values.push_back(lex->insert_list, thd->mem_root))) MYSQL_YYABORT; } -#line 41057 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40888 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2300: -#line 13560 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2301: +#line 13592 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 41063 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40894 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2302: -#line 13565 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2303: +#line 13597 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 41069 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40900 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2304: -#line 13571 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2305: +#line 13603 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->insert_list->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; } -#line 41078 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40909 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2305: -#line 13576 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2306: +#line 13608 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->insert_list->push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; } -#line 41087 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40918 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2306: -#line 13584 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2307: +#line 13616 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->insert_list->push_back((yyvsp[-1].item), thd->mem_root))) MYSQL_YYABORT; @@ -41095,11 +40926,11 @@ if (!(yyvsp[-1].item)->name.str || (yyvsp[-1].item)->name.str == item_empty_name) (yyvsp[-1].item)->set_name(thd, (yyvsp[-2].simple_string), (uint) ((yyvsp[0].simple_string) - (yyvsp[-2].simple_string)), thd->charset()); } -#line 41099 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40930 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2307: -#line 13592 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2308: +#line 13624 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->insert_list->push_back((yyvsp[-1].item), thd->mem_root))) MYSQL_YYABORT; @@ -41107,70 +40938,70 @@ if (!(yyvsp[-1].item)->name.str || (yyvsp[-1].item)->name.str == item_empty_name) (yyvsp[-1].item)->set_name(thd, (yyvsp[-2].simple_string), (uint) ((yyvsp[0].simple_string) - (yyvsp[-2].simple_string)), thd->charset()); } -#line 41111 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40942 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2308: -#line 13602 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2309: +#line 13634 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item);} -#line 41117 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40948 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2309: -#line 13604 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2310: +#line 13636 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_default_value(thd, Lex->current_context()); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 41127 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40958 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2310: -#line 13610 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2311: +#line 13642 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_ignore_value(thd, Lex->current_context()); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 41137 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40968 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2312: -#line 13619 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2313: +#line 13651 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->duplicates= DUP_UPDATE; } -#line 41143 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40974 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2313: -#line 13621 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2314: +#line 13653 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->parsing_place= IN_UPDATE_ON_DUP_KEY; } -#line 41151 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40982 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2314: -#line 13625 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2315: +#line 13657 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->parsing_place= NO_MATTER; } -#line 41159 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 40990 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2315: -#line 13634 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2316: +#line 13666 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; mysql_init_select(lex); lex->sql_command= SQLCOM_UPDATE; lex->duplicates= DUP_ERROR; } -#line 41170 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41001 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2316: -#line 13642 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2317: +#line 13674 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { SELECT_LEX *slex= &Lex->select_lex; if (slex->table_list.elements > 1) @@ -41189,50 +41020,50 @@ */ slex->set_lock_for_tables((yyvsp[-4].lock_type), slex->table_list.elements == 1); } -#line 41193 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41024 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2317: -#line 13660 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2318: +#line 13692 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 41199 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41030 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2320: -#line 13670 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2321: +#line 13702 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(add_item_to_list(thd, (yyvsp[-2].item))) || unlikely(add_value_to_list(thd, (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 41209 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41040 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2323: -#line 13684 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2324: +#line 13716 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->update_list.push_back((yyvsp[-2].item), thd->mem_root)) || unlikely(lex->value_list.push_back((yyvsp[0].item), thd->mem_root))) MYSQL_YYABORT; } -#line 41220 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41051 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2324: -#line 13693 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2325: +#line 13725 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lock_type)= TL_WRITE_DEFAULT; } -#line 41226 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41057 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2325: -#line 13694 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2326: +#line 13726 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; } -#line 41232 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41063 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2326: -#line 13701 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2327: +#line 13733 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_DELETE; @@ -41243,41 +41074,41 @@ lex->ignore= 0; lex->select_lex.init_order(); } -#line 41247 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41078 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2328: -#line 13716 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2329: +#line 13748 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->vers_conditions.init(SYSTEM_TIME_ALL); } -#line 41255 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41086 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2329: -#line 13720 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2330: +#line 13752 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->vers_conditions.init(SYSTEM_TIME_BEFORE, (yyvsp[0].vers_history_point)); } -#line 41263 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41094 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2330: -#line 13726 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2331: +#line 13758 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 41269 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41100 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2331: -#line 13728 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2332: +#line 13760 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->last_table()->vers_conditions= Lex->vers_conditions; } -#line 41277 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41108 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2332: -#line 13735 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2333: +#line 13767 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!Select-> add_table_to_list(thd, (yyvsp[-1].table), NULL, TL_OPTION_UPDATING, @@ -41289,55 +41120,55 @@ YYPS->m_lock_type= TL_READ_DEFAULT; YYPS->m_mdl_type= MDL_SHARED_READ; } -#line 41293 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41124 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2333: -#line 13753 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2334: +#line 13785 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 41299 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41130 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2334: -#line 13755 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2335: +#line 13787 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { mysql_init_multi_delete(Lex); YYPS->m_lock_type= TL_READ_DEFAULT; YYPS->m_mdl_type= MDL_SHARED_READ; } -#line 41309 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41140 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2335: -#line 13761 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2336: +#line 13793 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(multi_delete_set_locks_and_link_aux_tables(Lex))) MYSQL_YYABORT; } -#line 41318 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41149 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2336: -#line 13766 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2337: +#line 13798 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { mysql_init_multi_delete(Lex); YYPS->m_lock_type= TL_READ_DEFAULT; YYPS->m_mdl_type= MDL_SHARED_READ; } -#line 41328 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41159 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2337: -#line 13772 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2338: +#line 13804 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(multi_delete_set_locks_and_link_aux_tables(Lex))) MYSQL_YYABORT; } -#line 41337 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41168 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2342: -#line 13790 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2343: +#line 13822 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Table_ident *ti= new (thd->mem_root) Table_ident(&(yyvsp[-1].ident_sys)); if (unlikely(ti == NULL)) @@ -41352,11 +41183,11 @@ YYPS->m_mdl_type))) MYSQL_YYABORT; } -#line 41356 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41187 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2343: -#line 13805 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2344: +#line 13837 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Table_ident *ti= new (thd->mem_root) Table_ident(thd, &(yyvsp[-3].ident_sys), &(yyvsp[-1].ident_sys), 0); if (unlikely(ti == NULL)) @@ -41371,53 +41202,53 @@ YYPS->m_mdl_type))) MYSQL_YYABORT; } -#line 41375 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 2344: -#line 13822 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 41381 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41206 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2345: -#line 13823 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 13854 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 41387 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41212 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2346: -#line 13827 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 13855 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 41393 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41218 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2347: -#line 13828 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 13859 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 41399 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41224 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2348: -#line 13832 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Select->options|= OPTION_QUICK; } -#line 41405 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 13860 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {} +#line 41230 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2349: -#line 13833 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { YYPS->m_lock_type= TL_WRITE_LOW_PRIORITY; } -#line 41411 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 13864 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Select->options|= OPTION_QUICK; } +#line 41236 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2350: -#line 13834 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->ignore= 1; } -#line 41417 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 13865 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { YYPS->m_lock_type= TL_WRITE_LOW_PRIORITY; } +#line 41242 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2351: -#line 13839 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 13866 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->ignore= 1; } +#line 41248 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 2352: +#line 13871 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX* lex= Lex; lex->sql_command= SQLCOM_TRUNCATE; @@ -41428,11 +41259,11 @@ YYPS->m_lock_type= TL_WRITE; YYPS->m_mdl_type= MDL_EXCLUSIVE; } -#line 41432 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41263 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2352: -#line 13850 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2353: +#line 13882 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX* lex= thd->lex; DBUG_ASSERT(!lex->m_sql_cmd); @@ -41440,105 +41271,105 @@ if (unlikely(lex->m_sql_cmd == NULL)) MYSQL_YYABORT; } -#line 41444 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41275 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2353: -#line 13857 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2354: +#line 13889 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 41450 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41281 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2363: -#line 13881 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2364: +#line 13913 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->profile_options|= PROFILE_CPU; } -#line 41458 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41289 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2364: -#line 13885 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2365: +#line 13917 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->profile_options|= PROFILE_MEMORY; } -#line 41466 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41297 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2365: -#line 13889 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2366: +#line 13921 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->profile_options|= PROFILE_BLOCK_IO; } -#line 41474 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41305 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2366: -#line 13893 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2367: +#line 13925 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->profile_options|= PROFILE_CONTEXT; } -#line 41482 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41313 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2367: -#line 13897 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2368: +#line 13929 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->profile_options|= PROFILE_PAGE_FAULTS; } -#line 41490 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41321 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2368: -#line 13901 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2369: +#line 13933 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->profile_options|= PROFILE_IPC; } -#line 41498 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41329 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2369: -#line 13905 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2370: +#line 13937 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->profile_options|= PROFILE_SWAPS; } -#line 41506 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41337 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2370: -#line 13909 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2371: +#line 13941 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->profile_options|= PROFILE_SOURCE; } -#line 41514 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41345 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2371: -#line 13913 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2372: +#line 13945 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->profile_options|= PROFILE_ALL; } -#line 41522 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41353 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2372: -#line 13920 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2373: +#line 13952 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->profile_query_id= 0; } -#line 41530 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41361 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2373: -#line 13924 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2374: +#line 13956 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->profile_query_id= atoi((yyvsp[0].lex_str).str); } -#line 41538 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41369 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2374: -#line 13933 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2375: +#line 13965 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->wild=0; @@ -41547,30 +41378,30 @@ lex->current_select->parsing_place= SELECT_LIST; lex->create_info.init(); } -#line 41551 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41382 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2375: -#line 13942 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2376: +#line 13974 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->parsing_place= NO_MATTER; } -#line 41559 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41390 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2376: -#line 13949 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2377: +#line 13981 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_DATABASES; if (unlikely(prepare_schema_table(thd, lex, 0, SCH_SCHEMATA))) MYSQL_YYABORT; } -#line 41570 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41401 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2377: -#line 13956 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2378: +#line 13988 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_TABLES; @@ -41578,11 +41409,11 @@ if (unlikely(prepare_schema_table(thd, lex, 0, SCH_TABLE_NAMES))) MYSQL_YYABORT; } -#line 41582 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41413 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2378: -#line 13964 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2379: +#line 13996 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_TRIGGERS; @@ -41590,11 +41421,11 @@ if (unlikely(prepare_schema_table(thd, lex, 0, SCH_TRIGGERS))) MYSQL_YYABORT; } -#line 41594 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41425 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2379: -#line 13972 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2380: +#line 14004 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_EVENTS; @@ -41602,11 +41433,11 @@ if (unlikely(prepare_schema_table(thd, lex, 0, SCH_EVENTS))) MYSQL_YYABORT; } -#line 41606 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41437 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2380: -#line 13980 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2381: +#line 14012 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_TABLE_STATUS; @@ -41614,11 +41445,11 @@ if (unlikely(prepare_schema_table(thd, lex, 0, SCH_TABLES))) MYSQL_YYABORT; } -#line 41618 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41449 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2381: -#line 13988 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2382: +#line 14020 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_OPEN_TABLES; @@ -41626,55 +41457,55 @@ if (unlikely(prepare_schema_table(thd, lex, 0, SCH_OPEN_TABLES))) MYSQL_YYABORT; } -#line 41630 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41461 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2382: -#line 13996 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2383: +#line 14028 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_PLUGINS; if (unlikely(prepare_schema_table(thd, lex, 0, SCH_PLUGINS))) MYSQL_YYABORT; } -#line 41641 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41472 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2383: -#line 14003 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2384: +#line 14035 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->ident= (yyvsp[0].lex_str); Lex->sql_command= SQLCOM_SHOW_PLUGINS; if (unlikely(prepare_schema_table(thd, Lex, 0, SCH_ALL_PLUGINS))) MYSQL_YYABORT; } -#line 41652 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41483 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2384: -#line 14010 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2385: +#line 14042 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_PLUGINS; if (unlikely(prepare_schema_table(thd, Lex, 0, SCH_ALL_PLUGINS))) MYSQL_YYABORT; } -#line 41662 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41493 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2385: -#line 14016 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2386: +#line 14048 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->create_info.db_type= (yyvsp[-1].db_type); } -#line 41668 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41499 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2386: -#line 14018 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2387: +#line 14050 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->create_info.db_type= NULL; } -#line 41674 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41505 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2387: -#line 14020 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2388: +#line 14052 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_FIELDS; @@ -41683,45 +41514,45 @@ if (unlikely(prepare_schema_table(thd, lex, (yyvsp[-2].table), SCH_COLUMNS))) MYSQL_YYABORT; } -#line 41687 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41518 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2388: -#line 14029 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2389: +#line 14061 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_SHOW_BINLOGS; } -#line 41695 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41526 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2389: -#line 14033 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2390: +#line 14065 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_SHOW_SLAVE_HOSTS; } -#line 41703 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41534 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2390: -#line 14037 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2391: +#line 14069 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_BINLOG_EVENTS; } -#line 41712 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41543 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2392: -#line 14043 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2393: +#line 14075 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_RELAYLOG_EVENTS; } -#line 41721 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41552 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2394: -#line 14048 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2395: +#line 14080 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_KEYS; @@ -41730,96 +41561,96 @@ if (unlikely(prepare_schema_table(thd, lex, (yyvsp[-2].table), SCH_STATISTICS))) MYSQL_YYABORT; } -#line 41734 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41565 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2395: -#line 14057 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2396: +#line 14089 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES; if (unlikely(prepare_schema_table(thd, lex, 0, SCH_ENGINES))) MYSQL_YYABORT; } -#line 41745 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41576 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2396: -#line 14064 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2397: +#line 14096 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_AUTHORS; } -#line 41754 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41585 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2397: -#line 14069 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2398: +#line 14101 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_CONTRIBUTORS; } -#line 41763 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41594 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2398: -#line 14074 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2399: +#line 14106 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_PRIVILEGES; } -#line 41772 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41603 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2399: -#line 14079 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2400: +#line 14111 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX_CSTRING var= {STRING_WITH_LEN("warning_count")}; (void) create_select_for_variable(thd, &var); } -#line 41781 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41612 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2400: -#line 14084 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2401: +#line 14116 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX_CSTRING var= {STRING_WITH_LEN("error_count")}; (void) create_select_for_variable(thd, &var); } -#line 41790 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41621 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2401: -#line 14089 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2402: +#line 14121 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_SHOW_WARNS;} -#line 41796 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41627 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2402: -#line 14091 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2403: +#line 14123 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_SHOW_ERRORS;} -#line 41802 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41633 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2403: -#line 14093 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2404: +#line 14125 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_SHOW_PROFILES; } -#line 41808 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41639 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2404: -#line 14095 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2405: +#line 14127 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_PROFILE; if (unlikely(prepare_schema_table(thd, lex, NULL, SCH_PROFILES))) MYSQL_YYABORT; } -#line 41819 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41650 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2405: -#line 14102 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2406: +#line 14134 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_STATUS; @@ -41827,17 +41658,17 @@ if (unlikely(prepare_schema_table(thd, lex, 0, SCH_SESSION_STATUS))) MYSQL_YYABORT; } -#line 41831 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41662 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2406: -#line 14110 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2407: +#line 14142 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST;} -#line 41837 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41668 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2407: -#line 14112 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2408: +#line 14144 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_VARIABLES; @@ -41845,33 +41676,33 @@ if (unlikely(prepare_schema_table(thd, lex, 0, SCH_SESSION_VARIABLES))) MYSQL_YYABORT; } -#line 41849 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41680 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2408: -#line 14120 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2409: +#line 14152 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_CHARSETS; if (unlikely(prepare_schema_table(thd, lex, 0, SCH_CHARSETS))) MYSQL_YYABORT; } -#line 41860 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41691 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2409: -#line 14127 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2410: +#line 14159 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_COLLATIONS; if (unlikely(prepare_schema_table(thd, lex, 0, SCH_COLLATIONS))) MYSQL_YYABORT; } -#line 41871 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41702 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2410: -#line 14134 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2411: +#line 14166 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_GRANTS; if (unlikely(!(Lex->grant_user= @@ -41879,30 +41710,30 @@ MYSQL_YYABORT; Lex->grant_user->user= current_user_and_current_role; } -#line 41883 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41714 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2411: -#line 14142 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2412: +#line 14174 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_GRANTS; lex->grant_user=(yyvsp[-1].lex_user); } -#line 41893 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41724 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2412: -#line 14148 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2413: +#line 14180 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->set_command(SQLCOM_SHOW_CREATE_DB, (yyvsp[-1].object_ddl_options)); Lex->name= (yyvsp[0].ident_sys); } -#line 41902 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41733 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2413: -#line 14153 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2414: +#line 14185 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE; @@ -41910,11 +41741,11 @@ MYSQL_YYABORT; lex->create_info.storage_media= HA_SM_DEFAULT; } -#line 41914 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41745 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2414: -#line 14161 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2415: +#line 14193 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE; @@ -41922,11 +41753,11 @@ MYSQL_YYABORT; lex->table_type= TABLE_TYPE_VIEW; } -#line 41926 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41757 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2415: -#line 14169 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2416: +#line 14201 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE; @@ -41934,100 +41765,100 @@ MYSQL_YYABORT; lex->table_type= TABLE_TYPE_SEQUENCE; } -#line 41938 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41769 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2416: -#line 14177 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2417: +#line 14209 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_SHOW_MASTER_STAT; } -#line 41946 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41777 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2417: -#line 14181 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2418: +#line 14213 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT; Lex->verbose= 1; } -#line 41955 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41786 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2418: -#line 14186 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2419: +#line 14218 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; lex->mi.connection_name= null_clex_str; lex->sql_command = SQLCOM_SHOW_SLAVE_STAT; lex->verbose= 0; } -#line 41966 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41797 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2419: -#line 14193 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2420: +#line 14225 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT; Lex->verbose= 0; } -#line 41975 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41806 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2420: -#line 14198 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2421: +#line 14230 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE_PROC; lex->spname= (yyvsp[0].spname); } -#line 41986 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41817 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2421: -#line 14205 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2422: +#line 14237 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE_FUNC; lex->spname= (yyvsp[0].spname); } -#line 41997 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41828 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2422: -#line 14212 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2423: +#line 14244 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE_PACKAGE; lex->spname= (yyvsp[0].spname); } -#line 42007 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41838 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2423: -#line 14218 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2424: +#line 14250 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE_PACKAGE_BODY; lex->spname= (yyvsp[0].spname); } -#line 42017 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41848 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2424: -#line 14224 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2425: +#line 14256 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_CREATE_TRIGGER; lex->spname= (yyvsp[0].spname); } -#line 42027 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41858 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2425: -#line 14230 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2426: +#line 14262 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_CREATE_USER; if (unlikely(!(Lex->grant_user= @@ -42035,111 +41866,111 @@ MYSQL_YYABORT; Lex->grant_user->user= current_user; } -#line 42039 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41870 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2426: -#line 14238 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2427: +#line 14270 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_CREATE_USER; Lex->grant_user= (yyvsp[0].lex_user); } -#line 42048 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41879 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2427: -#line 14243 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2428: +#line 14275 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_STATUS_PROC; if (unlikely(prepare_schema_table(thd, lex, 0, SCH_PROCEDURES))) MYSQL_YYABORT; } -#line 42059 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41890 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2428: -#line 14250 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2429: +#line 14282 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_STATUS_FUNC; if (unlikely(prepare_schema_table(thd, lex, 0, SCH_PROCEDURES))) MYSQL_YYABORT; } -#line 42070 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41901 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2429: -#line 14257 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2430: +#line 14289 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_STATUS_PACKAGE; if (unlikely(prepare_schema_table(thd, lex, 0, SCH_PROCEDURES))) MYSQL_YYABORT; } -#line 42081 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41912 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2430: -#line 14264 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2431: +#line 14296 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_STATUS_PACKAGE_BODY; if (unlikely(prepare_schema_table(thd, lex, 0, SCH_PROCEDURES))) MYSQL_YYABORT; } -#line 42092 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41923 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2431: -#line 14271 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2432: +#line 14303 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_PROC_CODE; Lex->spname= (yyvsp[0].spname); } -#line 42101 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41932 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2432: -#line 14276 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2433: +#line 14308 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_FUNC_CODE; Lex->spname= (yyvsp[0].spname); } -#line 42110 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41941 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2433: -#line 14281 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2434: +#line 14313 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_PACKAGE_BODY_CODE; Lex->spname= (yyvsp[0].spname); } -#line 42119 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41950 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2434: -#line 14286 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2435: +#line 14318 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->spname= (yyvsp[0].spname); Lex->sql_command = SQLCOM_SHOW_CREATE_EVENT; } -#line 42128 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41959 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2435: -#line 14291 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2436: +#line 14323 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_EXPLAIN; if (unlikely(prepare_schema_table(thd, Lex, 0, SCH_EXPLAIN))) MYSQL_YYABORT; add_value_to_list(thd, (yyvsp[0].item)); } -#line 42139 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41970 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2436: -#line 14298 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2437: +#line 14330 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; bool in_plugin; @@ -42158,83 +41989,83 @@ if (unlikely(make_schema_select(thd, Lex->current_select, table))) MYSQL_YYABORT; } -#line 42162 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41993 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2437: -#line 14320 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2438: +#line 14352 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_ENGINE_STATUS; } -#line 42168 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 41999 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2438: -#line 14322 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2439: +#line 14354 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_ENGINE_MUTEX; } -#line 42174 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42005 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2439: -#line 14324 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2440: +#line 14356 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHOW_ENGINE_LOGS; } -#line 42180 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42011 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2444: -#line 14338 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2445: +#line 14370 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)= null_clex_str; } -#line 42186 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42017 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2445: -#line 14339 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2446: +#line 14371 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)= (yyvsp[0].ident_sys); } -#line 42192 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42023 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2446: -#line 14343 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2447: +#line 14375 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->verbose=0; } -#line 42198 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42029 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2447: -#line 14344 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2448: +#line 14376 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->verbose=1; } -#line 42204 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42035 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2450: -#line 14353 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2451: +#line 14385 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->mi.log_file_name = 0; } -#line 42210 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42041 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2451: -#line 14354 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2452: +#line 14386 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->mi.log_file_name = (yyvsp[0].lex_str).str; } -#line 42216 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42047 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2452: -#line 14358 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2453: +#line 14390 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->mi.pos = 4; /* skip magic number */ } -#line 42222 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42053 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2453: -#line 14359 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2454: +#line 14391 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->mi.pos = (yyvsp[0].ulonglong_number); } -#line 42228 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42059 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2454: -#line 14363 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2455: +#line 14395 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.simple_string)= 0; } -#line 42234 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42065 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2455: -#line 14365 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2456: +#line 14397 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->wild= new (thd->mem_root) String((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, system_charset_info); @@ -42242,22 +42073,22 @@ MYSQL_YYABORT; (yyval.simple_string)= (yyvsp[-1].simple_string); } -#line 42246 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42077 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2456: -#line 14373 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2457: +#line 14405 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->where= normalize_cond(thd, (yyvsp[0].item)); if ((yyvsp[0].item)) (yyvsp[0].item)->top_level_item(); (yyval.simple_string)= (yyvsp[-1].simple_string); } -#line 42257 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42088 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2457: -#line 14384 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2458: +#line 14416 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; mysql_init_select(lex); @@ -42268,66 +42099,66 @@ if (unlikely(prepare_schema_table(thd, lex, (yyvsp[0].table), SCH_COLUMNS))) MYSQL_YYABORT; } -#line 42272 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42103 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2458: -#line 14395 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2459: +#line 14427 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->parsing_place= NO_MATTER; } -#line 42280 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42111 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2459: -#line 14399 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2460: +#line 14431 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->describe|= DESCRIBE_NORMAL; } -#line 42286 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42117 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2460: -#line 14401 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2461: +#line 14433 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->select_lex.options|= SELECT_DESCRIBE; } -#line 42295 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42126 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2468: -#line 14422 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2469: +#line 14454 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->analyze_stmt= true; } -#line 42303 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42134 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2469: -#line 14428 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2470: +#line 14460 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->describe|= DESCRIBE_EXTENDED; } -#line 42309 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42140 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2470: -#line 14429 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2471: +#line 14461 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->describe|= DESCRIBE_PARTITIONS; } -#line 42315 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42146 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2471: -#line 14430 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2472: +#line 14462 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 42321 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42152 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2472: -#line 14434 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2473: +#line 14466 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 42327 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42158 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2473: -#line 14436 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2474: +#line 14468 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (lex_string_eq(&(yyvsp[0].lex_str), STRING_WITH_LEN("JSON"))) Lex->explain_json= true; @@ -42337,23 +42168,23 @@ my_yyabort_error((ER_UNKNOWN_EXPLAIN_FORMAT, MYF(0), "EXPLAIN", (yyvsp[0].lex_str).str)); } -#line 42341 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42172 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2474: -#line 14448 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2475: +#line 14480 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 42347 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42178 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2475: -#line 14449 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2476: +#line 14481 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->wild= (yyvsp[0].string); } -#line 42353 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42184 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2476: -#line 14451 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2477: +#line 14483 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->wild= new (thd->mem_root) String((const char*) (yyvsp[0].ident_sys).str, (yyvsp[0].ident_sys).length, @@ -42361,28 +42192,28 @@ if (unlikely(Lex->wild == NULL)) MYSQL_YYABORT; } -#line 42365 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42196 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2477: -#line 14465 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2478: +#line 14497 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_FLUSH; lex->type= 0; lex->no_write_to_binlog= (yyvsp[0].num); } -#line 42376 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42207 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2478: -#line 14472 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2479: +#line 14504 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 42382 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42213 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2479: -#line 14477 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2480: +#line 14509 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_TABLES; /* @@ -42392,23 +42223,23 @@ YYPS->m_lock_type= TL_READ_NO_INSERT; YYPS->m_mdl_type= MDL_SHARED_HIGH_PRIO; } -#line 42396 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42227 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2480: -#line 14487 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2481: +#line 14519 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 42402 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42233 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2482: -#line 14492 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2483: +#line 14524 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 42408 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42239 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2483: -#line 14494 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2484: +#line 14526 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { TABLE_LIST *tables= Lex->query_tables; for (; tables; tables= tables->next_global) @@ -42420,17 +42251,17 @@ tables->open_type= OT_BASE_ONLY; } } -#line 42424 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42255 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2484: -#line 14509 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2485: +#line 14541 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_READ_LOCK | (yyvsp[0].num); } -#line 42430 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42261 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2485: -#line 14511 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2486: +#line 14543 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->query_tables == NULL)) { @@ -42440,53 +42271,53 @@ } Lex->type|= REFRESH_FOR_EXPORT; } -#line 42444 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42275 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2486: -#line 14519 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2487: +#line 14551 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 42450 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42281 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2488: -#line 14525 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2489: +#line 14557 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 42456 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42287 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2489: -#line 14530 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2490: +#line 14562 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_ERROR_LOG; } -#line 42462 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42293 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2490: -#line 14532 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2491: +#line 14564 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_ENGINE_LOG; } -#line 42468 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42299 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2491: -#line 14534 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2492: +#line 14566 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_GENERAL_LOG; } -#line 42474 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42305 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2492: -#line 14536 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2493: +#line 14568 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_SLOW_LOG; } -#line 42480 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42311 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2493: -#line 14538 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2494: +#line 14570 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_BINARY_LOG; } -#line 42486 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42317 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2494: -#line 14540 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2495: +#line 14572 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->type & REFRESH_RELAY_LOG)) @@ -42494,44 +42325,44 @@ lex->type|= REFRESH_RELAY_LOG; lex->relay_log_connection_name= lex->mi.connection_name; } -#line 42498 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42329 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2495: -#line 14548 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2496: +#line 14580 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_QUERY_CACHE_FREE; } -#line 42504 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42335 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2496: -#line 14550 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2497: +#line 14582 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_HOSTS; } -#line 42510 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42341 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2497: -#line 14552 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2498: +#line 14584 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_GRANT; } -#line 42516 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42347 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2498: -#line 14554 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2499: +#line 14586 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_LOG; Lex->relay_log_connection_name= empty_clex_str; } -#line 42525 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42356 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2499: -#line 14559 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2500: +#line 14591 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_STATUS; } -#line 42531 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42362 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2500: -#line 14561 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2501: +#line 14593 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->type & REFRESH_SLAVE)) @@ -42539,29 +42370,29 @@ lex->type|= REFRESH_SLAVE; lex->reset_slave_info.all= false; } -#line 42543 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42374 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2501: -#line 14569 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2502: +#line 14601 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_MASTER; } -#line 42549 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42380 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2502: -#line 14571 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2503: +#line 14603 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_DES_KEY_FILE; } -#line 42555 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42386 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2503: -#line 14573 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2504: +#line 14605 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_USER_RESOURCES; } -#line 42561 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42392 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2504: -#line 14575 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2505: +#line 14607 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_GENERIC; ST_SCHEMA_TABLE *table= find_schema_table(thd, &(yyvsp[-1].ident_sys)); @@ -42575,35 +42406,35 @@ thd->mem_root))) MYSQL_YYABORT; } -#line 42579 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 2505: -#line 14591 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 42585 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42410 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2506: -#line 14592 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 14623 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 42591 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42416 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2507: -#line 14596 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 14624 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 42597 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42422 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2508: -#line 14598 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 14628 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 42603 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42428 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2512: -#line 14608 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2509: +#line 14630 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {} +#line 42434 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 2513: +#line 14640 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { uint32 value= (uint32) (yyvsp[0].ulonglong_number); if ((yyvsp[0].ulonglong_number) > UINT_MAX32) @@ -42616,126 +42447,126 @@ } insert_dynamic(&Lex->delete_gtid_domain, (uchar*) &value); } -#line 42620 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42451 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2513: -#line 14623 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2514: +#line 14655 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {(yyval.num)= 0;} -#line 42626 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42457 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2514: -#line 14624 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2515: +#line 14656 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {(yyval.num)= REFRESH_CHECKPOINT; } -#line 42632 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42463 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2515: -#line 14628 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2516: +#line 14661 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_RESET; lex->type=0; } -#line 42641 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42472 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2516: -#line 14633 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2517: +#line 14666 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 42647 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42478 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2519: -#line 14642 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2520: +#line 14675 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_SLAVE; } -#line 42653 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42484 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2520: -#line 14644 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2521: +#line 14677 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 42659 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42490 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2521: -#line 14646 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2522: +#line 14679 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_MASTER; Lex->next_binlog_file_number= 0; } -#line 42668 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42499 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2523: -#line 14651 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2524: +#line 14684 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->type|= REFRESH_QUERY_CACHE;} -#line 42674 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42505 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2524: -#line 14655 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2525: +#line 14688 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->reset_slave_info.all= false; } -#line 42680 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42511 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2525: -#line 14656 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2526: +#line 14689 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->reset_slave_info.all= true; } -#line 42686 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42517 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2526: -#line 14660 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2527: +#line 14693 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 42692 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42523 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2527: -#line 14662 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2528: +#line 14695 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->next_binlog_file_number = (yyvsp[0].ulong_num); } -#line 42700 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42531 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2528: -#line 14669 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2529: +#line 14702 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->type=0; lex->sql_command = SQLCOM_PURGE; } -#line 42710 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42541 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2529: -#line 14675 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2530: +#line 14708 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 42716 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42547 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2531: -#line 14684 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2532: +#line 14717 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->to_log = (yyvsp[0].lex_str).str; } -#line 42724 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42555 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2532: -#line 14688 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2533: +#line 14721 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->value_list.empty(); lex->value_list.push_front((yyvsp[0].item), thd->mem_root); lex->sql_command= SQLCOM_PURGE_BEFORE; } -#line 42735 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42566 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2533: -#line 14700 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2534: +#line 14733 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->value_list.empty(); @@ -42743,97 +42574,97 @@ lex->sql_command= SQLCOM_KILL; lex->kill_type= KILL_TYPE_ID; } -#line 42747 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42578 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2534: -#line 14708 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2535: +#line 14741 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->kill_signal= (killed_state) ((yyvsp[-2].num) | (yyvsp[-1].num)); } -#line 42755 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 2535: -#line 14714 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.num)= (int) KILL_HARD_BIT; } -#line 42761 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42586 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2536: -#line 14715 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 14747 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= (int) KILL_HARD_BIT; } -#line 42767 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42592 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2537: -#line 14716 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.num)= 0; } -#line 42773 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 14748 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.num)= (int) KILL_HARD_BIT; } +#line 42598 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2538: -#line 14719 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.num)= (int) KILL_CONNECTION; } -#line 42779 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 14749 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.num)= 0; } +#line 42604 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2539: -#line 14720 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 14753 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= (int) KILL_CONNECTION; } -#line 42785 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42610 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2540: -#line 14721 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.num)= (int) KILL_QUERY; } -#line 42791 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 14754 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.num)= (int) KILL_CONNECTION; } +#line 42616 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2541: -#line 14723 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 14755 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.num)= (int) KILL_QUERY; } +#line 42622 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 2542: +#line 14757 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= (int) KILL_QUERY; Lex->kill_type= KILL_TYPE_QUERY; } -#line 42800 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42631 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2542: -#line 14731 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2543: +#line 14765 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->value_list.push_front((yyval.item), thd->mem_root); } -#line 42808 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42639 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2543: -#line 14735 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2544: +#line 14769 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root); Lex->kill_type= KILL_TYPE_USER; } -#line 42817 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42648 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2544: -#line 14743 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2545: +#line 14777 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_SHUTDOWN; } -#line 42823 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42654 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2545: -#line 14750 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2546: +#line 14784 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command=SQLCOM_CHANGE_DB; lex->select_lex.db= (yyvsp[0].ident_sys); } -#line 42833 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42664 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2546: -#line 14761 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2547: +#line 14795 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; @@ -42844,11 +42675,11 @@ MYSQL_YYABORT; } } -#line 42848 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42679 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2547: -#line 14772 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2548: +#line 14806 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_LOAD; @@ -42859,11 +42690,11 @@ sql_exchange((yyvsp[0].lex_str).str, 0, (yyvsp[-5].filetype))))) MYSQL_YYABORT; } -#line 42863 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42694 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2548: -#line 14783 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2549: +#line 14817 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(!Select->add_table_to_list(thd, (yyvsp[-1].table), NULL, @@ -42876,53 +42707,55 @@ lex->value_list.empty(); lex->many_values.empty(); } -#line 42880 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42711 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2549: -#line 14796 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2550: +#line 14830 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->exchange->cs= (yyvsp[0].charset); } -#line 42886 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42717 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2550: -#line 14800 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 42892 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + case 2551: +#line 14834 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { + Lex->mark_first_table_as_inserting(); + } +#line 42725 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2551: -#line 14804 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2552: +#line 14840 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.filetype)= FILETYPE_CSV; } -#line 42898 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42731 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2552: -#line 14805 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2553: +#line 14841 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.filetype)= FILETYPE_XML; } -#line 42904 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42737 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2553: -#line 14809 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2554: +#line 14845 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)=0;} -#line 42910 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42743 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2554: -#line 14810 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2555: +#line 14846 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)=1;} -#line 42916 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42749 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2555: -#line 14814 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2556: +#line 14850 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lock_type)= TL_WRITE_DEFAULT; } -#line 42922 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42755 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2556: -#line 14816 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2557: +#line 14852 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* Ignore this option in SP to avoid problem with query cache and @@ -42930,182 +42763,182 @@ */ (yyval.lock_type)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT); } -#line 42934 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42767 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2557: -#line 14823 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2558: +#line 14859 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; } -#line 42940 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42773 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2558: -#line 14827 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2559: +#line 14863 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->duplicates=DUP_ERROR; } -#line 42946 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42779 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2559: -#line 14828 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2560: +#line 14864 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->duplicates=DUP_REPLACE; } -#line 42952 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42785 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2560: -#line 14829 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2561: +#line 14865 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->ignore= 1; } -#line 42958 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42791 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2565: -#line 14844 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2566: +#line 14880 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->field_term= (yyvsp[0].string); } -#line 42967 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42800 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2566: -#line 14849 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2567: +#line 14885 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; DBUG_ASSERT(lex->exchange != 0); lex->exchange->enclosed= (yyvsp[0].string); lex->exchange->opt_enclosed= 1; } -#line 42978 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42811 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2567: -#line 14856 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2568: +#line 14892 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->enclosed= (yyvsp[0].string); } -#line 42987 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42820 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2568: -#line 14861 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2569: +#line 14897 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->escaped= (yyvsp[0].string); } -#line 42996 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42829 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2573: -#line 14879 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2574: +#line 14915 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->line_term= (yyvsp[0].string); } -#line 43005 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42838 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2574: -#line 14884 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2575: +#line 14920 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->line_start= (yyvsp[0].string); } -#line 43014 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42847 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2575: -#line 14891 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2576: +#line 14927 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 43020 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42853 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2576: -#line 14893 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2577: +#line 14929 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->exchange->line_term = (yyvsp[0].string); } -#line 43026 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42859 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2578: -#line 14898 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2579: +#line 14935 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->skip_lines= atol((yyvsp[-1].lex_str).str); } -#line 43035 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 2579: -#line 14905 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { } -#line 43041 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42868 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2580: -#line 14906 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 14942 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 43047 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42874 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2581: -#line 14910 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 43053 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 14943 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { } +#line 42880 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2582: -#line 14911 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 14947 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 43059 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42886 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2583: -#line 14912 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 14948 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 43065 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42892 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2584: -#line 14917 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } -#line 43071 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 14949 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {} +#line 42898 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2585: -#line 14919 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 14954 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } -#line 43077 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42904 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2586: -#line 14923 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {(yyval.item)= (yyvsp[0].item);} -#line 43083 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 14956 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->field_list.push_back((yyvsp[0].item), thd->mem_root); } +#line 42910 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 2587: -#line 14925 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 14960 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {(yyval.item)= (yyvsp[0].item);} +#line 42916 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 2588: +#line 14962 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_user_var_as_out_param(thd, &(yyvsp[0].lex_str)); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 43093 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42926 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2588: -#line 14933 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2589: +#line 14970 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 43099 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42932 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2589: -#line 14934 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2590: +#line 14971 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 43105 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42938 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2592: -#line 14944 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2593: +#line 14981 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->update_list.push_back((yyvsp[-4].item), thd->mem_root)) || @@ -43113,47 +42946,47 @@ MYSQL_YYABORT; (yyvsp[-1].item)->set_name_no_truncate(thd, (yyvsp[-2].simple_string), (uint) ((yyvsp[0].simple_string) - (yyvsp[-2].simple_string)), thd->charset()); } -#line 43117 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42950 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2593: -#line 14957 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2594: +#line 14994 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item_basic_constant)= thd->make_string_literal((yyvsp[0].lex_string_with_metadata))))) MYSQL_YYABORT; } -#line 43126 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42959 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2594: -#line 14962 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2595: +#line 14999 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item_basic_constant)= thd->make_string_literal_nchar((yyvsp[0].lex_string_with_metadata))))) MYSQL_YYABORT; } -#line 43135 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42968 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2595: -#line 14967 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2596: +#line 15004 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item_basic_constant)= thd->make_string_literal_charset((yyvsp[0].lex_string_with_metadata), (yyvsp[-1].charset))))) MYSQL_YYABORT; } -#line 43144 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42977 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2596: -#line 14972 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2597: +#line 15009 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item_basic_constant)= (yyvsp[-1].item_basic_constant)->make_string_literal_concat(thd, &(yyvsp[0].lex_str))))) MYSQL_YYABORT; } -#line 43153 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42986 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2597: -#line 14980 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2598: +#line 15017 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.string)= new (thd->mem_root) String((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, @@ -43161,17 +42994,17 @@ if (unlikely((yyval.string) == NULL)) MYSQL_YYABORT; } -#line 43165 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 42998 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2598: -#line 14987 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2599: +#line 15024 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.string)= (yyvsp[0].string); } -#line 43171 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43004 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2599: -#line 14993 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2600: +#line 15030 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Item *tmp= new (thd->mem_root) Item_hex_hybrid(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); @@ -43184,11 +43017,11 @@ tmp->quick_fix_field(); (yyval.string)= tmp->val_str((String*) 0); } -#line 43188 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43021 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2600: -#line 15006 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2601: +#line 15043 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Item *tmp= new (thd->mem_root) Item_hex_string(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); @@ -43197,11 +43030,11 @@ tmp->quick_fix_field(); (yyval.string)= tmp->val_str((String*) 0); } -#line 43201 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43034 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2601: -#line 15015 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2602: +#line 15052 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Item *tmp= new (thd->mem_root) Item_bin_string(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); @@ -43214,76 +43047,76 @@ tmp->quick_fix_field(); (yyval.string)= tmp->val_str((String*) 0); } -#line 43218 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43051 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2602: -#line 15031 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2603: +#line 15068 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item_param)= Lex->add_placeholder(thd, ¶m_clex_str, YYLIP->get_tok_start(), YYLIP->get_tok_start() + 1)))) MYSQL_YYABORT; } -#line 43229 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43062 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2603: -#line 15038 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2604: +#line 15075 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item_param)= Lex->add_placeholder(thd, &null_clex_str, (yyvsp[-1].kwd).pos(), (yyvsp[0].ident_cli).end())))) MYSQL_YYABORT; } -#line 43239 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43072 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2604: -#line 15044 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2605: +#line 15081 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item_param)= Lex->add_placeholder(thd, &null_clex_str, (yyvsp[-1].kwd).pos(), YYLIP->get_ptr())))) MYSQL_YYABORT; } -#line 43250 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43083 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2605: -#line 15053 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2606: +#line 15090 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item) = (yyvsp[0].item_num); } -#line 43256 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43089 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2606: -#line 15055 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2607: +#line 15092 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[0].item_num)->max_length++; (yyval.item)= (yyvsp[0].item_num)->neg(thd); } -#line 43265 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43098 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2607: -#line 15062 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2608: +#line 15099 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item) = (yyvsp[0].item_basic_constant); } -#line 43271 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43104 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2608: -#line 15063 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2609: +#line 15100 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item) = (yyvsp[0].item_num); } -#line 43277 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43110 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2609: -#line 15064 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2610: +#line 15101 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= (yyvsp[0].item); } -#line 43283 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43116 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2610: -#line 15066 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2611: +#line 15103 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* For the digest computation, in this context only, @@ -43297,61 +43130,61 @@ MYSQL_YYABORT; YYLIP->next_state= MY_LEX_OPERATOR_OR_IDENT; } -#line 43301 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43134 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2611: -#line 15080 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2612: +#line 15117 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_bool(thd, (char*) "FALSE",0); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 43311 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43144 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2612: -#line 15086 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2613: +#line 15123 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_bool(thd, (char*) "TRUE",1); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 43321 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43154 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2613: -#line 15092 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2614: +#line 15129 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_hex_hybrid(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 43331 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43164 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2614: -#line 15098 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2615: +#line 15135 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_hex_string(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 43341 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43174 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2615: -#line 15104 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2616: +#line 15141 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)= new (thd->mem_root) Item_bin_string(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 43351 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43184 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2616: -#line 15110 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2617: +#line 15147 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Item_string_with_introducer *item_str; /* @@ -43367,11 +43200,11 @@ (yyval.item)= item_str; } -#line 43371 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43204 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2617: -#line 15129 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2618: +#line 15166 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { int error; (yyval.item_num)= new (thd->mem_root) @@ -43381,11 +43214,11 @@ if (unlikely((yyval.item_num) == NULL)) MYSQL_YYABORT; } -#line 43385 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43218 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2618: -#line 15139 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2619: +#line 15176 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { int error; (yyval.item_num)= new (thd->mem_root) @@ -43395,42 +43228,42 @@ if (unlikely((yyval.item_num) == NULL)) MYSQL_YYABORT; } -#line 43399 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43232 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2619: -#line 15149 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2620: +#line 15186 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item_num)= new (thd->mem_root) Item_uint(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); if (unlikely((yyval.item_num) == NULL)) MYSQL_YYABORT; } -#line 43409 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43242 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2620: -#line 15155 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2621: +#line 15192 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item_num)= new (thd->mem_root) Item_decimal(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, thd->charset()); if (unlikely((yyval.item_num) == NULL) || unlikely(thd->is_error())) MYSQL_YYABORT; } -#line 43420 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43253 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2621: -#line 15162 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2622: +#line 15199 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item_num)= new (thd->mem_root) Item_float(thd, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); if (unlikely((yyval.item_num) == NULL) || unlikely(thd->is_error())) MYSQL_YYABORT; } -#line 43430 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43263 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2622: -#line 15172 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2623: +#line 15209 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= create_temporal_literal(thd, (yyvsp[0].lex_string_with_metadata).str, (yyvsp[0].lex_string_with_metadata).length, YYCSCL, @@ -43438,11 +43271,11 @@ true)))) MYSQL_YYABORT; } -#line 43442 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43275 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2623: -#line 15180 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2624: +#line 15217 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= create_temporal_literal(thd, (yyvsp[0].lex_string_with_metadata).str, (yyvsp[0].lex_string_with_metadata).length, YYCSCL, @@ -43450,11 +43283,11 @@ true)))) MYSQL_YYABORT; } -#line 43454 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43287 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2624: -#line 15188 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2625: +#line 15225 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= create_temporal_literal(thd, (yyvsp[0].lex_string_with_metadata).str, (yyvsp[0].lex_string_with_metadata).length, YYCSCL, @@ -43462,25 +43295,25 @@ true)))) MYSQL_YYABORT; } -#line 43466 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43299 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2625: -#line 15199 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2626: +#line 15236 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.with_clause)= 0; } -#line 43472 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43305 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2626: -#line 15201 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2627: +#line 15238 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.with_clause)= (yyvsp[0].with_clause); } -#line 43480 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43313 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2627: -#line 15209 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2628: +#line 15246 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { With_clause *with_clause= new With_clause((yyvsp[0].num), Lex->curr_with_clause); @@ -43490,43 +43323,43 @@ Lex->curr_with_clause= with_clause; with_clause->add_to_list(Lex->with_clauses_list_last_next); } -#line 43494 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43327 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2628: -#line 15219 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2629: +#line 15256 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.with_clause)= Lex->curr_with_clause; Lex->curr_with_clause= Lex->curr_with_clause->pop(); } -#line 43503 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43336 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2629: -#line 15227 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2630: +#line 15264 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 43509 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43342 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2630: -#line 15228 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2631: +#line 15265 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 43515 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43348 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2633: -#line 15241 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2634: +#line 15278 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[0].lex_str_list)= new List (Lex->with_column_list); if (unlikely((yyvsp[0].lex_str_list) == NULL)) MYSQL_YYABORT; Lex->with_column_list.empty(); } -#line 43526 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43359 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2634: -#line 15248 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2635: +#line 15285 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; const char *query_start= lex->sphead ? lex->sphead->m_tmp_query @@ -43540,203 +43373,203 @@ spec_start - query_start)) MYSQL_YYABORT; } -#line 43544 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43377 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2635: -#line 15266 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2636: +#line 15303 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str_list)= NULL; } -#line 43550 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43383 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2636: -#line 15268 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2637: +#line 15305 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str_list)= NULL; } -#line 43556 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43389 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2637: -#line 15274 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2638: +#line 15311 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->with_column_list.push_back((LEX_CSTRING*) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_CSTRING))); } -#line 43565 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43398 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2638: -#line 15279 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2639: +#line 15316 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->with_column_list.push_back((LEX_CSTRING*) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_CSTRING))); } -#line 43574 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43407 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2639: -#line 15288 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2640: +#line 15325 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str_ptr)= (LEX_CSTRING *) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_CSTRING)); if (unlikely((yyval.lex_str_ptr) == NULL)) MYSQL_YYABORT; } -#line 43584 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43417 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2640: -#line 15302 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2641: +#line 15339 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)=(yyvsp[0].item); } -#line 43590 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43423 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2641: -#line 15303 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2642: +#line 15340 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)=(yyvsp[0].item); } -#line 43596 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43429 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2642: -#line 15308 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2643: +#line 15345 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_qualified_asterisk(thd, &(yyvsp[-2].ident_sys))))) MYSQL_YYABORT; } -#line 43605 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43438 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2643: -#line 15313 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2644: +#line 15350 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_qualified_asterisk(thd, &(yyvsp[-4].ident_sys), &(yyvsp[-2].ident_sys))))) MYSQL_YYABORT; } -#line 43614 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43447 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2644: -#line 15321 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2645: +#line 15358 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_qualified_asterisk(thd, &(yyvsp[-2].ident_cli))))) MYSQL_YYABORT; } -#line 43623 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43456 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2645: -#line 15326 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2646: +#line 15363 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_qualified_asterisk(thd, &(yyvsp[-4].ident_cli), &(yyvsp[-2].ident_cli))))) MYSQL_YYABORT; } -#line 43632 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43465 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2646: -#line 15333 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2647: +#line 15370 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)=(yyvsp[0].item); } -#line 43638 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43471 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2647: -#line 15339 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2648: +#line 15376 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_ident(thd, &(yyvsp[0].ident_cli))))) MYSQL_YYABORT; } -#line 43647 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43480 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2648: -#line 15344 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2649: +#line 15381 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_ident(thd, &(yyvsp[-2].ident_cli), &(yyvsp[0].ident_cli))))) MYSQL_YYABORT; } -#line 43656 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43489 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2649: -#line 15349 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2650: +#line 15386 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex_ident_cli empty((yyvsp[-2].ident_cli).pos(), 0); if (unlikely(!((yyval.item)= Lex->create_item_ident(thd, &empty, &(yyvsp[-2].ident_cli), &(yyvsp[0].ident_cli))))) MYSQL_YYABORT; } -#line 43666 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43499 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2650: -#line 15355 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2651: +#line 15392 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_ident(thd, &(yyvsp[-4].ident_cli), &(yyvsp[-2].ident_cli), &(yyvsp[0].ident_cli))))) MYSQL_YYABORT; } -#line 43675 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43508 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2651: -#line 15360 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2652: +#line 15397 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_colon_ident_ident(thd, &(yyvsp[-2].ident_cli), &(yyvsp[0].ident_cli))))) MYSQL_YYABORT; } -#line 43684 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43517 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2652: -#line 15368 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2653: +#line 15405 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_ident_nosp(thd, &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 43693 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43526 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2653: -#line 15373 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2654: +#line 15410 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_ident_nospvar(thd, &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 43702 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43535 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2654: -#line 15378 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2655: +#line 15415 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->make_item_colon_ident_ident(thd, &(yyvsp[-2].ident_cli), &(yyvsp[0].ident_cli))))) MYSQL_YYABORT; } -#line 43711 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43544 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2655: -#line 15383 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2656: +#line 15420 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex_ident_sys none; if (unlikely(!((yyval.item)= Lex->create_item_ident(thd, &none, &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 43721 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43554 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2656: -#line 15389 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2657: +#line 15426 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.item)= Lex->create_item_ident(thd, &(yyvsp[-4].ident_sys), &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys))))) MYSQL_YYABORT; } -#line 43730 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43563 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2657: -#line 15396 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2658: +#line 15433 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)=(yyvsp[0].ident_sys);} -#line 43736 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43569 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2658: -#line 15398 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2659: +#line 15435 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { TABLE_LIST *table= Select->table_list.first; if (unlikely(my_strcasecmp(table_alias_charset, (yyvsp[-4].ident_sys).str, @@ -43747,11 +43580,11 @@ my_yyabort_error((ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[-2].ident_sys).str)); (yyval.lex_str)=(yyvsp[0].ident_sys); } -#line 43751 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43584 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2659: -#line 15409 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2660: +#line 15446 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { TABLE_LIST *table= Select->table_list.first; if (unlikely(my_strcasecmp(table_alias_charset, (yyvsp[-2].ident_sys).str, @@ -43759,224 +43592,224 @@ my_yyabort_error((ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[-2].ident_sys).str)); (yyval.lex_str)=(yyvsp[0].ident_sys); } -#line 43763 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43596 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2660: -#line 15416 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2661: +#line 15453 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)=(yyvsp[0].ident_sys);} -#line 43769 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43602 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2661: -#line 15421 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2662: +#line 15458 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.table)= new (thd->mem_root) Table_ident(&(yyvsp[0].ident_sys)); if (unlikely((yyval.table) == NULL)) MYSQL_YYABORT; } -#line 43779 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43612 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2662: -#line 15427 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2663: +#line 15464 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.table)= new (thd->mem_root) Table_ident(thd, &(yyvsp[-2].ident_sys), &(yyvsp[0].ident_sys), 0); if (unlikely((yyval.table) == NULL)) MYSQL_YYABORT; } -#line 43789 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43622 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2663: -#line 15433 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2664: +#line 15470 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* For Delphi */ (yyval.table)= new (thd->mem_root) Table_ident(&(yyvsp[0].ident_sys)); if (unlikely((yyval.table) == NULL)) MYSQL_YYABORT; } -#line 43800 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43633 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2664: -#line 15443 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2665: +#line 15480 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.table)= new (thd->mem_root) Table_ident(&(yyvsp[-1].ident_sys)); if (unlikely((yyval.table) == NULL)) MYSQL_YYABORT; } -#line 43810 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43643 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2665: -#line 15449 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2666: +#line 15486 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.table)= new (thd->mem_root) Table_ident(thd, &(yyvsp[-3].ident_sys), &(yyvsp[-1].ident_sys), 0); if (unlikely((yyval.table) == NULL)) MYSQL_YYABORT; } -#line 43820 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43653 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2666: -#line 15458 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2667: +#line 15495 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX_CSTRING db={(char*) any_db,3}; (yyval.table)= new (thd->mem_root) Table_ident(thd, &db, &(yyvsp[0].ident_sys), 0); if (unlikely((yyval.table) == NULL)) MYSQL_YYABORT; } -#line 43831 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43664 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2671: -#line 15474 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2672: +#line 15511 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ident_cli)= (yyvsp[0].kwd); } -#line 43837 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43670 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2672: -#line 15479 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2673: +#line 15516 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(thd->to_ident_sys_alloc(&(yyval.ident_sys), &(yyvsp[0].ident_cli)))) MYSQL_YYABORT; } -#line 43846 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43679 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2673: -#line 15487 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2674: +#line 15524 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (thd->make_text_string_sys(&(yyval.lex_str), &(yyvsp[0].lex_string_with_metadata))) MYSQL_YYABORT; } -#line 43855 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43688 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2674: -#line 15495 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2675: +#line 15532 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (thd->make_text_string_connection(&(yyval.lex_str), &(yyvsp[0].lex_string_with_metadata))) MYSQL_YYABORT; } -#line 43864 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43697 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2675: -#line 15503 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2676: +#line 15540 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (thd->make_text_string_filesystem(&(yyval.lex_str), &(yyvsp[0].lex_string_with_metadata))) MYSQL_YYABORT; } -#line 43873 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43706 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2677: -#line 15512 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2678: +#line 15549 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) MYSQL_YYABORT; } -#line 43882 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43715 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2679: -#line 15521 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2680: +#line 15558 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) MYSQL_YYABORT; } -#line 43891 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43724 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2681: -#line 15530 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2682: +#line 15567 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) MYSQL_YYABORT; } -#line 43900 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43733 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2682: -#line 15535 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2683: +#line 15572 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyval.ident_sys).copy_sys(thd, &(yyvsp[0].lex_str)))) MYSQL_YYABORT; } -#line 43909 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43742 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2684: -#line 15545 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2685: +#line 15582 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) MYSQL_YYABORT; } -#line 43918 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43751 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2686: -#line 15554 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2687: +#line 15591 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) MYSQL_YYABORT; } -#line 43927 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43760 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2688: -#line 15564 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2689: +#line 15601 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyval.ident_sys).copy_keyword(thd, &(yyvsp[0].kwd)))) MYSQL_YYABORT; } -#line 43936 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43769 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2689: -#line 15571 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2690: +#line 15608 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)= (yyvsp[0].lex_str); } -#line 43942 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43775 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2690: -#line 15572 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2691: +#line 15609 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)= (yyvsp[0].lex_str); } -#line 43948 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43781 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2691: -#line 15577 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2692: +#line 15614 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_push_goto_label(thd, &(yyvsp[-1].ident_sys)))) MYSQL_YYABORT; (yyval.lex_str)= (yyvsp[-1].ident_sys); } -#line 43958 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43791 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2692: -#line 15585 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2693: +#line 15622 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)=(yyvsp[0].ident_sys);} -#line 43964 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43797 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2693: -#line 15586 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2694: +#line 15623 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)=(yyvsp[0].lex_str);} -#line 43970 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43803 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2694: -#line 15587 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2695: +#line 15624 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)=(yyvsp[0].lex_str);} -#line 43976 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43809 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2695: -#line 15592 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2696: +#line 15629 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(LEX_USER))))) MYSQL_YYABORT; @@ -43989,11 +43822,11 @@ system_charset_info, 0))) MYSQL_YYABORT; } -#line 43993 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43826 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2696: -#line 15605 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2697: +#line 15642 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(LEX_USER))))) MYSQL_YYABORT; @@ -44023,11 +43856,11 @@ (yyval.lex_user)->host= host_not_specified; } } -#line 44027 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43860 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2697: -#line 15635 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2698: +#line 15672 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.lex_user)=(LEX_USER*)thd->calloc(sizeof(LEX_USER))))) MYSQL_YYABORT; @@ -44035,46 +43868,46 @@ (yyval.lex_user)->plugin= empty_clex_str; (yyval.lex_user)->auth= empty_clex_str; } -#line 44039 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43872 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 2700: -#line 15647 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 2701: +#line 15684 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if ((yyvsp[0].lex_user)->user.str != current_user.str && (yyvsp[0].lex_user)->host.str == 0) (yyvsp[0].lex_user)->host= host_not_specified; (yyval.lex_user)= (yyvsp[0].lex_user); } -#line 44049 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43882 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3184: -#line 16266 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3185: +#line 16303 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->set_stmt_init(); lex->var_list.empty(); sp_create_assignment_lex(thd, yychar == YYEMPTY); } -#line 44060 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43893 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3185: -#line 16273 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3186: +#line 16310 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 44066 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43899 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3186: -#line 16275 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3187: +#line 16312 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->set_stmt_init(); } -#line 44074 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43907 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3187: -#line 16279 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3188: +#line 16316 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->table_or_sp_used())) @@ -44082,49 +43915,49 @@ lex->stmt_var_list= lex->var_list; lex->var_list.empty(); } -#line 44086 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43919 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3188: -#line 16287 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3189: +#line 16324 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 44092 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43925 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3189: -#line 16292 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3190: +#line 16329 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->set_stmt_init(); lex->var_list.empty(); sp_create_assignment_lex(thd, yychar == YYEMPTY); } -#line 44103 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43936 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3190: -#line 16299 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3191: +#line 16336 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_variable(&(yyvsp[-3].ident_sys), (yyvsp[0].item))) || unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } -#line 44113 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43946 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3191: -#line 16305 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3192: +#line 16342 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->set_stmt_init(); lex->var_list.empty(); sp_create_assignment_lex(thd, yychar == YYEMPTY); } -#line 44124 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43957 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3192: -#line 16312 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3193: +#line 16349 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; DBUG_ASSERT(lex->var_list.is_empty()); @@ -44132,11 +43965,11 @@ unlikely(lex->sphead->restore_lex(thd))) MYSQL_YYABORT; } -#line 44136 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43969 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3193: -#line 16320 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3194: +#line 16357 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(!lex->is_trigger_new_or_old_reference(&(yyvsp[-3].ident_sys)))) @@ -44148,272 +43981,272 @@ lex->var_list.empty(); sp_create_assignment_lex(thd, yychar == YYEMPTY); } -#line 44152 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43985 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3194: -#line 16332 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3195: +#line 16369 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX_CSTRING tmp= { (yyvsp[-5].ident_sys).str, (yyvsp[-5].ident_sys).length }; if (unlikely(Lex->set_trigger_field(&tmp, &(yyvsp[-3].ident_sys), (yyvsp[0].item))) || unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } -#line 44163 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 43996 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3197: -#line 16353 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3198: +#line 16390 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } -#line 44172 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44005 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3199: -#line 16359 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3200: +#line 16396 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->option_type= OPT_DEFAULT; } -#line 44180 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44013 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3200: -#line 16363 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3201: +#line 16400 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } -#line 44189 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44022 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3201: -#line 16368 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3202: +#line 16405 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->option_type= (yyvsp[0].var_type); } -#line 44197 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44030 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3203: -#line 16378 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3204: +#line 16415 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } -#line 44206 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44039 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3205: -#line 16384 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3206: +#line 16421 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } -#line 44215 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44048 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3208: -#line 16398 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3209: +#line 16435 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { sp_create_assignment_lex(thd, yychar == YYEMPTY); } -#line 44223 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44056 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3209: -#line 16402 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3210: +#line 16439 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } -#line 44232 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44065 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3210: -#line 16407 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3211: +#line 16444 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { sp_create_assignment_lex(thd, yychar == YYEMPTY); } -#line 44240 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44073 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3211: -#line 16411 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3212: +#line 16448 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(sp_create_assignment_instr(thd, yychar == YYEMPTY))) MYSQL_YYABORT; } -#line 44249 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44082 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3212: -#line 16420 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3213: +#line 16457 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->option_type= (yyvsp[0].var_type); } -#line 44257 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 3215: -#line 16428 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.var_type)=OPT_GLOBAL; } -#line 44263 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44090 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3216: -#line 16429 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.var_type)=OPT_SESSION; } -#line 44269 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 16465 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.var_type)=OPT_GLOBAL; } +#line 44096 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3217: -#line 16430 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 16466 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.var_type)=OPT_SESSION; } -#line 44275 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44102 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3218: -#line 16434 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 16467 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.var_type)=OPT_SESSION; } -#line 44281 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44108 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3219: -#line 16435 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.var_type)=OPT_GLOBAL; } -#line 44287 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 16471 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.var_type)=OPT_SESSION; } +#line 44114 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3220: -#line 16436 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.var_type)=OPT_SESSION; } -#line 44293 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 16472 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.var_type)=OPT_GLOBAL; } +#line 44120 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3221: -#line 16437 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 16473 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.var_type)=OPT_SESSION; } -#line 44299 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44126 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3222: -#line 16441 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.var_type)=OPT_DEFAULT; } -#line 44305 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 16474 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.var_type)=OPT_SESSION; } +#line 44132 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3223: -#line 16442 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.var_type)=OPT_GLOBAL; } -#line 44311 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 16478 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.var_type)=OPT_DEFAULT; } +#line 44138 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3224: -#line 16443 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.var_type)=OPT_SESSION; } -#line 44317 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 16479 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.var_type)=OPT_GLOBAL; } +#line 44144 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3225: -#line 16444 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 16480 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.var_type)=OPT_SESSION; } -#line 44323 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44150 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3226: -#line 16450 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 16481 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.var_type)=OPT_SESSION; } +#line 44156 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 3227: +#line 16487 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_system_variable(Lex->option_type, &(yyvsp[-2].ident_sys), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44332 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44165 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3227: -#line 16455 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3228: +#line 16492 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_system_variable(thd, Lex->option_type, &(yyvsp[-4].ident_sys), &(yyvsp[-2].ident_sys), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44341 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44174 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3228: -#line 16460 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3229: +#line 16497 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_default_system_variable(Lex->option_type, &(yyvsp[-2].ident_sys), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44350 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44183 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3229: -#line 16469 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3230: +#line 16506 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_variable(&(yyvsp[-2].ident_sys), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44359 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44192 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3230: -#line 16474 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3231: +#line 16511 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_variable(&(yyvsp[-4].ident_sys), &(yyvsp[-2].ident_sys), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44368 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44201 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3231: -#line 16479 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3232: +#line 16516 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_default_system_variable(Lex->option_type, &(yyvsp[-2].ident_sys), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44377 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44210 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3232: -#line 16484 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3233: +#line 16521 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_user_variable(thd, &(yyvsp[-2].lex_str), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44386 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44219 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3233: -#line 16489 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3234: +#line 16526 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_system_variable((yyvsp[-3].var_type), &(yyvsp[-2].ident_sys), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44395 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44228 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3234: -#line 16494 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3235: +#line 16531 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_system_variable(thd, (yyvsp[-5].var_type), &(yyvsp[-4].ident_sys), &(yyvsp[-2].ident_sys), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44404 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44237 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3235: -#line 16499 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3236: +#line 16536 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_default_system_variable((yyvsp[-5].var_type), &(yyvsp[-2].ident_sys), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44413 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44246 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3236: -#line 16504 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3237: +#line 16541 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; CHARSET_INFO *cs2; @@ -44427,11 +44260,11 @@ MYSQL_YYABORT; lex->var_list.push_back(var, thd->mem_root); } -#line 44431 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44264 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3237: -#line 16518 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3238: +#line 16555 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; sp_pcontext *spc= lex->spcont; @@ -44442,11 +44275,11 @@ thd->parse_error(); MYSQL_YYABORT; } -#line 44446 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44279 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3238: -#line 16529 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3239: +#line 16566 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; CHARSET_INFO *cs2; @@ -44465,11 +44298,11 @@ unlikely(lex->var_list.push_back(var, thd->mem_root))) MYSQL_YYABORT; } -#line 44469 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44302 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3239: -#line 16548 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3240: +#line 16585 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex = Lex; LEX_USER *user; @@ -44487,11 +44320,11 @@ if (lex->sphead) lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT; } -#line 44491 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44324 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3240: -#line 16566 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3241: +#line 16603 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex = Lex; set_var_default_role *var= (new (thd->mem_root) @@ -44503,11 +44336,11 @@ if (lex->sphead) lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT; } -#line 44507 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44340 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3241: -#line 16578 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3242: +#line 16615 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex = Lex; set_var_role *var= new (thd->mem_root) set_var_role((yyvsp[0].lex_str)); @@ -44515,20 +44348,20 @@ unlikely(lex->var_list.push_back(var, thd->mem_root))) MYSQL_YYABORT; } -#line 44519 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44352 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3242: -#line 16586 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3243: +#line 16623 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->set_variable(&(yyvsp[-2].kwd), (yyvsp[0].item)))) MYSQL_YYABORT; } -#line 44528 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44361 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3243: -#line 16591 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3244: +#line 16628 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex = Lex; set_var_password *var= (new (thd->mem_root) @@ -44540,11 +44373,11 @@ if (lex->sphead) lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT; } -#line 44544 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44377 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3248: -#line 16614 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3249: +#line 16651 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; Item *item= new (thd->mem_root) Item_int(thd, (int32) (yyvsp[0].num)); @@ -44560,11 +44393,11 @@ if (unlikely(lex->var_list.push_back(var, thd->mem_root))) MYSQL_YYABORT; } -#line 44564 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44397 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3249: -#line 16633 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3250: +#line 16670 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; Item *item= new (thd->mem_root) Item_int(thd, (int32) (yyvsp[0].tx_isolation)); @@ -44579,47 +44412,47 @@ unlikely(lex->var_list.push_back(var, thd->mem_root))) MYSQL_YYABORT; } -#line 44583 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44416 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3250: -#line 16650 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3251: +#line 16687 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= true; } -#line 44589 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44422 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3251: -#line 16651 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3252: +#line 16688 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= false; } -#line 44595 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44428 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3252: -#line 16655 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3253: +#line 16692 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.tx_isolation)= ISO_READ_UNCOMMITTED; } -#line 44601 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44434 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3253: -#line 16656 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3254: +#line 16693 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.tx_isolation)= ISO_READ_COMMITTED; } -#line 44607 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44440 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3254: -#line 16657 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3255: +#line 16694 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.tx_isolation)= ISO_REPEATABLE_READ; } -#line 44613 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44446 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3255: -#line 16658 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3256: +#line 16695 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.tx_isolation)= ISO_SERIALIZABLE; } -#line 44619 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44452 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3256: -#line 16663 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3257: +#line 16700 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; sp_pcontext *spc= lex->spcont; @@ -44634,82 +44467,82 @@ lex->definer->plugin= empty_clex_str; lex->definer->auth= empty_clex_str; } -#line 44638 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44471 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3257: -#line 16677 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3258: +#line 16714 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->definer= (yyvsp[-1].lex_user); } -#line 44644 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44477 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3258: -#line 16681 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3259: +#line 16718 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->definer->pwhash= (yyvsp[0].lex_string_with_metadata);} -#line 44650 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44483 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3259: -#line 16682 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3260: +#line 16719 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->definer->pwtext= (yyvsp[-1].lex_string_with_metadata); } -#line 44656 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44489 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3260: -#line 16684 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3261: +#line 16721 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->definer->pwtext= (yyvsp[-1].lex_string_with_metadata); Lex->definer->pwhash.str= Item_func_password::alloc(thd, (yyvsp[-1].lex_string_with_metadata).str, (yyvsp[-1].lex_string_with_metadata).length, Item_func_password::OLD); Lex->definer->pwhash.length= SCRAMBLED_PASSWORD_CHAR_LENGTH_323; } -#line 44667 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44500 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3261: -#line 16693 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3262: +#line 16730 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)=(yyvsp[0].item); } -#line 44673 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44506 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3262: -#line 16694 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3263: +#line 16731 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)=0; } -#line 44679 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44512 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3263: -#line 16696 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3264: +#line 16733 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)=new (thd->mem_root) Item_string_sys(thd, "ON", 2); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 44689 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44522 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3264: -#line 16702 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3265: +#line 16739 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)=new (thd->mem_root) Item_string_sys(thd, "ALL", 3); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 44699 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44532 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3265: -#line 16708 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3266: +#line 16745 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.item)=new (thd->mem_root) Item_string_sys(thd, "binary", 6); if (unlikely((yyval.item) == NULL)) MYSQL_YYABORT; } -#line 44709 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44542 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3266: -#line 16719 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3267: +#line 16756 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; @@ -44717,55 +44550,55 @@ my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "LOCK")); lex->sql_command= SQLCOM_LOCK_TABLES; } -#line 44721 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44554 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3267: -#line 16727 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3268: +#line 16764 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 44727 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44560 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3268: -#line 16732 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3269: +#line 16769 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 44733 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44566 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3269: -#line 16734 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3270: +#line 16771 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(set_statement_var_if_exists(thd, STRING_WITH_LEN("lock_wait_timeout"), (yyvsp[0].ulong_num))) || unlikely(set_statement_var_if_exists(thd, STRING_WITH_LEN("innodb_lock_wait_timeout"), (yyvsp[0].ulong_num)))) MYSQL_YYABORT; } -#line 44743 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44576 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3270: -#line 16740 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3271: +#line 16777 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(set_statement_var_if_exists(thd, STRING_WITH_LEN("lock_wait_timeout"), 0)) || unlikely(set_statement_var_if_exists(thd, STRING_WITH_LEN("innodb_lock_wait_timeout"), 0))) MYSQL_YYABORT; } -#line 44753 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44586 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3271: -#line 16748 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3272: +#line 16785 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 44759 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44592 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3272: -#line 16749 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3273: +#line 16786 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { } -#line 44765 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44598 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3275: -#line 16759 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3276: +#line 16796 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { thr_lock_type lock_type= (thr_lock_type) (yyvsp[0].num); bool lock_for_write= (lock_type >= TL_WRITE_ALLOW_WRITE); @@ -44781,43 +44614,43 @@ lock_type, mdl_type))) MYSQL_YYABORT; } -#line 44785 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44618 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3276: -#line 16777 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3277: +#line 16814 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= TL_READ_NO_INSERT; } -#line 44791 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44624 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3277: -#line 16778 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3278: +#line 16815 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= TL_WRITE_DEFAULT; } -#line 44797 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44630 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3278: -#line 16780 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3279: +#line 16817 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT); } -#line 44805 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44638 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3279: -#line 16784 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3280: +#line 16821 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= TL_WRITE_LOW_PRIORITY; } -#line 44811 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44644 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3280: -#line 16785 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3281: +#line 16822 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= TL_READ; } -#line 44817 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44650 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3281: -#line 16790 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3282: +#line 16827 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; @@ -44825,17 +44658,17 @@ my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "UNLOCK")); lex->sql_command= SQLCOM_UNLOCK_TABLES; } -#line 44829 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44662 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3282: -#line 16798 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3283: +#line 16835 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 44835 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44668 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3283: -#line 16807 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3284: +#line 16844 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->sphead)) @@ -44845,11 +44678,11 @@ 0))) MYSQL_YYABORT; } -#line 44849 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44682 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3284: -#line 16817 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3285: +#line 16854 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->sphead)) @@ -44859,11 +44692,11 @@ 0))) MYSQL_YYABORT; } -#line 44863 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44696 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3285: -#line 16827 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3286: +#line 16864 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(lex->sphead)) @@ -44881,11 +44714,11 @@ 0))) MYSQL_YYABORT; } -#line 44885 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44718 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3286: -#line 16845 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3287: +#line 16882 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->expr_allows_subselect= TRUE; /* Stored functions are not supported for HANDLER READ. */ @@ -44896,59 +44729,59 @@ MYSQL_YYABORT; } } -#line 44900 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44733 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3287: -#line 16858 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3288: +#line 16895 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->ident= null_clex_str; } -#line 44906 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44739 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3288: -#line 16859 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3289: +#line 16896 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->ident= (yyvsp[-1].ident_sys); } -#line 44912 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44745 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3289: -#line 16863 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3290: +#line 16900 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->ha_read_mode = RFIRST; } -#line 44918 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44751 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3290: -#line 16864 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3291: +#line 16901 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->ha_read_mode = RNEXT; } -#line 44924 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44757 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3291: -#line 16868 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3292: +#line 16905 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->ha_read_mode = RFIRST; } -#line 44930 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44763 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3292: -#line 16869 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3293: +#line 16906 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->ha_read_mode = RNEXT; } -#line 44936 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44769 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3293: -#line 16870 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3294: +#line 16907 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->ha_read_mode = RPREV; } -#line 44942 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44775 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3294: -#line 16871 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3295: +#line 16908 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->ha_read_mode = RLAST; } -#line 44948 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44781 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3295: -#line 16873 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3296: +#line 16910 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->ha_read_mode = RKEY; @@ -44956,211 +44789,211 @@ if (unlikely(!(lex->insert_list= new (thd->mem_root) List_item))) MYSQL_YYABORT; } -#line 44960 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44793 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3296: -#line 16881 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3297: +#line 16918 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 44966 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44799 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3297: -#line 16885 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3298: +#line 16922 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ha_rkey_mode)=HA_READ_KEY_EXACT; } -#line 44972 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44805 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3298: -#line 16886 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3299: +#line 16923 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_NEXT; } -#line 44978 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44811 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3299: -#line 16887 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3300: +#line 16924 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_PREV; } -#line 44984 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44817 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3300: -#line 16888 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3301: +#line 16925 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ha_rkey_mode)=HA_READ_AFTER_KEY; } -#line 44990 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44823 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3301: -#line 16889 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3302: +#line 16926 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.ha_rkey_mode)=HA_READ_BEFORE_KEY; } -#line 44996 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44829 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3302: -#line 16896 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3303: +#line 16933 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 45002 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44835 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3303: -#line 16901 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3304: +#line 16938 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_REVOKE; lex->type= 0; } -#line 45012 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44845 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3304: -#line 16907 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3305: +#line 16944 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_grant_command(thd, SQLCOM_REVOKE, TYPE_ENUM_FUNCTION))) MYSQL_YYABORT; } -#line 45022 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44855 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3305: -#line 16913 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3306: +#line 16950 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_grant_command(thd, SQLCOM_REVOKE, TYPE_ENUM_PROCEDURE))) MYSQL_YYABORT; } -#line 45032 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44865 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3306: -#line 16920 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3307: +#line 16957 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_grant_command(thd, SQLCOM_REVOKE, TYPE_ENUM_PACKAGE))) MYSQL_YYABORT; } -#line 45042 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44875 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3307: -#line 16927 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3308: +#line 16964 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_grant_command(thd, SQLCOM_REVOKE, TYPE_ENUM_PACKAGE_BODY))) MYSQL_YYABORT; } -#line 45052 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44885 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3308: -#line 16933 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3309: +#line 16970 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_REVOKE_ALL; } -#line 45060 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44893 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3309: -#line 16937 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3310: +#line 16974 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->users_list.push_front ((yyvsp[-2].lex_user)); lex->sql_command= SQLCOM_REVOKE; lex->type= TYPE_ENUM_PROXY; } -#line 45071 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44904 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3310: -#line 16944 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3311: +#line 16981 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_REVOKE_ROLE; if (unlikely(Lex->users_list.push_front((yyvsp[-2].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45081 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44914 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3311: -#line 16953 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3312: +#line 16990 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->with_admin_option= true; (yyval.lex_user)= (yyvsp[0].lex_user); } -#line 45087 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44920 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3312: -#line 16955 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3313: +#line 16992 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->with_admin_option= false; (yyval.lex_user)= (yyvsp[0].lex_user); } -#line 45093 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44926 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3313: -#line 16960 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3314: +#line 16997 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 45099 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44932 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3314: -#line 16966 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3315: +#line 17003 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_GRANT; lex->type= 0; } -#line 45109 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44942 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3315: -#line 16973 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3316: +#line 17010 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_grant_command(thd, SQLCOM_GRANT, TYPE_ENUM_FUNCTION))) MYSQL_YYABORT; } -#line 45119 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44952 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3316: -#line 16980 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3317: +#line 17017 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_grant_command(thd, SQLCOM_GRANT, TYPE_ENUM_PROCEDURE))) MYSQL_YYABORT; } -#line 45129 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44962 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3317: -#line 16987 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3318: +#line 17024 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_grant_command(thd, SQLCOM_GRANT, TYPE_ENUM_PACKAGE))) MYSQL_YYABORT; } -#line 45139 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44972 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3318: -#line 16994 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3319: +#line 17031 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_grant_command(thd, SQLCOM_GRANT, TYPE_ENUM_PACKAGE_BODY))) MYSQL_YYABORT; } -#line 45149 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44982 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3319: -#line 17000 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3320: +#line 17037 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->users_list.push_front ((yyvsp[-3].lex_user)); lex->sql_command= SQLCOM_GRANT; lex->type= TYPE_ENUM_PROXY; } -#line 45160 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 44993 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3320: -#line 17007 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3321: +#line 17044 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_GRANT_ROLE; @@ -45168,64 +45001,64 @@ if (unlikely(Lex->users_list.push_front((yyvsp[-3].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45172 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45005 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3321: -#line 17018 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3322: +#line 17055 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->definer = 0; } -#line 45178 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45011 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3322: -#line 17019 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3323: +#line 17056 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->definer = (yyvsp[0].lex_user); } -#line 45184 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45017 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3323: -#line 17022 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3324: +#line 17060 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->with_admin_option= false; } -#line 45190 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45023 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3324: -#line 17023 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3325: +#line 17061 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->with_admin_option= true; } -#line 45196 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45029 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3325: -#line 17027 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3326: +#line 17066 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45205 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45038 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3326: -#line 17032 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3327: +#line 17071 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45214 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45047 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3327: -#line 17040 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3328: +#line 17079 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(!((yyval.lex_user)=(LEX_USER*) thd->calloc(sizeof(LEX_USER))))) MYSQL_YYABORT; (yyval.lex_user)->user= current_role; (yyval.lex_user)->reset_auth(); } -#line 45225 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45058 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3328: -#line 17050 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3329: +#line 17089 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { CHARSET_INFO *cs= system_charset_info; /* trim end spaces (as they'll be lost in mysql.user anyway) */ @@ -45244,281 +45077,281 @@ cs, 0))) MYSQL_YYABORT; } -#line 45248 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45081 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3332: -#line 17077 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3333: +#line 17116 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 45254 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45087 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3333: -#line 17079 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3334: +#line 17118 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->all_privileges= 1; Lex->grant= GLOBAL_ACLS; } -#line 45263 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45096 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3338: -#line 17097 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3339: +#line 17136 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->which_columns = SELECT_ACL;} -#line 45269 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45102 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3339: -#line 17098 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3340: +#line 17137 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 45275 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45108 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3340: -#line 17100 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3341: +#line 17139 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->which_columns = INSERT_ACL;} -#line 45281 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45114 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3341: -#line 17101 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3342: +#line 17140 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 45287 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45120 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3342: -#line 17103 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3343: +#line 17142 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->which_columns = UPDATE_ACL; } -#line 45293 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45126 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3343: -#line 17104 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3344: +#line 17143 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 45299 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45132 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3344: -#line 17106 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3345: +#line 17145 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->which_columns = REFERENCES_ACL;} -#line 45305 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45138 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3345: -#line 17107 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3346: +#line 17146 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 45311 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45144 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3346: -#line 17108 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3347: +#line 17147 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= DELETE_ACL;} -#line 45317 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45150 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3347: -#line 17109 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3348: +#line 17148 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 45323 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45156 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3348: -#line 17110 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3349: +#line 17149 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= INDEX_ACL;} -#line 45329 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45162 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3349: -#line 17111 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3350: +#line 17150 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= ALTER_ACL;} -#line 45335 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45168 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3350: -#line 17112 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3351: +#line 17151 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= CREATE_ACL;} -#line 45341 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45174 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3351: -#line 17113 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3352: +#line 17152 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= DROP_ACL;} -#line 45347 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45180 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3352: -#line 17114 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3353: +#line 17153 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= EXECUTE_ACL;} -#line 45353 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45186 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3353: -#line 17115 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3354: +#line 17154 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= RELOAD_ACL;} -#line 45359 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45192 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3354: -#line 17116 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3355: +#line 17155 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= SHUTDOWN_ACL;} -#line 45365 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45198 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3355: -#line 17117 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3356: +#line 17156 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= PROCESS_ACL;} -#line 45371 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45204 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3356: -#line 17118 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3357: +#line 17157 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= FILE_ACL;} -#line 45377 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45210 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3357: -#line 17119 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3358: +#line 17158 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= GRANT_ACL;} -#line 45383 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45216 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3358: -#line 17120 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3359: +#line 17159 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= SHOW_DB_ACL;} -#line 45389 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45222 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3359: -#line 17121 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3360: +#line 17160 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= SUPER_ACL;} -#line 45395 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45228 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3360: -#line 17122 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3361: +#line 17161 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= CREATE_TMP_ACL;} -#line 45401 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45234 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3361: -#line 17123 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3362: +#line 17162 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= LOCK_TABLES_ACL; } -#line 45407 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45240 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3362: -#line 17124 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3363: +#line 17163 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= REPL_SLAVE_ACL; } -#line 45413 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45246 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3363: -#line 17125 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3364: +#line 17164 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= REPL_CLIENT_ACL; } -#line 45419 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45252 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3364: -#line 17126 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3365: +#line 17165 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= CREATE_VIEW_ACL; } -#line 45425 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45258 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3365: -#line 17127 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3366: +#line 17166 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= SHOW_VIEW_ACL; } -#line 45431 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45264 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3366: -#line 17128 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3367: +#line 17167 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= CREATE_PROC_ACL; } -#line 45437 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45270 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3367: -#line 17129 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3368: +#line 17168 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= ALTER_PROC_ACL; } -#line 45443 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45276 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3368: -#line 17130 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3369: +#line 17169 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= CREATE_USER_ACL; } -#line 45449 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45282 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3369: -#line 17131 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3370: +#line 17170 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= EVENT_ACL;} -#line 45455 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45288 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3370: -#line 17132 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3371: +#line 17171 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= TRIGGER_ACL; } -#line 45461 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45294 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3371: -#line 17133 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3372: +#line 17172 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= CREATE_TABLESPACE_ACL; } -#line 45467 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45300 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3372: -#line 17134 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3373: +#line 17173 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->grant |= DELETE_HISTORY_ACL; } -#line 45473 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45306 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3373: -#line 17138 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3374: +#line 17177 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 45479 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45312 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3374: -#line 17139 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3375: +#line 17178 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 45485 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45318 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3377: -#line 17149 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3378: +#line 17188 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(lex->x509_subject)) my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "SUBJECT")); lex->x509_subject=(yyvsp[0].lex_string_with_metadata).str; } -#line 45496 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45329 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3378: -#line 17156 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3379: +#line 17195 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(lex->x509_issuer)) my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "ISSUER")); lex->x509_issuer=(yyvsp[0].lex_string_with_metadata).str; } -#line 45507 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45340 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3379: -#line 17163 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3380: +#line 17202 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(lex->ssl_cipher)) my_yyabort_error((ER_DUP_ARGUMENT, MYF(0), "CIPHER")); lex->ssl_cipher=(yyvsp[0].lex_string_with_metadata).str; } -#line 45518 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45351 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3380: -#line 17173 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3381: +#line 17212 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; if (unlikely(lex->copy_db_to(&lex->current_select->db))) @@ -45528,11 +45361,11 @@ else if (unlikely(lex->columns.elements)) my_yyabort_error((ER_ILLEGAL_GRANT_FOR_TABLE, MYF(0))); } -#line 45532 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45365 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3381: -#line 17183 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3382: +#line 17222 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->current_select->db= (yyvsp[-2].ident_sys); @@ -45541,11 +45374,11 @@ else if (unlikely(lex->columns.elements)) my_yyabort_error((ER_ILLEGAL_GRANT_FOR_TABLE, MYF(0))); } -#line 45545 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45378 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3382: -#line 17192 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3383: +#line 17231 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->current_select->db= null_clex_str; @@ -45554,11 +45387,11 @@ else if (unlikely(lex->columns.elements)) my_yyabort_error((ER_ILLEGAL_GRANT_FOR_TABLE, MYF(0))); } -#line 45558 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45391 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3383: -#line 17201 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3384: +#line 17240 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(!lex->current_select-> @@ -45568,120 +45401,120 @@ if (lex->grant == GLOBAL_ACLS) lex->grant = TABLE_ACLS & ~GRANT_ACL; } -#line 45572 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45405 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3384: -#line 17214 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3385: +#line 17253 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45581 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45414 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3385: -#line 17219 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3386: +#line 17258 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45590 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45423 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3386: -#line 17227 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3387: +#line 17266 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45599 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45432 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3387: -#line 17232 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3388: +#line 17271 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45608 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45441 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3388: -#line 17240 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3389: +#line 17279 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45617 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45450 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3389: -#line 17245 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3390: +#line 17284 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->users_list.push_back((yyvsp[0].lex_user), thd->mem_root))) MYSQL_YYABORT; } -#line 45626 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45459 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3394: -#line 17256 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3395: +#line 17295 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_user)= (yyvsp[-3].lex_user); (yyvsp[-3].lex_user)->pwtext= (yyvsp[0].lex_string_with_metadata); if (unlikely(Lex->sql_command == SQLCOM_REVOKE)) MYSQL_YYABORT; } -#line 45637 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45470 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3395: -#line 17263 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3396: +#line 17302 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_user)= (yyvsp[-4].lex_user); (yyvsp[-4].lex_user)->pwhash= (yyvsp[0].lex_string_with_metadata); } -#line 45646 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45479 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3396: -#line 17268 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3397: +#line 17307 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_user)= (yyvsp[-3].lex_user); (yyvsp[-3].lex_user)->plugin= (yyvsp[0].lex_str); (yyvsp[-3].lex_user)->auth= empty_clex_str; } -#line 45656 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45489 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3397: -#line 17274 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3398: +#line 17313 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_user)= (yyvsp[-5].lex_user); (yyvsp[-5].lex_user)->plugin= (yyvsp[-2].lex_str); (yyvsp[-5].lex_user)->auth= (yyvsp[0].lex_str); } -#line 45666 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45499 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3398: -#line 17280 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3399: +#line 17319 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_user)= (yyvsp[0].lex_user); } -#line 45672 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45505 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3399: -#line 17285 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3400: +#line 17324 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->grant |= lex->which_columns; } -#line 45681 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45514 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3403: -#line 17299 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3404: +#line 17338 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { String *new_str= new (thd->mem_root) String((const char*) (yyvsp[0].ident_sys).str,(yyvsp[0].ident_sys).length,system_charset_info); if (unlikely(new_str == NULL)) @@ -45707,245 +45540,245 @@ lex->columns.push_back(col, thd->mem_root); } } -#line 45711 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45544 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3405: -#line 17329 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3406: +#line 17368 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->ssl_type=SSL_TYPE_SPECIFIED; } -#line 45719 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45552 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3406: -#line 17333 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3407: +#line 17372 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->ssl_type=SSL_TYPE_ANY; } -#line 45727 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45560 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3407: -#line 17337 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3408: +#line 17376 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->ssl_type=SSL_TYPE_X509; } -#line 45735 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45568 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3408: -#line 17341 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3409: +#line 17380 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->ssl_type=SSL_TYPE_NONE; } -#line 45743 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45576 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3409: -#line 17348 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3410: +#line 17387 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->mqh.questions=(yyvsp[0].ulong_num); lex->mqh.specified_limits|= USER_RESOURCES::QUERIES_PER_HOUR; } -#line 45753 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45586 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3410: -#line 17354 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3411: +#line 17393 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->mqh.updates=(yyvsp[0].ulong_num); lex->mqh.specified_limits|= USER_RESOURCES::UPDATES_PER_HOUR; } -#line 45763 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45596 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3411: -#line 17360 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3412: +#line 17399 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->mqh.conn_per_hour= (yyvsp[0].ulong_num); lex->mqh.specified_limits|= USER_RESOURCES::CONNECTIONS_PER_HOUR; } -#line 45773 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45606 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3412: -#line 17366 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3413: +#line 17405 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->mqh.user_conn= (yyvsp[0].num); lex->mqh.specified_limits|= USER_RESOURCES::USER_CONNECTIONS; } -#line 45783 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45616 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3413: -#line 17372 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3414: +#line 17411 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->mqh.max_statement_time= (yyvsp[0].item_num)->val_real(); lex->mqh.specified_limits|= USER_RESOURCES::MAX_STATEMENT_TIME; } -#line 45793 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 3414: -#line 17380 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 45799 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45626 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3415: -#line 17381 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 17419 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 45805 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45632 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3416: -#line 17385 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 17420 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 45811 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45638 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3418: -#line 17391 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3417: +#line 17424 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 45817 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45644 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3419: -#line 17392 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 17430 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 45823 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45650 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3420: -#line 17396 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 17431 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 45829 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45656 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3421: -#line 17397 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->grant |= GRANT_ACL;} -#line 45835 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 17435 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {} +#line 45662 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3422: -#line 17401 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 45841 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 17436 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->grant |= GRANT_ACL;} +#line 45668 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3423: -#line 17402 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 17440 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 45847 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45674 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3424: -#line 17406 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->grant |= GRANT_ACL;} -#line 45853 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 17441 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {} +#line 45680 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3425: -#line 17407 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 45859 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 17445 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->grant |= GRANT_ACL;} +#line 45686 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3426: -#line 17412 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 17446 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {} +#line 45692 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 3427: +#line 17451 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command = SQLCOM_BEGIN; lex->start_transaction_opt= 0; } -#line 45869 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45702 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3427: -#line 17417 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3428: +#line 17456 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 45875 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45708 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3428: -#line 17422 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3429: +#line 17461 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_COMPOUND; Lex->sphead->set_stmt_end(thd); Lex->sphead->restore_thd_mem_root(thd); } -#line 45885 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45718 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3429: -#line 17430 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3430: +#line 17469 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 0; } -#line 45891 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45724 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3430: -#line 17431 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3431: +#line 17470 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= 1; } -#line 45897 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45730 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3431: -#line 17435 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3432: +#line 17474 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 45903 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45736 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3432: -#line 17436 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3433: +#line 17475 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 45909 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45742 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3433: -#line 17441 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3434: +#line 17480 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.m_yes_no_unk)= TVL_UNKNOWN; } -#line 45915 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45748 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3434: -#line 17442 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3435: +#line 17481 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.m_yes_no_unk)= TVL_NO; } -#line 45921 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45754 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3435: -#line 17443 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3436: +#line 17482 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.m_yes_no_unk)= TVL_YES; } -#line 45927 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45760 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3436: -#line 17448 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3437: +#line 17487 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.m_yes_no_unk)= TVL_UNKNOWN; } -#line 45933 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45766 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3437: -#line 17449 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3438: +#line 17488 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.m_yes_no_unk)= TVL_YES; } -#line 45939 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45772 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3438: -#line 17450 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3439: +#line 17489 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.m_yes_no_unk)= TVL_NO; } -#line 45945 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45778 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3439: -#line 17455 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3440: +#line 17494 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_COMMIT; @@ -45954,11 +45787,11 @@ lex->tx_chain= (yyvsp[-1].m_yes_no_unk); lex->tx_release= (yyvsp[0].m_yes_no_unk); } -#line 45958 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45791 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3440: -#line 17467 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3441: +#line 17506 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_ROLLBACK; @@ -45967,84 +45800,84 @@ lex->tx_chain= (yyvsp[-1].m_yes_no_unk); lex->tx_release= (yyvsp[0].m_yes_no_unk); } -#line 45971 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45804 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3441: -#line 17476 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3442: +#line 17515 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_ROLLBACK_TO_SAVEPOINT; lex->ident= (yyvsp[0].ident_sys); } -#line 45981 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45814 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3442: -#line 17482 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3443: +#line 17521 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_ROLLBACK_TO_SAVEPOINT; lex->ident= (yyvsp[0].ident_sys); } -#line 45991 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45824 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3443: -#line 17491 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3444: +#line 17530 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_SAVEPOINT; lex->ident= (yyvsp[0].ident_sys); } -#line 46001 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45834 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3444: -#line 17500 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3445: +#line 17539 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; lex->sql_command= SQLCOM_RELEASE_SAVEPOINT; lex->ident= (yyvsp[0].ident_sys); } -#line 46011 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45844 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3445: -#line 17513 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3446: +#line 17552 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.unit_type)= UNION_TYPE; } -#line 46017 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45850 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3446: -#line 17515 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3447: +#line 17554 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.unit_type)= INTERSECT_TYPE; } -#line 46023 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45856 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3447: -#line 17517 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3448: +#line 17556 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.unit_type)= EXCEPT_TYPE; } -#line 46029 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45862 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3448: -#line 17521 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3449: +#line 17560 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 46035 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45868 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3450: -#line 17527 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3451: +#line 17566 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_select_to_union_list((bool)(yyvsp[0].num), (yyvsp[-1].unit_type), TRUE))) MYSQL_YYABORT; } -#line 46044 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45877 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3451: -#line 17532 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3452: +#line 17571 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* Remove from the name resolution context stack the context of the @@ -46052,28 +45885,28 @@ */ Lex->pop_context(); } -#line 46056 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45889 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3452: -#line 17543 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3453: +#line 17582 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_select_to_union_list((bool)(yyvsp[0].num), (yyvsp[-1].unit_type), TRUE))) MYSQL_YYABORT; } -#line 46065 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45898 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3453: -#line 17548 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3454: +#line 17587 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->pop_context(); } -#line 46073 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45906 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3454: -#line 17554 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3455: +#line 17593 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; DBUG_ASSERT(lex->current_select->linkage != GLOBAL_OPTIONS_TYPE); @@ -46087,136 +45920,136 @@ } thd->where= "global ORDER clause"; } -#line 46091 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45924 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3455: -#line 17568 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3456: +#line 17607 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { thd->lex->current_select->no_table_names_allowed= 0; thd->where= ""; } -#line 46100 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45933 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3458: -#line 17584 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3459: +#line 17623 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_select_to_union_list((bool)(yyvsp[0].num), (yyvsp[-1].unit_type), FALSE))) MYSQL_YYABORT; } -#line 46109 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 3459: -#line 17591 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.num)=1; } -#line 46115 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45942 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3460: -#line 17592 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 17630 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)=1; } -#line 46121 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45948 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3461: -#line 17593 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.num)=0; } -#line 46127 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 17631 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.num)=1; } +#line 45954 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3462: -#line 17597 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.select_lex)= (yyvsp[0].select_lex); } -#line 46133 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 17632 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.num)=0; } +#line 45960 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3463: -#line 17598 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 17636 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.select_lex)= (yyvsp[0].select_lex); } -#line 46139 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45966 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3464: -#line 17603 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 17637 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.select_lex)= (yyvsp[0].select_lex); } +#line 45972 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 3465: +#line 17642 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->tvc_start(); } -#line 46147 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45980 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3465: -#line 17607 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3466: +#line 17646 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.select_lex)= Lex->current_select; if (Lex->tvc_finalize()) MYSQL_YYABORT; } -#line 46157 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45990 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3466: -#line 17625 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3467: +#line 17664 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.select_lex)= Lex->current_select->master_unit()->first_select(); } -#line 46165 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 3467: -#line 17631 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.select_lex)= (yyvsp[-2].select_lex); } -#line 46171 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 45998 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3468: -#line 17632 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 17670 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.select_lex)= (yyvsp[-2].select_lex); } -#line 46177 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46004 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3469: -#line 17636 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.select_lex)= (yyvsp[-1].select_lex); } -#line 46183 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 17671 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.select_lex)= (yyvsp[-2].select_lex); } +#line 46010 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3470: -#line 17637 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 17675 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.select_lex)= (yyvsp[-1].select_lex); } -#line 46189 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46016 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3471: -#line 17641 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.select_lex)= (yyvsp[0].select_lex); } -#line 46195 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 17676 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.select_lex)= (yyvsp[-1].select_lex); } +#line 46022 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3472: -#line 17642 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 17680 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.select_lex)= (yyvsp[0].select_lex); } -#line 46201 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46028 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3473: -#line 17643 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { (yyval.select_lex)= (yyvsp[-1].select_lex); } -#line 46207 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 17681 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.select_lex)= (yyvsp[0].select_lex); } +#line 46034 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3474: -#line 17649 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 17682 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { (yyval.select_lex)= (yyvsp[-1].select_lex); } +#line 46040 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 3475: +#line 17688 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyvsp[-1].select_lex)->set_with_clause((yyvsp[-2].with_clause)); (yyval.select_lex)= (yyvsp[-1].select_lex); } -#line 46216 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46049 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3475: -#line 17656 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3476: +#line 17695 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; if (unlikely(!lex->expr_allows_subselect || @@ -46235,11 +46068,11 @@ if (unlikely(mysql_new_select(Lex, 1, NULL))) MYSQL_YYABORT; } -#line 46239 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46072 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3476: -#line 17677 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3477: +#line 17716 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex=Lex; @@ -46265,17 +46098,17 @@ temp->select_n_having_items; } } -#line 46269 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46102 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3481: -#line 17715 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3482: +#line 17754 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->options|= SELECT_STRAIGHT_JOIN; } -#line 46275 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46108 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3482: -#line 17717 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3483: +#line 17756 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->check_simple_select(&(yyvsp[0].kwd)))) MYSQL_YYABORT; @@ -46283,61 +46116,61 @@ YYPS->m_mdl_type= MDL_SHARED_READ; Select->options|= SELECT_HIGH_PRIORITY; } -#line 46287 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46120 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3483: -#line 17724 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3484: +#line 17763 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->options|= SELECT_DISTINCT; } -#line 46293 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46126 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3484: -#line 17725 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3485: +#line 17764 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->options|= SELECT_DISTINCT; } -#line 46299 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46132 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3485: -#line 17726 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3486: +#line 17765 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->options|= SELECT_SMALL_RESULT; } -#line 46305 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46138 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3486: -#line 17727 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3487: +#line 17766 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->options|= SELECT_BIG_RESULT; } -#line 46311 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46144 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3487: -#line 17729 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3488: +#line 17768 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->check_simple_select(&(yyvsp[0].kwd)))) MYSQL_YYABORT; Select->options|= OPTION_BUFFER_RESULT; } -#line 46321 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46154 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3488: -#line 17735 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3489: +#line 17774 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->check_simple_select(&(yyvsp[0].kwd)))) MYSQL_YYABORT; Select->options|= OPTION_FOUND_ROWS; } -#line 46331 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46164 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3489: -#line 17740 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3490: +#line 17779 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Select->options|= SELECT_ALL; } -#line 46337 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46170 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3492: -#line 17756 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3493: +#line 17795 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* We have to distinguish missing DEFINER-clause from case when @@ -46348,100 +46181,100 @@ */ thd->lex->definer= 0; } -#line 46352 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46185 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3493: -#line 17770 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3494: +#line 17809 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->definer= (yyvsp[0].lex_user); Lex->ssl_type= SSL_TYPE_NOT_SPECIFIED; Lex->ssl_cipher= Lex->x509_subject= Lex->x509_issuer= 0; bzero(&(Lex->mqh), sizeof(Lex->mqh)); } -#line 46363 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46196 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3494: -#line 17785 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3495: +#line 17824 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= DTYPE_ALGORITHM_UNDEFINED; } -#line 46369 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46202 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3495: -#line 17786 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3496: +#line 17825 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= VIEW_ALGORITHM_MERGE; } -#line 46375 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46208 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3496: -#line 17787 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3497: +#line 17826 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= VIEW_ALGORITHM_TMPTABLE; } -#line 46381 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46214 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3497: -#line 17791 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3498: +#line 17830 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.view_suid)= VIEW_SUID_DEFAULT; } -#line 46387 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46220 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3498: -#line 17792 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3499: +#line 17831 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.view_suid)= (yyvsp[0].view_suid); } -#line 46393 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46226 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3499: -#line 17796 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3500: +#line 17835 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.view_suid)= VIEW_SUID_DEFINER; } -#line 46399 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46232 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3500: -#line 17797 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3501: +#line 17836 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.view_suid)= VIEW_SUID_INVOKER; } -#line 46405 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46238 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3501: -#line 17802 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3502: +#line 17841 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 46411 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46244 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3503: -#line 17808 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3504: +#line 17847 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->view_list.push_back((LEX_CSTRING*) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_CSTRING)), thd->mem_root); } -#line 46421 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46254 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3504: -#line 17814 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3505: +#line 17853 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->view_list.push_back((LEX_CSTRING*) thd->memdup(&(yyvsp[0].ident_sys), sizeof(LEX_CSTRING)), thd->mem_root); } -#line 46431 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46264 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3505: -#line 17822 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3506: +#line 17861 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->parsing_options.allows_variable= FALSE; lex->create_view->select.str= (char *) YYLIP->get_cpp_ptr(); } -#line 46441 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46274 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3506: -#line 17828 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3507: +#line 17867 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; size_t len= YYLIP->get_cpp_ptr() - lex->create_view->select.str; @@ -46454,99 +46287,99 @@ lex->parsing_options.allows_variable= TRUE; lex->current_select->set_with_clause((yyvsp[-2].with_clause)); } -#line 46458 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46291 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3514: -#line 17857 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3515: +#line 17896 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= VIEW_CHECK_NONE; } -#line 46464 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46297 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3515: -#line 17858 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3516: +#line 17897 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= VIEW_CHECK_CASCADED; } -#line 46470 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46303 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3516: -#line 17859 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3517: +#line 17898 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= VIEW_CHECK_CASCADED; } -#line 46476 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46309 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3517: -#line 17860 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3518: +#line 17899 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= VIEW_CHECK_LOCAL; } -#line 46482 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46315 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3518: -#line 17871 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3519: +#line 17910 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.trigger_action_order_type)= TRG_ORDER_FOLLOWS; } -#line 46488 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46321 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3519: -#line 17873 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3520: +#line 17912 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.trigger_action_order_type)= TRG_ORDER_PRECEDES; } -#line 46494 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46327 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3520: -#line 17878 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3521: +#line 17917 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.trg_execution_order).ordering_clause= TRG_ORDER_NONE; (yyval.trg_execution_order).anchor_trigger_name.str= NULL; (yyval.trg_execution_order).anchor_trigger_name.length= 0; } -#line 46504 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46337 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3521: -#line 17885 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3522: +#line 17924 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.trg_execution_order).ordering_clause= (yyvsp[-1].trigger_action_order_type); (yyval.trg_execution_order).anchor_trigger_name= (yyvsp[0].lex_str); } -#line 46513 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46346 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3522: -#line 17894 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3523: +#line 17933 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->add_create_options_with_check((yyvsp[0].object_ddl_options)))) MYSQL_YYABORT; } -#line 46522 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46355 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3523: -#line 17903 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3524: +#line 17942 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* $9 */ Lex->raw_trg_on_table_name_begin= YYLIP->get_tok_start(); } -#line 46530 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46363 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3524: -#line 17909 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3525: +#line 17948 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* $13 */ Lex->raw_trg_on_table_name_end= YYLIP->get_tok_start(); } -#line 46538 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46371 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3525: -#line 17914 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3526: +#line 17953 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->trg_chistics.ordering_clause_begin= YYLIP->get_cpp_ptr(); } -#line 46546 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46379 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3526: -#line 17918 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3527: +#line 17957 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* $18 */ LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; @@ -46566,11 +46399,11 @@ lex->sphead->set_body_start(thd, lip->get_cpp_tok_start()); } -#line 46570 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46403 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3527: -#line 17938 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3528: +#line 17977 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { /* $20 */ LEX *lex= Lex; sp_head *sp= lex->sphead; @@ -46596,11 +46429,11 @@ MDL_SHARED_NO_WRITE))) MYSQL_YYABORT; } -#line 46600 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46433 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3528: -#line 17974 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3529: +#line 18013 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; if (unlikely(lex->add_create_options_with_check((yyvsp[-5].object_ddl_options)))) @@ -46612,43 +46445,43 @@ lex->udf.returns= (Item_result) (yyvsp[-2].num); lex->udf.dl= (yyvsp[0].lex_str).str; } -#line 46616 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46449 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3529: -#line 17990 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3530: +#line 18029 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->init_last_field(&lex->sphead->m_return_field_def, &empty_clex_str, thd->variables.collation_database); } -#line 46627 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46460 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3530: -#line 17997 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3531: +#line 18036 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sphead->fill_field_definition(thd, Lex->last_field))) MYSQL_YYABORT; } -#line 46637 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46470 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3531: -#line 18007 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3532: +#line 18046 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_CREATE_SPFUNCTION; if (unlikely(!Lex->make_sp_head_no_recursive(thd, (yyvsp[-1].object_ddl_options), (yyvsp[0].spname), &sp_handler_function))) MYSQL_YYABORT; } -#line 46648 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46481 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3532: -#line 18016 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3533: +#line 18055 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= thd->lex; Lex_input_stream *lip= YYLIP; @@ -46656,11 +46489,11 @@ lex->sphead->set_chistics(lex->sp_chistics); lex->sphead->set_body_start(thd, lip->get_cpp_tok_start()); } -#line 46660 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46493 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3533: -#line 18025 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3534: +#line 18064 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_body_finalize_function(thd))) MYSQL_YYABORT; @@ -46670,129 +46503,129 @@ } Lex->sphead->set_chistics_agg_type(NOT_AGGREGATE); } -#line 46674 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46507 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3534: -#line 18038 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3535: +#line 18077 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command= SQLCOM_CREATE_PROCEDURE; if (unlikely(!Lex->make_sp_head_no_recursive(thd, (yyvsp[-1].object_ddl_options), (yyvsp[0].spname), &sp_handler_procedure))) MYSQL_YYABORT; } -#line 46685 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46518 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3535: -#line 18046 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3536: +#line 18085 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sphead->set_chistics(Lex->sp_chistics); Lex->sphead->set_body_start(thd, YYLIP->get_cpp_tok_start()); } -#line 46694 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46527 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3536: -#line 18052 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3537: +#line 18091 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely(Lex->sp_body_finalize_procedure(thd))) MYSQL_YYABORT; } -#line 46703 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46536 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3537: -#line 18060 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3538: +#line 18099 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[0].spname) && !(yyvsp[0].spname)->eq(Lex->sphead))) my_yyabort_error((ER_END_IDENTIFIER_DOES_NOT_MATCH, MYF(0), ErrConvDQName((yyvsp[0].spname)).ptr(), ErrConvDQName(Lex->sphead).ptr())); } -#line 46714 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46547 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3538: -#line 18070 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3539: +#line 18109 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (unlikely((yyvsp[0].spname) && !(yyvsp[0].spname)->eq(Lex->sphead))) my_yyabort_error((ER_END_IDENTIFIER_DOES_NOT_MATCH, MYF(0), ErrConvDQName((yyvsp[0].spname)).ptr(), ErrConvDQName(Lex->sphead).ptr())); } -#line 46725 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46558 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3539: -#line 18079 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3540: +#line 18118 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)= null_clex_str; } -#line 46731 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46564 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3540: -#line 18080 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3541: +#line 18119 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.lex_str)= (yyvsp[0].ident_sys); } -#line 46737 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46570 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3543: -#line 18092 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3544: +#line 18131 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_XA_START; } -#line 46745 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46578 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3544: -#line 18096 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3545: +#line 18135 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_XA_END; } -#line 46753 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46586 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3545: -#line 18100 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3546: +#line 18139 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_XA_PREPARE; } -#line 46761 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46594 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3546: -#line 18104 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3547: +#line 18143 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_XA_COMMIT; } -#line 46769 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46602 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3547: -#line 18108 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3548: +#line 18147 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_XA_ROLLBACK; } -#line 46777 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46610 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3548: -#line 18112 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3549: +#line 18151 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->sql_command = SQLCOM_XA_RECOVER; Lex->verbose= (yyvsp[0].num); } -#line 46786 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46619 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3549: -#line 18119 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3550: +#line 18158 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { (yyval.num)= false; } -#line 46792 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46625 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3550: -#line 18121 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3551: +#line 18160 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { if (lex_string_eq(&(yyvsp[0].lex_str), STRING_WITH_LEN("SQL"))) (yyval.num)= true; @@ -46805,167 +46638,167 @@ (yyval.num)= false; } } -#line 46809 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46642 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3551: -#line 18137 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3552: +#line 18176 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[0].string)->length() <= MAXGTRIDSIZE); if (unlikely(!(Lex->xid=(XID *)thd->alloc(sizeof(XID))))) MYSQL_YYABORT; Lex->xid->set(1L, (yyvsp[0].string)->ptr(), (yyvsp[0].string)->length(), 0, 0); } -#line 46820 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46653 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3552: -#line 18144 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3553: +#line 18183 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-2].string)->length() <= MAXGTRIDSIZE && (yyvsp[0].string)->length() <= MAXBQUALSIZE); if (unlikely(!(Lex->xid=(XID *)thd->alloc(sizeof(XID))))) MYSQL_YYABORT; Lex->xid->set(1L, (yyvsp[-2].string)->ptr(), (yyvsp[-2].string)->length(), (yyvsp[0].string)->ptr(), (yyvsp[0].string)->length()); } -#line 46831 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46664 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3553: -#line 18151 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3554: +#line 18190 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { MYSQL_YYABORT_UNLESS((yyvsp[-4].string)->length() <= MAXGTRIDSIZE && (yyvsp[-2].string)->length() <= MAXBQUALSIZE); if (unlikely(!(Lex->xid=(XID *)thd->alloc(sizeof(XID))))) MYSQL_YYABORT; Lex->xid->set((yyvsp[0].ulong_num), (yyvsp[-4].string)->ptr(), (yyvsp[-4].string)->length(), (yyvsp[-2].string)->ptr(), (yyvsp[-2].string)->length()); } -#line 46842 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ - break; - - case 3554: -#line 18160 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - {} -#line 46848 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46675 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3555: -#line 18161 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 18199 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 46854 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46681 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3556: -#line 18162 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 18200 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 46860 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46687 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3557: -#line 18166 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->xa_opt=XA_NONE; } -#line 46866 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 18201 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + {} +#line 46693 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3558: -#line 18167 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->xa_opt=XA_JOIN; } -#line 46872 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 18205 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->xa_opt=XA_NONE; } +#line 46699 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3559: -#line 18168 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->xa_opt=XA_RESUME; } -#line 46878 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 18206 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->xa_opt=XA_JOIN; } +#line 46705 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3560: -#line 18172 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->xa_opt=XA_NONE; } -#line 46884 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 18207 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->xa_opt=XA_RESUME; } +#line 46711 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3561: -#line 18173 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->xa_opt=XA_ONE_PHASE; } -#line 46890 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 18211 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->xa_opt=XA_NONE; } +#line 46717 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3562: -#line 18178 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ - { Lex->xa_opt=XA_NONE; } -#line 46896 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 18212 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->xa_opt=XA_ONE_PHASE; } +#line 46723 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; case 3563: -#line 18180 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ +#line 18217 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + { Lex->xa_opt=XA_NONE; } +#line 46729 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + break; + + case 3564: +#line 18219 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->xa_opt=XA_SUSPEND; } -#line 46902 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46735 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3565: -#line 18185 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3566: +#line 18224 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ {} -#line 46908 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46741 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3566: -#line 18186 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3567: +#line 18225 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { Lex->xa_opt=XA_FOR_MIGRATE; } -#line 46914 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46747 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3567: -#line 18191 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3568: +#line 18230 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_INSTALL_PLUGIN; lex->comment= (yyvsp[-2].ident_sys); lex->ident= (yyvsp[0].lex_str); } -#line 46925 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46758 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3568: -#line 18198 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3569: +#line 18237 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_INSTALL_PLUGIN; lex->comment= null_clex_str; lex->ident= (yyvsp[0].lex_str); } -#line 46936 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46769 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3569: -#line 18208 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3570: +#line 18247 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_UNINSTALL_PLUGIN; lex->comment= (yyvsp[0].ident_sys); } -#line 46946 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46779 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3570: -#line 18214 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3571: +#line 18253 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { LEX *lex= Lex; lex->sql_command= SQLCOM_UNINSTALL_PLUGIN; lex->comment= null_clex_str; lex->ident= (yyvsp[0].lex_str); } -#line 46957 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46790 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; - case 3571: -#line 18225 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ + case 3572: +#line 18264 "/home/buildbot/git/sql/sql_yacc_ora.yy" /* yacc.c:1646 */ { - YYERROR; - } -#line 46965 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ + YYERROR; + } +#line 46798 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ break; -#line 46969 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ +#line 46802 "/home/buildbot/git/mkdist/sql/sql_yacc_ora.cc" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires diff -Nru mariadb-10.3-10.3.17/sql/sql_yacc_ora.yy mariadb-10.3-10.3.20/sql/sql_yacc_ora.yy --- mariadb-10.3-10.3.17/sql/sql_yacc_ora.yy 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_yacc_ora.yy 2019-11-06 16:01:57.000000000 +0000 @@ -13,7 +13,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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ /* sql_yacc.yy */ @@ -2715,8 +2715,6 @@ { MYSQL_YYABORT_UNLESS(Lex->server_options.host.str == 0); Lex->server_options.host= $2; - my_casedn_str(system_charset_info, - (char*) Lex->server_options.host.str); } | DATABASE TEXT_STRING_sys { @@ -3734,6 +3732,7 @@ if (unlikely($$ == NULL)) MYSQL_YYABORT; } + ; simple_target_specification: ident_cli @@ -3790,6 +3789,7 @@ if (unlikely($$ == NULL)) MYSQL_YYABORT; } + ; condition_information_item_name: CLASS_ORIGIN_SYM @@ -5387,10 +5387,10 @@ part_func: - '(' remember_name part_func_expr remember_end ')' + '(' part_func_expr ')' { partition_info *part_info= Lex->part_info; - if (unlikely(part_info->set_part_expr(thd, $2 + 1, $3, $4, FALSE))) + if (unlikely(part_info->set_part_expr(thd, $2, FALSE))) MYSQL_YYABORT; part_info->num_columns= 1; part_info->column_list= FALSE; @@ -5398,9 +5398,9 @@ ; sub_part_func: - '(' remember_name part_func_expr remember_end ')' + '(' part_func_expr ')' { - if (unlikely(Lex->part_info->set_part_expr(thd, $2 + 1, $3, $4, TRUE))) + if (unlikely(Lex->part_info->set_part_expr(thd, $2, TRUE))) MYSQL_YYABORT; } ; @@ -6984,7 +6984,12 @@ Lex->charset=&my_charset_bin; $$.set(&type_handler_blob, $2); } - | BLOB_ORACLE_SYM opt_field_length opt_compressed + | BLOB_ORACLE_SYM field_length opt_compressed + { + Lex->charset=&my_charset_bin; + $$.set(&type_handler_blob, $2); + } + | BLOB_ORACLE_SYM opt_compressed { Lex->charset=&my_charset_bin; $$.set(&type_handler_long_blob); @@ -7128,15 +7133,18 @@ '(' LONG_NUM ')' { $$= $2.str; } | '(' ULONGLONG_NUM ')' { $$= $2.str; } | '(' DECIMAL_NUM ')' { $$= $2.str; } - | '(' NUM ')' { $$= $2.str; }; + | '(' NUM ')' { $$= $2.str; } + ; opt_field_length: /* empty */ { $$= (char*) 0; /* use default length */ } | field_length { $$= $1; } + ; opt_field_length_default_1: /* empty */ { $$= (char*) "1"; } | field_length { $$= $1; } + ; /* @@ -7159,10 +7167,12 @@ opt_field_length_default_sp_param_varchar: /* empty */ { $$.set("4000", "4000"); } | field_length { $$.set($1, NULL); } + ; opt_field_length_default_sp_param_char: /* empty */ { $$.set("2000", "2000"); } | field_length { $$.set($1, NULL); } + ; opt_precision: /* empty */ { $$.set(0, 0); } @@ -7287,6 +7297,11 @@ { Lex->last_field->versioning= $1; Lex->create_info.options|= HA_VERSIONED_TABLE; + if (Lex->alter_info.flags & ALTER_DROP_SYSTEM_VERSIONING) + { + my_yyabort_error((ER_VERS_NOT_VERSIONED, MYF(0), + Lex->create_last_non_select_table->table_name.str)); + } } ; @@ -7661,12 +7676,14 @@ opt_USING_key_algorithm: /* Empty*/ { $$= HA_KEY_ALG_UNDEF; } | USING btree_or_rtree { $$= $2; } + ; /* TYPE is a valid identifier, so it's handled differently than USING */ opt_key_algorithm_clause: /* Empty*/ { $$= HA_KEY_ALG_UNDEF; } | USING btree_or_rtree { $$= $2; } | TYPE_SYM btree_or_rtree { $$= $2; } + ; key_using_alg: USING btree_or_rtree @@ -7777,7 +7794,8 @@ text_string { Lex->last_field->interval_list.push_back($1, thd->mem_root); } | string_list ',' text_string - { Lex->last_field->interval_list.push_back($3, thd->mem_root); }; + { Lex->last_field->interval_list.push_back($3, thd->mem_root); } + ; /* ** Alter table @@ -7807,6 +7825,7 @@ MYSQL_YYABORT; Lex->select_lex.db= (Lex->select_lex.table_list.first)->db; Lex->create_last_non_select_table= Lex->last_table(); + Lex->mark_first_table_as_inserting(); } alter_commands { @@ -8430,6 +8449,7 @@ | DROP SYSTEM VERSIONING_SYM { Lex->alter_info.flags|= ALTER_DROP_SYSTEM_VERSIONING; + Lex->create_info.options&= ~HA_VERSIONED_TABLE; } | DROP PERIOD_SYM FOR_SYSTEM_TIME_SYM { @@ -8443,6 +8463,7 @@ | alter_algorithm_option | alter_lock_option alter_algorithm_option | alter_algorithm_option alter_lock_option + ; alter_algorithm_option: ALGORITHM_SYM opt_equal DEFAULT @@ -8501,6 +8522,7 @@ Lex->alter_info.requested_lock= Alter_info::ALTER_TABLE_LOCK_NONE; } + ; opt_restrict: @@ -8768,6 +8790,7 @@ {} | COLUMNS persistent_column_stat_spec INDEXES persistent_index_stat_spec {} + ; persistent_column_stat_spec: ALL {} @@ -9586,13 +9609,13 @@ opt_default_time_precision: /* empty */ { $$= NOT_FIXED_DEC; } | '(' ')' { $$= NOT_FIXED_DEC; } - | '(' real_ulong_num ')' { $$= $2; }; + | '(' real_ulong_num ')' { $$= $2; } ; opt_time_precision: /* empty */ { $$= 0; } | '(' ')' { $$= 0; } - | '(' real_ulong_num ')' { $$= $2; }; + | '(' real_ulong_num ')' { $$= $2; } ; optional_braces: @@ -10097,6 +10120,7 @@ else $$->len= 0; } + ; dyncall_create_list: dyncall_create_element @@ -11577,7 +11601,7 @@ opt_gorder_clause: /* empty */ - | ORDER_SYM BY gorder_list; + | ORDER_SYM BY gorder_list ; gorder_list: @@ -12594,6 +12618,7 @@ if (unlikely(thd->lex->win_ref == NULL)) MYSQL_YYABORT; } + ; opt_window_partition_clause: /* empty */ { } @@ -12902,6 +12927,7 @@ LEX *lex=Lex; lex->limit_rows_examined= $1; } + ; delete_limit_clause: /* empty */ @@ -12928,6 +12954,7 @@ int_num: opt_plus NUM { int error; $$= (int) my_strtoll10($2.str, (char**) 0, &error); } | '-' NUM { int error; $$= -(int) my_strtoll10($2.str, (char**) 0, &error); } + ; ulong_num: opt_plus NUM { int error; $$= (ulong) my_strtoll10($2.str, (char**) 0, &error); } @@ -12951,7 +12978,7 @@ | LONG_NUM { int error; $$= (longlong) my_strtoll10($1.str, (char**) 0, &error); } | '-' NUM { int error; $$= -(longlong) my_strtoll10($2.str, (char**) 0, &error); } | '-' LONG_NUM { int error; $$= -(longlong) my_strtoll10($2.str, (char**) 0, &error); } - + ; ulonglong_num: opt_plus NUM { int error; $$= (ulonglong) my_strtoll10($2.str, (char**) 0, &error); } @@ -12988,7 +13015,7 @@ ulong_num { $$= $1 != 0; } | TRUE_SYM { $$= 1; } | FALSE_SYM { $$= 0; } - + ; procedure_clause: PROCEDURE_SYM ident /* Procedure name */ @@ -13394,7 +13421,9 @@ Lex->current_select= &Lex->select_lex; } insert_field_spec opt_insert_update - {} + { + Lex->mark_first_table_as_inserting(); + } ; replace: @@ -13411,7 +13440,9 @@ Lex->current_select= &Lex->select_lex; } insert_field_spec - {} + { + Lex->mark_first_table_as_inserting(); + } ; insert_lock_option: @@ -13457,7 +13488,8 @@ lex->field_list.empty(); lex->many_values.empty(); lex->insert_list=0; - }; + } + ; insert_field_spec: insert_values {} @@ -14622,6 +14654,7 @@ optional_flush_tables_arguments: /* empty */ {$$= 0;} | AND_SYM DISABLE_SYM CHECKPOINT_SYM {$$= REFRESH_CHECKPOINT; } + ; reset: RESET_SYM @@ -14714,6 +14747,7 @@ /* Empty */ { $$= (int) KILL_HARD_BIT; } | HARD_SYM { $$= (int) KILL_HARD_BIT; } | SOFT_SYM { $$= 0; } + ; kill_option: /* empty */ { $$= (int) KILL_CONNECTION; } @@ -14797,7 +14831,9 @@ opt_xml_rows_identified_by opt_field_term opt_line_term opt_ignore_lines opt_field_or_var_spec opt_load_data_set_spec - {} + { + Lex->mark_first_table_as_inserting(); + } ; data_or_xml: @@ -14890,7 +14926,8 @@ opt_xml_rows_identified_by: /* empty */ { } | ROWS_SYM IDENTIFIED_SYM BY text_string - { Lex->exchange->line_term = $4; }; + { Lex->exchange->line_term = $4; } + ; opt_ignore_lines: /* empty */ @@ -17015,12 +17052,14 @@ ; opt_with_admin: - /* nothing */ { Lex->definer = 0; } - | WITH ADMIN_SYM user_or_role { Lex->definer = $3; } + /* nothing */ { Lex->definer = 0; } + | WITH ADMIN_SYM user_or_role { Lex->definer = $3; } + ; opt_with_admin_option: - /* nothing */ { Lex->with_admin_option= false; } - | WITH ADMIN_SYM OPTION { Lex->with_admin_option= true; } + /* nothing */ { Lex->with_admin_option= false; } + | WITH ADMIN_SYM OPTION { Lex->with_admin_option= true; } + ; role_list: grant_role @@ -17448,7 +17487,7 @@ { $$= TVL_UNKNOWN; } | RELEASE_SYM { $$= TVL_YES; } | NO_SYM RELEASE_SYM { $$= TVL_NO; } -; + ; commit: COMMIT_SYM opt_work opt_chain opt_release @@ -17515,7 +17554,7 @@ { $$= INTERSECT_TYPE; } | EXCEPT_SYM { $$= EXCEPT_TYPE; } - + ; union_clause: /* empty */ {} @@ -18221,10 +18260,11 @@ /* Avoid compiler warning from sql_yacc.cc where yyerrlab1 is not used */ keep_gcc_happy: - IMPOSSIBLE_ACTION - { - YYERROR; - } + IMPOSSIBLE_ACTION + { + YYERROR; + } + ; /** @} (end of group Parser) diff -Nru mariadb-10.3-10.3.17/sql/sql_yacc.yy mariadb-10.3-10.3.20/sql/sql_yacc.yy --- mariadb-10.3-10.3.17/sql/sql_yacc.yy 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sql_yacc.yy 2019-11-06 16:01:57.000000000 +0000 @@ -2901,24 +2901,26 @@ ; sf_tail_not_aggregate: - sf_tail - { - if (unlikely(Lex->sphead->m_flags & sp_head::HAS_AGGREGATE_INSTR)) + sf_tail { - my_yyabort_error((ER_NOT_AGGREGATE_FUNCTION, MYF(0))); + if (unlikely(Lex->sphead->m_flags & sp_head::HAS_AGGREGATE_INSTR)) + { + my_yyabort_error((ER_NOT_AGGREGATE_FUNCTION, MYF(0))); + } + Lex->sphead->set_chistics_agg_type(NOT_AGGREGATE); } - Lex->sphead->set_chistics_agg_type(NOT_AGGREGATE); - } + ; sf_tail_aggregate: - sf_tail - { - if (unlikely(!(Lex->sphead->m_flags & sp_head::HAS_AGGREGATE_INSTR))) + sf_tail { - my_yyabort_error((ER_INVALID_AGGREGATE_FUNCTION, MYF(0))); + if (unlikely(!(Lex->sphead->m_flags & sp_head::HAS_AGGREGATE_INSTR))) + { + my_yyabort_error((ER_INVALID_AGGREGATE_FUNCTION, MYF(0))); + } + Lex->sphead->set_chistics_agg_type(GROUP_AGGREGATE); } - Lex->sphead->set_chistics_agg_type(GROUP_AGGREGATE); - } + ; create_function_tail: sf_tail_not_aggregate { } @@ -3080,8 +3082,6 @@ { MYSQL_YYABORT_UNLESS(Lex->server_options.host.str == 0); Lex->server_options.host= $2; - my_casedn_str(system_charset_info, - (char*) Lex->server_options.host.str); } | DATABASE TEXT_STRING_sys { @@ -3986,6 +3986,7 @@ if (unlikely($$ == NULL)) MYSQL_YYABORT; } + ; simple_target_specification: ident_cli @@ -4042,6 +4043,7 @@ if (unlikely($$ == NULL)) MYSQL_YYABORT; } + ; condition_information_item_name: CLASS_ORIGIN_SYM @@ -5541,10 +5543,10 @@ part_func: - '(' remember_name part_func_expr remember_end ')' + '(' part_func_expr ')' { partition_info *part_info= Lex->part_info; - if (unlikely(part_info->set_part_expr(thd, $2 + 1, $3, $4, FALSE))) + if (unlikely(part_info->set_part_expr(thd, $2, FALSE))) MYSQL_YYABORT; part_info->num_columns= 1; part_info->column_list= FALSE; @@ -5552,9 +5554,9 @@ ; sub_part_func: - '(' remember_name part_func_expr remember_end ')' + '(' part_func_expr ')' { - if (unlikely(Lex->part_info->set_part_expr(thd, $2 + 1, $3, $4, TRUE))) + if (unlikely(Lex->part_info->set_part_expr(thd, $2, TRUE))) MYSQL_YYABORT; } ; @@ -7086,7 +7088,12 @@ Lex->charset=&my_charset_bin; $$.set(&type_handler_blob, $2); } - | BLOB_ORACLE_SYM opt_field_length opt_compressed + | BLOB_ORACLE_SYM field_length opt_compressed + { + Lex->charset=&my_charset_bin; + $$.set(&type_handler_blob, $2); + } + | BLOB_ORACLE_SYM opt_compressed { Lex->charset=&my_charset_bin; $$.set(&type_handler_long_blob); @@ -7230,15 +7237,18 @@ '(' LONG_NUM ')' { $$= $2.str; } | '(' ULONGLONG_NUM ')' { $$= $2.str; } | '(' DECIMAL_NUM ')' { $$= $2.str; } - | '(' NUM ')' { $$= $2.str; }; + | '(' NUM ')' { $$= $2.str; } + ; opt_field_length: /* empty */ { $$= (char*) 0; /* use default length */ } | field_length { $$= $1; } + ; opt_field_length_default_1: /* empty */ { $$= (char*) "1"; } | field_length { $$= $1; } + ; opt_precision: /* empty */ { $$.set(0, 0); } @@ -7363,6 +7373,11 @@ { Lex->last_field->versioning= $1; Lex->create_info.options|= HA_VERSIONED_TABLE; + if (Lex->alter_info.flags & ALTER_DROP_SYSTEM_VERSIONING) + { + my_yyabort_error((ER_VERS_NOT_VERSIONED, MYF(0), + Lex->create_last_non_select_table->table_name.str)); + } } ; @@ -7724,12 +7739,14 @@ opt_USING_key_algorithm: /* Empty*/ { $$= HA_KEY_ALG_UNDEF; } | USING btree_or_rtree { $$= $2; } + ; /* TYPE is a valid identifier, so it's handled differently than USING */ opt_key_algorithm_clause: /* Empty*/ { $$= HA_KEY_ALG_UNDEF; } | USING btree_or_rtree { $$= $2; } | TYPE_SYM btree_or_rtree { $$= $2; } + ; key_using_alg: USING btree_or_rtree @@ -7840,7 +7857,8 @@ text_string { Lex->last_field->interval_list.push_back($1, thd->mem_root); } | string_list ',' text_string - { Lex->last_field->interval_list.push_back($3, thd->mem_root); }; + { Lex->last_field->interval_list.push_back($3, thd->mem_root); } + ; /* ** Alter table @@ -7870,6 +7888,7 @@ MYSQL_YYABORT; Lex->select_lex.db= (Lex->select_lex.table_list.first)->db; Lex->create_last_non_select_table= Lex->last_table(); + Lex->mark_first_table_as_inserting(); } alter_commands { @@ -8493,6 +8512,7 @@ | DROP SYSTEM VERSIONING_SYM { Lex->alter_info.flags|= ALTER_DROP_SYSTEM_VERSIONING; + Lex->create_info.options&= ~HA_VERSIONED_TABLE; } | DROP PERIOD_SYM FOR_SYSTEM_TIME_SYM { @@ -8506,6 +8526,7 @@ | alter_algorithm_option | alter_lock_option alter_algorithm_option | alter_algorithm_option alter_lock_option + ; alter_algorithm_option: ALGORITHM_SYM opt_equal DEFAULT @@ -8564,6 +8585,7 @@ Lex->alter_info.requested_lock= Alter_info::ALTER_TABLE_LOCK_NONE; } + ; opt_restrict: @@ -8831,6 +8853,7 @@ {} | COLUMNS persistent_column_stat_spec INDEXES persistent_index_stat_spec {} + ; persistent_column_stat_spec: ALL {} @@ -9640,13 +9663,13 @@ opt_default_time_precision: /* empty */ { $$= NOT_FIXED_DEC; } | '(' ')' { $$= NOT_FIXED_DEC; } - | '(' real_ulong_num ')' { $$= $2; }; + | '(' real_ulong_num ')' { $$= $2; } ; opt_time_precision: /* empty */ { $$= 0; } | '(' ')' { $$= 0; } - | '(' real_ulong_num ')' { $$= $2; }; + | '(' real_ulong_num ')' { $$= $2; } ; optional_braces: @@ -10151,6 +10174,7 @@ else $$->len= 0; } + ; dyncall_create_list: dyncall_create_element @@ -11631,7 +11655,7 @@ opt_gorder_clause: /* empty */ - | ORDER_SYM BY gorder_list; + | ORDER_SYM BY gorder_list ; gorder_list: @@ -12649,6 +12673,7 @@ if (unlikely(thd->lex->win_ref == NULL)) MYSQL_YYABORT; } + ; opt_window_partition_clause: /* empty */ { } @@ -12957,6 +12982,7 @@ LEX *lex=Lex; lex->limit_rows_examined= $1; } + ; delete_limit_clause: /* empty */ @@ -12983,6 +13009,7 @@ int_num: opt_plus NUM { int error; $$= (int) my_strtoll10($2.str, (char**) 0, &error); } | '-' NUM { int error; $$= -(int) my_strtoll10($2.str, (char**) 0, &error); } + ; ulong_num: opt_plus NUM { int error; $$= (ulong) my_strtoll10($2.str, (char**) 0, &error); } @@ -13006,7 +13033,7 @@ | LONG_NUM { int error; $$= (longlong) my_strtoll10($1.str, (char**) 0, &error); } | '-' NUM { int error; $$= -(longlong) my_strtoll10($2.str, (char**) 0, &error); } | '-' LONG_NUM { int error; $$= -(longlong) my_strtoll10($2.str, (char**) 0, &error); } - + ; ulonglong_num: opt_plus NUM { int error; $$= (ulonglong) my_strtoll10($2.str, (char**) 0, &error); } @@ -13043,7 +13070,7 @@ ulong_num { $$= $1 != 0; } | TRUE_SYM { $$= 1; } | FALSE_SYM { $$= 0; } - + ; procedure_clause: PROCEDURE_SYM ident /* Procedure name */ @@ -13433,7 +13460,9 @@ Lex->current_select= &Lex->select_lex; } insert_field_spec opt_insert_update - {} + { + Lex->mark_first_table_as_inserting(); + } ; replace: @@ -13450,7 +13479,9 @@ Lex->current_select= &Lex->select_lex; } insert_field_spec - {} + { + Lex->mark_first_table_as_inserting(); + } ; insert_lock_option: @@ -13496,7 +13527,8 @@ lex->field_list.empty(); lex->many_values.empty(); lex->insert_list=0; - }; + } + ; insert_field_spec: insert_values {} @@ -14654,6 +14686,7 @@ optional_flush_tables_arguments: /* empty */ {$$= 0;} | AND_SYM DISABLE_SYM CHECKPOINT_SYM {$$= REFRESH_CHECKPOINT; } + ; reset: RESET_SYM @@ -14746,6 +14779,7 @@ /* Empty */ { $$= (int) KILL_HARD_BIT; } | HARD_SYM { $$= (int) KILL_HARD_BIT; } | SOFT_SYM { $$= 0; } + ; kill_option: /* empty */ { $$= (int) KILL_CONNECTION; } @@ -14830,7 +14864,9 @@ opt_xml_rows_identified_by opt_field_term opt_line_term opt_ignore_lines opt_field_or_var_spec opt_load_data_set_spec - {} + { + Lex->mark_first_table_as_inserting(); + } ; data_or_xml: @@ -14923,7 +14959,8 @@ opt_xml_rows_identified_by: /* empty */ { } | ROWS_SYM IDENTIFIED_SYM BY text_string - { Lex->exchange->line_term = $4; }; + { Lex->exchange->line_term = $4; } + ; opt_ignore_lines: /* empty */ @@ -16961,12 +16998,14 @@ ; opt_with_admin: - /* nothing */ { Lex->definer = 0; } - | WITH ADMIN_SYM user_or_role { Lex->definer = $3; } + /* nothing */ { Lex->definer = 0; } + | WITH ADMIN_SYM user_or_role { Lex->definer = $3; } + ; opt_with_admin_option: - /* nothing */ { Lex->with_admin_option= false; } - | WITH ADMIN_SYM OPTION { Lex->with_admin_option= true; } + /* nothing */ { Lex->with_admin_option= false; } + | WITH ADMIN_SYM OPTION { Lex->with_admin_option= true; } + ; role_list: grant_role @@ -17394,7 +17433,7 @@ { $$= TVL_UNKNOWN; } | RELEASE_SYM { $$= TVL_YES; } | NO_SYM RELEASE_SYM { $$= TVL_NO; } -; + ; commit: COMMIT_SYM opt_work opt_chain opt_release @@ -17461,7 +17500,7 @@ { $$= INTERSECT_TYPE; } | EXCEPT_SYM { $$= EXCEPT_TYPE; } - + ; union_clause: /* empty */ {} @@ -18127,10 +18166,11 @@ /* Avoid compiler warning from sql_yacc.cc where yyerrlab1 is not used */ keep_gcc_happy: - IMPOSSIBLE_ACTION - { - YYERROR; - } + IMPOSSIBLE_ACTION + { + YYERROR; + } + ; /** @} (end of group Parser) diff -Nru mariadb-10.3-10.3.17/sql/sys_vars.cc mariadb-10.3-10.3.20/sql/sys_vars.cc --- mariadb-10.3-10.3.17/sql/sys_vars.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sys_vars.cc 2019-11-06 16:01:57.000000000 +0000 @@ -3416,6 +3416,14 @@ 0 }; + +const char *sql_mode_string_representation(uint bit_number) +{ + DBUG_ASSERT(bit_number < array_elements(sql_mode_names)); + return sql_mode_names[bit_number]; +} + + export bool sql_mode_string_representation(THD *thd, sql_mode_t sql_mode, LEX_CSTRING *ls) { @@ -6184,14 +6192,13 @@ #endif //EMBEDDED_LIBRARY -#ifndef DBUG_OFF static Sys_var_uint Sys_in_subquery_conversion_threshold( "in_predicate_conversion_threshold", "The minimum number of scalar elements in the value list of " - "IN predicate that triggers its conversion to IN subquery", - SESSION_VAR(in_subquery_conversion_threshold), CMD_LINE(OPT_ARG), + "IN predicate that triggers its conversion to IN subquery. Set to " + "0 to disable the conversion.", + SESSION_VAR(in_subquery_conversion_threshold), CMD_LINE(REQUIRED_ARG), VALID_RANGE(0, UINT_MAX), DEFAULT(IN_SUBQUERY_CONVERSION_THRESHOLD), BLOCK_SIZE(1)); -#endif static Sys_var_enum Sys_secure_timestamp( "secure_timestamp", "Restricts direct setting of a session " diff -Nru mariadb-10.3-10.3.17/sql/sys_vars.ic mariadb-10.3-10.3.20/sql/sys_vars.ic --- mariadb-10.3-10.3.17/sql/sys_vars.ic 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/sys_vars.ic 2019-11-06 16:01:57.000000000 +0000 @@ -1,5 +1,5 @@ /* Copyright (c) 2002, 2011, Oracle and/or its affiliates. - Copyright (c) 2010, 2013, Monty Program Ab. + Copyright (c) 2010, 2019, MariaDB Corporation. 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 diff -Nru mariadb-10.3-10.3.17/sql/table.cc mariadb-10.3-10.3.20/sql/table.cc --- mariadb-10.3-10.3.17/sql/table.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/table.cc 2019-11-06 16:01:57.000000000 +0000 @@ -675,7 +675,11 @@ frmlen= read_length + sizeof(head); share->init_from_binary_frm_image(thd, false, buf, frmlen); - error_given= true; // init_from_binary_frm_image has already called my_error() + /* + Don't give any additional errors. If there would be a problem, + init_from_binary_frm_image would call my_error() itself. + */ + error_given= true; my_free(buf); goto err_not_open; @@ -684,6 +688,9 @@ mysql_file_close(file, MYF(MY_WME)); err_not_open: + /* Mark that table was created earlier and thus should have been logged */ + share->table_creation_was_logged= 1; + if (unlikely(share->error && !error_given)) { share->open_errno= my_errno; @@ -992,7 +999,7 @@ expression */ bool parse_vcol_defs(THD *thd, MEM_ROOT *mem_root, TABLE *table, - bool *error_reported) + bool *error_reported, vcol_init_mode mode) { CHARSET_INFO *save_character_set_client= thd->variables.character_set_client; CHARSET_INFO *save_collation= thd->variables.collation_connection; @@ -1076,6 +1083,12 @@ vcol= unpack_vcol_info_from_frm(thd, mem_root, table, &expr_str, &((*field_ptr)->vcol_info), error_reported); *(vfield_ptr++)= *field_ptr; + if (vcol && field_ptr[0]->check_vcol_sql_mode_dependency(thd, mode)) + { + DBUG_ASSERT(thd->is_error()); + *error_reported= true; + goto end; + } break; case VCOL_DEFAULT: vcol= unpack_vcol_info_from_frm(thd, mem_root, table, &expr_str, @@ -2832,6 +2845,8 @@ sql_copy); DBUG_RETURN(HA_ERR_GENERIC); } + /* Treat the table as normal table from binary logging point of view */ + table_creation_was_logged= 1; DBUG_RETURN(0); } @@ -3359,8 +3374,26 @@ if (share->table_check_constraints || share->field_check_constraints) outparam->check_constraints= check_constraint_ptr; - if (unlikely(parse_vcol_defs(thd, &outparam->mem_root, outparam, - &error_reported))) + vcol_init_mode mode= VCOL_INIT_DEPENDENCY_FAILURE_IS_WARNING; +#if MYSQL_VERSION_ID > 100500 + switch (thd->lex->sql_command) + { + case SQLCOM_CREATE_TABLE: + mode= VCOL_INIT_DEPENDENCY_FAILURE_IS_ERROR; + break; + case SQLCOM_ALTER_TABLE: + case SQLCOM_CREATE_INDEX: + case SQLCOM_DROP_INDEX: + if ((ha_open_flags & HA_OPEN_FOR_ALTER) == 0) + mode= VCOL_INIT_DEPENDENCY_FAILURE_IS_ERROR; + break; + default: + break; + } +#endif + + if (parse_vcol_defs(thd, &outparam->mem_root, outparam, + &error_reported, mode)) { error= OPEN_FRM_CORRUPTED; goto err; @@ -6486,15 +6519,16 @@ } } - if (need_signal) - file->column_bitmaps_signal(); - if (s->versioned) { bitmap_set_bit(read_set, s->vers_start_field()->field_index); bitmap_set_bit(read_set, s->vers_end_field()->field_index); bitmap_set_bit(write_set, s->vers_end_field()->field_index); + need_signal= true; } + + if (need_signal) + file->column_bitmaps_signal(); } @@ -6507,7 +6541,7 @@ updated columns to be read. If this is no the case, we do like in the delete case and mark - if neeed, either the primary key column or all columns to be read. + if needed, either the primary key column or all columns to be read. (see mark_columns_needed_for_delete() for details) If the engine has HA_REQUIRES_KEY_COLUMNS_FOR_DELETE, we will @@ -6571,14 +6605,18 @@ need_signal= true; } } - /* - For System Versioning we have to read all columns since we will store - a copy of previous row with modified Sys_end column back to a table. - */ if (s->versioned) { - // We will copy old columns to a new row. - use_all_columns(); + /* + For System Versioning we have to read all columns since we store + a copy of previous row with modified row_end back to a table. + + Without write_set versioning.rpl,row is unstable until MDEV-16370 is + applied. + */ + bitmap_union(read_set, &s->all_set); + bitmap_union(write_set, &s->all_set); + need_signal= true; } if (check_constraints) { @@ -7908,7 +7946,7 @@ ignore_errors == 0. If set then an error was generated. */ -int TABLE::update_default_fields(bool update_command, bool ignore_errors) +int TABLE::update_default_fields(bool ignore_errors) { Query_arena backup_arena; Field **field_ptr; @@ -7928,14 +7966,9 @@ */ if (!field->has_explicit_value()) { - if (!update_command) - { - if (field->default_value && - (field->default_value->flags || field->flags & BLOB_FLAG)) - res|= (field->default_value->expr->save_in_field(field, 0) < 0); - } - else - res|= field->evaluate_update_default_function(); + if (field->default_value && + (field->default_value->flags || field->flags & BLOB_FLAG)) + res|= (field->default_value->expr->save_in_field(field, 0) < 0); if (!ignore_errors && res) { my_error(ER_CALCULATING_DEFAULT_VALUE, MYF(0), field->field_name.str); @@ -7949,6 +7982,21 @@ } +void TABLE::evaluate_update_default_function() +{ + DBUG_ENTER("TABLE::evaluate_update_default_function"); + + if (s->has_update_default_function) + for (Field **field_ptr= default_field; *field_ptr ; field_ptr++) + { + Field *field= (*field_ptr); + if (!field->has_explicit_value() && field->has_update_default_function()) + field->set_time(); + } + DBUG_VOID_RETURN; +} + + void TABLE::vers_update_fields() { bitmap_set_bit(write_set, vers_start_field()->field_index); @@ -7957,7 +8005,10 @@ if (versioned(VERS_TIMESTAMP)) { if (!vers_write) + { + file->column_bitmaps_signal(); return; + } if (vers_start_field()->store_timestamp(in_use->query_start(), in_use->query_start_sec_part())) DBUG_ASSERT(0); @@ -7965,11 +8016,15 @@ else { if (!vers_write) + { + file->column_bitmaps_signal(); return; + } } vers_end_field()->set_max(); bitmap_set_bit(read_set, vers_end_field()->field_index); + file->column_bitmaps_signal(); } @@ -9114,7 +9169,7 @@ case SYSTEM_TIME_ALL: return true; case SYSTEM_TIME_BEFORE: - DBUG_ASSERT(0); + break; case SYSTEM_TIME_AS_OF: return start.eq(conds.start); case SYSTEM_TIME_FROM_TO: diff -Nru mariadb-10.3-10.3.17/sql/table.h mariadb-10.3-10.3.20/sql/table.h --- mariadb-10.3-10.3.17/sql/table.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/table.h 2019-11-06 16:01:57.000000000 +0000 @@ -326,6 +326,20 @@ }; enum release_type { RELEASE_NORMAL, RELEASE_WAIT_FOR_DROP }; + +enum vcol_init_mode +{ + VCOL_INIT_DEPENDENCY_FAILURE_IS_WARNING= 1, + VCOL_INIT_DEPENDENCY_FAILURE_IS_ERROR= 2 + /* + There may be new flags here. + e.g. to automatically remove sql_mode dependency: + GENERATED ALWAYS AS (char_col) -> + GENERATED ALWAYS AS (RTRIM(char_col)) + */ +}; + + enum enum_vcol_update_mode { VCOL_UPDATE_FOR_READ= 0, @@ -718,16 +732,20 @@ bool null_field_first; bool system; /* Set if system table (one record) */ bool not_usable_by_query_cache; + /* + This is used by log tables, for tables that have their own internal + binary logging or for tables that doesn't support statement or row logging + */ bool no_replicate; bool crashed; bool is_view; bool can_cmp_whole_record; + /* This is set for temporary tables where CREATE was binary logged */ bool table_creation_was_logged; bool non_determinstic_insert; bool vcols_need_refixing; bool has_update_default_function; bool can_do_row_logging; /* 1 if table supports RBR */ - ulong table_map_id; /* for row-based replication */ /* @@ -1475,7 +1493,8 @@ ulong actual_key_flags(KEY *keyinfo); int update_virtual_field(Field *vf); int update_virtual_fields(handler *h, enum_vcol_update_mode update_mode); - int update_default_fields(bool update, bool ignore_errors); + int update_default_fields(bool ignore_errors); + void evaluate_update_default_function(); void reset_default_fields(); inline ha_rows stat_records() { return used_stat_records; } @@ -1970,7 +1989,8 @@ prelocking_types prelocking_type, TABLE_LIST *belong_to_view_arg, uint8 trg_event_map_arg, - TABLE_LIST ***last_ptr) + TABLE_LIST ***last_ptr, + my_bool insert_data) { init_one_table(db_arg, table_name_arg, alias_arg, lock_type_arg); @@ -1985,6 +2005,7 @@ **last_ptr= this; prev_global= *last_ptr; *last_ptr= &next_global; + for_insert_data= insert_data; } @@ -2396,6 +2417,8 @@ /* System Versioning */ vers_select_conds_t vers_conditions; + my_bool for_insert_data; + /** @brief Find the bottom in the chain of embedded table VIEWs. @@ -2920,7 +2943,7 @@ bool fix_session_vcol_expr_for_read(THD *thd, Field *field, Virtual_column_info *vcol); bool parse_vcol_defs(THD *thd, MEM_ROOT *mem_root, TABLE *table, - bool *error_reported); + bool *error_reported, vcol_init_mode expr); TABLE_SHARE *alloc_table_share(const char *db, const char *table_name, const char *key, uint key_length); void init_tmp_table_share(THD *thd, TABLE_SHARE *share, const char *key, diff -Nru mariadb-10.3-10.3.17/sql/threadpool_win.cc mariadb-10.3-10.3.20/sql/threadpool_win.cc --- mariadb-10.3-10.3.17/sql/threadpool_win.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/threadpool_win.cc 2019-11-06 16:01:57.000000000 +0000 @@ -305,6 +305,7 @@ if (timer) { + SetThreadpoolTimer(timer, 0, 0, 0); WaitForThreadpoolTimerCallbacks(timer, TRUE); CloseThreadpoolTimer(timer); } diff -Nru mariadb-10.3-10.3.17/sql/tztime.cc mariadb-10.3-10.3.20/sql/tztime.cc --- mariadb-10.3-10.3.17/sql/tztime.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/tztime.cc 2019-11-06 16:01:57.000000000 +0000 @@ -147,6 +147,7 @@ static my_bool prepare_tz_info(TIME_ZONE_INFO *sp, MEM_ROOT *storage); +my_bool opt_leap, opt_verbose, opt_skip_write_binlog; #if defined(TZINFO2SQL) || defined(TESTTIME) @@ -2428,6 +2429,14 @@ We are assuming that there are only one list of leap seconds For all timezones. */ + if (!opt_skip_write_binlog) + printf("\\d |\n" + "IF (select count(*) from information_schema.global_variables where\n" + "variable_name='wsrep_on') = 1 THEN\n" + "ALTER TABLE time_zone_leap_second ENGINE=InnoDB;\n" + "END IF|\n" + "\\d ;\n"); + printf("TRUNCATE TABLE time_zone_leap_second;\n"); if (sp->leapcnt) @@ -2440,6 +2449,14 @@ printf(";\n"); } + if (!opt_skip_write_binlog) + printf("\\d |\n" + "IF (select count(*) from information_schema.global_variables where\n" + "variable_name='wsrep_on') = 1 THEN\n" + "ALTER TABLE time_zone_leap_second ENGINE=MyISAM;\n" + "END IF|\n" + "\\d ;\n"); + printf("ALTER TABLE time_zone_leap_second ORDER BY Transition_time;\n"); } @@ -2597,8 +2614,6 @@ } -my_bool opt_leap, opt_verbose; - static const char *load_default_groups[]= { "mysql_tzinfo_to_sql", 0}; @@ -2619,6 +2634,8 @@ &opt_verbose, &opt_verbose, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, {"version", 'V', "Output version information and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, + {"skip-write-binlog", 'S', "Do not replicate changes to time zone tables to other nodes in a Galera cluster", + &opt_skip_write_binlog,&opt_skip_write_binlog, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0} }; @@ -2687,11 +2704,14 @@ return 1; } - // Replicate MyISAM DDL for this session, cf. lp:1161432 - // timezone info unfixable in XtraDB Cluster - printf("set @prep=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET GLOBAL wsrep_replicate_myisam=?', 'do ?');\n" - "prepare set_wsrep_myisam from @prep;\n" - "set @toggle=1; execute set_wsrep_myisam using @toggle;\n"); + if (opt_skip_write_binlog) + /* If skip_write_binlog is set and wsrep is compiled in we disable + sql_log_bin and wsrep_on to avoid Galera replicating below + truncate table clauses. This will allow user to set different + time zones to nodes in Galera cluster. */ + printf("set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on'), 'SET SESSION SQL_LOG_BIN=?, WSREP_ON=OFF;', 'do ?');\n" + "prepare set_wsrep_write_binlog from @prep1;\n" + "set @toggle=0; execute set_wsrep_write_binlog using @toggle;\n"); if (argc == 1 && !opt_leap) { @@ -2699,6 +2719,21 @@ root_name_end= strmake_buf(fullname, argv[0]); + if(!opt_skip_write_binlog) + { + // Alter time zone tables to InnoDB if wsrep_on is enabled + // to allow changes to them to replicate with Galera + printf("\\d |\n" + "IF (select count(*) from information_schema.global_variables where\n" + "variable_name='wsrep_on') = 1 THEN\n" + "ALTER TABLE time_zone ENGINE=InnoDB;\n" + "ALTER TABLE time_zone_name ENGINE=InnoDB;\n" + "ALTER TABLE time_zone_transition ENGINE=InnoDB;\n" + "ALTER TABLE time_zone_transition_type ENGINE=InnoDB;\n" + "END IF|\n" + "\\d ;\n"); + } + printf("TRUNCATE TABLE time_zone;\n"); printf("TRUNCATE TABLE time_zone_name;\n"); printf("TRUNCATE TABLE time_zone_transition;\n"); @@ -2740,8 +2775,19 @@ free_root(&tz_storage, MYF(0)); } - // Reset wsrep_replicate_myisam. lp:1161432 - printf("set @toggle=0; execute set_wsrep_myisam using @toggle;\n"); + if(!opt_skip_write_binlog) + { + // Fall back to MyISAM + printf("\\d |\n" + "IF (select count(*) from information_schema.global_variables where\n" + "variable_name='wsrep_on') = 1 THEN\n" + "ALTER TABLE time_zone ENGINE=MyISAM;\n" + "ALTER TABLE time_zone_name ENGINE=MyISAM;\n" + "ALTER TABLE time_zone_transition ENGINE=MyISAM;\n" + "ALTER TABLE time_zone_transition_type ENGINE=MyISAM;\n" + "END IF|\n" + "\\d ;\n"); + } free_defaults(default_argv); my_end(0); diff -Nru mariadb-10.3-10.3.17/sql/wsrep_dummy.cc mariadb-10.3-10.3.20/sql/wsrep_dummy.cc --- mariadb-10.3-10.3.17/sql/wsrep_dummy.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/wsrep_dummy.cc 2019-11-06 16:01:57.000000000 +0000 @@ -110,8 +110,8 @@ my_bool wsrep_thd_is_wsrep(THD *) { return 0; } -char *wsrep_thd_query(THD *) -{ return 0; } +const char *wsrep_thd_query(THD *) +{ return "NULL"; } enum wsrep_query_state wsrep_thd_query_state(THD *) { return QUERY_IDLE; } diff -Nru mariadb-10.3-10.3.17/sql/wsrep_mysqld.cc mariadb-10.3-10.3.20/sql/wsrep_mysqld.cc --- mariadb-10.3-10.3.17/sql/wsrep_mysqld.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/wsrep_mysqld.cc 2019-11-06 16:01:57.000000000 +0000 @@ -38,7 +38,6 @@ #include #include "log_event.h" #include -#include "sql_plugin.h" /* wsrep_plugins_pre_init() */ wsrep_t *wsrep = NULL; /* @@ -183,7 +182,19 @@ { { &key_file_wsrep_gra_log, "wsrep_gra_log", 0} }; -#endif + +PSI_thread_key key_wsrep_sst_joiner, key_wsrep_sst_donor, + key_wsrep_rollbacker, key_wsrep_applier; + +static PSI_thread_info wsrep_threads[]= +{ + {&key_wsrep_sst_joiner, "wsrep_sst_joiner_thread", PSI_FLAG_GLOBAL}, + {&key_wsrep_sst_donor, "wsrep_sst_donor_thread", PSI_FLAG_GLOBAL}, + {&key_wsrep_rollbacker, "wsrep_rollbacker_thread", PSI_FLAG_GLOBAL}, + {&key_wsrep_applier, "wsrep_applier_thread", PSI_FLAG_GLOBAL} +}; + +#endif /* HAVE_PSI_INTERFACE */ my_bool wsrep_inited = 0; // initialized ? @@ -799,6 +810,7 @@ mysql_mutex_register("sql", wsrep_mutexes, array_elements(wsrep_mutexes)); mysql_cond_register("sql", wsrep_conds, array_elements(wsrep_conds)); mysql_file_register("sql", wsrep_files, array_elements(wsrep_files)); + mysql_thread_register("sql", wsrep_threads, array_elements(wsrep_threads)); #endif mysql_mutex_init(key_LOCK_wsrep_ready, &LOCK_wsrep_ready, MY_MUTEX_INIT_FAST); @@ -814,6 +826,7 @@ mysql_mutex_init(key_LOCK_wsrep_slave_threads, &LOCK_wsrep_slave_threads, MY_MUTEX_INIT_FAST); mysql_mutex_init(key_LOCK_wsrep_desync, &LOCK_wsrep_desync, MY_MUTEX_INIT_FAST); mysql_mutex_init(key_LOCK_wsrep_config_state, &LOCK_wsrep_config_state, MY_MUTEX_INIT_FAST); + DBUG_VOID_RETURN; } @@ -1583,25 +1596,6 @@ } } -static const char* wsrep_get_query_or_msg(const THD* thd) -{ - switch(thd->lex->sql_command) - { - case SQLCOM_CREATE_USER: - return "CREATE USER"; - case SQLCOM_GRANT: - return "GRANT"; - case SQLCOM_REVOKE: - return "REVOKE"; - case SQLCOM_SET_OPTION: - if (thd->lex->definer) - return "SET PASSWORD"; - /* fallthrough */ - default: - return thd->query(); - } -} - /* returns: 0: statement was replicated as TOI @@ -1625,7 +1619,7 @@ } WSREP_DEBUG("TO BEGIN: %lld, %d : %s", (long long)wsrep_thd_trx_seqno(thd), - thd->wsrep_exec_mode, wsrep_get_query_or_msg(thd)); + thd->wsrep_exec_mode, wsrep_thd_query(thd)); switch (thd->lex->sql_command) { @@ -1705,13 +1699,13 @@ wsrep_to_isolation--; WSREP_DEBUG("TO END: %lld, %d: %s", (long long)wsrep_thd_trx_seqno(thd), - thd->wsrep_exec_mode, wsrep_get_query_or_msg(thd)); + thd->wsrep_exec_mode, wsrep_thd_query(thd)); wsrep_set_SE_checkpoint(thd->wsrep_trx_meta.gtid.uuid, thd->wsrep_trx_meta.gtid.seqno); WSREP_DEBUG("TO END: %lld, update seqno", (long long)wsrep_thd_trx_seqno(thd)); - + if (WSREP_OK == (ret = wsrep->to_execute_end(wsrep, thd->thread_id))) { WSREP_DEBUG("TO END: %lld", (long long)wsrep_thd_trx_seqno(thd)); } @@ -2078,7 +2072,7 @@ need to know the start of the stack so that we could check for stack overruns. */ - DBUG_PRINT("wsrep", ("handle_one_connection called by thread %lld\n", + DBUG_PRINT("wsrep", ("handle_one_connection called by thread %lld", (long long)thd->thread_id)); /* now that we've called my_thread_init(), it is safe to call DBUG_* */ @@ -2650,9 +2644,28 @@ } -char *wsrep_thd_query(THD *thd) +const char *wsrep_thd_query(THD *thd) { - return (thd) ? thd->query() : NULL; + if (thd) + { + switch(thd->lex->sql_command) + { + case SQLCOM_CREATE_USER: + return "CREATE USER"; + case SQLCOM_GRANT: + return "GRANT"; + case SQLCOM_REVOKE: + return "REVOKE"; + case SQLCOM_SET_OPTION: + if (thd->lex->definer) + return "SET PASSWORD"; + /* fallthrough */ + default: + if (thd->query()) + return thd->query(); + } + } + return "NULL"; } diff -Nru mariadb-10.3-10.3.17/sql/wsrep_mysqld.h mariadb-10.3-10.3.20/sql/wsrep_mysqld.h --- mariadb-10.3-10.3.17/sql/wsrep_mysqld.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/wsrep_mysqld.h 2019-11-06 16:01:57.000000000 +0000 @@ -286,7 +286,14 @@ extern PSI_mutex_key key_LOCK_wsrep_desync; extern PSI_file_key key_file_wsrep_gra_log; + +extern PSI_thread_key key_wsrep_sst_joiner; +extern PSI_thread_key key_wsrep_sst_donor; +extern PSI_thread_key key_wsrep_rollbacker; +extern PSI_thread_key key_wsrep_applier; #endif /* HAVE_PSI_INTERFACE */ + + struct TABLE_LIST; class Alter_info; int wsrep_to_isolation_begin(THD *thd, const char *db_, const char *table_, diff -Nru mariadb-10.3-10.3.17/sql/wsrep_sst.cc mariadb-10.3-10.3.20/sql/wsrep_sst.cc --- mariadb-10.3-10.3.17/sql/wsrep_sst.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/wsrep_sst.cc 2019-11-06 16:01:57.000000000 +0000 @@ -16,6 +16,7 @@ #include "mariadb.h" #include "wsrep_sst.h" #include +#include #include #include #include @@ -429,7 +430,31 @@ } /* - Generate opt_binlog_opt_val for sst_donate_other(), sst_prepare_other(). + Generate "name 'value'" string. +*/ +static char* generate_name_value(const char* name, const char* value) +{ + size_t name_len= strlen(name); + size_t value_len= strlen(value); + char* buf= + (char*) my_malloc((name_len + value_len + 5) * sizeof(char), MYF(0)); + if (buf) + { + char* ref= buf; + *ref++ = ' '; + memcpy(ref, name, name_len * sizeof(char)); + ref += name_len; + *ref++ = ' '; + *ref++ = '\''; + memcpy(ref, value, value_len * sizeof(char)); + ref += value_len; + *ref++ = '\''; + *ref = 0; + } + return buf; +} +/* + Generate binlog option string for sst_donate_other(), sst_prepare_other(). Returns zero on success, negative error code otherwise. @@ -445,7 +470,9 @@ { assert(opt_bin_logname); *ret= strcmp(opt_bin_logname, "0") ? - my_strdup(opt_bin_logname, MYF(0)) : my_strdup("", MYF(0)); + generate_name_value(WSREP_SST_OPT_BINLOG, + opt_bin_logname) : + my_strdup("", MYF(0)); } else { @@ -461,7 +488,9 @@ *ret= NULL; if (opt_binlog_index_name) { *ret= strcmp(opt_binlog_index_name, "0") ? - my_strdup(opt_binlog_index_name, MYF(0)) : my_strdup("", MYF(0)); + generate_name_value(WSREP_SST_OPT_BINLOG_INDEX, + opt_binlog_index_name) : + my_strdup("", MYF(0)); } else { @@ -642,23 +671,320 @@ return -env.error(); } +static size_t estimate_cmd_len (bool* extra_args) +{ + /* + The length of the area reserved for the control parameters + of the SST script (excluding the copying of the original + mysqld arguments): + */ + size_t cmd_len= 4096; + bool extra= false; + /* + If mysqld was started with arguments, add them all: + */ + if (orig_argc > 1) + { + for (int i = 1; i < orig_argc; i++) + { + const char* arg= orig_argv[i]; + size_t n= strlen(arg); + if (n == 0) continue; + cmd_len += n; + bool quotation= false; + char c; + while ((c = *arg++) != 0) + { + /* A whitespace or a single quote requires double quotation marks: */ + if (isspace(c) || c == '\'') + { + quotation= true; + } + /* + If the equals symbol is encountered, then we need to separately + process the right side: + */ + else if (c == '=') + { + /* Perhaps we need to quote the left part of the argument: */ + if (quotation) + { + cmd_len += 2; + /* + Reset the quotation flag, since now the status for + the right side of the expression will be saved here: + */ + quotation= false; + } + while ((c = *arg++) != 0) + { + /* + A whitespace or a single quote requires double + quotation marks: + */ + if (isspace(c) || c == '\'') + { + quotation= true; + } + /* + Double quotation mark or backslash symbol requires backslash + prefixing: + */ +#ifdef __WIN__ + else if (c == '"' || c == '\\') +#else + /* + The dollar symbol is used to substitute a variable, therefore + it also requires escaping: + */ + else if (c == '"' || c == '\\' || c == '$') +#endif + { + cmd_len++; + } + } + break; + } + /* + Double quotation mark or backslash symbol requires backslash + prefixing: + */ +#ifdef __WIN__ + else if (c == '"' || c == '\\') +#else + /* + The dollar symbol is used to substitute a variable, therefore + it also requires escaping: + */ + else if (c == '"' || c == '\\' || c == '$') +#endif + { + cmd_len++; + } + } + /* Perhaps we need to quote the entire argument or its right part: */ + if (quotation) + { + cmd_len += 2; + } + } + extra = true; + cmd_len += strlen(WSREP_SST_OPT_MYSQLD); + /* + Add the separating spaces between arguments, + and one additional space before "--mysqld-args": + */ + cmd_len += orig_argc; + } + *extra_args= extra; + return cmd_len; +} + +static void copy_orig_argv (char* cmd_str) +{ + /* + If mysqld was started with arguments, copy them all: + */ + if (orig_argc > 1) + { + size_t n = strlen(WSREP_SST_OPT_MYSQLD); + *cmd_str++ = ' '; + memcpy(cmd_str, WSREP_SST_OPT_MYSQLD, n * sizeof(char)); + cmd_str += n; + for (int i = 1; i < orig_argc; i++) + { + char* arg= orig_argv[i]; + n = strlen(arg); + if (n == 0) continue; + *cmd_str++ = ' '; + bool quotation= false; + bool plain= true; + char *arg_scan= arg; + char c; + while ((c = *arg_scan++) != 0) + { + /* A whitespace or a single quote requires double quotation marks: */ + if (isspace(c) || c == '\'') + { + quotation= true; + } + /* + If the equals symbol is encountered, then we need to separately + process the right side: + */ + else if (c == '=') + { + /* Calculate length of the Left part of the argument: */ + size_t m = (size_t) (arg_scan - arg) - 1; + if (m) + { + /* Perhaps we need to quote the left part of the argument: */ + if (quotation) + { + *cmd_str++ = '"'; + } + /* + If there were special characters inside, then we can use + the fast memcpy function: + */ + if (plain) + { + memcpy(cmd_str, arg, m * sizeof(char)); + cmd_str += m; + /* Left part of the argument has already been processed: */ + n -= m; + arg += m; + } + /* Otherwise we need to prefix individual characters: */ + else + { + n -= m; + while (m) + { + c = *arg++; +#ifdef __WIN__ + if (c == '"' || c == '\\') +#else + if (c == '"' || c == '\\' || c == '$') +#endif + { + *cmd_str++ = '\\'; + } + *cmd_str++ = c; + m--; + } + /* + Reset the plain string flag, since now the status for + the right side of the expression will be saved here: + */ + plain= true; + } + /* Perhaps we need to quote the left part of the argument: */ + if (quotation) + { + *cmd_str++ = '"'; + /* + Reset the quotation flag, since now the status for + the right side of the expression will be saved here: + */ + quotation= false; + } + } + /* Copy equals symbol: */ + *cmd_str++ = '='; + arg++; + n--; + /* Let's deal with the left side of the expression: */ + while ((c = *arg_scan++) != 0) + { + /* + A whitespace or a single quote requires double + quotation marks: + */ + if (isspace(c) || c == '\'') + { + quotation= true; + } + /* + Double quotation mark or backslash symbol requires backslash + prefixing: + */ +#ifdef __WIN__ + else if (c == '"' || c == '\\') +#else + /* + The dollar symbol is used to substitute a variable, therefore + it also requires escaping: + */ + else if (c == '"' || c == '\\' || c == '$') +#endif + { + plain= false; + } + } + break; + } + /* + Double quotation mark or backslash symbol requires backslash + prefixing: + */ +#ifdef __WIN__ + else if (c == '"' || c == '\\') +#else + /* + The dollar symbol is used to substitute a variable, therefore + it also requires escaping: + */ + else if (c == '"' || c == '\\' || c == '$') +#endif + { + plain= false; + } + } + if (n) + { + /* Perhaps we need to quote the entire argument or its right part: */ + if (quotation) + { + *cmd_str++ = '"'; + } + /* + If there were no special characters inside, then we can use + the fast memcpy function: + */ + if (plain) + { + memcpy(cmd_str, arg, n * sizeof(char)); + cmd_str += n; + } + /* Otherwise we need to prefix individual characters: */ + else + { + while ((c = *arg++) != 0) + { +#ifdef __WIN__ + if (c == '"' || c == '\\') +#else + if (c == '"' || c == '\\' || c == '$') +#endif + { + *cmd_str++ = '\\'; + } + *cmd_str++ = c; + } + } + /* Perhaps we need to quote the entire argument or its right part: */ + if (quotation) + { + *cmd_str++ = '"'; + } + } + } + /* + Add a terminating null character (not counted in the length, + since we've overwritten the original null character which + was previously added by snprintf: + */ + *cmd_str = 0; + } +} + static ssize_t sst_prepare_other (const char* method, const char* sst_auth, const char* addr_in, const char** addr_out) { - int const cmd_len= 4096; + bool extra_args; + size_t const cmd_len= estimate_cmd_len(&extra_args); wsp::string cmd_str(cmd_len); if (!cmd_str()) { - WSREP_ERROR("sst_prepare_other(): could not allocate cmd buffer of %d bytes", + WSREP_ERROR("sst_prepare_other(): could not allocate cmd buffer of %zd bytes", cmd_len); return -ENOMEM; } - const char* binlog_opt= ""; - const char* binlog_index_opt= ""; char* binlog_opt_val= NULL; char* binlog_index_opt_val= NULL; @@ -676,9 +1002,6 @@ ret); } - if (strlen(binlog_opt_val)) binlog_opt= WSREP_SST_OPT_BINLOG; - if (strlen(binlog_index_opt_val)) binlog_index_opt= WSREP_SST_OPT_BINLOG_INDEX; - make_wsrep_defaults_file(); ret= snprintf (cmd_str(), cmd_len, @@ -686,23 +1009,26 @@ WSREP_SST_OPT_ROLE " 'joiner' " WSREP_SST_OPT_ADDR " '%s' " WSREP_SST_OPT_DATA " '%s' " - " %s " + "%s" WSREP_SST_OPT_PARENT " '%d'" - " %s '%s'" - " %s '%s'", + "%s" + "%s", method, addr_in, mysql_real_data_home, wsrep_defaults_file, - (int)getpid(), binlog_opt, binlog_opt_val, - binlog_index_opt, binlog_index_opt_val); + (int)getpid(), + binlog_opt_val, binlog_index_opt_val); my_free(binlog_opt_val); my_free(binlog_index_opt_val); - if (ret < 0 || ret >= cmd_len) + if (ret < 0 || size_t(ret) >= cmd_len) { WSREP_ERROR("sst_prepare_other(): snprintf() failed: %d", ret); return (ret < 0 ? ret : -EMSGSIZE); } + if (extra_args) + copy_orig_argv(cmd_str() + ret); + wsp::env env(NULL); if (env.error()) { @@ -729,10 +1055,10 @@ pthread_t tmp; sst_thread_arg arg(cmd_str(), env()); mysql_mutex_lock (&arg.lock); - ret = pthread_create (&tmp, NULL, sst_joiner_thread, &arg); + ret = mysql_thread_create (key_wsrep_sst_joiner, &tmp, NULL, sst_joiner_thread, &arg); if (ret) { - WSREP_ERROR("sst_prepare_other(): pthread_create() failed: %d (%s)", + WSREP_ERROR("sst_prepare_other(): mysql_thread_create() failed: %d (%s)", ret, strerror(ret)); return -ret; } @@ -975,13 +1301,14 @@ } memcpy(host, address.get_address(), address.get_address_len()); int port= address.get_port(); - int const cmd_len= 4096; - wsp::string cmd_str(cmd_len); + bool extra_args; + size_t const cmd_len= estimate_cmd_len(&extra_args); + wsp::string cmd_str(cmd_len); if (!cmd_str()) { WSREP_ERROR("sst_donate_mysqldump(): " - "could not allocate cmd buffer of %d bytes", cmd_len); + "could not allocate cmd buffer of %zd bytes", cmd_len); return -ENOMEM; } @@ -995,7 +1322,7 @@ WSREP_SST_OPT_PORT " '%d' " WSREP_SST_OPT_LPORT " '%u' " WSREP_SST_OPT_SOCKET " '%s' " - " %s " + "%s" WSREP_SST_OPT_GTID " '%s:%lld' " WSREP_SST_OPT_GTID_DOMAIN_ID " '%d'" "%s", @@ -1004,12 +1331,15 @@ (long long)seqno, wsrep_gtid_domain_id, bypass ? " " WSREP_SST_OPT_BYPASS : ""); - if (ret < 0 || ret >= cmd_len) + if (ret < 0 || size_t(ret) >= cmd_len) { WSREP_ERROR("sst_donate_mysqldump(): snprintf() failed: %d", ret); return (ret < 0 ? ret : -EMSGSIZE); } + if (extra_args) + copy_orig_argv(cmd_str() + ret); + WSREP_DEBUG("Running: '%s'", cmd_str()); ret= sst_run_shell (cmd_str(), env, 3); @@ -1329,17 +1659,17 @@ bool bypass, char** env) // carries auth info { - int const cmd_len= 4096; - wsp::string cmd_str(cmd_len); + bool extra_args; + size_t const cmd_len= estimate_cmd_len(&extra_args); + wsp::string cmd_str(cmd_len); if (!cmd_str()) { WSREP_ERROR("sst_donate_other(): " - "could not allocate cmd buffer of %d bytes", cmd_len); + "could not allocate cmd buffer of %zd bytes", cmd_len); return -ENOMEM; } - const char* binlog_opt= ""; char* binlog_opt_val= NULL; int ret; @@ -1348,7 +1678,6 @@ WSREP_ERROR("sst_donate_other(): generate_binlog_opt_val() failed: %d",ret); return ret; } - if (strlen(binlog_opt_val)) binlog_opt= WSREP_SST_OPT_BINLOG; make_wsrep_defaults_file(); @@ -1358,33 +1687,36 @@ WSREP_SST_OPT_ADDR " '%s' " WSREP_SST_OPT_SOCKET " '%s' " WSREP_SST_OPT_DATA " '%s' " - " %s " - " %s '%s' " + "%s" WSREP_SST_OPT_GTID " '%s:%lld' " WSREP_SST_OPT_GTID_DOMAIN_ID " '%d'" + "%s" "%s", method, addr, mysqld_unix_port, mysql_real_data_home, wsrep_defaults_file, - binlog_opt, binlog_opt_val, uuid, (long long) seqno, wsrep_gtid_domain_id, + binlog_opt_val, bypass ? " " WSREP_SST_OPT_BYPASS : ""); my_free(binlog_opt_val); - if (ret < 0 || ret >= cmd_len) + if (ret < 0 || size_t(ret) >= cmd_len) { WSREP_ERROR("sst_donate_other(): snprintf() failed: %d", ret); return (ret < 0 ? ret : -EMSGSIZE); } + if (extra_args) + copy_orig_argv(cmd_str() + ret); + if (!bypass && wsrep_sst_donor_rejects_queries) sst_reject_queries(FALSE); pthread_t tmp; sst_thread_arg arg(cmd_str(), env); mysql_mutex_lock (&arg.lock); - ret = pthread_create (&tmp, NULL, sst_donor_thread, &arg); + ret = mysql_thread_create (key_wsrep_sst_donor, &tmp, NULL, sst_donor_thread, &arg); if (ret) { - WSREP_ERROR("sst_donate_other(): pthread_create() failed: %d (%s)", + WSREP_ERROR("sst_donate_other(): mysql_thread_create() failed: %d (%s)", ret, strerror(ret)); return ret; } diff -Nru mariadb-10.3-10.3.17/sql/wsrep_sst.h mariadb-10.3-10.3.20/sql/wsrep_sst.h --- mariadb-10.3-10.3.17/sql/wsrep_sst.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/wsrep_sst.h 2019-11-06 16:01:57.000000000 +0000 @@ -32,6 +32,7 @@ #define WSREP_SST_OPT_PARENT "--parent" #define WSREP_SST_OPT_BINLOG "--binlog" #define WSREP_SST_OPT_BINLOG_INDEX "--binlog-index" +#define WSREP_SST_OPT_MYSQLD "--mysqld-args" // mysqldump-specific options #define WSREP_SST_OPT_USER "--user" diff -Nru mariadb-10.3-10.3.17/sql/wsrep_thd.cc mariadb-10.3-10.3.20/sql/wsrep_thd.cc --- mariadb-10.3-10.3.17/sql/wsrep_thd.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql/wsrep_thd.cc 2019-11-06 16:01:57.000000000 +0000 @@ -417,10 +417,14 @@ static bool create_wsrep_THD(wsrep_thread_args* args) { - ulong old_wsrep_running_threads= wsrep_running_threads; mysql_mutex_lock(&LOCK_thread_count); - bool res= pthread_create(&args->thread_id, &connection_attrib, start_wsrep_THD, - (void*)args); + ulong old_wsrep_running_threads= wsrep_running_threads; + DBUG_ASSERT(args->thread_type == WSREP_APPLIER_THREAD || + args->thread_type == WSREP_ROLLBACKER_THREAD); + bool res= mysql_thread_create(args->thread_type == WSREP_APPLIER_THREAD + ? key_wsrep_applier : key_wsrep_rollbacker, + &args->thread_id, &connection_attrib, + start_wsrep_THD, (void*)args); /* if starting a thread on server startup, wait until the this thread's THD is fully initialized (otherwise a THD initialization code might diff -Nru mariadb-10.3-10.3.17/sql-common/client_plugin.c mariadb-10.3-10.3.20/sql-common/client_plugin.c --- mariadb-10.3-10.3.17/sql-common/client_plugin.c 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql-common/client_plugin.c 2019-11-06 16:01:57.000000000 +0000 @@ -28,11 +28,6 @@ There is no reference counting and no unloading either. */ -#if defined(_MSC_VER) -/* Silence warnings about variable 'unused' being used. */ -#define FORCE_INIT_OF_VARS 1 -#endif - #include #include "mysql.h" #include @@ -243,12 +238,12 @@ struct st_mysql_client_plugin **builtin; va_list unused; DBUG_ENTER("mysql_client_plugin_init"); - LINT_INIT_STRUCT(unused); if (initialized) DBUG_RETURN(0); bzero(&mysql, sizeof(mysql)); /* dummy mysql for set_mysql_extended_error */ + bzero(&unused, sizeof unused); mysql_mutex_init(0, &LOCK_load_client_plugin, MY_MUTEX_INIT_SLOW); init_alloc_root(&mem_root, "client_plugin", 128, 128, MYF(0)); @@ -306,9 +301,7 @@ mysql_client_register_plugin(MYSQL *mysql, struct st_mysql_client_plugin *plugin) { - va_list unused; DBUG_ENTER("mysql_client_register_plugin"); - LINT_INIT_STRUCT(unused); if (is_not_initialized(mysql, plugin->name)) DBUG_RETURN(NULL); @@ -324,7 +317,11 @@ plugin= NULL; } else + { + va_list unused; + bzero(&unused, sizeof unused); plugin= add_plugin(mysql, plugin, 0, 0, unused); + } mysql_mutex_unlock(&LOCK_load_client_plugin); DBUG_RETURN(plugin); diff -Nru mariadb-10.3-10.3.17/sql-common/my_time.c mariadb-10.3-10.3.20/sql-common/my_time.c --- mariadb-10.3-10.3.17/sql-common/my_time.c 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/sql-common/my_time.c 2019-11-06 16:01:57.000000000 +0000 @@ -185,7 +185,7 @@ do { s++; - } while (my_isspace(&my_charset_latin1, *s)); + } while (s < end && my_isspace(&my_charset_latin1, *s)); *str= s; return 0; } diff -Nru mariadb-10.3-10.3.17/storage/connect/array.cpp mariadb-10.3-10.3.20/storage/connect/array.cpp --- mariadb-10.3-10.3.17/storage/connect/array.cpp 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/array.cpp 2019-11-06 16:01:57.000000000 +0000 @@ -1,7 +1,7 @@ /************* Array C++ Functions Source Code File (.CPP) *************/ /* Name: ARRAY.CPP Version 2.3 */ /* */ -/* (C) Copyright to the author Olivier BERTRAND 2005-2017 */ +/* (C) Copyright to the author Olivier BERTRAND 2005-2019 */ /* */ /* This file contains the XOBJECT derived class ARRAY functions. */ /* ARRAY is used for elaborate type of processing, such as sorting */ @@ -67,7 +67,7 @@ /* MakeValueArray: Makes a value array from a value list. */ /***********************************************************************/ PARRAY MakeValueArray(PGLOBAL g, PPARM pp) - { +{ int n, valtyp = 0; size_t len = 0; PARRAY par; @@ -82,8 +82,7 @@ if ((valtyp = pp->Type) != TYPE_STRING) len = 1; - if (trace(1)) - htrc("valtyp=%d len=%d\n", valtyp, len); + xtrc(1, "valtyp=%d len=%d\n", valtyp, len); /*********************************************************************/ /* Firstly check the list and count the number of values in it. */ @@ -127,13 +126,13 @@ // Integer stored inside pp->Value par->AddValue(g, parmp->Intval); break; - } // endswitch valtyp + } // endswitch valtyp /*********************************************************************/ /* Send back resulting array. */ /*********************************************************************/ return par; - } // end of MakeValueArray +} // end of MakeValueArray /* -------------------------- Class ARRAY ---------------------------- */ @@ -151,6 +150,9 @@ Type = type; Xsize = -1; Len = 1; + X = 0; + Inf = 0; + Sup = 0; switch (type) { case TYPE_STRING: @@ -281,130 +283,109 @@ /* Add a string element to an array. */ /***********************************************************************/ bool ARRAY::AddValue(PGLOBAL g, PSZ strp) - { +{ if (Type != TYPE_STRING) { sprintf(g->Message, MSG(ADD_BAD_TYPE), GetTypeName(Type), "CHAR"); return true; - } // endif Type - - if (trace(1)) - htrc(" adding string(%d): '%s'\n", Nval, strp); + } // endif Type -//Value->SetValue_psz(strp); -//Vblp->SetValue(valp, Nval++); + xtrc(1, " adding string(%d): '%s'\n", Nval, strp); Vblp->SetValue(strp, Nval++); return false; - } // end of AddValue +} // end of AddValue /***********************************************************************/ /* Add a char pointer element to an array. */ /***********************************************************************/ bool ARRAY::AddValue(PGLOBAL g, void *p) - { +{ if (Type != TYPE_PCHAR) { sprintf(g->Message, MSG(ADD_BAD_TYPE), GetTypeName(Type), "PCHAR"); return true; - } // endif Type - - if (trace(1)) - htrc(" adding pointer(%d): %p\n", Nval, p); + } // endif Type + xtrc(1, " adding pointer(%d): %p\n", Nval, p); Vblp->SetValue((PSZ)p, Nval++); return false; - } // end of AddValue +} // end of AddValue /***********************************************************************/ /* Add a short integer element to an array. */ /***********************************************************************/ bool ARRAY::AddValue(PGLOBAL g, short n) - { +{ if (Type != TYPE_SHORT) { sprintf(g->Message, MSG(ADD_BAD_TYPE), GetTypeName(Type), "SHORT"); return true; - } // endif Type - - if (trace(1)) - htrc(" adding SHORT(%d): %hd\n", Nval, n); + } // endif Type -//Value->SetValue(n); -//Vblp->SetValue(valp, Nval++); + xtrc(1, " adding SHORT(%d): %hd\n", Nval, n); Vblp->SetValue(n, Nval++); return false; - } // end of AddValue +} // end of AddValue /***********************************************************************/ /* Add an integer element to an array. */ /***********************************************************************/ bool ARRAY::AddValue(PGLOBAL g, int n) - { +{ if (Type != TYPE_INT) { sprintf(g->Message, MSG(ADD_BAD_TYPE), GetTypeName(Type), "INTEGER"); return true; - } // endif Type + } // endif Type - if (trace(1)) - htrc(" adding int(%d): %d\n", Nval, n); - -//Value->SetValue(n); -//Vblp->SetValue(valp, Nval++); + xtrc(1, " adding int(%d): %d\n", Nval, n); Vblp->SetValue(n, Nval++); return false; - } // end of AddValue +} // end of AddValue /***********************************************************************/ /* Add a double float element to an array. */ /***********************************************************************/ bool ARRAY::AddValue(PGLOBAL g, double d) - { +{ if (Type != TYPE_DOUBLE) { sprintf(g->Message, MSG(ADD_BAD_TYPE), GetTypeName(Type), "DOUBLE"); return true; - } // endif Type - - if (trace(1)) - htrc(" adding float(%d): %lf\n", Nval, d); + } // endif Type + xtrc(1, " adding float(%d): %lf\n", Nval, d); Value->SetValue(d); Vblp->SetValue(Value, Nval++); return false; - } // end of AddValue +} // end of AddValue /***********************************************************************/ /* Add the value of a XOBJECT block to an array. */ /***********************************************************************/ bool ARRAY::AddValue(PGLOBAL g, PXOB xp) - { - if (Type != xp->GetResultType()) { - sprintf(g->Message, MSG(ADD_BAD_TYPE), - GetTypeName(xp->GetResultType()), GetTypeName(Type)); - return true; - } // endif Type - - if (trace(1)) - htrc(" adding (%d) from xp=%p\n", Nval, xp); - -//AddValue(xp->GetValue()); - Vblp->SetValue(xp->GetValue(), Nval++); - return false; - } // end of AddValue +{ + if (Type != xp->GetResultType()) { + sprintf(g->Message, MSG(ADD_BAD_TYPE), + GetTypeName(xp->GetResultType()), GetTypeName(Type)); + return true; + } // endif Type + + xtrc(1, " adding (%d) from xp=%p\n", Nval, xp); + Vblp->SetValue(xp->GetValue(), Nval++); + return false; +} // end of AddValue /***********************************************************************/ /* Add a value to an array. */ /***********************************************************************/ bool ARRAY::AddValue(PGLOBAL g, PVAL vp) - { +{ if (Type != vp->GetType()) { sprintf(g->Message, MSG(ADD_BAD_TYPE), GetTypeName(vp->GetType()), GetTypeName(Type)); return true; - } // endif Type - - if (trace(1)) - htrc(" adding (%d) from vp=%p\n", Nval, vp); + } // endif Type + xtrc(1, " adding (%d) from vp=%p\n", Nval, vp); Vblp->SetValue(vp, Nval++); return false; - } // end of AddValue +} // end of AddValue /***********************************************************************/ /* Retrieve the nth value of the array. */ @@ -973,7 +954,7 @@ /* MakeArrayList: Makes a value list from an SQL IN array (in work). */ /***********************************************************************/ PSZ ARRAY::MakeArrayList(PGLOBAL g) - { +{ char *p, *tp; int i; size_t z, len = 2; @@ -988,11 +969,9 @@ Value->SetValue_pvblk(Vblp, i); Value->Prints(g, tp, z); len += strlen(tp); - } // enfor i - - if (trace(1)) - htrc("Arraylist: len=%d\n", len); + } // enfor i + xtrc(1, "Arraylist: len=%d\n", len); p = (char *)PlugSubAlloc(g, NULL, len); strcpy(p, "("); @@ -1001,19 +980,17 @@ Value->Prints(g, tp, z); strcat(p, tp); strcat(p, (++i == Nval) ? ")" : ","); - } // enfor i - - if (trace(1)) - htrc("Arraylist: newlen=%d\n", strlen(p)); + } // enfor i + xtrc(1, "Arraylist: newlen=%d\n", strlen(p)); return p; - } // end of MakeArrayList +} // end of MakeArrayList /***********************************************************************/ /* Make file output of ARRAY contents. */ /***********************************************************************/ void ARRAY::Printf(PGLOBAL g, FILE *f, uint n) - { +{ char m[64]; int lim = MY_MIN(Nval,10); @@ -1035,19 +1012,19 @@ } else fprintf(f, "%sVALLST: numval=%d\n", m, Nval); - } // end of Printf +} // end of Printf /***********************************************************************/ /* Make string output of ARRAY contents. */ /***********************************************************************/ void ARRAY::Prints(PGLOBAL, char *ps, uint z) - { +{ if (z < 16) return; sprintf(ps, "ARRAY: type=%d\n", Type); // More to be implemented later - } // end of Prints +} // end of Prints /* -------------------------- Class MULAR ---------------------------- */ diff -Nru mariadb-10.3-10.3.17/storage/connect/block.h mariadb-10.3-10.3.20/storage/connect/block.h --- mariadb-10.3-10.3.17/storage/connect/block.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/block.h 2019-11-06 16:01:57.000000000 +0000 @@ -38,9 +38,7 @@ class DllExport BLOCK { public: void * operator new(size_t size, PGLOBAL g, void *p = NULL) { - if (trace(256)) - htrc("New BLOCK: size=%d g=%p p=%p\n", size, g, p); - + xtrc(256, "New BLOCK: size=%d g=%p p=%p\n", size, g, p); return (PlugSubAlloc(g, p, size)); } // end of new diff -Nru mariadb-10.3-10.3.17/storage/connect/CMakeLists.txt mariadb-10.3-10.3.20/storage/connect/CMakeLists.txt --- mariadb-10.3-10.3.17/storage/connect/CMakeLists.txt 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/CMakeLists.txt 2019-11-06 16:01:57.000000000 +0000 @@ -118,7 +118,6 @@ FIND_PACKAGE(LibXml2) IF (LIBXML2_FOUND) INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) - SET(ZLIB_LIBRARY "z") # see ZLIB_INCLUDE_DIR below SET(XML_LIBRARY ${LIBXML2_LIBRARIES}) SET(CONNECT_SOURCES ${CONNECT_SOURCES} libdoc.cpp libdoc.h) add_definitions(-DLIBXML2_SUPPORT) @@ -313,6 +312,35 @@ # +# REST +# + +OPTION(CONNECT_WITH_REST "Compile CONNECT storage engine with REST support" ON) + +IF(CONNECT_WITH_REST) + FIND_PACKAGE(cpprestsdk QUIET) + IF (cpprestsdk_FOUND) + IF(UNIX) +# INCLUDE_DIRECTORIES(${CPPRESTSDK_INCLUDE_DIR}) +# If needed edit next line to set the path to libcpprest.so + SET(REST_LIBRARY -lcpprest) + MESSAGE (STATUS ${REST_LIBRARY}) + ELSE(NOT UNIX) +# Next line sets debug compile mode matching cpprest_2_10d.dll +# when it was binary installed (can be change later in Visual Studio) +# Comment it out if not needed depending on your cpprestsdk installation. + SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd") + ENDIF(UNIX) + IF(REST_LIBRARY) + SET(CONNECT_SOURCES ${CONNECT_SOURCES} tabrest.cpp restget.cpp tabrest.h) + add_definitions(-DREST_SUPPORT) + ENDIF() + ELSE(NOT cpprestsdk_FOUND) +# MESSAGE(STATUS "=====> cpprestsdk package not found") + ENDIF (cpprestsdk_FOUND) +ENDIF(CONNECT_WITH_REST) + +# # XMAP # @@ -331,24 +359,16 @@ COMPONENT connect-engine RECOMPILE_FOR_EMBEDDED LINK_LIBRARIES ${ZLIB_LIBRARY} ${XML_LIBRARY} ${ICONV_LIBRARY} - ${ODBC_LIBRARY} ${JDBC_LIBRARY} ${MONGOC_LIBRARY} ${IPHLPAPI_LIBRARY}) + ${ODBC_LIBRARY} ${JDBC_LIBRARY} ${MONGOC_LIBRARY} ${IPHLPAPI_LIBRARY} ${REST_LIBRARY}) IF(NOT TARGET connect) RETURN() ENDIF() -# Don't link with bundled zlib and systel libxml2 at the same time. -# System libxml2 uses system zlib, might conflict with the bundled one. -IF (XML_LIBRARY AND BUILD_BUNDLED_ZLIB) - GET_PROPERTY(INCS TARGET connect PROPERTY INCLUDE_DIRECTORIES) - LIST(REMOVE_ITEM INCS ${ZLIB_INCLUDE_DIR}) - SET_PROPERTY(TARGET connect PROPERTY INCLUDE_DIRECTORIES ${INCS}) -ENDIF() - IF(WIN32) IF (libmongoc-1.0_FOUND) - SET_TARGET_PROPERTIES(connect PROPERTIES LINK_FLAGS - "/DELAYLOAD:libbson-1.0.dll /DELAYLOAD:libmongoc-1.0.dll") + SET_TARGET_PROPERTIES(connect PROPERTIES LINK_FLAGS + "/DELAYLOAD:libbson-1.0.dll /DELAYLOAD:libmongoc-1.0.dll") ENDIF(libmongoc-1.0_FOUND) # Install some extra files that belong to connect engine @@ -376,3 +396,4 @@ ${CMAKE_CURRENT_BINARY_DIR}/JdbcInterface.jar DESTINATION ${INSTALL_PLUGINDIR} COMPONENT connect-engine) ENDIF() + diff -Nru mariadb-10.3-10.3.17/storage/connect/connect.cc mariadb-10.3-10.3.20/storage/connect/connect.cc --- mariadb-10.3-10.3.17/storage/connect/connect.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/connect.cc 2019-11-06 16:01:57.000000000 +0000 @@ -16,7 +16,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ /***********************************************************************/ -/* Author Olivier BERTRAND bertrandop@gmail.com 2004-2017 */ +/* Author Olivier BERTRAND bertrandop@gmail.com 2004-2019 */ /* */ /* WHAT THIS PROGRAM DOES: */ /* ----------------------- */ @@ -389,6 +389,9 @@ try { for (colp = tdbp->GetColumns(); rc == RC_OK && colp; colp = colp->GetNext()) { + xtrc(2, "Going to read column %s of table %s\n", + colp->GetName(), tdbp->GetName()); + if (reset) colp->Reset(); diff -Nru mariadb-10.3-10.3.17/storage/connect/connect.h mariadb-10.3-10.3.20/storage/connect/connect.h --- mariadb-10.3-10.3.17/storage/connect/connect.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/connect.h 2019-11-06 16:01:57.000000000 +0000 @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ /**************** Cnt H Declares Source Code File (.H) *****************/ /* Name: CONNECT.H Version 2.4 */ diff -Nru mariadb-10.3-10.3.17/storage/connect/global.h mariadb-10.3-10.3.20/storage/connect/global.h --- mariadb-10.3-10.3.17/storage/connect/global.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/global.h 2019-11-06 16:01:57.000000000 +0000 @@ -224,6 +224,7 @@ DllExport char *PlugDup(PGLOBAL g, const char *str); DllExport void *MakePtr(void *, OFFSET); DllExport void htrc(char const *fmt, ...); +DllExport void xtrc(uint, char const* fmt, ...); DllExport uint GetTraceValue(void); #if defined(__cplusplus) diff -Nru mariadb-10.3-10.3.17/storage/connect/ha_connect.cc mariadb-10.3-10.3.20/storage/connect/ha_connect.cc --- mariadb-10.3-10.3.17/storage/connect/ha_connect.cc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/ha_connect.cc 2019-11-06 16:01:57.000000000 +0000 @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ /** @file ha_connect.cc @@ -164,15 +164,15 @@ /***********************************************************************/ /* Initialize the ha_connect static members. */ /***********************************************************************/ -#define SZCONV 8192 +#define SZCONV 1024 // Default converted text size #define SZWORK 67108864 // Default work area size 64M #define SZWMIN 4194304 // Minimum work area size 4M #define JSONMAX 10 // JSON Default max grp size extern "C" { - char version[]= "Version 1.06.0009 January 27, 2019"; + char version[]= "Version 1.06.0010 June 01, 2019"; #if defined(__WIN__) - char compver[]= "Version 1.06.0009 " __DATE__ " " __TIME__; + char compver[]= "Version 1.06.0010 " __DATE__ " " __TIME__; char slash= '\\'; #else // !__WIN__ char slash= '/'; @@ -211,14 +211,14 @@ { char buf[1024]; bool b; - THD *thd = current_thd; - CHARSET_INFO *cs = system_charset_info; - String *str = NULL, tmp(buf, sizeof(buf), cs); - HASH uvars = thd->user_vars; - user_var_entry *uvar = (user_var_entry*)my_hash_search(&uvars, varname, 0); + THD *thd= current_thd; + CHARSET_INFO *cs= system_charset_info; + String *str= NULL, tmp(buf, sizeof(buf), cs); + HASH uvars= thd->user_vars; + user_var_entry *uvar= (user_var_entry*)my_hash_search(&uvars, varname, 0); if (uvar) - str = uvar->val_str(&b, &tmp, NOT_FIXED_DEC); + str= uvar->val_str(&b, &tmp, NOT_FIXED_DEC); return str ? PlugDup(g, str->ptr()) : NULL; }; // end of GetUserVariable @@ -231,6 +231,9 @@ PQRYRES VirColumns(PGLOBAL g, bool info); PQRYRES JSONColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt, bool info); PQRYRES XMLColumns(PGLOBAL g, char *db, char *tab, PTOS topt, bool info); +#if defined(REST_SUPPORT) +PQRYRES RESTColumns(PGLOBAL g, PTOS topt, char *tab, char *db, bool info); +#endif // REST_SUPPORT #if defined(JAVA_SUPPORT) PQRYRES MGOColumns(PGLOBAL g, PCSZ db, PCSZ url, PTOS topt, bool info); #endif // JAVA_SUPPORT @@ -238,7 +241,9 @@ void PushWarning(PGLOBAL g, THD *thd, int level); bool CheckSelf(PGLOBAL g, TABLE_SHARE *s, PCSZ host, PCSZ db, PCSZ tab, PCSZ src, int port); +#if defined(ZIP_SUPPORT) bool ZipLoadFile(PGLOBAL, PCSZ, PCSZ, PCSZ, bool, bool); +#endif // ZIP_SUPPORT bool ExactInfo(void); #if defined(CMGO_SUPPORT) //void mongo_init(bool); @@ -350,7 +355,7 @@ static MYSQL_THDVAR_INT(conv_size, PLUGIN_VAR_RQCMDARG, // opt "Size used when converting TEXT columns.", - NULL, NULL, SZCONV, 0, 65500, 8192); + NULL, NULL, SZCONV, 0, 65500, 1); /** Type conversion: @@ -581,7 +586,9 @@ HA_TOPTION_STRING("FILTER", filter), HA_TOPTION_STRING("OPTION_LIST", oplist), HA_TOPTION_STRING("DATA_CHARSET", data_charset), - HA_TOPTION_NUMBER("LRECL", lrecl, 0, 0, INT_MAX32, 1), + HA_TOPTION_STRING("HTTP", http), + HA_TOPTION_STRING("URI", uri), + HA_TOPTION_NUMBER("LRECL", lrecl, 0, 0, INT_MAX32, 1), HA_TOPTION_NUMBER("BLOCK_SIZE", elements, 0, 0, INT_MAX32, 1), //HA_TOPTION_NUMBER("ESTIMATE", estimate, 0, 0, INT_MAX32, 1), HA_TOPTION_NUMBER("MULTIPLE", multiple, 0, 0, 3, 1), @@ -989,11 +996,11 @@ pthread_mutex_unlock(&usrmut); if (!xp) { - xp = new user_connect(thd); + xp= new user_connect(thd); if (xp->user_init()) { delete xp; - xp = NULL; + xp= NULL; } // endif user_init } // endif xp @@ -1025,6 +1032,19 @@ if (type == TAB_UNDEF) type= pos->srcdef ? TAB_MYSQL : pos->tabname ? TAB_PRX : TAB_DOS; +#if defined(REST_SUPPORT) + else if (pos->http) + switch (type) { + case TAB_JSON: + case TAB_XML: + case TAB_CSV: + type = TAB_REST; + break; + case TAB_REST: + type = TAB_NIY; + break; + } // endswitch type +#endif // REST_SUPPORT } else type= TAB_UNDEF; @@ -1128,48 +1148,48 @@ return (char*)def; char key[16], val[256]; - char *pv, *pn, *pk = (char*)oplist; - PCSZ opval = def; + char *pv, *pn, *pk= (char*)oplist; + PCSZ opval= def; int n; while (*pk == ' ') pk++; - for (; pk; pk = pn) { - pn = strchr(pk, ','); - pv = strchr(pk, '='); + for (; pk; pk= pn) { + pn= strchr(pk, ','); + pv= strchr(pk, '='); if (pv && (!pn || pv < pn)) { - n = MY_MIN(static_cast(pv - pk), sizeof(key) - 1); + n= MY_MIN(static_cast(pv - pk), sizeof(key) - 1); memcpy(key, pk, n); while (n && key[n - 1] == ' ') n--; - key[n] = 0; + key[n]= 0; while (*(++pv) == ' '); - n = MY_MIN((pn ? pn - pv : strlen(pv)), sizeof(val) - 1); + n= MY_MIN((pn ? pn - pv : strlen(pv)), sizeof(val) - 1); memcpy(val, pv, n); while (n && val[n - 1] == ' ') n--; - val[n] = 0; + val[n]= 0; } else { - n = MY_MIN((pn ? pn - pk : strlen(pk)), sizeof(key) - 1); + n= MY_MIN((pn ? pn - pk : strlen(pk)), sizeof(key) - 1); memcpy(key, pk, n); while (n && key[n - 1] == ' ') n--; - key[n] = 0; - val[0] = 0; + key[n]= 0; + val[0]= 0; } // endif pv if (!stricmp(opname, key)) { - opval = PlugDup(g, val); + opval= PlugDup(g, val); break; } else if (!pn) break; @@ -1217,9 +1237,13 @@ else if (!stricmp(opname, "Colist")) opval= options->colist; else if (!stricmp(opname, "Filter")) - opval = options->filter; + opval= options->filter; else if (!stricmp(opname, "Data_charset")) opval= options->data_charset; + else if (!stricmp(opname, "Http") || !stricmp(opname, "URL")) + opval = options->http; + else if (!stricmp(opname, "Uri")) + opval = options->uri; if (!opval && options->oplist) opval= GetListOption(g, opname, options->oplist); @@ -1250,7 +1274,7 @@ else if (!stricmp(opname, "Header")) opval= (options->header != 0); // Is Boolean for some table types else if (!stricmp(opname, "Zipped")) - opval = options->zipped; + opval= options->zipped; else if (options->oplist) if ((pv= GetListOption(g, opname, options->oplist))) opval= (!*pv || *pv == 'y' || *pv == 'Y' || atoi(pv) != 0); @@ -1315,7 +1339,7 @@ { char *sv; - if (IsPartitioned() && s && partname && *partname) { + if (IsPartitioned() && s && *partname) { sv= (char*)PlugSubAlloc(xp->g, NULL, 0); sprintf(sv, s, partname); PlugSubAlloc(xp->g, NULL, strlen(sv) + 1); @@ -1344,8 +1368,8 @@ } else if (!stricmp(opname, "Query_String")) { // This escapes everything and returns a wrong query -// opval = thd_query_string(table->in_use)->str; - opval = (PCSZ)PlugSubAlloc(xp->g, NULL, +// opval= thd_query_string(table->in_use)->str; + opval= (PCSZ)PlugSubAlloc(xp->g, NULL, thd_query_string(table->in_use)->length + 1); strcpy((char*)opval, thd_query_string(table->in_use)->str); // sprintf((char*)opval, "%s", thd_query_string(table->in_use)->str); @@ -1366,7 +1390,7 @@ || !stricmp(opname, "filename") || !stricmp(opname, "optname") || !stricmp(opname, "entry"))) - opval = GetRealString(opval); + opval= GetRealString(opval); if (!opval) { if (sdef && !strcmp(sdef, "*")) { @@ -1495,7 +1519,7 @@ void *ha_connect::GetColumnOption(PGLOBAL g, void *field, PCOLINFO pcf) { const char *cp; - char *chset, v = 0; + char *chset, v= 0; ha_field_option_struct *fop; Field* fp; Field* *fldp; @@ -1547,7 +1571,7 @@ pcf->Fieldfmt= NULL; } // endif fop - chset = (char *)fp->charset()->name; + chset= (char *)fp->charset()->name; switch (fp->type()) { case MYSQL_TYPE_BLOB: @@ -1815,7 +1839,7 @@ { const char *path= tshp ? tshp->path.str : table_share->path.str; const char *name= strrchr(path, slash); - return name ? name+1 : path; + return name ? name + 1 : path; } // end of GetTableName char *ha_connect::GetPartName(void) @@ -2053,10 +2077,10 @@ } catch (int n) { if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); - brc = true; + brc= true; } catch (const char *msg) { strcpy(g->Message, msg); - brc = true; + brc= true; } // end catch return brc; @@ -2183,9 +2207,9 @@ rc= fp->store(p, strlen(p), charset, CHECK_FIELD_WARN); break; case TYPE_BIN: - p = value->GetCharValue(); - charset = &my_charset_bin; - rc = fp->store(p, strlen(p), charset, CHECK_FIELD_WARN); + p= value->GetCharValue(); + charset= &my_charset_bin; + rc= fp->store(p, strlen(p), charset, CHECK_FIELD_WARN); break; case TYPE_DOUBLE: rc= fp->store(value->GetFloatValue()); @@ -2434,7 +2458,7 @@ kfp= &table->key_info[active_index]; old_map= dbug_tmp_use_all_columns(table, table->write_set); - for (i = 0; i <= 1; i++) { + for (i= 0; i <= 1; i++) { if (ranges[i] == NULL) continue; @@ -2545,7 +2569,7 @@ switch (vop) { case OP_EQ: - val= " = "; + val= "= "; break; case OP_NE: val= " <> "; @@ -2815,7 +2839,7 @@ /***********************************************************************/ PCFIL ha_connect::CheckCond(PGLOBAL g, PCFIL filp, const Item *cond) { - AMT tty = filp->Type; + AMT tty= filp->Type; char *body= filp->Body; char *havg= filp->Having; unsigned int i; @@ -2832,7 +2856,7 @@ if (cond->type() == COND::COND_ITEM) { char *pb0, *pb1, *pb2, *ph0= 0, *ph1= 0, *ph2= 0; - bool bb = false, bh = false; + bool bb= false, bh= false; Item_cond *cond_item= (Item_cond *)cond; if (x) @@ -2891,13 +2915,13 @@ bb |= filp->Bd; bh |= filp->Hv; - filp->Bd = filp->Hv = false; + filp->Bd= filp->Hv= false; } else return NULL; if (bb) { strcpy(pb1, ")"); - filp->Bd = bb; + filp->Bd= bb; } else *pb0= 0; @@ -2905,13 +2929,13 @@ if (bb && bh && vop == OP_OR) { // Cannot or'ed a where clause with a having clause bb= bh= 0; - *pb0 = 0; - *ph0 = 0; + *pb0= 0; + *ph0= 0; } else if (bh) { strcpy(ph1, ")"); filp->Hv= bh; } else - *ph0 = 0; + *ph0= 0; } // endif havg @@ -2924,7 +2948,7 @@ Item_func *condf= (Item_func *)cond; Item* *args= condf->arguments(); - filp->Bd = filp->Hv = false; + filp->Bd= filp->Hv= false; if (trace(1)) htrc("Func type=%d argnum=%d\n", condf->functype(), @@ -2940,10 +2964,10 @@ case Item_func::GT_FUNC: vop= OP_GT; break; case Item_func::LIKE_FUNC: vop= OP_LIKE; - neg = ((Item_func_opt_neg *)condf)->negated; + neg= ((Item_func_opt_neg *)condf)->negated; break; case Item_func::ISNOTNULL_FUNC: - neg = true; + neg= true; // fall through case Item_func::ISNULL_FUNC: vop= OP_NULL; break; case Item_func::IN_FUNC: vop= OP_IN; /* fall through */ @@ -3001,12 +3025,12 @@ } else { bool h; - fnm = filp->Chk(pField->field->field_name.str, &h); + fnm= filp->Chk(pField->field->field_name.str, &h); if (h && i && !ishav) return NULL; // Having should be col VOP arg else - ishav = h; + ishav= h; } // endif's @@ -3057,7 +3081,7 @@ if (!x) { const char *p; - char *s = (ishav) ? havg : body; + char *s= (ishav) ? havg : body; uint j, k, n; // Append the value to the filter @@ -3114,37 +3138,37 @@ strcat(s, "'}"); break; default: - j = strlen(s); - s[j++] = '\''; - p = res->ptr(); - n = res->length(); + j= strlen(s); + s[j++]= '\''; + p= res->ptr(); + n= res->length(); - for (k = 0; k < n; k++) { + for (k= 0; k < n; k++) { if (p[k] == '\'') - s[j++] = '\''; + s[j++]= '\''; - s[j++] = p[k]; + s[j++]= p[k]; } // endfor k - s[j++] = '\''; - s[j] = 0; + s[j++]= '\''; + s[j]= 0; } // endswitch field type } else { - j = strlen(s); - s[j++] = '\''; - p = res->ptr(); - n = res->length(); + j= strlen(s); + s[j++]= '\''; + p= res->ptr(); + n= res->length(); - for (k = 0; k < n; k++) { + for (k= 0; k < n; k++) { if (p[k] == '\'') - s[j++] = '\''; + s[j++]= '\''; - s[j++] = p[k]; + s[j++]= p[k]; } // endfor k - s[j++] = '\''; - s[j] = 0; + s[j++]= '\''; + s[j]= 0; } // endif tty break; @@ -3168,7 +3192,7 @@ } // endif's Type if (!x) { - char *s = (ishav) ? havg : body; + char *s= (ishav) ? havg : body; if (!i) strcat(s, GetValStr(vop, neg)); @@ -3182,11 +3206,11 @@ } // endfor i if (x) - filp->Op = vop; + filp->Op= vop; else if (ishav) - filp->Hv = true; + filp->Hv= true; else - filp->Bd = true; + filp->Bd= true; } else { if (trace(1)) @@ -3236,21 +3260,21 @@ PCFIL filp; int rc; - if ((filp = tdbp->GetCondFil()) && tdbp->GetCond() == cond && + if ((filp= tdbp->GetCondFil()) && tdbp->GetCond() == cond && filp->Idx == active_index && filp->Type == tty) goto fin; - filp = new(g) CONDFIL(active_index, tty); - rc = filp->Init(g, this); + filp= new(g) CONDFIL(active_index, tty); + rc= filp->Init(g, this); if (rc == RC_INFO) { - filp->Having = (char*)PlugSubAlloc(g, NULL, 256); - *filp->Having = 0; + filp->Having= (char*)PlugSubAlloc(g, NULL, 256); + *filp->Having= 0; } else if (rc == RC_FX) goto fin; - filp->Body = (char*)PlugSubAlloc(g, NULL, (x) ? 128 : 0); - *filp->Body = 0; + filp->Body= (char*)PlugSubAlloc(g, NULL, (x) ? 128 : 0); + *filp->Body= 0; if (CheckCond(g, filp, cond)) { if (filp->Having && strlen(filp->Having) > 255) @@ -3264,7 +3288,7 @@ if (!x) PlugSubAlloc(g, NULL, strlen(filp->Body) + 1); else - cond = NULL; // Does this work? + cond= NULL; // Does this work? tdbp->SetCondFil(filp); } else if (x && cond) @@ -3314,8 +3338,8 @@ int ha_connect::check(THD* thd, HA_CHECK_OPT* check_opt) { - int rc = HA_ADMIN_OK; - PGLOBAL g = ((table && table->in_use) ? GetPlug(table->in_use, xp) : + int rc= HA_ADMIN_OK; + PGLOBAL g= ((table && table->in_use) ? GetPlug(table->in_use, xp) : (xp) ? xp->g : NULL); DBUG_ENTER("ha_connect::check"); @@ -3325,32 +3349,32 @@ // Do not close the table if it was opened yet (possible?) if (IsOpened()) { if (IsPartitioned() && CheckColumnList(g)) // map can have been changed - rc = HA_ADMIN_CORRUPT; + rc= HA_ADMIN_CORRUPT; else if (tdbp->OpenDB(g)) // Rewind table - rc = HA_ADMIN_CORRUPT; + rc= HA_ADMIN_CORRUPT; } else if (xp->CheckQuery(valid_query_id)) { - tdbp = NULL; // Not valid anymore + tdbp= NULL; // Not valid anymore if (OpenTable(g, false)) - rc = HA_ADMIN_CORRUPT; + rc= HA_ADMIN_CORRUPT; } else // possible? DBUG_RETURN(HA_ADMIN_INTERNAL_ERROR); if (rc == HA_ADMIN_OK) { - TABTYPE type = GetTypeID(GetStringOption("Type", "*")); + TABTYPE type= GetTypeID(GetStringOption("Type", "*")); if (IsFileType(type)) { if (check_opt->flags & T_MEDIUM) { // TO DO do { - if ((rc = CntReadNext(g, tdbp)) == RC_FX) + if ((rc= CntReadNext(g, tdbp)) == RC_FX) break; } while (rc != RC_EF); - rc = (rc == RC_EF) ? HA_ADMIN_OK : HA_ADMIN_CORRUPT; + rc= (rc == RC_EF) ? HA_ADMIN_OK : HA_ADMIN_CORRUPT; } else if (check_opt->flags & T_EXTEND) { // TO DO } // endif's flags @@ -3378,7 +3402,7 @@ DBUG_ENTER("ha_connect::get_error_message"); if (xp && xp->g) { - PGLOBAL g = xp->g; + PGLOBAL g= xp->g; if (trace(1)) htrc("GEM(%d): %s\n", error, g->Message); @@ -3487,32 +3511,32 @@ try { // Ignore error on the opt file dup->Check &= ~CHK_OPT; - tdbp = GetTDB(g); + tdbp= GetTDB(g); dup->Check |= CHK_OPT; if (tdbp && !tdbp->IsRemote()) { - bool dop = IsTypeIndexable(GetRealType(NULL)); - bool dox = (tdbp->GetDef()->Indexable() == 1); + bool dop= IsTypeIndexable(GetRealType(NULL)); + bool dox= (tdbp->GetDef()->Indexable() == 1); - if ((rc = ((PTDBASE)tdbp)->ResetTableOpt(g, dop, dox))) { + if ((rc= ((PTDBASE)tdbp)->ResetTableOpt(g, dop, dox))) { if (rc == RC_INFO) { push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0, g->Message); - rc = 0; + rc= 0; } else - rc = HA_ERR_CRASHED_ON_USAGE; // Table must be repaired + rc= HA_ERR_CRASHED_ON_USAGE; // Table must be repaired } // endif rc } else if (!tdbp) - rc = HA_ERR_INTERNAL_ERROR; + rc= HA_ERR_INTERNAL_ERROR; } catch (int n) { if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); - rc = HA_ERR_INTERNAL_ERROR; + rc= HA_ERR_INTERNAL_ERROR; } catch (const char *msg) { strcpy(g->Message, msg); - rc = HA_ERR_INTERNAL_ERROR; + rc= HA_ERR_INTERNAL_ERROR; } // end catch if (rc) @@ -4212,7 +4236,7 @@ tdbp->SetFilter(NULL); rc= rnd_next(buf); } else { - PGLOBAL g = GetPlug((table) ? table->in_use : NULL, xp); + PGLOBAL g= GetPlug((table) ? table->in_use : NULL, xp); // strcpy(g->Message, "Not supported by this table type"); my_message(ER_ILLEGAL_HA, g->Message, MYF(0)); rc= HA_ERR_INTERNAL_ERROR; @@ -4296,12 +4320,12 @@ } else DBUG_RETURN(HA_ERR_INTERNAL_ERROR); // Should never happen - if (!(tdbp = GetTDB(g))) { + if (!(tdbp= GetTDB(g))) { my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0)); DBUG_RETURN(HA_ERR_INTERNAL_ERROR); } // endif tdbp - valid_info = false; + valid_info= false; } // endif tdbp if (!valid_info) { @@ -4444,6 +4468,7 @@ case TAB_XML: case TAB_INI: case TAB_VEC: + case TAB_REST: case TAB_JSON: if (options->filename && *options->filename) { if (!quick) { @@ -4476,34 +4501,13 @@ case TAB_DIR: case TAB_ZIP: case TAB_OEM: -#ifdef NO_EMBEDDED_ACCESS_CHECKS - return false; - #endif - - /* - Check FILE_ACL - If table or table->mdl_ticket is NULL - it's a DLL, e.g. CREATE TABLE. - if the table has an MDL_EXCLUSIVE lock - it's a DDL too, e.g. the - insert step of CREATE ... SELECT. - - Otherwise it's a DML, the table was normally opened, locked, - privilege were already checked, and table->grant.privilege is set. - With SQL SECURITY DEFINER, table->grant.privilege has definer's privileges. - - Unless we're in prelocking mode, in this case table->grant.privilege - is only checked in start_stmt(), not in external_lock(). - */ - if (!table || !table->mdl_ticket || table->mdl_ticket->get_type() == MDL_EXCLUSIVE) - return check_access(thd, FILE_ACL, db, NULL, NULL, 0, 0); - - if ((!quick && thd->lex->requires_prelocking()) || table->grant.privilege & FILE_ACL) - return false; - - status_var_increment(thd->status_var.access_denied_errors); - my_error(access_denied_error_code(thd->password), MYF(0), - thd->security_ctx->priv_user, thd->security_ctx->priv_host, - (thd->password ? ER(ER_YES) : ER(ER_NO))); - return true; + if (table && table->pos_in_table_list) // if SELECT + { + Switch_to_definer_security_ctx backup_ctx(thd, table->pos_in_table_list); + return check_global_access(thd, FILE_ACL); + } + else + return check_global_access(thd, FILE_ACL); case TAB_ODBC: case TAB_JDBC: case TAB_MONGO: @@ -4580,13 +4584,13 @@ // newmode= MODE_UPDATE; // To be checked // break; case SQLCOM_DELETE_MULTI: - *cras = true; + *cras= true; case SQLCOM_DELETE: case SQLCOM_TRUNCATE: newmode= MODE_DELETE; break; case SQLCOM_UPDATE_MULTI: - *cras = true; + *cras= true; case SQLCOM_UPDATE: newmode= MODE_UPDATE; break; @@ -4614,7 +4618,7 @@ break; // } // endif partitioned case SQLCOM_REPAIR: // TODO implement it - newmode = MODE_UPDATE; + newmode= MODE_UPDATE; break; default: htrc("Unsupported sql_command=%d\n", thd_sql_command(thd)); @@ -4729,15 +4733,15 @@ if (CloseTable(g)) { // Make error a warning to avoid crash push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0, g->Message); - rc = 0; + rc= 0; } // endif Close - locked = 0; - xmod = MODE_ANY; // For info commands + locked= 0; + xmod= MODE_ANY; // For info commands DBUG_RETURN(rc); } // endif MODE_ANY - newmode = CheckMode(g, thd, newmode, &chk, &cras); + newmode= CheckMode(g, thd, newmode, &chk, &cras); if (newmode == MODE_ERROR) DBUG_RETURN(HA_ERR_INTERNAL_ERROR); @@ -4813,7 +4817,7 @@ DBUG_RETURN(0); } else if (g->Xchk) { if (!tdbp) { - if (!(tdbp = GetTDB(g))) { + if (!(tdbp= GetTDB(g))) { // DBUG_RETURN(HA_ERR_INTERNAL_ERROR); causes assert error push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0, g->Message); DBUG_RETURN(0); @@ -4950,7 +4954,7 @@ int ha_connect::check_stmt(PGLOBAL g, MODE newmode, bool cras) { - int rc = 0; + int rc= 0; DBUG_ENTER("ha_connect::check_stmt"); // If this is the start of a new query, cleanup the previous one @@ -5037,7 +5041,7 @@ { if (lock_type != TL_IGNORE && lock.type == TL_UNLOCK) lock.type=lock_type; - *to++ = &lock; + *to++= &lock; return to; } @@ -5314,7 +5318,7 @@ int dec, char *key, uint tm, const char *rem, char *dft, char *xtra, char *fmt, int flag, bool dbf, char v) { - char var = (len > 255) ? 'V' : v; + char var= (len > 255) ? 'V' : v; bool q, error= false; const char *type= PLGtoMYSQLtype(typ, dbf, var); @@ -5358,9 +5362,9 @@ error|= sql->append(" DEFAULT "); if (typ == TYPE_DATE) - q = (strspn(dft, "0123456789 -:/") == strlen(dft)); + q= (strspn(dft, "0123456789 -:/") == strlen(dft)); else - q = !IsTypeNum(typ); + q= !IsTypeNum(typ); if (q) { error|= sql->append("'"); @@ -5512,13 +5516,13 @@ PCSZ fncn= "?"; PCSZ user, fn, db, host, pwd, sep, tbl, src; PCSZ col, ocl, rnk, pic, fcl, skc, zfn; - char *tab, *dsn, *shm, *dpath; + char *tab, *dsn, *shm, *dpath, *url; #if defined(__WIN__) PCSZ nsp= NULL, cls= NULL; #endif // __WIN__ //int hdr, mxe; - int port = 0, mxr = 0, rc = 0, mul = 0, lrecl = 0; -//PCSZ tabtyp = NULL; + int port= 0, mxr= 0, rc= 0, mul= 0, lrecl= 0; +//PCSZ tabtyp= NULL; #if defined(ODBC_SUPPORT) POPARM sop= NULL; PCSZ ucnc= NULL; @@ -5528,7 +5532,6 @@ #if defined(JAVA_SUPPORT) PJPARM sjp= NULL; PCSZ driver= NULL; - char *url= NULL; #endif // JAVA_SUPPORT uint tm, fnc= FNC_NO, supfnc= (FNC_NO | FNC_COL); bool bif, ok= false, dbf= false; @@ -5548,7 +5551,8 @@ String sql(buf, sizeof(buf), system_charset_info); sql.copy(STRING_WITH_LEN("CREATE TABLE whatever ("), system_charset_info); - user= host= pwd= tbl= src= col= ocl= pic= fcl= skc= rnk= zfn= dsn= NULL; + user = host = pwd = tbl = src = col = ocl = pic = fcl = skc = rnk = zfn = NULL; + dsn = url = NULL; // Get the useful create options ttp= GetTypeID(topt->type); @@ -5559,7 +5563,7 @@ fncn= topt->catfunc; fnc= GetFuncID(fncn); sep= topt->separator; - mul = (int)topt->multiple; + mul= (int)topt->multiple; tbl= topt->tablist; col= topt->colist; @@ -5582,7 +5586,7 @@ #endif // __WIN__ port= atoi(GetListOption(g, "port", topt->oplist, "0")); #if defined(ODBC_SUPPORT) -// tabtyp = GetListOption(g, "Tabtype", topt->oplist, NULL); +// tabtyp= GetListOption(g, "Tabtype", topt->oplist, NULL); mxr= atoi(GetListOption(g,"maxres", topt->oplist, "0")); cto= atoi(GetListOption(g,"ConnectTimeout", topt->oplist, "-1")); qto= atoi(GetListOption(g,"QueryTimeout", topt->oplist, "-1")); @@ -5597,7 +5601,7 @@ cop= atoi(GetListOption(g, "checkdsn", topt->oplist, "0")); #endif // PROMPT_OK #if defined(ZIP_SUPPORT) - zfn = GetListOption(g, "Zipfile", topt->oplist, NULL); + zfn= GetListOption(g, "Zipfile", topt->oplist, NULL); #endif // ZIP_SUPPORT } else { host= "localhost"; @@ -5610,14 +5614,24 @@ try { // Check table type if (ttp == TAB_UNDEF) { - topt->type = (src) ? "MYSQL" : (tab) ? "PROXY" : "DOS"; - ttp = GetTypeID(topt->type); + topt->type= (src) ? "MYSQL" : (tab) ? "PROXY" : "DOS"; + ttp= GetTypeID(topt->type); sprintf(g->Message, "No table_type. Was set to %s", topt->type); push_warning(thd, Sql_condition::WARN_LEVEL_WARN, 0, g->Message); } else if (ttp == TAB_NIY) { sprintf(g->Message, "Unsupported table type %s", topt->type); - rc = HA_ERR_INTERNAL_ERROR; + rc= HA_ERR_INTERNAL_ERROR; goto err; +#if defined(REST_SUPPORT) + } else if (topt->http) { + switch (ttp) { + case TAB_JSON: + case TAB_XML: + case TAB_CSV: + ttp = TAB_REST; + break; + } // endswitch type +#endif // REST_SUPPORT } // endif ttp if (!tab) { @@ -5627,39 +5641,39 @@ if (!tbl) { strcpy(g->Message, "Missing table list"); - rc = HA_ERR_INTERNAL_ERROR; + rc= HA_ERR_INTERNAL_ERROR; goto err; } // endif tbl - tab = PlugDup(g, tbl); + tab= PlugDup(g, tbl); - if ((p = strchr(tab, ','))) - *p = 0; + if ((p= strchr(tab, ','))) + *p= 0; - if ((p = strchr(tab, '.'))) { - *p = 0; - db = tab; - tab = p + 1; + if ((p= strchr(tab, '.'))) { + *p= 0; + db= tab; + tab= p + 1; } // endif p } else if (ttp != TAB_ODBC || !(fnc & (FNC_TABLE | FNC_COL))) - tab = (char*)table_s->table_name.str; // Default value + tab= (char*)table_s->table_name.str; // Default value } // endif tab switch (ttp) { #if defined(ODBC_SUPPORT) case TAB_ODBC: - dsn = strz(g, create_info->connect_string); + dsn= strz(g, create_info->connect_string); if (fnc & (FNC_DSN | FNC_DRIVER)) { - ok = true; + ok= true; #if defined(PROMPT_OK) } else if (!stricmp(thd->main_security_ctx.host, "localhost") && cop == 1) { - if ((dsn = ODBCCheckConnection(g, dsn, cop)) != NULL) { + if ((dsn= ODBCCheckConnection(g, dsn, cop)) != NULL) { thd->make_lex_string(&create_info->connect_string, dsn, strlen(dsn)); - ok = true; + ok= true; } // endif dsn #endif // PROMPT_OK @@ -5667,13 +5681,13 @@ sprintf(g->Message, "Missing %s connection string", topt->type); } else { // Store ODBC additional parameters - sop = (POPARM)PlugSubAlloc(g, NULL, sizeof(ODBCPARM)); - sop->User = (char*)user; - sop->Pwd = (char*)pwd; - sop->Cto = cto; - sop->Qto = qto; - sop->UseCnc = cnc; - ok = true; + sop= (POPARM)PlugSubAlloc(g, NULL, sizeof(ODBCPARM)); + sop->User= (char*)user; + sop->Pwd= (char*)pwd; + sop->Cto= cto; + sop->Qto= qto; + sop->UseCnc= cnc; + ok= true; } // endif's supfnc |= (FNC_TABLE | FNC_DSN | FNC_DRIVER); @@ -5682,13 +5696,13 @@ #if defined(JAVA_SUPPORT) case TAB_JDBC: if (fnc & FNC_DRIVER) { - ok = true; - } else if (!(url = strz(g, create_info->connect_string))) { + ok= true; + } else if (!(url= strz(g, create_info->connect_string))) { strcpy(g->Message, "Missing URL"); } else { // Store JDBC additional parameters int rc; - PJDBCDEF jdef = new(g) JDBCDEF(); + PJDBCDEF jdef= new(g) JDBCDEF(); jdef->SetName(create_info->alias.str); sjp = (PJPARM)PlugSubAlloc(g, NULL, sizeof(JDBCPARM)); @@ -5704,9 +5718,9 @@ ok = true; } else if (rc == RC_NF) { if (jdef->GetTabname()) - tab = (char*)jdef->GetTabname(); + tab= (char*)jdef->GetTabname(); - ok = jdef->SetParms(sjp); + ok= jdef->SetParms(sjp); } // endif rc } // endif's @@ -5715,7 +5729,7 @@ break; #endif // JAVA_SUPPORT case TAB_DBF: - dbf = true; + dbf= true; // fall through case TAB_CSV: if (!fn && fnc != FNC_NO) @@ -5723,55 +5737,55 @@ else if (sep && strlen(sep) > 1) sprintf(g->Message, "Invalid separator %s", sep); else - ok = true; + ok= true; break; case TAB_MYSQL: - ok = true; + ok= true; if (create_info->connect_string.str && create_info->connect_string.length) { - PMYDEF mydef = new(g) MYSQLDEF(); + PMYDEF mydef= new(g) MYSQLDEF(); - dsn = strz(g, create_info->connect_string); + dsn= strz(g, create_info->connect_string); mydef->SetName(create_info->alias.str); if (!mydef->ParseURL(g, dsn, false)) { if (mydef->GetHostname()) - host = mydef->GetHostname(); + host= mydef->GetHostname(); if (mydef->GetUsername()) - user = mydef->GetUsername(); + user= mydef->GetUsername(); if (mydef->GetPassword()) - pwd = mydef->GetPassword(); + pwd= mydef->GetPassword(); if (mydef->GetTabschema()) - db = mydef->GetTabschema(); + db= mydef->GetTabschema(); if (mydef->GetTabname()) - tab = (char*)mydef->GetTabname(); + tab= (char*)mydef->GetTabname(); if (mydef->GetPortnumber()) - port = mydef->GetPortnumber(); + port= mydef->GetPortnumber(); } else - ok = false; + ok= false; } else if (!user) - user = "root"; + user= "root"; if (ok && CheckSelf(g, table_s, host, db, tab, src, port)) - ok = false; + ok= false; break; #if defined(__WIN__) case TAB_WMI: - ok = true; + ok= true; break; #endif // __WIN__ case TAB_PIVOT: - supfnc = FNC_NO; + supfnc= FNC_NO; case TAB_PRX: case TAB_TBL: case TAB_XCL: @@ -5780,12 +5794,12 @@ (!db || !stricmp(db, table_s->db.str))) sprintf(g->Message, "A %s table cannot refer to itself", topt->type); else - ok = true; + ok= true; break; case TAB_OEM: if (topt->module && topt->subtype) - ok = true; + ok= true; else strcpy(g->Message, "Missing OEM module or subtype"); @@ -5794,24 +5808,33 @@ case TAB_XML: #endif // LIBXML2_SUPPORT || DOMDOC_SUPPORT case TAB_JSON: - dsn = strz(g, create_info->connect_string); + dsn= strz(g, create_info->connect_string); if (!fn && !zfn && !mul && !dsn) sprintf(g->Message, "Missing %s file name", topt->type); else - ok = true; + ok= true; break; #if defined(JAVA_SUPPORT) case TAB_MONGO: if (!topt->tabname) - topt->tabname = tab; + topt->tabname= tab; - ok = true; + ok= true; break; #endif // JAVA_SUPPORT +#if defined(REST_SUPPORT) + case TAB_REST: + if (!topt->http) + sprintf(g->Message, "Missing %s HTTP address", topt->type); + else + ok = true; + + break; +#endif // REST_SUPPORT case TAB_VIR: - ok = true; + ok= true; break; default: sprintf(g->Message, "Cannot get column info for table type %s", topt->type); @@ -5822,12 +5845,12 @@ if (ok && !(supfnc & fnc)) { sprintf(g->Message, "Unsupported catalog function %s for table type %s", fncn, topt->type); - ok = false; + ok= false; } // endif supfnc if (src && fnc != FNC_NO) { strcpy(g->Message, "Cannot make catalog table from srcdef"); - ok = false; + ok= false; } // endif src if (ok) { @@ -5835,23 +5858,23 @@ char *dft, *xtra, *key, *fmt; int i, len, prec, dec, typ, flg; - if (!(dpath = SetPath(g, table_s->db.str))) { - rc = HA_ERR_INTERNAL_ERROR; + if (!(dpath= SetPath(g, table_s->db.str))) { + rc= HA_ERR_INTERNAL_ERROR; goto err; } // endif dpath if (src && ttp != TAB_PIVOT && ttp != TAB_ODBC && ttp != TAB_JDBC) { - qrp = SrcColumns(g, host, db, user, pwd, src, port); + qrp= SrcColumns(g, host, db, user, pwd, src, port); if (qrp && ttp == TAB_OCCUR) if (OcrSrcCols(g, qrp, col, ocl, rnk)) { - rc = HA_ERR_INTERNAL_ERROR; + rc= HA_ERR_INTERNAL_ERROR; goto err; } // endif OcrSrcCols } else switch (ttp) { case TAB_DBF: - qrp = DBFColumns(g, dpath, fn, fnc == FNC_COL); + qrp= DBFColumns(g, dpath, fn, fnc == FNC_COL); break; #if defined(ODBC_SUPPORT) case TAB_ODBC: @@ -5859,21 +5882,21 @@ case FNC_NO: case FNC_COL: if (src) { - qrp = ODBCSrcCols(g, dsn, (char*)src, sop); - src = NULL; // for next tests + qrp= ODBCSrcCols(g, dsn, (char*)src, sop); + src= NULL; // for next tests } else - qrp = ODBCColumns(g, dsn, shm, tab, NULL, + qrp= ODBCColumns(g, dsn, shm, tab, NULL, mxr, fnc == FNC_COL, sop); break; case FNC_TABLE: - qrp = ODBCTables(g, dsn, shm, tab, NULL, mxr, true, sop); + qrp= ODBCTables(g, dsn, shm, tab, NULL, mxr, true, sop); break; case FNC_DSN: - qrp = ODBCDataSources(g, mxr, true); + qrp= ODBCDataSources(g, mxr, true); break; case FNC_DRIVER: - qrp = ODBCDrivers(g, mxr, true); + qrp= ODBCDrivers(g, mxr, true); break; default: sprintf(g->Message, "invalid catfunc %s", fncn); @@ -5888,23 +5911,23 @@ case FNC_NO: case FNC_COL: if (src) { - qrp = JDBCSrcCols(g, (char*)src, sjp); - src = NULL; // for next tests + qrp= JDBCSrcCols(g, (char*)src, sjp); + src= NULL; // for next tests } else - qrp = JDBCColumns(g, shm, tab, NULL, mxr, fnc == FNC_COL, sjp); + qrp= JDBCColumns(g, shm, tab, NULL, mxr, fnc == FNC_COL, sjp); break; case FNC_TABLE: -// qrp = JDBCTables(g, shm, tab, tabtyp, mxr, true, sjp); - qrp = JDBCTables(g, shm, tab, NULL, mxr, true, sjp); +// qrp= JDBCTables(g, shm, tab, tabtyp, mxr, true, sjp); + qrp= JDBCTables(g, shm, tab, NULL, mxr, true, sjp); break; #if 0 case FNC_DSN: - qrp = JDBCDataSources(g, mxr, true); + qrp= JDBCDataSources(g, mxr, true); break; #endif // 0 case FNC_DRIVER: - qrp = JDBCDrivers(g, mxr, true); + qrp= JDBCDrivers(g, mxr, true); break; default: sprintf(g->Message, "invalid catfunc %s", fncn); @@ -5914,56 +5937,61 @@ break; #endif // JAVA_SUPPORT case TAB_MYSQL: - qrp = MyColumns(g, thd, host, db, user, pwd, tab, + qrp= MyColumns(g, thd, host, db, user, pwd, tab, NULL, port, fnc == FNC_COL); break; case TAB_CSV: - qrp = CSVColumns(g, dpath, topt, fnc == FNC_COL); + qrp= CSVColumns(g, dpath, topt, fnc == FNC_COL); break; #if defined(__WIN__) case TAB_WMI: - qrp = WMIColumns(g, nsp, cls, fnc == FNC_COL); + qrp= WMIColumns(g, nsp, cls, fnc == FNC_COL); break; #endif // __WIN__ case TAB_PRX: case TAB_TBL: case TAB_XCL: case TAB_OCCUR: - bif = fnc == FNC_COL; - qrp = TabColumns(g, thd, db, tab, bif); + bif= fnc == FNC_COL; + qrp= TabColumns(g, thd, db, tab, bif); if (!qrp && bif && fnc != FNC_COL) // tab is a view - qrp = MyColumns(g, thd, host, db, user, pwd, tab, NULL, port, false); + qrp= MyColumns(g, thd, host, db, user, pwd, tab, NULL, port, false); if (qrp && ttp == TAB_OCCUR && fnc != FNC_COL) if (OcrColumns(g, qrp, col, ocl, rnk)) { - rc = HA_ERR_INTERNAL_ERROR; + rc= HA_ERR_INTERNAL_ERROR; goto err; } // endif OcrColumns break; case TAB_PIVOT: - qrp = PivotColumns(g, tab, src, pic, fcl, skc, host, db, user, pwd, port); + qrp= PivotColumns(g, tab, src, pic, fcl, skc, host, db, user, pwd, port); break; case TAB_VIR: - qrp = VirColumns(g, fnc == FNC_COL); + qrp= VirColumns(g, fnc == FNC_COL); break; case TAB_JSON: - qrp = JSONColumns(g, db, dsn, topt, fnc == FNC_COL); + qrp= JSONColumns(g, db, dsn, topt, fnc == FNC_COL); break; #if defined(JAVA_SUPPORT) case TAB_MONGO: - url = strz(g, create_info->connect_string); - qrp = MGOColumns(g, db, url, topt, fnc == FNC_COL); + url= strz(g, create_info->connect_string); + qrp= MGOColumns(g, db, url, topt, fnc == FNC_COL); break; #endif // JAVA_SUPPORT #if defined(LIBXML2_SUPPORT) || defined(DOMDOC_SUPPORT) case TAB_XML: - qrp = XMLColumns(g, (char*)db, tab, topt, fnc == FNC_COL); + qrp= XMLColumns(g, (char*)db, tab, topt, fnc == FNC_COL); break; #endif // LIBXML2_SUPPORT || DOMDOC_SUPPORT +#if defined(REST_SUPPORT) + case TAB_REST: + qrp = RESTColumns(g, topt, tab, (char *)db, fnc == FNC_COL); + break; +#endif // REST_SUPPORT case TAB_OEM: - qrp = OEMColumns(g, topt, tab, (char*)db, fnc == FNC_COL); + qrp= OEMColumns(g, topt, tab, (char*)db, fnc == FNC_COL); break; default: strcpy(g->Message, "System error during assisted discovery"); @@ -5971,33 +5999,33 @@ } // endswitch ttp if (!qrp) { - rc = HA_ERR_INTERNAL_ERROR; + rc= HA_ERR_INTERNAL_ERROR; goto err; } // endif !qrp if (fnc != FNC_NO || src || ttp == TAB_PIVOT) { // Catalog like table - for (crp = qrp->Colresp; !rc && crp; crp = crp->Next) { - cnm = (ttp == TAB_PIVOT) ? crp->Name : encode(g, crp->Name); - typ = crp->Type; - len = crp->Length; - dec = crp->Prec; - flg = crp->Flag; - v = (crp->Kdata->IsUnsigned()) ? 'U' : crp->Var; - tm = (crp->Kdata->IsNullable()) ? 0 : NOT_NULL_FLAG; + for (crp= qrp->Colresp; !rc && crp; crp= crp->Next) { + cnm= (ttp == TAB_PIVOT) ? crp->Name : encode(g, crp->Name); + typ= crp->Type; + len= crp->Length; + dec= crp->Prec; + flg= crp->Flag; + v= (crp->Kdata->IsUnsigned()) ? 'U' : crp->Var; + tm= (crp->Kdata->IsNullable()) ? 0 : NOT_NULL_FLAG; if (!len && typ == TYPE_STRING) - len = 256; // STRBLK's have 0 length + len= 256; // STRBLK's have 0 length // Now add the field if (add_field(&sql, cnm, typ, len, dec, NULL, tm, NULL, NULL, NULL, NULL, flg, dbf, v)) - rc = HA_ERR_OUT_OF_MEM; + rc= HA_ERR_OUT_OF_MEM; } // endfor crp } else { - char *schem = NULL; - char *tn = NULL; + char *schem= NULL; + char *tn= NULL; // Not a catalog table if (!qrp->Nblin) { @@ -6006,57 +6034,57 @@ else strcpy(g->Message, "Fail to retrieve columns"); - rc = HA_ERR_INTERNAL_ERROR; + rc= HA_ERR_INTERNAL_ERROR; goto err; } // endif !nblin - for (i = 0; !rc && i < qrp->Nblin; i++) { - typ = len = prec = dec = 0; - tm = NOT_NULL_FLAG; - cnm = (char*)"noname"; - dft = xtra = key = fmt = tn = NULL; - v = ' '; - rem = NULL; + for (i= 0; !rc && i < qrp->Nblin; i++) { + typ= len= prec= dec= 0; + tm= NOT_NULL_FLAG; + cnm= (char*)"noname"; + dft= xtra= key= fmt= tn= NULL; + v= ' '; + rem= NULL; - for (crp = qrp->Colresp; crp; crp = crp->Next) + for (crp= qrp->Colresp; crp; crp= crp->Next) switch (crp->Fld) { case FLD_NAME: if (ttp == TAB_PRX || (ttp == TAB_CSV && topt->data_charset && (!stricmp(topt->data_charset, "UTF8") || !stricmp(topt->data_charset, "UTF-8")))) - cnm = crp->Kdata->GetCharValue(i); + cnm= crp->Kdata->GetCharValue(i); else - cnm = encode(g, crp->Kdata->GetCharValue(i)); + cnm= encode(g, crp->Kdata->GetCharValue(i)); break; case FLD_TYPE: - typ = crp->Kdata->GetIntValue(i); - v = (crp->Nulls) ? crp->Nulls[i] : 0; + typ= crp->Kdata->GetIntValue(i); + v= (crp->Nulls) ? crp->Nulls[i] : 0; break; case FLD_TYPENAME: - tn = crp->Kdata->GetCharValue(i); + tn= crp->Kdata->GetCharValue(i); break; case FLD_PREC: // PREC must be always before LENGTH - len = prec = crp->Kdata->GetIntValue(i); + len= prec= crp->Kdata->GetIntValue(i); break; case FLD_LENGTH: - len = crp->Kdata->GetIntValue(i); + len= crp->Kdata->GetIntValue(i); break; case FLD_SCALE: - dec = (!crp->Kdata->IsNull(i)) ? crp->Kdata->GetIntValue(i) : -1; + dec= (!crp->Kdata->IsNull(i)) ? crp->Kdata->GetIntValue(i) : -1; break; case FLD_NULL: if (crp->Kdata->GetIntValue(i)) - tm = 0; // Nullable + tm= 0; // Nullable break; case FLD_FORMAT: - fmt = (crp->Kdata) ? crp->Kdata->GetCharValue(i) : NULL; + fmt= (crp->Kdata) ? crp->Kdata->GetCharValue(i) : NULL; break; case FLD_REM: - rem = crp->Kdata->GetCharValue(i); + rem= crp->Kdata->GetCharValue(i); break; // case FLD_CHARSET: // No good because remote table is already translated @@ -6065,19 +6093,19 @@ // break; case FLD_DEFAULT: - dft = crp->Kdata->GetCharValue(i); + dft= crp->Kdata->GetCharValue(i); break; case FLD_EXTRA: - xtra = crp->Kdata->GetCharValue(i); + xtra= crp->Kdata->GetCharValue(i); // Auto_increment is not supported yet if (!stricmp(xtra, "AUTO_INCREMENT")) - xtra = NULL; + xtra= NULL; break; case FLD_KEY: if (ttp == TAB_VIR) - key = crp->Kdata->GetCharValue(i); + key= crp->Kdata->GetCharValue(i); break; case FLD_SCHEM: @@ -6086,10 +6114,10 @@ if (schem && stricmp(schem, crp->Kdata->GetCharValue(i))) { sprintf(g->Message, "Several %s tables found, specify DBNAME", tab); - rc = HA_ERR_INTERNAL_ERROR; + rc= HA_ERR_INTERNAL_ERROR; goto err; } else if (!schem) - schem = crp->Kdata->GetCharValue(i); + schem= crp->Kdata->GetCharValue(i); } // endif ttp #endif // ODBC_SUPPORT || JAVA_SUPPORT @@ -6100,10 +6128,10 @@ #if defined(ODBC_SUPPORT) if (ttp == TAB_ODBC) { int plgtyp; - bool w = false; // Wide character type + bool w= false; // Wide character type // typ must be PLG type, not SQL type - if (!(plgtyp = TranslateSQLType(typ, dec, prec, v, w))) { + if (!(plgtyp= TranslateSQLType(typ, dec, prec, v, w))) { if (GetTypeConv() == TPC_SKIP) { // Skip this column sprintf(g->Message, "Column %s skipped (unsupported type %d)", @@ -6112,12 +6140,12 @@ continue; } else { sprintf(g->Message, "Unsupported SQL type %d", typ); - rc = HA_ERR_INTERNAL_ERROR; + rc= HA_ERR_INTERNAL_ERROR; goto err; } // endif type_conv } else - typ = plgtyp; + typ= plgtyp; switch (typ) { case TYPE_STRING: @@ -6132,10 +6160,10 @@ prec += (dec + 2); // To be safe break; case TYPE_DECIM: - prec = len; + prec= len; break; default: - dec = 0; + dec= 0; } // endswitch typ } else @@ -6145,7 +6173,7 @@ int plgtyp; // typ must be PLG type, not SQL type - if (!(plgtyp = TranslateJDBCType(typ, tn, dec, prec, v))) { + if (!(plgtyp= TranslateJDBCType(typ, tn, dec, prec, v))) { if (GetTypeConv() == TPC_SKIP) { // Skip this column sprintf(g->Message, "Column %s skipped (unsupported type %d)", @@ -6154,12 +6182,12 @@ continue; } else { sprintf(g->Message, "Unsupported SQL type %d", typ); - rc = HA_ERR_INTERNAL_ERROR; + rc= HA_ERR_INTERNAL_ERROR; goto err; } // endif type_conv } else - typ = plgtyp; + typ= plgtyp; switch (typ) { case TYPE_DOUBLE: @@ -6168,43 +6196,43 @@ prec += (dec + 2); // To be safe break; default: - dec = 0; + dec= 0; } // endswitch typ } else #endif // ODBC_SUPPORT // Make the arguments as required by add_fields if (typ == TYPE_DOUBLE) - prec = len; + prec= len; if (typ == TYPE_DATE) - prec = 0; + prec= 0; // Now add the field if (add_field(&sql, cnm, typ, prec, dec, key, tm, rem, dft, xtra, fmt, 0, dbf, v)) - rc = HA_ERR_OUT_OF_MEM; + rc= HA_ERR_OUT_OF_MEM; } // endfor i } // endif fnc if (!rc) - rc = init_table_share(thd, table_s, create_info, &sql); + rc= init_table_share(thd, table_s, create_info, &sql); //g->jump_level--; //PopUser(xp); //return rc; } else { - rc = HA_ERR_UNSUPPORTED; + rc= HA_ERR_UNSUPPORTED; } // endif ok } catch (int n) { if (trace(1)) htrc("Exception %d: %s\n", n, g->Message); - rc = HA_ERR_INTERNAL_ERROR; + rc= HA_ERR_INTERNAL_ERROR; } catch (const char *msg) { strcpy(g->Message, msg); - rc = HA_ERR_INTERNAL_ERROR; + rc= HA_ERR_INTERNAL_ERROR; } // end catch err: @@ -6273,7 +6301,7 @@ TABLE *st= table; // Probably unuseful THD *thd= ha_thd(); LEX_CSTRING cnc = table_arg->s->connect_string; -#ifdef WITH_PARTITION_STORAGE_ENGINE +#if defined(WITH_PARTITION_STORAGE_ENGINE) partition_info *part_info= table_arg->part_info; #else // !WITH_PARTITION_STORAGE_ENGINE #define part_info 0 @@ -6399,7 +6427,7 @@ host= mydef->GetHostname(); if (mydef->GetTabschema()) - db = mydef->GetTabschema(); + db= mydef->GetTabschema(); if (mydef->GetTabname()) tab= mydef->GetTabname(); @@ -6482,7 +6510,7 @@ } // endif type JSON if (type == TAB_CSV) { - const char *sep = options->separator; + const char *sep= options->separator; if (sep && strlen(sep) > 1) { sprintf(g->Message, "Invalid separator %s", sep); @@ -6684,15 +6712,15 @@ #if defined(ZIP_SUPPORT) if (options->zipped) { // Check whether the zip entry must be made from a file - PCSZ fn = GetListOption(g, "Load", options->oplist, NULL); + PCSZ fn= GetListOption(g, "Load", options->oplist, NULL); if (fn) { char zbuf[_MAX_PATH], buf[_MAX_PATH], dbpath[_MAX_PATH]; - PCSZ entry = GetListOption(g, "Entry", options->oplist, NULL); - PCSZ a = GetListOption(g, "Append", options->oplist, "NO"); - bool append = *a == '1' || *a == 'Y' || *a == 'y' || !stricmp(a, "ON"); - PCSZ m = GetListOption(g, "Mulentries", options->oplist, "NO"); - bool mul = *m == '1' || *m == 'Y' || *m == 'y' || !stricmp(m, "ON"); + PCSZ entry= GetListOption(g, "Entry", options->oplist, NULL); + PCSZ a= GetListOption(g, "Append", options->oplist, "NO"); + bool append= *a == '1' || *a == 'Y' || *a == 'y' || !stricmp(a, "ON"); + PCSZ m= GetListOption(g, "Mulentries", options->oplist, "NO"); + bool mul= *m == '1' || *m == 'Y' || *m == 'y' || !stricmp(m, "ON"); if (!entry && !mul) { my_message(ER_UNKNOWN_ERROR, "Missing entry name", MYF(0)); @@ -6711,7 +6739,7 @@ } // endif fn } // endif zipped -#endif // ZIP_SUPPORT +#endif // ZIP_SUPPORT // To check whether indexes have to be made or remade if (!g->Xchk) { @@ -6761,7 +6789,7 @@ if (SetDataPath(g, table_arg->s->db.str)) { my_message(ER_UNKNOWN_ERROR, g->Message, MYF(0)); - rc = HA_ERR_INTERNAL_ERROR; + rc= HA_ERR_INTERNAL_ERROR; } else if (cat) { if (part_info) strncpy(partname, @@ -7105,7 +7133,7 @@ /* ALTER TABLE tbl_name CONVERT TO CHARACTER SET .. and - ALTER TABLE table_name DEFAULT CHARSET = .. most likely + ALTER TABLE table_name DEFAULT CHARSET= .. most likely change column charsets and so not supported in-place through old API. @@ -7337,7 +7365,7 @@ 0x0106, /* version number (1.06) */ NULL, /* status variables */ connect_system_variables, /* system variables */ - "1.06.0009", /* string version */ + "1.06.0010", /* string version */ MariaDB_PLUGIN_MATURITY_STABLE /* maturity */ } maria_declare_plugin_end; diff -Nru mariadb-10.3-10.3.17/storage/connect/ha_connect.h mariadb-10.3-10.3.20/storage/connect/ha_connect.h --- mariadb-10.3-10.3.17/storage/connect/ha_connect.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/ha_connect.h 2019-11-06 16:01:57.000000000 +0000 @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ /** @file ha_connect.h Author Olivier Bertrand diff -Nru mariadb-10.3-10.3.17/storage/connect/inihandl.cpp mariadb-10.3-10.3.20/storage/connect/inihandl.cpp --- mariadb-10.3-10.3.17/storage/connect/inihandl.cpp 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/inihandl.cpp 2019-11-06 16:01:57.000000000 +0000 @@ -194,7 +194,7 @@ } for (key = section->key; key; key = key->next) - if (key->name[0]) { + if (key->name && key->name[0]) { fprintf(file, "%s", SVP(key->name)); if (key->value) diff -Nru mariadb-10.3-10.3.17/storage/connect/jdbconn.cpp mariadb-10.3-10.3.20/storage/connect/jdbconn.cpp --- mariadb-10.3-10.3.17/storage/connect/jdbconn.cpp 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/jdbconn.cpp 2019-11-06 16:01:57.000000000 +0000 @@ -1196,9 +1196,14 @@ if ((rc = ExecuteQuery(sql)) != RC_OK) return -1; - if ((rc = Fetch()) > 0) - SetColumnValue(1, NULL, colp->GetValue()); - else + if ((rc = Fetch()) > 0) { + try { + SetColumnValue(1, NULL, colp->GetValue()); + } catch (...) { + return -4; + } // end catch + + } else return -2; if ((rc = Fetch()) != 0) diff -Nru mariadb-10.3-10.3.17/storage/connect/jsonudf.cpp mariadb-10.3-10.3.20/storage/connect/jsonudf.cpp --- mariadb-10.3-10.3.17/storage/connect/jsonudf.cpp 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/jsonudf.cpp 2019-11-06 16:01:57.000000000 +0000 @@ -1,6 +1,6 @@ /****************** jsonudf C++ Program Source Code File (.CPP) ******************/ -/* PROGRAM NAME: jsonudf Version 1.7 */ -/* (C) Copyright to the author Olivier BERTRAND 2015-2018 */ +/* PROGRAM NAME: jsonudf Version 1.8 */ +/* (C) Copyright to the author Olivier BERTRAND 2015-2019 */ /* This program are the JSON User Defined Functions . */ /*********************************************************************************/ @@ -1686,7 +1686,7 @@ } // endif *s if (n < 1) - return (char*) "Key"; + return (PCSZ) "Key"; if (!b) { if ((p = (PSZ)PlgDBSubAlloc(g, NULL, n + 1))) { @@ -1703,7 +1703,7 @@ return (char*) s; } // endif count - return (char*) "Key"; + return (PCSZ) "Key"; } // end of MakeKey /*********************************************************************************/ diff -Nru mariadb-10.3-10.3.17/storage/connect/libdoc.cpp mariadb-10.3-10.3.20/storage/connect/libdoc.cpp --- mariadb-10.3-10.3.17/storage/connect/libdoc.cpp 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/libdoc.cpp 2019-11-06 16:01:57.000000000 +0000 @@ -1035,7 +1035,7 @@ // If name has the format m[n] only m is taken as node name if ((p = strchr(pn, '['))) - p = BufAlloc(g, pn, p - pn); + p = BufAlloc(g, pn, int(p - pn)); else p = pn; diff -Nru mariadb-10.3-10.3.17/storage/connect/mini-global.h mariadb-10.3-10.3.20/storage/connect/mini-global.h --- mariadb-10.3-10.3.17/storage/connect/mini-global.h 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/mini-global.h 2019-11-06 16:01:57.000000000 +0000 @@ -0,0 +1,33 @@ +/***********************************************************************/ +/* Definitions needed by the included files. */ +/***********************************************************************/ +#if !defined(MY_GLOBAL_H) +#define MY_GLOBAL_H +typedef unsigned int uint; +typedef unsigned int uint32; +typedef unsigned short ushort; +typedef unsigned long ulong; +typedef unsigned long DWORD; +typedef char *LPSTR; +typedef const char *LPCSTR; +typedef int BOOL; +#if defined(_WINDOWS) +typedef void *HANDLE; +#else +typedef int HANDLE; +#endif +typedef char *PSZ; +typedef const char *PCSZ; +typedef unsigned char BYTE; +typedef unsigned char uchar; +typedef long long longlong; +typedef unsigned long long ulonglong; +typedef char my_bool; +struct charset_info_st {}; +typedef const charset_info_st CHARSET_INFO; +#define FALSE 0 +#define TRUE 1 +#define Item char +#define MY_MAX(a,b) ((a>b)?(a):(b)) +#define MY_MIN(a,b) ((aGetName(), SVP(type)); +{ + PRELDEF tdp= NULL; + + if (trace(1)) + htrc("GetTableDesc: name=%s am=%s\n", tablep->GetName(), SVP(type)); + + // If not specified get the type of this table + //if (!type) + // type= Hc->GetStringOption("Type","*"); - // If not specified get the type of this table - if (!type) - type= Hc->GetStringOption("Type","*"); + tdp= MakeTableDesc(g, tablep, type); - return MakeTableDesc(g, tablep, type); - } // end of GetTableDesc + if (trace(1)) + htrc("GetTableDesc: tdp=%p\n", tdp); + + return tdp; +} // end of GetTableDesc /***********************************************************************/ /* MakeTableDesc: make a table/view description. */ @@ -497,18 +508,22 @@ PRELDEF MYCAT::MakeTableDesc(PGLOBAL g, PTABLE tablep, LPCSTR am) { TABTYPE tc; - LPCSTR name = (PSZ)PlugDup(g, tablep->GetName()); - LPCSTR schema = (PSZ)PlugDup(g, tablep->GetSchema()); + LPCSTR name= (PSZ)PlugDup(g, tablep->GetName()); + LPCSTR schema= (PSZ)PlugDup(g, tablep->GetSchema()); PRELDEF tdp= NULL; - if (trace(1)) - printf("MakeTableDesc: name=%s schema=%s am=%s\n", - name, SVP(schema), SVP(am)); + if (trace(1)) + htrc("MakeTableDesc: name=%s schema=%s am=%s\n", + name, SVP(schema), SVP(am)); /*********************************************************************/ /* Get a unique enum identifier for types. */ /*********************************************************************/ - tc= GetTypeID(am); + if (!am) { + tc= Hc->GetRealType(); + am= Hc->GetStringOption("Type","*"); + } else + tc= GetTypeID(am); switch (tc) { case TAB_FIX: @@ -523,46 +538,52 @@ case TAB_XML: tdp= new(g) XMLDEF; break; #endif // XML_SUPPORT #if defined(VCT_SUPPORT) - case TAB_VEC: tdp = new(g) VCTDEF; break; + case TAB_VEC: tdp = new(g) VCTDEF; break; #endif // VCT_SUPPORT #if defined(ODBC_SUPPORT) case TAB_ODBC: tdp= new(g) ODBCDEF; break; #endif // ODBC_SUPPORT #if defined(JAVA_SUPPORT) - case TAB_JDBC: tdp= new(g) JDBCDEF; break; + case TAB_JDBC: tdp= new(g) JDBCDEF; break; #endif // JAVA_SUPPORT #if defined(__WIN__) case TAB_MAC: tdp= new(g) MACDEF; break; case TAB_WMI: tdp= new(g) WMIDEF; break; #endif // __WIN__ case TAB_OEM: tdp= new(g) OEMDEF; break; - case TAB_TBL: tdp= new(g) TBLDEF; break; - case TAB_XCL: tdp= new(g) XCLDEF; break; - case TAB_PRX: tdp= new(g) PRXDEF; break; - case TAB_OCCUR: tdp= new(g) OCCURDEF; break; - case TAB_MYSQL: tdp= new(g) MYSQLDEF; break; + case TAB_TBL: tdp= new(g) TBLDEF; break; + case TAB_XCL: tdp= new(g) XCLDEF; break; + case TAB_PRX: tdp= new(g) PRXDEF; break; + case TAB_OCCUR: tdp= new(g) OCCURDEF; break; + case TAB_MYSQL: tdp= new(g) MYSQLDEF; break; case TAB_PIVOT: tdp= new(g) PIVOTDEF; break; case TAB_VIR: tdp= new(g) VIRDEF; break; case TAB_JSON: tdp= new(g) JSONDEF; break; #if defined(ZIP_SUPPORT) - case TAB_ZIP: tdp = new(g) ZIPDEF; break; + case TAB_ZIP: tdp = new(g) ZIPDEF; break; #endif // ZIP_SUPPORT +#if defined(REST_SUPPORT) + case TAB_REST: tdp= new (g) RESTDEF; break; +#endif // REST_SUPPORT #if defined(JAVA_SUPPORT) || defined(CMGO_SUPPORT) - case TAB_MONGO: - if (MongoEnabled()) { - tdp = new(g) MGODEF; - break; - } // endif enabled - // fall through + case TAB_MONGO: + if (MongoEnabled()) { + tdp = new(g) MGODEF; + break; + } // endif enabled + // fall through #endif // JAVA_SUPPORT || CMGO_SUPPORT - default: - sprintf(g->Message, MSG(BAD_TABLE_TYPE), am, name); + default: + sprintf(g->Message, MSG(BAD_TABLE_TYPE), am, name); } // endswitch // Do make the table/view definition if (tdp && tdp->Define(g, this, name, schema, am)) tdp= NULL; + if (trace(1)) + htrc("Table %s made\n", am); + return tdp; } // end of MakeTableDesc @@ -575,26 +596,29 @@ PTDB tdbp= NULL; // LPCSTR name= tablep->GetName(); - if (trace(1)) - printf("GetTableDB: name=%s\n", tablep->GetName()); + if (trace(1)) + htrc("GetTableDB: name=%s\n", tablep->GetName()); // Look for the description of the requested table tdp= GetTableDesc(g, tablep, type); if (tdp) { - if (trace(1)) - printf("tdb=%p type=%s\n", tdp, tdp->GetType()); + if (trace(1)) + htrc("tdb=%p type=%s\n", tdp, tdp->GetType()); + + if (tablep->GetSchema()) + tdp->Database = SetPath(g, tablep->GetSchema()); + + if (trace(2)) + htrc("Going to get table...\n"); - if (tablep->GetSchema()) - tdp->Database = SetPath(g, tablep->GetSchema()); - tdbp= tdp->GetTable(g, mode); - } // endif tdp + } // endif tdp if (tdbp) { - if (trace(1)) - printf("tdbp=%p name=%s amtype=%d\n", tdbp, tdbp->GetName(), - tdbp->GetAmType()); + if (trace(1)) + htrc("tdbp=%p name=%s amtype=%d\n", tdbp, tdbp->GetName(), + tdbp->GetAmType()); tablep->SetTo_Tdb(tdbp); tdbp->SetTable(tablep); tdbp->SetMode(mode); diff -Nru mariadb-10.3-10.3.17/storage/connect/mycat.h mariadb-10.3-10.3.20/storage/connect/mycat.h --- mariadb-10.3-10.3.17/storage/connect/mycat.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/mycat.h 2019-11-06 16:01:57.000000000 +0000 @@ -14,7 +14,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ /**************** MYCAT H Declares Source Code File (.H) ***************/ -/* Name: MYCAT.H Version 2.3 */ +/* Name: MYCAT.H Version 2.4 */ /* Author: Olivier Bertrand */ /* This file contains the CONNECT plugin MYCAT class definitions. */ /***********************************************************************/ @@ -50,6 +50,8 @@ const char *filter; const char *oplist; const char *data_charset; + const char *http; + const char *uri; ulonglong lrecl; ulonglong elements; //ulonglong estimate; diff -Nru mariadb-10.3-10.3.17/storage/connect/myconn.cpp mariadb-10.3-10.3.20/storage/connect/myconn.cpp --- mariadb-10.3-10.3.17/storage/connect/myconn.cpp 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/myconn.cpp 2019-11-06 16:01:57.000000000 +0000 @@ -879,7 +879,7 @@ PQRYRES MYSQLC::GetResult(PGLOBAL g, bool pdb) { PCSZ fmt; - char *name, v; + char *name, v= 0; int n; bool uns; PCOLRES *pcrp, crp; diff -Nru mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/r/grant2.result mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/r/grant2.result --- mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/r/grant2.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/r/grant2.result 2019-11-06 16:01:57.000000000 +0000 @@ -21,12 +21,12 @@ a 10 SELECT * FROM v1_baddefiner; -ERROR 28000: Access denied for user 'root'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connect user,localhost,user,,; SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation SELECT * FROM v1_invoker; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation SELECT * FROM v1_definer; a 10 @@ -44,9 +44,9 @@ UPDATE v1_definer SET a=13; connection user; UPDATE t1 SET a=21; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1_invoker SET a=22; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1_definer SET a=23; connection default; DROP VIEW v1_invoker, v1_definer; @@ -62,9 +62,9 @@ INSERT INTO v1_definer VALUES (13); connection user; INSERT INTO t1 VALUES (21); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO v1_invoker VALUES (22); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO v1_definer VALUES (23); connection default; DROP VIEW v1_invoker, v1_definer; @@ -83,9 +83,9 @@ ERROR 42000: CONNECT Unsupported command connection user; REPLACE INTO t1 VALUES (21); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation REPLACE INTO v1_invoker VALUES (22); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation REPLACE INTO v1_definer VALUES (23); ERROR 42000: CONNECT Unsupported command connection default; @@ -102,9 +102,9 @@ DELETE FROM v1_definer WHERE a=13; connection user; DELETE FROM t1 WHERE a=21; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM v1_invoker WHERE a=22; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM v1_definer WHERE a=23; connection default; DROP VIEW v1_invoker, v1_definer; @@ -120,9 +120,9 @@ LOAD DATA LOCAL INFILE 'MTR_SUITE_DIR/std_data/boys.txt' INTO TABLE v1_definer; connection user; LOAD DATA LOCAL INFILE 'MTR_SUITE_DIR/std_data/boys.txt' INTO TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation LOAD DATA LOCAL INFILE 'MTR_SUITE_DIR/std_data/boys.txt' INTO TABLE v1_invoker; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation LOAD DATA LOCAL INFILE 'MTR_SUITE_DIR/std_data/boys.txt' INTO TABLE v1_definer; connection default; DROP VIEW v1_invoker, v1_definer; @@ -135,7 +135,7 @@ INSERT INTO t1 VALUES (11); connection user; TRUNCATE TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; DROP TABLE t1; # Testing SQLCOM_DROP_TABLE @@ -144,7 +144,7 @@ INSERT INTO t1 VALUES (10); connection user; DROP TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; DROP TABLE t1; # Testing SQLCOM_DROP_VIEW @@ -165,7 +165,7 @@ # Testing SQLCOM_CREATE_TABLE connection user; CREATE TABLE t1 (a INT) ENGINE=CONNECT TABLE_TYPE=fix FILE_NAME='t1.fix'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; # Testing SQLCOM_LOCK_TABLES connection default; @@ -187,13 +187,13 @@ UNLOCK TABLES; connection user; LOCK TABLE t1 READ; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation LOCK TABLE t1 WRITE; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation LOCK TABLE v1_invoker READ; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation LOCK TABLE v1_invoker WRITE; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation LOCK TABLE v1_definer READ; UNLOCK TABLES; LOCK TABLE v1_definer WRITE; @@ -264,93 +264,93 @@ UPDATE v2_definer a1,v2_definer a2 SET a1.a=50 WHERE a1.a=a2.a; connection user; UPDATE t1 a1,t1 a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t1 a1,t2 a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t1 a1,t3 a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t1 a1,v1_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t1 a1,v1_definer a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t1 a1,v2_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t1 a1,v2_definer a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t2 a1,t1 a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t2 a1,t2 a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t2 a1,t3 a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t2 a1,v1_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t2 a1,v1_definer a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t2 a1,v2_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t2 a1,v2_definer a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t3 a1,t1 a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t3 a1,t2 a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t3 a1,t3 a2 SET a1.a=50 WHERE a1.a=a2.a; UPDATE t3 a1,v1_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t3 a1,v1_definer a2 SET a1.a=50 WHERE a1.a=a2.a; UPDATE t3 a1,v2_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t3 a1,v2_definer a2 SET a1.a=50 WHERE a1.a=a2.a; UPDATE v1_invoker a1,t1 a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1_invoker a1,t2 a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1_invoker a1,t3 a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1_invoker a1,v1_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1_invoker a1,v1_definer a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1_invoker a1,v2_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1_invoker a1,v2_definer a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1_definer a1,t1 a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1_definer a1,t2 a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1_definer a1,t3 a2 SET a1.a=50 WHERE a1.a=a2.a; UPDATE v1_definer a1,v1_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1_definer a1,v1_definer a2 SET a1.a=50 WHERE a1.a=a2.a; UPDATE v1_definer a1,v2_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1_definer a1,v2_definer a2 SET a1.a=50 WHERE a1.a=a2.a; UPDATE v2_invoker a1,t1 a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v2_invoker a1,t2 a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v2_invoker a1,t3 a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v2_invoker a1,v1_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v2_invoker a1,v1_definer a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v2_invoker a1,v2_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v2_invoker a1,v2_definer a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v2_definer a1,t1 a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v2_definer a1,t2 a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v2_definer a1,t3 a2 SET a1.a=50 WHERE a1.a=a2.a; UPDATE v2_definer a1,v1_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v2_definer a1,v1_definer a2 SET a1.a=50 WHERE a1.a=a2.a; UPDATE v2_definer a1,v2_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v2_definer a1,v2_definer a2 SET a1.a=50 WHERE a1.a=a2.a; connection default; DROP VIEW v1_invoker, v1_definer, v2_invoker, v2_definer; @@ -418,93 +418,93 @@ DELETE a1 FROM v2_definer a1,v2_definer a2 WHERE a1.a=a2.a; connection user; DELETE a1 FROM t1 a1,t1 a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM t1 a1,t2 a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM t1 a1,t3 a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM t1 a1,v1_invoker a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM t1 a1,v1_definer a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM t1 a1,v2_invoker a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM t1 a1,v2_definer a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM t2 a1,t1 a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM t2 a1,t2 a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM t2 a1,t3 a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM t2 a1,v1_invoker a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM t2 a1,v1_definer a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM t2 a1,v2_invoker a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM t2 a1,v2_definer a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM t3 a1,t1 a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM t3 a1,t2 a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM t3 a1,t3 a2 WHERE a1.a=a2.a; DELETE a1 FROM t3 a1,v1_invoker a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM t3 a1,v1_definer a2 WHERE a1.a=a2.a; DELETE a1 FROM t3 a1,v2_invoker a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM t3 a1,v2_definer a2 WHERE a1.a=a2.a; DELETE a1 FROM v1_invoker a1,t1 a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v1_invoker a1,t2 a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v1_invoker a1,t3 a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v1_invoker a1,v1_invoker a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v1_invoker a1,v1_definer a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v1_invoker a1,v2_invoker a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v1_invoker a1,v2_definer a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v1_definer a1,t1 a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v1_definer a1,t2 a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v1_definer a1,t3 a2 WHERE a1.a=a2.a; DELETE a1 FROM v1_definer a1,v1_invoker a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v1_definer a1,v1_definer a2 WHERE a1.a=a2.a; DELETE a1 FROM v1_definer a1,v2_invoker a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v1_definer a1,v2_definer a2 WHERE a1.a=a2.a; DELETE a1 FROM v2_invoker a1,t1 a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v2_invoker a1,t2 a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v2_invoker a1,t3 a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v2_invoker a1,v1_invoker a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v2_invoker a1,v1_definer a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v2_invoker a1,v2_invoker a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v2_invoker a1,v2_definer a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v2_definer a1,t1 a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v2_definer a1,t2 a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v2_definer a1,t3 a2 WHERE a1.a=a2.a; DELETE a1 FROM v2_definer a1,v1_invoker a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v2_definer a1,v1_definer a2 WHERE a1.a=a2.a; DELETE a1 FROM v2_definer a1,v2_invoker a2 WHERE a1.a=a2.a; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE a1 FROM v2_definer a1,v2_definer a2 WHERE a1.a=a2.a; connection default; DROP VIEW v1_invoker, v1_definer, v2_invoker, v2_definer; @@ -521,9 +521,9 @@ DROP VIEW v2; connection user; CREATE VIEW v2 AS SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation CREATE VIEW v2 AS SELECT * FROM v1_invoker; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation CREATE VIEW v2 AS SELECT * FROM v1_definer; DROP VIEW v2; connection default; @@ -546,21 +546,21 @@ INSERT INTO v1_definer SELECT * FROM v1_definer WHERE a=20; connection user; INSERT INTO t1 SELECT * FROM t1 WHERE a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO t1 SELECT * FROM v1_invoker WHERE a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO t1 SELECT * FROM v1_definer WHERE a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO v1_invoker SELECT * FROM t1 WHERE a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO v1_invoker SELECT * FROM v1_invoker WHERE a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO v1_invoker SELECT * FROM v1_definer WHERE a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO v1_definer SELECT * FROM t1 WHERE a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO v1_definer SELECT * FROM v1_invoker WHERE a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO v1_definer SELECT * FROM v1_definer WHERE a=20; connection default; DROP VIEW v1_invoker, v1_definer; @@ -591,17 +591,17 @@ ERROR 42000: CONNECT Unsupported command connection user; REPLACE INTO t1 SELECT * FROM t1 WHERE a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation REPLACE INTO t1 SELECT * FROM v1_invoker WHERE a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation REPLACE INTO t1 SELECT * FROM v1_definer WHERE a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation REPLACE INTO v1_invoker SELECT * FROM t1 WHERE a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation REPLACE INTO v1_invoker SELECT * FROM v1_invoker WHERE a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation REPLACE INTO v1_invoker SELECT * FROM v1_definer WHERE a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation REPLACE INTO v1_definer SELECT * FROM t1 WHERE a=20; ERROR 42000: CONNECT Unsupported command REPLACE INTO v1_definer SELECT * FROM v1_invoker WHERE a=20; @@ -624,7 +624,7 @@ RENAME TABLE t2 TO t1; connection user; RENAME TABLE t1 TO t2; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; DROP TABLE t1; # Testing SQLCOM_ALTER_TABLE (for ALTER..RENAME) @@ -640,7 +640,7 @@ ALTER TABLE t2 RENAME TO t1; connection user; ALTER TABLE t1 RENAME TO t2; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; DROP TABLE t1; # Testing SQLCOM_ALTER_TABLE (changing ENGINE to non-CONNECT) @@ -653,7 +653,7 @@ INSERT INTO t1 VALUES (10); connection user; ALTER TABLE t1 ENGINE=MyISAM; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; DROP TABLE t1; # Testing SQLCOM_ALTER_TABLE (changing ENGINE to CONNECT) @@ -669,7 +669,7 @@ INSERT INTO t1 VALUES (10); connection user; ALTER TABLE t1 ENGINE=CONNECT TABLE_TYPE=fix FILE_NAME='t1.fix'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; DROP TABLE t1; # Testing SQLCOM_OPTIMIZE @@ -682,7 +682,7 @@ connection user; OPTIMIZE TABLE t1; Table Op Msg_type Msg_text -test.t1 optimize Error Access denied for user 'user'@'localhost' (using password: NO) +test.t1 optimize Error Access denied; you need (at least one of) the FILE privilege(s) for this operation test.t1 optimize Error Got error 122 'This operation requires the FILE privilege' from CONNECT test.t1 optimize error Corrupt connection default; @@ -696,7 +696,7 @@ Warning 1105 This is an outward table, table data were not modified. connection user; ALTER TABLE t1 ADD c INT; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; DROP TABLE t1; # Testing SQLCOM_ALTER_TABLE (removing columns) @@ -708,7 +708,7 @@ Warning 1105 This is an outward table, table data were not modified. connection user; ALTER TABLE t1 DROP c; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; DROP TABLE t1; # Testing SQLCOM_ALTER_TABLE (adding keys) @@ -718,7 +718,7 @@ ALTER TABLE t1 ADD KEY(a); connection user; ALTER TABLE t1 ADD KEY(b); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; DROP TABLE t1; # Testing SQLCOM_ALTER_TABLE (removing keys) @@ -728,7 +728,7 @@ ALTER TABLE t1 DROP KEY a; connection user; ALTER TABLE t1 DROP KEY b; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; DROP TABLE t1; # Testing SQLCOM_CREATE_INDEX and SQLCOM_DROP_INDEX @@ -740,9 +740,9 @@ CREATE INDEX a ON t1 (a); connection user; CREATE INDEX b ON t1 (b); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DROP INDEX a ON t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; DROP TABLE t1; # Testing stored procedures @@ -757,10 +757,10 @@ CALL p_invoker(); DROP TABLE t1; CALL p_baddefiner(); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection user; CALL p_invoker(); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation CALL p_definer(); connection default; DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/r/grant.result mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/r/grant.result --- mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/r/grant.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/r/grant.result 2019-11-06 16:01:57.000000000 +0000 @@ -15,7 +15,7 @@ ftype CHAR(4) NOT NULL, size DOUBLE(12,0) NOT NULL flag=5 ) ENGINE=CONNECT TABLE_TYPE=DIR FILE_NAME='*.*'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; SELECT user(); user() @@ -34,19 +34,19 @@ user() user@localhost SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO t1 VALUES (); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM t1 WHERE path='xxx'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t1 SET path='yyy' WHERE path='xxx'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation TRUNCATE TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation ALTER TABLE t1 READONLY=1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation CREATE VIEW v1 AS SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation # Testing a VIEW created with FILE privileges but accessed with no FILE connection default; SELECT user(); @@ -58,13 +58,13 @@ user() user@localhost SELECT * FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO v1 VALUES (1,1,1,1); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1 SET path=123; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation disconnect user; connection default; SELECT user(); @@ -111,7 +111,7 @@ DROP VIEW v1; DROP TABLE t1; CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=BIN FILE_NAME='t1.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; SELECT user(); user() @@ -123,23 +123,23 @@ user() user@localhost INSERT INTO t1 VALUES (10); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t1 SET a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation TRUNCATE TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation ALTER TABLE t1 READONLY=1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation ALTER TABLE t1 FILE_NAME='t2.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DROP TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation CREATE VIEW v1 AS SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation # Testing a VIEW created with FILE privileges but accessed with no FILE connection default; SELECT user(); @@ -151,13 +151,13 @@ user() user@localhost SELECT * FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO v1 VALUES (2); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1 SET a=123; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; SELECT user(); user() @@ -173,7 +173,7 @@ user() user@localhost ALTER TABLE t1 FILE_NAME='t1.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; DROP TABLE t1; disconnect user; @@ -216,7 +216,7 @@ DROP VIEW v1; DROP TABLE t1; CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='t1.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; SELECT user(); user() @@ -228,23 +228,23 @@ user() user@localhost INSERT INTO t1 VALUES (10); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t1 SET a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation TRUNCATE TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation ALTER TABLE t1 READONLY=1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation ALTER TABLE t1 FILE_NAME='t2.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DROP TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation CREATE VIEW v1 AS SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation # Testing a VIEW created with FILE privileges but accessed with no FILE connection default; SELECT user(); @@ -256,13 +256,13 @@ user() user@localhost SELECT * FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO v1 VALUES (2); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1 SET a=123; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; SELECT user(); user() @@ -278,7 +278,7 @@ user() user@localhost ALTER TABLE t1 FILE_NAME='t1.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; DROP TABLE t1; disconnect user; @@ -321,7 +321,7 @@ DROP VIEW v1; DROP TABLE t1; CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=DBF FILE_NAME='t1.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; SELECT user(); user() @@ -333,23 +333,23 @@ user() user@localhost INSERT INTO t1 VALUES (10); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t1 SET a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation TRUNCATE TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation ALTER TABLE t1 READONLY=1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation ALTER TABLE t1 FILE_NAME='t2.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DROP TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation CREATE VIEW v1 AS SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation # Testing a VIEW created with FILE privileges but accessed with no FILE connection default; SELECT user(); @@ -361,13 +361,13 @@ user() user@localhost SELECT * FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO v1 VALUES (2); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1 SET a=123; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; SELECT user(); user() @@ -383,7 +383,7 @@ user() user@localhost ALTER TABLE t1 FILE_NAME='t1.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; DROP TABLE t1; disconnect user; @@ -426,7 +426,7 @@ DROP VIEW v1; DROP TABLE t1; CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=FIX FILE_NAME='t1.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; SELECT user(); user() @@ -438,23 +438,23 @@ user() user@localhost INSERT INTO t1 VALUES (10); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t1 SET a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation TRUNCATE TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation ALTER TABLE t1 READONLY=1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation ALTER TABLE t1 FILE_NAME='t2.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DROP TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation CREATE VIEW v1 AS SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation # Testing a VIEW created with FILE privileges but accessed with no FILE connection default; SELECT user(); @@ -466,13 +466,13 @@ user() user@localhost SELECT * FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO v1 VALUES (2); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1 SET a=123; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; SELECT user(); user() @@ -488,7 +488,7 @@ user() user@localhost ALTER TABLE t1 FILE_NAME='t1.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; DROP TABLE t1; disconnect user; @@ -531,7 +531,7 @@ DROP VIEW v1; DROP TABLE t1; CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=VEC MAX_ROWS=100 FILE_NAME='t1.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; SELECT user(); user() @@ -543,23 +543,23 @@ user() user@localhost INSERT INTO t1 VALUES (10); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t1 SET a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation TRUNCATE TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation ALTER TABLE t1 READONLY=1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation ALTER TABLE t1 FILE_NAME='t2.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DROP TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation CREATE VIEW v1 AS SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation # Testing a VIEW created with FILE privileges but accessed with no FILE connection default; SELECT user(); @@ -571,13 +571,13 @@ user() user@localhost SELECT * FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO v1 VALUES (2); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1 SET a=123; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; SELECT user(); user() @@ -593,7 +593,7 @@ user() user@localhost ALTER TABLE t1 FILE_NAME='t1.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; DROP TABLE t1; disconnect user; diff -Nru mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/r/ini_grant.result mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/r/ini_grant.result --- mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/r/ini_grant.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/r/ini_grant.result 2019-11-06 16:01:57.000000000 +0000 @@ -34,7 +34,7 @@ DROP VIEW v1; DROP TABLE t1; CREATE TABLE t1 (sec CHAR(10) NOT NULL FLAG=1, val CHAR(10) NOT NULL) ENGINE=CONNECT TABLE_TYPE=INI FILE_NAME='t1.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; SELECT user(); user() @@ -46,21 +46,21 @@ user() user@localhost INSERT INTO t1 VALUES ('sec2','val2'); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t1 SET val='val11'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation TRUNCATE TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation ALTER TABLE t1 READONLY=1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DROP TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation CREATE VIEW v1 AS SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation # Testing a VIEW created with FILE privileges but accessed with no FILE connection default; SELECT user(); @@ -72,13 +72,13 @@ user() user@localhost SELECT * FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO v1 VALUES ('sec3','val3'); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1 SET val='val11'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation disconnect user; connection default; DROP VIEW v1; diff -Nru mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/r/jdbc_postgresql.result mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/r/jdbc_postgresql.result --- mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/r/jdbc_postgresql.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/r/jdbc_postgresql.result 2019-11-06 16:01:57.000000000 +0000 @@ -1,4 +1,4 @@ -SET GLOBAL connect_class_path='C:/MariaDB-10.0/MariaDB/storage/connect/mysql-test/connect/std_data/JavaWrappers.jar;C:/Jconnectors/postgresql-42.2.1.jar'; +SET GLOBAL connect_class_path='C:/MariaDB-10.2/MariaDB/storage/connect/mysql-test/connect/std_data/JavaWrappers.jar;C:/Jconnectors/postgresql-42.2.1.jar'; CREATE TABLE t2 ( command varchar(128) not null, number int(5) not null flag=1, diff -Nru mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/r/mysql_grant.result mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/r/mysql_grant.result --- mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/r/mysql_grant.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/r/mysql_grant.result 2019-11-06 16:01:57.000000000 +0000 @@ -11,7 +11,7 @@ user() user@localhost CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=MySQL OPTION_LIST='host=localhost,user=root1,port=PORT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; SELECT user(); user() @@ -29,19 +29,19 @@ user() user@localhost SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO t1 VALUES ('xxx'); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM t1 WHERE a='xxx'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t1 SET a='yyy' WHERE a='xxx'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation TRUNCATE TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation ALTER TABLE t1 READONLY=1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation CREATE VIEW v1 AS SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation # Testing a VIEW created with FILE privileges but accessed with no FILE connection default; SELECT user(); @@ -53,13 +53,13 @@ user() user@localhost SELECT * FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO v1 VALUES (2); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1 SET a=123; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation disconnect user; connection default; SELECT user(); diff -Nru mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/r/xml2_grant.result mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/r/xml2_grant.result --- mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/r/xml2_grant.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/r/xml2_grant.result 2019-11-06 16:01:57.000000000 +0000 @@ -35,7 +35,7 @@ DROP VIEW v1; DROP TABLE t1; CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=XML OPTION_LIST='xmlsup=libxml2,rownode=row' FILE_NAME='t1.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; SELECT user(); user() @@ -47,23 +47,23 @@ user() user@localhost INSERT INTO t1 VALUES (10); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t1 SET a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation TRUNCATE TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation ALTER TABLE t1 READONLY=1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation ALTER TABLE t1 FILE_NAME='t2.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DROP TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation CREATE VIEW v1 AS SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation # Testing a VIEW created with FILE privileges but accessed with no FILE connection default; SELECT user(); @@ -75,13 +75,13 @@ user() user@localhost SELECT * FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO v1 VALUES (2); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1 SET a=123; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; SELECT user(); user() @@ -97,7 +97,7 @@ user() user@localhost ALTER TABLE t1 FILE_NAME='t1.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; DROP TABLE t1; disconnect user; diff -Nru mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/r/xml_grant.result mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/r/xml_grant.result --- mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/r/xml_grant.result 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/r/xml_grant.result 2019-11-06 16:01:57.000000000 +0000 @@ -33,7 +33,7 @@ DROP VIEW v1; DROP TABLE t1; CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=XML OPTION_LIST='xmlsup=domdoc,rownode=row' FILE_NAME='t1.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; SELECT user(); user() @@ -45,23 +45,23 @@ user() user@localhost INSERT INTO t1 VALUES (10); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t1 SET a=20; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation TRUNCATE TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation ALTER TABLE t1 READONLY=1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation ALTER TABLE t1 FILE_NAME='t2.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DROP TABLE t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation CREATE VIEW v1 AS SELECT * FROM t1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation # Testing a VIEW created with FILE privileges but accessed with no FILE connection default; SELECT user(); @@ -73,13 +73,13 @@ user() user@localhost SELECT * FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO v1 VALUES (2); -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1 SET a=123; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM v1; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; SELECT user(); user() @@ -95,7 +95,7 @@ user() user@localhost ALTER TABLE t1 FILE_NAME='t1.EXT'; -ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) +ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; DROP TABLE t1; disconnect user; diff -Nru mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/t/grant2.test mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/t/grant2.test --- mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/t/grant2.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/t/grant2.test 2019-11-06 16:01:58.000000000 +0000 @@ -23,13 +23,13 @@ SELECT * FROM t1; SELECT * FROM v1_invoker; SELECT * FROM v1_definer; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR SELECT * FROM v1_baddefiner; --connect(user,localhost,user,,) ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR SELECT * FROM t1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR SELECT * FROM v1_invoker; SELECT * FROM v1_definer; --connection default @@ -47,9 +47,9 @@ UPDATE v1_invoker SET a=12; UPDATE v1_definer SET a=13; --connection user ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t1 SET a=21; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v1_invoker SET a=22; UPDATE v1_definer SET a=23; --connection default @@ -67,9 +67,9 @@ INSERT INTO v1_invoker VALUES (12); INSERT INTO v1_definer VALUES (13); --connection user ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR INSERT INTO t1 VALUES (21); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR INSERT INTO v1_invoker VALUES (22); INSERT INTO v1_definer VALUES (23); --connection default @@ -79,7 +79,7 @@ --echo # Testing SQLCOM_REPLACE # REPLACE is not supported by ConnectSE, so we're testing the difference -# between ER_ACCESS_DENIED_ERROR vs ER_NOT_ALLOWED_COMMAND +# between ER_SPECIFIC_ACCESS_DENIED_ERROR vs ER_NOT_ALLOWED_COMMAND --connection default CREATE TABLE t1 (a INT) ENGINE=CONNECT TABLE_TYPE=fix FILE_NAME='t1.fix'; INSERT INTO t1 VALUES (10); @@ -92,9 +92,9 @@ --error ER_NOT_ALLOWED_COMMAND REPLACE INTO v1_definer VALUES (13); --connection user ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR REPLACE INTO t1 VALUES (21); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR REPLACE INTO v1_invoker VALUES (22); --error ER_NOT_ALLOWED_COMMAND REPLACE INTO v1_definer VALUES (23); @@ -113,9 +113,9 @@ DELETE FROM v1_invoker WHERE a=12; DELETE FROM v1_definer WHERE a=13; --connection user ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE FROM t1 WHERE a=21; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE FROM v1_invoker WHERE a=22; DELETE FROM v1_definer WHERE a=23; --connection default @@ -137,10 +137,10 @@ --eval LOAD DATA LOCAL INFILE '$MTR_SUITE_DIR/std_data/boys.txt' INTO TABLE v1_definer --connection user --replace_result $MTR_SUITE_DIR MTR_SUITE_DIR ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR --eval LOAD DATA LOCAL INFILE '$MTR_SUITE_DIR/std_data/boys.txt' INTO TABLE t1 --replace_result $MTR_SUITE_DIR MTR_SUITE_DIR ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR --eval LOAD DATA LOCAL INFILE '$MTR_SUITE_DIR/std_data/boys.txt' INTO TABLE v1_invoker --replace_result $MTR_SUITE_DIR MTR_SUITE_DIR --eval LOAD DATA LOCAL INFILE '$MTR_SUITE_DIR/std_data/boys.txt' INTO TABLE v1_definer @@ -156,7 +156,7 @@ TRUNCATE TABLE t1; INSERT INTO t1 VALUES (11); --connection user ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR TRUNCATE TABLE t1; --connection default DROP TABLE t1; @@ -168,7 +168,7 @@ CREATE TABLE t1 (a INT) ENGINE=CONNECT TABLE_TYPE=fix FILE_NAME='t1.fix'; INSERT INTO t1 VALUES (10); --connection user ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DROP TABLE t1; --connection default DROP TABLE t1; @@ -193,7 +193,7 @@ --echo # Testing SQLCOM_CREATE_TABLE --connection user ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR CREATE TABLE t1 (a INT) ENGINE=CONNECT TABLE_TYPE=fix FILE_NAME='t1.fix'; --connection default @@ -216,13 +216,13 @@ LOCK TABLE v1_definer WRITE; UNLOCK TABLES; --connection user ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR LOCK TABLE t1 READ; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR LOCK TABLE t1 WRITE; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR LOCK TABLE v1_invoker READ; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR LOCK TABLE v1_invoker WRITE; LOCK TABLE v1_definer READ; UNLOCK TABLES; @@ -299,108 +299,108 @@ --connection user # All queries with t1 should fail ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t1 a1,t1 a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t1 a1,t2 a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t1 a1,t3 a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t1 a1,v1_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t1 a1,v1_definer a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t1 a1,v2_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t1 a1,v2_definer a2 SET a1.a=50 WHERE a1.a=a2.a; # All queries with t2 should fail ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t2 a1,t1 a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t2 a1,t2 a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t2 a1,t3 a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t2 a1,v1_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t2 a1,v1_definer a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t2 a1,v2_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t2 a1,v2_definer a2 SET a1.a=50 WHERE a1.a=a2.a; # t3 does not need FILE_ALC ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t3 a1,t1 a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t3 a1,t2 a2 SET a1.a=50 WHERE a1.a=a2.a; # This is OK: UPDATE t3 a1,t3 a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t3 a1,v1_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; # This is OK: UPDATE t3 a1,v1_definer a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t3 a1,v2_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; # This is OK: UPDATE t3 a1,v2_definer a2 SET a1.a=50 WHERE a1.a=a2.a; # All queries with v1_invoker should fail ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v1_invoker a1,t1 a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v1_invoker a1,t2 a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v1_invoker a1,t3 a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v1_invoker a1,v1_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v1_invoker a1,v1_definer a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v1_invoker a1,v2_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v1_invoker a1,v2_definer a2 SET a1.a=50 WHERE a1.a=a2.a; # v1_definer does not need FILE_ACL from the invoker ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v1_definer a1,t1 a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v1_definer a1,t2 a2 SET a1.a=50 WHERE a1.a=a2.a; UPDATE v1_definer a1,t3 a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v1_definer a1,v1_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; UPDATE v1_definer a1,v1_definer a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v1_definer a1,v2_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; UPDATE v1_definer a1,v2_definer a2 SET a1.a=50 WHERE a1.a=a2.a; # All queries with v2_invoker should fail ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v2_invoker a1,t1 a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v2_invoker a1,t2 a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v2_invoker a1,t3 a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v2_invoker a1,v1_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v2_invoker a1,v1_definer a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v2_invoker a1,v2_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v2_invoker a1,v2_definer a2 SET a1.a=50 WHERE a1.a=a2.a; # v2_definer does not need FILE_ACL from the invoker ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v2_definer a1,t1 a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v2_definer a1,t2 a2 SET a1.a=50 WHERE a1.a=a2.a; UPDATE v2_definer a1,t3 a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v2_definer a1,v1_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; UPDATE v2_definer a1,v1_definer a2 SET a1.a=50 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v2_definer a1,v2_invoker a2 SET a1.a=50 WHERE a1.a=a2.a; UPDATE v2_definer a1,v2_definer a2 SET a1.a=50 WHERE a1.a=a2.a; @@ -476,108 +476,108 @@ --connection user # All queries with t1 should fail ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM t1 a1,t1 a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM t1 a1,t2 a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM t1 a1,t3 a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM t1 a1,v1_invoker a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM t1 a1,v1_definer a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM t1 a1,v2_invoker a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM t1 a1,v2_definer a2 WHERE a1.a=a2.a; # All queries with t2 should fail ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM t2 a1,t1 a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM t2 a1,t2 a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM t2 a1,t3 a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM t2 a1,v1_invoker a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM t2 a1,v1_definer a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM t2 a1,v2_invoker a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM t2 a1,v2_definer a2 WHERE a1.a=a2.a; # t3 does not need FILE_ALC ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM t3 a1,t1 a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM t3 a1,t2 a2 WHERE a1.a=a2.a; # This is OK: DELETE a1 FROM t3 a1,t3 a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM t3 a1,v1_invoker a2 WHERE a1.a=a2.a; # This is OK: DELETE a1 FROM t3 a1,v1_definer a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM t3 a1,v2_invoker a2 WHERE a1.a=a2.a; # This is OK: DELETE a1 FROM t3 a1,v2_definer a2 WHERE a1.a=a2.a; # All queries with v1_invoker should fail ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v1_invoker a1,t1 a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v1_invoker a1,t2 a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v1_invoker a1,t3 a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v1_invoker a1,v1_invoker a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v1_invoker a1,v1_definer a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v1_invoker a1,v2_invoker a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v1_invoker a1,v2_definer a2 WHERE a1.a=a2.a; # v1_definer does not need FILE_ACL from the invoker ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v1_definer a1,t1 a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v1_definer a1,t2 a2 WHERE a1.a=a2.a; DELETE a1 FROM v1_definer a1,t3 a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v1_definer a1,v1_invoker a2 WHERE a1.a=a2.a; DELETE a1 FROM v1_definer a1,v1_definer a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v1_definer a1,v2_invoker a2 WHERE a1.a=a2.a; DELETE a1 FROM v1_definer a1,v2_definer a2 WHERE a1.a=a2.a; # All queries with v2_invoker should fail ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v2_invoker a1,t1 a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v2_invoker a1,t2 a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v2_invoker a1,t3 a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v2_invoker a1,v1_invoker a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v2_invoker a1,v1_definer a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v2_invoker a1,v2_invoker a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v2_invoker a1,v2_definer a2 WHERE a1.a=a2.a; # v2_definer does not need FILE_ACL from the invoker ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v2_definer a1,t1 a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v2_definer a1,t2 a2 WHERE a1.a=a2.a; DELETE a1 FROM v2_definer a1,t3 a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v2_definer a1,v1_invoker a2 WHERE a1.a=a2.a; DELETE a1 FROM v2_definer a1,v1_definer a2 WHERE a1.a=a2.a; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE a1 FROM v2_definer a1,v2_invoker a2 WHERE a1.a=a2.a; DELETE a1 FROM v2_definer a1,v2_definer a2 WHERE a1.a=a2.a; @@ -598,9 +598,9 @@ CREATE VIEW v2 AS SELECT * FROM v1_definer; DROP VIEW v2; --connection user ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR CREATE VIEW v2 AS SELECT * FROM t1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR CREATE VIEW v2 AS SELECT * FROM v1_invoker; CREATE VIEW v2 AS SELECT * FROM v1_definer; DROP VIEW v2; @@ -625,21 +625,21 @@ INSERT INTO v1_definer SELECT * FROM v1_invoker WHERE a=20; INSERT INTO v1_definer SELECT * FROM v1_definer WHERE a=20; --connection user ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR INSERT INTO t1 SELECT * FROM t1 WHERE a=20; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR INSERT INTO t1 SELECT * FROM v1_invoker WHERE a=20; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR INSERT INTO t1 SELECT * FROM v1_definer WHERE a=20; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR INSERT INTO v1_invoker SELECT * FROM t1 WHERE a=20; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR INSERT INTO v1_invoker SELECT * FROM v1_invoker WHERE a=20; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR INSERT INTO v1_invoker SELECT * FROM v1_definer WHERE a=20; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR INSERT INTO v1_definer SELECT * FROM t1 WHERE a=20; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR INSERT INTO v1_definer SELECT * FROM v1_invoker WHERE a=20; # This is OK: INSERT INTO v1_definer SELECT * FROM v1_definer WHERE a=20; @@ -650,7 +650,7 @@ --echo # Testing SQLCOM_REPLACE_SELECT # REPLACE is not supported by CONNECT -# so we're testing ER_NOT_ALLOWED_COMMAND vs ER_ACCESS_DENIED_ERROR here +# so we're testing ER_NOT_ALLOWED_COMMAND vs ER_SPECIFIC_ACCESS_DENIED_ERROR here --connection default CREATE TABLE t1 (a INT) ENGINE=CONNECT TABLE_TYPE=fix FILE_NAME='t1.fix'; INSERT INTO t1 VALUES (10); @@ -676,17 +676,17 @@ REPLACE INTO v1_definer SELECT * FROM v1_definer WHERE a=20; --connection user ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR REPLACE INTO t1 SELECT * FROM t1 WHERE a=20; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR REPLACE INTO t1 SELECT * FROM v1_invoker WHERE a=20; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR REPLACE INTO t1 SELECT * FROM v1_definer WHERE a=20; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR REPLACE INTO v1_invoker SELECT * FROM t1 WHERE a=20; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR REPLACE INTO v1_invoker SELECT * FROM v1_invoker WHERE a=20; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR REPLACE INTO v1_invoker SELECT * FROM v1_definer WHERE a=20; --error ER_NOT_ALLOWED_COMMAND REPLACE INTO v1_definer SELECT * FROM t1 WHERE a=20; @@ -708,7 +708,7 @@ RENAME TABLE t2 TO t1; --connection user # TODO: Perhaps FILE_ACL is needed for RENAME. Discuss with Oliver. ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR RENAME TABLE t1 TO t2; --connection default DROP TABLE t1; @@ -723,7 +723,7 @@ ALTER TABLE t2 RENAME TO t1; --connection user # TODO: Perhaps FILE_ACL is not needed for ALTER..RENAME. Discuss with Olivier. ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR ALTER TABLE t1 RENAME TO t2; --connection default DROP TABLE t1; @@ -739,7 +739,7 @@ CREATE TABLE t1 (a INT) ENGINE=CONNECT TABLE_TYPE=fix FILE_NAME='t1.fix'; INSERT INTO t1 VALUES (10); --connection user ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR ALTER TABLE t1 ENGINE=MyISAM; --connection default DROP TABLE t1; @@ -756,7 +756,7 @@ CREATE TABLE t1 (a INT) ENGINE=MyISAM; INSERT INTO t1 VALUES (10); --connection user ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR ALTER TABLE t1 ENGINE=CONNECT TABLE_TYPE=fix FILE_NAME='t1.fix'; --connection default DROP TABLE t1; @@ -779,7 +779,7 @@ INSERT INTO t1 VALUES (10); ALTER TABLE t1 ADD b INT; --connection user ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR ALTER TABLE t1 ADD c INT; --connection default DROP TABLE t1; @@ -791,7 +791,7 @@ INSERT INTO t1 VALUES (10,10,10); ALTER TABLE t1 DROP b; --connection user ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR ALTER TABLE t1 DROP c; --connection default DROP TABLE t1; @@ -803,7 +803,7 @@ INSERT INTO t1 VALUES (10,10); ALTER TABLE t1 ADD KEY(a); --connection user ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR ALTER TABLE t1 ADD KEY(b); --connection default DROP TABLE t1; @@ -816,7 +816,7 @@ INSERT INTO t1 VALUES (10,10); ALTER TABLE t1 DROP KEY a; --connection user ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR ALTER TABLE t1 DROP KEY b; --connection default DROP TABLE t1; @@ -831,9 +831,9 @@ DROP INDEX a ON t1; CREATE INDEX a ON t1 (a); --connection user ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR CREATE INDEX b ON t1 (b); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DROP INDEX a ON t1; --connection default DROP TABLE t1; @@ -852,11 +852,11 @@ DROP TABLE t1; CALL p_invoker(); DROP TABLE t1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR CALL p_baddefiner(); --connection user ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR CALL p_invoker(); CALL p_definer(); diff -Nru mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/t/grant.inc mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/t/grant.inc --- mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/t/grant.inc 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/t/grant.inc 2019-11-06 16:01:58.000000000 +0000 @@ -25,7 +25,7 @@ # Making sure DROP erased the data file --error 1 --remove_file $MYSQLD_DATADIR/test/t1.$FILE_EXT ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR --eval CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT $TABLE_OPTIONS FILE_NAME='t1.EXT' --connection default SELECT user(); @@ -33,23 +33,23 @@ INSERT INTO t1 VALUES (10); --connection user SELECT user(); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR INSERT INTO t1 VALUES (10); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR SELECT * FROM t1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t1 SET a=20; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE FROM t1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR TRUNCATE TABLE t1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR ALTER TABLE t1 READONLY=1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR ALTER TABLE t1 FILE_NAME='t2.EXT'; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DROP TABLE t1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR CREATE VIEW v1 AS SELECT * FROM t1; --echo # Testing a VIEW created with FILE privileges but accessed with no FILE --connection default @@ -57,13 +57,13 @@ CREATE SQL SECURITY INVOKER VIEW v1 AS SELECT * FROM t1; --connection user SELECT user(); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR SELECT * FROM v1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR INSERT INTO v1 VALUES (2); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v1 SET a=123; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE FROM v1; --connection default SELECT user(); @@ -74,7 +74,7 @@ INSERT INTO t1 VALUES (10); --connection user SELECT user(); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR ALTER TABLE t1 FILE_NAME='t1.EXT'; --connection default DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/t/grant.test mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/t/grant.test --- mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/t/grant.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/t/grant.test 2019-11-06 16:01:58.000000000 +0000 @@ -11,7 +11,7 @@ --connect(user,localhost,user,,) --connection user SELECT user(); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR CREATE TABLE t1 ( path VARCHAR(256) NOT NULL flag=1, fname VARCHAR(256) NOT NULL, @@ -32,19 +32,19 @@ --connection user SELECT user(); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR SELECT * FROM t1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR INSERT INTO t1 VALUES (); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE FROM t1 WHERE path='xxx'; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t1 SET path='yyy' WHERE path='xxx'; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR TRUNCATE TABLE t1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR ALTER TABLE t1 READONLY=1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR CREATE VIEW v1 AS SELECT * FROM t1; --echo # Testing a VIEW created with FILE privileges but accessed with no FILE @@ -53,13 +53,13 @@ CREATE SQL SECURITY INVOKER VIEW v1 AS SELECT * FROM t1; --connection user SELECT user(); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR SELECT * FROM v1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR INSERT INTO v1 VALUES (1,1,1,1); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v1 SET path=123; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE FROM v1; --disconnect user diff -Nru mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/t/ini_grant.test mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/t/ini_grant.test --- mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/t/ini_grant.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/t/ini_grant.test 2019-11-06 16:01:58.000000000 +0000 @@ -29,7 +29,7 @@ # Making sure DROP erased the data file --error 1 --remove_file $MYSQLD_DATADIR/test/t1.ini ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR CREATE TABLE t1 (sec CHAR(10) NOT NULL FLAG=1, val CHAR(10) NOT NULL) ENGINE=CONNECT TABLE_TYPE=INI FILE_NAME='t1.EXT'; --connection default SELECT user(); @@ -37,21 +37,21 @@ INSERT INTO t1 VALUES ('sec1','val1'); --connection user SELECT user(); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR INSERT INTO t1 VALUES ('sec2','val2'); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR SELECT * FROM t1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t1 SET val='val11'; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE FROM t1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR TRUNCATE TABLE t1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR ALTER TABLE t1 READONLY=1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DROP TABLE t1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR CREATE VIEW v1 AS SELECT * FROM t1; --echo # Testing a VIEW created with FILE privileges but accessed with no FILE --connection default @@ -59,13 +59,13 @@ CREATE SQL SECURITY INVOKER VIEW v1 AS SELECT * FROM t1; --connection user SELECT user(); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR SELECT * FROM v1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR INSERT INTO v1 VALUES ('sec3','val3'); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v1 SET val='val11'; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE FROM v1; --disconnect user --connection default diff -Nru mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/t/mysql_grant.test mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/t/mysql_grant.test --- mariadb-10.3-10.3.17/storage/connect/mysql-test/connect/t/mysql_grant.test 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/mysql-test/connect/t/mysql_grant.test 2019-11-06 16:01:58.000000000 +0000 @@ -27,7 +27,7 @@ --connection user SELECT user(); --replace_result $PORT PORT ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR --eval CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=MySQL OPTION_LIST='host=localhost,user=root1,port=$PORT' --connection default SELECT user(); @@ -38,19 +38,19 @@ SELECT * FROM t1; --connection user SELECT user(); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR SELECT * FROM t1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR INSERT INTO t1 VALUES ('xxx'); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE FROM t1 WHERE a='xxx'; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE t1 SET a='yyy' WHERE a='xxx'; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR TRUNCATE TABLE t1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR ALTER TABLE t1 READONLY=1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR CREATE VIEW v1 AS SELECT * FROM t1; --echo # Testing a VIEW created with FILE privileges but accessed with no FILE @@ -59,13 +59,13 @@ CREATE SQL SECURITY INVOKER VIEW v1 AS SELECT * FROM t1; --connection user SELECT user(); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR SELECT * FROM v1; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR INSERT INTO v1 VALUES (2); ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR UPDATE v1 SET a=123; ---error ER_ACCESS_DENIED_ERROR +--error ER_SPECIFIC_ACCESS_DENIED_ERROR DELETE FROM v1; --disconnect user diff -Nru mariadb-10.3-10.3.17/storage/connect/osutil.h mariadb-10.3-10.3.20/storage/connect/osutil.h --- mariadb-10.3-10.3.17/storage/connect/osutil.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/osutil.h 2019-11-06 16:01:58.000000000 +0000 @@ -3,7 +3,11 @@ #define __OSUTIL_H__ #if defined(UNIX) || defined(UNIV_LINUX) +#if defined(MARIADB) #include "my_global.h" +#else +#include "mini-global.h" +#endif #include #include #include "os.h" diff -Nru mariadb-10.3-10.3.17/storage/connect/plgdbsem.h mariadb-10.3-10.3.20/storage/connect/plgdbsem.h --- mariadb-10.3-10.3.17/storage/connect/plgdbsem.h 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/plgdbsem.h 2019-11-06 16:01:58.000000000 +0000 @@ -1,7 +1,7 @@ /************** PlgDBSem H Declares Source Code File (.H) **************/ -/* Name: PLGDBSEM.H Version 3.7 */ +/* Name: PLGDBSEM.H Version 3.8 */ /* */ -/* (C) Copyright to the author Olivier BERTRAND 1998-2017 */ +/* (C) Copyright to the author Olivier BERTRAND 1998-2019 */ /* */ /* This file contains the CONNECT storage engine definitions. */ /***********************************************************************/ @@ -82,6 +82,7 @@ TAB_JDBC = 26, /* Table accessed via JDBC */ TAB_ZIP = 27, /* ZIP file info table */ TAB_MONGO = 28, /* Table retrieved from MongoDB */ + TAB_REST = 29, /* Table retrieved from Rest */ TAB_NIY = 30}; /* Table not implemented yet */ enum AMT {TYPE_AM_ERROR = 0, /* Type not defined */ @@ -400,6 +401,7 @@ typedef class PIVOTDEF *PPIVOTDEF; typedef class DOMDEF *PDOMDEF; typedef class DIRDEF *PDIRDEF; +typedef class RESTDEF *PRESTDEF; typedef class OEMDEF *POEMDEF; typedef class COLCRT *PCOLCRT; typedef class COLDEF *PCOLDEF; diff -Nru mariadb-10.3-10.3.17/storage/connect/plugutil.cpp mariadb-10.3-10.3.20/storage/connect/plugutil.cpp --- mariadb-10.3-10.3.17/storage/connect/plugutil.cpp 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/plugutil.cpp 2019-11-06 16:01:58.000000000 +0000 @@ -2,11 +2,11 @@ /* */ /* PROGRAM NAME: PLUGUTIL */ /* ------------- */ -/* Version 3.0 */ +/* Version 3.1 */ /* */ /* COPYRIGHT: */ /* ---------- */ -/* (C) Copyright to the author Olivier BERTRAND 1993-2017 */ +/* (C) Copyright to the author Olivier BERTRAND 1993-2019 */ /* */ /* WHAT THIS PROGRAM DOES: */ /* ----------------------- */ @@ -111,21 +111,31 @@ #endif // UNIX /**************************************************************************/ -/* Tracing output function. */ +/* Conditional tracing output function. */ /**************************************************************************/ -void htrc(char const *fmt, ...) - { - va_list ap; - va_start (ap, fmt); - +void xtrc(uint x, char const *fmt, ...) +{ + if (GetTraceValue() & x) { + va_list ap; + va_start(ap, fmt); + + vfprintf(stderr, fmt, ap); + va_end(ap); + } // endif x -//if (trace == 1) -// vfprintf(debug, fmt, ap); -//else - vfprintf(stderr, fmt, ap); +} // end of xtrc - va_end (ap); - } // end of htrc +/**************************************************************************/ +/* Tracing output function. */ +/**************************************************************************/ +void htrc(char const* fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + + vfprintf(stderr, fmt, ap); + va_end(ap); +} // end of htrc /***********************************************************************/ /* Plug initialization routine. */ diff -Nru mariadb-10.3-10.3.17/storage/connect/reldef.cpp mariadb-10.3-10.3.20/storage/connect/reldef.cpp --- mariadb-10.3-10.3.17/storage/connect/reldef.cpp 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/reldef.cpp 2019-11-06 16:01:58.000000000 +0000 @@ -81,51 +81,51 @@ /* This function return a pointer to the Table Option Struct. */ /***********************************************************************/ PTOS RELDEF::GetTopt(void) - { - return Hc->GetTableOptionStruct(); - } // end of GetTopt + { + return Hc->GetTableOptionStruct(); + } // end of GetTopt /***********************************************************************/ /* This function sets an integer table information. */ /***********************************************************************/ bool RELDEF::SetIntCatInfo(PCSZ what, int n) - { - return Hc->SetIntegerOption(what, n); - } // end of SetIntCatInfo + { + return Hc->SetIntegerOption(what, n); + } // end of SetIntCatInfo /***********************************************************************/ /* This function returns integer table information. */ /***********************************************************************/ int RELDEF::GetIntCatInfo(PCSZ what, int idef) - { - int n= Hc->GetIntegerOption(what); + { + int n= Hc->GetIntegerOption(what); - return (n == NO_IVAL) ? idef : n; - } // end of GetIntCatInfo + return (n == NO_IVAL) ? idef : n; + } // end of GetIntCatInfo /***********************************************************************/ /* This function returns Boolean table information. */ /***********************************************************************/ bool RELDEF::GetBoolCatInfo(PCSZ what, bool bdef) - { - bool b= Hc->GetBooleanOption(what, bdef); + { + bool b= Hc->GetBooleanOption(what, bdef); - return b; - } // end of GetBoolCatInfo + return b; + } // end of GetBoolCatInfo /***********************************************************************/ /* This function returns size catalog information. */ /***********************************************************************/ int RELDEF::GetSizeCatInfo(PCSZ what, PCSZ sdef) - { - char c; - PCSZ s; + { + char c; + PCSZ s; int i, n= 0; - if (!(s= Hc->GetStringOption(what))) - s= sdef; + if (!(s= Hc->GetStringOption(what))) + s= sdef; - if ((i= sscanf(s, " %d %c ", &n, &c)) == 2) + if ((i= sscanf(s, " %d %c ", &n, &c)) == 2) switch (toupper(c)) { case 'M': n *= 1024; @@ -141,41 +141,41 @@ /* This function sets char table information in buf. */ /***********************************************************************/ int RELDEF::GetCharCatInfo(PCSZ what, PCSZ sdef, char *buf, int size) - { - PCSZ s= Hc->GetStringOption(what); + { + PCSZ s= Hc->GetStringOption(what); - strncpy(buf, ((s) ? s : sdef), size); - return size; - } // end of GetCharCatInfo + strncpy(buf, ((s) ? s : sdef), size); + return size; + } // end of GetCharCatInfo /***********************************************************************/ /* To be used by any TDB's. */ /***********************************************************************/ bool RELDEF::Partitioned(void) - { - return Hc->IsPartitioned(); - } // end of Partitioned + { + return Hc->IsPartitioned(); + } // end of Partitioned /***********************************************************************/ /* This function returns string table information. */ /* Default parameter is "*" to get the handler default. */ /***********************************************************************/ char *RELDEF::GetStringCatInfo(PGLOBAL g, PCSZ what, PCSZ sdef) - { - char *sval = NULL; - PCSZ name, s= Hc->GetStringOption(what, sdef); - - if (s) { + { + char *sval = NULL; + PCSZ name, s= Hc->GetStringOption(what, sdef); + + if (s) { if (!Hc->IsPartitioned() || (stricmp(what, "filename") && stricmp(what, "tabname") && stricmp(what, "connect"))) - sval= PlugDup(g, s); + sval= PlugDup(g, s); else sval= (char*)s; } else if (!stricmp(what, "filename")) { // Return default file name - PCSZ ftype= Hc->GetStringOption("Type", "*"); + PCSZ ftype= Hc->GetStringOption("Type", "*"); int i, n; if (IsFileType(GetTypeID(ftype))) { @@ -183,7 +183,7 @@ sval= (char*)PlugSubAlloc(g, NULL, strlen(name) + 12); strcat(strcpy(sval, name), "."); n= strlen(sval); - + // Fold ftype to lower case for (i= 0; i < 12; i++) if (!ftype[i]) { @@ -196,8 +196,8 @@ } // endif s - return sval; - } // end of GetStringCatInfo + return sval; + } // end of GetStringCatInfo /* --------------------------- Class TABDEF -------------------------- */ @@ -223,14 +223,14 @@ /***********************************************************************/ /* Define: initialize the table definition block from XDB file. */ /***********************************************************************/ -bool TABDEF::Define(PGLOBAL g, PCATLG cat, - LPCSTR name, LPCSTR schema, LPCSTR am) +bool TABDEF::Define(PGLOBAL g, PCATLG cat, + LPCSTR name, LPCSTR schema, LPCSTR am) { int poff = 0; - Hc = ((MYCAT*)cat)->GetHandler(); - Name = (PSZ)name; - Schema = (PSZ)Hc->GetDBName(schema); + Hc = ((MYCAT*)cat)->GetHandler(); + Name = (PSZ)name; + Schema = (PSZ)Hc->GetDBName(schema); Cat = cat; Catfunc = GetFuncID(GetStringCatInfo(g, "Catfunc", NULL)); Elemt = GetIntCatInfo("Elements", 0); @@ -263,14 +263,14 @@ /* This function returns column table information. */ /***********************************************************************/ int TABDEF::GetColCatInfo(PGLOBAL g) - { - char *type= GetStringCatInfo(g, "Type", "*"); + { + char *type= GetStringCatInfo(g, "Type", "*"); char c, fty, eds; - int i, n, loff, poff, nof, nlg; - void *field= NULL; + int i, n, loff, poff, nof, nlg; + void *field= NULL; TABTYPE tc; PCOLDEF cdp, lcdp= NULL, tocols= NULL; - PCOLINFO pcf= (PCOLINFO)PlugSubAlloc(g, NULL, sizeof(COLINFO)); + PCOLINFO pcf= (PCOLINFO)PlugSubAlloc(g, NULL, sizeof(COLINFO)); memset(pcf, 0, sizeof(COLINFO)); @@ -278,33 +278,33 @@ tc= (Catfunc == FNC_NO) ? GetTypeID(type) : TAB_PRX; // Take care of the column definitions - i= poff= nof= nlg= 0; + i= poff= nof= nlg= 0; #if defined(__WIN__) - // Offsets of HTML and DIR tables start from 0, DBF at 1 - loff= (tc == TAB_DBF) ? 1 : (tc == TAB_XML || tc == TAB_DIR) ? -1 : 0; + // Offsets of HTML and DIR tables start from 0, DBF at 1 + loff= (tc == TAB_DBF) ? 1 : (tc == TAB_XML || tc == TAB_DIR) ? -1 : 0; #else // !__WIN__ - // Offsets of HTML tables start from 0, DIR and DBF at 1 - loff = (tc == TAB_DBF || tc == TAB_DIR) ? 1 : (tc == TAB_XML) ? -1 : 0; + // Offsets of HTML tables start from 0, DIR and DBF at 1 + loff = (tc == TAB_DBF || tc == TAB_DIR) ? 1 : (tc == TAB_XML) ? -1 : 0; #endif // !__WIN__ while (true) { - // Default Offset depends on table type - switch (tc) { + // Default Offset depends on table type + switch (tc) { case TAB_DOS: case TAB_FIX: case TAB_BIN: case TAB_VEC: case TAB_DBF: - poff= loff + nof; // Default next offset - nlg= MY_MAX(nlg, poff); // Default lrecl + poff= loff + nof; // Default next offset + nlg= MY_MAX(nlg, poff); // Default lrecl break; case TAB_CSV: case TAB_FMT: - nlg+= nof; + nlg+= nof; case TAB_DIR: case TAB_XML: - poff= loff + (pcf->Flags & U_VIRTUAL ? 0 : 1); + poff= loff + (pcf->Flags & U_VIRTUAL ? 0 : 1); break; case TAB_INI: case TAB_MAC: @@ -316,39 +316,39 @@ poff = 0; // Offset represents an independant flag break; default: // VCT PLG ODBC JDBC MYSQL WMI... - poff = 0; // NA + poff = 0; // NA break; - } // endswitch tc + } // endswitch tc -// do { - field= Hc->GetColumnOption(g, field, pcf); +// do { + field= Hc->GetColumnOption(g, field, pcf); // } while (field && (*pcf->Name =='*' /*|| pcf->Flags & U_VIRTUAL*/)); - if (tc == TAB_DBF && pcf->Type == TYPE_DATE && !pcf->Datefmt) { - // DBF date format defaults to 'YYYMMDD' - pcf->Datefmt= "YYYYMMDD"; - pcf->Length= 8; - } // endif tc + if (tc == TAB_DBF && pcf->Type == TYPE_DATE && !pcf->Datefmt) { + // DBF date format defaults to 'YYYMMDD' + pcf->Datefmt= "YYYYMMDD"; + pcf->Length= 8; + } // endif tc - if (!field) - break; + if (!field) + break; // Allocate the column description block cdp= new(g) COLDEF; if ((nof= cdp->Define(g, NULL, pcf, poff)) < 0) - return -1; // Error, probably unhandled type - else - loff= cdp->GetOffset(); - - switch (tc) { - case TAB_VEC: - cdp->SetOffset(0); // Not to have shift - case TAB_BIN: - // BIN/VEC are packed by default + return -1; // Error, probably unhandled type + else + loff= cdp->GetOffset(); + + switch (tc) { + case TAB_VEC: + cdp->SetOffset(0); // Not to have shift + case TAB_BIN: + // BIN/VEC are packed by default if (nof) { - // Field width is the internal representation width - // that can also depend on the column format + // Field width is the internal representation width + // that can also depend on the column format fty = cdp->Decode ? 'C' : 'X'; eds = 0; n = 0; @@ -371,38 +371,38 @@ if (n) nof = n; else switch (fty) { - case 'X': + case 'X': if (eds && IsTypeChar(cdp->Buf_Type)) nof = sizeof(longlong); else nof= cdp->Clen; break; - case 'C': break; - case 'R': - case 'F': nof = sizeof(float); break; - case 'I': nof = sizeof(int); break; - case 'D': nof = sizeof(double); break; - case 'S': nof = sizeof(short); break; - case 'T': nof = sizeof(char); break; - case 'G': nof = sizeof(longlong); break; - default: /* Wrong format */ + case 'C': break; + case 'R': + case 'F': nof = sizeof(float); break; + case 'I': nof = sizeof(int); break; + case 'D': nof = sizeof(double); break; + case 'S': nof = sizeof(short); break; + case 'T': nof = sizeof(char); break; + case 'G': nof = sizeof(longlong); break; + default: /* Wrong format */ sprintf(g->Message, "Invalid format %c", fty); return -1; - } // endswitch fty + } // endswitch fty } // endif nof default: - break; - } // endswitch tc + break; + } // endswitch tc - if (lcdp) - lcdp->SetNext(cdp); - else - tocols= cdp; + if (lcdp) + lcdp->SetNext(cdp); + else + tocols= cdp; - lcdp= cdp; + lcdp= cdp; i++; } // endwhile @@ -410,31 +410,31 @@ if (i != GetDegree()) SetDegree(i); - if (GetDefType() == TYPE_AM_DOS) { - int ending, recln= 0; + if (GetDefType() == TYPE_AM_DOS) { + int ending, recln= 0; - // Was commented because sometimes ending is 0 even when - // not specified (for instance if quoted is specified) -// if ((ending= Hc->GetIntegerOption("Ending")) < 0) { - if ((ending= Hc->GetIntegerOption("Ending")) <= 0) { + // Was commented because sometimes ending is 0 even when + // not specified (for instance if quoted is specified) +// if ((ending= Hc->GetIntegerOption("Ending")) < 0) { + if ((ending= Hc->GetIntegerOption("Ending")) <= 0) { ending= (tc == TAB_BIN || tc == TAB_VEC) ? 0 : CRLF; - Hc->SetIntegerOption("Ending", ending); - } // endif ending + Hc->SetIntegerOption("Ending", ending); + } // endif ending - // Calculate the default record size - switch (tc) { + // Calculate the default record size + switch (tc) { case TAB_FIX: case TAB_BIN: recln= nlg + ending; // + length of line ending break; case TAB_VEC: recln= nlg; - + // if ((k= (pak < 0) ? 8 : pak) > 1) // See above for detailed comment // Round up lrecl to multiple of 8 or pak // recln= ((recln + k - 1) / k) * k; - + break; case TAB_DOS: case TAB_DBF: @@ -443,26 +443,30 @@ case TAB_CSV: case TAB_FMT: // The number of separators (assuming an extra one can exist) -// recln= poff * ((qotd) ? 3 : 1); to be investigated - recln= nlg + poff * 3; // To be safe +// recln= poff * ((qotd) ? 3 : 1); to be investigated + recln= nlg + poff * 3; // To be safe default: break; } // endswitch tc - // lrecl must be at least recln to avoid buffer overflow - if (trace(1)) - htrc("Lrecl: Calculated=%d defined=%d\n", - recln, Hc->GetIntegerOption("Lrecl")); - - recln = MY_MAX(recln, Hc->GetIntegerOption("Lrecl")); - Hc->SetIntegerOption("Lrecl", recln); - ((PDOSDEF)this)->SetLrecl(recln); - } // endif Lrecl - - // Attach the column definition to the tabdef - SetCols(tocols); - return poff; - } // end of GetColCatInfo + // lrecl must be at least recln to avoid buffer overflow + if (trace(1)) + htrc("Lrecl: Calculated=%d defined=%d\n", + recln, Hc->GetIntegerOption("Lrecl")); + + recln = MY_MAX(recln, Hc->GetIntegerOption("Lrecl")); + Hc->SetIntegerOption("Lrecl", recln); + ((PDOSDEF)this)->SetLrecl(recln); + + if (trace(1)) + htrc("Lrecl set to %d\n", recln); + + } // endif Lrecl + + // Attach the column definition to the tabdef + SetCols(tocols); + return poff; + } // end of GetColCatInfo /***********************************************************************/ /* SetIndexInfo: retrieve index description from the table structure. */ @@ -487,16 +491,17 @@ PCATLG cat = Cat; /*********************************************************************/ - /* Ensure that the .dll doesn't have a path. */ - /* This is done to ensure that only approved dll from the system */ + /* Ensure that the module name doesn't have a path. */ + /* This is done to ensure that only approved libs from the system */ /* directories are used (to make this even remotely secure). */ /*********************************************************************/ if (check_valid_path(Module, strlen(Module))) { strcpy(g->Message, "Module cannot contain a path"); return NULL; } else - PlugSetPath(soname, Module, GetPluginDir()); - +// PlugSetPath(soname, Module, GetPluginDir()); // Crashes on Fedora + strncat(strcpy(soname, GetPluginDir()), Module, _MAX_PATH); + #if defined(__WIN__) // Is the DLL already loaded? if (!Hdll && !(Hdll = GetModuleHandle(soname))) @@ -522,31 +527,31 @@ // Get the function returning an instance of the external DEF class if (!(getdef = (XGETDEF)GetProcAddress((HINSTANCE)Hdll, getname))) { - char buf[256]; - DWORD rc = GetLastError(); + char buf[256]; + DWORD rc = GetLastError(); - sprintf(g->Message, MSG(PROCADD_ERROR), rc, getname); - FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, NULL, rc, 0, - (LPTSTR)buf, sizeof(buf), NULL); - strcat(strcat(g->Message, ": "), buf); - FreeLibrary((HMODULE)Hdll); + sprintf(g->Message, MSG(PROCADD_ERROR), rc, getname); + FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, NULL, rc, 0, + (LPTSTR)buf, sizeof(buf), NULL); + strcat(strcat(g->Message, ": "), buf); + FreeLibrary((HMODULE)Hdll); return NULL; } // endif getdef #else // !__WIN__ const char *error = NULL; - + #if 0 // Don't know what all this stuff does - Dl_info dl_info; + Dl_info dl_info; - // The OEM lib must retrieve exported CONNECT variables + // The OEM lib must retrieve exported CONNECT variables if (dladdr(&connect_hton, &dl_info)) { if (dlopen(dl_info.dli_fname, RTLD_NOLOAD | RTLD_NOW | RTLD_GLOBAL) == 0) { error = dlerror(); sprintf(g->Message, "dlopen failed: %s, OEM not supported", SVP(error)); return NULL; } // endif dlopen - + } else { error = dlerror(); sprintf(g->Message, "dladdr failed: %s, OEM not supported", SVP(error)); @@ -626,7 +631,7 @@ char *desc = (char*)PlugSubAlloc(g, NULL, strlen(Module) + strlen(Subtype) + 3); sprintf(desc, "%s(%s)", Module, Subtype); - Desc = desc; + Desc = desc; return false; } // end of DefineAM @@ -701,17 +706,17 @@ txfp = new(g) FIXFAM(defp); } else if (rfm == RECFM_VCT) { #if defined(VCT_SUPPORT) - assert(Pxdef->GetDefType() == TYPE_AM_VCT); + assert(Pxdef->GetDefType() == TYPE_AM_VCT); if (map) txfp = new(g) VCMFAM((PVCTDEF)defp); else txfp = new(g) VCTFAM((PVCTDEF)defp); #else // !VCT_SUPPORT - strcpy(g->Message, "VCT no more supported"); - return NULL; + strcpy(g->Message, "VCT no more supported"); + return NULL; #endif // !VCT_SUPPORT - } // endif's + } // endif's ((PTDBDOS)tdbp)->SetTxfp(txfp); } // endif Txfp diff -Nru mariadb-10.3-10.3.17/storage/connect/rest.def mariadb-10.3-10.3.20/storage/connect/rest.def --- mariadb-10.3-10.3.17/storage/connect/rest.def 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/rest.def 2019-11-06 16:01:58.000000000 +0000 @@ -0,0 +1,4 @@ +LIBRARY REST2 +EXPORTS + GetREST @1 + ColREST @2 diff -Nru mariadb-10.3-10.3.17/storage/connect/restget.cpp mariadb-10.3-10.3.20/storage/connect/restget.cpp --- mariadb-10.3-10.3.17/storage/connect/restget.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/restget.cpp 2019-11-06 16:01:58.000000000 +0000 @@ -0,0 +1,94 @@ +/************* Restget C++ Program Source Code File (.CPP) *************/ +/* Adapted from the sample program of the Casablanca tutorial. */ +/* Copyright Olivier Bertrand 2019. */ +/***********************************************************************/ +#include +#include +#if defined(MARIADB) +#include +#else +#include "mini-global.h" +#define _OS_H_INCLUDED // Prevent os.h to be called +#endif + +using namespace utility::conversions; // String conversions utilities +using namespace web; // Common features like URIs. +using namespace web::http; // Common HTTP functionality +using namespace web::http::client; // HTTP client features +using namespace concurrency::streams; // Asynchronous streams + +#include "global.h" + +/***********************************************************************/ +/* Make a local copy of the requested file. */ +/***********************************************************************/ +int restGetFile(PGLOBAL g, PCSZ http, PCSZ uri, PCSZ fn) +{ + int rc = 0; + bool xt = trace(515); + auto fileStream = std::make_shared(); + + if (!http || !fn) { + strcpy(g->Message, "Missing http or filename"); + return 2; + } // endif + + if (xt) + htrc("restGetFile: fn=%s\n", fn); + + // Open stream to output file. + pplx::task requestTask = fstream::open_ostream(to_string_t(fn)) + .then([=](ostream outFile) { + *fileStream= outFile; + + if (xt) + htrc("Outfile isopen=%d\n", outFile.is_open()); + + // Create http_client to send the request. + http_client client(to_string_t(http)); + + if (uri) { + // Build request URI and start the request. + uri_builder builder(to_string_t(uri)); + return client.request(methods::GET, builder.to_string()); + } else + return client.request(methods::GET); + }) + + // Handle response headers arriving. + .then([=](http_response response) { + if (xt) + htrc("Received response status code:%u\n", + response.status_code()); + + // Write response body into the file. + return response.body().read_to_end(fileStream->streambuf()); + }) + + // Close the file stream. + .then([=](size_t n) { + if (xt) + htrc("Return size=%u\n", n); + + return fileStream->close(); + }); + + // Wait for all the outstanding I/O to complete and handle any exceptions + try { + requestTask.wait(); + + if (xt) + htrc("In Wait\n"); + + } catch (const std::exception &e) { + if (xt) + htrc("Error exception: %s\n", e.what()); + sprintf(g->Message, "Error exception: %s", e.what()); + rc= 1; + } // end try/catch + + if (xt) + htrc("restget done: rc=%d\n", rc); + + return rc; +} // end of restGetFile diff -Nru mariadb-10.3-10.3.17/storage/connect/tabfmt.cpp mariadb-10.3-10.3.20/storage/connect/tabfmt.cpp --- mariadb-10.3-10.3.17/storage/connect/tabfmt.cpp 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/tabfmt.cpp 2019-11-06 16:01:58.000000000 +0000 @@ -193,7 +193,7 @@ if (tdp->Zipped) tcvp = new(g)TDBCSV(tdp, new(g)UNZFAM(tdp)); else -#endif +#endif // ZIP_SUPPORT tcvp = new(g) TDBCSV(tdp, new(g) DOSFAM(tdp)); tcvp->SetMode(MODE_READ); diff -Nru mariadb-10.3-10.3.17/storage/connect/tabjdbc.cpp mariadb-10.3-10.3.20/storage/connect/tabjdbc.cpp --- mariadb-10.3-10.3.17/storage/connect/tabjdbc.cpp 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/tabjdbc.cpp 2019-11-06 16:01:58.000000000 +0000 @@ -641,7 +641,9 @@ Cnp->InitValue(g); if ((n = Jcp->GetResultSize(Query->GetStr(), Cnp)) < 0) { - sprintf(g->Message, "Cannot get result size rc=%d", n); + char* msg = PlugDup(g, g->Message); + + sprintf(g->Message, "Get result size: %s (rc=%d)", msg, n); return true; } else if (n) { Jcp->m_Rows = n; diff -Nru mariadb-10.3-10.3.17/storage/connect/tabjson.cpp mariadb-10.3-10.3.20/storage/connect/tabjson.cpp --- mariadb-10.3-10.3.17/storage/connect/tabjson.cpp 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/tabjson.cpp 2019-11-06 16:01:58.000000000 +0000 @@ -71,15 +71,15 @@ /***********************************************************************/ PQRYRES JSONColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt, bool info) { - static int buftyp[] = {TYPE_STRING, TYPE_SHORT, TYPE_STRING, TYPE_INT, + static int buftyp[] = {TYPE_STRING, TYPE_SHORT, TYPE_STRING, TYPE_INT, TYPE_INT, TYPE_SHORT, TYPE_SHORT, TYPE_STRING}; - static XFLD fldtyp[] = {FLD_NAME, FLD_TYPE, FLD_TYPENAME, FLD_PREC, + static XFLD fldtyp[] = {FLD_NAME, FLD_TYPE, FLD_TYPENAME, FLD_PREC, FLD_LENGTH, FLD_SCALE, FLD_NULL, FLD_FORMAT}; static unsigned int length[] = {0, 6, 8, 10, 10, 6, 6, 0}; - int i, n = 0; + int i, n = 0; int ncol = sizeof(buftyp) / sizeof(int); - PJCL jcp; - JSONDISC *pjdc = NULL; + PJCL jcp; + JSONDISC *pjdc = NULL; PQRYRES qrp; PCOLRES crp; @@ -89,15 +89,15 @@ goto skipit; } // endif info - if (GetIntegerTableOption(g, topt, "Multiple", 0)) { - strcpy(g->Message, "Cannot find column definition for multiple table"); - return NULL; - } // endif Multiple + if (GetIntegerTableOption(g, topt, "Multiple", 0)) { + strcpy(g->Message, "Cannot find column definition for multiple table"); + return NULL; + } // endif Multiple - pjdc = new(g) JSONDISC(g, length); + pjdc = new(g) JSONDISC(g, length); - if (!(n = pjdc->GetColumns(g, db, dsn, topt))) - return NULL; + if (!(n = pjdc->GetColumns(g, db, dsn, topt))) + return NULL; skipit: if (trace(1)) @@ -110,8 +110,8 @@ buftyp, fldtyp, length, false, false); crp = qrp->Colresp->Next->Next->Next->Next->Next->Next; - crp->Name = PlugDup(g, "Nullable"); - crp->Next->Name = PlugDup(g, "Jpath"); + crp->Name = PlugDup(g, "Nullable"); + crp->Next->Name = PlugDup(g, "Jpath"); if (info || !qrp) return qrp; @@ -122,8 +122,8 @@ /* Now get the results into blocks. */ /*********************************************************************/ for (i = 0, jcp = pjdc->fjcp; jcp; i++, jcp = jcp->Next) { - if (jcp->Type == TYPE_UNKNOWN) - jcp->Type = TYPE_STRING; // Void column + if (jcp->Type == TYPE_UNKNOWN) + jcp->Type = TYPE_STRING; // Void column crp = qrp->Colresp; // Column Name crp->Kdata->SetValue(jcp->Name, i); @@ -159,380 +159,380 @@ /***********************************************************************/ JSONDISC::JSONDISC(PGLOBAL g, uint *lg) { - length = lg; - jcp = fjcp = pjcp = NULL; - tjnp = NULL; - jpp = NULL; - tjsp = NULL; - jsp = NULL; - row = NULL; - sep = NULL; - i = n = bf = ncol = lvl = 0; - all = false; -} // end of JSONDISC constructor + length = lg; + jcp = fjcp = pjcp = NULL; + tjnp = NULL; + jpp = NULL; + tjsp = NULL; + jsp = NULL; + row = NULL; + sep = NULL; + i = n = bf = ncol = lvl = 0; + all = false; +} // end of JSONDISC constructor int JSONDISC::GetColumns(PGLOBAL g, PCSZ db, PCSZ dsn, PTOS topt) { - char filename[_MAX_PATH]; - bool mgo = (GetTypeID(topt->type) == TAB_MONGO); - PCSZ level = GetStringTableOption(g, topt, "Level", NULL); - - if (level) { - lvl = atoi(level); - lvl = (lvl > 16) ? 16 : lvl; - } else - lvl = 0; - - sep = GetStringTableOption(g, topt, "Separator", "."); - - /*********************************************************************/ - /* Open the input file. */ - /*********************************************************************/ - tdp = new(g) JSONDEF; + char filename[_MAX_PATH]; + bool mgo = (GetTypeID(topt->type) == TAB_MONGO); + PCSZ level = GetStringTableOption(g, topt, "Level", NULL); + + if (level) { + lvl = atoi(level); + lvl = (lvl > 16) ? 16 : lvl; + } else + lvl = 0; + + sep = GetStringTableOption(g, topt, "Separator", "."); + + /*********************************************************************/ + /* Open the input file. */ + /*********************************************************************/ + tdp = new(g) JSONDEF; #if defined(ZIP_SUPPORT) - tdp->Entry = GetStringTableOption(g, topt, "Entry", NULL); - tdp->Zipped = GetBooleanTableOption(g, topt, "Zipped", false); + tdp->Entry = GetStringTableOption(g, topt, "Entry", NULL); + tdp->Zipped = GetBooleanTableOption(g, topt, "Zipped", false); #endif // ZIP_SUPPORT - tdp->Fn = GetStringTableOption(g, topt, "Filename", NULL); + tdp->Fn = GetStringTableOption(g, topt, "Filename", NULL); + + if (!(tdp->Database = SetPath(g, db))) + return 0; - if (!(tdp->Database = SetPath(g, db))) - return 0; + tdp->Objname = GetStringTableOption(g, topt, "Object", NULL); + tdp->Base = GetIntegerTableOption(g, topt, "Base", 0) ? 1 : 0; + tdp->Pretty = GetIntegerTableOption(g, topt, "Pretty", 2); + tdp->Xcol = GetStringTableOption(g, topt, "Expand", NULL); + tdp->Accept = GetBooleanTableOption(g, topt, "Accept", false); + tdp->Uri = (dsn && *dsn ? dsn : NULL); - tdp->Objname = GetStringTableOption(g, topt, "Object", NULL); - tdp->Base = GetIntegerTableOption(g, topt, "Base", 0) ? 1 : 0; - tdp->Pretty = GetIntegerTableOption(g, topt, "Pretty", 2); - tdp->Xcol = GetStringTableOption(g, topt, "Expand", NULL); - tdp->Accept = GetBooleanTableOption(g, topt, "Accept", false); - tdp->Uri = (dsn && *dsn ? dsn : NULL); - - if (!tdp->Fn && !tdp->Uri) { - strcpy(g->Message, MSG(MISSING_FNAME)); - return 0; - } // endif Fn - - if (tdp->Fn) { - // We used the file name relative to recorded datapath - PlugSetPath(filename, tdp->Fn, tdp->GetPath()); - tdp->Fn = PlugDup(g, filename); - } // endif Fn - - if (trace(1)) - htrc("File %s objname=%s pretty=%d lvl=%d\n", - tdp->Fn, tdp->Objname, tdp->Pretty, lvl); + if (!tdp->Fn && !tdp->Uri) { + strcpy(g->Message, MSG(MISSING_FNAME)); + return 0; + } // endif Fn + + if (tdp->Fn) { + // We used the file name relative to recorded datapath + PlugSetPath(filename, tdp->Fn, tdp->GetPath()); + tdp->Fn = PlugDup(g, filename); + } // endif Fn + + if (trace(1)) + htrc("File %s objname=%s pretty=%d lvl=%d\n", + tdp->Fn, tdp->Objname, tdp->Pretty, lvl); - if (tdp->Uri) { + if (tdp->Uri) { #if defined(JAVA_SUPPORT) || defined(CMGO_SUPPORT) - tdp->Collname = GetStringTableOption(g, topt, "Name", NULL); - tdp->Collname = GetStringTableOption(g, topt, "Tabname", tdp->Collname); - tdp->Schema = GetStringTableOption(g, topt, "Dbname", "test"); - tdp->Options = (PSZ)GetStringTableOption(g, topt, "Colist", "all"); - tdp->Pipe = GetBooleanTableOption(g, topt, "Pipeline", false); - tdp->Driver = (PSZ)GetStringTableOption(g, topt, "Driver", NULL); - tdp->Version = GetIntegerTableOption(g, topt, "Version", 3); - tdp->Wrapname = (PSZ)GetStringTableOption(g, topt, "Wrapper", - (tdp->Version == 2) ? "Mongo2Interface" : "Mongo3Interface"); - tdp->Pretty = 0; + tdp->Collname = GetStringTableOption(g, topt, "Name", NULL); + tdp->Collname = GetStringTableOption(g, topt, "Tabname", tdp->Collname); + tdp->Schema = GetStringTableOption(g, topt, "Dbname", "test"); + tdp->Options = (PSZ)GetStringTableOption(g, topt, "Colist", "all"); + tdp->Pipe = GetBooleanTableOption(g, topt, "Pipeline", false); + tdp->Driver = (PSZ)GetStringTableOption(g, topt, "Driver", NULL); + tdp->Version = GetIntegerTableOption(g, topt, "Version", 3); + tdp->Wrapname = (PSZ)GetStringTableOption(g, topt, "Wrapper", + (tdp->Version == 2) ? "Mongo2Interface" : "Mongo3Interface"); + tdp->Pretty = 0; #else // !MONGO_SUPPORT - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); - return 0; + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); + return 0; #endif // !MONGO_SUPPORT - } // endif Uri + } // endif Uri - if (tdp->Pretty == 2) { - if (tdp->Zipped) { + if (tdp->Pretty == 2) { + if (tdp->Zipped) { #if defined(ZIP_SUPPORT) - tjsp = new(g) TDBJSON(tdp, new(g) UNZFAM(tdp)); + tjsp = new(g) TDBJSON(tdp, new(g) UNZFAM(tdp)); #else // !ZIP_SUPPORT - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); - return 0; + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); + return 0; #endif // !ZIP_SUPPORT - } else - tjsp = new(g) TDBJSON(tdp, new(g) MAPFAM(tdp)); + } else + tjsp = new(g) TDBJSON(tdp, new(g) MAPFAM(tdp)); - if (tjsp->MakeDocument(g)) - return 0; + if (tjsp->MakeDocument(g)) + return 0; - jsp = (tjsp->GetDoc()) ? tjsp->GetDoc()->GetValue(0) : NULL; - } else { - if (!(tdp->Lrecl = GetIntegerTableOption(g, topt, "Lrecl", 0))) - if (!mgo) { - sprintf(g->Message, "LRECL must be specified for pretty=%d", tdp->Pretty); - return 0; - } else - tdp->Lrecl = 8192; // Should be enough + jsp = (tjsp->GetDoc()) ? tjsp->GetDoc()->GetValue(0) : NULL; + } else { + if (!(tdp->Lrecl = GetIntegerTableOption(g, topt, "Lrecl", 0))) + if (!mgo) { + sprintf(g->Message, "LRECL must be specified for pretty=%d", tdp->Pretty); + return 0; + } else + tdp->Lrecl = 8192; // Should be enough - tdp->Ending = GetIntegerTableOption(g, topt, "Ending", CRLF); + tdp->Ending = GetIntegerTableOption(g, topt, "Ending", CRLF); - if (tdp->Zipped) { + if (tdp->Zipped) { #if defined(ZIP_SUPPORT) - tjnp = new(g)TDBJSN(tdp, new(g) UNZFAM(tdp)); + tjnp = new(g)TDBJSN(tdp, new(g) UNZFAM(tdp)); #else // !ZIP_SUPPORT - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); - return NULL; + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); + return NULL; #endif // !ZIP_SUPPORT - } else if (tdp->Uri) { - if (tdp->Driver && toupper(*tdp->Driver) == 'C') { + } else if (tdp->Uri) { + if (tdp->Driver && toupper(*tdp->Driver) == 'C') { #if defined(CMGO_SUPPORT) - tjnp = new(g) TDBJSN(tdp, new(g) CMGFAM(tdp)); + tjnp = new(g) TDBJSN(tdp, new(g) CMGFAM(tdp)); #else - sprintf(g->Message, "Mongo %s Driver not available", "C"); - return 0; + sprintf(g->Message, "Mongo %s Driver not available", "C"); + return 0; #endif - } else if (tdp->Driver && toupper(*tdp->Driver) == 'J') { + } else if (tdp->Driver && toupper(*tdp->Driver) == 'J') { #if defined(JAVA_SUPPORT) - tjnp = new(g) TDBJSN(tdp, new(g) JMGFAM(tdp)); + tjnp = new(g) TDBJSN(tdp, new(g) JMGFAM(tdp)); #else - sprintf(g->Message, "Mongo %s Driver not available", "Java"); - return 0; + sprintf(g->Message, "Mongo %s Driver not available", "Java"); + return 0; #endif - } else { // Driver not specified + } else { // Driver not specified #if defined(CMGO_SUPPORT) - tjnp = new(g) TDBJSN(tdp, new(g) CMGFAM(tdp)); + tjnp = new(g) TDBJSN(tdp, new(g) CMGFAM(tdp)); #elif defined(JAVA_SUPPORT) - tjnp = new(g) TDBJSN(tdp, new(g) JMGFAM(tdp)); + tjnp = new(g) TDBJSN(tdp, new(g) JMGFAM(tdp)); #else - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); - return 0; + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); + return 0; #endif - } // endif Driver + } // endif Driver - } else - tjnp = new(g) TDBJSN(tdp, new(g) DOSFAM(tdp)); + } else + tjnp = new(g) TDBJSN(tdp, new(g) DOSFAM(tdp)); - tjnp->SetMode(MODE_READ); + tjnp->SetMode(MODE_READ); - // Allocate the parse work memory - PGLOBAL G = (PGLOBAL)PlugSubAlloc(g, NULL, sizeof(GLOBAL)); - memset(G, 0, sizeof(GLOBAL)); - G->Sarea_Size = tdp->Lrecl * 10; - G->Sarea = PlugSubAlloc(g, NULL, G->Sarea_Size); - PlugSubSet(G->Sarea, G->Sarea_Size); - G->jump_level = 0; - tjnp->SetG(G); - - if (tjnp->OpenDB(g)) - return 0; - - switch (tjnp->ReadDB(g)) { - case RC_EF: - strcpy(g->Message, "Void json table"); - case RC_FX: - goto err; - default: - jsp = tjnp->GetRow(); - } // endswitch ReadDB - - } // endif pretty - - if (!(row = (jsp) ? jsp->GetObject() : NULL)) { - strcpy(g->Message, "Can only retrieve columns from object rows"); - goto err; - } // endif row - - all = GetBooleanTableOption(g, topt, "Fullarray", false); - jcol.Name = jcol.Fmt = NULL; - jcol.Next = NULL; - jcol.Found = true; - colname[0] = 0; - - if (!tdp->Uri) { - fmt[0] = '$'; - fmt[1] = '.'; - bf = 2; - } // endif Uri - - /*********************************************************************/ - /* Analyse the JSON tree and define columns. */ - /*********************************************************************/ - for (i = 1; ; i++) { - for (jpp = row->GetFirst(); jpp; jpp = jpp->GetNext()) { - strncpy(colname, jpp->GetKey(), 64); - fmt[bf] = 0; - - if (Find(g, jpp->GetVal(), colname, MY_MIN(lvl, 0))) - goto err; - - } // endfor jpp - - // Missing column can be null - for (jcp = fjcp; jcp; jcp = jcp->Next) { - jcp->Cbn |= !jcp->Found; - jcp->Found = false; - } // endfor jcp - - if (tdp->Pretty != 2) { - // Read next record - switch (tjnp->ReadDB(g)) { - case RC_EF: - jsp = NULL; - break; - case RC_FX: - goto err; - default: - jsp = tjnp->GetRow(); - } // endswitch ReadDB - - } else - jsp = tjsp->GetDoc()->GetValue(i); - - if (!(row = (jsp) ? jsp->GetObject() : NULL)) - break; + // Allocate the parse work memory + PGLOBAL G = (PGLOBAL)PlugSubAlloc(g, NULL, sizeof(GLOBAL)); + memset(G, 0, sizeof(GLOBAL)); + G->Sarea_Size = tdp->Lrecl * 10; + G->Sarea = PlugSubAlloc(g, NULL, G->Sarea_Size); + PlugSubSet(G->Sarea, G->Sarea_Size); + G->jump_level = 0; + tjnp->SetG(G); + + if (tjnp->OpenDB(g)) + return 0; + + switch (tjnp->ReadDB(g)) { + case RC_EF: + strcpy(g->Message, "Void json table"); + case RC_FX: + goto err; + default: + jsp = tjnp->GetRow(); + } // endswitch ReadDB + + } // endif pretty + + if (!(row = (jsp) ? jsp->GetObject() : NULL)) { + strcpy(g->Message, "Can only retrieve columns from object rows"); + goto err; + } // endif row + + all = GetBooleanTableOption(g, topt, "Fullarray", false); + jcol.Name = jcol.Fmt = NULL; + jcol.Next = NULL; + jcol.Found = true; + colname[0] = 0; + + if (!tdp->Uri) { + fmt[0] = '$'; + fmt[1] = '.'; + bf = 2; + } // endif Uri - } // endfor i + /*********************************************************************/ + /* Analyse the JSON tree and define columns. */ + /*********************************************************************/ + for (i = 1; ; i++) { + for (jpp = row->GetFirst(); jpp; jpp = jpp->GetNext()) { + strncpy(colname, jpp->GetKey(), 64); + fmt[bf] = 0; + + if (Find(g, jpp->GetVal(), colname, MY_MIN(lvl, 0))) + goto err; + + } // endfor jpp + + // Missing column can be null + for (jcp = fjcp; jcp; jcp = jcp->Next) { + jcp->Cbn |= !jcp->Found; + jcp->Found = false; + } // endfor jcp + + if (tdp->Pretty != 2) { + // Read next record + switch (tjnp->ReadDB(g)) { + case RC_EF: + jsp = NULL; + break; + case RC_FX: + goto err; + default: + jsp = tjnp->GetRow(); + } // endswitch ReadDB - if (tdp->Pretty != 2) - tjnp->CloseDB(g); + } else + jsp = tjsp->GetDoc()->GetValue(i); + + if (!(row = (jsp) ? jsp->GetObject() : NULL)) + break; - return n; + } // endfor i + + if (tdp->Pretty != 2) + tjnp->CloseDB(g); + + return n; err: - if (tdp->Pretty != 2) - tjnp->CloseDB(g); + if (tdp->Pretty != 2) + tjnp->CloseDB(g); - return 0; -} // end of GetColumns + return 0; +} // end of GetColumns bool JSONDISC::Find(PGLOBAL g, PJVAL jvp, PCSZ key, int j) { - char *p, *pc = colname + strlen(colname); - int ars; - PJOB job; - PJAR jar; - - if ((valp = jvp ? jvp->GetValue() : NULL)) { - jcol.Type = valp->GetType(); - jcol.Len = valp->GetValLen(); - jcol.Scale = valp->GetValPrec(); - jcol.Cbn = valp->IsNull(); - } else if (!jvp || jvp->IsNull()) { - jcol.Type = TYPE_UNKNOWN; - jcol.Len = jcol.Scale = 0; - jcol.Cbn = true; - } else if (j < lvl) { - if (!fmt[bf]) - strcat(fmt, colname); - - p = fmt + strlen(fmt); - jsp = jvp->GetJson(); - - switch (jsp->GetType()) { - case TYPE_JOB: - job = (PJOB)jsp; - - for (PJPR jrp = job->GetFirst(); jrp; jrp = jrp->GetNext()) { - PCSZ k = jrp->GetKey(); - - if (*k != '$') { - strncat(strncat(fmt, sep, 128), k, 128); - strncat(strncat(colname, "_", 64), k, 64); - } // endif Key - - if (Find(g, jrp->GetVal(), k, j + 1)) - return true; - - *p = *pc = 0; - } // endfor jrp - - return false; - case TYPE_JAR: - jar = (PJAR)jsp; - - if (all || (tdp->Xcol && !stricmp(tdp->Xcol, key))) - ars = jar->GetSize(false); - else - ars = MY_MIN(jar->GetSize(false), 1); - - for (int k = 0; k < ars; k++) { - if (!tdp->Xcol || stricmp(tdp->Xcol, key)) { - sprintf(buf, "%d", k); - - if (tdp->Uri) - strncat(strncat(fmt, sep, 128), buf, 128); - else - strncat(strncat(strncat(fmt, "[", 128), buf, 128), "]", 128); - - if (all) - strncat(strncat(colname, "_", 64), buf, 64); - - } else - strncat(fmt, (tdp->Uri ? sep : "[*]"), 128); - - if (Find(g, jar->GetValue(k), "", j)) - return true; - - *p = *pc = 0; - } // endfor k - - return false; - default: - sprintf(g->Message, "Logical error after %s", fmt); - return true; - } // endswitch Type - - } else if (lvl >= 0) { - jcol.Type = TYPE_STRING; - jcol.Len = 256; - jcol.Scale = 0; - jcol.Cbn = true; - } else - return false; - - AddColumn(g); - return false; -} // end of Find + char *p, *pc = colname + strlen(colname); + int ars; + PJOB job; + PJAR jar; + + if ((valp = jvp ? jvp->GetValue() : NULL)) { + jcol.Type = valp->GetType(); + jcol.Len = valp->GetValLen(); + jcol.Scale = valp->GetValPrec(); + jcol.Cbn = valp->IsNull(); + } else if (!jvp || jvp->IsNull()) { + jcol.Type = TYPE_UNKNOWN; + jcol.Len = jcol.Scale = 0; + jcol.Cbn = true; + } else if (j < lvl) { + if (!fmt[bf]) + strcat(fmt, colname); + + p = fmt + strlen(fmt); + jsp = jvp->GetJson(); + + switch (jsp->GetType()) { + case TYPE_JOB: + job = (PJOB)jsp; + + for (PJPR jrp = job->GetFirst(); jrp; jrp = jrp->GetNext()) { + PCSZ k = jrp->GetKey(); + + if (*k != '$') { + strncat(strncat(fmt, sep, 128), k, 128); + strncat(strncat(colname, "_", 64), k, 64); + } // endif Key + + if (Find(g, jrp->GetVal(), k, j + 1)) + return true; + + *p = *pc = 0; + } // endfor jrp + + return false; + case TYPE_JAR: + jar = (PJAR)jsp; + + if (all || (tdp->Xcol && !stricmp(tdp->Xcol, key))) + ars = jar->GetSize(false); + else + ars = MY_MIN(jar->GetSize(false), 1); + + for (int k = 0; k < ars; k++) { + if (!tdp->Xcol || stricmp(tdp->Xcol, key)) { + sprintf(buf, "%d", k); + + if (tdp->Uri) + strncat(strncat(fmt, sep, 128), buf, 128); + else + strncat(strncat(strncat(fmt, "[", 128), buf, 128), "]", 128); + + if (all) + strncat(strncat(colname, "_", 64), buf, 64); + + } else + strncat(fmt, (tdp->Uri ? sep : "[*]"), 128); + + if (Find(g, jar->GetValue(k), "", j)) + return true; + + *p = *pc = 0; + } // endfor k + + return false; + default: + sprintf(g->Message, "Logical error after %s", fmt); + return true; + } // endswitch Type + + } else if (lvl >= 0) { + jcol.Type = TYPE_STRING; + jcol.Len = 256; + jcol.Scale = 0; + jcol.Cbn = true; + } else + return false; + + AddColumn(g); + return false; +} // end of Find void JSONDISC::AddColumn(PGLOBAL g) { - bool b = fmt[bf] != 0; // True if formatted + bool b = fmt[bf] != 0; // True if formatted + + // Check whether this column was already found + for (jcp = fjcp; jcp; jcp = jcp->Next) + if (!strcmp(colname, jcp->Name)) + break; - // Check whether this column was already found - for (jcp = fjcp; jcp; jcp = jcp->Next) - if (!strcmp(colname, jcp->Name)) - break; - - if (jcp) { - if (jcp->Type != jcol.Type) { - if (jcp->Type == TYPE_UNKNOWN) - jcp->Type = jcol.Type; - else if (jcol.Type != TYPE_UNKNOWN) - jcp->Type = TYPE_STRING; - - } // endif Type - - if (b && (!jcp->Fmt || strlen(jcp->Fmt) < strlen(fmt))) { - jcp->Fmt = PlugDup(g, fmt); - length[7] = MY_MAX(length[7], strlen(fmt)); - } // endif fmt - - jcp->Len = MY_MAX(jcp->Len, jcol.Len); - jcp->Scale = MY_MAX(jcp->Scale, jcol.Scale); - jcp->Cbn |= jcol.Cbn; - jcp->Found = true; - } else if (jcol.Type != TYPE_UNKNOWN || tdp->Accept) { - // New column - jcp = (PJCL)PlugSubAlloc(g, NULL, sizeof(JCOL)); - *jcp = jcol; - jcp->Cbn |= (i > 1); - jcp->Name = PlugDup(g, colname); - length[0] = MY_MAX(length[0], strlen(colname)); - - if (b) { - jcp->Fmt = PlugDup(g, fmt); - length[7] = MY_MAX(length[7], strlen(fmt)); - } else - jcp->Fmt = NULL; - - if (pjcp) { - jcp->Next = pjcp->Next; - pjcp->Next = jcp; - } else - fjcp = jcp; + if (jcp) { + if (jcp->Type != jcol.Type) { + if (jcp->Type == TYPE_UNKNOWN) + jcp->Type = jcol.Type; + else if (jcol.Type != TYPE_UNKNOWN) + jcp->Type = TYPE_STRING; + + } // endif Type + + if (b && (!jcp->Fmt || strlen(jcp->Fmt) < strlen(fmt))) { + jcp->Fmt = PlugDup(g, fmt); + length[7] = MY_MAX(length[7], strlen(fmt)); + } // endif fmt + + jcp->Len = MY_MAX(jcp->Len, jcol.Len); + jcp->Scale = MY_MAX(jcp->Scale, jcol.Scale); + jcp->Cbn |= jcol.Cbn; + jcp->Found = true; + } else if (jcol.Type != TYPE_UNKNOWN || tdp->Accept) { + // New column + jcp = (PJCL)PlugSubAlloc(g, NULL, sizeof(JCOL)); + *jcp = jcol; + jcp->Cbn |= (i > 1); + jcp->Name = PlugDup(g, colname); + length[0] = MY_MAX(length[0], strlen(colname)); + + if (b) { + jcp->Fmt = PlugDup(g, fmt); + length[7] = MY_MAX(length[7], strlen(fmt)); + } else + jcp->Fmt = NULL; - n++; - } // endif jcp + if (pjcp) { + jcp->Next = pjcp->Next; + pjcp->Next = jcp; + } else + fjcp = jcp; - if (jcp) - pjcp = jcp; + n++; + } // endif jcp + + if (jcp) + pjcp = jcp; } // end of AddColumn @@ -548,13 +548,13 @@ Limit = 1; Base = 0; Strict = false; - Sep = '.'; - Uri = NULL; - Collname = Options = Filter = NULL; - Pipe = false; - Driver = NULL; - Version = 0; - Wrapname = NULL; + Sep = '.'; + Uri = NULL; + Collname = Options = Filter = NULL; + Pipe = false; + Driver = NULL; + Version = 0; + Wrapname = NULL; } // end of JSONDEF constructor /***********************************************************************/ @@ -562,41 +562,41 @@ /***********************************************************************/ bool JSONDEF::DefineAM(PGLOBAL g, LPCSTR am, int poff) { - Schema = GetStringCatInfo(g, "DBname", Schema); - Jmode = (JMODE)GetIntCatInfo("Jmode", MODE_OBJECT); + Schema = GetStringCatInfo(g, "DBname", Schema); + Jmode = (JMODE)GetIntCatInfo("Jmode", MODE_OBJECT); Objname = GetStringCatInfo(g, "Object", NULL); Xcol = GetStringCatInfo(g, "Expand", NULL); Pretty = GetIntCatInfo("Pretty", 2); Limit = GetIntCatInfo("Limit", 10); Base = GetIntCatInfo("Base", 0) ? 1 : 0; - Sep = *GetStringCatInfo(g, "Separator", "."); - Accept = GetBoolCatInfo("Accept", false); + Sep = *GetStringCatInfo(g, "Separator", "."); + Accept = GetBoolCatInfo("Accept", false); - // Don't use url as uri when called from REST OEM module - if (stricmp(am, "REST") && (Uri = GetStringCatInfo(g, "Connect", NULL))) { + // Don't use url as MONGO uri when called from REST + if (stricmp(am, "REST") && (Uri = GetStringCatInfo(g, "Connect", NULL))) { #if defined(JAVA_SUPPORT) || defined(CMGO_SUPPORT) - Collname = GetStringCatInfo(g, "Name", - (Catfunc & (FNC_TABLE | FNC_COL)) ? NULL : Name); - Collname = GetStringCatInfo(g, "Tabname", Collname); - Options = GetStringCatInfo(g, "Colist", NULL); - Filter = GetStringCatInfo(g, "Filter", NULL); - Pipe = GetBoolCatInfo("Pipeline", false); - Driver = GetStringCatInfo(g, "Driver", NULL); - Version = GetIntCatInfo("Version", 3); - Pretty = 0; + Collname = GetStringCatInfo(g, "Name", + (Catfunc & (FNC_TABLE | FNC_COL)) ? NULL : Name); + Collname = GetStringCatInfo(g, "Tabname", Collname); + Options = GetStringCatInfo(g, "Colist", NULL); + Filter = GetStringCatInfo(g, "Filter", NULL); + Pipe = GetBoolCatInfo("Pipeline", false); + Driver = GetStringCatInfo(g, "Driver", NULL); + Version = GetIntCatInfo("Version", 3); + Pretty = 0; #if defined(JAVA_SUPPORT) - if (Version == 2) - Wrapname = GetStringCatInfo(g, "Wrapper", "Mongo2Interface"); - else - Wrapname = GetStringCatInfo(g, "Wrapper", "Mongo3Interface"); + if (Version == 2) + Wrapname = GetStringCatInfo(g, "Wrapper", "Mongo2Interface"); + else + Wrapname = GetStringCatInfo(g, "Wrapper", "Mongo3Interface"); #endif // JAVA_SUPPORT #else // !MONGO_SUPPORT - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); - return true; + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); + return true; #endif // !MONGO_SUPPORT - } // endif Uri + } // endif Uri - return DOSDEF::DefineAM(g, (Uri ? "XMGO" : "DOS"), poff); + return DOSDEF::DefineAM(g, (Uri ? "XMGO" : "DOS"), poff); } // end of DefineAM /***********************************************************************/ @@ -604,6 +604,9 @@ /***********************************************************************/ PTDB JSONDEF::GetTable(PGLOBAL g, MODE m) { + if (trace(1)) + htrc("JSON GetTable Pretty=%d Uri=%s\n", Pretty, SVP(Uri)); + if (Catfunc == FNC_COL) return new(g)TDBJCL(this); @@ -618,47 +621,47 @@ !(tmp == TMP_FORCE && (m == MODE_UPDATE || m == MODE_DELETE)); - if (Uri) { - if (Driver && toupper(*Driver) == 'C') { + if (Uri) { + if (Driver && toupper(*Driver) == 'C') { #if defined(CMGO_SUPPORT) - txfp = new(g) CMGFAM(this); + txfp = new(g) CMGFAM(this); #else - sprintf(g->Message, "Mongo %s Driver not available", "C"); - return NULL; + sprintf(g->Message, "Mongo %s Driver not available", "C"); + return NULL; #endif - } else if (Driver && toupper(*Driver) == 'J') { + } else if (Driver && toupper(*Driver) == 'J') { #if defined(JAVA_SUPPORT) - txfp = new(g) JMGFAM(this); + txfp = new(g) JMGFAM(this); #else - sprintf(g->Message, "Mongo %s Driver not available", "Java"); - return NULL; + sprintf(g->Message, "Mongo %s Driver not available", "Java"); + return NULL; #endif - } else { // Driver not specified + } else { // Driver not specified #if defined(CMGO_SUPPORT) - txfp = new(g) CMGFAM(this); + txfp = new(g) CMGFAM(this); #elif defined(JAVA_SUPPORT) - txfp = new(g) JMGFAM(this); -#else // !MONGO_SUPPORT - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); - return NULL; + txfp = new(g) JMGFAM(this); +#else // !MONGO_SUPPORT + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "MONGO"); + return NULL; #endif // !MONGO_SUPPORT - } // endif Driver + } // endif Driver - } else if (Zipped) { + } else if (Zipped) { #if defined(ZIP_SUPPORT) - if (m == MODE_READ || m == MODE_ANY || m == MODE_ALTER) { - txfp = new(g) UNZFAM(this); - } else if (m == MODE_INSERT) { - txfp = new(g) ZIPFAM(this); - } else { - strcpy(g->Message, "UPDATE/DELETE not supported for ZIP"); - return NULL; - } // endif's m + if (m == MODE_READ || m == MODE_ANY || m == MODE_ALTER) { + txfp = new(g) UNZFAM(this); + } else if (m == MODE_INSERT) { + txfp = new(g) ZIPFAM(this); + } else { + strcpy(g->Message, "UPDATE/DELETE not supported for ZIP"); + return NULL; + } // endif's m #else // !ZIP_SUPPORT - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); - return NULL; + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); + return NULL; #endif // !ZIP_SUPPORT - } else if (Compressed) { + } else if (Compressed) { #if defined(GZ_SUPPORT) if (Compressed == 1) txfp = new(g) GZFAM(this); @@ -668,7 +671,7 @@ sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "GZ"); return NULL; #endif // !GZ_SUPPORT - } else if (map) + } else if (map) txfp = new(g) MAPFAM(this); else txfp = new(g) DOSFAM(this); @@ -676,41 +679,41 @@ // Txfp must be set for TDBDOS tdbp = new(g) TDBJSN(this, txfp); - if (Lrecl) { - // Allocate the parse work memory - PGLOBAL G = (PGLOBAL)PlugSubAlloc(g, NULL, sizeof(GLOBAL)); - memset(G, 0, sizeof(GLOBAL)); - G->Sarea_Size = Lrecl * 10; - G->Sarea = PlugSubAlloc(g, NULL, G->Sarea_Size); - PlugSubSet(G->Sarea, G->Sarea_Size); - G->jump_level = 0; - ((TDBJSN*)tdbp)->G = G; - } else { - strcpy(g->Message, "LRECL is not defined"); - return NULL; - } // endif Lrecl + if (Lrecl) { + // Allocate the parse work memory + PGLOBAL G = (PGLOBAL)PlugSubAlloc(g, NULL, sizeof(GLOBAL)); + memset(G, 0, sizeof(GLOBAL)); + G->Sarea_Size = Lrecl * 10; + G->Sarea = PlugSubAlloc(g, NULL, G->Sarea_Size); + PlugSubSet(G->Sarea, G->Sarea_Size); + G->jump_level = 0; + ((TDBJSN*)tdbp)->G = G; + } else { + strcpy(g->Message, "LRECL is not defined"); + return NULL; + } // endif Lrecl - } else { - if (Zipped) { + } else { + if (Zipped) { #if defined(ZIP_SUPPORT) - if (m == MODE_READ || m == MODE_ANY || m == MODE_ALTER) { - txfp = new(g) UNZFAM(this); - } else if (m == MODE_INSERT) { - strcpy(g->Message, "INSERT supported only for zipped JSON when pretty=0"); - return NULL; - } else { - strcpy(g->Message, "UPDATE/DELETE not supported for ZIP"); - return NULL; - } // endif's m + if (m == MODE_READ || m == MODE_ANY || m == MODE_ALTER) { + txfp = new(g) UNZFAM(this); + } else if (m == MODE_INSERT) { + strcpy(g->Message, "INSERT supported only for zipped JSON when pretty=0"); + return NULL; + } else { + strcpy(g->Message, "UPDATE/DELETE not supported for ZIP"); + return NULL; + } // endif's m #else // !ZIP_SUPPORT - sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); - return NULL; + sprintf(g->Message, MSG(NO_FEAT_SUPPORT), "ZIP"); + return NULL; #endif // !ZIP_SUPPORT - } else - txfp = new(g) MAPFAM(this); + } else + txfp = new(g) MAPFAM(this); tdbp = new(g) TDBJSON(this, txfp); - ((TDBJSON*)tdbp)->G = g; + ((TDBJSON*)tdbp)->G = g; } // endif Pretty if (Multiple) @@ -738,16 +741,16 @@ Limit = tdp->Limit; Pretty = tdp->Pretty; B = tdp->Base ? 1 : 0; - Sep = tdp->Sep; + Sep = tdp->Sep; Strict = tdp->Strict; } else { Jmode = MODE_OBJECT; Objname = NULL; - Xcol = NULL; + Xcol = NULL; Limit = 1; Pretty = 0; B = 0; - Sep = '.'; + Sep = '.'; Strict = false; } // endif tdp @@ -761,7 +764,7 @@ TDBJSN::TDBJSN(TDBJSN *tdbp) : TDBDOS(NULL, tdbp) { - G = NULL; + G = NULL; Top = tdbp->Top; Row = tdbp->Row; Val = tdbp->Val; @@ -777,7 +780,7 @@ SameRow = tdbp->SameRow; Xval = tdbp->Xval; B = tdbp->B; - Sep = tdbp->Sep; + Sep = tdbp->Sep; Pretty = tdbp->Pretty; Strict = tdbp->Strict; Comma = tdbp->Comma; @@ -786,7 +789,7 @@ // Used for update PTDB TDBJSN::Clone(PTABS t) { - G = NULL; + G = NULL; PTDB tp; PJCOL cp1, cp2; PGLOBAL g = t->G; @@ -860,33 +863,33 @@ PJSON jsp = Row; PJVAL val = NULL; - for (objpath = PlugDup(g, Objname); jsp && objpath; objpath = p) { - if ((p = strchr(objpath, Sep))) - *p++ = 0; - - if (*objpath != '[' && !IsNum(objpath)) { // objpass is a key - val = (jsp->GetType() == TYPE_JOB) ? - jsp->GetObject()->GetValue(objpath) : NULL; - } else { - if (*objpath == '[') { - if (objpath[strlen(objpath) - 1] == ']') - objpath++; - else - return NULL; - } // endif [ - - val = (jsp->GetType() == TYPE_JAR) ? - jsp->GetArray()->GetValue(atoi(objpath) - B) : NULL; - } // endif objpath + for (objpath = PlugDup(g, Objname); jsp && objpath; objpath = p) { + if ((p = strchr(objpath, Sep))) + *p++ = 0; + + if (*objpath != '[' && !IsNum(objpath)) { // objpass is a key + val = (jsp->GetType() == TYPE_JOB) ? + jsp->GetObject()->GetValue(objpath) : NULL; + } else { + if (*objpath == '[') { + if (objpath[strlen(objpath) - 1] == ']') + objpath++; + else + return NULL; + } // endif [ + + val = (jsp->GetType() == TYPE_JAR) ? + jsp->GetArray()->GetValue(atoi(objpath) - B) : NULL; + } // endif objpath - jsp = (val) ? val->GetJson() : NULL; - } // endfor objpath + jsp = (val) ? val->GetJson() : NULL; + } // endfor objpath return jsp; } // end of FindRow /***********************************************************************/ -/* OpenDB: Data Base open routine for JSN access method. */ +/* OpenDB: Data Base open routine for JSN access method. */ /***********************************************************************/ bool TDBJSN::OpenDB(PGLOBAL g) { @@ -911,15 +914,15 @@ return true; } // endswitch Jmode - } // endif Use + } // endif Use - if (TDBDOS::OpenDB(g)) - return true; + if (TDBDOS::OpenDB(g)) + return true; - if (Xcol) - To_Filter = NULL; // Imcompatible + if (Xcol) + To_Filter = NULL; // Imcompatible - return false; + return false; } // end of OpenDB /***********************************************************************/ @@ -969,27 +972,27 @@ NextSame = 0; M++; return RC_OK; - } else if ((rc = TDBDOS::ReadDB(g)) == RC_OK) { - if (!IsRead() && ((rc = ReadBuffer(g)) != RC_OK)) - // Deferred reading failed - return rc; - - // Recover the memory used for parsing - PlugSubSet(G->Sarea, G->Sarea_Size); - - if ((Row = ParseJson(G, To_Line, strlen(To_Line), &Pretty, &Comma))) { - Row = FindRow(g); - SameRow = 0; - Fpos++; - M = 1; - rc = RC_OK; - } else if (Pretty != 1 || strcmp(To_Line, "]")) { - strcpy(g->Message, G->Message); - rc = RC_FX; - } else - rc = RC_EF; + } else if ((rc = TDBDOS::ReadDB(g)) == RC_OK) { + if (!IsRead() && ((rc = ReadBuffer(g)) != RC_OK)) + // Deferred reading failed + return rc; + + // Recover the memory used for parsing + PlugSubSet(G->Sarea, G->Sarea_Size); + + if ((Row = ParseJson(G, To_Line, strlen(To_Line), &Pretty, &Comma))) { + Row = FindRow(g); + SameRow = 0; + Fpos++; + M = 1; + rc = RC_OK; + } else if (Pretty != 1 || strcmp(To_Line, "]")) { + strcpy(g->Message, G->Message); + rc = RC_FX; + } else + rc = RC_EF; - } // endif ReadDB + } // endif ReadDB return rc; } // end of ReadDB @@ -999,68 +1002,68 @@ /***********************************************************************/ int TDBJSN::MakeTopTree(PGLOBAL g, PJSON jsp) { - if (Objname) { - if (!Val) { - // Parse and allocate Objname item(s) - char *p; - char *objpath = PlugDup(g, Objname); - int i; - PJOB objp; - PJAR arp; - PJVAL val = NULL; - - Top = NULL; - - for (; objpath; objpath = p) { - if ((p = strchr(objpath, Sep))) - *p++ = 0; - - if (*objpath != '[' && !IsNum(objpath)) { - objp = new(g) JOBJECT; - - if (!Top) - Top = objp; - - if (val) - val->SetValue(objp); - - val = new(g) JVALUE; - objp->SetValue(g, val, objpath); - } else { - if (*objpath == '[') { - // Old style - if (objpath[strlen(objpath) - 1] != ']') { - sprintf(g->Message, "Invalid Table path %s", Objname); - return RC_FX; - } else - objpath++; - - } // endif objpath - - arp = new(g) JARRAY; - - if (!Top) - Top = arp; - - if (val) - val->SetValue(arp); - - val = new(g) JVALUE; - i = atoi(objpath) - B; - arp->SetValue(g, val, i); - arp->InitArray(g); - } // endif objpath - - } // endfor p - - Val = val; - } // endif Val - - Val->SetValue(jsp); - } else - Top = jsp; + if (Objname) { + if (!Val) { + // Parse and allocate Objname item(s) + char *p; + char *objpath = PlugDup(g, Objname); + int i; + PJOB objp; + PJAR arp; + PJVAL val = NULL; + + Top = NULL; + + for (; objpath; objpath = p) { + if ((p = strchr(objpath, Sep))) + *p++ = 0; + + if (*objpath != '[' && !IsNum(objpath)) { + objp = new(g) JOBJECT; + + if (!Top) + Top = objp; + + if (val) + val->SetValue(objp); + + val = new(g) JVALUE; + objp->SetValue(g, val, objpath); + } else { + if (*objpath == '[') { + // Old style + if (objpath[strlen(objpath) - 1] != ']') { + sprintf(g->Message, "Invalid Table path %s", Objname); + return RC_FX; + } else + objpath++; + + } // endif objpath - return RC_OK; + arp = new(g) JARRAY; + + if (!Top) + Top = arp; + + if (val) + val->SetValue(arp); + + val = new(g) JVALUE; + i = atoi(objpath) - B; + arp->SetValue(g, val, i); + arp->InitArray(g); + } // endif objpath + + } // endfor p + + Val = val; + } // endif Val + + Val->SetValue(jsp); + } else + Top = jsp; + + return RC_OK; } // end of MakeTopTree /***********************************************************************/ @@ -1095,11 +1098,11 @@ /***********************************************************************/ int TDBJSN::WriteDB(PGLOBAL g) { - int rc = TDBDOS::WriteDB(g); + int rc = TDBDOS::WriteDB(g); - PlugSubSet(G->Sarea, G->Sarea_Size); - Row->Clear(); - return rc; + PlugSubSet(G->Sarea, G->Sarea_Size); + Row->Clear(); + return rc; } // end of WriteDB /* ---------------------------- JSONCOL ------------------------------ */ @@ -1111,12 +1114,12 @@ : DOSCOL(g, cdp, tdbp, cprec, i, "DOS") { Tjp = (TDBJSN *)(tdbp->GetOrig() ? tdbp->GetOrig() : tdbp); - G = Tjp->G; + G = Tjp->G; Jpath = cdp->GetFmt(); MulVal = NULL; Nodes = NULL; Nod = 0; - Sep = Tjp->Sep; + Sep = Tjp->Sep; Xnod = -1; Xpd = false; Parsed = false; @@ -1128,14 +1131,14 @@ /***********************************************************************/ JSONCOL::JSONCOL(JSONCOL *col1, PTDB tdbp) : DOSCOL(col1, tdbp) { - G = col1->G; + G = col1->G; Tjp = col1->Tjp; Jpath = col1->Jpath; MulVal = col1->MulVal; Nodes = col1->Nodes; Nod = col1->Nod; - Sep = col1->Sep; - Xnod = col1->Xnod; + Sep = col1->Sep; + Xnod = col1->Xnod; Xpd = col1->Xpd; Parsed = col1->Parsed; } // end of JSONCOL copy constructor @@ -1153,7 +1156,7 @@ return true; Tjp = (TDBJSN*)To_Tdb; - G = Tjp->G; + G = Tjp->G; return false; } // end of SetBuffer @@ -1179,130 +1182,130 @@ /***********************************************************************/ bool JSONCOL::SetArrayOptions(PGLOBAL g, char *p, int i, PSZ nm) { - int n; - bool dg = true, b = false; - PJNODE jnp = &Nodes[i]; - - //if (*p == '[') p++; // Old syntax .[ or :[ - n = (int)strlen(p); - - if (*p) { - if (p[n - 1] == ']') { - p[--n] = 0; - } else if (!IsNum(p)) { - // Wrong array specification - sprintf(g->Message, "Invalid array specification %s for %s", p, Name); - return true; - } // endif p - - } else - b = true; - - // To check whether a numeric Rank was specified - dg = IsNum(p); - - if (!n) { - // Default specifications - if (CheckExpand(g, i, nm, false)) - return true; - else if (jnp->Op != OP_EXP) { - if (b) { - // Return 1st value (B is the index base) - jnp->Rank = Tjp->B; - jnp->Op = OP_EQ; - } else if (!Value->IsTypeNum()) { - jnp->CncVal = AllocateValue(g, (void*)", ", TYPE_STRING); - jnp->Op = OP_CNC; - } else - jnp->Op = OP_ADD; - - } // endif OP - - } else if (dg) { - // Return nth value - jnp->Rank = atoi(p) - Tjp->B; - jnp->Op = OP_EQ; - } else if (n == 1) { - // Set the Op value; - if (Sep == ':') - switch (*p) { - case '*': *p = 'x'; break; - case 'x': - case 'X': *p = '*'; break; // Expand this array - default: break; - } // endswitch p - - switch (*p) { - case '+': jnp->Op = OP_ADD; break; - case 'x': jnp->Op = OP_MULT; break; - case '>': jnp->Op = OP_MAX; break; - case '<': jnp->Op = OP_MIN; break; - case '!': jnp->Op = OP_SEP; break; // Average - case '#': jnp->Op = OP_NUM; break; - case '*': // Expand this array - if (!Tjp->Xcol && nm) { - Xpd = true; - jnp->Op = OP_EXP; - Tjp->Xval = i; - Tjp->Xcol = nm; - } else if (CheckExpand(g, i, nm, true)) - return true; - - break; - default: - sprintf(g->Message, - "Invalid function specification %c for %s", *p, Name); - return true; - } // endswitch *p - - } else if (*p == '"' && p[n - 1] == '"') { - // This is a concat specification - jnp->Op = OP_CNC; - - if (n > 2) { - // Set concat intermediate string - p[n - 1] = 0; - jnp->CncVal = AllocateValue(g, p + 1, TYPE_STRING); - } // endif n - - } else { - sprintf(g->Message, "Wrong array specification for %s", Name); - return true; - } // endif's - - // For calculated arrays, a local Value must be used - switch (jnp->Op) { - case OP_NUM: - jnp->Valp = AllocateValue(g, TYPE_INT); - break; - case OP_ADD: - case OP_MULT: - case OP_SEP: - if (!IsTypeChar(Buf_Type)) - jnp->Valp = AllocateValue(g, Buf_Type, 0, GetPrecision()); - else - jnp->Valp = AllocateValue(g, TYPE_DOUBLE, 0, 2); - - break; - case OP_MIN: - case OP_MAX: - jnp->Valp = AllocateValue(g, Buf_Type, Long, GetPrecision()); - break; - case OP_CNC: - if (IsTypeChar(Buf_Type)) - jnp->Valp = AllocateValue(g, TYPE_STRING, Long, GetPrecision()); - else - jnp->Valp = AllocateValue(g, TYPE_STRING, 512); - - break; - default: - break; - } // endswitch Op + int n; + bool dg = true, b = false; + PJNODE jnp = &Nodes[i]; + + //if (*p == '[') p++; // Old syntax .[ or :[ + n = (int)strlen(p); + + if (*p) { + if (p[n - 1] == ']') { + p[--n] = 0; + } else if (!IsNum(p)) { + // Wrong array specification + sprintf(g->Message, "Invalid array specification %s for %s", p, Name); + return true; + } // endif p + + } else + b = true; + + // To check whether a numeric Rank was specified + dg = IsNum(p); + + if (!n) { + // Default specifications + if (CheckExpand(g, i, nm, false)) + return true; + else if (jnp->Op != OP_EXP) { + if (b) { + // Return 1st value (B is the index base) + jnp->Rank = Tjp->B; + jnp->Op = OP_EQ; + } else if (!Value->IsTypeNum()) { + jnp->CncVal = AllocateValue(g, (void*)", ", TYPE_STRING); + jnp->Op = OP_CNC; + } else + jnp->Op = OP_ADD; + + } // endif OP - if (jnp->Valp) - MulVal = AllocateValue(g, jnp->Valp); + } else if (dg) { + // Return nth value + jnp->Rank = atoi(p) - Tjp->B; + jnp->Op = OP_EQ; + } else if (n == 1) { + // Set the Op value; + if (Sep == ':') + switch (*p) { + case '*': *p = 'x'; break; + case 'x': + case 'X': *p = '*'; break; // Expand this array + default: break; + } // endswitch p + + switch (*p) { + case '+': jnp->Op = OP_ADD; break; + case 'x': jnp->Op = OP_MULT; break; + case '>': jnp->Op = OP_MAX; break; + case '<': jnp->Op = OP_MIN; break; + case '!': jnp->Op = OP_SEP; break; // Average + case '#': jnp->Op = OP_NUM; break; + case '*': // Expand this array + if (!Tjp->Xcol && nm) { + Xpd = true; + jnp->Op = OP_EXP; + Tjp->Xval = i; + Tjp->Xcol = nm; + } else if (CheckExpand(g, i, nm, true)) + return true; - return false; + break; + default: + sprintf(g->Message, + "Invalid function specification %c for %s", *p, Name); + return true; + } // endswitch *p + + } else if (*p == '"' && p[n - 1] == '"') { + // This is a concat specification + jnp->Op = OP_CNC; + + if (n > 2) { + // Set concat intermediate string + p[n - 1] = 0; + jnp->CncVal = AllocateValue(g, p + 1, TYPE_STRING); + } // endif n + + } else { + sprintf(g->Message, "Wrong array specification for %s", Name); + return true; + } // endif's + + // For calculated arrays, a local Value must be used + switch (jnp->Op) { + case OP_NUM: + jnp->Valp = AllocateValue(g, TYPE_INT); + break; + case OP_ADD: + case OP_MULT: + case OP_SEP: + if (!IsTypeChar(Buf_Type)) + jnp->Valp = AllocateValue(g, Buf_Type, 0, GetPrecision()); + else + jnp->Valp = AllocateValue(g, TYPE_DOUBLE, 0, 2); + + break; + case OP_MIN: + case OP_MAX: + jnp->Valp = AllocateValue(g, Buf_Type, Long, GetPrecision()); + break; + case OP_CNC: + if (IsTypeChar(Buf_Type)) + jnp->Valp = AllocateValue(g, TYPE_STRING, Long, GetPrecision()); + else + jnp->Valp = AllocateValue(g, TYPE_STRING, 512); + + break; + default: + break; + } // endswitch Op + + if (jnp->Valp) + MulVal = AllocateValue(g, jnp->Valp); + + return false; } // end of SetArrayOptions /***********************************************************************/ @@ -1313,87 +1316,87 @@ /***********************************************************************/ bool JSONCOL::ParseJpath(PGLOBAL g) { - char *p, *p1 = NULL, *p2 = NULL, *pbuf = NULL; - int i; - bool a, mul = false; - - if (Parsed) - return false; // Already done - else if (InitValue(g)) - return true; - else if (!Jpath) - Jpath = Name; - - if (To_Tdb->GetOrig()) { - // This is an updated column, get nodes from origin - for (PJCOL colp = (PJCOL)Tjp->GetColumns(); colp; - colp = (PJCOL)colp->GetNext()) - if (!stricmp(Name, colp->GetName())) { - Nod = colp->Nod; - Nodes = colp->Nodes; - Xpd = colp->Xpd; - goto fin; - } // endif Name - - sprintf(g->Message, "Cannot parse updated column %s", Name); - return true; - } // endif To_Orig - - pbuf = PlugDup(g, Jpath); - if (*pbuf == '$') pbuf++; - if (*pbuf == Sep) pbuf++; - if (*pbuf == '[') p1 = pbuf++; - - // Estimate the required number of nodes - for (i = 0, p = pbuf; (p = NextChr(p, Sep)); i++, p++) - Nod++; // One path node found - - Nodes = (PJNODE)PlugSubAlloc(g, NULL, (++Nod) * sizeof(JNODE)); - memset(Nodes, 0, (Nod) * sizeof(JNODE)); - - // Analyze the Jpath for this column - for (i = 0, p = pbuf; p && i < Nod; i++, p = (p2 ? p2 : NULL)) { - a = (p1 != NULL); - p1 = strchr(p, '['); - p2 = strchr(p, Sep); - - if (!p2) - p2 = p1; - else if (p1) { - if (p1 < p2) - p2 = p1; - else if (p1 == p2 + 1) - *p2++ = 0; // Old syntax .[ or :[ - else - p1 = NULL; - - } // endif p1 - - if (p2) - *p2++ = 0; - - // Jpath must be explicit - if (a || *p == 0 || *p == '[' || IsNum(p)) { - // Analyse intermediate array processing - if (SetArrayOptions(g, p, i, Nodes[i - 1].Key)) - return true; - - } else if (*p == '*') { - // Return JSON - Nodes[i].Op = OP_XX; - } else { - Nodes[i].Key = p; - Nodes[i].Op = OP_EXIST; - } // endif's + char *p, *p1 = NULL, *p2 = NULL, *pbuf = NULL; + int i; + bool a, mul = false; + + if (Parsed) + return false; // Already done + else if (InitValue(g)) + return true; + else if (!Jpath) + Jpath = Name; + + if (To_Tdb->GetOrig()) { + // This is an updated column, get nodes from origin + for (PJCOL colp = (PJCOL)Tjp->GetColumns(); colp; + colp = (PJCOL)colp->GetNext()) + if (!stricmp(Name, colp->GetName())) { + Nod = colp->Nod; + Nodes = colp->Nodes; + Xpd = colp->Xpd; + goto fin; + } // endif Name + + sprintf(g->Message, "Cannot parse updated column %s", Name); + return true; + } // endif To_Orig + + pbuf = PlugDup(g, Jpath); + if (*pbuf == '$') pbuf++; + if (*pbuf == Sep) pbuf++; + if (*pbuf == '[') p1 = pbuf++; + + // Estimate the required number of nodes + for (i = 0, p = pbuf; (p = NextChr(p, Sep)); i++, p++) + Nod++; // One path node found + + Nodes = (PJNODE)PlugSubAlloc(g, NULL, (++Nod) * sizeof(JNODE)); + memset(Nodes, 0, (Nod) * sizeof(JNODE)); + + // Analyze the Jpath for this column + for (i = 0, p = pbuf; p && i < Nod; i++, p = (p2 ? p2 : NULL)) { + a = (p1 != NULL); + p1 = strchr(p, '['); + p2 = strchr(p, Sep); + + if (!p2) + p2 = p1; + else if (p1) { + if (p1 < p2) + p2 = p1; + else if (p1 == p2 + 1) + *p2++ = 0; // Old syntax .[ or :[ + else + p1 = NULL; + + } // endif p1 + + if (p2) + *p2++ = 0; - } // endfor i, p + // Jpath must be explicit + if (a || *p == 0 || *p == '[' || IsNum(p)) { + // Analyse intermediate array processing + if (SetArrayOptions(g, p, i, Nodes[i - 1].Key)) + return true; + + } else if (*p == '*') { + // Return JSON + Nodes[i].Op = OP_XX; + } else { + Nodes[i].Key = p; + Nodes[i].Op = OP_EXIST; + } // endif's - Nod = i; + } // endfor i, p + + Nod = i; fin: - MulVal = AllocateValue(g, Value); - Parsed = true; - return false; + MulVal = AllocateValue(g, Value); + Parsed = true; + return false; } // end of ParseJpath /***********************************************************************/ @@ -1401,66 +1404,66 @@ /***********************************************************************/ PSZ JSONCOL::GetJpath(PGLOBAL g, bool proj) { - if (Jpath) { - char *p1, *p2, *mgopath; - int i = 0; - - if (strcmp(Jpath, "*")) { - p1 = Jpath; - if (*p1 == '$') p1++; - if (*p1 == '.') p1++; - mgopath = PlugDup(g, p1); - } else - return NULL; - - for (p1 = p2 = mgopath; *p1; p1++) - if (i) { // Inside [] - if (isdigit(*p1)) { - if (!proj) - *p2++ = *p1; - - } else if (*p1 == ']' && i == 1) { - if (proj && p1[1] == '.') - p1++; - - i = 0; - } else if (*p1 == '.' && i == 2) { - if (!proj) - *p2++ = '.'; - - i = 0; - } else if (!proj) - return NULL; - - } else switch (*p1) { - case ':': - case '.': - if (isdigit(p1[1])) - i = 2; - - *p2++ = '.'; - break; - case '[': - if (*(p2 - 1) != '.') - *p2++ = '.'; - - i = 1; - break; - case '*': - if (*(p2 - 1) == '.' && !*(p1 + 1)) { - p2--; // Suppress last :* - break; - } // endif p2 - - default: - *p2++ = *p1; - break; - } // endswitch p1; - - *p2 = 0; - return mgopath; - } else - return NULL; + if (Jpath) { + char *p1, *p2, *mgopath; + int i = 0; + + if (strcmp(Jpath, "*")) { + p1 = Jpath; + if (*p1 == '$') p1++; + if (*p1 == '.') p1++; + mgopath = PlugDup(g, p1); + } else + return NULL; + + for (p1 = p2 = mgopath; *p1; p1++) + if (i) { // Inside [] + if (isdigit(*p1)) { + if (!proj) + *p2++ = *p1; + + } else if (*p1 == ']' && i == 1) { + if (proj && p1[1] == '.') + p1++; + + i = 0; + } else if (*p1 == '.' && i == 2) { + if (!proj) + *p2++ = '.'; + + i = 0; + } else if (!proj) + return NULL; + + } else switch (*p1) { + case ':': + case '.': + if (isdigit(p1[1])) + i = 2; + + *p2++ = '.'; + break; + case '[': + if (*(p2 - 1) != '.') + *p2++ = '.'; + + i = 1; + break; + case '*': + if (*(p2 - 1) == '.' && !*(p1 + 1)) { + p2--; // Suppress last :* + break; + } // endif p2 + + default: + *p2++ = *p1; + break; + } // endswitch p1; + + *p2 = 0; + return mgopath; + } else + return NULL; } // end of GetJpath @@ -1469,7 +1472,7 @@ /***********************************************************************/ PVAL JSONCOL::MakeJson(PGLOBAL g, PJSON jsp) { - if (Value->IsTypeNum()) { + if (Value->IsTypeNum()) { strcpy(g->Message, "Cannot make Json for a numeric column"); Value->Reset(); } else @@ -1484,22 +1487,22 @@ void JSONCOL::SetJsonValue(PGLOBAL g, PVAL vp, PJVAL val, int n) { if (val) { - vp->SetNull(false); + vp->SetNull(false); switch (val->GetValType()) { case TYPE_STRG: case TYPE_INTG: - case TYPE_BINT: - case TYPE_DBL: - case TYPE_DTM: - vp->SetValue_pval(val->GetValue()); + case TYPE_BINT: + case TYPE_DBL: + case TYPE_DTM: + vp->SetValue_pval(val->GetValue()); break; case TYPE_BOOL: if (vp->IsTypeNum()) vp->SetValue(val->GetInteger() ? 1 : 0); else vp->SetValue_psz((PSZ)(val->GetInteger() ? "true" : "false")); - + break; case TYPE_JAR: SetJsonValue(g, vp, val->GetArray()->GetValue(0), n); @@ -1509,16 +1512,16 @@ vp->SetValue_psz(val->GetObject()->GetText(g, NULL)); break; // } // endif Type - + default: - vp->Reset(); - vp->SetNull(true); - } // endswitch Type - - } else { - vp->Reset(); - vp->SetNull(true); - } // endif val + vp->Reset(); + vp->SetNull(true); + } // endswitch Type + + } else { + vp->Reset(); + vp->SetNull(true); + } // endif val } // end of SetJsonValue @@ -1530,8 +1533,8 @@ if (!Tjp->SameRow || Xnod >= Tjp->SameRow) Value->SetValue_pval(GetColumnValue(g, Tjp->Row, 0)); - if (Xpd && Value->IsNull() && !((PJDEF)Tjp->To_Def)->Accept) - throw("Null expandable JSON value"); + if (Xpd && Value->IsNull() && !((PJDEF)Tjp->To_Def)->Accept) + throw("Null expandable JSON value"); // Set null when applicable if (!Nullable) @@ -1579,11 +1582,11 @@ else return CalculateArray(g, arp, i); - } else { - // Unexpected array, unwrap it as [0] - val = arp->GetValue(0); - i--; - } // endif's + } else { + // Unexpected array, unwrap it as [0] + val = arp->GetValue(0); + i--; + } // endif's break; case TYPE_JVAL: @@ -1612,17 +1615,17 @@ PJVAL jvp; JVALUE jval; - if (!ars) { - Value->Reset(); - Value->SetNull(true); - Tjp->NextSame = 0; - return Value; - } // endif ars + if (!ars) { + Value->Reset(); + Value->SetNull(true); + Tjp->NextSame = 0; + return Value; + } // endif ars if (!(jvp = arp->GetValue((Nodes[n].Rx = Nodes[n].Nx)))) { strcpy(g->Message, "Logical error expanding array"); - throw 666; - } // endif jvp + throw 666; + } // endif jvp if (n < Nod - 1 && jvp->GetJson()) { jval.SetValue(GetColumnValue(g, jvp->GetJson(), n + 1)); @@ -1637,7 +1640,7 @@ Xnod = n; Tjp->NextSame = Xnod; - } // endif NextSame + } // endif NextSame SetJsonValue(g, Value, jvp, n); return Value; @@ -1648,58 +1651,58 @@ /***********************************************************************/ PVAL JSONCOL::CalculateArray(PGLOBAL g, PJAR arp, int n) { - int i, ars, nv = 0, nextsame = Tjp->NextSame; - bool err; + int i, ars, nv = 0, nextsame = Tjp->NextSame; + bool err; OPVAL op = Nodes[n].Op; PVAL val[2], vp = Nodes[n].Valp; PJVAL jvrp, jvp; JVALUE jval; vp->Reset(); - ars = MY_MIN(Tjp->Limit, arp->size()); + ars = MY_MIN(Tjp->Limit, arp->size()); + + if (trace(1)) + htrc("CalculateArray: size=%d op=%d nextsame=%d\n", + ars, op, nextsame); + + for (i = 0; i < ars; i++) { + jvrp = arp->GetValue(i); - if (trace(1)) - htrc("CalculateArray: size=%d op=%d nextsame=%d\n", - ars, op, nextsame); - - for (i = 0; i < ars; i++) { - jvrp = arp->GetValue(i); - - if (trace(1)) - htrc("i=%d nv=%d\n", i, nv); - - if (!jvrp->IsNull() || (op == OP_CNC && GetJsonNull())) do { - if (jvrp->IsNull()) { - jvrp->Value = AllocateValue(g, GetJsonNull(), TYPE_STRING); - jvp = jvrp; - } else if (n < Nod - 1 && jvrp->GetJson()) { + if (trace(1)) + htrc("i=%d nv=%d\n", i, nv); + + if (!jvrp->IsNull() || (op == OP_CNC && GetJsonNull())) do { + if (jvrp->IsNull()) { + jvrp->Value = AllocateValue(g, GetJsonNull(), TYPE_STRING); + jvp = jvrp; + } else if (n < Nod - 1 && jvrp->GetJson()) { Tjp->NextSame = nextsame; jval.SetValue(GetColumnValue(g, jvrp->GetJson(), n + 1)); jvp = &jval; } else jvp = jvrp; - - if (trace(1)) - htrc("jvp=%s null=%d\n", - jvp->GetString(g), jvp->IsNull() ? 1 : 0); - if (!nv++) { + if (trace(1)) + htrc("jvp=%s null=%d\n", + jvp->GetString(g), jvp->IsNull() ? 1 : 0); + + if (!nv++) { SetJsonValue(g, vp, jvp, n); continue; } else SetJsonValue(g, MulVal, jvp, n); - if (!MulVal->IsNull()) { - switch (op) { + if (!MulVal->IsNull()) { + switch (op) { case OP_CNC: if (Nodes[n].CncVal) { val[0] = Nodes[n].CncVal; err = vp->Compute(g, val, 1, op); } // endif CncVal - + val[0] = MulVal; err = vp->Compute(g, val, 1, op); - break; + break; // case OP_NUM: case OP_SEP: val[0] = Nodes[n].Valp; @@ -1714,16 +1717,16 @@ if (err) vp->Reset(); - - if (trace(1)) { - char buf(32); - htrc("vp='%s' err=%d\n", - vp->GetCharString(&buf), err ? 1 : 0); + if (trace(1)) { + char buf(32); - } // endif trace + htrc("vp='%s' err=%d\n", + vp->GetCharString(&buf), err ? 1 : 0); - } // endif Null + } // endif trace + + } // endif Null } while (Tjp->NextSame > nextsame); @@ -1753,8 +1756,8 @@ PJAR arp; PJSON nwr, row = Tjp->Row; - for (int i = 0; i < Nod && row; i++) { - if (Nodes[i+1].Op == OP_XX) + for (int i = 0; i < Nod && row; i++) { + if (Nodes[i+1].Op == OP_XX) break; else switch (row->GetType()) { case TYPE_JOB: @@ -1765,19 +1768,19 @@ val = ((PJOB)row)->GetValue(Nodes[i].Key); break; case TYPE_JAR: - arp = (PJAR)row; + arp = (PJAR)row; - if (!Nodes[i].Key) { + if (!Nodes[i].Key) { if (Nodes[i].Op == OP_EQ) val = arp->GetValue(Nodes[i].Rank); else val = arp->GetValue(Nodes[i].Rx); } else { - // Unexpected array, unwrap it as [0] - val = arp->GetValue(0); - i--; - } // endif Nodes + // Unexpected array, unwrap it as [0] + val = arp->GetValue(0); + i--; + } // endif Nodes break; case TYPE_JVAL: @@ -1827,10 +1830,10 @@ /***********************************************************************/ void JSONCOL::WriteColumn(PGLOBAL g) { - if (Xpd && Tjp->Pretty < 2) { - strcpy(g->Message, "Cannot write expanded column when Pretty is not 2"); - throw 666; - } // endif Xpd + if (Xpd && Tjp->Pretty < 2) { + strcpy(g->Message, "Cannot write expanded column when Pretty is not 2"); + throw 666; + } // endif Xpd /*********************************************************************/ /* Check whether this node must be written. */ @@ -1864,8 +1867,8 @@ if (!(jsp = ParseJson(G, s, (int)strlen(s)))) { strcpy(g->Message, s); - throw 666; - } // endif jsp + throw 666; + } // endif jsp if (arp) { if (Nod > 1 && Nodes[Nod-2].Op == OP_EQ) @@ -1887,10 +1890,10 @@ // fall through case TYPE_DATE: case TYPE_INT: - case TYPE_TINY: - case TYPE_SHORT: - case TYPE_BIGINT: - case TYPE_DOUBLE: + case TYPE_TINY: + case TYPE_SHORT: + case TYPE_BIGINT: + case TYPE_DOUBLE: if (arp) { if (Nodes[Nod-1].Op == OP_EQ) arp->SetValue(G, new(G) JVALUE(G, Value), Nodes[Nod-1].Rank); @@ -1981,7 +1984,7 @@ return RC_OK; /*********************************************************************/ - /* Create the mapping file object in mode read. */ + /* Create the mapping file object in mode read. */ /*********************************************************************/ Mode = MODE_READ; @@ -2010,70 +2013,70 @@ if (!jsp && g->Message[0]) return RC_FX; - if ((objpath = PlugDup(g, Objname))) { - if (*objpath == '$') objpath++; - if (*objpath == '.') objpath++; - - /*********************************************************************/ - /* Find the table in the tree structure. */ - /*********************************************************************/ - for (; jsp && objpath; objpath = p) { - if ((p = strchr(objpath, Sep))) - *p++ = 0; - - if (*objpath != '[' && !IsNum(objpath)) { - // objpass is a key - if (jsp->GetType() != TYPE_JOB) { - strcpy(g->Message, "Table path does not match the json file"); - return RC_FX; - } // endif Type - - key = objpath; - objp = jsp->GetObject(); - arp = NULL; - val = objp->GetValue(key); - - if (!val || !(jsp = val->GetJson())) { - sprintf(g->Message, "Cannot find object key %s", key); - return RC_FX; - } // endif val - - } else { - if (*objpath == '[') { - // Old style - if (objpath[strlen(objpath) - 1] != ']') { - sprintf(g->Message, "Invalid Table path %s", Objname); - return RC_FX; - } else - objpath++; - - } // endif objpath - - if (jsp->GetType() != TYPE_JAR) { - strcpy(g->Message, "Table path does not match the json file"); - return RC_FX; - } // endif Type - - arp = jsp->GetArray(); - objp = NULL; - i = atoi(objpath) - B; - val = arp->GetValue(i); - - if (!val) { - sprintf(g->Message, "Cannot find array value %d", i); - return RC_FX; - } // endif val + if ((objpath = PlugDup(g, Objname))) { + if (*objpath == '$') objpath++; + if (*objpath == '.') objpath++; + + /*********************************************************************/ + /* Find the table in the tree structure. */ + /*********************************************************************/ + for (; jsp && objpath; objpath = p) { + if ((p = strchr(objpath, Sep))) + *p++ = 0; + + if (*objpath != '[' && !IsNum(objpath)) { + // objpass is a key + if (jsp->GetType() != TYPE_JOB) { + strcpy(g->Message, "Table path does not match the json file"); + return RC_FX; + } // endif Type + + key = objpath; + objp = jsp->GetObject(); + arp = NULL; + val = objp->GetValue(key); + + if (!val || !(jsp = val->GetJson())) { + sprintf(g->Message, "Cannot find object key %s", key); + return RC_FX; + } // endif val + + } else { + if (*objpath == '[') { + // Old style + if (objpath[strlen(objpath) - 1] != ']') { + sprintf(g->Message, "Invalid Table path %s", Objname); + return RC_FX; + } else + objpath++; + + } // endif objpath + + if (jsp->GetType() != TYPE_JAR) { + strcpy(g->Message, "Table path does not match the json file"); + return RC_FX; + } // endif Type + + arp = jsp->GetArray(); + objp = NULL; + i = atoi(objpath) - B; + val = arp->GetValue(i); + + if (!val) { + sprintf(g->Message, "Cannot find array value %d", i); + return RC_FX; + } // endif val - } // endif + } // endif - jsp = val->GetJson(); - } // endfor objpath + jsp = val->GetJson(); + } // endfor objpath - } // endif objpath + } // endif objpath if (jsp && jsp->GetType() == TYPE_JAR) Doc = jsp->GetArray(); - else { + else { // The table is void or is just one object or one value Doc = new(g) JARRAY; @@ -2149,7 +2152,7 @@ } else return RC_OK; - } // end of MakeIndex + } // end of MakeIndex /***********************************************************************/ /* Return the position in the table. */ @@ -2227,11 +2230,11 @@ return true; } // endswitch Jmode - if (Xcol) - To_Filter = NULL; // Imcompatible + if (Xcol) + To_Filter = NULL; // Imcompatible - Use = USE_OPEN; - return false; + Use = USE_OPEN; + return false; } // end of OpenDB /***********************************************************************/ @@ -2241,7 +2244,7 @@ { int rc; - N++; + N++; if (NextSame) { SameRow = NextSame; @@ -2352,8 +2355,8 @@ TDBJCL::TDBJCL(PJDEF tdp) : TDBCAT(tdp) { Topt = tdp->GetTopt(); - Db = tdp->Schema; - Dsn = tdp->Uri; + Db = tdp->Schema; + Dsn = tdp->Uri; } // end of TDBJCL constructor /***********************************************************************/ diff -Nru mariadb-10.3-10.3.17/storage/connect/tabodbc.cpp mariadb-10.3-10.3.20/storage/connect/tabodbc.cpp --- mariadb-10.3-10.3.17/storage/connect/tabodbc.cpp 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/tabodbc.cpp 2019-11-06 16:01:58.000000000 +0000 @@ -605,8 +605,10 @@ Cnp->InitValue(g); if ((n = Ocp->GetResultSize(Query->GetStr(), Cnp)) < 0) { - strcpy(g->Message, "Cannot get result size"); - return true; + char* msg = PlugDup(g, g->Message); + + sprintf(g->Message, "Get result size: %s (rc=%d)", msg, n); + return true; } else if (n) { Ocp->m_Rows = n; diff -Nru mariadb-10.3-10.3.17/storage/connect/tabrest.cpp mariadb-10.3-10.3.20/storage/connect/tabrest.cpp --- mariadb-10.3-10.3.17/storage/connect/tabrest.cpp 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/tabrest.cpp 2019-11-06 16:01:58.000000000 +0000 @@ -0,0 +1,201 @@ +/*************** Rest C++ Program Source Code File (.CPP) **************/ +/* PROGRAM NAME: Rest Version 1.5 */ +/* (C) Copyright to the author Olivier BERTRAND 2018 - 2019 */ +/* This program is the REST Web API support for MariaDB. */ +/* When compiled without MARIADB defined, it is the EOM module code. */ +/***********************************************************************/ + +/***********************************************************************/ +/* Definitions needed by the included files. */ +/***********************************************************************/ +#if defined(MARIADB) +#include // All MariaDB stuff +#else // !MARIADB OEM module +#include "mini-global.h" +#define _MAX_PATH 260 +#if !defined(__WIN__) +#define __stdcall +#endif // !__WIN__ +#define _OS_H_INCLUDED // Prevent os.h to be called +#endif // !MARIADB + +/***********************************************************************/ +/* Include application header files: */ +/* global.h is header containing all global declarations. */ +/* plgdbsem.h is header containing the DB application declarations. */ +/* (x)table.h is header containing the TDBASE declarations. */ +/***********************************************************************/ +#include "global.h" +#include "plgdbsem.h" +#include "xtable.h" +#include "filamtxt.h" +#include "tabdos.h" +#include "plgxml.h" +#include "tabxml.h" +#include "tabjson.h" +#include "tabfmt.h" +#include "tabrest.h" + +/***********************************************************************/ +/* Get the file from the Web. */ +/***********************************************************************/ +int restGetFile(PGLOBAL g, PCSZ http, PCSZ uri, PCSZ fn); + +#if defined(__WIN__) +static PCSZ slash = "\\"; +#else // !__WIN__ +static PCSZ slash = "/"; +#define stricmp strcasecmp +#endif // !__WIN__ + +#if !defined(MARIADB) +/***********************************************************************/ +/* DB static variables. */ +/***********************************************************************/ +int TDB::Tnum; +int DTVAL::Shift; +int CSORT::Limit = 0; +double CSORT::Lg2 = log(2.0); +size_t CSORT::Cpn[1000] = { 0 }; + +/***********************************************************************/ +/* These functions are exported from the REST library. */ +/***********************************************************************/ +extern "C" { + PTABDEF __stdcall GetREST(PGLOBAL, void*); + PQRYRES __stdcall ColREST(PGLOBAL, PTOS, char*, char*, bool); +} // extern "C" + +/***********************************************************************/ +/* This function returns a table definition class. */ +/***********************************************************************/ +PTABDEF __stdcall GetREST(PGLOBAL g, void *memp) +{ + return new(g, memp) RESTDEF; +} // end of GetREST +#endif // !MARIADB + +/***********************************************************************/ +/* Return the columns definition to MariaDB. */ +/***********************************************************************/ +#if defined(MARIADB) +PQRYRES RESTColumns(PGLOBAL g, PTOS tp, char *tab, char *db, bool info) +#else // !MARIADB +PQRYRES __stdcall ColREST(PGLOBAL g, PTOS tp, char *tab, char *db, bool info) +#endif // !MARIADB +{ + PQRYRES qrp= NULL; + char filename[_MAX_PATH + 1]; // MAX PATH ??? + PCSZ http, uri, fn, ftype; + + http = GetStringTableOption(g, tp, "Http", NULL); + uri = GetStringTableOption(g, tp, "Uri", NULL); + fn = GetStringTableOption(g, tp, "Filename", "rest.json"); +#if defined(MARIADB) + ftype = GetStringTableOption(g, tp, "Type", "JSON"); +#else // !MARIADB + // OEM tables must specify the file type + ftype = GetStringTableOption(g, tp, "Ftype", "JSON"); +#endif // !MARIADB + + // We used the file name relative to recorded datapath + strcat(strcat(strcat(strcpy(filename, "."), slash), db), slash); + strncat(filename, fn, _MAX_PATH); + + // Retrieve the file from the web and copy it locally + if (http && restGetFile(g, http, uri, filename)) { + // sprintf(g->Message, "Failed to get file at %s", http); + } else if (!stricmp(ftype, "XML")) + qrp = XMLColumns(g, db, tab, tp, info); + else if (!stricmp(ftype, "JSON")) + qrp = JSONColumns(g, db, NULL, tp, info); + else if (!stricmp(ftype, "CSV")) + qrp = CSVColumns(g, NULL, tp, info); + else + sprintf(g->Message, "Usupported file type %s", ftype); + + return qrp; +} // end of RESTColumns + +/* -------------------------- Class RESTDEF -------------------------- */ + +/***********************************************************************/ +/* DefineAM: define specific AM block values. */ +/***********************************************************************/ +bool RESTDEF::DefineAM(PGLOBAL g, LPCSTR am, int poff) +{ + char filename[_MAX_PATH + 1]; + int rc = 0, n; + LPCSTR ftype; + +#if defined(MARIADB) + ftype = GetStringCatInfo(g, "Type", "JSON"); +#else // !MARIADB + // OEM tables must specify the file type + ftype = GetStringCatInfo(g, "Ftype", "JSON"); +#endif // !MARIADB + + if (trace(515)) + htrc("ftype = %s am = %s\n", ftype, SVP(am)); + + n = (!stricmp(ftype, "JSON")) ? 1 + : (!stricmp(ftype, "XML")) ? 2 + : (!stricmp(ftype, "CSV")) ? 3 : 0; + + if (n == 0) { + htrc("DefineAM: Unsupported REST table type %s", am); + sprintf(g->Message, "Unsupported REST table type %s", am); + return true; + } // endif n + + Http = GetStringCatInfo(g, "Http", NULL); + Uri = GetStringCatInfo(g, "Uri", NULL); + Fn = GetStringCatInfo(g, "Filename", "rest.json"); + + // We used the file name relative to recorded datapath + //PlugSetPath(filename, Fn, GetPath()); + strncat(strcpy(filename, GetPath()), Fn, _MAX_PATH); + + // Retrieve the file from the web and copy it locally + rc = restGetFile(g, Http, Uri, filename); + + if (trace(515)) + htrc("Return from restGetFile: rc=%d\n", rc); + + if (rc) + return true; + else switch (n) { + case 1: Tdp = new (g) JSONDEF; break; + case 2: Tdp = new (g) XMLDEF; break; + case 3: Tdp = new (g) CSVDEF; break; + default: Tdp = NULL; + } // endswitch n + + // Do make the table/view definition + if (Tdp && Tdp->Define(g, Cat, Name, Schema, "REST")) + Tdp = NULL; // Error occured + + if (trace(515)) + htrc("Tdp defined\n", rc); + + // Return true in case of error + return (Tdp == NULL); +} // end of DefineAM + +/***********************************************************************/ +/* GetTable: makes a new Table Description Block. */ +/***********************************************************************/ +PTDB RESTDEF::GetTable(PGLOBAL g, MODE m) +{ + if (trace(515)) + htrc("REST GetTable mode=%d\n", m); + + if (m != MODE_READ && m != MODE_READX) { + strcpy(g->Message, "REST tables are currently read only"); + return NULL; + } // endif m + + return Tdp->GetTable(g, m); // Leave file type do the job +} // end of GetTable + +/* ---------------------- End of Class RESTDEF ----------------------- */ diff -Nru mariadb-10.3-10.3.17/storage/connect/tabrest.h mariadb-10.3-10.3.20/storage/connect/tabrest.h --- mariadb-10.3-10.3.17/storage/connect/tabrest.h 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/tabrest.h 2019-11-06 16:01:58.000000000 +0000 @@ -0,0 +1,29 @@ +/*************** TabRest H Declares Source Code File (.H) **************/ +/* Name: tabrest.h Version 1.0 */ +/* (C) Copyright to the author Olivier BERTRAND 2019 */ +/* This file contains the common tabrest classes declares. */ +/***********************************************************************/ +#pragma once + +/***********************************************************************/ +/* Restest table. */ +/***********************************************************************/ +class RESTDEF : public TABDEF { /* Table description */ +public: + // Constructor + RESTDEF(void) { Tdp = NULL; Http = Uri = Fn = NULL; } + + // Implementation + virtual const char *GetType(void) { return "REST"; } + + // Methods + virtual bool DefineAM(PGLOBAL g, LPCSTR am, int poff); + virtual PTDB GetTable(PGLOBAL g, MODE m); + +protected: + // Members + PRELDEF Tdp; + PCSZ Http; /* Web connection HTTP */ + PCSZ Uri; /* Web connection URI */ + PCSZ Fn; /* The intermediate file name */ +}; // end of class RESTDEF diff -Nru mariadb-10.3-10.3.17/storage/connect/tabtbl.cpp mariadb-10.3-10.3.20/storage/connect/tabtbl.cpp --- mariadb-10.3-10.3.17/storage/connect/tabtbl.cpp 2019-07-28 00:18:31.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/tabtbl.cpp 2019-11-06 16:01:58.000000000 +0000 @@ -281,7 +281,7 @@ } // endfor tp - hc->get_table()->s->connect_string.str = scs; + hc->get_table()->s->connect_string.str = (char*)scs; hc->get_table()->s->connect_string.length = sln; //NumTables = n; diff -Nru mariadb-10.3-10.3.17/storage/connect/user_connect.cc mariadb-10.3-10.3.20/storage/connect/user_connect.cc --- mariadb-10.3-10.3.17/storage/connect/user_connect.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/user_connect.cc 2019-11-06 16:01:58.000000000 +0000 @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ /** @file user_connect.cc diff -Nru mariadb-10.3-10.3.17/storage/connect/user_connect.h mariadb-10.3-10.3.20/storage/connect/user_connect.h --- mariadb-10.3-10.3.17/storage/connect/user_connect.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/user_connect.h 2019-11-06 16:01:58.000000000 +0000 @@ -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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ /** @file user_connect.h diff -Nru mariadb-10.3-10.3.17/storage/connect/valblk.cpp mariadb-10.3-10.3.20/storage/connect/valblk.cpp --- mariadb-10.3-10.3.17/storage/connect/valblk.cpp 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/valblk.cpp 2019-11-06 16:01:58.000000000 +0000 @@ -206,6 +206,7 @@ { if (n < 0 || n >= Nval) { PGLOBAL& g = Global; + xtrc(1, "ChkIndx: n=%d Nval=%d\n", n, Nval); strcpy(g->Message, MSG(BAD_VALBLK_INDX)); throw Type; } // endif n @@ -216,7 +217,8 @@ { if (Check && (Type != v->GetType() || Unsigned != v->IsUnsigned())) { PGLOBAL& g = Global; - strcpy(g->Message, MSG(VALTYPE_NOMATCH)); + xtrc(1, "ChkTyp: Type=%d valType=%d\n", Type, v->GetType()); + strcpy(g->Message, MSG(VALTYPE_NOMATCH)); throw Type; } // endif Type diff -Nru mariadb-10.3-10.3.17/storage/connect/value.cpp mariadb-10.3-10.3.20/storage/connect/value.cpp --- mariadb-10.3-10.3.17/storage/connect/value.cpp 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/connect/value.cpp 2019-11-06 16:01:58.000000000 +0000 @@ -123,7 +123,7 @@ case '+': p++; break; - } // endswitch *p + } // endswitch *p for (val = 0; p < p2 && (c = (uchar)(*p - '0')) < 10; p++) if (val > (maxval - c) / 10) { @@ -140,7 +140,7 @@ /* GetTypeName: returns the PlugDB internal type name. */ /***********************************************************************/ PCSZ GetTypeName(int type) - { +{ PCSZ name; switch (type) { @@ -155,17 +155,17 @@ case TYPE_BIN: name = "BINARY"; break; case TYPE_PCHAR: name = "PCHAR"; break; default: name = "UNKNOWN"; break; - } // endswitch type + } // endswitch type return name; - } // end of GetTypeName +} // end of GetTypeName /***********************************************************************/ /* GetTypeSize: returns the PlugDB internal type size. */ /***********************************************************************/ int GetTypeSize(int type, int len) { - switch (type) { + switch (type) { case TYPE_DECIM: case TYPE_BIN: case TYPE_STRING: len = len * sizeof(char); break; @@ -177,16 +177,16 @@ case TYPE_TINY: len = sizeof(char); break; case TYPE_PCHAR: len = sizeof(char*); break; default: len = -1; - } // endswitch type + } // endswitch type return len; - } // end of GetTypeSize +} // end of GetTypeSize /***********************************************************************/ /* GetFormatType: returns the FORMAT character(s) according to type. */ /***********************************************************************/ const char *GetFormatType(int type) - { +{ const char *c = "X"; switch (type) { @@ -200,16 +200,16 @@ case TYPE_DECIM: c = "M"; break; case TYPE_BIN: c = "B"; break; case TYPE_PCHAR: c = "P"; break; - } // endswitch type + } // endswitch type return c; - } // end of GetFormatType +} // end of GetFormatType /***********************************************************************/ /* GetFormatType: returns the FORMAT type according to character. */ /***********************************************************************/ int GetFormatType(char c) - { +{ int type = TYPE_ERROR; switch (c) { @@ -223,31 +223,31 @@ case 'M': type = TYPE_DECIM; break; case 'B': type = TYPE_BIN; break; case 'P': type = TYPE_PCHAR; break; - } // endswitch type + } // endswitch type return type; - } // end of GetFormatType +} // end of GetFormatType /***********************************************************************/ /* IsTypeChar: returns true for character type(s). */ /***********************************************************************/ bool IsTypeChar(int type) - { +{ switch (type) { case TYPE_STRING: case TYPE_DECIM: case TYPE_BIN: return true; - } // endswitch type + } // endswitch type return false; - } // end of IsTypeChar +} // end of IsTypeChar /***********************************************************************/ /* IsTypeNum: returns true for numeric types. */ /***********************************************************************/ bool IsTypeNum(int type) - { +{ switch (type) { case TYPE_INT: case TYPE_BIGINT: @@ -258,16 +258,16 @@ case TYPE_TINY: case TYPE_DECIM: return true; - } // endswitch type + } // endswitch type return false; - } // end of IsTypeNum +} // end of IsTypeNum /***********************************************************************/ /* GetFmt: returns the format to use with a typed value. */ /***********************************************************************/ const char *GetFmt(int type, bool un) - { +{ const char *fmt; switch (type) { @@ -278,10 +278,10 @@ case TYPE_DOUBLE: fmt = "%.*lf"; break; case TYPE_BIN: fmt = "%*x"; break; default: fmt = (un) ? "%u" : "%d"; break; - } // endswitch Type + } // endswitch Type return fmt; - } // end of GetFmt +} // end of GetFmt /***********************************************************************/ /* ConvertType: what this function does is to determine the type to */ @@ -293,7 +293,7 @@ /* IsType... functions so match does not prevent correct setting. */ /***********************************************************************/ int ConvertType(int target, int type, CONV kind, bool match) - { +{ switch (kind) { case CNV_CHAR: if (match && (!IsTypeChar(target) || !IsTypeChar(type))) @@ -326,15 +326,15 @@ : (target == TYPE_STRING || type == TYPE_STRING) ? TYPE_STRING : (target == TYPE_TINY || type == TYPE_TINY) ? TYPE_TINY : TYPE_ERROR; - } // endswitch kind + } // endswitch kind - } // end of ConvertType +} // end of ConvertType /***********************************************************************/ /* AllocateConstant: allocates a constant Value. */ /***********************************************************************/ PVAL AllocateValue(PGLOBAL g, void *value, short type, short prec) - { +{ PVAL valp; if (trace(1)) @@ -362,18 +362,18 @@ default: sprintf(g->Message, MSG(BAD_VALUE_TYPE), type); return NULL; - } // endswitch Type + } // endswitch Type valp->SetGlobal(g); return valp; - } // end of AllocateValue +} // end of AllocateValue /***********************************************************************/ /* Allocate a variable Value according to type, length and precision. */ /***********************************************************************/ PVAL AllocateValue(PGLOBAL g, int type, int len, int prec, bool uns, PCSZ fmt) - { +{ PVAL valp; switch (type) { @@ -423,18 +423,18 @@ default: sprintf(g->Message, MSG(BAD_VALUE_TYPE), type); return NULL; - } // endswitch type + } // endswitch type valp->SetGlobal(g); return valp; - } // end of AllocateValue +} // end of AllocateValue /***********************************************************************/ /* Allocate a constant Value converted to newtype. */ /* Can also be used to copy a Value eventually converted. */ /***********************************************************************/ PVAL AllocateValue(PGLOBAL g, PVAL valp, int newtype, int uns) - { +{ PSZ p, sp; bool un = (uns < 0) ? false : (uns > 0) ? true : valp->IsUnsigned(); PVAL vp; @@ -495,13 +495,13 @@ default: sprintf(g->Message, MSG(BAD_VALUE_TYPE), newtype); return NULL; - } // endswitch type + } // endswitch type vp->SetNullable(valp->GetNullable()); vp->SetNull(valp->IsNull()); vp->SetGlobal(g); return vp; - } // end of AllocateValue +} // end of AllocateValue /* -------------------------- Class VALUE ---------------------------- */ @@ -509,7 +509,7 @@ /* Class VALUE protected constructor. */ /***********************************************************************/ VALUE::VALUE(int type, bool un) : Type(type) - { +{ Null = false; Nullable = false; Unsigned = un; @@ -517,13 +517,13 @@ Prec = 0; Fmt = GetFmt(Type, Unsigned); Xfmt = GetXfmt(); - } // end of VALUE constructor +} // end of VALUE constructor /***********************************************************************/ /* VALUE GetXfmt: returns the extended format to use with typed value. */ /***********************************************************************/ const char *VALUE::GetXfmt(void) - { +{ const char *fmt; switch (Type) { @@ -537,7 +537,7 @@ } // endswitch Type return fmt; - } // end of GetFmt +} // end of GetXFmt /***********************************************************************/ /* Returns a BYTE indicating the comparison between two values. */ @@ -545,20 +545,20 @@ /* More than 1 bit can be set only in the case of TYPE_LIST. */ /***********************************************************************/ BYTE VALUE::TestValue(PVAL vp) - { +{ int n = CompareValue(vp); return (n > 0) ? 0x04 : (n < 0) ? 0x02 : 0x01; - } // end of TestValue +} // end of TestValue /***********************************************************************/ /* Compute a function on a string. */ /***********************************************************************/ bool VALUE::Compute(PGLOBAL g, PVAL *, int, OPVAL) - { +{ strcpy(g->Message, "Compute not implemented for this value type"); return true; - } // end of Compute +} // end of Compute /***********************************************************************/ /* Make file output of an object value. */ @@ -600,11 +600,11 @@ template TYPVAL::TYPVAL(TYPE n, int type, int prec, bool un) : VALUE(type, un) - { +{ Tval = n; Clen = sizeof(TYPE); Prec = prec; - } // end of TYPVAL constructor +} // end of TYPVAL constructor /***********************************************************************/ /* Return unsigned max value for the type. */ @@ -641,19 +641,19 @@ /***********************************************************************/ template int TYPVAL::GetValLen(void) - { +{ char c[32]; - return sprintf(c, Fmt, Tval); - } // end of GetValLen + return snprintf(c, 32, Fmt, Tval); +} // end of GetValLen template <> int TYPVAL::GetValLen(void) - { +{ char c[32]; - return sprintf(c, Fmt, Prec, Tval); - } // end of GetValLen + return snprintf(c, 32, Fmt, Prec, Tval); +} // end of GetValLen /***********************************************************************/ /* TYPVAL SetValue: copy the value of another Value object. */ @@ -661,7 +661,7 @@ /***********************************************************************/ template bool TYPVAL::SetValue_pval(PVAL valp, bool chktype) - { +{ if (valp != this) { if (chktype && Type != valp->GetType()) return true; @@ -671,10 +671,10 @@ else Reset(); - } // endif valp + } // endif valp return false; - } // end of SetValue +} // end of SetValue template <> short TYPVAL::GetTypedValue(PVAL valp) @@ -717,7 +717,7 @@ /***********************************************************************/ template bool TYPVAL::SetValue_char(const char *p, int n) - { +{ bool rc, minus; ulonglong maxval = MaxVal(); ulonglong val = CharToNumber(p, n, maxval, Unsigned, &minus, &rc); @@ -731,15 +731,15 @@ char buf[64]; htrc(strcat(strcat(strcpy(buf, " setting %s to: "), Fmt), "\n"), GetTypeName(Type), Tval); - } // endif trace + } // endif trace Null = false; return rc; - } // end of SetValue +} // end of SetValue template <> bool TYPVAL::SetValue_char(const char *p, int n) - { +{ if (p && n > 0) { char buf[64]; @@ -760,14 +760,14 @@ } // endif p return false; - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* TYPVAL SetValue: fill a typed value from a string. */ /***********************************************************************/ template void TYPVAL::SetValue_psz(PCSZ s) - { +{ if (s) { SetValue_char(s, (int)strlen(s)); Null = false; @@ -776,17 +776,17 @@ Null = Nullable; } // endif p - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* TYPVAL SetValue: set value with a TYPE extracted from a block. */ /***********************************************************************/ template void TYPVAL::SetValue_pvblk(PVBLK blk, int n) - { +{ Tval = GetTypedValue(blk, n); Null = false; - } // end of SetValue +} // end of SetValue template <> int TYPVAL::GetTypedValue(PVBLK blk, int n) @@ -852,7 +852,7 @@ /***********************************************************************/ template bool TYPVAL::GetBinValue(void *buf, int buflen, bool go) - { +{ // Test on length was removed here until a variable in column give the // real field length. For BIN files the field length logically cannot // be different from the variable length because no conversion is done. @@ -876,40 +876,41 @@ Null = false; return false; - } // end of GetBinValue +} // end of GetBinValue /***********************************************************************/ /* TYPVAL ShowValue: get string representation of a typed value. */ /***********************************************************************/ template int TYPVAL::ShowValue(char *buf, int len) - { +{ return snprintf(buf, len + 1, Xfmt, len, Tval); - } // end of ShowValue +} // end of ShowValue template <> int TYPVAL::ShowValue(char *buf, int len) - { +{ // TODO: use a more appropriate format to avoid possible truncation return snprintf(buf, len + 1, Xfmt, len, Prec, Tval); - } // end of ShowValue +} // end of ShowValue /***********************************************************************/ /* TYPVAL GetCharString: get string representation of a typed value. */ /***********************************************************************/ template char *TYPVAL::GetCharString(char *p) - { +{ sprintf(p, Fmt, Tval); return p; - } // end of GetCharString +} // end of GetCharString template <> char *TYPVAL::GetCharString(char *p) - { - sprintf(p, Fmt, Prec, Tval); +{ + // Most callers use a 32 long buffer + snprintf(p, 32, Fmt, Prec, Tval); return p; - } // end of GetCharString +} // end of GetCharString #if 0 /***********************************************************************/ @@ -917,50 +918,50 @@ /***********************************************************************/ template char *TYPVAL::GetShortString(char *p, int n) - { +{ sprintf(p, "%*hd", n, (short)Tval); return p; - } // end of GetShortString +} // end of GetShortString /***********************************************************************/ /* TYPVAL GetIntString: get int representation of a typed value. */ /***********************************************************************/ template char *TYPVAL::GetIntString(char *p, int n) - { +{ sprintf(p, "%*d", n, (int)Tval); return p; - } // end of GetIntString +} // end of GetIntString /***********************************************************************/ /* TYPVAL GetBigintString: get big int representation of a TYPE value.*/ /***********************************************************************/ template char *TYPVAL::GetBigintString(char *p, int n) - { +{ sprintf(p, "%*lld", n, (longlong)Tval); return p; - } // end of GetBigintString +} // end of GetBigintString /***********************************************************************/ /* TYPVAL GetFloatString: get double representation of a typed value. */ /***********************************************************************/ template char *TYPVAL::GetFloatString(char *p, int n, int prec) - { +{ sprintf(p, "%*.*lf", n, (prec < 0) ? 2 : prec, (double)Tval); return p; - } // end of GetFloatString +} // end of GetFloatString /***********************************************************************/ /* TYPVAL GetTinyString: get char representation of a typed value. */ /***********************************************************************/ template char *TYPVAL::GetTinyString(char *p, int n) - { +{ sprintf(p, "%*d", n, (int)(char)Tval); return p; - } // end of GetIntString +} // end of GetIntString #endif // 0 /***********************************************************************/ @@ -968,7 +969,7 @@ /***********************************************************************/ template bool TYPVAL::IsEqual(PVAL vp, bool chktype) - { +{ if (this == vp) return true; else if (chktype && Type != vp->GetType()) @@ -980,7 +981,7 @@ else return (Tval == GetTypedValue(vp)); - } // end of IsEqual +} // end of IsEqual /***********************************************************************/ /* Compare values and returns 1, 0 or -1 according to comparison. */ @@ -988,7 +989,7 @@ /***********************************************************************/ template int TYPVAL::CompareValue(PVAL vp) - { +{ //assert(vp->GetType() == Type); // Process filtering on numeric values. @@ -998,7 +999,7 @@ // htrc(" Comparing: val=%d,%d\n", Tval, n); return (Tval > n) ? 1 : (Tval < n) ? (-1) : 0; - } // end of CompareValue +} // end of CompareValue /***********************************************************************/ /* Return max type value if b is true, else min type value. */ @@ -1044,7 +1045,7 @@ /***********************************************************************/ template TYPE TYPVAL::SafeAdd(TYPE n1, TYPE n2) - { +{ PGLOBAL& g = Global; TYPE n = n1 + n2; @@ -1059,20 +1060,20 @@ } // endif's n2 return n; - } // end of SafeAdd +} // end of SafeAdd template <> inline double TYPVAL::SafeAdd(double n1, double n2) - { +{ return n1 + n2; - } // end of SafeAdd +} // end of SafeAdd /***********************************************************************/ /* SafeMult: multiply values and test whether overflow occurred. */ /***********************************************************************/ template TYPE TYPVAL::SafeMult(TYPE n1, TYPE n2) - { +{ PGLOBAL& g = Global; double n = (double)n1 * (double)n2; @@ -1087,20 +1088,20 @@ } // endif's n2 return (TYPE)n; - } // end of SafeMult +} // end of SafeMult template <> inline double TYPVAL::SafeMult(double n1, double n2) - { +{ return n1 * n2; - } // end of SafeMult +} // end of SafeMult /***********************************************************************/ /* Compute defined functions for the type. */ /***********************************************************************/ template bool TYPVAL::Compute(PGLOBAL g, PVAL *vp, int np, OPVAL op) - { +{ bool rc = false; TYPE val[2]; @@ -1127,14 +1128,14 @@ default: rc = Compall(g, vp, np, op); break; - } // endswitch op + } // endswitch op return rc; - } // end of Compute +} // end of Compute template <> bool TYPVAL::Compute(PGLOBAL g, PVAL *vp, int np, OPVAL op) - { +{ bool rc = false; double val[2]; @@ -1152,17 +1153,17 @@ break; default: rc = Compall(g, vp, np, op); - } // endswitch op + } // endswitch op return rc; - } // end of Compute +} // end of Compute /***********************************************************************/ /* Compute a function for all types. */ /***********************************************************************/ template bool TYPVAL::Compall(PGLOBAL g, PVAL *vp, int np, OPVAL op) - { +{ TYPE val[2]; for (int i = 0; i < np; i++) @@ -1191,10 +1192,10 @@ // sprintf(g->Message, MSG(BAD_EXP_OPER), op); strcpy(g->Message, "Function not supported"); return true; - } // endswitch op + } // endswitch op return false; - } // end of Compall +} // end of Compall /***********************************************************************/ /* FormatValue: This function set vp (a STRING value) to the string */ @@ -1203,26 +1204,28 @@ /***********************************************************************/ template bool TYPVAL::FormatValue(PVAL vp, PCSZ fmt) - { - char *buf = (char*)vp->GetTo_Val(); // Should be big enough +{ + // This function is wrong and should never be called + assert(false); + char *buf = (char*)vp->GetTo_Val(); // Not big enough int n = sprintf(buf, fmt, Tval); return (n > vp->GetValLen()); - } // end of FormatValue +} // end of FormatValue /***********************************************************************/ /* TYPVAL SetFormat function (used to set SELECT output format). */ /***********************************************************************/ template bool TYPVAL::SetConstFormat(PGLOBAL g, FORMAT& fmt) - { +{ char c[32]; fmt.Type[0] = *GetFormatType(Type); fmt.Length = sprintf(c, Fmt, Tval); fmt.Prec = Prec; return false; - } // end of SetConstFormat +} // end of SetConstFormat /* -------------------------- Class STRING --------------------------- */ @@ -1230,19 +1233,19 @@ /* STRING public constructor from a constant string. */ /***********************************************************************/ TYPVAL::TYPVAL(PSZ s, short c) : VALUE(TYPE_STRING) - { +{ Strp = s; Len = strlen(s); Clen = Len; Ci = (c == 1); - } // end of STRING constructor +} // end of STRING constructor /***********************************************************************/ /* STRING public constructor from char. */ /***********************************************************************/ TYPVAL::TYPVAL(PGLOBAL g, PSZ s, int n, int c) : VALUE(TYPE_STRING) - { +{ Len = (g) ? n : (s) ? strlen(s) : 0; if (!s) { @@ -1260,89 +1263,89 @@ Clen = Len; Ci = (c != 0); - } // end of STRING constructor +} // end of STRING constructor /***********************************************************************/ /* Get the tiny value represented by the Strp string. */ /***********************************************************************/ char TYPVAL::GetTinyValue(void) - { +{ bool m; ulonglong val = CharToNumber(Strp, strlen(Strp), INT_MAX8, false, &m); return (m && val < INT_MAX8) ? (char)(-(signed)val) : (char)val; - } // end of GetTinyValue +} // end of GetTinyValue /***********************************************************************/ /* Get the unsigned tiny value represented by the Strp string. */ /***********************************************************************/ uchar TYPVAL::GetUTinyValue(void) - { +{ return (uchar)CharToNumber(Strp, strlen(Strp), UINT_MAX8, true); - } // end of GetUTinyValue +} // end of GetUTinyValue /***********************************************************************/ /* Get the short value represented by the Strp string. */ /***********************************************************************/ short TYPVAL::GetShortValue(void) - { +{ bool m; ulonglong val = CharToNumber(Strp, strlen(Strp), INT_MAX16, false, &m); return (m && val < INT_MAX16) ? (short)(-(signed)val) : (short)val; - } // end of GetShortValue +} // end of GetShortValue /***********************************************************************/ /* Get the unsigned short value represented by the Strp string. */ /***********************************************************************/ ushort TYPVAL::GetUShortValue(void) - { +{ return (ushort)CharToNumber(Strp, strlen(Strp), UINT_MAX16, true); - } // end of GetUshortValue +} // end of GetUshortValue /***********************************************************************/ /* Get the integer value represented by the Strp string. */ /***********************************************************************/ int TYPVAL::GetIntValue(void) - { +{ bool m; ulonglong val = CharToNumber(Strp, strlen(Strp), INT_MAX32, false, &m); return (m && val < INT_MAX32) ? (int)(-(signed)val) : (int)val; - } // end of GetIntValue +} // end of GetIntValue /***********************************************************************/ /* Get the unsigned integer value represented by the Strp string. */ /***********************************************************************/ uint TYPVAL::GetUIntValue(void) - { +{ return (uint)CharToNumber(Strp, strlen(Strp), UINT_MAX32, true); - } // end of GetUintValue +} // end of GetUintValue /***********************************************************************/ /* Get the big integer value represented by the Strp string. */ /***********************************************************************/ longlong TYPVAL::GetBigintValue(void) - { +{ bool m; ulonglong val = CharToNumber(Strp, strlen(Strp), INT_MAX64, false, &m); return (m && val < INT_MAX64) ? (-(signed)val) : (longlong)val; - } // end of GetBigintValue +} // end of GetBigintValue /***********************************************************************/ /* Get the unsigned big integer value represented by the Strp string. */ /***********************************************************************/ ulonglong TYPVAL::GetUBigintValue(void) - { +{ return CharToNumber(Strp, strlen(Strp), ULONGLONG_MAX, true); - } // end of GetUBigintValue +} // end of GetUBigintValue /***********************************************************************/ /* STRING SetValue: copy the value of another Value object. */ /***********************************************************************/ bool TYPVAL::SetValue_pval(PVAL valp, bool chktype) - { +{ if (valp != this) { if (chktype && (valp->GetType() != Type || valp->GetSize() > Len)) return true; @@ -1354,16 +1357,16 @@ else Reset(); - } // endif valp + } // endif valp return false; - } // end of SetValue_pval +} // end of SetValue_pval /***********************************************************************/ /* STRING SetValue: fill string with chars extracted from a line. */ /***********************************************************************/ bool TYPVAL::SetValue_char(const char *cp, int n) - { +{ bool rc = false; if (!cp || n == 0) { @@ -1389,16 +1392,16 @@ Reset(); Null = false; - } // endif p + } // endif cp return rc; - } // end of SetValue_char +} // end of SetValue_char /***********************************************************************/ /* STRING SetValue: fill string with another string. */ /***********************************************************************/ void TYPVAL::SetValue_psz(PCSZ s) - { +{ if (!s) { Reset(); Null = Nullable; @@ -1407,26 +1410,26 @@ Null = false; } // endif s - } // end of SetValue_psz +} // end of SetValue_psz /***********************************************************************/ /* STRING SetValue: fill string with a string extracted from a block. */ /***********************************************************************/ void TYPVAL::SetValue_pvblk(PVBLK blk, int n) - { +{ // STRBLK's can return a NULL pointer PSZ vp = blk->GetCharString(Strp, n); if (vp != Strp) SetValue_psz(vp); - } // end of SetValue_pvblk +} // end of SetValue_pvblk /***********************************************************************/ /* STRING SetValue: get the character representation of an integer. */ /***********************************************************************/ void TYPVAL::SetValue(int n) - { +{ char buf[16]; PGLOBAL& g = Global; int k = sprintf(buf, "%d", n); @@ -1438,13 +1441,13 @@ SetValue_psz(buf); Null = false; - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* STRING SetValue: get the character representation of an uint. */ /***********************************************************************/ void TYPVAL::SetValue(uint n) - { +{ char buf[16]; PGLOBAL& g = Global; int k = sprintf(buf, "%u", n); @@ -1456,31 +1459,31 @@ SetValue_psz(buf); Null = false; - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* STRING SetValue: get the character representation of a short int. */ /***********************************************************************/ void TYPVAL::SetValue(short i) - { +{ SetValue((int)i); Null = false; - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* STRING SetValue: get the character representation of a ushort int. */ /***********************************************************************/ void TYPVAL::SetValue(ushort i) - { +{ SetValue((uint)i); Null = false; - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* STRING SetValue: get the character representation of a big integer.*/ /***********************************************************************/ void TYPVAL::SetValue(longlong n) - { +{ char buf[24]; PGLOBAL& g = Global; int k = sprintf(buf, "%lld", n); @@ -1492,13 +1495,13 @@ SetValue_psz(buf); Null = false; - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* STRING SetValue: get the character representation of a big integer.*/ /***********************************************************************/ void TYPVAL::SetValue(ulonglong n) - { +{ char buf[24]; PGLOBAL& g = Global; int k = sprintf(buf, "%llu", n); @@ -1510,13 +1513,13 @@ SetValue_psz(buf); Null = false; - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* STRING SetValue: get the character representation of a double. */ /***********************************************************************/ void TYPVAL::SetValue(double f) - { +{ char *p, buf[64]; PGLOBAL& g = Global; int k = sprintf(buf, "%lf", f); @@ -1535,33 +1538,33 @@ SetValue_psz(buf); Null = false; - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* STRING SetValue: get the character representation of a tiny int. */ /***********************************************************************/ void TYPVAL::SetValue(char c) - { +{ SetValue((int)c); Null = false; - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* STRING SetValue: get the character representation of a tiny int. */ /***********************************************************************/ void TYPVAL::SetValue(uchar c) - { +{ SetValue((uint)c); Null = false; - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* STRING SetBinValue: fill string with chars extracted from a line. */ /***********************************************************************/ void TYPVAL::SetBinValue(void *p) - { +{ SetValue_char((const char *)p, Len); - } // end of SetBinValue +} // end of SetBinValue /***********************************************************************/ /* GetBinValue: fill a buffer with the internal binary value. */ @@ -1570,7 +1573,7 @@ /* Currently used by WriteColumn of binary files. */ /***********************************************************************/ bool TYPVAL::GetBinValue(void *buf, int buflen, bool go) - { +{ int len = (Null) ? 0 : strlen(Strp); if (len > buflen) @@ -1581,7 +1584,7 @@ } // endif go return false; - } // end of GetBinValue +} // end of GetBinValue /***********************************************************************/ /* STRING ShowValue: get string representation of a char value. */ @@ -1591,7 +1594,7 @@ int len = (Null) ? 0 : strlen(Strp); if (buf && buf != Strp) { - memset(buf, ' ', buflen + 1); + memset(buf, ' ', (size_t)buflen + 1); memcpy(buf, Strp, MY_MIN(len, buflen)); } // endif buf @@ -1602,15 +1605,15 @@ /* STRING GetCharString: get string representation of a char value. */ /***********************************************************************/ char *TYPVAL::GetCharString(char *) - { +{ return Strp; - } // end of GetCharString +} // end of GetCharString /***********************************************************************/ /* STRING compare value with another Value. */ /***********************************************************************/ bool TYPVAL::IsEqual(PVAL vp, bool chktype) - { +{ if (this == vp) return true; else if (chktype && Type != vp->GetType()) @@ -1625,14 +1628,14 @@ else // (!Ci) return !strcmp(Strp, vp->GetCharString(buf)); - } // end of IsEqual +} // end of IsEqual /***********************************************************************/ /* Compare values and returns 1, 0 or -1 according to comparison. */ /* This function is used for evaluation of numeric filters. */ /***********************************************************************/ int TYPVAL::CompareValue(PVAL vp) - { +{ int n; //assert(vp->GetType() == Type); @@ -1651,13 +1654,13 @@ #endif // __WIN__ return (n > 0) ? 1 : (n < 0) ? -1 : 0; - } // end of CompareValue +} // end of CompareValue /***********************************************************************/ /* Compute a function on a string. */ /***********************************************************************/ bool TYPVAL::Compute(PGLOBAL g, PVAL *vp, int np, OPVAL op) - { +{ char *p[2], val[2][32]; int i; @@ -1704,7 +1707,7 @@ Null = false; return false; - } // end of Compute +} // end of Compute /***********************************************************************/ /* FormatValue: This function set vp (a STRING value) to the string */ @@ -1712,23 +1715,23 @@ /* This function assumes that the format matches the value type. */ /***********************************************************************/ bool TYPVAL::FormatValue(PVAL vp, PCSZ fmt) - { +{ char *buf = (char*)vp->GetTo_Val(); // Should be big enough int n = sprintf(buf, fmt, Strp); return (n > vp->GetValLen()); - } // end of FormatValue +} // end of FormatValue /***********************************************************************/ /* STRING SetFormat function (used to set SELECT output format). */ /***********************************************************************/ bool TYPVAL::SetConstFormat(PGLOBAL, FORMAT& fmt) - { +{ fmt.Type[0] = 'C'; fmt.Length = Len; fmt.Prec = 0; return false; - } // end of SetConstFormat +} // end of SetConstFormat /***********************************************************************/ /* Make string output of an object value. */ @@ -1748,38 +1751,38 @@ /* DECIMAL public constructor from a constant string. */ /***********************************************************************/ DECVAL::DECVAL(PSZ s) : TYPVAL(s) - { +{ if (s) { char *p = strchr(Strp, '.'); Prec = (p) ? (int)(Len - (p - Strp)) : 0; - } // endif s + } // endif s Type = TYPE_DECIM; - } // end of DECVAL constructor +} // end of DECVAL constructor /***********************************************************************/ /* DECIMAL public constructor from char. */ /***********************************************************************/ DECVAL::DECVAL(PGLOBAL g, PSZ s, int n, int prec, bool uns) : TYPVAL(g, s, n + (prec ? 1 : 0) + (uns ? 0 : 1), 0) - { +{ Prec = prec; Unsigned = uns; Type = TYPE_DECIM; - } // end of DECVAL constructor +} // end of DECVAL constructor /***********************************************************************/ /* DECIMAL: Check whether the numerica value is equal to 0. */ /***********************************************************************/ bool DECVAL::IsZero(void) - { +{ for (int i = 0; Strp[i]; i++) if (!strchr("0 +-.", Strp[i])) return false; return true; - } // end of IsZero +} // end of IsZero /***********************************************************************/ /* DECIMAL: Reset value to zero. */ @@ -1797,7 +1800,7 @@ Strp[i++] = '0'; } while (i < Prec + 2); - } // endif Prec + } // endif Prec Strp[i] = 0; } // end of Reset @@ -1806,9 +1809,9 @@ /* DECIMAL ShowValue: get string representation right justified. */ /***********************************************************************/ int DECVAL::ShowValue(char *buf, int len) - { +{ return snprintf(buf, len + 1, Xfmt, len, Strp); - } // end of ShowValue +} // end of ShowValue /***********************************************************************/ /* GetBinValue: fill a buffer with the internal binary value. */ @@ -1817,7 +1820,7 @@ /* Currently used by WriteColumn of binary files. */ /***********************************************************************/ bool DECVAL::GetBinValue(void *buf, int buflen, bool go) - { +{ int len = (Null) ? 0 : strlen(Strp); if (len > buflen) @@ -1825,16 +1828,16 @@ else if (go) { memset(buf, ' ', buflen - len); memcpy((char*)buf + buflen - len, Strp, len); - } // endif go + } // endif go return false; - } // end of GetBinValue +} // end of GetBinValue /***********************************************************************/ /* DECIMAL compare value with another Value. */ /***********************************************************************/ bool DECVAL::IsEqual(PVAL vp, bool chktype) - { +{ if (this == vp) return true; else if (chktype && Type != vp->GetType()) @@ -1845,14 +1848,14 @@ char buf[64]; return !strcmp(Strp, vp->GetCharString(buf)); - } // end of IsEqual +} // end of IsEqual /***********************************************************************/ /* Compare values and returns 1, 0 or -1 according to comparison. */ /* This function is used for evaluation of numeric filters. */ /***********************************************************************/ int DECVAL::CompareValue(PVAL vp) - { +{ //assert(vp->GetType() == Type); // Process filtering on numeric values. @@ -1862,7 +1865,7 @@ // htrc(" Comparing: val=%d,%d\n", f, n); return (f > n) ? 1 : (f < n) ? (-1) : 0; - } // end of CompareValue +} // end of CompareValue /* -------------------------- Class BINVAL --------------------------- */ @@ -1870,7 +1873,7 @@ /* BINVAL public constructor from bytes. */ /***********************************************************************/ BINVAL::BINVAL(PGLOBAL g, void *p, int cl, int n) : VALUE(TYPE_BIN) - { +{ assert(g); Len = n; Clen = cl; @@ -1881,19 +1884,19 @@ memcpy(Binp, p, MY_MIN(Len,Clen)); Chrp = NULL; - } // end of BINVAL constructor +} // end of BINVAL constructor /***********************************************************************/ /* BINVAL: Check whether the hexadecimal value is equal to 0. */ /***********************************************************************/ bool BINVAL::IsZero(void) - { +{ for (int i = 0; i < Len; i++) if (((char*)Binp)[i] != 0) return false; return true; - } // end of IsZero +} // end of IsZero /***********************************************************************/ /* BINVAL: Reset value to zero. */ @@ -1908,77 +1911,77 @@ /* Get the tiny value pointed by Binp. */ /***********************************************************************/ char BINVAL::GetTinyValue(void) - { +{ return *(char*)Binp; - } // end of GetTinyValue +} // end of GetTinyValue /***********************************************************************/ /* Get the unsigned tiny value pointed by Binp. */ /***********************************************************************/ uchar BINVAL::GetUTinyValue(void) - { +{ return *(uchar*)Binp; - } // end of GetUTinyValue +} // end of GetUTinyValue /***********************************************************************/ /* Get the short value pointed by Binp. */ /***********************************************************************/ short BINVAL::GetShortValue(void) - { +{ if (Len >= 2) return *(short*)Binp; else return (short)GetTinyValue(); - } // end of GetShortValue +} // end of GetShortValue /***********************************************************************/ /* Get the unsigned short value pointed by Binp. */ /***********************************************************************/ ushort BINVAL::GetUShortValue(void) - { +{ return (ushort)GetShortValue(); - } // end of GetUshortValue +} // end of GetUshortValue /***********************************************************************/ /* Get the integer value pointed by Binp. */ /***********************************************************************/ int BINVAL::GetIntValue(void) - { +{ if (Len >= 4) return *(int*)Binp; else return (int)GetShortValue(); - } // end of GetIntValue +} // end of GetIntValue /***********************************************************************/ /* Get the unsigned integer value pointed by Binp. */ /***********************************************************************/ uint BINVAL::GetUIntValue(void) - { +{ return (uint)GetIntValue(); - } // end of GetUintValue +} // end of GetUintValue /***********************************************************************/ /* Get the big integer value pointed by Binp. */ /***********************************************************************/ longlong BINVAL::GetBigintValue(void) - { +{ if (Len >= 8) return *(longlong*)Binp; else return (longlong)GetIntValue(); - } // end of GetBigintValue +} // end of GetBigintValue /***********************************************************************/ /* Get the unsigned big integer value pointed by Binp. */ /***********************************************************************/ ulonglong BINVAL::GetUBigintValue(void) - { +{ return (ulonglong)GetBigintValue(); - } // end of GetUBigintValue +} // end of GetUBigintValue /***********************************************************************/ /* Get the double value pointed by Binp. */ @@ -1998,7 +2001,7 @@ /* BINVAL SetValue: copy the value of another Value object. */ /***********************************************************************/ bool BINVAL::SetValue_pval(PVAL valp, bool chktype) - { +{ bool rc = false; if (valp != this) { @@ -2018,16 +2021,16 @@ } else Reset(); - } // endif valp + } // endif valp return rc; - } // end of SetValue_pval +} // end of SetValue_pval /***********************************************************************/ /* BINVAL SetValue: fill value with chars extracted from a line. */ /***********************************************************************/ bool BINVAL::SetValue_char(const char *p, int n) - { +{ bool rc; if (p && n > 0) { @@ -2047,13 +2050,13 @@ } // endif p return rc; - } // end of SetValue_char +} // end of SetValue_char /***********************************************************************/ /* BINVAL SetValue: fill value with another string. */ /***********************************************************************/ void BINVAL::SetValue_psz(PCSZ s) - { +{ if (s) { int len = Len; @@ -2068,13 +2071,13 @@ Null = Nullable; } // endif s - } // end of SetValue_psz +} // end of SetValue_psz /***********************************************************************/ /* BINVAL SetValue: fill value with bytes extracted from a block. */ /***********************************************************************/ void BINVAL::SetValue_pvblk(PVBLK blk, int n) - { +{ // STRBLK's can return a NULL pointer void *vp = blk->GetValPtrEx(n); @@ -2097,13 +2100,13 @@ Null = false; } // endif vp - } // end of SetValue_pvblk +} // end of SetValue_pvblk /***********************************************************************/ /* BINVAL SetValue: get the binary representation of an integer. */ /***********************************************************************/ void BINVAL::SetValue(int n) - { +{ if (Clen >= 4) { if (Len > 4) memset(Binp, 0, Len); @@ -2113,13 +2116,13 @@ } else SetValue((short)n); - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* BINVAL SetValue: get the binary representation of an uint. */ /***********************************************************************/ void BINVAL::SetValue(uint n) - { +{ if (Clen >= 4) { if (Len > 4) memset(Binp, 0, Len); @@ -2129,13 +2132,13 @@ } else SetValue((ushort)n); - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* BINVAL SetValue: get the binary representation of a short int. */ /***********************************************************************/ void BINVAL::SetValue(short i) - { +{ if (Clen >= 2) { if (Len > 2) memset(Binp, 0, Len); @@ -2145,13 +2148,13 @@ } else SetValue((char)i); - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* BINVAL SetValue: get the binary representation of a ushort int. */ /***********************************************************************/ void BINVAL::SetValue(ushort i) - { +{ if (Clen >= 2) { if (Len > 2) memset(Binp, 0, Len); @@ -2161,13 +2164,13 @@ } else SetValue((uchar)i); - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* BINVAL SetValue: get the binary representation of a big integer. */ /***********************************************************************/ void BINVAL::SetValue(longlong n) - { +{ if (Clen >= 8) { if (Len > 8) memset(Binp, 0, Len); @@ -2177,13 +2180,13 @@ } else SetValue((int)n); - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* BINVAL SetValue: get the binary representation of a big integer. */ /***********************************************************************/ void BINVAL::SetValue(ulonglong n) - { +{ if (Clen >= 8) { if (Len > 8) memset(Binp, 0, Len); @@ -2192,13 +2195,14 @@ Len = 8; } else SetValue((uint)n); - } // end of SetValue + +} // end of SetValue /***********************************************************************/ /* BINVAL SetValue: get the binary representation of a double. */ /***********************************************************************/ void BINVAL::SetValue(double n) - { +{ if (Len > 8) memset(Binp, 0, Len); @@ -2211,40 +2215,40 @@ } else Len = 0; - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* BINVAL SetValue: get the character binary of a tiny int. */ /***********************************************************************/ void BINVAL::SetValue(char c) - { +{ if (Len > 1) memset(Binp, 0, Len); *((char*)Binp) = c; Len = 1; - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* BINVAL SetValue: get the binary representation of a tiny int. */ /***********************************************************************/ void BINVAL::SetValue(uchar c) - { +{ if (Len > 1) memset(Binp, 0, Len); *((uchar*)Binp) = c; Len = 1; - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* BINVAL SetBinValue: fill string with bytes extracted from a line. */ /***********************************************************************/ void BINVAL::SetBinValue(void *p) - { +{ memcpy(Binp, p, Clen); Len = Clen; - } // end of SetBinValue +} // end of SetBinValue /***********************************************************************/ /* GetBinValue: fill a buffer with the internal binary value. */ @@ -2253,7 +2257,7 @@ /* Currently used by WriteColumn of binary files. */ /***********************************************************************/ bool BINVAL::GetBinValue(void *buf, int buflen, bool go) - { +{ if (Len > buflen) return true; else if (go) { @@ -2262,7 +2266,7 @@ } // endif go return false; - } // end of GetBinValue +} // end of GetBinValue /***********************************************************************/ /* BINVAL ShowValue: get string representation of a binary value. */ @@ -2278,19 +2282,19 @@ /* BINVAL GetCharString: get string representation of a binary value. */ /***********************************************************************/ char *BINVAL::GetCharString(char *) - { +{ if (!Chrp) Chrp = (char*)PlugSubAlloc(Global, NULL, Clen * 2 + 1); sprintf(Chrp, GetXfmt(), Len, Binp); return Chrp; - } // end of GetCharString +} // end of GetCharString /***********************************************************************/ /* BINVAL compare value with another Value. */ /***********************************************************************/ bool BINVAL::IsEqual(PVAL vp, bool chktype) - { +{ if (this == vp) return true; else if (chktype && Type != vp->GetType()) @@ -2308,7 +2312,7 @@ return false; return true; - } // end of IsEqual +} // end of IsEqual /***********************************************************************/ /* FormatValue: This function set vp (a STRING value) to the string */ @@ -2316,23 +2320,23 @@ /* This function assumes that the format matches the value type. */ /***********************************************************************/ bool BINVAL::FormatValue(PVAL vp, PCSZ fmt) - { +{ char *buf = (char*)vp->GetTo_Val(); // Should be big enough int n = sprintf(buf, fmt, Len, Binp); return (n > vp->GetValLen()); - } // end of FormatValue +} // end of FormatValue /***********************************************************************/ /* BINVAL SetFormat function (used to set SELECT output format). */ /***********************************************************************/ bool BINVAL::SetConstFormat(PGLOBAL, FORMAT& fmt) - { +{ fmt.Type[0] = 'B'; fmt.Length = Clen; fmt.Prec = 0; return false; - } // end of SetConstFormat +} // end of SetConstFormat /* -------------------------- Class DTVAL ---------------------------- */ @@ -2341,7 +2345,7 @@ /***********************************************************************/ DTVAL::DTVAL(PGLOBAL g, int n, int prec, PCSZ fmt) : TYPVAL((int)0, TYPE_DATE) - { +{ if (!fmt) { Pdtp = NULL; Sdate = NULL; @@ -2351,37 +2355,37 @@ SetFormat(g, fmt, n, prec); //Type = TYPE_DATE; - } // end of DTVAL constructor +} // end of DTVAL constructor /***********************************************************************/ /* DTVAL public constructor from int. */ /***********************************************************************/ DTVAL::DTVAL(int n) : TYPVAL(n, TYPE_DATE) - { +{ Pdtp = NULL; Len = 19; //Type = TYPE_DATE; Sdate = NULL; DefYear = 0; - } // end of DTVAL constructor +} // end of DTVAL constructor /***********************************************************************/ /* Set format so formatted dates can be converted on input/output. */ /***********************************************************************/ bool DTVAL::SetFormat(PGLOBAL g, PCSZ fmt, int len, int year) - { +{ Pdtp = MakeDateFormat(g, fmt, true, true, (year > 9999) ? 1 : 0); Sdate = (char*)PlugSubAlloc(g, NULL, len + 1); DefYear = (int)((year > 9999) ? (year - 10000) : year); Len = len; return false; - } // end of SetFormat +} // end of SetFormat /***********************************************************************/ /* Set format from the format of another date value. */ /***********************************************************************/ bool DTVAL::SetFormat(PGLOBAL g, PVAL valp) - { +{ DTVAL *vp; if (valp->GetType() != TYPE_DATE) { @@ -2395,14 +2399,14 @@ Sdate = (char*)PlugSubAlloc(g, NULL, Len + 1); DefYear = vp->DefYear; return false; - } // end of SetFormat +} // end of SetFormat /***********************************************************************/ /* We need TimeShift because the mktime C function does a correction */ /* for local time zone that we want to override for DB operations. */ /***********************************************************************/ void DTVAL::SetTimeShift(void) - { +{ struct tm dtm; memset(&dtm, 0, sizeof(dtm)); dtm.tm_mday=2; @@ -2414,7 +2418,7 @@ if (trace(1)) htrc("DTVAL Shift=%d\n", Shift); - } // end of SetTimeShift +} // end of SetTimeShift // Added by Alexander Barkov static void TIME_to_localtime(struct tm *tm, const MYSQL_TIME *ltime) @@ -2444,7 +2448,7 @@ /* extend the range of valid dates by accepting negative time values. */ /***********************************************************************/ struct tm *DTVAL::GetGmTime(struct tm *tm_buffer) - { +{ struct tm *datm; time_t t = (time_t)Tval; @@ -2463,7 +2467,7 @@ datm = gmtime_mysql(&t, tm_buffer); return datm; - } // end of GetGmTime +} // end of GetGmTime // Added by Alexander Barkov static time_t mktime_mysql(struct tm *ptm) @@ -2482,7 +2486,7 @@ /* range of valid dates by accepting to set negative time values. */ /***********************************************************************/ bool DTVAL::MakeTime(struct tm *ptm) - { +{ int n, y = ptm->tm_year; time_t t = mktime_mysql(ptm); @@ -2498,7 +2502,7 @@ for (n = 0; t == -1 && n < 20; n++) { ptm->tm_year += 4; t = mktime_mysql(ptm); - } // endfor t + } // endfor t if (t == -1) return true; @@ -2506,20 +2510,21 @@ if ((t -= (n * FOURYEARS)) > 2000000000) return true; - } + } // endif t + Tval= (int) t; if (trace(2)) htrc("MakeTime Ival=%d\n", Tval); return false; - } // end of MakeTime +} // end of MakeTime /***********************************************************************/ /* Make a time_t datetime from its components (YY, MM, DD, hh, mm, ss) */ /***********************************************************************/ bool DTVAL::MakeDate(PGLOBAL g, int *val, int nval) - { +{ int i, m; int n; bool rc = false; @@ -2589,9 +2594,9 @@ case 3: datm.tm_hour = n; break; case 4: datm.tm_min = n; break; case 5: datm.tm_sec = n; break; - } // endswitch i + } // endswitch i - } // endfor i + } // endfor i if (trace(2)) htrc("MakeDate datm=(%d,%d,%d,%d,%d,%d)\n", @@ -2607,14 +2612,14 @@ Tval = 0; return rc; - } // end of MakeDate +} // end of MakeDate /***********************************************************************/ /* DTVAL SetValue: copy the value of another Value object. */ /* This function allows conversion if chktype is false. */ /***********************************************************************/ bool DTVAL::SetValue_pval(PVAL valp, bool chktype) - { +{ if (valp != this) { if (chktype && Type != valp->GetType()) return true; @@ -2636,16 +2641,16 @@ } else Reset(); - } // endif valp + } // endif valp return false; - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* SetValue: convert chars extracted from a line to date value. */ /***********************************************************************/ bool DTVAL::SetValue_char(const char *p, int n) - { +{ bool rc= 0; if (Pdtp) { @@ -2661,7 +2666,7 @@ n = Len; memcpy(Sdate, p, n); - } // endif n + } // endif n Sdate[n] = '\0'; @@ -2678,13 +2683,13 @@ } // endif Pdtp return rc; - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* SetValue: convert a char string to date value. */ /***********************************************************************/ void DTVAL::SetValue_psz(PCSZ p) - { +{ if (Pdtp) { int ndv; int dval[6]; @@ -2704,13 +2709,13 @@ Null = (Nullable && Tval == 0); } // endif Pdtp - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* DTVAL SetValue: set value with a value extracted from a block. */ /***********************************************************************/ void DTVAL::SetValue_pvblk(PVBLK blk, int n) - { +{ if (Pdtp && !::IsTypeNum(blk->GetType())) { int ndv; int dval[6]; @@ -2720,13 +2725,13 @@ } else Tval = blk->GetIntValue(n); - } // end of SetValue +} // end of SetValue /***********************************************************************/ /* DTVAL GetCharString: get string representation of a date value. */ /***********************************************************************/ char *DTVAL::GetCharString(char *p) - { +{ if (Pdtp) { size_t n = 0; struct tm tm, *ptm= GetGmTime(&tm); @@ -2745,7 +2750,7 @@ //Null = false; ?????????????? return p; - } // end of GetCharString +} // end of GetCharString /***********************************************************************/ /* DTVAL ShowValue: get string representation of a date value. */ @@ -2783,7 +2788,7 @@ /* Returns a member of the struct tm representation of the date. */ /***********************************************************************/ bool DTVAL::GetTmMember(OPVAL op, int& mval) - { +{ bool rc = false; struct tm tm, *ptm = GetGmTime(&tm); @@ -2796,10 +2801,10 @@ case OP_QUART: mval = ptm->tm_mon / 3 + 1; break; default: rc = true; - } // endswitch op + } // endswitch op return rc; - } // end of GetTmMember +} // end of GetTmMember /***********************************************************************/ /* Calculates the week number of the year for the internal date value.*/ @@ -2810,7 +2815,7 @@ /* the week that contains the January 4th. */ /***********************************************************************/ bool DTVAL::WeekNum(PGLOBAL g, int& nval) - { +{ // w is the start of the week SUN=0, MON=1, etc. int m, n, w = nval % 7; struct tm tm, *ptm = GetGmTime(&tm); @@ -2827,7 +2832,7 @@ // Everything should be Ok return false; - } // end of WeekNum +} // end of WeekNum #endif // 0 /***********************************************************************/ @@ -2836,7 +2841,7 @@ /* This function assumes that the format matches the value type. */ /***********************************************************************/ bool DTVAL::FormatValue(PVAL vp, PCSZ fmt) - { +{ char *buf = (char*)vp->GetTo_Val(); // Should be big enough struct tm tm, *ptm = GetGmTime(&tm); @@ -2853,6 +2858,6 @@ } else return true; - } // end of FormatValue +} // end of FormatValue /* -------------------------- End of Value --------------------------- */ diff -Nru mariadb-10.3-10.3.17/storage/heap/_check.c mariadb-10.3-10.3.20/storage/heap/_check.c --- mariadb-10.3-10.3.17/storage/heap/_check.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/heap/_check.c 2019-11-06 16:01:58.000000000 +0000 @@ -18,10 +18,8 @@ #include "heapdef.h" -static int check_one_key(HP_KEYDEF *keydef, uint keynr, ulong records, - ulong blength, my_bool print_status); -static int check_one_rb_key(HP_INFO *info, uint keynr, ulong records, - my_bool print_status); +static int check_one_key(HP_KEYDEF *, uint, ulong, ulong, my_bool); +static int check_one_rb_key(const HP_INFO *, uint, ulong, my_bool); /* @@ -40,13 +38,13 @@ 1 error */ -int heap_check_heap(HP_INFO *info, my_bool print_status) +int heap_check_heap(const HP_INFO *info, my_bool print_status) { int error; uint key; ulong records=0, deleted=0, pos, next_block; HP_SHARE *share=info->s; - HP_INFO save_info= *info; /* Needed because scan_init */ + uchar *current_ptr= info->current_ptr; DBUG_ENTER("heap_check_heap"); for (error=key= 0 ; key < share->keys ; key++) @@ -65,7 +63,7 @@ { if (pos < next_block) { - info->current_ptr+= share->block.recbuffer; + current_ptr+= share->block.recbuffer; } else { @@ -77,9 +75,9 @@ break; /* End of file */ } } - hp_find_record(info,pos); + current_ptr= hp_find_block(&share->block, pos); - if (!info->current_ptr[share->visible]) + if (!current_ptr[share->visible]) deleted++; else records++; @@ -92,7 +90,6 @@ deleted, (ulong) share->deleted)); error= 1; } - *info= save_info; DBUG_RETURN(error); } @@ -165,7 +162,7 @@ return error; } -static int check_one_rb_key(HP_INFO *info, uint keynr, ulong records, +static int check_one_rb_key(const HP_INFO *info, uint keynr, ulong records, my_bool print_status) { HP_KEYDEF *keydef= info->s->keydef + keynr; @@ -174,9 +171,11 @@ uchar *key, *recpos; uint key_length; uint not_used[2]; + TREE_ELEMENT **last_pos; + TREE_ELEMENT *parents[MAX_TREE_HEIGHT+1]; - if ((key= tree_search_edge(&keydef->rb_tree, info->parents, - &info->last_pos, offsetof(TREE_ELEMENT, left)))) + if ((key= tree_search_edge(&keydef->rb_tree, parents, + &last_pos, offsetof(TREE_ELEMENT, left)))) { do { @@ -191,7 +190,7 @@ } else found++; - key= tree_search_next(&keydef->rb_tree, &info->last_pos, + key= tree_search_next(&keydef->rb_tree, &last_pos, offsetof(TREE_ELEMENT, left), offsetof(TREE_ELEMENT, right)); } while (key); diff -Nru mariadb-10.3-10.3.17/storage/heap/ha_heap.cc mariadb-10.3-10.3.20/storage/heap/ha_heap.cc --- mariadb-10.3-10.3.17/storage/heap/ha_heap.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/heap/ha_heap.cc 2019-11-06 16:01:58.000000000 +0000 @@ -430,6 +430,10 @@ int ha_heap::external_lock(THD *thd, int lock_type) { +#ifndef DBUG_OFF + if (lock_type == F_UNLCK && file->s->changed && heap_check_heap(file, 0)) + return HA_ERR_CRASHED; +#endif return 0; // No external locking } diff -Nru mariadb-10.3-10.3.17/storage/heap/hp_close.c mariadb-10.3-10.3.20/storage/heap/hp_close.c --- mariadb-10.3-10.3.17/storage/heap/hp_close.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/heap/hp_close.c 2019-11-06 16:01:58.000000000 +0000 @@ -35,12 +35,6 @@ { int error=0; DBUG_ENTER("hp_close"); -#ifndef DBUG_OFF - if (info->s->changed && heap_check_heap(info,0)) - { - error=my_errno=HA_ERR_CRASHED; - } -#endif info->s->changed=0; if (info->open_list.data) heap_open_list=list_delete(heap_open_list,&info->open_list); diff -Nru mariadb-10.3-10.3.17/storage/heap/hp_scan.c mariadb-10.3-10.3.20/storage/heap/hp_scan.c --- mariadb-10.3-10.3.17/storage/heap/hp_scan.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/heap/hp_scan.c 2019-11-06 16:01:58.000000000 +0000 @@ -50,7 +50,9 @@ } else { - info->next_block+=share->block.records_in_block; + /* increase next_block to the next records_in_block boundary */ + ulong rem= info->next_block % share->block.records_in_block; + info->next_block+=share->block.records_in_block - rem; if (info->next_block >= share->records+share->deleted) { info->next_block= share->records+share->deleted; diff -Nru mariadb-10.3-10.3.17/storage/innobase/btr/btr0btr.cc mariadb-10.3-10.3.20/storage/innobase/btr/btr0btr.cc --- mariadb-10.3-10.3.17/storage/innobase/btr/btr0btr.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/btr/btr0btr.cc 2019-11-06 16:01:58.000000000 +0000 @@ -759,9 +759,11 @@ ut_ad(mtr_memo_contains(mtr, block, MTR_MEMO_PAGE_X_FIX)); if (srv_immediate_scrub_data_uncompressed) { - /* In MDEV-15528 this call must be removed, and we should - zero out the page after the redo log for this mini-transaction - has been durably written. */ + /* In MDEV-15528 this code must be removed and the + check in buf_flush_init_for_writing() re-enabled. We + should zero out the page after the redo log for this + mini-transaction has been durably written. The log + would include the 10.4 MLOG_INIT_FREE_PAGE record. */ fsp_init_file_page(index->table->space, block, mtr); } } @@ -2047,104 +2049,92 @@ } } -/*************************************************************//** -Decides if the page should be split at the convergence point of inserts +/** Decide if the page should be split at the convergence point of inserts converging to the left. -@return TRUE if split recommended */ -ibool -btr_page_get_split_rec_to_left( -/*===========================*/ - btr_cur_t* cursor, /*!< in: cursor at which to insert */ - rec_t** split_rec) /*!< out: if split recommended, - the first record on upper half page, - or NULL if tuple to be inserted should - be first */ -{ - page_t* page; - rec_t* insert_point; - rec_t* infimum; - - page = btr_cur_get_page(cursor); - insert_point = btr_cur_get_rec(cursor); +@param[in] cursor insert position +@return the first record to be moved to the right half page +@retval NULL if no split is recommended */ +rec_t* btr_page_get_split_rec_to_left(const btr_cur_t* cursor) +{ + rec_t* split_rec = btr_cur_get_rec(cursor); + const page_t* page = page_align(split_rec); if (page_header_get_ptr(page, PAGE_LAST_INSERT) - == page_rec_get_next(insert_point)) { - - infimum = page_get_infimum_rec(page); + != page_rec_get_next(split_rec)) { + return NULL; + } - /* If the convergence is in the middle of a page, include also - the record immediately before the new insert to the upper - page. Otherwise, we could repeatedly move from page to page - lots of records smaller than the convergence point. */ + /* The metadata record must be present in the leftmost leaf page + of the clustered index, if and only if index->is_instant(). + However, during innobase_instant_try(), index->is_instant() + would already hold when row_ins_clust_index_entry_low() + is being invoked to insert the the metadata record. + So, we can only assert that when the metadata record exists, + index->is_instant() must hold. */ + ut_ad(!page_is_leaf(page) || page_has_prev(page) + || cursor->index->is_instant() + || !(rec_get_info_bits(page_rec_get_next_const( + page_get_infimum_rec(page)), + dict_table_is_comp(cursor->index->table)) + & REC_INFO_MIN_REC_FLAG)); - if (infimum != insert_point - && page_rec_get_next(infimum) != insert_point) { + const rec_t* infimum = page_get_infimum_rec(page); - *split_rec = insert_point; - } else { - *split_rec = page_rec_get_next(insert_point); - } + /* If the convergence is in the middle of a page, include also + the record immediately before the new insert to the upper + page. Otherwise, we could repeatedly move from page to page + lots of records smaller than the convergence point. */ - return(TRUE); + if (split_rec == infimum + || split_rec == page_rec_get_next_const(infimum)) { + split_rec = page_rec_get_next(split_rec); } - return(FALSE); + return split_rec; } -/*************************************************************//** -Decides if the page should be split at the convergence point of inserts +/** Decide if the page should be split at the convergence point of inserts converging to the right. -@return TRUE if split recommended */ -ibool -btr_page_get_split_rec_to_right( -/*============================*/ - btr_cur_t* cursor, /*!< in: cursor at which to insert */ - rec_t** split_rec) /*!< out: if split recommended, - the first record on upper half page, - or NULL if tuple to be inserted should - be first */ +@param[in] cursor insert position +@param[out] split_rec if split recommended, the first record + on the right half page, or + NULL if the to-be-inserted record + should be first +@return whether split is recommended */ +bool +btr_page_get_split_rec_to_right(const btr_cur_t* cursor, rec_t** split_rec) { - page_t* page; - rec_t* insert_point; - - page = btr_cur_get_page(cursor); - insert_point = btr_cur_get_rec(cursor); + rec_t* insert_point = btr_cur_get_rec(cursor); + const page_t* page = page_align(insert_point); /* We use eager heuristics: if the new insert would be right after the previous insert on the same page, we assume that there is a pattern of sequential inserts here. */ - if (page_header_get_ptr(page, PAGE_LAST_INSERT) == insert_point) { - - rec_t* next_rec; - - next_rec = page_rec_get_next(insert_point); - - if (page_rec_is_supremum(next_rec)) { -split_at_new: - /* Split at the new record to insert */ - *split_rec = NULL; - } else { - rec_t* next_next_rec = page_rec_get_next(next_rec); - if (page_rec_is_supremum(next_next_rec)) { - - goto split_at_new; - } + if (page_header_get_ptr(page, PAGE_LAST_INSERT) != insert_point) { + return false; + } - /* If there are >= 2 user records up from the insert - point, split all but 1 off. We want to keep one because - then sequential inserts can use the adaptive hash - index, as they can do the necessary checks of the right - search position just by looking at the records on this - page. */ + insert_point = page_rec_get_next(insert_point); - *split_rec = next_next_rec; + if (page_rec_is_supremum(insert_point)) { + insert_point = NULL; + } else { + insert_point = page_rec_get_next(insert_point); + if (page_rec_is_supremum(insert_point)) { + insert_point = NULL; } - return(TRUE); + /* If there are >= 2 user records up from the insert + point, split all but 1 off. We want to keep one because + then sequential inserts can use the adaptive hash + index, as they can do the necessary checks of the right + search position just by looking at the records on this + page. */ } - return(FALSE); + *split_rec = insert_point; + return true; } /*************************************************************//** @@ -2796,30 +2786,20 @@ buf_block_t* block; page_t* page; page_zip_des_t* page_zip; - ulint page_no; - byte direction; - ulint hint_page_no; buf_block_t* new_block; page_t* new_page; page_zip_des_t* new_page_zip; rec_t* split_rec; buf_block_t* left_block; buf_block_t* right_block; - buf_block_t* insert_block; page_cur_t* page_cursor; rec_t* first_rec; byte* buf = 0; /* remove warning */ rec_t* move_limit; - ibool insert_will_fit; - ibool insert_left; ulint n_iterations = 0; - rec_t* rec; ulint n_uniq; - dict_index_t* index; - index = btr_cur_get_index(cursor); - - if (dict_index_is_spatial(index)) { + if (cursor->index->is_spatial()) { /* Split rtree page and update parent */ return(rtr_page_split_and_insert(flags, cursor, offsets, heap, tuple, n_ext, mtr)); @@ -2850,23 +2830,19 @@ ut_ad(!page_is_empty(page)); /* try to insert to the next page if possible before split */ - rec = btr_insert_into_right_sibling( - flags, cursor, offsets, *heap, tuple, n_ext, mtr); - - if (rec != NULL) { + if (rec_t* rec = btr_insert_into_right_sibling( + flags, cursor, offsets, *heap, tuple, n_ext, mtr)) { return(rec); } - page_no = block->page.id.page_no(); - /* 1. Decide the split record; split_rec == NULL means that the tuple to be inserted should be the first record on the upper half-page */ - insert_left = FALSE; + bool insert_left = false; + ulint hint_page_no = block->page.id.page_no() + 1; + byte direction = FSP_UP; - if (tuple != NULL && n_iterations > 0) { - direction = FSP_UP; - hint_page_no = page_no + 1; + if (tuple && n_iterations > 0) { split_rec = btr_page_get_split_rec(cursor, tuple, n_ext); if (split_rec == NULL) { @@ -2874,17 +2850,10 @@ cursor, tuple, offsets, n_uniq, heap); } } else if (btr_page_get_split_rec_to_right(cursor, &split_rec)) { - direction = FSP_UP; - hint_page_no = page_no + 1; - - } else if (btr_page_get_split_rec_to_left(cursor, &split_rec)) { + } else if ((split_rec = btr_page_get_split_rec_to_left(cursor))) { direction = FSP_DOWN; - hint_page_no = page_no - 1; - ut_ad(split_rec); + hint_page_no -= 2; } else { - direction = FSP_UP; - hint_page_no = page_no + 1; - /* If there is only one record in the index page, we can't split the node in the middle by default. We need to determine whether the new record will be inserted @@ -2909,7 +2878,7 @@ new_block = btr_page_alloc(cursor->index, hint_page_no, direction, btr_page_get_level(page), mtr, mtr); - if (new_block == NULL && os_has_said_disk_full) { + if (!new_block) { return(NULL); } @@ -2934,12 +2903,8 @@ *offsets = rec_get_offsets(split_rec, cursor->index, *offsets, page_is_leaf(page), n_uniq, heap); - if (tuple != NULL) { - insert_left = cmp_dtuple_rec( - tuple, split_rec, *offsets) < 0; - } else { - insert_left = 1; - } + insert_left = !tuple + || cmp_dtuple_rec(tuple, split_rec, *offsets) < 0; if (!insert_left && new_page_zip && n_iterations > 0) { /* If a compressed page has already been split, @@ -2974,10 +2939,10 @@ on the appropriate half-page, we may release the tree x-latch. We can then move the records after releasing the tree latch, thus reducing the tree latch contention. */ + bool insert_will_fit; if (tuple == NULL) { - insert_will_fit = 1; - } - else if (split_rec) { + insert_will_fit = true; + } else if (split_rec) { insert_will_fit = !new_page_zip && btr_page_insert_fits(cursor, split_rec, offsets, tuple, n_ext, heap); @@ -3074,8 +3039,6 @@ /* Update the lock table and possible hash index. */ lock_move_rec_list_end(new_block, block, move_limit); - ut_ad(!dict_index_is_spatial(index)); - btr_search_move_or_delete_hash_entries( new_block, block); @@ -3107,18 +3070,15 @@ /* 6. The split and the tree modification is now completed. Decide the page where the tuple should be inserted */ + rec_t* rec; + buf_block_t* const insert_block = insert_left + ? left_block : right_block; - if (tuple == NULL) { + if (UNIV_UNLIKELY(!tuple)) { rec = NULL; goto func_exit; } - if (insert_left) { - insert_block = left_block; - } else { - insert_block = right_block; - } - /* 7. Reposition the cursor for insert and try insertion */ page_cursor = btr_cur_get_page_cur(cursor); @@ -3195,9 +3155,7 @@ ut_ad(page_validate(buf_block_get_frame(left_block), cursor->index)); ut_ad(page_validate(buf_block_get_frame(right_block), cursor->index)); - if (tuple == NULL) { - ut_ad(rec == NULL); - } + ut_ad(tuple || !rec); ut_ad(!rec || rec_offs_validate(rec, cursor->index, *offsets)); return(rec); } @@ -3314,25 +3272,22 @@ return(ptr + 2); } -/****************************************************************//** -Sets a record as the predefined minimum record. */ -void -btr_set_min_rec_mark( -/*=================*/ - rec_t* rec, /*!< in: record */ - mtr_t* mtr) /*!< in: mtr */ +/** Sets a record as the predefined minimum record. */ +void btr_set_min_rec_mark(rec_t* rec, mtr_t* mtr) { - ulint info_bits; + const bool comp = page_rec_is_comp(rec); - if (page_rec_is_comp(rec)) { - info_bits = rec_get_info_bits(rec, TRUE); + ut_ad(rec == page_rec_get_next_const(page_get_infimum_rec( + page_align(rec)))); + ut_ad(!(rec_get_info_bits(page_rec_get_next(rec), comp) + & REC_INFO_MIN_REC_FLAG)); + size_t info_bits = rec_get_info_bits(rec, comp); + if (comp) { rec_set_info_bits_new(rec, info_bits | REC_INFO_MIN_REC_FLAG); btr_set_min_rec_mark_log(rec, MLOG_COMP_REC_MIN_MARK, mtr); } else { - info_bits = rec_get_info_bits(rec, FALSE); - rec_set_info_bits_old(rec, info_bits | REC_INFO_MIN_REC_FLAG); btr_set_min_rec_mark_log(rec, MLOG_REC_MIN_MARK, mtr); diff -Nru mariadb-10.3-10.3.17/storage/innobase/btr/btr0bulk.cc mariadb-10.3-10.3.20/storage/innobase/btr/btr0bulk.cc --- mariadb-10.3-10.3.17/storage/innobase/btr/btr0bulk.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/btr/btr0bulk.cc 2019-11-06 16:01:58.000000000 +0000 @@ -1,6 +1,6 @@ /***************************************************************************** -Copyright (c) 2014, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2014, 2019, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2017, 2019, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under @@ -51,7 +51,7 @@ m_heap = mem_heap_create(1000); m_mtr.start(); - mtr_x_lock(&m_index->lock, &m_mtr); + if (m_flush_observer) { m_mtr.set_log_mode(MTR_LOG_NO_REDO); m_mtr.set_flush_observer(m_flush_observer); @@ -609,22 +609,20 @@ btr_pcur.pos_state = BTR_PCUR_IS_POSITIONED; btr_pcur.latch_mode = BTR_MODIFY_LEAF; btr_pcur.btr_cur.index = m_index; - - page_cur_t* page_cur = &btr_pcur.btr_cur.page_cur; - page_cur->index = m_index; - page_cur->rec = m_cur_rec; - page_cur->offsets = offsets; - page_cur->block = m_block; + btr_pcur.btr_cur.page_cur.index = m_index; + btr_pcur.btr_cur.page_cur.rec = m_cur_rec; + btr_pcur.btr_cur.page_cur.offsets = offsets; + btr_pcur.btr_cur.page_cur.block = m_block; dberr_t err = btr_store_big_rec_extern_fields( &btr_pcur, offsets, big_rec, &m_mtr, BTR_STORE_INSERT_BULK); - ut_ad(page_offset(m_cur_rec) == page_offset(page_cur->rec)); - /* Reset m_block and m_cur_rec from page cursor, because - block may be changed during blob insert. */ - m_block = page_cur->block; - m_cur_rec = page_cur->rec; + block may be changed during blob insert. (FIXME: Can it really?) */ + ut_ad(m_block == btr_pcur.btr_cur.page_cur.block); + + m_block = btr_pcur.btr_cur.page_cur.block; + m_cur_rec = btr_pcur.btr_cur.page_cur.rec; m_page = buf_block_get_frame(m_block); return(err); @@ -651,7 +649,7 @@ PageBulk::latch() { m_mtr.start(); - mtr_x_lock(&m_index->lock, &m_mtr); + if (m_flush_observer) { m_mtr.set_log_mode(MTR_LOG_NO_REDO); m_mtr.set_flush_observer(m_flush_observer); @@ -756,6 +754,10 @@ page_bulk->setNext(FIL_NULL); } + ut_ad(!rw_lock_own_flagged(&m_index->lock, + RW_LOCK_FLAG_X | RW_LOCK_FLAG_SX + | RW_LOCK_FLAG_S)); + /* Compress page if it's a compressed table. */ if (page_bulk->getPageZip() != NULL && !page_bulk->compress()) { return(pageSplit(page_bulk, next_page_bulk)); diff -Nru mariadb-10.3-10.3.17/storage/innobase/btr/btr0cur.cc mariadb-10.3-10.3.20/storage/innobase/btr/btr0cur.cc --- mariadb-10.3-10.3.17/storage/innobase/btr/btr0cur.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/btr/btr0cur.cc 2019-11-06 16:01:58.000000000 +0000 @@ -2881,7 +2881,7 @@ index->table->file_unreadable = true; } - goto exit_loop; + break; } page = buf_block_get_frame(block); @@ -3038,12 +3038,11 @@ n_blocks++; } - exit_loop: if (UNIV_LIKELY_NULL(heap)) { mem_heap_free(heap); } - return(true); + return err == DB_SUCCESS; } /*==================== B-TREE INSERT =========================*/ @@ -3362,7 +3361,7 @@ && page_get_n_recs(page) >= 2 && dict_index_get_space_reserve() + rec_size > max_size && (btr_page_get_split_rec_to_right(cursor, &dummy) - || btr_page_get_split_rec_to_left(cursor, &dummy))) { + || btr_page_get_split_rec_to_left(cursor))) { goto fail; } @@ -5676,6 +5675,9 @@ #endif /* UNIV_ZIP_DEBUG */ } + rec_t* next_rec = NULL; + bool min_mark_next_rec = false; + if (page_is_leaf(page)) { const bool is_metadata = rec_get_info_bits( rec, page_rec_is_comp(rec)) & REC_INFO_MIN_REC_FLAG; @@ -5749,20 +5751,14 @@ goto return_after_reservations; } - rec_t* next_rec = page_rec_get_next(rec); + next_rec = page_rec_get_next(rec); if (!page_has_prev(page)) { - /* If we delete the leftmost node pointer on a non-leaf level, we must mark the new leftmost node pointer as the predefined minimum record */ - /* This will make page_zip_validate() fail until - page_cur_delete_rec() completes. This is harmless, - because everything will take place within a single - mini-transaction and because writing to the redo log - is an atomic operation (performed by mtr_commit()). */ - btr_set_min_rec_mark(next_rec, mtr); + min_mark_next_rec = true; } else if (dict_index_is_spatial(index)) { /* For rtree, if delete the leftmost node pointer, we need to update parent page. */ @@ -5830,6 +5826,11 @@ block->page.size, mtr); page_cur_delete_rec(btr_cur_get_page_cur(cursor), index, offsets, mtr); + + if (min_mark_next_rec) { + btr_set_min_rec_mark(next_rec, mtr); + } + #ifdef UNIV_ZIP_DEBUG ut_a(!page_zip || page_zip_validate(page_zip, page, index)); #endif /* UNIV_ZIP_DEBUG */ @@ -7205,7 +7206,7 @@ ulint page_no = ULINT_UNDEFINED; FlushObserver* observer = m_mtr->get_flush_observer(); - if (m_op == BTR_STORE_INSERT_BULK) { + if (UNIV_UNLIKELY(m_op == BTR_STORE_INSERT_BULK)) { offs = page_offset(*m_rec); page_no = page_get_page_no( buf_block_get_frame(*m_block)); @@ -7228,8 +7229,7 @@ index->set_modified(*m_mtr); m_mtr->set_flush_observer(observer); - if (m_op == BTR_STORE_INSERT_BULK) { - mtr_x_lock(dict_index_get_lock(index), m_mtr); + if (UNIV_UNLIKELY(m_op == BTR_STORE_INSERT_BULK)) { m_pcur->btr_cur.page_cur.block = btr_block_get( page_id_t(index->table->space_id, page_no), page_size_t(index->table->space->flags), @@ -7258,9 +7258,10 @@ *m_rec, MTR_MEMO_PAGE_X_FIX | MTR_MEMO_PAGE_SX_FIX)); - ut_ad(mtr_memo_contains_flagged(m_mtr, - dict_index_get_lock(index), - MTR_MEMO_SX_LOCK | MTR_MEMO_X_LOCK)); + ut_ad((m_op == BTR_STORE_INSERT_BULK) + == !mtr_memo_contains_flagged(m_mtr, &index->lock, + MTR_MEMO_SX_LOCK + | MTR_MEMO_X_LOCK)); } }; @@ -7314,8 +7315,10 @@ ut_ad(rec_offs_validate(rec, index, offsets)); ut_ad(rec_offs_any_extern(offsets)); - ut_ad(mtr_memo_contains_flagged(btr_mtr, dict_index_get_lock(index), - MTR_MEMO_X_LOCK | MTR_MEMO_SX_LOCK)); + ut_ad(op == BTR_STORE_INSERT_BULK + || mtr_memo_contains_flagged(btr_mtr, &index->lock, + MTR_MEMO_X_LOCK + | MTR_MEMO_SX_LOCK)); ut_ad(mtr_memo_contains(btr_mtr, rec_block, MTR_MEMO_PAGE_X_FIX)); ut_ad(buf_block_get_frame(rec_block) == page_align(rec)); ut_a(dict_index_is_clust(index)); @@ -7440,7 +7443,7 @@ mtr_t *alloc_mtr; - if (op == BTR_STORE_INSERT_BULK) { + if (UNIV_UNLIKELY(op == BTR_STORE_INSERT_BULK)) { mtr_bulk.start(); mtr_bulk.set_spaces(mtr); alloc_mtr = &mtr_bulk; @@ -7463,7 +7466,7 @@ index->table->space->release_free_extents(r_extents); - if (op == BTR_STORE_INSERT_BULK) { + if (UNIV_UNLIKELY(op == BTR_STORE_INSERT_BULK)) { mtr_bulk.commit(); } @@ -7619,7 +7622,7 @@ } /* We compress a page when finish bulk insert.*/ - if (op != BTR_STORE_INSERT_BULK) { + if (UNIV_LIKELY(op != BTR_STORE_INSERT_BULK)) { page_zip_write_blob_ptr( page_zip, rec, index, offsets, field_no, &mtr); diff -Nru mariadb-10.3-10.3.17/storage/innobase/btr/btr0scrub.cc mariadb-10.3-10.3.20/storage/innobase/btr/btr0scrub.cc --- mariadb-10.3-10.3.17/storage/innobase/btr/btr0scrub.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/btr/btr0scrub.cc 2019-11-06 16:01:58.000000000 +0000 @@ -626,13 +626,8 @@ scrub_data->current_table = NULL; } - /* argument to dict_table_open_on_index_id */ - bool dict_locked = true; - /* open table based on index_id */ - dict_table_t* table = dict_table_open_on_index_id( - index_id, - dict_locked); + dict_table_t* table = dict_table_open_on_index_id(index_id); if (table != NULL) { /* mark table as being scrubbed */ diff -Nru mariadb-10.3-10.3.17/storage/innobase/buf/buf0buf.cc mariadb-10.3-10.3.20/storage/innobase/buf/buf0buf.cc --- mariadb-10.3-10.3.17/storage/innobase/buf/buf0buf.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/buf/buf0buf.cc 2019-11-06 16:01:58.000000000 +0000 @@ -589,12 +589,6 @@ << mach_read_from_4( FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION + dst_frame); - /* Mark page encrypted in case it should be. */ - if (space->crypt_data->type - != CRYPT_SCHEME_UNENCRYPTED) { - bpage->encrypted = true; - } - return false; } @@ -605,8 +599,7 @@ ut_d(fil_page_type_validate(dst_frame)); /* decrypt using crypt_buf to dst_frame */ - if (!fil_space_decrypt(space, slot->crypt_buf, - dst_frame, &bpage->encrypted)) { + if (!fil_space_decrypt(space, slot->crypt_buf, dst_frame)) { slot->release(); goto decrypt_failed; } @@ -1573,7 +1566,6 @@ block->page.buf_fix_count = 0; block->page.io_fix = BUF_IO_NONE; block->page.flush_observer = NULL; - block->page.encrypted = false; block->page.real_size = 0; block->page.write_size = 0; block->modify_clock = 0; @@ -4087,7 +4079,6 @@ if (encrypted) { ib::info() << "Row compressed page could be encrypted" " with key_version " << key_version; - block->page.encrypted = true; } if (space) { @@ -5293,7 +5284,6 @@ bpage->newest_modification = 0; bpage->oldest_modification = 0; bpage->write_size = 0; - bpage->encrypted = false; bpage->real_size = 0; bpage->slot = NULL; @@ -5887,17 +5877,19 @@ } /** Mark a table corrupted. -Also remove the bpage from LRU list. -@param[in] bpage Corrupted page. */ -static void buf_mark_space_corrupt(buf_page_t* bpage, const fil_space_t* space) +@param[in] bpage corrupted page +@param[in] space tablespace of the corrupted page */ +ATTRIBUTE_COLD +static void buf_mark_space_corrupt(buf_page_t* bpage, const fil_space_t& space) { /* If block is not encrypted find the table with specified space id, and mark it corrupted. Encrypted tables are marked unusable later e.g. in ::open(). */ - if (!bpage->encrypted) { - dict_set_corrupted_by_space(space); + if (!space.crypt_data + || space.crypt_data->type == CRYPT_SCHEME_UNENCRYPTED) { + dict_set_corrupted_by_space(&space); } else { - dict_set_encrypted_by_space(space); + dict_set_encrypted_by_space(&space); } } @@ -5936,7 +5928,7 @@ mutex_exit(buf_page_get_mutex(bpage)); if (!srv_force_recovery) { - buf_mark_space_corrupt(bpage, space); + buf_mark_space_corrupt(bpage, *space); } /* After this point bpage can't be referenced. */ @@ -5966,7 +5958,6 @@ byte* dst_frame = (bpage->zip.data) ? bpage->zip.data : ((buf_block_t*) bpage)->frame; dberr_t err = DB_SUCCESS; - bool corrupted = false; /* In buf_decrypt_after_read we have either decrypted the page if page post encryption checksum matches and used key_id is found @@ -5974,33 +5965,20 @@ not decrypted and it could be either encrypted and corrupted or corrupted or good page. If we decrypted, there page could still be corrupted if used key does not match. */ - const bool still_encrypted = mach_read_from_4( + const bool seems_encrypted = mach_read_from_4( dst_frame + FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION) && space->crypt_data - && space->crypt_data->type != CRYPT_SCHEME_UNENCRYPTED - && !bpage->encrypted - && fil_space_verify_crypt_checksum(dst_frame, bpage->size); - - if (!still_encrypted) { - /* If traditional checksums match, we assume that page is - not anymore encrypted. */ - corrupted = buf_page_is_corrupted( - true, dst_frame, bpage->size, space); + && space->crypt_data->type != CRYPT_SCHEME_UNENCRYPTED; - if (!corrupted) { - bpage->encrypted = false; - } else { - err = DB_PAGE_CORRUPTED; - } + /* If traditional checksums match, we assume that page is + not anymore encrypted. */ + if (buf_page_is_corrupted( + true, dst_frame, bpage->size, space)) { + err = DB_PAGE_CORRUPTED; } - /* Pages that we think are unencrypted but do not match the checksum - checks could be corrupted or encrypted or both. */ - if (corrupted && !bpage->encrypted) { - /* An error will be reported by - buf_page_io_complete(). */ - } else if (still_encrypted || (bpage->encrypted && corrupted)) { - bpage->encrypted = true; + if (seems_encrypted && err == DB_PAGE_CORRUPTED + && bpage->id.page_no() != 0) { err = DB_DECRYPTION_FAILED; ib::error() @@ -6062,7 +6040,6 @@ if (io_type == BUF_IO_READ) { ulint read_page_no = 0; ulint read_space_id = 0; - uint key_version = 0; byte* frame = bpage->zip.data ? bpage->zip.data : reinterpret_cast(bpage)->frame; @@ -6102,8 +6079,6 @@ read_page_no = mach_read_from_4(frame + FIL_PAGE_OFFSET); read_space_id = mach_read_from_4( frame + FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID); - key_version = mach_read_from_4( - frame + FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION); if (bpage->id.space() == TRX_SYS_SPACE && buf_dblwr_page_inside(bpage->id.page_no())) { @@ -6219,23 +6194,9 @@ && fil_page_get_type(frame) == FIL_PAGE_INDEX && page_is_leaf(frame)) { - if (bpage->encrypted) { - ib::warn() - << "Table in tablespace " - << bpage->id.space() - << " encrypted. However key " - "management plugin or used " - << "key_version " << key_version - << " is not found or" - " used encryption algorithm or method does not match." - " Can't continue opening the table."; - } else { - - ibuf_merge_or_delete_for_page( - (buf_block_t*) bpage, bpage->id, - &bpage->size, TRUE); - } - + ibuf_merge_or_delete_for_page( + (buf_block_t*) bpage, bpage->id, + &bpage->size, TRUE); } space->release_for_io(); diff -Nru mariadb-10.3-10.3.17/storage/innobase/buf/buf0dblwr.cc mariadb-10.3-10.3.20/storage/innobase/buf/buf0dblwr.cc --- mariadb-10.3-10.3.17/storage/innobase/buf/buf0dblwr.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/buf/buf0dblwr.cc 2019-11-06 16:01:58.000000000 +0000 @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1995, 2017, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2013, 2018, MariaDB Corporation. +Copyright (c) 2013, 2019, MariaDB Corporation. 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 @@ -264,6 +264,13 @@ ut_ad(rw_lock_get_x_lock_count(&new_block->lock) == 1); page_no = new_block->page.id.page_no(); + /* We only do this in the debug build, to ensure that + both the check in buf_flush_init_for_writing() and + recv_parse_or_apply_log_rec_body() will see a valid + page type. The flushes of new_block are actually + unnecessary here. */ + ut_d(mlog_write_ulint(FIL_PAGE_TYPE + new_block->frame, + FIL_PAGE_TYPE_SYS, MLOG_2BYTES, &mtr)); if (i == FSP_EXTENT_SIZE / 2) { ut_a(page_no == FSP_EXTENT_SIZE); @@ -325,7 +332,8 @@ mtr_commit(&mtr); /* Flush the modified pages to disk and make a checkpoint */ - log_make_checkpoint_at(LSN_MAX); + log_make_checkpoint(); + buf_dblwr_being_created = FALSE; /* Remove doublewrite pages from LRU */ buf_pool_invalidate(); diff -Nru mariadb-10.3-10.3.17/storage/innobase/buf/buf0flu.cc mariadb-10.3-10.3.20/storage/innobase/buf/buf0flu.cc --- mariadb-10.3-10.3.17/storage/innobase/buf/buf0flu.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/buf/buf0flu.cc 2019-11-06 16:01:58.000000000 +0000 @@ -855,7 +855,16 @@ ut_ad(block == NULL || block->frame == page); ut_ad(block == NULL || page_zip_ == NULL || &block->page.zip == page_zip_); + ut_ad(!block || newest_lsn); ut_ad(page); +#if 0 /* MDEV-15528 TODO: reinstate this check */ + /* innodb_immediate_scrub_data_uncompressed=ON would cause + fsp_init_file_page() to be called on freed pages, and thus + cause them to be written as almost-all-zeroed. + In MDEV-15528 we should change that implement an option to + make freed pages appear all-zero, bypassing this code. */ + ut_ad(!newest_lsn || fil_page_get_type(page)); +#endif if (page_zip_) { page_zip_des_t* page_zip; diff -Nru mariadb-10.3-10.3.17/storage/innobase/.clang-format mariadb-10.3-10.3.20/storage/innobase/.clang-format --- mariadb-10.3-10.3.17/storage/innobase/.clang-format 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/.clang-format 2019-11-06 16:01:58.000000000 +0000 @@ -0,0 +1,11 @@ +UseTab: Always +TabWidth: 8 +IndentWidth: 8 +ContinuationIndentWidth: 8 +BreakBeforeBinaryOperators: All +PointerAlignment: Left +BreakBeforeBraces: Custom +ColumnLimit: 79 +BraceWrapping: + AfterFunction: true +AccessModifierOffset: -8 diff -Nru mariadb-10.3-10.3.17/storage/innobase/dict/dict0boot.cc mariadb-10.3-10.3.20/storage/innobase/dict/dict0boot.cc --- mariadb-10.3-10.3.17/storage/innobase/dict/dict0boot.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/dict/dict0boot.cc 2019-11-06 16:01:58.000000000 +0000 @@ -127,8 +127,7 @@ } if (space_id) { - *space_id = mtr_read_ulint(dict_hdr + DICT_HDR_MAX_SPACE_ID, - MLOG_4BYTES, &mtr); + *space_id = mach_read_from_4(dict_hdr + DICT_HDR_MAX_SPACE_ID); if (fil_assign_new_space_id(space_id)) { mlog_write_ulint(dict_hdr + DICT_HDR_MAX_SPACE_ID, *space_id, MLOG_4BYTES, &mtr); @@ -361,9 +360,9 @@ dict_mem_index_add_field(index, "NAME", 0); index->id = DICT_TABLES_ID; - index = dict_index_add_to_cache( + dberr_t error = dict_index_add_to_cache( index, mach_read_from_4(dict_hdr + DICT_HDR_TABLES)); - ut_a(index); + ut_a(error == DB_SUCCESS); ut_ad(!table->is_instant()); table->indexes.start->n_core_null_bytes = UT_BITS_IN_BYTES( unsigned(table->indexes.start->n_nullable)); @@ -373,9 +372,9 @@ dict_mem_index_add_field(index, "ID", 0); index->id = DICT_TABLE_IDS_ID; - index = dict_index_add_to_cache( + error = dict_index_add_to_cache( index, mach_read_from_4(dict_hdr + DICT_HDR_TABLE_IDS)); - ut_a(index); + ut_a(error == DB_SUCCESS); /*-------------------------*/ table = dict_mem_table_create("SYS_COLUMNS", fil_system.sys_space, @@ -403,9 +402,9 @@ dict_mem_index_add_field(index, "POS", 0); index->id = DICT_COLUMNS_ID; - index = dict_index_add_to_cache( + error = dict_index_add_to_cache( index, mach_read_from_4(dict_hdr + DICT_HDR_COLUMNS)); - ut_a(index); + ut_a(error == DB_SUCCESS); ut_ad(!table->is_instant()); table->indexes.start->n_core_null_bytes = UT_BITS_IN_BYTES( unsigned(table->indexes.start->n_nullable)); @@ -446,9 +445,9 @@ dict_mem_index_add_field(index, "ID", 0); index->id = DICT_INDEXES_ID; - index = dict_index_add_to_cache( + error = dict_index_add_to_cache( index, mach_read_from_4(dict_hdr + DICT_HDR_INDEXES)); - ut_a(index); + ut_a(error == DB_SUCCESS); ut_ad(!table->is_instant()); table->indexes.start->n_core_null_bytes = UT_BITS_IN_BYTES( unsigned(table->indexes.start->n_nullable)); @@ -475,9 +474,9 @@ dict_mem_index_add_field(index, "POS", 0); index->id = DICT_FIELDS_ID; - index = dict_index_add_to_cache( + error = dict_index_add_to_cache( index, mach_read_from_4(dict_hdr + DICT_HDR_FIELDS)); - ut_a(index); + ut_a(error == DB_SUCCESS); ut_ad(!table->is_instant()); table->indexes.start->n_core_null_bytes = UT_BITS_IN_BYTES( unsigned(table->indexes.start->n_nullable)); diff -Nru mariadb-10.3-10.3.17/storage/innobase/dict/dict0crea.cc mariadb-10.3-10.3.20/storage/innobase/dict/dict0crea.cc --- mariadb-10.3-10.3.17/storage/innobase/dict/dict0crea.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/dict/dict0crea.cc 2019-11-06 16:01:58.000000000 +0000 @@ -1350,9 +1350,9 @@ if (node->state == INDEX_ADD_TO_CACHE) { ut_ad(node->index->table == node->table); - node->index = dict_index_add_to_cache( + err = dict_index_add_to_cache( node->index, FIL_NULL, trx_is_strict(trx), - &err, node->add_v); + node->add_v); ut_ad((node->index == NULL) == (err != DB_SUCCESS)); diff -Nru mariadb-10.3-10.3.17/storage/innobase/dict/dict0dict.cc mariadb-10.3-10.3.20/storage/innobase/dict/dict0dict.cc --- mariadb-10.3-10.3.17/storage/innobase/dict/dict0dict.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/dict/dict0dict.cc 2019-11-06 16:01:58.000000000 +0000 @@ -427,7 +427,7 @@ if (table == NULL) { table = dict_table_open_on_id_low( - table_id, DICT_ERR_IGNORE_NONE, FALSE); + table_id, DICT_ERR_IGNORE_FK_NOKEY, FALSE); } else { ut_ad(table->id == table_id); } @@ -1002,7 +1002,7 @@ table_id, table_op == DICT_TABLE_OP_LOAD_TABLESPACE ? DICT_ERR_IGNORE_RECOVER_LOCK - : DICT_ERR_IGNORE_NONE, + : DICT_ERR_IGNORE_FK_NOKEY, table_op == DICT_TABLE_OP_OPEN_ONLY_IF_CACHED); if (table != NULL) { @@ -1156,7 +1156,7 @@ table = dict_table_check_if_in_cache_low(table_name); if (table == NULL) { - table = dict_load_table(table_name, true, ignore_err); + table = dict_load_table(table_name, ignore_err); } ut_ad(!table || table->cached); @@ -1164,7 +1164,7 @@ if (table != NULL) { /* If table is encrypted or corrupted */ - if (ignore_err == DICT_ERR_IGNORE_NONE + if (!(ignore_err & ~DICT_ERR_IGNORE_FK_NOKEY) && !table->is_readable()) { /* Make life easy for drop table. */ dict_table_prevent_eviction(table); @@ -1418,14 +1418,7 @@ prev_table = UT_LIST_GET_PREV(table_LRU, table); if (dict_table_can_be_evicted(table)) { - - DBUG_EXECUTE_IF("crash_if_fts_table_is_evicted", - { - if (table->fts && - dict_table_has_fts_index(table)) { - ut_ad(0); - } - };); + ut_ad(!table->fts); dict_table_remove_from_cache_low(table, TRUE); ++n_evicted; @@ -1772,8 +1765,7 @@ /* The old table name in my_charset_filename is stored in old_name_cs_filename */ - strncpy(old_name_cs_filename, old_name, - MAX_FULL_NAME_LEN); + strcpy(old_name_cs_filename, old_name); old_name_cs_filename[MAX_FULL_NAME_LEN] = '\0'; if (strstr(old_name, TEMP_TABLE_PATH_PREFIX) == NULL) { @@ -1795,8 +1787,7 @@ } else { /* Old name already in my_charset_filename */ - strncpy(old_name_cs_filename, old_name, - MAX_FULL_NAME_LEN); + strcpy(old_name_cs_filename, old_name); old_name_cs_filename[MAX_FULL_NAME_LEN] = '\0'; } @@ -2298,23 +2289,19 @@ /** Adds an index to the dictionary cache, with possible indexing newly added column. -@param[in] index index; NOTE! The index memory +@param[in,out] index index; NOTE! The index memory object is freed in this function! @param[in] page_no root page number of the index -@param[in] strict TRUE=refuse to create the index +@param[in] strict true=refuse to create the index if records could be too big to fit in an B-tree page -@param[out] err DB_SUCCESS, DB_TOO_BIG_RECORD, or DB_CORRUPTION -@param[in] add_v new virtual column that being added along with - an add index call -@return the added index -@retval NULL on error */ -dict_index_t* +@param[in] add_v virtual columns being added along with ADD INDEX +@return DB_SUCCESS, DB_TOO_BIG_RECORD, or DB_CORRUPTION */ +dberr_t dict_index_add_to_cache( - dict_index_t* index, + dict_index_t*& index, ulint page_no, bool strict, - dberr_t* err, const dict_add_v_col_t* add_v) { dict_index_t* new_index; @@ -2335,8 +2322,8 @@ if (!dict_index_find_cols(index, add_v)) { dict_mem_index_free(index); - if (err) *err = DB_CORRUPTION; - return NULL; + index = NULL; + return DB_CORRUPTION; } /* Build the cache internal representation of the index, @@ -2368,8 +2355,8 @@ if (strict) { dict_mem_index_free(new_index); dict_mem_index_free(index); - if (err) *err = DB_TOO_BIG_RECORD; - return NULL; + index = NULL; + return DB_TOO_BIG_RECORD; } else if (current_thd != NULL) { /* Avoid the warning to be printed during recovery. */ @@ -2447,8 +2434,8 @@ new_index->n_core_fields = new_index->n_fields; dict_mem_index_free(index); - if (err) *err = DB_SUCCESS; - return new_index; + index = new_index; + return DB_SUCCESS; } /**********************************************************************//** @@ -2803,30 +2790,6 @@ dict_table_copy_v_types(tuple, table); } -/******************************************************************** -Wait until all the background threads of the given table have exited, i.e., -bg_threads == 0. Note: bg_threads_mutex must be reserved when -calling this. */ -void -dict_table_wait_for_bg_threads_to_exit( -/*===================================*/ - dict_table_t* table, /*< in: table */ - ulint delay) /*< in: time in microseconds to wait between - checks of bg_threads. */ -{ - fts_t* fts = table->fts; - - ut_ad(mutex_own(&fts->bg_threads_mutex)); - - while (fts->bg_threads > 0) { - mutex_exit(&fts->bg_threads_mutex); - - os_thread_sleep(delay); - - mutex_enter(&fts->bg_threads_mutex); - } -} - /*******************************************************************//** Builds the internal dictionary cache representation for a clustered index, containing also system fields not defined by the user. @@ -3128,11 +3091,6 @@ } /*====================== FOREIGN KEY PROCESSING ========================*/ -#define DB_FOREIGN_KEY_IS_PREFIX_INDEX 200 -#define DB_FOREIGN_KEY_COL_NOT_NULL 201 -#define DB_FOREIGN_KEY_COLS_NOT_EQUAL 202 -#define DB_FOREIGN_KEY_INDEX_NOT_FOUND 203 - /** Check whether the dict_table_t is a partition. A partitioned table on the SQL level is composed of InnoDB tables, where each InnoDB table is a [sub]partition including its secondary indexes @@ -3239,7 +3197,7 @@ /*!< in: nonzero if none of the columns must be declared NOT NULL */ - ulint* error, /*!< out: error code */ + fkerr_t* error, /*!< out: error code */ ulint* err_col_no, /*!< out: column number where error happened */ @@ -3247,17 +3205,15 @@ /*!< out: index where error happened */ { - dict_index_t* index; - ut_ad(mutex_own(&dict_sys->mutex)); if (error) { - *error = DB_FOREIGN_KEY_INDEX_NOT_FOUND; + *error = FK_INDEX_NOT_FOUND; } - index = dict_table_get_first_index(table); - - while (index != NULL) { + for (dict_index_t* index = dict_table_get_first_index(table); + index; + index = dict_table_get_next_index(index)) { if (types_idx != index && !index->to_be_dropped && !dict_index_is_online_ddl(index) @@ -3265,42 +3221,17 @@ table, col_names, columns, n_cols, index, types_idx, check_charsets, check_null, - error, err_col_no,err_index)) { + error, err_col_no, err_index)) { if (error) { - *error = DB_SUCCESS; + *error = FK_SUCCESS; } return(index); } - - index = dict_table_get_next_index(index); } return(NULL); } -#ifdef WITH_WSREP -dict_index_t* -wsrep_dict_foreign_find_index( -/*====================*/ - dict_table_t* table, /*!< in: table */ - const char** col_names, /*!< in: column names, or NULL - to use table->col_names */ - const char** columns,/*!< in: array of column names */ - ulint n_cols, /*!< in: number of columns */ - dict_index_t* types_idx, /*!< in: NULL or an index to whose types the - column types must match */ - ibool check_charsets, - /*!< in: whether to check charsets. - only has an effect if types_idx != NULL */ - ulint check_null) - /*!< in: nonzero if none of the columns must - be declared NOT NULL */ -{ - return dict_foreign_find_index( - table, col_names, columns, n_cols, types_idx, check_charsets, - check_null, NULL, NULL, NULL); -} -#endif /* WITH_WSREP */ /**********************************************************************//** Report an error in a foreign key definition. */ static @@ -3397,15 +3328,11 @@ } if (ref_table && !for_in_cache->referenced_table) { - ulint index_error; - ulint err_col; - dict_index_t *err_index=NULL; - index = dict_foreign_find_index( ref_table, NULL, for_in_cache->referenced_col_names, for_in_cache->n_fields, for_in_cache->foreign_index, - check_charsets, false, &index_error, &err_col, &err_index); + check_charsets, false); if (index == NULL && !(ignore_err & DICT_ERR_IGNORE_FK_NOKEY)) { @@ -3437,10 +3364,6 @@ } if (for_table && !for_in_cache->foreign_table) { - ulint index_error; - ulint err_col; - dict_index_t *err_index=NULL; - index = dict_foreign_find_index( for_table, col_names, for_in_cache->foreign_col_names, @@ -3448,8 +3371,7 @@ for_in_cache->referenced_index, check_charsets, for_in_cache->type & (DICT_FOREIGN_ON_DELETE_SET_NULL - | DICT_FOREIGN_ON_UPDATE_SET_NULL), - &index_error, &err_col, &err_index); + | DICT_FOREIGN_ON_UPDATE_SET_NULL)); if (index == NULL && !(ignore_err & DICT_ERR_IGNORE_FK_NOKEY)) { @@ -4161,7 +4083,7 @@ const char* latest_foreign, /*!< in: start of latest foreign key constraint name */ const char** columns, /*!< in: foreign key columns */ - ulint index_error, /*!< in: error code */ + fkerr_t index_error, /*!< in: error code */ ulint err_col, /*!< in: column where error happened */ dict_index_t* err_index, /*!< in: index where error happened @@ -4170,37 +4092,37 @@ FILE* ef) /*!< in: output stream */ { switch (index_error) { - case DB_FOREIGN_KEY_INDEX_NOT_FOUND: { + case FK_SUCCESS: + break; + case FK_INDEX_NOT_FOUND: fprintf(ef, - "%s table '%s' with foreign key constraint" + "%s table %s with foreign key constraint" " failed. There is no index in the referenced" " table where the referenced columns appear" " as the first columns near '%s'.\n", operation, create_name, latest_foreign); ib_push_warning(trx, DB_CANNOT_ADD_CONSTRAINT, - "%s table '%s' with foreign key constraint" + "%s table %s with foreign key constraint" " failed. There is no index in the referenced" " table where the referenced columns appear" " as the first columns near '%s'.", operation, create_name, latest_foreign); - break; - } - case DB_FOREIGN_KEY_IS_PREFIX_INDEX: { + return; + case FK_IS_PREFIX_INDEX: fprintf(ef, - "%s table '%s' with foreign key constraint" + "%s table %s with foreign key constraint" " failed. There is only prefix index in the referenced" " table where the referenced columns appear" " as the first columns near '%s'.\n", operation, create_name, latest_foreign); ib_push_warning(trx, DB_CANNOT_ADD_CONSTRAINT, - "%s table '%s' with foreign key constraint" + "%s table %s with foreign key constraint" " failed. There is only prefix index in the referenced" " table where the referenced columns appear" " as the first columns near '%s'.", operation, create_name, latest_foreign); - break; - } - case DB_FOREIGN_KEY_COL_NOT_NULL: { + return; + case FK_COL_NOT_NULL: fprintf(ef, "%s table %s with foreign key constraint" " failed. You have defined a SET NULL condition but " @@ -4211,9 +4133,8 @@ " failed. You have defined a SET NULL condition but " "column '%s' on index is defined as NOT NULL near '%s'.", operation, create_name, columns[err_col], latest_foreign); - break; - } - case DB_FOREIGN_KEY_COLS_NOT_EQUAL: { + return; + case FK_COLS_NOT_EQUAL: dict_field_t* field; const char* col_name; field = dict_index_get_nth_field(err_index, err_col); @@ -4232,11 +4153,9 @@ " failed. Field type or character set for column '%s' " "does not mach referenced column '%s' near '%s'.", operation, create_name, columns[err_col], col_name, latest_foreign); - break; - } - default: - ut_error; + return; } + DBUG_ASSERT(!"unknown error"); } /*********************************************************************//** @@ -4268,7 +4187,7 @@ const char* start_of_latest_foreign = sql_string; const char* start_of_latest_set = NULL; FILE* ef = dict_foreign_err_file; - ulint index_error = DB_SUCCESS; + fkerr_t index_error = FK_SUCCESS; dict_index_t* err_index = NULL; ulint err_col; const char* constraint_name; @@ -6720,7 +6639,7 @@ /*!< in: nonzero if none of the columns must be declared NOT NULL */ - ulint* error, /*!< out: error code */ + fkerr_t* error, /*!< out: error code */ ulint* err_col_no, /*!< out: column number where error happened */ @@ -6748,7 +6667,7 @@ /* We do not accept column prefix indexes here */ if (error && err_col_no && err_index) { - *error = DB_FOREIGN_KEY_IS_PREFIX_INDEX; + *error = FK_IS_PREFIX_INDEX; *err_col_no = i; *err_index = (dict_index_t*)index; } @@ -6758,7 +6677,7 @@ if (check_null && (field->col->prtype & DATA_NOT_NULL)) { if (error && err_col_no && err_index) { - *error = DB_FOREIGN_KEY_COL_NOT_NULL; + *error = FK_COL_NOT_NULL; *err_col_no = i; *err_index = (dict_index_t*)index; } @@ -6788,7 +6707,7 @@ dict_index_get_nth_col(types_idx, i), check_charsets)) { if (error && err_col_no && err_index) { - *error = DB_FOREIGN_KEY_COLS_NOT_EQUAL; + *error = FK_COLS_NOT_EQUAL; *err_col_no = i; *err_index = (dict_index_t*)index; } diff -Nru mariadb-10.3-10.3.17/storage/innobase/dict/dict0load.cc mariadb-10.3-10.3.20/storage/innobase/dict/dict0load.cc --- mariadb-10.3-10.3.17/storage/innobase/dict/dict0load.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/dict/dict0load.cc 2019-11-06 16:01:58.000000000 +0000 @@ -43,8 +43,7 @@ #include "rem0cmp.h" #include "srv0start.h" #include "srv0srv.h" -#include -#include +#include "fts0opt.h" /** Following are the InnoDB system tables. The positions in this array are referenced by enum dict_system_table_id. */ @@ -69,7 +68,6 @@ key constraints are loaded into memory. @param[in] name Table name in the db/tablename format -@param[in] cached true=add to cache, false=do not @param[in] ignore_err Error to be ignored when loading table and its index definition @param[out] fk_tables Related table names that must also be @@ -82,7 +80,6 @@ dict_table_t* dict_load_table_one( const table_name_t& name, - bool cached, dict_err_ignore_t ignore_err, dict_names_t& fk_tables); @@ -2577,8 +2574,9 @@ and simply did not load this index definition, the .frm file would disagree with the index definitions inside InnoDB. */ - if (!dict_index_add_to_cache( - index, index->page, false, &error)) { + if ((error = dict_index_add_to_cache(index, + index->page)) + != DB_SUCCESS) { goto func_exit; } } @@ -2731,17 +2729,12 @@ all foreign key constraints where the foreign key is in the table or where a foreign key references columns in this table. @param[in] name Table name in the dbname/tablename format -@param[in] cached true=add to cache, false=do not @param[in] ignore_err Error to be ignored when loading table and its index definition @return table, NULL if does not exist; if the table is stored in an .ibd file, but the file does not exist, then we set the file_unreadable flag in the table object we return. */ -dict_table_t* -dict_load_table( - const char* name, - bool cached, - dict_err_ignore_t ignore_err) +dict_table_t* dict_load_table(const char* name, dict_err_ignore_t ignore_err) { dict_names_t fk_list; dict_table_t* result; @@ -2756,12 +2749,12 @@ if (!result) { result = dict_load_table_one(const_cast(name), - cached, ignore_err, fk_list); + ignore_err, fk_list); while (!fk_list.empty()) { if (!dict_table_check_if_in_cache_low(fk_list.front())) dict_load_table_one( const_cast(fk_list.front()), - cached, ignore_err, fk_list); + ignore_err, fk_list); fk_list.pop_front(); } } @@ -2854,7 +2847,6 @@ key constraints are loaded into memory. @param[in] name Table name in the db/tablename format -@param[in] cached true=add to cache, false=do not @param[in] ignore_err Error to be ignored when loading table and its index definition @param[out] fk_tables Related table names that must also be @@ -2867,7 +2859,6 @@ dict_table_t* dict_load_table_one( const table_name_t& name, - bool cached, dict_err_ignore_t ignore_err, dict_names_t& fk_tables) { @@ -2956,10 +2947,8 @@ dict_table_add_system_columns(table, heap); - if (cached) { - table->can_be_evicted = true; - table->add_to_cache(); - } + table->can_be_evicted = true; + table->add_to_cache(); mem_heap_empty(heap); @@ -2997,7 +2986,7 @@ } } - if (err == DB_SUCCESS && cached && table->is_readable()) { + if (err == DB_SUCCESS && table->is_readable()) { if (table->space && !fil_space_get_size(table->space_id)) { corrupted: table->corrupted = true; @@ -3042,7 +3031,7 @@ of the error condition, since the user may want to dump data from the clustered index. However we load the foreign key information only if all indexes were loaded. */ - if (!cached || !table->is_readable()) { + if (!table->is_readable()) { /* Don't attempt to load the indexes from disk. */ } else if (err == DB_SUCCESS) { err = dict_load_foreigns(table->name.m_name, NULL, @@ -3086,7 +3075,7 @@ mem_heap_free(heap); ut_ad(!table - || ignore_err != DICT_ERR_IGNORE_NONE + || (ignore_err & ~DICT_ERR_IGNORE_FK_NOKEY) || !table->is_readable() || !table->corrupted); @@ -3099,8 +3088,12 @@ FTS */ fts_optimize_remove_table(table); fts_free(table); - } else { + } else if (fts_optimize_wq) { fts_optimize_add_table(table); + } else if (table->can_be_evicted) { + /* fts_optimize_thread is not started yet. + So make the table as non-evictable from cache. */ + dict_table_move_from_lru_to_non_lru(table); } } @@ -3194,7 +3187,7 @@ /* Load the table definition to memory */ char* table_name = mem_heap_strdupl( heap, (char*) field, len); - table = dict_load_table(table_name, true, ignore_err); + table = dict_load_table(table_name, ignore_err); } } } @@ -3775,29 +3768,14 @@ return(found); } -UNIV_INTERN -dict_table_t* -dict_table_open_on_index_id( -/*========================*/ - index_id_t index_id, /*!< in: index id */ - bool dict_locked) /*!< in: dict locked */ +dict_table_t* dict_table_open_on_index_id(index_id_t index_id) { - if (!dict_locked) { - mutex_enter(&dict_sys->mutex); - } - - ut_ad(mutex_own(&dict_sys->mutex)); table_id_t table_id; dict_table_t * table = NULL; if (dict_load_table_id_on_index_id(index_id, &table_id)) { - bool local_dict_locked = true; - table = dict_table_open_on_id(table_id, - local_dict_locked, + table = dict_table_open_on_id(table_id, true, DICT_TABLE_OP_LOAD_TABLESPACE); } - if (!dict_locked) { - mutex_exit(&dict_sys->mutex); - } return table; } diff -Nru mariadb-10.3-10.3.17/storage/innobase/fil/fil0crypt.cc mariadb-10.3-10.3.20/storage/innobase/fil/fil0crypt.cc --- mariadb-10.3-10.3.17/storage/innobase/fil/fil0crypt.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/fil/fil0crypt.cc 2019-11-06 16:01:58.000000000 +0000 @@ -356,6 +356,33 @@ } } +/** Fill crypt data information to the give page. +It should be called during ibd file creation. +@param[in] flags tablespace flags +@param[in,out] page first page of the tablespace */ +void +fil_space_crypt_t::fill_page0( + ulint flags, + byte* page) +{ + const uint len = sizeof(iv); + const ulint offset = FSP_HEADER_OFFSET + + fsp_header_get_encryption_offset(page_size_t(flags)); + page0_offset = offset; + + memcpy(page + offset, CRYPT_MAGIC, MAGIC_SZ); + mach_write_to_1(page + offset + MAGIC_SZ, type); + mach_write_to_1(page + offset + MAGIC_SZ + 1, len); + memcpy(page + offset + MAGIC_SZ + 2, &iv, len); + + mach_write_to_4(page + offset + MAGIC_SZ + 2 + len, + min_key_version); + mach_write_to_4(page + offset + MAGIC_SZ + 2 + len + 4, + key_id); + mach_write_to_1(page + offset + MAGIC_SZ + 2 + len + 8, + encryption); +} + /****************************************************************** Write crypt data to a page (0) @param[in] space tablespace @@ -765,7 +792,6 @@ @param[in] space Tablespace @param[in] tmp_frame Temporary buffer used for decrypting @param[in,out] src_frame Page to decrypt -@param[out] decrypted true if page was decrypted @return decrypted page, or original not encrypted page if decryption is not needed.*/ UNIV_INTERN @@ -773,13 +799,11 @@ fil_space_decrypt( const fil_space_t* space, byte* tmp_frame, - byte* src_frame, - bool* decrypted) + byte* src_frame) { dberr_t err = DB_SUCCESS; byte* res = NULL; const page_size_t page_size(space->flags); - *decrypted = false; ut_ad(space->crypt_data != NULL && space->crypt_data->is_encrypted()); ut_ad(space->pending_io()); @@ -789,7 +813,6 @@ if (err == DB_SUCCESS) { if (encrypted) { - *decrypted = true; /* Copy the decrypted page back to page buffer, not really any other options. */ memcpy(src_frame, tmp_frame, page_size.physical()); @@ -1743,8 +1766,6 @@ return; } - ut_d(const bool was_free = fseg_page_is_free(space, (uint32_t)offset)); - mtr_t mtr; mtr.start(); if (buf_block_t* block = fil_crypt_get_page_throttle(state, @@ -1759,9 +1780,9 @@ if (space->is_stopping()) { /* The tablespace is closing (in DROP TABLE or TRUNCATE TABLE or similar): avoid further access */ - } else if (!*reinterpret_cast(FIL_PAGE_OFFSET - + frame)) { - /* It looks like this page was never + } else if (!kv && !*reinterpret_cast + (&frame[FIL_PAGE_TYPE])) { + /* It looks like this page is not allocated. Because key rotation is accessing pages in a pattern that is unlike the normal B-tree and undo log access pattern, we cannot @@ -1771,9 +1792,20 @@ tablespace latch before acquiring block->lock, then the fseg_page_is_free() information could be stale already. */ - ut_ad(was_free); - ut_ad(kv == 0); - ut_ad(page_get_space_id(frame) == 0); + + /* If the data file was originally created + before MariaDB 10.0 or MySQL 5.6, some + allocated data pages could carry 0 in + FIL_PAGE_TYPE. The FIL_PAGE_TYPE on those + pages will be updated in + buf_flush_init_for_writing() when the page + is modified the next time. + + Also, when the doublewrite buffer pages are + allocated on bootstrap in a non-debug build, + some dummy pages will be allocated, with 0 in + the FIL_PAGE_TYPE. Those pages should be + skipped from key rotation forever. */ } else if (fil_crypt_needs_rotation( crypt_data, kv, @@ -2268,9 +2300,11 @@ /* Protect the tablespace while we may release fil_system.mutex. */ space->n_pending_ops++; - fil_space_t* s= fil_system.read_page0( - space->id); +#ifndef DBUG_OFF + ut_d(const fil_space_t* s=) + fil_system.read_page0(space->id); ut_ad(!s || s == space); +#endif space->n_pending_ops--; if (!space->size) { /* Page 0 was not loaded. diff -Nru mariadb-10.3-10.3.17/storage/innobase/fil/fil0fil.cc mariadb-10.3-10.3.20/storage/innobase/fil/fil0fil.cc --- mariadb-10.3-10.3.17/storage/innobase/fil/fil0fil.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/fil/fil0fil.cc 2019-11-06 16:01:58.000000000 +0000 @@ -826,6 +826,7 @@ switch (space->purpose) { case FIL_TYPE_TEMPORARY: ut_ad(0); // we already checked for this + /* fall through */ case FIL_TYPE_TABLESPACE: case FIL_TYPE_IMPORT: fil_n_pending_tablespace_flushes++; @@ -3076,6 +3077,19 @@ fsp_header_init_fields(page, space_id, flags); mach_write_to_4(page + FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID, space_id); + /* Create crypt data if the tablespace is either encrypted or user has + requested it to remain unencrypted. */ + if (mode == FIL_ENCRYPTION_ON || mode == FIL_ENCRYPTION_OFF || + srv_encrypt_tables) { + crypt_data = fil_space_create_crypt_data(mode, key_id); + } + + if (crypt_data) { + /* Write crypt data information in page0 while creating + ibd file. */ + crypt_data->fill_page0(flags, page); + } + const page_size_t page_size(flags); IORequest request(IORequest::WRITE); @@ -3127,13 +3141,6 @@ } } - /* Create crypt data if the tablespace is either encrypted or user has - requested it to remain unencrypted. */ - if (mode == FIL_ENCRYPTION_ON || mode == FIL_ENCRYPTION_OFF || - srv_encrypt_tables) { - crypt_data = fil_space_create_crypt_data(mode, key_id); - } - space = fil_space_create(name, space_id, flags, FIL_TYPE_TABLESPACE, crypt_data, mode); if (!space) { diff -Nru mariadb-10.3-10.3.17/storage/innobase/fsp/fsp0fsp.cc mariadb-10.3-10.3.20/storage/innobase/fsp/fsp0fsp.cc --- mariadb-10.3-10.3.17/storage/innobase/fsp/fsp0fsp.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/fsp/fsp0fsp.cc 2019-11-06 16:01:58.000000000 +0000 @@ -2817,7 +2817,6 @@ ulint state; ib_id_t descr_id; ib_id_t seg_id; - ulint i; ut_ad(seg_inode != NULL); ut_ad(mtr != NULL); @@ -2853,7 +2852,7 @@ if (state != XDES_FSEG) { /* The page is in the fragment pages of the segment */ - for (i = 0;; i++) { + for (ulint i = 0;; i++) { if (fseg_get_nth_frag_page_no(seg_inode, i, mtr) == offset) { @@ -3014,7 +3013,6 @@ xdes_t* descr; ulint not_full_n_used; ulint descr_n_used; - ulint i; ut_ad(mtr != NULL); @@ -3030,7 +3028,7 @@ #ifdef BTR_CUR_HASH_ADAPT if (ahi) { - for (i = 0; i < FSP_EXTENT_SIZE; i++) { + for (ulint i = 0; i < FSP_EXTENT_SIZE; i++) { if (!xdes_mtr_get_bit(descr, XDES_FREE_BIT, i, mtr)) { /* Drop search system page hash index @@ -3068,7 +3066,7 @@ fsp_free_extent(space, page, page_size, mtr); #ifdef UNIV_DEBUG - for (i = 0; i < FSP_EXTENT_SIZE; i++) { + for (ulint i = 0; i < FSP_EXTENT_SIZE; i++) { buf_page_set_file_page_was_freed( page_id_t(space->id, first_page_in_extent + i)); diff -Nru mariadb-10.3-10.3.17/storage/innobase/fts/fts0config.cc mariadb-10.3-10.3.20/storage/innobase/fts/fts0config.cc --- mariadb-10.3-10.3.17/storage/innobase/fts/fts0config.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/fts/fts0config.cc 2019-11-06 16:01:58.000000000 +0000 @@ -215,8 +215,7 @@ pars_info_bind_varchar_literal(info, "value", value->f_str, value->f_len); - const bool dict_locked = fts_table->table->fts->fts_status - & TABLE_DICT_LOCKED; + const bool dict_locked = fts_table->table->fts->dict_locked; fts_table->suffix = "CONFIG"; fts_get_table_name(fts_table, table_name, dict_locked); diff -Nru mariadb-10.3-10.3.17/storage/innobase/fts/fts0fts.cc mariadb-10.3-10.3.20/storage/innobase/fts/fts0fts.cc --- mariadb-10.3-10.3.17/storage/innobase/fts/fts0fts.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/fts/fts0fts.cc 2019-11-06 16:01:58.000000000 +0000 @@ -459,7 +459,7 @@ dberr_t error = DB_SUCCESS; ibool ret = TRUE; trx_t* trx; - ibool has_lock = fts->fts_status & TABLE_DICT_LOCKED; + ibool has_lock = fts->dict_locked; trx = trx_create(); trx->op_info = "Load user stopword table into FTS cache"; @@ -917,18 +917,16 @@ const fts_index_cache_t*index_cache, /*!< in: FTS index cache */ que_t* graph) /*!< in: query graph */ { - ibool has_dict = FALSE; + bool has_dict = FALSE; if (fts_table && fts_table->table) { ut_ad(fts_table->table->fts); - has_dict = fts_table->table->fts->fts_status - & TABLE_DICT_LOCKED; + has_dict = fts_table->table->fts->dict_locked; } else if (index_cache) { ut_ad(index_cache->index->table->fts); - has_dict = index_cache->index->table->fts->fts_status - & TABLE_DICT_LOCKED; + has_dict = index_cache->index->table->fts->dict_locked; } if (!has_dict) { @@ -2687,6 +2685,10 @@ } if (read_only) { + /* InnoDB stores actual synced_doc_id value + 1 in + FTS_CONFIG table. Reduce the value by 1 while reading + after startup. */ + if (*doc_id) *doc_id -= 1; goto func_exit; } @@ -2780,7 +2782,7 @@ pars_info_bind_varchar_literal(info, "doc_id", id, id_len); fts_get_table_name(&fts_table, fts_name, - table->fts->fts_status & TABLE_DICT_LOCKED); + table->fts->dict_locked); pars_info_bind_id(info, true, "table_name", fts_name); graph = fts_parse_sql( @@ -2894,7 +2896,7 @@ into cache from last crash (delete Doc will not initialize the sync). Avoid any added counter accounting until the FTS cache is re-established and sync-ed */ - if (table->fts->fts_status & ADDED_TABLE_SYNCED + if (table->fts->added_synced && doc_id > cache->synced_doc_id) { mutex_enter(&table->fts->cache->deleted_lock); @@ -3357,7 +3359,7 @@ ut_ad(cache->get_docs); - if (!(ftt->table->fts->fts_status & ADDED_TABLE_SYNCED)) { + if (!ftt->table->fts->added_synced) { fts_init_index(ftt->table, FALSE); } @@ -3442,7 +3444,7 @@ /* If Doc ID has been supplied by the user, then the table might not yet be sync-ed */ - if (!(ftt->table->fts->fts_status & ADDED_TABLE_SYNCED)) { + if (!ftt->table->fts->added_synced) { fts_init_index(ftt->table, FALSE); } @@ -4877,7 +4879,7 @@ fts_init_index((dict_table_t*) table, TRUE); } - table->fts->fts_status |= ADDED_TABLE_SYNCED; + table->fts->added_synced = true; table->fts->cache->first_doc_id = max_doc_id; @@ -5287,67 +5289,6 @@ } /*********************************************************************//** -Wait for the background thread to start. We poll to detect change -of state, which is acceptable, since the wait should happen only -once during startup. -@return true if the thread started else FALSE (i.e timed out) */ -ibool -fts_wait_for_background_thread_to_start( -/*====================================*/ - dict_table_t* table, /*!< in: table to which the thread - is attached */ - ulint max_wait) /*!< in: time in microseconds, if - set to 0 then it disables - timeout checking */ -{ - ulint count = 0; - ibool done = FALSE; - - ut_a(max_wait == 0 || max_wait >= FTS_MAX_BACKGROUND_THREAD_WAIT); - - for (;;) { - fts_t* fts = table->fts; - - mutex_enter(&fts->bg_threads_mutex); - - if (fts->fts_status & BG_THREAD_READY) { - - done = TRUE; - } - - mutex_exit(&fts->bg_threads_mutex); - - if (!done) { - os_thread_sleep(FTS_MAX_BACKGROUND_THREAD_WAIT); - - if (max_wait > 0) { - - max_wait -= FTS_MAX_BACKGROUND_THREAD_WAIT; - - /* We ignore the residual value. */ - if (max_wait < FTS_MAX_BACKGROUND_THREAD_WAIT) { - break; - } - } - - ++count; - } else { - break; - } - - if (count >= FTS_BACKGROUND_THREAD_WAIT_COUNT) { - ib::error() << "The background thread for the FTS" - " table " << table->name - << " refuses to start"; - - count = 0; - } - } - - return(done); -} - -/*********************************************************************//** Add the FTS document id hidden column. */ void fts_add_doc_id_column( @@ -5429,11 +5370,11 @@ const dict_table_t* table, mem_heap_t* heap) : + added_synced(0), dict_locked(0), bg_threads(0), - fts_status(0), add_wq(NULL), cache(NULL), - doc_col(ULINT_UNDEFINED), + doc_col(ULINT_UNDEFINED), in_queue(false), fts_heap(heap) { ut_a(table->fts == NULL); @@ -5500,42 +5441,6 @@ table->fts = NULL; } -#if 0 // TODO: Enable this in WL#6608 -/*********************************************************************//** -Signal FTS threads to initiate shutdown. */ -void -fts_start_shutdown( -/*===============*/ - dict_table_t* table, /*!< in: table with FTS indexes */ - fts_t* fts) /*!< in: fts instance that needs - to be informed about shutdown */ -{ - mutex_enter(&fts->bg_threads_mutex); - - fts->fts_status |= BG_THREAD_STOP; - - mutex_exit(&fts->bg_threads_mutex); - -} - -/*********************************************************************//** -Wait for FTS threads to shutdown. */ -void -fts_shutdown( -/*=========*/ - dict_table_t* table, /*!< in: table with FTS indexes */ - fts_t* fts) /*!< in: fts instance to shutdown */ -{ - mutex_enter(&fts->bg_threads_mutex); - - ut_a(fts->fts_status & BG_THREAD_STOP); - - dict_table_wait_for_bg_threads_to_exit(table, 20000); - - mutex_exit(&fts->bg_threads_mutex); -} -#endif - /*********************************************************************//** Take a FTS savepoint. */ UNIV_INLINE @@ -7517,7 +7422,7 @@ } rw_lock_x_unlock(&cache->init_lock); - if (table->fts->fts_status & ADDED_TABLE_SYNCED) { + if (table->fts->added_synced) { goto func_exit; } @@ -7559,7 +7464,7 @@ } } - table->fts->fts_status |= ADDED_TABLE_SYNCED; + table->fts->added_synced = true; fts_get_docs_clear(cache->get_docs); diff -Nru mariadb-10.3-10.3.17/storage/innobase/fts/fts0opt.cc mariadb-10.3-10.3.20/storage/innobase/fts/fts0opt.cc --- mariadb-10.3-10.3.17/storage/innobase/fts/fts0opt.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/fts/fts0opt.cc 2019-11-06 16:01:58.000000000 +0000 @@ -35,9 +35,10 @@ #include "srv0start.h" #include "ut0list.h" #include "zlib.h" +#include "fts0opt.h" /** The FTS optimize thread's work queue. */ -static ib_wqueue_t* fts_optimize_wq; +ib_wqueue_t* fts_optimize_wq; /** The FTS vector to store fts_slot_t */ static ib_vector_t* fts_slots; @@ -168,8 +169,8 @@ /** We use this information to determine when to start the optimize cycle for a table. */ struct fts_slot_t { - /** table identifier, or 0 if the slot is empty */ - table_id_t table_id; + /** table, or NULL if the slot is unused */ + dict_table_t* table; /** whether this slot is being processed */ bool running; @@ -2391,14 +2392,7 @@ return(DB_SUCCESS); } - dict_table_t* table = dict_table_open_on_id( - slot->table_id, FALSE, DICT_TABLE_OP_NORMAL); - - if (!table) { - slot->last_run = now; - return DB_SUCCESS; - } - + dict_table_t* table = slot->table; dberr_t error; if (fil_table_accessible(table) @@ -2418,8 +2412,6 @@ error = DB_SUCCESS; } - dict_table_close(table, FALSE, FALSE); - return(error); } /*********************************************************************//** @@ -2553,12 +2545,24 @@ return; } + /* If there is no fts index present then don't add to + optimize queue. */ + if (!ib_vector_size(table->fts->indexes)) { + return; + } + /* Make sure table with FTS index cannot be evicted */ dict_table_prevent_eviction(table); msg = fts_optimize_create_msg(FTS_MSG_ADD_TABLE, table); - ib_wqueue_add(fts_optimize_wq, msg, msg->heap); + mutex_enter(&fts_optimize_wq->mutex); + + ib_wqueue_add(fts_optimize_wq, msg, msg->heap, true); + + table->fts->in_queue = true; + + mutex_exit(&fts_optimize_wq->mutex); } /**********************************************************************//** @@ -2585,6 +2589,13 @@ return; } + mutex_enter(&fts_optimize_wq->mutex); + + if (!table->fts->in_queue) { + mutex_exit(&fts_optimize_wq->mutex); + return; + } + msg = fts_optimize_create_msg(FTS_MSG_DEL_TABLE, NULL); /* We will wait on this event until signalled by the consumer. */ @@ -2597,11 +2608,17 @@ remove->event = event; msg->ptr = remove; - ib_wqueue_add(fts_optimize_wq, msg, msg->heap); + ib_wqueue_add(fts_optimize_wq, msg, msg->heap, true); + + mutex_exit(&fts_optimize_wq->mutex); os_event_wait(event); os_event_destroy(event); + + ut_d(mutex_enter(&fts_optimize_wq->mutex)); + ut_ad(!table->fts->in_queue); + ut_d(mutex_exit(&fts_optimize_wq->mutex)); } /** Send sync fts cache for the table. @@ -2610,9 +2627,6 @@ fts_optimize_request_sync_table( dict_table_t* table) { - fts_msg_t* msg; - table_id_t* table_id; - /* if the optimize system not yet initialized, return */ if (!fts_optimize_wq) { return; @@ -2625,35 +2639,36 @@ return; } - msg = fts_optimize_create_msg(FTS_MSG_SYNC_TABLE, NULL); + fts_msg_t* msg = fts_optimize_create_msg(FTS_MSG_SYNC_TABLE, table); - table_id = static_cast( - mem_heap_alloc(msg->heap, sizeof(table_id_t))); - *table_id = table->id; - msg->ptr = table_id; + mutex_enter(&fts_optimize_wq->mutex); - ib_wqueue_add(fts_optimize_wq, msg, msg->heap); + ib_wqueue_add(fts_optimize_wq, msg, msg->heap, true); + + table->fts->in_queue = true; + + mutex_exit(&fts_optimize_wq->mutex); } /** Add a table to fts_slots if it doesn't already exist. */ static bool fts_optimize_new_table(dict_table_t* table) { + ut_ad(table); + ulint i; fts_slot_t* slot; fts_slot_t* empty = NULL; - const table_id_t table_id = table->id; - ut_ad(table_id); /* Search for duplicates, also find a free slot if one exists. */ for (i = 0; i < ib_vector_size(fts_slots); ++i) { slot = static_cast(ib_vector_get(fts_slots, i)); - if (!slot->table_id) { + if (!slot->table) { empty = slot; - } else if (slot->table_id == table_id) { + } else if (slot->table == table) { /* Already exists in our optimize queue. */ - return(FALSE); + return false; } } @@ -2662,36 +2677,35 @@ memset(slot, 0x0, sizeof(*slot)); - slot->table_id = table->id; - slot->running = false; - - return(TRUE); + slot->table = table; + return true; } /** Remove a table from fts_slots if it exists. @param[in,out] table table to be removed from fts_slots */ static bool fts_optimize_del_table(const dict_table_t* table) { - const table_id_t table_id = table->id; - ut_ad(table_id); - + ut_ad(table); for (ulint i = 0; i < ib_vector_size(fts_slots); ++i) { fts_slot_t* slot; slot = static_cast(ib_vector_get(fts_slots, i)); - if (slot->table_id == table_id) { + if (slot->table == table) { if (fts_enable_diag_print) { ib::info() << "FTS Optimize Removing table " << table->name; } - slot->table_id = 0; - return(TRUE); + mutex_enter(&fts_optimize_wq->mutex); + slot->table->fts->in_queue = false; + mutex_exit(&fts_optimize_wq->mutex); + slot->table = NULL; + return true; } } - return(FALSE); + return false; } /**********************************************************************//** @@ -2705,7 +2719,7 @@ for (ulint i = 0; i < ib_vector_size(fts_slots); ++i) { const fts_slot_t* slot = static_cast( ib_vector_get_const(fts_slots, i)); - if (slot->table_id == 0) { + if (!slot->table) { continue; } @@ -2741,22 +2755,14 @@ const fts_slot_t* slot = static_cast( ib_vector_get_const(fts_slots, i)); - if (slot->table_id == 0) { - continue; - } - - dict_table_t* table = dict_table_open_on_id( - slot->table_id, FALSE, DICT_TABLE_OP_NORMAL); - if (!table) { + if (!slot->table) { continue; } - if (table->fts && table->fts->cache) { - total_memory += table->fts->cache->total_size; + if (slot->table->fts && slot->table->fts->cache) { + total_memory += slot->table->fts->cache->total_size; } - dict_table_close(table, FALSE, FALSE); - if (total_memory > fts_max_total_cache_size) { return(true); } @@ -2766,18 +2772,14 @@ } /** Sync fts cache of a table -@param[in] table_id table id */ -static void fts_optimize_sync_table(table_id_t table_id) +@param[in,out] table table to be synced */ +static void fts_optimize_sync_table(dict_table_t* table) { - if (dict_table_t* table = dict_table_open_on_id( - table_id, FALSE, DICT_TABLE_OP_NORMAL)) { - if (fil_table_accessible(table) - && table->fts && table->fts->cache) { - fts_sync_table(table, false); - } - - dict_table_close(table, FALSE, FALSE); + if (table->fts && table->fts->cache && fil_table_accessible(table)) { + fts_sync_table(table, false); } + + DBUG_EXECUTE_IF("ib_optimize_wq_hang", os_thread_sleep(6000000);); } /**********************************************************************//** @@ -2816,7 +2818,7 @@ ib_vector_get(fts_slots, current)); /* Handle the case of empty slots. */ - if (slot->table_id) { + if (slot->table) { slot->running = true; fts_optimize_table_bk(slot); } @@ -2875,7 +2877,7 @@ os_thread_sleep(300000);); fts_optimize_sync_table( - *static_cast(msg->ptr)); + static_cast(msg->ptr)); break; default: @@ -2894,8 +2896,8 @@ fts_slot_t* slot = static_cast( ib_vector_get(fts_slots, i)); - if (table_id_t table_id = slot->table_id) { - fts_optimize_sync_table(table_id); + if (slot->table) { + fts_optimize_sync_table(slot->table); } } } @@ -2923,7 +2925,6 @@ { mem_heap_t* heap; ib_alloc_t* heap_alloc; - dict_table_t* table; ut_ad(!srv_read_only_mode); @@ -2939,31 +2940,25 @@ heap_alloc = ib_heap_allocator_create(heap); fts_slots = ib_vector_create(heap_alloc, sizeof(fts_slot_t), 4); - /* Add fts tables to the fts_slots vector which were skipped during restart */ - std::vector table_vector; - std::vector::iterator it; - + /* Add fts tables to fts_slots which could be skipped + during dict_load_table_one() because fts_optimize_thread + wasn't even started. */ mutex_enter(&dict_sys->mutex); - for (table = UT_LIST_GET_FIRST(dict_sys->table_LRU); - table != NULL; - table = UT_LIST_GET_NEXT(table_LRU, table)) { - if (table->fts && - dict_table_has_fts_index(table)) { - if (fts_optimize_new_table(table)){ - table_vector.push_back(table); - } + for (dict_table_t* table = UT_LIST_GET_FIRST(dict_sys->table_LRU); + table != NULL; + table = UT_LIST_GET_NEXT(table_LRU, table)) { + if (!table->fts || !dict_table_has_fts_index(table)) { + continue; } - } - /* It is better to call dict_table_prevent_eviction() - outside the above loop because it operates on - dict_sys->table_LRU list.*/ - for (it=table_vector.begin();it!=table_vector.end();++it) { - dict_table_prevent_eviction(*it); + /* fts_optimize_thread is not started yet. So there is no + need to acquire fts_optimize_wq->mutex for adding the fts + table to the fts slots. */ + ut_ad(!table->can_be_evicted); + fts_optimize_new_table(table); + table->fts->in_queue = true; } - mutex_exit(&dict_sys->mutex); - table_vector.clear(); fts_opt_shutdown_event = os_event_create(0); last_check_sync_time = time(NULL); diff -Nru mariadb-10.3-10.3.17/storage/innobase/fts/fts0sql.cc mariadb-10.3-10.3.20/storage/innobase/fts/fts0sql.cc --- mariadb-10.3-10.3.17/storage/innobase/fts/fts0sql.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/fts/fts0sql.cc 2019-11-06 16:01:58.000000000 +0000 @@ -154,8 +154,7 @@ str = ut_str3cat(fts_sql_begin, sql, fts_sql_end); dict_locked = (fts_table && fts_table->table->fts - && (fts_table->table->fts->fts_status - & TABLE_DICT_LOCKED)); + && fts_table->table->fts->dict_locked); if (!dict_locked) { ut_ad(!mutex_own(&dict_sys->mutex)); diff -Nru mariadb-10.3-10.3.17/storage/innobase/handler/ha_innodb.cc mariadb-10.3-10.3.20/storage/innobase/handler/ha_innodb.cc --- mariadb-10.3-10.3.17/storage/innobase/handler/ha_innodb.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/handler/ha_innodb.cc 2019-11-06 16:01:58.000000000 +0000 @@ -235,6 +235,7 @@ extern uint srv_background_scrub_data_interval; extern uint srv_background_scrub_data_check_interval; #ifdef UNIV_DEBUG +my_bool innodb_evict_tables_on_commit_debug; extern my_bool srv_scrub_force_testing; #endif @@ -1708,9 +1709,9 @@ && thd_is_replication_slave_thread(trx->mysql_thd)) { const ulonglong end = my_interval_timer() + ulonglong(srv_replication_delay) * 1000000; - while (srv_conc_get_active_threads() - >= srv_thread_concurrency - || my_interval_timer() >= end) { + while ((srv_conc_get_active_threads() + >= srv_thread_concurrency) + && my_interval_timer() < end) { os_thread_sleep(2000 /* 2 ms */); } } else { @@ -2586,11 +2587,10 @@ if (next_value == 0) { ulonglong next; - if (current >= offset) { + if (current > offset) { next = (current - offset) / step; } else { - next = 0; - block -= step; + next = (offset - current) / step; } ut_a(max_value > next); @@ -3110,7 +3110,7 @@ const char* norm_name) { dict_table_t* table = dict_table_open_on_name( - norm_name, FALSE, FALSE, DICT_ERR_IGNORE_NONE); + norm_name, FALSE, FALSE, DICT_ERR_IGNORE_FK_NOKEY); if (table == NULL) { return false; @@ -3925,14 +3925,12 @@ DBUG_RETURN(HA_ERR_INITIALIZATION); } - if (srv_n_log_files * srv_log_file_size - >= 512ULL * 1024ULL * 1024ULL * 1024ULL) { - /* log_block_convert_lsn_to_no() limits the returned block - number to 1G and given that OS_FILE_LOG_BLOCK_SIZE is 512 - bytes, then we have a limit of 512 GB. If that limit is to - be raised, then log_block_convert_lsn_to_no() must be - modified. */ - ib::error() << "Combined size of log files must be < 512 GB"; + if (srv_n_log_files * srv_log_file_size >= log_group_max_size) { + /* Log group size is limited by the size of page number. + Remove this limitation when fil_io() is not used for + recovery log io. */ + ib::error() << "Combined size of log files must be < " + << log_group_max_size; DBUG_RETURN(HA_ERR_INITIALIZATION); } @@ -6086,9 +6084,7 @@ int ha_innobase::open(const char* name, int, uint) { - dict_table_t* ib_table; char norm_name[FN_REFLEN]; - dict_err_ignore_t ignore_err = DICT_ERR_IGNORE_NONE; DBUG_ENTER("ha_innobase::open"); @@ -6102,15 +6098,8 @@ char* is_part = is_partition(norm_name); THD* thd = ha_thd(); - - /* Check whether FOREIGN_KEY_CHECKS is set to 0. If so, the table - can be opened even if some FK indexes are missing. If not, the table - can't be opened in the same situation */ - if (thd_test_options(thd, OPTION_NO_FOREIGN_KEY_CHECKS)) { - ignore_err = DICT_ERR_IGNORE_FK_NOKEY; - } - - ib_table = open_dict_table(name, norm_name, is_part, ignore_err); + dict_table_t* ib_table = open_dict_table(name, norm_name, is_part, + DICT_ERR_IGNORE_FK_NOKEY); DEBUG_SYNC(thd, "ib_open_after_dict_open"); @@ -9948,10 +9937,10 @@ return(NULL); } - if (!(ft_table->fts->fts_status & ADDED_TABLE_SYNCED)) { + if (!(ft_table->fts->added_synced)) { fts_init_index(ft_table, FALSE); - ft_table->fts->fts_status |= ADDED_TABLE_SYNCED; + ft_table->fts->added_synced = true; } const byte* q = reinterpret_cast( @@ -10174,17 +10163,6 @@ } #ifdef WITH_WSREP -extern dict_index_t* -wsrep_dict_foreign_find_index( -/*==========================*/ - dict_table_t* table, - const char** col_names, - const char** columns, - ulint n_cols, - dict_index_t* types_idx, - ibool check_charsets, - ulint check_null); - inline const char* wsrep_key_type_to_str(wsrep_key_type type) @@ -10247,7 +10225,7 @@ foreign->referenced_table_name_lookup); if (foreign->referenced_table) { foreign->referenced_index = - wsrep_dict_foreign_find_index( + dict_foreign_find_index( foreign->referenced_table, NULL, foreign->referenced_col_names, foreign->n_fields, @@ -10261,7 +10239,7 @@ if (foreign->foreign_table) { foreign->foreign_index = - wsrep_dict_foreign_find_index( + dict_foreign_find_index( foreign->foreign_table, NULL, foreign->foreign_col_names, foreign->n_fields, @@ -12470,7 +12448,7 @@ DICT_ERR_IGNORE_NONE, fk_tables); while (err == DB_SUCCESS && !fk_tables.empty()) { - dict_load_table(fk_tables.front(), true, + dict_load_table(fk_tables.front(), DICT_ERR_IGNORE_NONE); fk_tables.pop_front(); } @@ -13180,8 +13158,8 @@ row_mysql_lock_data_dictionary(trx); } - dict_table_t* table = dict_table_open_on_name(norm_from, TRUE, FALSE, - DICT_ERR_IGNORE_NONE); + dict_table_t* table = dict_table_open_on_name( + norm_from, TRUE, FALSE, DICT_ERR_IGNORE_FK_NOKEY); /* Since DICT_BG_YIELD has sleep for 250 milliseconds, Convert lock_wait_timeout unit from second to 250 milliseconds */ @@ -14302,7 +14280,7 @@ normalize_table_name(norm_name, name); table = dict_table_open_on_name(norm_name, FALSE, - FALSE, DICT_ERR_IGNORE_NONE); + FALSE, DICT_ERR_IGNORE_FK_NOKEY); for (index = dict_table_get_first_index(table); index; index = dict_table_get_next_index(index)) { @@ -16560,7 +16538,7 @@ if (increment > 1 && thd_sql_command(m_user_thd) != SQLCOM_ALTER_TABLE && autoinc < col_max_value) { - ulonglong prev_auto_inc = autoinc; + ulonglong prev_auto_inc = autoinc; autoinc = ((autoinc - 1) + increment - offset)/ increment; @@ -16614,27 +16592,6 @@ current = *first_value; - if (m_prebuilt->autoinc_increment != increment) { - - WSREP_DEBUG("autoinc decrease: %llu -> %llu\n" - "THD: %ld, current: %llu, autoinc: %llu", - m_prebuilt->autoinc_increment, - increment, - thd_get_thread_id(m_user_thd), - current, autoinc); - if (!wsrep_on(m_user_thd)) { - current = autoinc - - m_prebuilt->autoinc_increment; - current = innobase_next_autoinc( - current, 1, increment, offset, col_max_value); - } - - dict_table_autoinc_initialize( - m_prebuilt->table, current); - - *first_value = current; - } - /* Compute the last value in the interval */ next_value = innobase_next_autoinc( current, *nb_reserved_values, increment, offset, @@ -18317,7 +18274,7 @@ + (log_sys.append_on_checkpoint != NULL ? log_sys.append_on_checkpoint->size() : 0) < log_sys.lsn) { - log_make_checkpoint_at(LSN_MAX); + log_make_checkpoint(); fil_flush_file_spaces(FIL_TYPE_LOG); } @@ -18594,6 +18551,33 @@ thd, *static_cast(save)); } +#ifdef UNIV_DEBUG +static +void +innobase_debug_sync_callback(srv_slot_t *slot, const void *value) +{ + const char *value_str = *static_cast(value); + size_t len = strlen(value_str) + 1; + + + // One allocatoin for list node object and value. + void *buf = ut_malloc_nokey(sizeof(srv_slot_t::debug_sync_t) + len); + srv_slot_t::debug_sync_t *sync = new(buf) srv_slot_t::debug_sync_t(); + strcpy(reinterpret_cast(&sync[1]), value_str); + + rw_lock_x_lock(&slot->debug_sync_lock); + UT_LIST_ADD_LAST(slot->debug_sync, sync); + rw_lock_x_unlock(&slot->debug_sync_lock); +} +static +void +innobase_debug_sync_set(THD *thd, st_mysql_sys_var*, void *, const void *value) +{ + srv_for_each_thread(SRV_WORKER, innobase_debug_sync_callback, value); + srv_for_each_thread(SRV_PURGE, innobase_debug_sync_callback, value); +} +#endif + static SHOW_VAR innodb_status_variables_export[]= { {"Innodb", (char*) &show_innodb_vars, SHOW_FUNC}, {NullS, NullS, SHOW_LONG} @@ -19046,7 +19030,8 @@ NULL, NULL, 4, /* Default setting */ 1, /* Minimum value */ - 32, 0); /* Maximum value */ + srv_max_purge_threads,/* Maximum value */ + 0); static MYSQL_SYSVAR_ULONG(sync_array_size, srv_sync_array_size, PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_READONLY, @@ -19591,7 +19576,7 @@ static MYSQL_SYSVAR_ULONGLONG(log_file_size, srv_log_file_size, PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY, "Size of each log file in a log group.", - NULL, NULL, 48 << 20, 1 << 20, 512ULL << 30, UNIV_PAGE_SIZE_MAX); + NULL, NULL, 48 << 20, 1 << 20, log_group_max_size, UNIV_PAGE_SIZE_MAX); /* OS_FILE_LOG_BLOCK_SIZE would be more appropriate than UNIV_PAGE_SIZE_MAX, but fil_space_t is being used for the redo log, and it uses data pages. */ @@ -19770,10 +19755,15 @@ NULL, NULL, SRV_STATS_NULLS_EQUAL, &innodb_stats_method_typelib); #if defined UNIV_DEBUG || defined UNIV_IBUF_DEBUG +static MYSQL_SYSVAR_BOOL(change_buffer_dump, ibuf_dump, + PLUGIN_VAR_NOCMDARG | PLUGIN_VAR_READONLY, + "Dump the change buffer at startup.", + NULL, NULL, FALSE); + static MYSQL_SYSVAR_UINT(change_buffering_debug, ibuf_debug, PLUGIN_VAR_RQCMDARG, - "Debug flags for InnoDB change buffering (0=none, 2=crash at merge)", - NULL, NULL, 0, 0, 2, 0); + "Debug flags for InnoDB change buffering (0=none, 1=try to buffer)", + NULL, NULL, 0, 0, 1, 0); static MYSQL_SYSVAR_BOOL(disable_background_merge, srv_ibuf_disable_background_merge, @@ -19922,6 +19912,11 @@ " but the each purges were not done yet.", NULL, NULL, FALSE); +static MYSQL_SYSVAR_BOOL(evict_tables_on_commit_debug, + innodb_evict_tables_on_commit_debug, PLUGIN_VAR_OPCMDARG, + "On transaction commit, try to evict tables from the data dictionary cache.", + NULL, NULL, FALSE); + static MYSQL_SYSVAR_UINT(data_file_size_debug, srv_sys_space_size_debug, PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY, @@ -20108,6 +20103,16 @@ 0, "Perform extra scrubbing to increase test exposure", NULL, NULL, FALSE); + +char *innobase_debug_sync; +static MYSQL_SYSVAR_STR(debug_sync, innobase_debug_sync, + PLUGIN_VAR_NOCMDARG, + "debug_sync for innodb purge threads. " + "Use it to set up sync points for all purge threads " + "at once. The commands will be applied sequentially at " + "the beginning of purging the next undo record.", + NULL, + innobase_debug_sync_set, NULL); #endif /* UNIV_DEBUG */ static MYSQL_SYSVAR_BOOL(encrypt_temporary_tables, innodb_encrypt_temporary_tables, @@ -20238,6 +20243,7 @@ MYSQL_SYSVAR(change_buffering), MYSQL_SYSVAR(change_buffer_max_size), #if defined UNIV_DEBUG || defined UNIV_IBUF_DEBUG + MYSQL_SYSVAR(change_buffer_dump), MYSQL_SYSVAR(change_buffering_debug), MYSQL_SYSVAR(disable_background_merge), #endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */ @@ -20287,6 +20293,7 @@ MYSQL_SYSVAR(trx_rseg_n_slots_debug), MYSQL_SYSVAR(limit_optimistic_insert_debug), MYSQL_SYSVAR(trx_purge_view_update_only_debug), + MYSQL_SYSVAR(evict_tables_on_commit_debug), MYSQL_SYSVAR(data_file_size_debug), MYSQL_SYSVAR(fil_make_page_dirty_debug), MYSQL_SYSVAR(saved_page_number_debug), @@ -20318,6 +20325,7 @@ MYSQL_SYSVAR(background_scrub_data_check_interval), #ifdef UNIV_DEBUG MYSQL_SYSVAR(debug_force_scrubbing), + MYSQL_SYSVAR(debug_sync), #endif MYSQL_SYSVAR(buf_dump_status_frequency), MYSQL_SYSVAR(background_thread), diff -Nru mariadb-10.3-10.3.17/storage/innobase/handler/handler0alter.cc mariadb-10.3-10.3.20/storage/innobase/handler/handler0alter.cc --- mariadb-10.3-10.3.17/storage/innobase/handler/handler0alter.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/handler/handler0alter.cc 2019-11-06 16:01:58.000000000 +0000 @@ -56,6 +56,9 @@ #include "row0sel.h" #include "ha_innodb.h" #include "ut0stage.h" +#include "span.h" + +using st_::span; static const char *MSG_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN= "INPLACE ADD or DROP of virtual columns cannot be " @@ -1636,20 +1639,22 @@ /*******************************************************************//** Check if a foreign key constraint can make use of an index that is being created. +@param[in] col_names column names +@param[in] n_cols number of columns +@param[in] keys index information +@param[in] add indexes being created @return useable index, or NULL if none found */ static MY_ATTRIBUTE((nonnull, warn_unused_result)) const KEY* innobase_find_equiv_index( -/*======================*/ const char*const* col_names, - /*!< in: column names */ - uint n_cols, /*!< in: number of columns */ - const KEY* keys, /*!< in: index information */ - const uint* add, /*!< in: indexes being created */ - uint n_add) /*!< in: number of indexes to create */ + uint n_cols, + const KEY* keys, + span add) { - for (uint i = 0; i < n_add; i++) { - const KEY* key = &keys[add[i]]; + for (span::iterator it = add.begin(), end = add.end(); it != end; + ++it) { + const KEY* key = &keys[*it]; if (key->user_defined_key_parts < n_cols || key->flags & HA_SPATIAL) { @@ -1700,7 +1705,7 @@ Find an index whose first fields are the columns in the array in the same order and is not marked for deletion @return matching index, NULL if not found */ -static MY_ATTRIBUTE((nonnull(1,5), warn_unused_result)) +static MY_ATTRIBUTE((nonnull(1,4), warn_unused_result)) dict_index_t* innobase_find_fk_index( /*===================*/ @@ -1708,10 +1713,8 @@ const char** col_names, /*!< in: column names, or NULL to use table->col_names */ - dict_index_t** drop_index, + span drop_index, /*!< in: indexes to be dropped */ - ulint n_drop_index, - /*!< in: size of drop_index[] */ const char** columns,/*!< in: array of column names */ ulint n_cols) /*!< in: number of columns */ { @@ -1720,21 +1723,14 @@ index = dict_table_get_first_index(table); while (index != NULL) { - if (dict_foreign_qualify_index( - table, col_names, columns, n_cols, - index, NULL, true, 0, - NULL, NULL, NULL)) { - for (ulint i = 0; i < n_drop_index; i++) { - if (index == drop_index[i]) { - /* Skip to-be-dropped indexes. */ - goto next_rec; - } - } - - return(index); + if (dict_foreign_qualify_index(table, col_names, columns, + n_cols, index, NULL, true, 0, + NULL, NULL, NULL) + && std::find(drop_index.begin(), drop_index.end(), index) + == drop_index.end()) { + return index; } -next_rec: index = dict_table_get_next_index(index); } @@ -1880,7 +1876,7 @@ index = innobase_find_fk_index( table, col_names, - drop_index, n_drop_index, + span(drop_index, n_drop_index), column_names, i); /* MySQL would add a index in the creation @@ -1895,8 +1891,8 @@ if (!index && !innobase_find_equiv_index( column_names, static_cast(i), ha_alter_info->key_info_buffer, - ha_alter_info->index_add_buffer, - ha_alter_info->index_add_count)) { + span(ha_alter_info->index_add_buffer, + ha_alter_info->index_add_count))) { my_error( ER_FK_NO_INDEX_CHILD, MYF(0), @@ -2139,7 +2135,7 @@ case DATA_SYS: /* These column types should never be shipped to MySQL. */ ut_ad(0); - + /* fall through */ case DATA_FLOAT: case DATA_DOUBLE: case DATA_DECIMAL: @@ -4454,7 +4450,7 @@ index->set_modified(mtr); err = row_ins_clust_index_entry_low( BTR_NO_LOCKING_FLAG, BTR_MODIFY_TREE, index, - index->n_uniq, entry, 0, thr, false); + index->n_uniq, entry, 0, thr); } else { err_exit: err = DB_CORRUPTION; @@ -5303,9 +5299,8 @@ for (uint a = 0; a < ctx->num_to_add_index; a++) { ctx->add_index[a]->table = ctx->new_table; - ctx->add_index[a] = dict_index_add_to_cache( - ctx->add_index[a], FIL_NULL, false, - &error, add_v); + error = dict_index_add_to_cache( + ctx->add_index[a], FIL_NULL, false, add_v); ut_a(error == DB_SUCCESS); } DBUG_ASSERT(ha_alter_info->key_count @@ -5755,15 +5750,13 @@ goto error_handling; } - ctx->new_table->fts->fts_status - |= TABLE_DICT_LOCKED; + ctx->new_table->fts->dict_locked = true; error = innobase_fts_load_stopword( ctx->new_table, ctx->trx, ctx->prebuilt->trx->mysql_thd) ? DB_SUCCESS : DB_ERROR; - ctx->new_table->fts->fts_status - &= ulint(~TABLE_DICT_LOCKED); + ctx->new_table->fts->dict_locked = false; if (error != DB_SUCCESS) { goto error_handling; @@ -5938,8 +5931,8 @@ foreign->referenced_col_names, foreign->n_fields, ha_alter_info->key_info_buffer, - ha_alter_info->index_add_buffer, - ha_alter_info->index_add_count)) { + span(ha_alter_info->index_add_buffer, + ha_alter_info->index_add_count))) { /* Index cannot be dropped. */ trx->error_info = index; @@ -5973,8 +5966,8 @@ foreign->foreign_col_names, foreign->n_fields, ha_alter_info->key_info_buffer, - ha_alter_info->index_add_buffer, - ha_alter_info->index_add_count)) { + span(ha_alter_info->index_add_buffer, + ha_alter_info->index_add_count))) { /* Index cannot be dropped. */ trx->error_info = index; @@ -7434,27 +7427,23 @@ } /** Rename a column in the data dictionary tables. -@param[in] user_table InnoDB table that was being altered -@param[in] trx Data dictionary transaction +@param[in] ctx ALTER TABLE context +@param[in,out] trx Data dictionary transaction @param[in] table_name Table name in MySQL @param[in] nth_col 0-based index of the column @param[in] from old column name @param[in] to new column name -@param[in] new_clustered whether the table has been rebuilt -@param[in] evict_fk_cache Evict the fk info from cache @retval true Failure @retval false Success */ static MY_ATTRIBUTE((nonnull, warn_unused_result)) bool innobase_rename_column_try( - const dict_table_t* user_table, - trx_t* trx, - const char* table_name, - ulint nth_col, - const char* from, - const char* to, - bool new_clustered, - bool evict_fk_cache) + const ha_innobase_inplace_ctx& ctx, + trx_t* trx, + const char* table_name, + ulint nth_col, + const char* from, + const char* to) { pars_info_t* info; dberr_t error; @@ -7466,13 +7455,13 @@ ut_ad(mutex_own(&dict_sys->mutex)); ut_ad(rw_lock_own(&dict_operation_lock, RW_LOCK_X)); - if (new_clustered) { + if (ctx.need_rebuild()) { goto rename_foreign; } info = pars_info_create(); - pars_info_add_ull_literal(info, "tableid", user_table->id); + pars_info_add_ull_literal(info, "tableid", ctx.old_table->id); pars_info_add_int4_literal(info, "nth", nth_col); pars_info_add_str_literal(info, "new", to); @@ -7502,7 +7491,7 @@ trx->op_info = "renaming column in SYS_FIELDS"; for (const dict_index_t* index = dict_table_get_first_index( - user_table); + ctx.old_table); index != NULL; index = dict_table_get_next_index(index)) { @@ -7555,8 +7544,8 @@ std::set fk_evict; bool foreign_modified; - for (dict_foreign_set::const_iterator it = user_table->foreign_set.begin(); - it != user_table->foreign_set.end(); + for (dict_foreign_set::const_iterator it = ctx.old_table->foreign_set.begin(); + it != ctx.old_table->foreign_set.end(); ++it) { dict_foreign_t* foreign = *it; @@ -7569,6 +7558,14 @@ continue; } + /* Ignore the foreign key rename if fk info + is being dropped. */ + if (innobase_dropping_foreign( + foreign, ctx.drop_fk, + ctx.num_to_drop_fk)) { + continue; + } + info = pars_info_create(); pars_info_add_str_literal(info, "id", foreign->id); @@ -7597,8 +7594,8 @@ } for (dict_foreign_set::const_iterator it - = user_table->referenced_set.begin(); - it != user_table->referenced_set.end(); + = ctx.old_table->referenced_set.begin(); + it != ctx.old_table->referenced_set.end(); ++it) { foreign_modified = false; @@ -7639,7 +7636,7 @@ } /* Reload the foreign key info for instant table too. */ - if (new_clustered || evict_fk_cache) { + if (ctx.need_rebuild() || ctx.is_instant()) { std::for_each(fk_evict.begin(), fk_evict.end(), dict_foreign_remove_from_cache); } @@ -7690,12 +7687,10 @@ : i - num_v; if (innobase_rename_column_try( - ctx->old_table, trx, table_name, + *ctx, trx, table_name, col_n, cf->field->field_name.str, - cf->field_name.str, - ctx->need_rebuild(), - ctx->is_instant())) { + cf->field_name.str)) { return(true); } goto processed_field; @@ -8218,7 +8213,7 @@ also be loaded. */ while (err == DB_SUCCESS && !fk_tables.empty()) { dict_table_t* table = dict_load_table( - fk_tables.front(), true, DICT_ERR_IGNORE_NONE); + fk_tables.front(), DICT_ERR_IGNORE_NONE); if (table == NULL) { err = DB_TABLE_NOT_FOUND; @@ -8928,6 +8923,7 @@ || (index->type & DICT_CORRUPT)); DBUG_ASSERT(index->table->fts); + DEBUG_SYNC_C("norebuild_fts_drop"); fts_drop_index(index->table, index, trx); } diff -Nru mariadb-10.3-10.3.17/storage/innobase/ibuf/ibuf0ibuf.cc mariadb-10.3-10.3.20/storage/innobase/ibuf/ibuf0ibuf.cc --- mariadb-10.3-10.3.17/storage/innobase/ibuf/ibuf0ibuf.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/ibuf/ibuf0ibuf.cc 2019-11-06 16:01:58.000000000 +0000 @@ -185,6 +185,8 @@ ulong innodb_change_buffering; #if defined UNIV_DEBUG || defined UNIV_IBUF_DEBUG +/** Dump the change buffer at startup */ +my_bool ibuf_dump; /** Flag to control insert buffer debugging. */ uint ibuf_debug; #endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */ @@ -336,10 +338,8 @@ page_id_t(IBUF_SPACE_ID, FSP_IBUF_HEADER_PAGE_NO), univ_page_size, RW_X_LATCH, mtr); - - if (!block->page.encrypted) { + if (block) { buf_block_dbg_add_level(block, SYNC_IBUF_HEADER); - page = buf_block_get_frame(block); } @@ -508,6 +508,25 @@ #endif /* BTR_CUR_ADAPT */ ibuf->index->page = FSP_IBUF_TREE_ROOT_PAGE_NO; ut_d(ibuf->index->cached = TRUE); + +#if defined UNIV_DEBUG || defined UNIV_IBUF_DEBUG + if (!ibuf_dump) { + return error; + } + ib::info() << "Dumping the change buffer"; + ibuf_mtr_start(&mtr); + btr_pcur_t pcur; + if (DB_SUCCESS == btr_pcur_open_at_index_side( + true, ibuf->index, BTR_SEARCH_LEAF, &pcur, + true, 0, &mtr)) { + while (btr_pcur_move_to_next_user_rec(&pcur, &mtr)) { + rec_print_old(stderr, btr_pcur_get_rec(&pcur)); + } + } + ibuf_mtr_commit(&mtr); + ib::info() << "Dumped the change buffer"; +#endif + return (error); } @@ -1989,14 +2008,14 @@ buf_block_dbg_add_level(block, SYNC_IBUF_TREE_NODE_NEW); page = buf_block_get_frame(block); + mlog_write_ulint(page + FIL_PAGE_TYPE, FIL_PAGE_IBUF_FREE_LIST, + MLOG_2BYTES, &mtr); + /* Add the page to the free list and update the ibuf size data */ flst_add_last(root + PAGE_HEADER + PAGE_BTR_IBUF_FREE_LIST, page + PAGE_HEADER + PAGE_BTR_IBUF_FREE_LIST_NODE, &mtr); - mlog_write_ulint(page + FIL_PAGE_TYPE, FIL_PAGE_IBUF_FREE_LIST, - MLOG_2BYTES, &mtr); - ibuf->seg_size++; ibuf->free_list_len++; @@ -4224,23 +4243,6 @@ ut_ad(ibuf_rec_get_page_no(mtr, btr_pcur_get_rec(pcur)) == page_no); ut_ad(ibuf_rec_get_space(mtr, btr_pcur_get_rec(pcur)) == space); -#if defined UNIV_DEBUG || defined UNIV_IBUF_DEBUG - if (ibuf_debug == 2) { - /* Inject a fault (crash). We do this before trying - optimistic delete, because a pessimistic delete in the - change buffer would require a larger test case. */ - - /* Flag the buffered record as processed, to avoid - an assertion failure after crash recovery. */ - btr_cur_set_deleted_flag_for_ibuf( - btr_pcur_get_rec(pcur), NULL, TRUE, mtr); - - ibuf_mtr_commit(mtr); - log_write_up_to(LSN_MAX, true); - DBUG_SUICIDE(); - } -#endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */ - success = btr_cur_optimistic_delete(btr_pcur_get_btr_cur(pcur), 0, mtr); @@ -4311,6 +4313,71 @@ return(TRUE); } +/** +Delete any buffered entries for a page. +This prevents an infinite loop on slow shutdown +in the case where the change buffer bitmap claims that no buffered +changes exist, while entries exist in the change buffer tree. +@param page_id page number for which there should be no unbuffered changes */ +ATTRIBUTE_COLD static void ibuf_delete_recs(const page_id_t page_id) +{ + ulint dops[IBUF_OP_COUNT]; + mtr_t mtr; + btr_pcur_t pcur; + mem_heap_t* heap = mem_heap_create(512); + const dtuple_t* tuple = ibuf_search_tuple_build( + page_id.space(), page_id.page_no(), heap); + memset(dops, 0, sizeof(dops)); + +loop: + ibuf_mtr_start(&mtr); + btr_pcur_open(ibuf->index, tuple, PAGE_CUR_GE, BTR_MODIFY_LEAF, + &pcur, &mtr); + + if (!btr_pcur_is_on_user_rec(&pcur)) { + ut_ad(btr_pcur_is_after_last_in_tree(&pcur)); + goto func_exit; + } + + for (;;) { + ut_ad(btr_pcur_is_on_user_rec(&pcur)); + + const rec_t* ibuf_rec = btr_pcur_get_rec(&pcur); + + if (ibuf_rec_get_space(&mtr, ibuf_rec) + != page_id.space() + || ibuf_rec_get_page_no(&mtr, ibuf_rec) + != page_id.page_no()) { + break; + } + + dops[ibuf_rec_get_op_type(&mtr, ibuf_rec)]++; + + /* Delete the record from ibuf */ + if (ibuf_delete_rec(page_id.space(), page_id.page_no(), + &pcur, tuple, &mtr)) { + /* Deletion was pessimistic and mtr was committed: + we start from the beginning again */ + ut_ad(mtr.has_committed()); + goto loop; + } + + if (btr_pcur_is_after_last_on_page(&pcur)) { + ibuf_mtr_commit(&mtr); + btr_pcur_close(&pcur); + goto loop; + } + } + +func_exit: + ibuf_mtr_commit(&mtr); + btr_pcur_close(&pcur); + + ibuf_add_ops(ibuf->n_discarded_ops, dops); + + mem_heap_free(heap); +} + /** When an index page is read from a disk to the buffer pool, this function applies any buffered operations to the page and deletes the entries from the insert buffer. If the page is not read, but created in the buffer pool, this @@ -4330,9 +4397,7 @@ const page_size_t* page_size, ibool update_ibuf_bitmap) { - mem_heap_t* heap; btr_pcur_t pcur; - dtuple_t* search_tuple; #ifdef UNIV_IBUF_DEBUG ulint volume = 0; #endif /* UNIV_IBUF_DEBUG */ @@ -4405,9 +4470,16 @@ ibuf_mtr_commit(&mtr); if (!bitmap_bits) { - /* No inserts buffered for this page */ - + /* No changes are buffered for this page. */ space->release(); + if (UNIV_UNLIKELY(srv_shutdown_state) + && !srv_fast_shutdown) { + /* Prevent an infinite loop on slow + shutdown, in case the bitmap bits are + wrongly clear even though buffered + changes exist. */ + ibuf_delete_recs(page_id); + } return; } } @@ -4420,9 +4492,9 @@ space = NULL; } - heap = mem_heap_create(512); + mem_heap_t* heap = mem_heap_create(512); - search_tuple = ibuf_search_tuple_build( + const dtuple_t* search_tuple = ibuf_search_tuple_build( page_id.space(), page_id.page_no(), heap); if (block != NULL) { diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/btr0btr.h mariadb-10.3-10.3.20/storage/innobase/include/btr0btr.h --- mariadb-10.3-10.3.17/storage/innobase/include/btr0btr.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/btr0btr.h 2019-11-06 16:01:58.000000000 +0000 @@ -242,7 +242,6 @@ dict_index_t* index, mtr_t* mtr); -# ifdef UNIV_DEBUG /** Gets a buffer page and declares its latching order level. @param page_id tablespace/page identifier @param page_size page size @@ -250,37 +249,9 @@ @param index index tree, may be NULL if not the insert buffer tree @param mtr mini-transaction handle @return the block descriptor */ -# define btr_block_get(page_id, page_size, mode, index, mtr) \ +# define btr_block_get(page_id, page_size, mode, index, mtr) \ btr_block_get_func(page_id, page_size, mode, \ __FILE__, __LINE__, (dict_index_t*)index, mtr) -# else /* UNIV_DEBUG */ -/** Gets a buffer page and declares its latching order level. -@param page_id tablespace/page identifier -@param page_size page size -@param mode latch mode -@param index index tree, may be NULL if not the insert buffer tree -@param mtr mini-transaction handle -@return the block descriptor */ -# define btr_block_get(page_id, page_size, mode, index, mtr) \ - btr_block_get_func(page_id, page_size, mode, __FILE__, __LINE__, (dict_index_t*)index, mtr) -# endif /* UNIV_DEBUG */ -/** Gets a buffer page and declares its latching order level. -@param page_id tablespace/page identifier -@param page_size page size -@param mode latch mode -@param index index tree, may be NULL if not the insert buffer tree -@param mtr mini-transaction handle -@return the uncompressed page frame */ -UNIV_INLINE -page_t* -btr_page_get( -/*=========*/ - const page_id_t page_id, - const page_size_t& page_size, - ulint mode, - dict_index_t* index, - mtr_t* mtr) - MY_ATTRIBUTE((warn_unused_result)); /**************************************************************//** Gets the index id field of a page. @return index id */ @@ -486,30 +457,22 @@ dict_index_t* index, /*!< in: the index tree of the page */ mtr_t* mtr) /*!< in/out: mini-transaction */ MY_ATTRIBUTE((nonnull)); -/*************************************************************//** -Decides if the page should be split at the convergence point of -inserts converging to left. -@return TRUE if split recommended */ -ibool -btr_page_get_split_rec_to_left( -/*===========================*/ - btr_cur_t* cursor, /*!< in: cursor at which to insert */ - rec_t** split_rec)/*!< out: if split recommended, - the first record on upper half page, - or NULL if tuple should be first */ - MY_ATTRIBUTE((warn_unused_result)); -/*************************************************************//** -Decides if the page should be split at the convergence point of -inserts converging to right. -@return TRUE if split recommended */ -ibool -btr_page_get_split_rec_to_right( -/*============================*/ - btr_cur_t* cursor, /*!< in: cursor at which to insert */ - rec_t** split_rec)/*!< out: if split recommended, - the first record on upper half page, - or NULL if tuple should be first */ - MY_ATTRIBUTE((warn_unused_result)); +/** Decide if the page should be split at the convergence point of inserts +converging to the left. +@param[in] cursor insert position +@return the first record to be moved to the right half page +@retval NULL if no split is recommended */ +rec_t* btr_page_get_split_rec_to_left(const btr_cur_t* cursor); +/** Decide if the page should be split at the convergence point of inserts +converging to the right. +@param[in] cursor insert position +@param[out] split_rec if split recommended, the first record + on the right half page, or + NULL if the to-be-inserted record + should be first +@return whether split is recommended */ +bool +btr_page_get_split_rec_to_right(const btr_cur_t* cursor, rec_t** split_rec); /*************************************************************//** Splits an index page to halves and inserts the tuple. It is assumed @@ -549,14 +512,10 @@ mtr_t* mtr); /*!< in: mtr */ #define btr_insert_on_non_leaf_level(f,i,l,t,m) \ btr_insert_on_non_leaf_level_func(f,i,l,t,__FILE__,__LINE__,m) -/****************************************************************//** -Sets a record as the predefined minimum record. */ -void -btr_set_min_rec_mark( -/*=================*/ - rec_t* rec, /*!< in/out: record */ - mtr_t* mtr) /*!< in: mtr */ - MY_ATTRIBUTE((nonnull)); + +/** Sets a record as the predefined minimum record. */ +void btr_set_min_rec_mark(rec_t* rec, mtr_t* mtr) MY_ATTRIBUTE((nonnull)); + /** Seek to the parent page of a B-tree page. @param[in,out] index b-tree @param[in] block child page diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/btr0btr.ic mariadb-10.3-10.3.20/storage/innobase/include/btr0btr.ic --- mariadb-10.3-10.3.17/storage/innobase/include/btr0btr.ic 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/btr0btr.ic 2019-11-06 16:01:58.000000000 +0000 @@ -95,36 +95,6 @@ } } -/** Gets a buffer page and declares its latching order level. -@param space tablespace identifier -@param zip_size compressed page size in bytes or 0 for uncompressed pages -@param page_no page number -@param mode latch mode -@param idx index tree, may be NULL if not the insert buffer tree -@param mtr mini-transaction handle -@return the uncompressed page frame */ -UNIV_INLINE -page_t* -btr_page_get( -/*=========*/ - const page_id_t page_id, - const page_size_t& page_size, - ulint mode, - dict_index_t* index, - mtr_t* mtr) -{ - buf_block_t* block=NULL; - buf_frame_t* frame=NULL; - - block = btr_block_get(page_id, page_size, mode, index, mtr); - - if (block) { - frame = buf_block_get_frame(block); - } - - return ((page_t*)frame); -} - /**************************************************************//** Gets the index id field of a page. @return index id */ diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/buf0buf.h mariadb-10.3-10.3.20/storage/innobase/include/buf0buf.h --- mariadb-10.3-10.3.17/storage/innobase/include/buf0buf.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/buf0buf.h 2019-11-06 16:01:58.000000000 +0000 @@ -1468,8 +1468,6 @@ if written again we check is TRIM operation needed. */ - bool encrypted; /*!< page is still encrypted */ - ulint real_size; /*!< Real size of the page Normal pages == srv_page_size page compressed pages, payload diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/buf0flu.h mariadb-10.3-10.3.20/storage/innobase/include/buf0flu.h --- mariadb-10.3-10.3.17/storage/innobase/include/buf0flu.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/buf0flu.h 2019-11-06 16:01:58.000000000 +0000 @@ -167,16 +167,6 @@ buf_flush_wait_flushed( lsn_t new_oldest); -/******************************************************************//** -Waits until a flush batch of the given type ends. This is called by -a thread that only wants to wait for a flush to end but doesn't do -any flushing itself. */ -void -buf_flush_wait_batch_end_wait_only( -/*===============================*/ - buf_pool_t* buf_pool, /*!< in: buffer pool instance */ - buf_flush_t type); /*!< in: BUF_FLUSH_LRU - or BUF_FLUSH_LIST */ /********************************************************************//** This function should be called at a mini-transaction commit, if a page was modified in it. Puts the block to the list of modified blocks, if it not diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/data0data.h mariadb-10.3-10.3.20/storage/innobase/include/data0data.h --- mariadb-10.3-10.3.17/storage/innobase/include/data0data.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/data0data.h 2019-11-06 16:01:58.000000000 +0000 @@ -168,7 +168,7 @@ const dfield_t* field, /*!< in: field */ ulint len, /*!< in: data length or UNIV_SQL_NULL */ const byte* data) /*!< in: data */ - MY_ATTRIBUTE((nonnull, warn_unused_result)); + MY_ATTRIBUTE((nonnull(1), warn_unused_result)); /*********************************************************************//** Gets info bits in a data tuple. diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/data0data.ic mariadb-10.3-10.3.20/storage/innobase/include/data0data.ic --- mariadb-10.3-10.3.17/storage/innobase/include/data0data.ic 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/data0data.ic 2019-11-06 16:01:58.000000000 +0000 @@ -225,7 +225,7 @@ { ut_ad(len != UNIV_SQL_DEFAULT); return(len == dfield_get_len(field) - && (len == UNIV_SQL_NULL + && (!len || len == UNIV_SQL_NULL || !memcmp(dfield_get_data(field), data, len))); } diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/data0type.ic mariadb-10.3-10.3.20/storage/innobase/include/data0type.ic --- mariadb-10.3-10.3.17/storage/innobase/include/data0type.ic 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/data0type.ic 2019-11-06 16:01:58.000000000 +0000 @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2014, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2017, 2018, MariaDB Corporation. +Copyright (c) 2017, 2019, MariaDB Corporation. 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 diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/dict0dict.h mariadb-10.3-10.3.20/storage/innobase/include/dict0dict.h --- mariadb-10.3-10.3.17/storage/innobase/include/dict0dict.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/dict0dict.h 2019-11-06 16:01:58.000000000 +0000 @@ -115,12 +115,7 @@ /**********************************************************************//** Returns a table object based on table id. @return table, NULL if does not exist */ -UNIV_INTERN -dict_table_t* -dict_table_open_on_index_id( -/*==================*/ - table_id_t table_id, /*!< in: table id */ - bool dict_locked) /*!< in: TRUE=data dictionary locked */ +dict_table_t* dict_table_open_on_index_id(index_id_t index_id) __attribute__((warn_unused_result)); /********************************************************************//** Decrements the count of open handles to a table. */ @@ -523,6 +518,21 @@ dict_err_ignore_t ignore_err) MY_ATTRIBUTE((warn_unused_result)); +/** Outcome of dict_foreign_find_index() or dict_foreign_qualify_index() */ +enum fkerr_t +{ + /** A backing index was found for a FOREIGN KEY constraint */ + FK_SUCCESS = 0, + /** There is no index that covers the columns in the constraint. */ + FK_INDEX_NOT_FOUND, + /** The index is for a prefix index, not a full column. */ + FK_IS_PREFIX_INDEX, + /** A condition of SET NULL conflicts with a NOT NULL column. */ + FK_COL_NOT_NULL, + /** The column types do not match */ + FK_COLS_NOT_EQUAL +}; + /*********************************************************************//** Tries to find an index whose first fields are the columns in the array, in the same order and is not marked for deletion and is not the same @@ -549,11 +559,11 @@ /*!< in: nonzero if none of the columns must be declared NOT NULL */ - ulint* error, /*!< out: error code */ - ulint* err_col_no, + fkerr_t* error = NULL, /*!< out: error code */ + ulint* err_col_no = NULL, /*!< out: column number where error happened */ - dict_index_t** err_index) + dict_index_t** err_index = NULL) /*!< out: index where error happened */ @@ -629,7 +639,7 @@ /*!< in: nonzero if none of the columns must be declared NOT NULL */ - ulint* error, /*!< out: error code */ + fkerr_t* error, /*!< out: error code */ ulint* err_col_no, /*!< out: column number where error happened */ @@ -1030,17 +1040,6 @@ dtuple_t* tuple, /*!< in/out: data tuple */ const dict_table_t* table) /*!< in: table */ MY_ATTRIBUTE((nonnull)); -/******************************************************************** -Wait until all the background threads of the given table have exited, i.e., -bg_threads == 0. Note: bg_threads_mutex must be reserved when -calling this. */ -void -dict_table_wait_for_bg_threads_to_exit( -/*===================================*/ - dict_table_t* table, /* in: table */ - ulint delay) /* in: time in microseconds to wait between - checks of bg_threads. */ - MY_ATTRIBUTE((nonnull)); /**********************************************************************//** Looks for an index with the given id. NOTE that we do not reserve the dictionary mutex: this function is for emergency purposes like @@ -1068,26 +1067,21 @@ /** Adds an index to the dictionary cache, with possible indexing newly added column. -@param[in] index index; NOTE! The index memory +@param[in,out] index index; NOTE! The index memory object is freed in this function! @param[in] page_no root page number of the index @param[in] strict true=refuse to create the index if records could be too big to fit in an B-tree page -@param[out] err DB_SUCCESS, DB_TOO_BIG_RECORD, or DB_CORRUPTION -@param[in] add_v new virtual column that being added along with - an add index call -@return the added index -@retval NULL on error */ -dict_index_t* +@param[in] add_v virtual columns being added along with ADD INDEX +@return DB_SUCCESS, DB_TOO_BIG_RECORD, or DB_CORRUPTION */ +dberr_t dict_index_add_to_cache( - dict_index_t* index, + dict_index_t*& index, ulint page_no, bool strict = false, - dberr_t* err = NULL, const dict_add_v_col_t* add_v = NULL) - MY_ATTRIBUTE((nonnull(1))); - + MY_ATTRIBUTE((warn_unused_result)); /********************************************************************//** Gets the number of fields in the internal representation of an index, including fields added by the dictionary system. diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/dict0load.h mariadb-10.3-10.3.20/storage/innobase/include/dict0load.h --- mariadb-10.3-10.3.17/storage/innobase/include/dict0load.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/dict0load.h 2019-11-06 16:01:58.000000000 +0000 @@ -101,17 +101,12 @@ all foreign key constraints where the foreign key is in the table or where a foreign key references columns in this table. @param[in] name Table name in the dbname/tablename format -@param[in] cached true=add to cache, false=do not @param[in] ignore_err Error to be ignored when loading table and its index definition @return table, NULL if does not exist; if the table is stored in an .ibd file, but the file does not exist, then we set the file_unreadable flag in the table object we return. */ -dict_table_t* -dict_load_table( - const char* name, - bool cached, - dict_err_ignore_t ignore_err); +dict_table_t* dict_load_table(const char* name, dict_err_ignore_t ignore_err); /***********************************************************************//** Loads a table object based on the table id. diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/dict0priv.ic mariadb-10.3-10.3.20/storage/innobase/include/dict0priv.ic --- mariadb-10.3-10.3.17/storage/innobase/include/dict0priv.ic 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/dict0priv.ic 2019-11-06 16:01:58.000000000 +0000 @@ -55,7 +55,7 @@ } if (table == NULL) { - table = dict_load_table(table_name, true, DICT_ERR_IGNORE_NONE); + table = dict_load_table(table_name, DICT_ERR_IGNORE_NONE); } ut_ad(!table || table->cached); diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/dict0types.h mariadb-10.3-10.3.20/storage/innobase/include/dict0types.h --- mariadb-10.3-10.3.17/storage/innobase/include/dict0types.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/dict0types.h 2019-11-06 16:01:58.000000000 +0000 @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2013, 2017, MariaDB Corporation. +Copyright (c) 2013, 2019, MariaDB Corporation. 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 @@ -67,11 +67,11 @@ be or-ed together */ enum dict_err_ignore_t { DICT_ERR_IGNORE_NONE = 0, /*!< no error to ignore */ - DICT_ERR_IGNORE_INDEX_ROOT = 1, /*!< ignore error if index root - page is FIL_NULL or incorrect value */ - DICT_ERR_IGNORE_CORRUPT = 2, /*!< skip corrupted indexes */ - DICT_ERR_IGNORE_FK_NOKEY = 4, /*!< ignore error if any foreign + DICT_ERR_IGNORE_FK_NOKEY = 1, /*!< ignore error if any foreign key is missing */ + DICT_ERR_IGNORE_INDEX_ROOT = 2, /*!< ignore error if index root + page is FIL_NULL or incorrect value */ + DICT_ERR_IGNORE_CORRUPT = 4, /*!< skip corrupted indexes */ DICT_ERR_IGNORE_RECOVER_LOCK = 8, /*!< Used when recovering table locks for resurrected transactions. @@ -142,6 +142,8 @@ }; #if defined UNIV_DEBUG || defined UNIV_IBUF_DEBUG +/** Dump the change buffer at startup */ +extern my_bool ibuf_dump; /** Flag to control insert buffer debugging. */ extern uint ibuf_debug; #endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */ diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/fil0crypt.h mariadb-10.3-10.3.20/storage/innobase/include/fil0crypt.h --- mariadb-10.3-10.3.17/storage/innobase/include/fil0crypt.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/fil0crypt.h 2019-11-06 16:01:58.000000000 +0000 @@ -180,6 +180,12 @@ return (encryption == FIL_ENCRYPTION_OFF); } + /** Fill crypt data information to the give page. + It should be called during ibd file creation. + @param[in] flags tablespace flags + @param[in,out] page first page of the tablespace */ + void fill_page0(ulint flags, byte* page); + /** Write crypt data to a page (0) @param[in] space tablespace @param[in,out] page0 first page of the tablespace @@ -367,7 +373,6 @@ @param[in] space Tablespace @param[in] tmp_frame Temporary buffer used for decrypting @param[in,out] src_frame Page to decrypt -@param[out] decrypted true if page was decrypted @return decrypted page, or original not encrypted page if decryption is not needed.*/ UNIV_INTERN @@ -375,8 +380,7 @@ fil_space_decrypt( const fil_space_t* space, byte* tmp_frame, - byte* src_frame, - bool* decrypted) + byte* src_frame) MY_ATTRIBUTE((warn_unused_result)); /****************************************************************** diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/fts0fts.h mariadb-10.3-10.3.20/storage/innobase/include/fts0fts.h --- mariadb-10.3-10.3.17/storage/innobase/include/fts0fts.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/fts0fts.h 2019-11-06 16:01:58.000000000 +0000 @@ -304,27 +304,6 @@ index auxiliary table */ }; -enum fts_status { - BG_THREAD_STOP = 1, /*!< TRUE if the FTS background thread - has finished reading the ADDED table, - meaning more items can be added to - the table. */ - - BG_THREAD_READY = 2, /*!< TRUE if the FTS background thread - is ready */ - - ADD_THREAD_STARTED = 4, /*!< TRUE if the FTS add thread - has started */ - - ADDED_TABLE_SYNCED = 8, /*!< TRUE if the ADDED table record is - sync-ed after crash recovery */ - - TABLE_DICT_LOCKED = 16 /*!< Set if the table has - dict_sys->mutex */ -}; - -typedef enum fts_status fts_status_t; - /** The state of the FTS sub system. */ class fts_t { public: @@ -341,13 +320,16 @@ /** Mutex protecting bg_threads* and fts_add_wq. */ ib_mutex_t bg_threads_mutex; + /** Whether the ADDED table record sync-ed after + crash recovery; protected by bg_threads_mutex */ + unsigned added_synced:1; + /** Whether the table holds dict_sys->mutex; + protected by bg_threads_mutex */ + unsigned dict_locked:1; + /** Number of background threads accessing this table. */ ulint bg_threads; - /** Status bit regarding fts running state. TRUE if background - threads running should stop themselves. */ - ulint fts_status; - /** Work queue for scheduling jobs for the FTS 'Add' thread, or NULL if the thread has not yet been created. Each work item is a fts_trx_doc_ids_t*. */ @@ -363,6 +345,10 @@ /** Vector of FTS indexes, this is mainly for caching purposes. */ ib_vector_t* indexes; + /** Whether the table exists in fts_optimize_wq; + protected by fts_optimize_wq mutex */ + bool in_queue; + /** Heap for fts_t allocation. */ mem_heap_t* fts_heap; }; @@ -634,28 +620,6 @@ fts_startup(void); /*==============*/ -#if 0 // TODO: Enable this in WL#6608 -/******************************************************************//** -Signal FTS threads to initiate shutdown. */ -void -fts_start_shutdown( -/*===============*/ - dict_table_t* table, /*!< in: table with FTS - indexes */ - fts_t* fts); /*!< in: fts instance to - shutdown */ - -/******************************************************************//** -Wait for FTS threads to shutdown. */ -void -fts_shutdown( -/*=========*/ - dict_table_t* table, /*!< in: table with FTS - indexes */ - fts_t* fts); /*!< in: fts instance to - shutdown */ -#endif - /******************************************************************//** Create an instance of fts_t. @return instance of fts_t */ diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/fts0opt.h mariadb-10.3-10.3.20/storage/innobase/include/fts0opt.h --- mariadb-10.3-10.3.17/storage/innobase/include/fts0opt.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/fts0opt.h 2019-11-06 16:01:58.000000000 +0000 @@ -25,6 +25,9 @@ #ifndef INNODB_FTS0OPT_H #define INNODB_FTS0OPT_H +/** The FTS optimize thread's work queue. */ +extern ib_wqueue_t* fts_optimize_wq; + /******************************************************************** Callback function to fetch the rows in an FTS INDEX record. */ ibool diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/fts0priv.h mariadb-10.3-10.3.20/storage/innobase/include/fts0priv.h --- mariadb-10.3-10.3.17/storage/innobase/include/fts0priv.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/fts0priv.h 2019-11-06 16:01:58.000000000 +0000 @@ -442,19 +442,6 @@ cache, /*!< in: cache to use */ ib_vector_t* vector); /*!< in: append to this vector */ /******************************************************************//** -Wait for the background thread to start. We poll to detect change -of state, which is acceptable, since the wait should happen only -once during startup. -@return true if the thread started else FALSE (i.e timed out) */ -ibool -fts_wait_for_background_thread_to_start( -/*====================================*/ - dict_table_t* table, /*!< in: table to which the thread - is attached */ - ulint max_wait); /*!< in: time in microseconds, if set - to 0 then it disables timeout - checking */ -/******************************************************************//** Search the index specific cache for a particular FTS index. @return the index specific cache else NULL */ fts_index_cache_t* diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/ha_prototypes.h mariadb-10.3-10.3.20/storage/innobase/include/ha_prototypes.h --- mariadb-10.3-10.3.17/storage/innobase/include/ha_prototypes.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/ha_prototypes.h 2019-11-06 16:01:58.000000000 +0000 @@ -119,9 +119,6 @@ /*============================*/ THD* thd); /*!< in: thread handle */ -/** @return whether statement-based replication is active */ -extern "C" int thd_rpl_stmt_based(const THD* thd); - /******************************************************************//** Returns true if the transaction this thread is processing has edited non-transactional tables. Used by the deadlock detector when deciding diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/lock0lock.h mariadb-10.3-10.3.20/storage/innobase/include/lock0lock.h --- mariadb-10.3-10.3.17/storage/innobase/include/lock0lock.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/lock0lock.h 2019-11-06 16:01:58.000000000 +0000 @@ -482,14 +482,10 @@ const buf_block_t* block, /*!< in: buffer block containing rec */ const rec_t* rec, /*!< in: record */ lock_mode lock_mode);/*!< in: LOCK_S or LOCK_X */ -/*********************************************************************//** -Releases a transaction's locks, and releases possible other transactions -waiting because of these locks. Change the state of the transaction to -TRX_STATE_COMMITTED_IN_MEMORY. */ -void -lock_trx_release_locks( -/*===================*/ - trx_t* trx); /*!< in/out: transaction */ + +/** Release the explicit locks of a committing transaction, +and release possible other transactions waiting because of these locks. */ +void lock_release(trx_t* trx); /*********************************************************************//** Calculates the fold value of a page file address: used in inserting or diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/log0log.h mariadb-10.3-10.3.20/storage/innobase/include/log0log.h --- mariadb-10.3-10.3.17/storage/innobase/include/log0log.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/log0log.h 2019-11-06 16:01:58.000000000 +0000 @@ -40,6 +40,10 @@ #include "os0event.h" #include "os0file.h" +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + /** Maximum number of srv_n_log_files, or innodb_log_files_in_group */ #define SRV_N_LOG_FILES_MAX 100 @@ -191,15 +195,13 @@ /** Make a checkpoint. Note that this function does not flush dirty blocks from the buffer pool: it only checks what is lsn of the oldest modification in the pool, and writes information about the lsn in -log files. Use log_make_checkpoint_at() to flush also the pool. +log files. Use log_make_checkpoint() to flush also the pool. @param[in] sync whether to wait for the write to complete @return true if success, false if a checkpoint write was already running */ bool log_checkpoint(bool sync); -/** Make a checkpoint at or after a specified LSN. -@param[in] lsn the log sequence number, or LSN_MAX -for the latest LSN */ -void log_make_checkpoint_at(lsn_t lsn); +/** Make a checkpoint */ +void log_make_checkpoint(); /****************************************************************//** Makes a checkpoint at the latest lsn and writes it to first page of each @@ -493,6 +495,12 @@ header */ #define LOG_FILE_HDR_SIZE (4 * OS_FILE_LOG_BLOCK_SIZE) +/* As long as fil_io() is used to handle log io, log group max size is limited +by (maximum page number) * (minimum page size). Page number type is uint32_t. +Remove this limitation if page number is no longer used for log file io. */ +static const ulonglong log_group_max_size = + ((ulonglong(UINT32_MAX) + 1) * UNIV_PAGE_SIZE_MIN - 1); + typedef ib_mutex_t LogSysMutex; typedef ib_mutex_t FlushOrderMutex; diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/log0log.ic mariadb-10.3-10.3.20/storage/innobase/include/log0log.ic --- mariadb-10.3-10.3.17/storage/innobase/include/log0log.ic 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/log0log.ic 2019-11-06 16:01:58.000000000 +0000 @@ -185,7 +185,9 @@ /*========================*/ lsn_t lsn) /*!< in: lsn of a byte within the block */ { - return(((ulint) (lsn / OS_FILE_LOG_BLOCK_SIZE) & 0x3FFFFFFFUL) + 1); + return(((ulint) (lsn / OS_FILE_LOG_BLOCK_SIZE) & + DBUG_EVALUATE_IF("innodb_small_log_block_no_limit", + 0xFUL, 0x3FFFFFFFUL)) + 1); } /************************************************************//** diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/mem0mem.h mariadb-10.3-10.3.20/storage/innobase/include/mem0mem.h --- mariadb-10.3-10.3.17/storage/innobase/include/mem0mem.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/mem0mem.h 2019-11-06 16:01:58.000000000 +0000 @@ -237,7 +237,10 @@ void* mem_heap_dup(mem_heap_t* heap, const void* data, size_t len) { - return(memcpy(mem_heap_alloc(heap, len), data, len)); + ut_ad(data || !len); + return UNIV_LIKELY(data != NULL) + ? memcpy(mem_heap_alloc(heap, len), data, len) + : NULL; } /** Duplicate a NUL-terminated string, allocated from a memory heap. diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/page0page.h mariadb-10.3-10.3.20/storage/innobase/include/page0page.h --- mariadb-10.3-10.3.17/storage/innobase/include/page0page.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/page0page.h 2019-11-06 16:01:58.000000000 +0000 @@ -1310,15 +1310,12 @@ page_simple_validate_new( /*=====================*/ const page_t* page); /*!< in: index page in ROW_FORMAT!=REDUNDANT */ -/***************************************************************//** -This function checks the consistency of an index page. -@return TRUE if ok */ -ibool -page_validate( -/*==========*/ - const page_t* page, /*!< in: index page */ - dict_index_t* index); /*!< in: data dictionary index containing - the page record type definition */ +/** Check the consistency of an index page. +@param[in] page index page +@param[in] index B-tree or R-tree index +@return whether the page is valid */ +bool page_validate(const page_t* page, const dict_index_t* index) + MY_ATTRIBUTE((nonnull)); /***************************************************************//** Looks in the page record list for a record with the given heap number. @return record, NULL if not found */ diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/page0page.ic mariadb-10.3-10.3.20/storage/innobase/include/page0page.ic --- mariadb-10.3-10.3.17/storage/innobase/include/page0page.ic 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/page0page.ic 2019-11-06 16:01:58.000000000 +0000 @@ -659,6 +659,10 @@ return(NULL); } + ut_ad(page_rec_is_infimum(rec) + || !(rec_get_info_bits(page + offs, comp) + & REC_INFO_MIN_REC_FLAG)); + return(page + offs); } diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/que0que.h mariadb-10.3-10.3.20/storage/innobase/include/que0que.h --- mariadb-10.3-10.3.17/storage/innobase/include/que0que.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/que0que.h 2019-11-06 16:01:58.000000000 +0000 @@ -378,6 +378,9 @@ related delete/updates */ row_prebuilt_t* prebuilt; /*!< prebuilt structure processed by the query thread */ + + /** a slot of srv_sys.sys_threads, for DEBUG_SYNC in purge thread */ + ut_d(srv_slot_t* thread_slot;) }; #define QUE_THR_MAGIC_N 8476583 diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/rem0rec.h mariadb-10.3-10.3.20/storage/innobase/include/rem0rec.h --- mariadb-10.3-10.3.17/storage/innobase/include/rem0rec.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/rem0rec.h 2019-11-06 16:01:58.000000000 +0000 @@ -983,7 +983,7 @@ ulint n_core, const dict_col_t::def_t*def_val, rec_comp_status_t status = REC_STATUS_ORDINARY) - MY_ATTRIBUTE((nonnull)); + MY_ATTRIBUTE((nonnull(1,2,3))); /** Determine the offset to each field in temporary file. @param[in] rec temporary file record @param[in] index index of that the record belongs to diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/row0ins.h mariadb-10.3-10.3.20/storage/innobase/include/row0ins.h --- mariadb-10.3-10.3.17/storage/innobase/include/row0ins.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/row0ins.h 2019-11-06 16:01:58.000000000 +0000 @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2017, 2018, MariaDB Corporation. +Copyright (c) 2017, 2019, MariaDB Corporation. 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 @@ -92,10 +92,7 @@ ulint n_uniq, /*!< in: 0 or index->n_uniq */ dtuple_t* entry, /*!< in/out: index entry to insert */ ulint n_ext, /*!< in: number of externally stored columns */ - que_thr_t* thr, /*!< in: query thread or NULL */ - bool dup_chk_only) - /*!< in: if true, just do duplicate check - and return. don't execute actual insert. */ + que_thr_t* thr) /*!< in: query thread or NULL */ MY_ATTRIBUTE((warn_unused_result)); /***************************************************************//** @@ -120,10 +117,7 @@ dtuple_t* entry, /*!< in/out: index entry to insert */ trx_id_t trx_id, /*!< in: PAGE_MAX_TRX_ID during row_log_table_apply(), or 0 */ - que_thr_t* thr, /*!< in: query thread */ - bool dup_chk_only) - /*!< in: if true, just do duplicate check - and return. don't execute actual insert. */ + que_thr_t* thr) /*!< in: query thread */ MY_ATTRIBUTE((warn_unused_result)); /***************************************************************//** @@ -138,10 +132,7 @@ dict_index_t* index, /*!< in: clustered index */ dtuple_t* entry, /*!< in/out: index entry to insert */ que_thr_t* thr, /*!< in: query thread */ - ulint n_ext, /*!< in: number of externally stored columns */ - bool dup_chk_only) - /*!< in: if true, just do duplicate check - and return. don't execute actual insert. */ + ulint n_ext) /*!< in: number of externally stored columns */ MY_ATTRIBUTE((warn_unused_result)); /***************************************************************//** Inserts an entry into a secondary index. Tries first optimistic, @@ -155,9 +146,8 @@ dict_index_t* index, /*!< in: secondary index */ dtuple_t* entry, /*!< in/out: index entry to insert */ que_thr_t* thr, /*!< in: query thread */ - bool dup_chk_only) - /*!< in: if true, just do duplicate check - and return. don't execute actual insert. */ + bool check_foreign = true) /*!< in: true if check + foreign table is needed, false otherwise */ MY_ATTRIBUTE((warn_unused_result)); /***********************************************************//** Inserts a row to a table. This is a high-level function used in @@ -198,10 +188,6 @@ entry_list and sys fields are stored here; if this is NULL, entry list should be created and buffers for sys fields in row allocated */ - dict_index_t* duplicate; - /* This is the first index that reported - DB_DUPLICATE_KEY. Used in the case of REPLACE - or INSERT ... ON DUPLICATE UPDATE. */ ulint magic_n; }; diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/row0vers.h mariadb-10.3-10.3.20/storage/innobase/include/row0vers.h --- mariadb-10.3-10.3.17/storage/innobase/include/row0vers.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/row0vers.h 2019-11-06 16:01:58.000000000 +0000 @@ -44,7 +44,8 @@ @param[in] rec secondary index record @param[in] index secondary index @param[in] offsets rec_get_offsets(rec, index) -@return the active transaction; trx->release_reference() must be invoked +@return the active transaction; state must be rechecked after +trx_mutex_enter(), and trx->release_reference() must be invoked @retval NULL if the record was committed */ trx_t* row_vers_impl_x_locked( diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/span.h mariadb-10.3-10.3.20/storage/innobase/include/span.h --- mariadb-10.3-10.3.17/storage/innobase/include/span.h 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/span.h 2019-11-06 16:01:58.000000000 +0000 @@ -0,0 +1,145 @@ +/***************************************************************************** + +Copyright (c) 2019, MariaDB Corporation. + +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 Street, Fifth Floor, Boston, MA 02110-1335 USA + +*****************************************************************************/ + +#pragma once + +#include +#include + +namespace st_ { + +template class span { +public: + typedef ElementType element_type; + typedef ElementType value_type; + typedef size_t index_type; + typedef ptrdiff_t difference_type; + typedef element_type* pointer; + typedef const element_type* const_pointer; + typedef element_type& reference; + typedef const element_type& const_reference; + typedef pointer iterator; + typedef const pointer const_iterator; + typedef std::reverse_iterator reverse_iterator; + typedef std::reverse_iterator const_reverse_iterator; + + span() : data_(NULL), size_(0) {} + + span(pointer ptr, index_type count) : data_(ptr), size_(count) {} + + span(pointer first, pointer last) : data_(first), size_(last - first) {} + + template span(element_type (&arr)[N]) : data_(arr), size_(N) + { + } + + template + span(Container& cont) : data_(cont.begin()), size_(cont.size()) + { + } + + template + span(const Container& cont) : data_(cont.begin()), size_(cont.size()) + { + } + + span(const span& other) : data_(other.data_), size_(other.size_) {} + + ~span(){}; + + span& operator=(const span& other) + { + data_ = other.data_; + size_ = other.size_; + return *this; + } + + template span first() const + { + assert(!empty()); + return span(data_, 1); + } + template span last() const + { + assert(!empty()); + return span(data_ + size() - 1, 1); + } + + span first(index_type count) const + { + assert(!empty()); + return span(data_, 1); + } + span last(index_type count) const + { + assert(!empty()); + return span(data_ + size() - 1, 1); + } + span subspan(index_type offset, index_type count) const + { + assert(!empty()); + assert(size() >= offset + count); + return span(data_ + offset, count); + } + + index_type size() const { return size_; } + index_type size_bytes() const { return size_ * sizeof(ElementType); } + bool empty() const __attribute__((warn_unused_result)) + { + return size_ == 0; + } + + reference operator[](index_type idx) const + { + assert(size() > idx); + return data_[idx]; + } + reference front() const + { + assert(!empty()); + return data_[0]; + } + reference back() const + { + assert(!empty()); + return data_[size() - 1]; + } + pointer data() const + { + assert(!empty()); + return data_; + } + + iterator begin() const { return data_; } + iterator end() const { return data_ + size_; } + reverse_iterator rbegin() const + { + return std::reverse_iterator(std::advance(end(), -1)); + } + reverse_iterator rend() const + { + return std::reverse_iterator( + std::advance(begin(), -1)); + } + +private: + pointer data_; + index_type size_; +}; + +} // namespace st_ diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/srv0srv.h mariadb-10.3-10.3.20/storage/innobase/include/srv0srv.h --- mariadb-10.3-10.3.17/storage/innobase/include/srv0srv.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/srv0srv.h 2019-11-06 16:01:58.000000000 +0000 @@ -3,7 +3,7 @@ Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved. Copyright (c) 2008, 2009, Google Inc. Copyright (c) 2009, Percona Inc. -Copyright (c) 2013, 2018, MariaDB Corporation. +Copyright (c) 2013, 2019, MariaDB Corporation. Portions of this file contain modifications contributed and copyrighted by Google, Inc. Those modifications are gratefully acknowledged and are described @@ -536,6 +536,7 @@ #endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */ #ifdef UNIV_DEBUG +extern my_bool innodb_evict_tables_on_commit_debug; extern my_bool srv_sync_debug; extern my_bool srv_purge_view_update_only_debug; @@ -591,6 +592,8 @@ /** Buffer pool dump status frequence in percentages */ extern ulong srv_buf_dump_status_frequency; +#define srv_max_purge_threads 32 + # ifdef UNIV_PFS_THREAD /* Keys to register InnoDB threads with performance schema */ extern mysql_pfs_key_t buf_dump_thread_key; @@ -632,11 +635,11 @@ #ifdef HAVE_PSI_STAGE_INTERFACE /** Performance schema stage event for monitoring ALTER TABLE progress -everything after flush log_make_checkpoint_at(). */ +everything after flush log_make_checkpoint(). */ extern PSI_stage_info srv_stage_alter_table_end; /** Performance schema stage event for monitoring ALTER TABLE progress -log_make_checkpoint_at(). */ +log_make_checkpoint(). */ extern PSI_stage_info srv_stage_alter_table_flush; /** Performance schema stage event for monitoring ALTER TABLE progress @@ -1104,8 +1107,23 @@ to do */ que_thr_t* thr; /*!< suspended query thread (only used for user threads) */ +#ifdef UNIV_DEBUG + struct debug_sync_t { + UT_LIST_NODE_T(debug_sync_t) debug_sync_list; + }; + UT_LIST_BASE_NODE_T(debug_sync_t) debug_sync; + rw_lock_t debug_sync_lock; +#endif }; +#ifdef UNIV_DEBUG +typedef void srv_slot_callback_t(srv_slot_t*, const void*); + +void srv_for_each_thread(srv_thread_type type, + srv_slot_callback_t callback, + const void *arg); +#endif + #ifdef WITH_WSREP UNIV_INTERN void diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/trx0purge.h mariadb-10.3-10.3.20/storage/innobase/include/trx0purge.h --- mariadb-10.3-10.3.17/storage/innobase/include/trx0purge.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/trx0purge.h 2019-11-06 16:01:58.000000000 +0000 @@ -61,7 +61,12 @@ /*======*/ ulint n_purge_threads, /*!< in: number of purge tasks to submit to task queue. */ - bool truncate); /*!< in: truncate history if true */ + bool truncate /*!< in: truncate history if true */ +#ifdef UNIV_DEBUG + , srv_slot_t *slot /*!< in/out: purge coordinator + thread slot */ +#endif +); /** Rollback segements from a given transaction with trx-no scheduled for purge. */ diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/trx0sys.h mariadb-10.3-10.3.20/storage/innobase/include/trx0sys.h --- mariadb-10.3-10.3.17/storage/innobase/include/trx0sys.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/trx0sys.h 2019-11-06 16:01:58.000000000 +0000 @@ -514,8 +514,10 @@ { ut_ad(!trx->read_only || !trx->rsegs.m_redo.rseg); ut_ad(!trx_is_autocommit_non_locking(trx)); + /* trx->state can be anything except TRX_STATE_NOT_STARTED */ mutex_enter(&trx->mutex); ut_ad(trx_state_eq(trx, TRX_STATE_ACTIVE) || + trx_state_eq(trx, TRX_STATE_COMMITTED_IN_MEMORY) || trx_state_eq(trx, TRX_STATE_PREPARED_RECOVERED) || trx_state_eq(trx, TRX_STATE_PREPARED)); mutex_exit(&trx->mutex); @@ -626,12 +628,7 @@ The caller should already have handled trx_id==0 specially. */ ut_ad(trx_id); - if (caller_trx && caller_trx->id == trx_id) - { - if (do_ref_count) - caller_trx->reference(); - return caller_trx; - } + ut_ad(!caller_trx || caller_trx->id != trx_id || !do_ref_count); trx_t *trx= 0; LF_PINS *pins= caller_trx ? get_pins(caller_trx) : lf_hash_get_pins(&hash); @@ -644,14 +641,27 @@ { mutex_enter(&element->mutex); lf_hash_search_unpin(pins); - trx= element->trx; - if (!trx); - else if (UNIV_UNLIKELY(trx_id != trx->id)) - trx= NULL; - else { - if (do_ref_count) - trx->reference(); + if ((trx= element->trx)) { + DBUG_ASSERT(trx_id == trx->id); ut_d(validate_element(trx)); + if (do_ref_count) + { + /* + We have an early state check here to avoid committer + starvation in a wait loop for transaction references, + when there's a stream of trx_sys.find() calls from other + threads. The trx->state may change to COMMITTED after + trx->mutex is released, and it will have to be rechecked + by the caller after reacquiring the mutex. + */ + trx_mutex_enter(trx); + const trx_state_t state= trx->state; + trx_mutex_exit(trx); + if (state == TRX_STATE_COMMITTED_IN_MEMORY) + trx= NULL; + else + trx->reference(); + } } mutex_exit(&element->mutex); } @@ -943,7 +953,7 @@ /** Takes MVCC snapshot. - To reduce malloc probablility we reserver rw_trx_hash.size() + 32 elements + To reduce malloc probablility we reserve rw_trx_hash.size() + 32 elements in ids. For details about get_rw_trx_hash_version() != get_max_trx_id() spin diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/trx0trx.h mariadb-10.3-10.3.20/storage/innobase/include/trx0trx.h --- mariadb-10.3-10.3.17/storage/innobase/include/trx0trx.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/trx0trx.h 2019-11-06 16:01:58.000000000 +0000 @@ -211,16 +211,13 @@ /*==================*/ XID* xid_list, /*!< in/out: prepared transactions */ uint len); /*!< in: number of slots in xid_list */ -/*******************************************************************//** -This function is used to find one X/Open XA distributed transaction -which is in the prepared state -@return trx or NULL; on match, the trx->xid will be invalidated; -note that the trx may have been committed, unless the caller is -holding lock_sys.mutex */ -trx_t * -trx_get_trx_by_xid( -/*===============*/ - XID* xid); /*!< in: X/Open XA transaction identifier */ +/** Look up an X/Open distributed transaction in XA PREPARE state. +@param[in] xid X/Open XA transaction identifier +@return transaction on match (the trx_t::xid will be invalidated); +note that the trx may have been committed before the caller acquires +trx_t::mutex +@retval NULL if no match */ +trx_t* trx_get_trx_by_xid(const XID* xid); /**********************************************************************//** If required, flushes the log to disk if we called trx_commit_for_mysql() with trx->flush_log_later == TRUE. */ @@ -467,6 +464,9 @@ ut_ad(!(t)->read_view.is_open()); \ ut_ad((t)->lock.wait_thr == NULL); \ ut_ad(UT_LIST_GET_LEN((t)->lock.trx_locks) == 0); \ + ut_ad((t)->lock.table_locks.empty()); \ + ut_ad(!(t)->autoinc_locks \ + || ib_vector_is_empty((t)->autoinc_locks)); \ ut_ad((t)->dict_operation == TRX_DICT_OP_NONE); \ } while(0) @@ -699,10 +699,9 @@ transaction may access (read and modify) the trx object, and it may do so without holding any mutex. The following are exceptions to this: -* trx_rollback_resurrected() may access resurrected (connectionless) -transactions while the system is already processing new user -transactions. The trx_sys.mutex prevents a race condition between it -and lock_trx_release_locks() [invoked by trx_commit()]. +* trx_rollback_recovered() may access resurrected (connectionless) +transactions (state == TRX_STATE_ACTIVE && is_recovered) +while the system is already processing new user transactions (!is_recovered). * trx_print_low() may access transactions not associated with the current thread. The caller must be holding lock_sys.mutex. @@ -713,7 +712,7 @@ * The locking code (in particular, lock_deadlock_recursive() and lock_rec_convert_impl_to_expl()) will access transactions associated to other connections. The locks of transactions are protected by -lock_sys.mutex and sometimes by trx->mutex. */ +lock_sys.mutex (insertions also by trx->mutex). */ /** Represents an instance of rollback segment along with its state variables.*/ struct trx_undo_ptr_t { @@ -837,28 +836,26 @@ ACTIVE->COMMITTED is possible when the transaction is in rw_trx_hash. - Transitions to COMMITTED are protected by both lock_sys.mutex - and trx->mutex. - - NOTE: Some of these state change constraints are an overkill, - currently only required for a consistent view for printing stats. - This unnecessarily adds a huge cost for the general case. */ - + Transitions to COMMITTED are protected by trx_t::mutex. */ trx_state_t state; ReadView read_view; /*!< consistent read view used in the transaction, or NULL if not yet set */ trx_lock_t lock; /*!< Information about the transaction locks and state. Protected by - trx->mutex or lock_sys.mutex - or both */ - bool is_recovered; /*!< 0=normal transaction, - 1=recovered, must be rolled back, - protected by trx_sys.mutex when - trx is in rw_trx_hash */ - + lock_sys.mutex (insertions also + by trx_t::mutex). */ /* These fields are not protected by any mutex. */ + + /** false=normal transaction, true=recovered (must be rolled back) + or disconnected transaction in XA PREPARE STATE. + + This field is accessed by the thread that owns the transaction, + without holding any mutex. + There is only one foreign-thread access in trx_print_low() + and a possible race condition with trx_disconnect_prepared(). */ + bool is_recovered; const char* op_info; /*!< English text describing the current operation, or an empty string */ @@ -1116,6 +1113,12 @@ return flush_observer; } + /** Transition to committed state, to release implicit locks. */ + inline void commit_state(); + + /** Release any explicit locks of a committing transaction. */ + inline void release_locks(); + bool is_referenced() { diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/trx0trx.ic mariadb-10.3-10.3.20/storage/innobase/include/trx0trx.ic --- mariadb-10.3-10.3.17/storage/innobase/include/trx0trx.ic 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/trx0trx.ic 2019-11-06 16:01:58.000000000 +0000 @@ -48,19 +48,14 @@ switch (trx->state) { case TRX_STATE_PREPARED: case TRX_STATE_PREPARED_RECOVERED: + case TRX_STATE_COMMITTED_IN_MEMORY: ut_ad(!trx_is_autocommit_non_locking(trx)); return(trx->state == state); case TRX_STATE_ACTIVE: - assert_trx_nonlocking_or_in_list(trx); return(state == trx->state); - case TRX_STATE_COMMITTED_IN_MEMORY: - - check_trx_state(trx); - return(state == trx->state); - case TRX_STATE_NOT_STARTED: /* These states are not allowed for running transactions. */ ut_a(state == TRX_STATE_NOT_STARTED diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/univ.i mariadb-10.3-10.3.20/storage/innobase/include/univ.i --- mariadb-10.3-10.3.17/storage/innobase/include/univ.i 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/univ.i 2019-11-06 16:01:58.000000000 +0000 @@ -92,7 +92,6 @@ #include #ifndef _WIN32 -# include /* mmap() for os0proc.cc */ # include # include "my_config.h" #endif diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/ut0mem.h mariadb-10.3-10.3.20/storage/innobase/include/ut0mem.h --- mariadb-10.3-10.3.17/storage/innobase/include/ut0mem.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/ut0mem.h 2019-11-06 16:01:58.000000000 +0000 @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2019, MariaDB Corporation. 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 @@ -83,29 +84,6 @@ int ut_strcmp(const char* str1, const char* str2); -/**********************************************************************//** -Copies up to size - 1 characters from the NUL-terminated string src to -dst, NUL-terminating the result. Returns strlen(src), so truncation -occurred if the return value >= size. -@return strlen(src) */ -ulint -ut_strlcpy( -/*=======*/ - char* dst, /*!< in: destination buffer */ - const char* src, /*!< in: source buffer */ - ulint size); /*!< in: size of destination buffer */ - -/**********************************************************************//** -Like ut_strlcpy, but if src doesn't fit in dst completely, copies the last -(size - 1) bytes of src, not the first. -@return strlen(src) */ -ulint -ut_strlcpy_rev( -/*===========*/ - char* dst, /*!< in: destination buffer */ - const char* src, /*!< in: source buffer */ - ulint size); /*!< in: size of destination buffer */ - /******************************************************************** Concatenate 3 strings.*/ char* diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/ut0new.h mariadb-10.3-10.3.20/storage/innobase/include/ut0new.h --- mariadb-10.3-10.3.17/storage/innobase/include/ut0new.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/ut0new.h 2019-11-06 16:01:58.000000000 +0000 @@ -129,9 +129,6 @@ #include /* strlen(), strrchr(), strncmp() */ #include "my_global.h" /* needed for headers from mysql/psi/ */ -#if !defined(DBUG_OFF) && defined(HAVE_MADVISE) -#include -#endif /* JAN: TODO: missing 5.7 header */ #ifdef HAVE_MYSQL_MEMORY_H @@ -252,7 +249,7 @@ #if defined(DBUG_OFF) && defined(HAVE_MADVISE) && defined(MADV_DONTDUMP) if (dontdump && madvise(ptr, bytes, MADV_DONTDUMP)) { - ib::warn() << "Failed to set memory to DONTDUMP: " + ib::warn() << "Failed to set memory to " DONTDUMP_STR ": " << strerror(errno) << " ptr " << ptr << " size " << bytes; @@ -270,7 +267,7 @@ static inline void ut_dodump(void* ptr, size_t m_size) { if (ptr && madvise(ptr, m_size, MADV_DODUMP)) { - ib::warn() << "Failed to set memory to DODUMP: " + ib::warn() << "Failed to set memory to " DODUMP_STR ": " << strerror(errno) << " ptr " << ptr << " size " << m_size; diff -Nru mariadb-10.3-10.3.17/storage/innobase/include/ut0wqueue.h mariadb-10.3-10.3.20/storage/innobase/include/ut0wqueue.h --- mariadb-10.3-10.3.17/storage/innobase/include/ut0wqueue.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/include/ut0wqueue.h 2019-11-06 16:01:58.000000000 +0000 @@ -38,7 +38,18 @@ // Forward declaration struct ib_list_t; -struct ib_wqueue_t; + +/** Work queue */ +struct ib_wqueue_t +{ + /** Mutex protecting everything */ + ib_mutex_t mutex; + /** Work item list */ + ib_list_t* items; + /** event we use to signal additions to list; + os_event_set() and os_event_reset() are protected by the mutex */ + os_event_t event; +}; /****************************************************************//** Create a new work queue. @@ -54,15 +65,14 @@ /*===========*/ ib_wqueue_t* wq); /*!< in: work queue */ -/****************************************************************//** -Add a work item to the queue. */ +/** Add a work item to the queue. +@param[in,out] wq work queue +@param[in] item work item +@param[in,out] heap memory heap to use for allocating list node +@param[in] wq_locked work queue mutex locked */ void -ib_wqueue_add( -/*==========*/ - ib_wqueue_t* wq, /*!< in: work queue */ - void* item, /*!< in: work item */ - mem_heap_t* heap); /*!< in: memory heap to use for - allocating the list node */ +ib_wqueue_add(ib_wqueue_t* wq, void* item, mem_heap_t* heap, + bool wq_locked = false); /** Check if queue is empty. @param wq wait queue @@ -101,5 +111,4 @@ /*==========*/ ib_wqueue_t* wq); /*= min trx id for the trx list, or - database recovery is running. We do not write the changes of a page - max trx id to the log, and therefore during recovery, this value - for a page may be incorrect. */ + database recovery is running. */ if (max_trx_id < trx_sys.get_min_trx_id()) { @@ -4276,23 +4274,17 @@ } #endif /* UNIV_DEBUG */ -/*********************************************************************//** -Releases transaction locks, and releases possible other transactions waiting -because of these locks. */ -static -void -lock_release( -/*=========*/ - trx_t* trx) /*!< in/out: transaction */ +/** Release the explicit locks of a committing transaction, +and release possible other transactions waiting because of these locks. */ +void lock_release(trx_t* trx) { - lock_t* lock; ulint count = 0; trx_id_t max_trx_id = trx_sys.get_max_trx_id(); - ut_ad(lock_mutex_own()); + lock_mutex_enter(); ut_ad(!trx_mutex_own(trx)); - for (lock = UT_LIST_GET_LAST(trx->lock.trx_locks); + for (lock_t* lock = UT_LIST_GET_LAST(trx->lock.trx_locks); lock != NULL; lock = UT_LIST_GET_LAST(trx->lock.trx_locks)) { @@ -4332,6 +4324,8 @@ ++count; } + + lock_mutex_exit(); } /* True if a lock mode is S or X */ @@ -4690,12 +4684,15 @@ /** Functor to display all transactions */ struct lock_print_info { - lock_print_info(FILE* file, time_t now) : file(file), now(now) {} + lock_print_info(FILE* file, time_t now) : + file(file), now(now), + purge_trx(purge_sys.query ? purge_sys.query->trx : NULL) + {} void operator()(const trx_t* trx) const { ut_ad(mutex_own(&trx_sys.mutex)); - if (trx == purge_sys.query->trx) + if (UNIV_UNLIKELY(trx == purge_trx)) return; lock_trx_print_wait_and_mvcc_state(file, trx, now); @@ -4705,6 +4702,7 @@ FILE* const file; const time_t now; + const trx_t* const purge_trx; }; /*********************************************************************//** @@ -4742,7 +4740,7 @@ { bool found = false; - trx_mutex_enter(trx); + ut_ad(trx_mutex_own(trx)); for (lock_list::const_iterator it = trx->lock.table_locks.begin(), end = trx->lock.table_locks.end(); it != end; ++it) { @@ -4765,8 +4763,6 @@ ut_a(lock->un_member.tab_lock.table != NULL); } - trx_mutex_exit(trx); - return(found); } @@ -4787,25 +4783,23 @@ lock != NULL; lock = UT_LIST_GET_NEXT(un_member.tab_lock.locks, lock)) { - /* Transaction state may change from ACTIVE to PREPARED. - State change to COMMITTED is not possible while we are - holding lock_sys.mutex: it is done by lock_trx_release_locks() - under lock_sys.mutex protection. - Transaction in NOT_STARTED state cannot hold locks, and - lock->trx->state can only move to NOT_STARTED from COMMITTED. */ + /* lock->trx->state cannot change from or to NOT_STARTED + while we are holding the lock_sys.mutex. It may change + from ACTIVE or PREPARED to PREPARED or COMMITTED. */ + trx_mutex_enter(lock->trx); check_trx_state(lock->trx); - if (!lock_get_wait(lock)) { - + if (lock->trx->state == TRX_STATE_COMMITTED_IN_MEMORY) { + } else if (!lock_get_wait(lock)) { ut_a(!lock_table_other_has_incompatible( lock->trx, 0, table, lock_get_mode(lock))); } else { - ut_a(lock_table_has_to_wait_in_queue(lock)); } ut_a(lock_trx_table_locks_find(lock->trx, lock)); + trx_mutex_exit(lock->trx); } return(TRUE); @@ -4852,42 +4846,41 @@ lock != NULL; lock = lock_rec_get_next_const(heap_no, lock)) { - ut_ad(!trx_is_ac_nl_ro(lock->trx)); + ut_ad(!index || lock->index == index); - if (lock_get_wait(lock)) { - ut_a(lock_rec_has_to_wait_in_queue(lock)); - } + trx_mutex_enter(lock->trx); + ut_ad(!trx_is_ac_nl_ro(lock->trx)); + ut_ad(trx_state_eq(lock->trx, + TRX_STATE_COMMITTED_IN_MEMORY) + || !lock_get_wait(lock) + || lock_rec_has_to_wait_in_queue(lock)); + trx_mutex_exit(lock->trx); + } - if (index != NULL) { - ut_a(lock->index == index); - } +func_exit: + if (!locked_lock_trx_sys) { + lock_mutex_exit(); } - goto func_exit; + return true; } ut_ad(page_rec_is_leaf(rec)); + ut_ad(lock_mutex_own()); - if (index == NULL) { - - /* Nothing we can do */ - - } else if (dict_index_is_clust(index)) { - /* Unlike the non-debug code, this invariant can only succeed - if the check and assertion are covered by the lock mutex. */ - - const trx_id_t impl_trx_id = lock_clust_rec_some_has_impl( - rec, index, offsets); - - const trx_t *impl_trx = impl_trx_id - ? trx_sys.find(current_trx(), impl_trx_id, false) - : 0; - - ut_ad(lock_mutex_own()); - /* impl_trx cannot be committed until lock_mutex_exit() - because lock_trx_release_locks() acquires lock_sys.mutex */ - - if (!impl_trx) { + const trx_id_t impl_trx_id = index && index->is_primary() + ? lock_clust_rec_some_has_impl(rec, index, offsets) + : 0; + + if (trx_t *impl_trx = impl_trx_id + ? trx_sys.find(current_trx(), impl_trx_id, false) + : 0) { + /* impl_trx could have been committed before we + acquire its mutex, but not thereafter. */ + + mutex_enter(&impl_trx->mutex); + ut_ad(impl_trx->state != TRX_STATE_NOT_STARTED); + if (impl_trx->state == TRX_STATE_COMMITTED_IN_MEMORY) { } else if (const lock_t* other_lock = lock_rec_other_has_expl_req( LOCK_S, block, true, heap_no, @@ -4929,6 +4922,8 @@ ut_ad(lock_rec_has_expl(LOCK_X | LOCK_REC_NOT_GAP, block, heap_no, impl_trx)); } + + mutex_exit(&impl_trx->mutex); } for (lock = lock_rec_get_first(lock_sys.rec_hash, block, heap_no); @@ -4973,12 +4968,7 @@ ut_ad(innodb_lock_schedule_algorithm == INNODB_LOCK_SCHEDULE_ALGORITHM_FCFS || lock_queue_validate(lock)); -func_exit: - if (!locked_lock_trx_sys) { - lock_mutex_exit(); - } - - return(TRUE); + goto func_exit; } /*********************************************************************//** @@ -5405,25 +5395,19 @@ ut_ad(!rec_is_metadata(rec, index)); DEBUG_SYNC_C("before_lock_rec_convert_impl_to_expl_for_trx"); - lock_mutex_enter(); - + trx_mutex_enter(trx); ut_ad(!trx_state_eq(trx, TRX_STATE_NOT_STARTED)); if (!trx_state_eq(trx, TRX_STATE_COMMITTED_IN_MEMORY) && !lock_rec_has_expl(LOCK_X | LOCK_REC_NOT_GAP, block, heap_no, trx)) { - - ulint type_mode; - - type_mode = (LOCK_REC | LOCK_X | LOCK_REC_NOT_GAP); - - lock_rec_add_to_queue( - type_mode, block, heap_no, index, trx, FALSE); + lock_rec_add_to_queue(LOCK_REC | LOCK_X | LOCK_REC_NOT_GAP, + block, heap_no, index, trx, true); } lock_mutex_exit(); - + trx_mutex_exit(trx); trx->release_reference(); DEBUG_SYNC_C("after_lock_rec_convert_impl_to_expl_for_trx"); @@ -5446,13 +5430,17 @@ mutex_enter(&element->mutex); if (element->trx) { - lock_t *expl_lock= lock_rec_has_expl(LOCK_S | LOCK_REC_NOT_GAP, arg->block, - arg->heap_no, element->trx); + trx_mutex_enter(element->trx); + ut_ad(element->trx->state != TRX_STATE_NOT_STARTED); + lock_t *expl_lock= element->trx->state == TRX_STATE_COMMITTED_IN_MEMORY + ? NULL : lock_rec_has_expl(LOCK_S | LOCK_REC_NOT_GAP, arg->block, + arg->heap_no, element->trx); /* An explicit lock is held by trx other than the trx holding the implicit lock. */ ut_ad(!expl_lock || expl_lock->trx == arg->impl_trx); + trx_mutex_exit(element->trx); } mutex_exit(&element->mutex); return 0; @@ -5482,9 +5470,6 @@ ut_ad(!page_rec_is_metadata(rec)); lock_mutex_enter(); ut_ad(trx->is_referenced()); - /* Prevent a data race with trx_prepare(), which could change the - state from ACTIVE to PREPARED. Other state changes should be - blocked by lock_mutex_own() and trx->is_referenced(). */ trx_mutex_enter(trx); const trx_state_t state = trx->state; trx_mutex_exit(trx); @@ -6201,6 +6186,8 @@ } lock_table_dequeue(lock); + /* Remove the lock from table lock vector too. */ + lock_trx_table_locks_remove(lock); } /* Reset the wait flag and the back pointer to lock in trx. */ @@ -6250,95 +6237,6 @@ } } -/*********************************************************************//** -Releases a transaction's locks, and releases possible other transactions -waiting because of these locks. Change the state of the transaction to -TRX_STATE_COMMITTED_IN_MEMORY. */ -void -lock_trx_release_locks( -/*===================*/ - trx_t* trx) /*!< in/out: transaction */ -{ - check_trx_state(trx); - ut_ad(trx_state_eq(trx, TRX_STATE_PREPARED) - || trx_state_eq(trx, TRX_STATE_PREPARED_RECOVERED) - || trx_state_eq(trx, TRX_STATE_ACTIVE)); - - bool release_lock = UT_LIST_GET_LEN(trx->lock.trx_locks) > 0; - - /* Don't take lock_sys.mutex if trx didn't acquire any lock. */ - if (release_lock) { - - /* The transition of trx->state to TRX_STATE_COMMITTED_IN_MEMORY - is protected by both the lock_sys.mutex and the trx->mutex. */ - lock_mutex_enter(); - } - - /* The following assignment makes the transaction committed in memory - and makes its changes to data visible to other transactions. - NOTE that there is a small discrepancy from the strict formal - visibility rules here: a human user of the database can see - modifications made by another transaction T even before the necessary - log segment has been flushed to the disk. If the database happens to - crash before the flush, the user has seen modifications from T which - will never be a committed transaction. However, any transaction T2 - which sees the modifications of the committing transaction T, and - which also itself makes modifications to the database, will get an lsn - larger than the committing transaction T. In the case where the log - flush fails, and T never gets committed, also T2 will never get - committed. */ - - /*--------------------------------------*/ - trx_mutex_enter(trx); - trx->state = TRX_STATE_COMMITTED_IN_MEMORY; - /* Ensure that rw_trx_hash_t::find() will no longer find - this transaction. */ - trx->id = 0; - trx_mutex_exit(trx); - /*--------------------------------------*/ - - if (trx->is_referenced()) { - - ut_a(release_lock); - - lock_mutex_exit(); - - while (trx->is_referenced()) { - - DEBUG_SYNC_C("waiting_trx_is_not_referenced"); - - /** Doing an implicit to explicit conversion - should not be expensive. */ - ut_delay(srv_spin_wait_delay); - } - - lock_mutex_enter(); - } - - ut_ad(!trx->is_referenced()); - - if (release_lock) { - - lock_release(trx); - - lock_mutex_exit(); - } - - trx->lock.n_rec_locks = 0; - - /* We don't remove the locks one by one from the vector for - efficiency reasons. We simply reset it because we would have - released all the locks anyway. */ - - trx->lock.table_locks.clear(); - - ut_a(UT_LIST_GET_LEN(trx->lock.trx_locks) == 0); - ut_a(ib_vector_is_empty(trx->autoinc_locks)); - ut_a(trx->lock.table_locks.empty()); - - mem_heap_empty(trx->lock.lock_heap); -} - static inline dberr_t lock_trx_handle_wait_low(trx_t* trx) { ut_ad(lock_mutex_own()); @@ -6408,21 +6306,26 @@ mutex_enter(&element->mutex); if (element->trx) { + trx_mutex_enter(element->trx); check_trx_state(element->trx); - for (const lock_t *lock= UT_LIST_GET_FIRST(element->trx->lock.trx_locks); - lock != NULL; - lock= UT_LIST_GET_NEXT(trx_locks, lock)) + if (element->trx->state != TRX_STATE_COMMITTED_IN_MEMORY) { - ut_ad(lock->trx == element->trx); - if (lock_get_type_low(lock) == LOCK_REC) + for (const lock_t *lock= UT_LIST_GET_FIRST(element->trx->lock.trx_locks); + lock != NULL; + lock= UT_LIST_GET_NEXT(trx_locks, lock)) { - ut_ad(!dict_index_is_online_ddl(lock->index) || - dict_index_is_clust(lock->index)); - ut_ad(lock->index->table != table); + ut_ad(lock->trx == element->trx); + if (lock_get_type_low(lock) == LOCK_REC) + { + ut_ad(!dict_index_is_online_ddl(lock->index) || + lock->index->is_primary()); + ut_ad(lock->index->table != table); + } + else + ut_ad(lock->un_member.tab_lock.table != table); } - else - ut_ad(lock->un_member.tab_lock.table != table); } + trx_mutex_exit(element->trx); } mutex_exit(&element->mutex); return 0; @@ -6590,7 +6493,7 @@ if (srv_print_all_deadlocks) { ib::info() << "Transactions deadlock detected, dumping" - << " detailed information."; + " detailed information."; } } diff -Nru mariadb-10.3-10.3.17/storage/innobase/log/log0log.cc mariadb-10.3-10.3.20/storage/innobase/log/log0log.cc --- mariadb-10.3-10.3.17/storage/innobase/log/log0log.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/log/log0log.cc 2019-11-06 16:01:58.000000000 +0000 @@ -757,11 +757,14 @@ the trailer fields of the log blocks */ for (i = 0; i < write_len / OS_FILE_LOG_BLOCK_SIZE; i++) { +#ifdef UNIV_DEBUG + ulint hdr_no_2 = log_block_get_hdr_no(buf) + i; + DBUG_EXECUTE_IF("innodb_small_log_block_no_limit", + hdr_no_2 = ((hdr_no_2 - 1) & 0xFUL) + 1;); +#endif ut_ad(pad_len >= len - || i * OS_FILE_LOG_BLOCK_SIZE >= len - pad_len - || log_block_get_hdr_no( - buf + i * OS_FILE_LOG_BLOCK_SIZE) - == log_block_get_hdr_no(buf) + i); + || i * OS_FILE_LOG_BLOCK_SIZE >= len - pad_len + || log_block_get_hdr_no(buf + i * OS_FILE_LOG_BLOCK_SIZE) == hdr_no_2); log_block_store_checksum(buf + i * OS_FILE_LOG_BLOCK_SIZE); } @@ -1341,7 +1344,7 @@ /** Make a checkpoint. Note that this function does not flush dirty blocks from the buffer pool: it only checks what is lsn of the oldest modification in the pool, and writes information about the lsn in -log files. Use log_make_checkpoint_at() to flush also the pool. +log files. Use log_make_checkpoint() to flush also the pool. @param[in] sync whether to wait for the write to complete @return true if success, false if a checkpoint write was already running */ bool log_checkpoint(bool sync) @@ -1457,14 +1460,12 @@ return(true); } -/** Make a checkpoint at or after a specified LSN. -@param[in] lsn the log sequence number, or LSN_MAX -for the latest LSN */ -void log_make_checkpoint_at(lsn_t lsn) +/** Make a checkpoint */ +void log_make_checkpoint() { /* Preflush pages synchronously */ - while (!log_preflush_pool_modified_pages(lsn)) { + while (!log_preflush_pool_modified_pages(LSN_MAX)) { /* Flush as much as we can */ } @@ -1797,7 +1798,7 @@ if (!srv_read_only_mode) { service_manager_extend_timeout(INNODB_EXTEND_TIMEOUT_INTERVAL, "ensuring dirty buffer pool are written to log"); - log_make_checkpoint_at(LSN_MAX); + log_make_checkpoint(); log_mutex_enter(); diff -Nru mariadb-10.3-10.3.17/storage/innobase/log/log0recv.cc mariadb-10.3-10.3.20/storage/innobase/log/log0recv.cc --- mariadb-10.3-10.3.17/storage/innobase/log/log0recv.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/log/log0recv.cc 2019-11-06 16:01:58.000000000 +0000 @@ -2182,18 +2182,20 @@ mutex_enter(&recv_sys->mutex); if (!recv_sys->apply_log_recs) { - mutex_exit(&recv_sys->mutex); - return; - } - - recv_addr_t* recv_addr = recv_get_fil_addr_struct( - page_id.space(), page_id.page_no()); - - ut_ad(recv_addr->state != RECV_WILL_NOT_READ); - - if (recv_addr->state != RECV_BEING_PROCESSED - && recv_addr->state != RECV_PROCESSED) { - recv_sys->n_addrs--; + } else if (recv_addr_t* recv_addr = recv_get_fil_addr_struct( + page_id.space(), page_id.page_no())) { + switch (recv_addr->state) { + case RECV_WILL_NOT_READ: + ut_ad(!"wrong state"); + break; + case RECV_BEING_PROCESSED: + case RECV_PROCESSED: + break; + default: + recv_addr->state = RECV_PROCESSED; + ut_ad(recv_sys->n_addrs); + recv_sys->n_addrs--; + } } mutex_exit(&recv_sys->mutex); diff -Nru mariadb-10.3-10.3.17/storage/innobase/mem/mem0mem.cc mariadb-10.3-10.3.20/storage/innobase/mem/mem0mem.cc --- mariadb-10.3-10.3.17/storage/innobase/mem/mem0mem.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/mem/mem0mem.cc 2019-11-06 16:01:58.000000000 +0000 @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1994, 2014, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2017, 2018, MariaDB Corporation. +Copyright (c) 2017, 2019, MariaDB Corporation. 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 @@ -228,6 +228,17 @@ ut_ad(size == heap->total_size); } + +/** Copy the tail of a string. +@param[in,out] dst destination buffer +@param[in] src string whose tail to copy +@param[in] size size of dst buffer, in bytes, including NUL terminator +@return strlen(src) */ +static void ut_strlcpy_rev(char* dst, const char* src, ulint size) +{ + size_t src_size = strlen(src), n = std::min(src_size, size - 1); + memcpy(dst, src + src_size - n, n + 1); +} #endif /* UNIV_DEBUG */ /***************************************************************//** diff -Nru mariadb-10.3-10.3.17/storage/innobase/mtr/mtr0mtr.cc mariadb-10.3-10.3.20/storage/innobase/mtr/mtr0mtr.cc --- mariadb-10.3-10.3.17/storage/innobase/mtr/mtr0mtr.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/mtr/mtr0mtr.cc 2019-11-06 16:01:58.000000000 +0000 @@ -754,7 +754,7 @@ switch (m_impl->m_log_mode) { case MTR_LOG_SHORT_INSERTS: ut_ad(0); - /* fall through (write no redo log) */ + /* fall through */ case MTR_LOG_NO_REDO: case MTR_LOG_NONE: ut_ad(m_impl->m_log.size() == 0); diff -Nru mariadb-10.3-10.3.17/storage/innobase/os/os0file.cc mariadb-10.3-10.3.20/storage/innobase/os/os0file.cc --- mariadb-10.3-10.3.17/storage/innobase/os/os0file.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/os/os0file.cc 2019-11-06 16:01:58.000000000 +0000 @@ -4695,19 +4695,23 @@ CloseHandle(fh); } } + stat_info->block_size = 0; + /* What follows, is calculation of FS block size, which is not important + (it is just shown in I_S innodb tables). The error to calculate it will be ignored.*/ char volname[MAX_PATH]; BOOL result = GetVolumePathName(path, volname, MAX_PATH); - + static bool warned_once = false; if (!result) { - - ib::error() - << "os_file_get_status_win32: " - << "Failed to get the volume path name for: " - << path - << "- OS error number " << GetLastError(); - - return(DB_FAIL); + if (!warned_once) { + ib::warn() + << "os_file_get_status_win32: " + << "Failed to get the volume path name for: " + << path + << "- OS error number " << GetLastError(); + warned_once = true; + } + return(DB_SUCCESS); } DWORD sectorsPerCluster; @@ -4723,15 +4727,15 @@ &totalNumberOfClusters); if (!result) { - - ib::error() - << "GetDiskFreeSpace(" << volname << ",...) " - << "failed " - << "- OS error number " << GetLastError(); - - return(DB_FAIL); + if (!warned_once) { + ib::warn() + << "GetDiskFreeSpace(" << volname << ",...) " + << "failed " + << "- OS error number " << GetLastError(); + warned_once = true; + } + return(DB_SUCCESS); } - stat_info->block_size = bytesPerSector * sectorsPerCluster; } else { stat_info->type = OS_FILE_TYPE_UNKNOWN; diff -Nru mariadb-10.3-10.3.17/storage/innobase/page/page0cur.cc mariadb-10.3-10.3.20/storage/innobase/page/page0cur.cc --- mariadb-10.3-10.3.17/storage/innobase/page/page0cur.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/page/page0cur.cc 2019-11-06 16:01:58.000000000 +0000 @@ -2425,10 +2425,6 @@ if (cur_n_owned <= PAGE_DIR_SLOT_MIN_N_OWNED) { page_dir_balance_slot(page, page_zip, cur_slot_no); } - -#ifdef UNIV_ZIP_DEBUG - ut_a(!page_zip || page_zip_validate(page_zip, page, index)); -#endif /* UNIV_ZIP_DEBUG */ } #ifdef UNIV_COMPILE_TEST_FUNCS diff -Nru mariadb-10.3-10.3.17/storage/innobase/page/page0page.cc mariadb-10.3-10.3.20/storage/innobase/page/page0page.cc --- mariadb-10.3-10.3.17/storage/innobase/page/page0page.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/page/page0page.cc 2019-11-06 16:01:58.000000000 +0000 @@ -603,20 +603,20 @@ /* Copy records from the original page to the new page */ while (!page_cur_is_after_last(&cur1)) { - rec_t* cur1_rec = page_cur_get_rec(&cur1); rec_t* ins_rec; - offsets = rec_get_offsets(cur1_rec, index, offsets, is_leaf, + offsets = rec_get_offsets(cur1.rec, index, offsets, is_leaf, ULINT_UNDEFINED, &heap); ins_rec = page_cur_insert_rec_low(cur2, index, - cur1_rec, offsets, mtr); + cur1.rec, offsets, mtr); if (UNIV_UNLIKELY(!ins_rec)) { ib::fatal() << "Rec offset " << page_offset(rec) - << ", cur1 offset " - << page_offset(page_cur_get_rec(&cur1)) + << ", cur1 offset " << page_offset(cur1.rec) << ", cur2 offset " << page_offset(cur2); } page_cur_move_to_next(&cur1); + ut_ad(!(rec_get_info_bits(cur1.rec, page_is_comp(new_page)) + & REC_INFO_MIN_REC_FLAG)); cur2 = ins_rec; } @@ -803,6 +803,8 @@ dict_index_t* index, /*!< in: record descriptor */ mtr_t* mtr) /*!< in: mtr */ { + ut_ad(page_align(rec) == block->frame); + page_t* new_page = buf_block_get_frame(new_block); page_zip_des_t* new_page_zip = buf_block_get_page_zip(new_block); page_cur_t cur1; @@ -820,7 +822,6 @@ predefined infimum record. */ if (page_rec_is_infimum(rec)) { - return(ret); } @@ -838,7 +839,8 @@ const bool is_leaf = page_rec_is_leaf(rec); /* Copy records from the original page to the new page */ - if (dict_index_is_spatial(index)) { + if (index->is_spatial()) { + ut_ad(!index->is_instant()); ulint max_to_move = page_get_n_recs( buf_block_get_frame(block)); heap = mem_heap_create(256); @@ -854,17 +856,18 @@ rec_move, max_to_move, &num_moved, mtr); } else { - while (page_cur_get_rec(&cur1) != rec) { - rec_t* cur1_rec = page_cur_get_rec(&cur1); - offsets = rec_get_offsets(cur1_rec, index, offsets, + offsets = rec_get_offsets(cur1.rec, index, offsets, is_leaf, ULINT_UNDEFINED, &heap); cur2 = page_cur_insert_rec_low(cur2, index, - cur1_rec, offsets, mtr); + cur1.rec, offsets, mtr); ut_a(cur2); page_cur_move_to_next(&cur1); + ut_ad(!(rec_get_info_bits(cur1.rec, + page_is_comp(new_page)) + & REC_INFO_MIN_REC_FLAG)); } } @@ -1256,6 +1259,7 @@ rec_offs_init(offsets_); + ut_ad(page_align(rec) == block->frame); ut_ad((ibool) !!page_rec_is_comp(rec) == dict_table_is_comp(index->table)); #ifdef UNIV_ZIP_DEBUG @@ -2165,7 +2169,17 @@ goto func_exit; } - rec = page_rec_get_next_const(rec); + ulint offs = rec_get_next_offs(rec, FALSE); + if (!offs) { + break; + } + if (UNIV_UNLIKELY(offs < PAGE_OLD_INFIMUM + || offs >= srv_page_size)) { + ib::error() << "Page free list is corrupted " << count; + goto func_exit; + } + + rec = page + offs; } if (UNIV_UNLIKELY(page_dir_get_n_heap(page) != count + 1)) { @@ -2357,7 +2371,17 @@ goto func_exit; } - rec = page_rec_get_next_const(rec); + const ulint offs = rec_get_next_offs(rec, TRUE); + if (!offs) { + break; + } + if (UNIV_UNLIKELY(offs < PAGE_OLD_INFIMUM + || offs >= srv_page_size)) { + ib::error() << "Page free list is corrupted " << count; + goto func_exit; + } + + rec = page + offs; } if (UNIV_UNLIKELY(page_dir_get_n_heap(page) != count + 1)) { @@ -2374,19 +2398,16 @@ return(ret); } -/***************************************************************//** -This function checks the consistency of an index page. -@return TRUE if ok */ -ibool -page_validate( -/*==========*/ - const page_t* page, /*!< in: index page */ - dict_index_t* index) /*!< in: data dictionary index containing - the page record type definition */ +/** Check the consistency of an index page. +@param[in] page index page +@param[in] index B-tree or R-tree index +@return whether the page is valid */ +bool page_validate(const page_t* page, const dict_index_t* index) { const page_dir_slot_t* slot; const rec_t* rec; const rec_t* old_rec = NULL; + const rec_t* first_rec = NULL; ulint offs; ulint n_slots; ibool ret = TRUE; @@ -2510,6 +2531,43 @@ goto next_rec; } + if (rec == first_rec) { + if ((rec_get_info_bits(rec, page_is_comp(page)) + & REC_INFO_MIN_REC_FLAG)) { + if (page_has_prev(page)) { + ib::error() << "REC_INFO_MIN_REC_FLAG " + "is set on non-left page"; + ret = false; + } else if (!page_is_leaf(page)) { + /* leftmost node pointer page */ + } else if (!index->is_instant()) { + ib::error() << "REC_INFO_MIN_REC_FLAG " + "is set in a leaf-page record"; + ret = false; + } else if (rec_get_deleted_flag( + rec, page_is_comp(page))) { + /* If this were a 10.4 metadata + record for index->table->instant + we should not get here in 10.3, because + the metadata record should not have + been recognized by + btr_cur_instant_init_low(). */ + ib::error() << "Metadata record " + "is delete-marked"; + ret = false; + } + } else if (!page_has_prev(page) + && index->is_instant()) { + ib::error() << "Metadata record is missing"; + ret = false; + } + } else if (rec_get_info_bits(rec, page_is_comp(page)) + & REC_INFO_MIN_REC_FLAG) { + ib::error() << "REC_INFO_MIN_REC_FLAG record is not " + "first in page"; + ret = false; + } + /* Check that the records are in the ascending order */ if (count >= PAGE_HEAP_NO_USER_LOW && !page_rec_is_supremum(rec)) { @@ -2616,6 +2674,11 @@ old_rec = rec; rec = page_rec_get_next_const(rec); + if (page_rec_is_infimum(old_rec) + && page_rec_is_user_rec(rec)) { + first_rec = rec; + } + /* set old_offsets to offsets; recycle offsets */ { ulint* offs = old_offsets; @@ -2657,14 +2720,28 @@ } /* Check then the free list */ - for (rec = page_header_get_ptr(page, PAGE_FREE); - rec; - rec = page_rec_get_next_const(rec)) { + rec = page_header_get_ptr(page, PAGE_FREE); + + while (rec != NULL) { offsets = rec_get_offsets(rec, index, offsets, page_is_leaf(page), ULINT_UNDEFINED, &heap); if (UNIV_UNLIKELY(!page_rec_validate(rec, offsets))) { ret = FALSE; +next_free: + const ulint offs = rec_get_next_offs( + rec, page_is_comp(page)); + if (!offs) { + break; + } + if (UNIV_UNLIKELY(offs < PAGE_OLD_INFIMUM + || offs >= srv_page_size)) { + ib::error() << "Page free list is corrupted"; + ret = FALSE; + break; + } + + rec = page + offs; continue; } @@ -2675,7 +2752,7 @@ ib::error() << "Free record offset out of bounds: " << offs << '+' << i; ret = FALSE; - continue; + goto next_free; } while (i--) { if (UNIV_UNLIKELY(buf[offs + i])) { @@ -2686,6 +2763,8 @@ } buf[offs + i] = 1; } + + goto next_free; } if (UNIV_UNLIKELY(page_dir_get_n_heap(page) != count + 1)) { diff -Nru mariadb-10.3-10.3.17/storage/innobase/page/page0zip.cc mariadb-10.3-10.3.20/storage/innobase/page/page0zip.cc --- mariadb-10.3-10.3.17/storage/innobase/page/page0zip.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/page/page0zip.cc 2019-11-06 16:01:58.000000000 +0000 @@ -4369,10 +4369,6 @@ } else { ut_ad(!rec_offs_any_extern(offsets)); } - -#ifdef UNIV_ZIP_DEBUG - ut_a(page_zip_validate(page_zip, page, index)); -#endif /* UNIV_ZIP_DEBUG */ } /**********************************************************************//** diff -Nru mariadb-10.3-10.3.17/storage/innobase/que/que0que.cc mariadb-10.3-10.3.20/storage/innobase/que/que0que.cc --- mariadb-10.3-10.3.17/storage/innobase/que/que0que.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/que/que0que.cc 2019-11-06 16:01:58.000000000 +0000 @@ -684,11 +684,6 @@ trx->lock.wait_thr = thr; thr->state = QUE_THR_LOCK_WAIT; - } else if (trx->duplicates && trx->error_state == DB_DUPLICATE_KEY - && thd_rpl_stmt_based(trx->mysql_thd)) { - - return(FALSE); - } else if (trx->error_state != DB_SUCCESS && trx->error_state != DB_LOCK_WAIT) { diff -Nru mariadb-10.3-10.3.17/storage/innobase/rem/rem0rec.cc mariadb-10.3-10.3.20/storage/innobase/rem/rem0rec.cc --- mariadb-10.3-10.3.17/storage/innobase/rem/rem0rec.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/rem/rem0rec.cc 2019-11-06 16:01:58.000000000 +0000 @@ -600,6 +600,7 @@ break; case REC_STATUS_COLUMNS_ADDED: ut_ad(leaf); + ut_ad(index->is_instant()); rec_init_offsets_comp_ordinary(rec, index, offsets, index->n_core_fields, NULL, @@ -741,6 +742,10 @@ } if (i < rec_offs_n_fields(offsets)) { + ut_ad(index->is_instant() + || i + (index->id == DICT_INDEXES_ID) + == rec_offs_n_fields(offsets)); + offs = (rec_offs_base(offsets)[i] & REC_OFFS_MASK) | REC_OFFS_DEFAULT; diff -Nru mariadb-10.3-10.3.17/storage/innobase/row/row0import.cc mariadb-10.3-10.3.20/storage/innobase/row/row0import.cc --- mariadb-10.3-10.3.17/storage/innobase/row/row0import.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/row/row0import.cc 2019-11-06 16:01:58.000000000 +0000 @@ -2094,7 +2094,7 @@ DBUG_EXECUTE_IF("ib_import_before_checkpoint_crash", DBUG_SUICIDE();); - log_make_checkpoint_at(LSN_MAX); + log_make_checkpoint(); return(err); } diff -Nru mariadb-10.3-10.3.17/storage/innobase/row/row0ins.cc mariadb-10.3-10.3.20/storage/innobase/row/row0ins.cc --- mariadb-10.3-10.3.17/storage/innobase/row/row0ins.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/row/row0ins.cc 2019-11-06 16:01:58.000000000 +0000 @@ -74,7 +74,11 @@ ins_node_t* node; node = static_cast( - mem_heap_alloc(heap, sizeof(ins_node_t))); + mem_heap_zalloc(heap, sizeof(ins_node_t))); + + if (!node) { + return(NULL); + } node->common.type = QUE_NODE_INSERT; @@ -82,13 +86,6 @@ node->state = INS_NODE_SET_IX_LOCK; node->table = table; - node->index = NULL; - node->entry = NULL; - - node->select = NULL; - - node->trx_id = 0; - node->duplicate = NULL; node->entry_sys_heap = mem_heap_create(128); @@ -193,7 +190,6 @@ node->state = INS_NODE_SET_IX_LOCK; node->index = NULL; node->entry = NULL; - node->duplicate = NULL; node->row = row; @@ -878,8 +874,12 @@ fk_str = dict_print_info_on_foreign_key_in_create_format(trx, foreign, TRUE); fputs(fk_str.c_str(), ef); - fprintf(ef, " in parent table, in index %s", - foreign->foreign_index->name()); + if (foreign->foreign_index) { + fprintf(ef, " in parent table, in index %s", + foreign->foreign_index->name()); + } else { + fputs(" in parent table", ef); + } if (entry) { fputs(" tuple:\n", ef); /* TODO: DB_TRX_ID and DB_ROLL_PTR may be uninitialized. @@ -1660,34 +1660,51 @@ || !check_table->is_readable() || check_index == NULL) { - if (!srv_read_only_mode && check_ref) { - FILE* ef = dict_foreign_err_file; - std::string fk_str; - - row_ins_set_detailed(trx, foreign); - - row_ins_foreign_trx_print(trx); - - fputs("Foreign key constraint fails for table ", ef); - ut_print_name(ef, trx, - foreign->foreign_table_name); - fputs(":\n", ef); - fk_str = dict_print_info_on_foreign_key_in_create_format( - trx, foreign, TRUE); - fputs(fk_str.c_str(), ef); - fprintf(ef, "\nTrying to add to index %s tuple:\n", - foreign->foreign_index->name()); + FILE* ef = dict_foreign_err_file; + std::string fk_str; + + row_ins_set_detailed(trx, foreign); + row_ins_foreign_trx_print(trx); + + fputs("Foreign key constraint fails for table ", ef); + ut_print_name(ef, trx, check_ref + ? foreign->foreign_table_name + : foreign->referenced_table_name); + fputs(":\n", ef); + fk_str = dict_print_info_on_foreign_key_in_create_format( + trx, foreign, TRUE); + fputs(fk_str.c_str(), ef); + if (check_ref) { + if (foreign->foreign_index) { + fprintf(ef, "\nTrying to add to index %s" + " tuple:\n", + foreign->foreign_index->name()); + } else { + fputs("\nTrying to add tuple:\n", ef); + } dtuple_print(ef, entry); fputs("\nBut the parent table ", ef); - ut_print_name(ef, trx, - foreign->referenced_table_name); - fputs("\nor its .ibd file does" + ut_print_name(ef, trx, foreign->referenced_table_name); + fputs("\nor its .ibd file or the required index does" " not currently exist!\n", ef); - mutex_exit(&dict_foreign_err_mutex); - err = DB_NO_REFERENCED_ROW; + } else { + if (foreign->referenced_index) { + fprintf(ef, "\nTrying to modify index %s" + " tuple:\n", + foreign->referenced_index->name()); + } else { + fputs("\nTrying to modify tuple:\n", ef); + } + dtuple_print(ef, entry); + fputs("\nBut the referencing table ", ef); + ut_print_name(ef, trx, foreign->foreign_table_name); + fputs("\nor its .ibd file or the required index does" + " not currently exist!\n", ef); + err = DB_ROW_IS_REFERENCED; } + mutex_exit(&dict_foreign_err_mutex); goto exit_func; } @@ -1969,6 +1986,7 @@ /*==============================*/ dict_table_t* table, /*!< in: table */ dict_index_t* index, /*!< in: index */ + bool pk, /*!< in: index->is_primary() */ dtuple_t* entry, /*!< in: index entry for index */ que_thr_t* thr) /*!< in: query thread */ { @@ -1977,6 +1995,8 @@ trx_t* trx; ibool got_s_lock = FALSE; + DBUG_ASSERT(index->is_primary() == pk); + trx = thr_get_trx(thr); DEBUG_SYNC_C_IF_THD(thr_get_trx(thr)->mysql_thd, @@ -1988,7 +2008,8 @@ foreign = *it; - if (foreign->foreign_index == index) { + if (foreign->foreign_index == index + || (pk && !foreign->foreign_index)) { dict_table_t* ref_table = NULL; dict_table_t* referenced_table = foreign->referenced_table; @@ -2362,12 +2383,6 @@ true, ULINT_UNDEFINED, &heap); - ulint lock_type = - trx->isolation_level <= TRX_ISO_READ_COMMITTED - || (trx->mysql_thd - && !thd_rpl_stmt_based(trx->mysql_thd)) - ? LOCK_REC_NOT_GAP : LOCK_ORDINARY; - /* We set a lock on the possible duplicate: this is needed in logical logging of MySQL to make sure that in roll-forward we get the same duplicate @@ -2384,13 +2399,13 @@ INSERT ON DUPLICATE KEY UPDATE). */ err = row_ins_set_exclusive_rec_lock( - lock_type, + LOCK_REC_NOT_GAP, btr_cur_get_block(cursor), rec, cursor->index, offsets, thr); } else { err = row_ins_set_shared_rec_lock( - lock_type, + LOCK_REC_NOT_GAP, btr_cur_get_block(cursor), rec, cursor->index, offsets, thr); } @@ -2405,7 +2420,10 @@ if (row_ins_dupl_error_with_rec( rec, entry, cursor->index, offsets)) { - goto duplicate; +duplicate: + trx->error_info = cursor->index; + err = DB_DUPLICATE_KEY; + goto func_exit; } } } @@ -2448,10 +2466,7 @@ if (row_ins_dupl_error_with_rec( rec, entry, cursor->index, offsets)) { -duplicate: - trx->error_info = cursor->index; - err = DB_DUPLICATE_KEY; - goto func_exit; + goto duplicate; } } @@ -2578,10 +2593,7 @@ ulint n_uniq, /*!< in: 0 or index->n_uniq */ dtuple_t* entry, /*!< in/out: index entry to insert */ ulint n_ext, /*!< in: number of externally stored columns */ - que_thr_t* thr, /*!< in: query thread */ - bool dup_chk_only) - /*!< in: if true, just do duplicate check - and return. don't execute actual insert. */ + que_thr_t* thr) /*!< in: query thread */ { btr_pcur_t pcur; btr_cur_t* cursor; @@ -2670,7 +2682,6 @@ ut_ad(flags == BTR_NO_LOCKING_FLAG); ut_ad(index->is_instant()); ut_ad(!dict_index_is_online_ddl(index)); - ut_ad(!dup_chk_only); const rec_t* rec = btr_cur_get_rec(cursor); @@ -2736,11 +2747,6 @@ } } - if (dup_chk_only) { - mtr_commit(&mtr); - goto func_exit; - } - /* Note: Allowing duplicates would qualify for modification of an existing record as the new entry is exactly same as old entry. */ if (row_ins_must_modify_rec(cursor)) { @@ -2902,10 +2908,7 @@ dtuple_t* entry, /*!< in/out: index entry to insert */ trx_id_t trx_id, /*!< in: PAGE_MAX_TRX_ID during row_log_table_apply(), or 0 */ - que_thr_t* thr, /*!< in: query thread */ - bool dup_chk_only) - /*!< in: if true, just do duplicate check - and return. don't execute actual insert. */ + que_thr_t* thr) /*!< in: query thread */ { DBUG_ENTER("row_ins_sec_index_entry_low"); @@ -3102,50 +3105,6 @@ &cursor, 0, __FILE__, __LINE__, &mtr); } - if (!(flags & BTR_NO_LOCKING_FLAG) - && dict_index_is_unique(index) - && thr_get_trx(thr)->duplicates - && thr_get_trx(thr)->isolation_level >= TRX_ISO_REPEATABLE_READ - && thd_rpl_stmt_based(thr_get_trx(thr)->mysql_thd)) { - - /* In statement-based replication, when replicating a - REPLACE statement or ON DUPLICATE KEY UPDATE clause, a - gap lock is taken on the position of the to-be-inserted record, - to avoid other concurrent transactions from inserting the same - record. */ - - dberr_t err; - const rec_t* rec = page_rec_get_next_const( - btr_cur_get_rec(&cursor)); - - ut_ad(!page_rec_is_infimum(rec)); - - offsets = rec_get_offsets(rec, index, offsets, true, - ULINT_UNDEFINED, &offsets_heap); - - err = row_ins_set_exclusive_rec_lock( - LOCK_GAP, btr_cur_get_block(&cursor), rec, - index, offsets, thr); - - switch (err) { - case DB_SUCCESS: - case DB_SUCCESS_LOCKED_REC: - if (thr_get_trx(thr)->error_state != DB_DUPLICATE_KEY) { - break; - } - /* Fall through (skip actual insert) after we have - successfully acquired the gap lock. */ - default: - goto func_exit; - } - } - - ut_ad(thr_get_trx(thr)->error_state == DB_SUCCESS); - - if (dup_chk_only) { - goto func_exit; - } - if (row_ins_must_modify_rec(&cursor)) { /* There is already an index entry with a long enough common prefix, we must convert the insert into a modify of an @@ -3234,10 +3193,7 @@ dict_index_t* index, /*!< in: clustered index */ dtuple_t* entry, /*!< in/out: index entry to insert */ que_thr_t* thr, /*!< in: query thread */ - ulint n_ext, /*!< in: number of externally stored columns */ - bool dup_chk_only) - /*!< in: if true, just do duplicate check - and return. don't execute actual insert. */ + ulint n_ext) /*!< in: number of externally stored columns */ { dberr_t err; ulint n_uniq; @@ -3246,7 +3202,7 @@ if (!index->table->foreign_set.empty()) { err = row_ins_check_foreign_constraints( - index->table, index, entry, thr); + index->table, index, true, entry, thr); if (err != DB_SUCCESS) { DBUG_RETURN(err); @@ -3276,7 +3232,7 @@ err = row_ins_clust_index_entry_low( flags, BTR_MODIFY_LEAF, index, n_uniq, entry, - n_ext, thr, dup_chk_only); + n_ext, thr); entry->n_fields = orig_n_fields; @@ -3293,7 +3249,7 @@ err = row_ins_clust_index_entry_low( flags, BTR_MODIFY_TREE, index, n_uniq, entry, - n_ext, thr, dup_chk_only); + n_ext, thr); entry->n_fields = orig_n_fields; @@ -3312,9 +3268,8 @@ dict_index_t* index, /*!< in: secondary index */ dtuple_t* entry, /*!< in/out: index entry to insert */ que_thr_t* thr, /*!< in: query thread */ - bool dup_chk_only) - /*!< in: if true, just do duplicate check - and return. don't execute actual insert. */ + bool check_foreign) /*!< in: true if check + foreign table is needed, false otherwise */ { dberr_t err; mem_heap_t* offsets_heap; @@ -3325,9 +3280,9 @@ DBUG_SET("-d,row_ins_sec_index_entry_timeout"); return(DB_LOCK_WAIT);}); - if (!index->table->foreign_set.empty()) { + if (check_foreign && !index->table->foreign_set.empty()) { err = row_ins_check_foreign_constraints(index->table, index, - entry, thr); + false, entry, thr); if (err != DB_SUCCESS) { return(err); @@ -3357,7 +3312,7 @@ err = row_ins_sec_index_entry_low( flags, BTR_MODIFY_LEAF, index, offsets_heap, heap, entry, - trx_id, thr, dup_chk_only); + trx_id, thr); if (err == DB_FAIL) { mem_heap_empty(heap); @@ -3371,8 +3326,7 @@ err = row_ins_sec_index_entry_low( flags, BTR_MODIFY_TREE, index, - offsets_heap, heap, entry, 0, thr, - dup_chk_only); + offsets_heap, heap, entry, 0, thr); } mem_heap_free(heap); @@ -3401,9 +3355,9 @@ return(DB_LOCK_WAIT);}); if (index->is_primary()) { - return(row_ins_clust_index_entry(index, entry, thr, 0, false)); + return row_ins_clust_index_entry(index, entry, thr, 0); } else { - return(row_ins_sec_index_entry(index, entry, thr, false)); + return row_ins_sec_index_entry(index, entry, thr); } } @@ -3664,13 +3618,6 @@ DBUG_PRINT("row_ins", ("table: %s", node->table->name.m_name)); - trx_t* trx = thr_get_trx(thr); - - if (node->duplicate) { - ut_ad(thd_rpl_stmt_based(trx->mysql_thd)); - trx->error_state = DB_DUPLICATE_KEY; - } - if (node->state == INS_NODE_ALLOC_ROW_ID) { row_ins_alloc_row_id_step(node); @@ -3696,91 +3643,7 @@ if (node->index->type != DICT_FTS) { dberr_t err = row_ins_index_entry_step(node, thr); - switch (err) { - case DB_SUCCESS: - break; - case DB_NO_REFERENCED_ROW: - if (!dict_index_is_unique(node->index)) { - DBUG_RETURN(err); - } - /* fall through */ - case DB_DUPLICATE_KEY: - ut_ad(dict_index_is_unique(node->index)); - - if (trx->isolation_level - >= TRX_ISO_REPEATABLE_READ - && trx->duplicates - && !node->table->is_temporary() - && thd_rpl_stmt_based(trx->mysql_thd)) { - - /* When we are in REPLACE statement or - INSERT .. ON DUPLICATE UPDATE - statement, we process all the - unique secondary indexes, even after we - encounter a duplicate error. This is - done to take necessary gap locks in - secondary indexes to block concurrent - transactions from inserting the - searched records. */ - if (err == DB_NO_REFERENCED_ROW - && node->duplicate) { - /* A foreign key check on a - unique index may fail to - find the record. - - Consider as a example - following: - create table child(a int not null - primary key, b int not null, - c int, - unique key (b), - foreign key (b) references - parent (id)) engine=innodb; - - insert into child values - (1,1,2); - - insert into child(a) values - (1) on duplicate key update - c = 3; - - Now primary key value 1 - naturally causes duplicate - key error that will be - stored on node->duplicate. - If there was no duplicate - key error, we should return - the actual no referenced - row error. - - As value for - column b used in both unique - key and foreign key is not - provided, server uses 0 as a - search value. This is - naturally, not found leading - to DB_NO_REFERENCED_ROW. - But, we should update the - row with primay key value 1 - anyway. - - Return the - original DB_DUPLICATE_KEY - error after - placing all gaplocks. */ - err = DB_DUPLICATE_KEY; - break; - } else if (!node->duplicate) { - /* Save 1st dup error. Ignore - subsequent dup errors. */ - node->duplicate = node->index; - trx->error_state - = DB_DUPLICATE_KEY; - } - break; - } - // fall through - default: + if (err != DB_SUCCESS) { DBUG_RETURN(err); } } @@ -3797,31 +3660,13 @@ node->index = dict_table_get_next_index(node->index); node->entry = UT_LIST_GET_NEXT(tuple_list, node->entry); } - - /* After encountering a duplicate key error, we process - remaining indexes just to place gap locks and no actual - insertion will take place. These gap locks are needed - only for unique indexes. So skipping non-unique indexes. */ - if (node->duplicate) { - ut_ad(thd_rpl_stmt_based(trx->mysql_thd)); - while (node->index - && !dict_index_is_unique(node->index)) { - - node->index = dict_table_get_next_index( - node->index); - node->entry = UT_LIST_GET_NEXT(tuple_list, - node->entry); - } - trx->error_state = DB_DUPLICATE_KEY; - } } ut_ad(node->entry == NULL); - trx->error_info = node->duplicate; node->state = INS_NODE_ALLOC_ROW_ID; - DBUG_RETURN(node->duplicate ? DB_DUPLICATE_KEY : DB_SUCCESS); + DBUG_RETURN(DB_SUCCESS); } /***********************************************************//** diff -Nru mariadb-10.3-10.3.17/storage/innobase/row/row0log.cc mariadb-10.3-10.3.20/storage/innobase/row/row0log.cc --- mariadb-10.3-10.3.17/storage/innobase/row/row0log.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/row/row0log.cc 2019-11-06 16:01:58.000000000 +0000 @@ -1003,7 +1003,7 @@ extra_size = rec_extra_size + is_instant; unsigned fake_extra_size = 0; - byte fake_extra_buf[2]; + byte fake_extra_buf[3]; if (is_instant && UNIV_UNLIKELY(!index->is_instant())) { /* The source table was emptied after ALTER TABLE started, and it was converted to non-instant format. @@ -1015,9 +1015,9 @@ fake_extra_size = rec_get_n_add_field_len(n_add); ut_ad(fake_extra_size == 1 || fake_extra_size == 2); extra_size += fake_extra_size; - byte* fake_extra = fake_extra_buf + fake_extra_size - 1; + byte* fake_extra = fake_extra_buf + fake_extra_size; rec_set_n_add_field(fake_extra, n_add); - ut_ad(fake_extra + 1 == fake_extra_buf); + ut_ad(fake_extra == fake_extra_buf); } mrec_size = ROW_LOG_HEADER_SIZE @@ -1076,7 +1076,7 @@ memcpy(b, rec - rec_extra_size - omit_size, rec_extra_size); b += rec_extra_size; - memcpy(b, fake_extra_buf, fake_extra_size); + memcpy(b, fake_extra_buf + 1, fake_extra_size); b += fake_extra_size; ulint len; ulint trx_id_offs = rec_get_nth_field_offs( @@ -1717,7 +1717,7 @@ error = row_ins_clust_index_entry_low( flags, BTR_MODIFY_TREE, index, index->n_uniq, - entry, 0, thr, false); + entry, 0, thr); switch (error) { case DB_SUCCESS: @@ -1741,7 +1741,7 @@ error = row_ins_sec_index_entry_low( flags, BTR_MODIFY_TREE, index, offsets_heap, heap, entry, - thr_get_trx(thr)->id, thr, false); + thr_get_trx(thr)->id, thr); if (error != DB_SUCCESS) { if (error == DB_DUPLICATE_KEY) { @@ -1790,6 +1790,7 @@ break; default: ut_ad(0); + /* fall through */ case DB_INVALID_NULL: ut_ad(row == NULL); return(error); @@ -2078,6 +2079,7 @@ break; default: ut_ad(0); + /* fall through */ case DB_INVALID_NULL: ut_ad(row == NULL); return(error); @@ -2371,7 +2373,7 @@ BTR_CREATE_FLAG | BTR_NO_LOCKING_FLAG | BTR_NO_UNDO_LOG_FLAG | BTR_KEEP_SYS_FLAG, BTR_MODIFY_TREE, index, offsets_heap, heap, - entry, thr_get_trx(thr)->id, thr, false); + entry, thr_get_trx(thr)->id, thr); /* Report correct index name for duplicate key error. */ if (error == DB_DUPLICATE_KEY) { diff -Nru mariadb-10.3-10.3.17/storage/innobase/row/row0merge.cc mariadb-10.3-10.3.20/storage/innobase/row/row0merge.cc --- mariadb-10.3-10.3.17/storage/innobase/row/row0merge.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/row/row0merge.cc 2019-11-06 16:01:58.000000000 +0000 @@ -2697,7 +2697,7 @@ buf, fts_index, old_table, new_table, psort_info, row, ext, &doc_id, conv_heap, - &err, &v_heap, table, trx)))) { + &err, &v_heap, eval_table, trx)))) { /* An empty buffer should have enough room for at least one record. */ ut_error; diff -Nru mariadb-10.3-10.3.17/storage/innobase/row/row0mysql.cc mariadb-10.3-10.3.20/storage/innobase/row/row0mysql.cc --- mariadb-10.3-10.3.17/storage/innobase/row/row0mysql.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/row/row0mysql.cc 2019-11-06 16:01:58.000000000 +0000 @@ -1418,11 +1418,13 @@ &blob_heap); if (ins_mode != ROW_INS_NORMAL) { +#ifndef DBUG_OFF ut_ad(table->vers_start != table->vers_end); const mysql_row_templ_t* t = prebuilt->get_template_by_col(table->vers_end); ut_ad(t); ut_ad(t->mysql_col_len == 8); +#endif if (ins_mode == ROW_INS_HISTORICAL) { set_tuple_col_8(node->row, table->vers_end, trx->id, @@ -1430,9 +1432,11 @@ } else /* ROW_INS_VERSIONED */ { set_tuple_col_8(node->row, table->vers_end, TRX_ID_MAX, node->vers_end_buf); +#ifndef DBUG_OFF t = prebuilt->get_template_by_col(table->vers_start); ut_ad(t); ut_ad(t->mysql_col_len == 8); +#endif set_tuple_col_8(node->row, table->vers_start, trx->id, node->vers_start_buf); } @@ -1479,7 +1483,6 @@ goto run_again; } - node->duplicate = NULL; trx->op_info = ""; if (blob_heap != NULL) { @@ -1489,8 +1492,6 @@ return(err); } - node->duplicate = NULL; - if (dict_table_has_fts_index(table)) { doc_id_t doc_id; @@ -2153,7 +2154,9 @@ @return DB_SUCCESS or some error */ static dberr_t row_update_vers_insert(que_thr_t* thr, upd_node_t* node) { - const trx_t* trx = thr_get_trx(thr); + trx_t* trx = thr_get_trx(thr); + dfield_t* row_end; + char row_end_data[8]; dict_table_t* table = node->table; ut_ad(table->versioned()); @@ -2164,10 +2167,15 @@ ins_node_t* insert_node = ins_node_create(INS_DIRECT, table, node->historical_heap); + if (!insert_node) { + trx->error_state = DB_OUT_OF_MEMORY; + goto exit; + } + + insert_node->common.parent = thr; ins_node_set_new_row(insert_node, row); - dfield_t* row_end = dtuple_get_nth_field(row, table->vers_end); - char row_end_data[8]; + row_end = dtuple_get_nth_field(row, table->vers_end); if (dict_table_get_nth_col(table, table->vers_end)->vers_native()) { mach_write_to_8(row_end_data, trx->id); dfield_set_data(row_end, row_end_data, 8); @@ -2205,6 +2213,7 @@ } } exit: + que_graph_free_recursive(insert_node); mem_heap_free(node->historical_heap); node->historical_heap = NULL; return trx->error_state; @@ -2571,10 +2580,10 @@ } else { dict_build_index_def(table, index, trx); - /* add index to dictionary cache and also free index object. */ - index = dict_index_add_to_cache( - index, FIL_NULL, trx_is_strict(trx), &err); - if (index) { + err = dict_index_add_to_cache( + index, FIL_NULL, trx_is_strict(trx)); + ut_ad((index == NULL) == (err != DB_SUCCESS)); + if (UNIV_LIKELY(err == DB_SUCCESS)) { ut_ad(!index->is_instant()); index->n_core_null_bytes = UT_BITS_IN_BYTES( unsigned(index->n_nullable)); @@ -2768,7 +2777,7 @@ btr_pcur_store_position(&pcur, &mtr); btr_pcur_commit_specify_mtr(&pcur, &mtr); - if (dict_load_table(table_name, true, + if (dict_load_table(table_name, DICT_ERR_IGNORE_DROP)) { row_drop_table_for_mysql(table_name, trx, SQLCOM_DROP_TABLE); @@ -2892,7 +2901,7 @@ dict_table_t* table; table = dict_table_open_on_name( - name, TRUE, FALSE, DICT_ERR_IGNORE_NONE); + name, TRUE, FALSE, DICT_ERR_IGNORE_FK_NOKEY); if (table) { dict_stats_wait_bg_to_stop_using_table(table, trx); @@ -3237,10 +3246,9 @@ DICT_TF2_FTS flag set. So keep this out of above dict_table_has_fts_index condition */ if (table->fts != NULL) { - /* Need to set TABLE_DICT_LOCKED bit, since - fts_que_graph_free_check_lock would try to acquire + /* fts_que_graph_free_check_lock would try to acquire dict mutex lock */ - table->fts->fts_status |= TABLE_DICT_LOCKED; + table->fts->dict_locked = true; fts_free(table); } @@ -3270,7 +3278,7 @@ dict_table_remove_from_cache(table); - if (dict_load_table(tablename, true, DICT_ERR_IGNORE_NONE)) { + if (dict_load_table(tablename, DICT_ERR_IGNORE_FK_NOKEY)) { ib::error() << "Not able to remove table " << ut_get_name(trx, tablename) << " from the dictionary cache!"; @@ -4184,7 +4192,7 @@ dict_locked = trx->dict_operation_lock_mode == RW_X_LATCH; table = dict_table_open_on_name(old_name, dict_locked, FALSE, - DICT_ERR_IGNORE_NONE); + DICT_ERR_IGNORE_FK_NOKEY); /* We look for pattern #P# to see if the table is partitioned MySQL table. */ @@ -4232,7 +4240,7 @@ par_case_name, old_name, FALSE); #endif table = dict_table_open_on_name(par_case_name, dict_locked, FALSE, - DICT_ERR_IGNORE_NONE); + DICT_ERR_IGNORE_FK_NOKEY); } if (!table) { @@ -4591,7 +4599,7 @@ dict_mem_table_fill_foreign_vcol_set(table); while (!fk_tables.empty()) { - dict_load_table(fk_tables.front(), true, + dict_load_table(fk_tables.front(), DICT_ERR_IGNORE_NONE); fk_tables.pop_front(); } diff -Nru mariadb-10.3-10.3.17/storage/innobase/row/row0purge.cc mariadb-10.3-10.3.20/storage/innobase/row/row0purge.cc --- mariadb-10.3-10.3.17/storage/innobase/row/row0purge.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/row/row0purge.cc 2019-11-06 16:01:58.000000000 +0000 @@ -46,6 +46,7 @@ #include "handler.h" #include "ha_innodb.h" #include "fil0fil.h" +#include "debug_sync.h" /************************************************************************* IMPORTANT NOTE: Any operation that generates redo MUST check that there @@ -1306,6 +1307,26 @@ node->start(); +#ifdef UNIV_DEBUG + srv_slot_t *slot = thr->thread_slot; + ut_ad(slot); + + rw_lock_x_lock(&slot->debug_sync_lock); + while (UT_LIST_GET_LEN(slot->debug_sync)) { + srv_slot_t::debug_sync_t *sync = + UT_LIST_GET_FIRST(slot->debug_sync); + const char* sync_str = reinterpret_cast(&sync[1]); + bool result = debug_sync_set_action(current_thd, + sync_str, + strlen(sync_str)); + ut_a(!result); + + UT_LIST_REMOVE(slot->debug_sync, sync); + ut_free(sync); + } + rw_lock_x_unlock(&slot->debug_sync_lock); +#endif + if (!(node->undo_recs == NULL || ib_vector_is_empty(node->undo_recs))) { trx_purge_rec_t*purge_rec; diff -Nru mariadb-10.3-10.3.17/storage/innobase/row/row0sel.cc mariadb-10.3-10.3.20/storage/innobase/row/row0sel.cc --- mariadb-10.3-10.3.17/storage/innobase/row/row0sel.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/row/row0sel.cc 2019-11-06 16:01:58.000000000 +0000 @@ -3240,14 +3240,29 @@ return(err); } +/** Helper class to cache clust_rec and old_ver */ +class Row_sel_get_clust_rec_for_mysql +{ + const rec_t *cached_clust_rec; + rec_t *cached_old_vers; + +public: + Row_sel_get_clust_rec_for_mysql() : + cached_clust_rec(NULL), cached_old_vers(NULL) {} + + dberr_t operator()(row_prebuilt_t *prebuilt, dict_index_t *sec_index, + const rec_t *rec, que_thr_t *thr, const rec_t **out_rec, + ulint **offsets, mem_heap_t **offset_heap, + dtuple_t **vrow, mtr_t *mtr); +}; + /*********************************************************************//** Retrieves the clustered index record corresponding to a record in a non-clustered index. Does the necessary locking. Used in the MySQL interface. @return DB_SUCCESS, DB_SUCCESS_LOCKED_REC, or error code */ -static MY_ATTRIBUTE((warn_unused_result)) dberr_t -row_sel_get_clust_rec_for_mysql( +Row_sel_get_clust_rec_for_mysql::operator()( /*============================*/ row_prebuilt_t* prebuilt,/*!< in: prebuilt struct in the handle */ dict_index_t* sec_index,/*!< in: secondary index where rec resides */ @@ -3439,15 +3454,36 @@ clust_rec, clust_index, *offsets, &trx->read_view)) { - /* The following call returns 'offsets' associated with - 'old_vers' */ - err = row_sel_build_prev_vers_for_mysql( - &trx->read_view, clust_index, prebuilt, - clust_rec, offsets, offset_heap, &old_vers, - vrow, mtr); + if (clust_rec != cached_clust_rec) { + /* The following call returns 'offsets' associated with + 'old_vers' */ + err = row_sel_build_prev_vers_for_mysql( + &trx->read_view, clust_index, prebuilt, + clust_rec, offsets, offset_heap, &old_vers, + vrow, mtr); - if (err != DB_SUCCESS || old_vers == NULL) { + if (err != DB_SUCCESS) { + goto err_exit; + } + cached_clust_rec = clust_rec; + cached_old_vers = old_vers; + } else { + err = DB_SUCCESS; + old_vers = cached_old_vers; + + /* The offsets need not be same for the latest + version of clust_rec and its old version + old_vers. Re-calculate the offsets for old_vers. */ + + if (old_vers != NULL) { + *offsets = rec_get_offsets( + old_vers, clust_index, *offsets, + true, ULINT_UNDEFINED, offset_heap); + } + } + + if (old_vers == NULL) { goto err_exit; } @@ -4178,6 +4214,7 @@ dtuple_t* vrow = NULL; const rec_t* result_rec = NULL; const rec_t* clust_rec; + Row_sel_get_clust_rec_for_mysql row_sel_get_clust_rec_for_mysql; dberr_t err = DB_SUCCESS; ibool unique_search = FALSE; ibool mtr_has_extra_clust_latch = FALSE; @@ -4605,7 +4642,7 @@ if (err != DB_SUCCESS) { rec = NULL; - goto lock_wait_or_error; + goto page_read_error; } pcur->trx_if_known = trx; @@ -4659,7 +4696,7 @@ index->table->file_unreadable = true; } rec = NULL; - goto lock_wait_or_error; + goto page_read_error; } } @@ -4680,7 +4717,7 @@ if (!index->table->is_readable()) { err = DB_DECRYPTION_FAILED; - goto lock_wait_or_error; + goto page_read_error; } ut_ad(!!page_rec_is_comp(rec) == comp); @@ -4787,7 +4824,7 @@ ut_ad(0); err = DB_CORRUPTION; - goto lock_wait_or_error; + goto page_read_error; } else { /* The user may be dumping a corrupt table. Jump over the corruption to recover as much as possible. */ @@ -5608,6 +5645,10 @@ goto normal_return; lock_wait_or_error: + if (!dict_index_is_spatial(index)) { + btr_pcur_store_position(pcur, &mtr); + } +page_read_error: /* Reset the old and new "did semi-consistent read" flags. */ if (UNIV_UNLIKELY(prebuilt->row_read_type == ROW_READ_DID_SEMI_CONSISTENT)) { @@ -5615,13 +5656,6 @@ } did_semi_consistent_read = FALSE; - /*-------------------------------------------------------------*/ - if (!dict_index_is_spatial(index)) { - if (rec) { - btr_pcur_store_position(pcur, &mtr); - } - } - lock_table_wait: mtr.commit(); mtr_has_extra_clust_latch = FALSE; diff -Nru mariadb-10.3-10.3.17/storage/innobase/row/row0trunc.cc mariadb-10.3-10.3.20/storage/innobase/row/row0trunc.cc --- mariadb-10.3-10.3.17/storage/innobase/row/row0trunc.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/row/row0trunc.cc 2019-11-06 16:01:58.000000000 +0000 @@ -1189,7 +1189,7 @@ if (err == DB_SUCCESS && s_tables.size() > 0) { - log_make_checkpoint_at(LSN_MAX); + log_make_checkpoint(); } for (ulint i = 0; i < s_tables.size(); ++i) { diff -Nru mariadb-10.3-10.3.17/storage/innobase/row/row0uins.cc mariadb-10.3-10.3.20/storage/innobase/row/row0uins.cc --- mariadb-10.3-10.3.17/storage/innobase/row/row0uins.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/row/row0uins.cc 2019-11-06 16:01:58.000000000 +0000 @@ -1,7 +1,7 @@ /***************************************************************************** Copyright (c) 1997, 2017, Oracle and/or its affiliates. All Rights Reserved. -Copyright (c) 2017, 2018, MariaDB Corporation. +Copyright (c) 2017, 2019, MariaDB Corporation. 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 @@ -267,10 +267,8 @@ que_thr_t* thr) /*!< in: query thread */ { btr_pcur_t pcur; - btr_cur_t* btr_cur; dberr_t err = DB_SUCCESS; mtr_t mtr; - enum row_search_result search_result; const bool modify_leaf = mode == BTR_MODIFY_LEAF; row_mtr_start(&mtr, index, !modify_leaf); @@ -295,12 +293,15 @@ mode |= BTR_RTREE_UNDO_INS; } - search_result = row_search_index_entry(index, entry, mode, - &pcur, &mtr); - - switch (search_result) { + switch (row_search_index_entry(index, entry, mode, &pcur, &mtr)) { + case ROW_BUFFERED: + case ROW_NOT_DELETED_REF: + /* These are invalid outcomes, because the mode passed + to row_search_index_entry() did not include any of the + flags BTR_INSERT, BTR_DELETE, or BTR_DELETE_MARK. */ + ut_error; case ROW_NOT_FOUND: - goto func_exit; + break; case ROW_FOUND: if (dict_index_is_spatial(index) && rec_get_deleted_flag( @@ -310,31 +311,22 @@ << " is deleted marked on insert rollback."; ut_ad(0); } - break; - case ROW_BUFFERED: - case ROW_NOT_DELETED_REF: - /* These are invalid outcomes, because the mode passed - to row_search_index_entry() did not include any of the - flags BTR_INSERT, BTR_DELETE, or BTR_DELETE_MARK. */ - ut_error; - } - - btr_cur = btr_pcur_get_btr_cur(&pcur); + btr_cur_t* btr_cur = btr_pcur_get_btr_cur(&pcur); - if (modify_leaf) { - err = btr_cur_optimistic_delete(btr_cur, 0, &mtr) - ? DB_SUCCESS : DB_FAIL; - } else { - /* Passing rollback=false here, because we are - deleting a secondary index record: the distinction - only matters when deleting a record that contains - externally stored columns. */ - ut_ad(!dict_index_is_clust(index)); - btr_cur_pessimistic_delete(&err, FALSE, btr_cur, 0, - false, &mtr); + if (modify_leaf) { + err = btr_cur_optimistic_delete(btr_cur, 0, &mtr) + ? DB_SUCCESS : DB_FAIL; + } else { + /* Passing rollback=false here, because we are + deleting a secondary index record: the distinction + only matters when deleting a record that contains + externally stored columns. */ + btr_cur_pessimistic_delete(&err, FALSE, btr_cur, 0, + false, &mtr); + } } -func_exit: + btr_pcur_close(&pcur); func_exit_no_pcur: mtr_commit(&mtr); @@ -583,6 +575,7 @@ switch (node->rec_type) { default: ut_ad(!"wrong undo record type"); + /* fall through */ case TRX_UNDO_INSERT_REC: /* Skip the clustered index (the first index) */ node->index = dict_table_get_next_index(node->index); diff -Nru mariadb-10.3-10.3.17/storage/innobase/row/row0upd.cc mariadb-10.3-10.3.20/storage/innobase/row/row0upd.cc --- mariadb-10.3-10.3.17/storage/innobase/row/row0upd.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/row/row0upd.cc 2019-11-06 16:01:58.000000000 +0000 @@ -1049,22 +1049,21 @@ TABLE* mysql_table, dberr_t* error) { - upd_field_t* upd_field; ulint len; upd_t* update; ulint n_diff; ulint trx_id_pos; - ulint i; ulint offsets_[REC_OFFS_NORMAL_SIZE]; - ulint n_fld = dtuple_get_n_fields(entry); - ulint n_v_fld = dtuple_get_n_v_fields(entry); + const ulint n_v_fld = dtuple_get_n_v_fields(entry); rec_offs_init(offsets_); /* This function is used only for a clustered index */ ut_a(dict_index_is_clust(index)); ut_ad(!index->table->skip_alter_undo); + ut_ad(entry->n_fields <= index->n_fields); + ut_ad(entry->n_fields >= index->n_core_fields); - update = upd_create(n_fld + n_v_fld, heap); + update = upd_create(index->n_fields + n_v_fld, heap); n_diff = 0; @@ -1079,7 +1078,7 @@ ut_ad(rec_offs_validate(rec, index, offsets)); } - for (i = 0; i < n_fld; i++) { + for (ulint i = 0; i < entry->n_fields; i++) { const byte* data = rec_get_nth_cfield(rec, index, offsets, i, &len); const dfield_t* dfield = dtuple_get_nth_field(entry, i); @@ -1101,17 +1100,22 @@ if (!dfield_is_ext(dfield) != !rec_offs_nth_extern(offsets, i) || !dfield_data_is_binary_equal(dfield, len, data)) { - - upd_field = upd_get_nth_field(update, n_diff); - - dfield_copy(&(upd_field->new_val), dfield); - - upd_field_set_field_no(upd_field, i, index); - - n_diff++; + upd_field_t* uf = upd_get_nth_field(update, n_diff++); + dfield_copy(&uf->new_val, dfield); + upd_field_set_field_no(uf, i, index); } } + for (ulint i = entry->n_fields; i < index->n_fields; i++) { + upd_field_t* uf = upd_get_nth_field(update, n_diff++); + const dict_col_t* col = dict_index_get_nth_col(index, i); + /* upd_create() zero-initialized uf */ + uf->new_val.data = const_cast(col->instant_value(&len)); + uf->new_val.len = static_cast(len); + dict_col_copy_type(col, &uf->new_val.type); + upd_field_set_field_no(uf, i, index); + } + /* Check the virtual columns updates. Even if there is no non-virtual column (base columns) change, we will still need to build the indexed virtual column value so that undo log would log them ( @@ -1136,7 +1140,7 @@ &mysql_table, &record, &vcol_storage); - for (i = 0; i < n_v_fld; i++) { + for (ulint i = 0; i < n_v_fld; i++) { const dict_v_col_t* col = dict_table_get_nth_v_col(index->table, i); @@ -1164,24 +1168,16 @@ entry, i); if (!dfield_data_is_binary_equal( - dfield, vfield->len, - static_cast(vfield->data))) { - upd_field = upd_get_nth_field(update, n_diff); - - upd_field->old_v_val = static_cast( - mem_heap_alloc( - heap, - sizeof *upd_field->old_v_val)); - - dfield_copy(upd_field->old_v_val, vfield); - - dfield_copy(&(upd_field->new_val), dfield); - - upd_field_set_v_field_no( - upd_field, i, index); - - n_diff++; - + dfield, vfield->len, + static_cast(vfield->data))) { + upd_field_t* uf = upd_get_nth_field(update, + n_diff++); + uf->old_v_val = static_cast( + mem_heap_alloc(heap, + sizeof *uf->old_v_val)); + dfield_copy(uf->old_v_val, vfield); + dfield_copy(&uf->new_val, dfield); + upd_field_set_v_field_no(uf, i, index); } } @@ -2481,17 +2477,27 @@ case DB_NO_REFERENCED_ROW: err = DB_SUCCESS; break; + case DB_LOCK_WAIT: + if (wsrep_debug) { + ib::warn() << "WSREP: sec index FK lock wait" + << " index " << index->name + << " table " << index->table->name + << " query " << wsrep_thd_query(trx->mysql_thd); + } + break; case DB_DEADLOCK: if (wsrep_debug) { ib::warn() << "WSREP: sec index FK check fail for deadlock" << " index " << index->name - << " table " << index->table->name; + << " table " << index->table->name + << " query " << wsrep_thd_query(trx->mysql_thd); } break; default: ib::error() << "WSREP: referenced FK check fail: " << ut_strerr(err) << " index " << index->name - << " table " << index->table->name; + << " table " << index->table->name + << " query " << wsrep_thd_query(trx->mysql_thd); break; } @@ -2533,7 +2539,7 @@ ut_a(entry); /* Insert new index entry */ - err = row_ins_sec_index_entry(index, entry, thr, false); + err = row_ins_sec_index_entry(index, entry, thr, !node->is_delete); func_exit: mem_heap_free(heap); @@ -2805,7 +2811,7 @@ err = row_ins_clust_index_entry( index, entry, thr, - node->upd_ext ? node->upd_ext->n_ext : 0, false); + node->upd_ext ? node->upd_ext->n_ext : 0); node->state = UPD_NODE_INSERT_CLUSTERED; mem_heap_free(heap); @@ -3195,9 +3201,8 @@ row_upd_eval_new_vals(node->update); } - if (node->cmpl_info & UPD_NODE_NO_ORD_CHANGE) { + if (!node->is_delete && node->cmpl_info & UPD_NODE_NO_ORD_CHANGE) { - node->index = NULL; err = row_upd_clust_rec( flags, node, index, offsets, &heap, thr, &mtr); goto exit_func; @@ -3241,7 +3246,10 @@ goto exit_func; } - node->state = UPD_NODE_UPDATE_SOME_SEC; + ut_ad(node->is_delete != PLAIN_DELETE); + node->state = node->is_delete ? + UPD_NODE_UPDATE_ALL_SEC : + UPD_NODE_UPDATE_SOME_SEC; } node->index = dict_table_get_next_index(index); diff -Nru mariadb-10.3-10.3.17/storage/innobase/row/row0vers.cc mariadb-10.3-10.3.20/storage/innobase/row/row0vers.cc --- mariadb-10.3-10.3.17/storage/innobase/row/row0vers.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/row/row0vers.cc 2019-11-06 16:01:58.000000000 +0000 @@ -76,7 +76,8 @@ @param[in] index secondary index @param[in] offsets rec_get_offsets(rec, index) @param[in,out] mtr mini-transaction -@return the active transaction; trx->release_reference() must be invoked +@return the active transaction; state must be rechecked after +trx_mutex_enter(), and trx->release_reference() must be invoked @retval NULL if the record was committed */ UNIV_INLINE trx_t* @@ -90,9 +91,6 @@ mtr_t* mtr) { trx_id_t trx_id; - ulint comp; - ulint rec_del; - const rec_t* version; rec_t* prev_version = NULL; ulint* clust_offsets; mem_heap_t* heap; @@ -144,12 +142,12 @@ } } - comp = page_rec_is_comp(rec); + const ulint comp = page_rec_is_comp(rec); ut_ad(index->table == clust_index->table); ut_ad(!!comp == dict_table_is_comp(index->table)); ut_ad(!comp == !page_rec_is_comp(clust_rec)); - rec_del = rec_get_deleted_flag(rec, comp); + const ulint rec_del = rec_get_deleted_flag(rec, comp); if (dict_index_has_virtual(index)) { ulint n_ext; @@ -174,7 +172,7 @@ modify rec, and does not necessarily have an implicit x-lock on rec. */ - for (version = clust_rec;; version = prev_version) { + for (const rec_t* version = clust_rec;; version = prev_version) { row_ext_t* ext; dtuple_t* row; dtuple_t* entry; @@ -194,16 +192,24 @@ heap, &prev_version, NULL, dict_index_has_virtual(index) ? &vrow : NULL, 0); + trx_mutex_enter(trx); + const bool committed = trx_state_eq( + trx, TRX_STATE_COMMITTED_IN_MEMORY); + trx_mutex_exit(trx); + /* The oldest visible clustered index version must not be delete-marked, because we never start a transaction by inserting a delete-marked record. */ - ut_ad(prev_version - || !rec_get_deleted_flag(version, comp) - || !trx_sys.is_registered(caller_trx, trx_id)); + ut_ad(committed || prev_version + || !rec_get_deleted_flag(version, comp)); /* Free version and clust_offsets. */ mem_heap_free(old_heap); + if (committed) { + goto not_locked; + } + if (prev_version == NULL) { /* We reached the oldest visible version without @@ -223,6 +229,7 @@ or updated, the leaf page record always is created with a clear delete-mark flag. (We never insert a delete-marked record.) */ +not_locked: trx->release_reference(); trx = 0; } @@ -349,14 +356,14 @@ if (trx->id != prev_trx_id) { /* prev_version was the first version modified by the trx_id transaction: no implicit x-lock */ - - trx->release_reference(); - trx = 0; - break; + goto not_locked; } } - DBUG_PRINT("info", ("Implicit lock is held by trx:" TRX_ID_FMT, trx_id)); + if (trx) { + DBUG_PRINT("info", ("Implicit lock is held by trx:" TRX_ID_FMT, + trx_id)); + } if (v_heap != NULL) { mem_heap_free(v_heap); @@ -372,7 +379,8 @@ @param[in] rec secondary index record @param[in] index secondary index @param[in] offsets rec_get_offsets(rec, index) -@return the active transaction; trx->release_reference() must be invoked +@return the active transaction; state must be rechecked after +trx_mutex_enter(), and trx->release_reference() must be invoked @retval NULL if the record was committed */ trx_t* row_vers_impl_x_locked( @@ -456,6 +464,7 @@ vcol_info->set_used(); maria_table = vcol_info->table(); } + DEBUG_SYNC(current_thd, "ib_clust_v_col_before_row_allocated"); innobase_allocate_row_for_vcol(thd, index, &local_heap, diff -Nru mariadb-10.3-10.3.17/storage/innobase/srv/srv0srv.cc mariadb-10.3-10.3.20/storage/innobase/srv/srv0srv.cc --- mariadb-10.3-10.3.17/storage/innobase/srv/srv0srv.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/srv/srv0srv.cc 2019-11-06 16:01:58.000000000 +0000 @@ -594,7 +594,8 @@ ulint n_sys_threads; /*!< size of the sys_threads array */ - srv_slot_t sys_threads[32 + 1]; /*!< server thread table; + srv_slot_t + sys_threads[srv_max_purge_threads + 1]; /*!< server thread table; os_event_set() and os_event_reset() on sys_threads[]->event are @@ -642,20 +643,24 @@ char srv_buffer_pool_dump_at_shutdown = TRUE; char srv_buffer_pool_load_at_startup = TRUE; +/** Slot index in the srv_sys.sys_threads array for the master thread. */ +#define SRV_MASTER_SLOT 0 + /** Slot index in the srv_sys.sys_threads array for the purge thread. */ -static const ulint SRV_PURGE_SLOT = 1; +#define SRV_PURGE_SLOT 1 -/** Slot index in the srv_sys.sys_threads array for the master thread. */ -static const ulint SRV_MASTER_SLOT = 0; +/** Slot index in the srv_sys.sys_threads array from which purge workers start. + */ +#define SRV_WORKER_SLOTS_START 2 #ifdef HAVE_PSI_STAGE_INTERFACE /** Performance schema stage event for monitoring ALTER TABLE progress -everything after flush log_make_checkpoint_at(). */ +everything after flush log_make_checkpoint(). */ PSI_stage_info srv_stage_alter_table_end = {0, "alter table (end)", PSI_FLAG_STAGE_PROGRESS}; /** Performance schema stage event for monitoring ALTER TABLE progress -log_make_checkpoint_at(). */ +log_make_checkpoint(). */ PSI_stage_info srv_stage_alter_table_flush = {0, "alter table (flush)", PSI_FLAG_STAGE_PROGRESS}; @@ -794,7 +799,7 @@ case SRV_WORKER: /* Find an empty slot, skip the master and purge slots. */ - for (slot = &srv_sys.sys_threads[2]; + for (slot = &srv_sys.sys_threads[SRV_WORKER_SLOTS_START]; slot->in_use; ++slot) { @@ -2458,8 +2463,9 @@ /*********************************************************************//** Fetch and execute a task from the work queue. +@param [in,out] slot purge worker thread slot @return true if a task was executed */ -static bool srv_task_execute() +static bool srv_task_execute(ut_d(srv_slot_t *slot)) { ut_ad(!srv_read_only_mode); ut_ad(srv_force_recovery < SRV_FORCE_NO_BACKGROUND); @@ -2470,6 +2476,7 @@ ut_a(que_node_get_type(thr->child) == QUE_NODE_PURGE); UT_LIST_REMOVE(srv_sys.tasks, thr); mutex_exit(&srv_sys.tasks_mutex); + ut_d(thr->thread_slot = slot); que_run_threads(thr); my_atomic_addlint(&purge_sys.n_completed, 1); return true; @@ -2506,6 +2513,13 @@ slot = srv_reserve_slot(SRV_WORKER); +#ifdef UNIV_DEBUG + UT_LIST_INIT(slot->debug_sync, + &srv_slot_t::debug_sync_t::debug_sync_list); + rw_lock_create(PFS_NOT_INSTRUMENTED, &slot->debug_sync_lock, + SYNC_NO_ORDER_CHECK); +#endif + ut_a(srv_n_purge_threads > 1); ut_a(ulong(my_atomic_loadlint(&srv_sys.n_threads_active[SRV_WORKER])) < srv_n_purge_threads); @@ -2518,7 +2532,7 @@ srv_suspend_thread(slot); srv_resume_thread(slot); - if (srv_task_execute()) { + if (srv_task_execute(ut_d(slot))) { /* If there are tasks in the queue, wakeup the purge coordinator thread. */ @@ -2548,9 +2562,11 @@ /** Do the actual purge operation. @param[in,out] n_total_purged total number of purged pages @return length of history list before the last purge batch. */ -static -ulint -srv_do_purge(ulint* n_total_purged) +static ulint srv_do_purge(ulint* n_total_purged +#ifdef UNIV_DEBUG + , srv_slot_t* slot /*!< purge coordinator */ +#endif + ) { ulint n_pages_purged; @@ -2616,7 +2632,11 @@ n_pages_purged = trx_purge( n_use_threads, - (++count % rseg_truncate_frequency) == 0); + (++count % rseg_truncate_frequency) == 0 +#ifdef UNIV_DEBUG + , slot +#endif + ); *n_total_purged += n_pages_purged; } while (n_pages_purged > 0 && !purge_sys.paused() @@ -2624,6 +2644,9 @@ return(rseg_history_len); } +#ifndef UNIV_DEBUG +# define srv_do_purge(n_total_purged, slot) srv_do_purge(n_total_purged) +#endif /*********************************************************************//** Suspend the purge coordinator thread. */ @@ -2718,6 +2741,12 @@ slot = srv_reserve_slot(SRV_PURGE); +#ifdef UNIV_DEBUG + UT_LIST_INIT(slot->debug_sync, + &srv_slot_t::debug_sync_t::debug_sync_list); + rw_lock_create(PFS_NOT_INSTRUMENTED, &slot->debug_sync_lock, + SYNC_NO_ORDER_CHECK); +#endif ulint rseg_history_len = trx_sys.history_size(); do { @@ -2739,7 +2768,7 @@ n_total_purged = 0; - rseg_history_len = srv_do_purge(&n_total_purged); + rseg_history_len = srv_do_purge(&n_total_purged, slot); } while (!srv_purge_should_exit()); /* The task queue should always be empty, independent of fast @@ -2897,3 +2926,33 @@ return (!is_system_tablespace(space->id) && truncate_t::was_tablespace_truncated(space->id)); } + +#ifdef UNIV_DEBUG +static ulint get_first_slot(srv_thread_type type) +{ + switch (type) { + case SRV_MASTER: + return SRV_MASTER_SLOT; + case SRV_PURGE: + return SRV_PURGE_SLOT; + case SRV_WORKER: + /* Find an empty slot, skip the master and purge slots. */ + return SRV_WORKER_SLOTS_START; + default: + ut_error; + } +} + +void srv_for_each_thread(srv_thread_type type, + srv_slot_callback_t callback, + const void *arg) +{ + for (ulint slot_idx= get_first_slot(type); + slot_idx < srv_sys.n_sys_threads + && srv_sys.sys_threads[slot_idx].in_use + && srv_sys.sys_threads[slot_idx].type == type; + slot_idx++) { + callback(&srv_sys.sys_threads[slot_idx], arg); + } +} +#endif diff -Nru mariadb-10.3-10.3.17/storage/innobase/srv/srv0start.cc mariadb-10.3-10.3.20/storage/innobase/srv/srv0start.cc --- mariadb-10.3-10.3.17/storage/innobase/srv/srv0start.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/srv/srv0start.cc 2019-11-06 16:01:58.000000000 +0000 @@ -510,7 +510,7 @@ (log_sys.lsn - log_sys.last_checkpoint_lsn)); log_mutex_exit(); - log_make_checkpoint_at(LSN_MAX); + log_make_checkpoint(); return(DB_SUCCESS); } @@ -1855,7 +1855,7 @@ ut_a(fil_validate()); ut_a(log_space); - ut_a(srv_log_file_size <= 512ULL << 30); + ut_a(srv_log_file_size <= log_group_max_size); const ulint size = 1 + ulint((srv_log_file_size - 1) >> srv_page_size_shift); diff -Nru mariadb-10.3-10.3.17/storage/innobase/sync/sync0rw.cc mariadb-10.3-10.3.20/storage/innobase/sync/sync0rw.cc --- mariadb-10.3-10.3.17/storage/innobase/sync/sync0rw.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/sync/sync0rw.cc 2019-11-06 16:01:58.000000000 +0000 @@ -994,13 +994,22 @@ ut_ad(lock); ut_ad(rw_lock_validate(lock)); + const os_thread_id_t thread_id = os_thread_get_curr_id(); + + if (!os_thread_eq(lock->writer_thread, thread_id)) { + } else if (lock_type == RW_LOCK_X && rw_lock_get_x_lock_count(lock)) { + return TRUE; + } else if (lock_type == RW_LOCK_SX && rw_lock_get_sx_lock_count(lock)) { + return TRUE; + } + rw_lock_debug_mutex_enter(); for (const rw_lock_debug_t* info = UT_LIST_GET_FIRST(lock->debug_list); info != NULL; info = UT_LIST_GET_NEXT(list, info)) { - if (os_thread_eq(info->thread_id, os_thread_get_curr_id()) + if (os_thread_eq(info->thread_id, thread_id) && info->pass == 0 && info->lock_type == lock_type) { @@ -1025,12 +1034,23 @@ { ut_ad(rw_lock_validate(lock)); + const os_thread_id_t thread_id = os_thread_get_curr_id(); + + if (!os_thread_eq(lock->writer_thread, thread_id)) { + } else if ((flags & RW_LOCK_FLAG_X) + && rw_lock_get_x_lock_count(lock)) { + return true; + } else if ((flags & RW_LOCK_FLAG_SX) + && rw_lock_get_sx_lock_count(lock)) { + return true; + } + rw_lock_debug_mutex_enter(); for (rw_lock_debug_t* info = UT_LIST_GET_FIRST(lock->debug_list); info != NULL; info = UT_LIST_GET_NEXT(list, info)) { - if (!os_thread_eq(info->thread_id, os_thread_get_curr_id()) + if (!os_thread_eq(info->thread_id, thread_id) || info->pass) { continue; } diff -Nru mariadb-10.3-10.3.17/storage/innobase/trx/trx0purge.cc mariadb-10.3-10.3.20/storage/innobase/trx/trx0purge.cc --- mariadb-10.3-10.3.17/storage/innobase/trx/trx0purge.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/trx/trx0purge.cc 2019-11-06 16:01:58.000000000 +0000 @@ -252,7 +252,7 @@ /* After the purge thread has been given permission to exit, we may roll back transactions (trx->undo_no==0) in THD::cleanup() invoked from unlink_thd() in fast shutdown, - or in trx_rollback_resurrected() in slow shutdown. + or in trx_rollback_recovered() in slow shutdown. Before any transaction-generating background threads or the purge have been started, recv_recovery_rollback_active() can @@ -1561,7 +1561,12 @@ /*======*/ ulint n_purge_threads, /*!< in: number of purge tasks to submit to the work queue */ - bool truncate) /*!< in: truncate history if true */ + bool truncate /*!< in: truncate history if true */ +#ifdef UNIV_DEBUG + , srv_slot_t *slot /*!< in/out: purge coordinator + thread slot */ +#endif +) { que_thr_t* thr = NULL; ulint n_pages_handled; @@ -1597,6 +1602,7 @@ thr = que_fork_scheduler_round_robin(purge_sys.query, thr); + ut_d(thr->thread_slot = slot); que_run_threads(thr); my_atomic_addlint(&purge_sys.n_completed, 1); diff -Nru mariadb-10.3-10.3.17/storage/innobase/trx/trx0rec.cc mariadb-10.3-10.3.20/storage/innobase/trx/trx0rec.cc --- mariadb-10.3-10.3.17/storage/innobase/trx/trx0rec.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/trx/trx0rec.cc 2019-11-06 16:01:58.000000000 +0000 @@ -421,9 +421,15 @@ const dfield_t* vfield = dtuple_get_nth_v_field( row, col->v_pos); - ulint flen = vfield->len; + switch (ulint flen = vfield->len) { + case 0: case UNIV_SQL_NULL: + if (trx_undo_left(undo_block, *ptr) < 5) { + return(false); + } - if (flen != UNIV_SQL_NULL) { + *ptr += mach_write_compressed(*ptr, flen); + break; + default: ulint max_len = dict_max_v_field_len_store_undo( table, col_no); @@ -438,14 +444,8 @@ } *ptr += mach_write_compressed(*ptr, flen); - ut_memcpy(*ptr, vfield->data, flen); + memcpy(*ptr, vfield->data, flen); *ptr += flen; - } else { - if (trx_undo_left(undo_block, *ptr) < 5) { - return(false); - } - - *ptr += mach_write_compressed(*ptr, flen); } } } @@ -524,13 +524,16 @@ ptr += mach_write_compressed(ptr, flen); - if (flen != UNIV_SQL_NULL) { + switch (flen) { + case 0: case UNIV_SQL_NULL: + break; + default: if (trx_undo_left(undo_block, ptr) < flen) { return(0); } - ut_memcpy(ptr, dfield_get_data(field), flen); + memcpy(ptr, dfield_get_data(field), flen); ptr += flen; } } @@ -998,7 +1001,7 @@ return(0); } - ut_memcpy(ptr, field, flen); + memcpy(ptr, field, flen); ptr += flen; } } @@ -1129,7 +1132,7 @@ return(0); } - ut_memcpy(ptr, field, flen); + memcpy(ptr, field, flen); ptr += flen; } @@ -1154,7 +1157,7 @@ return(0); } - ut_memcpy(ptr, field, flen); + memcpy(ptr, field, flen); ptr += flen; } } @@ -1303,7 +1306,7 @@ return(0); } - ut_memcpy(ptr, field, flen); + memcpy(ptr, field, flen); ptr += flen; } @@ -1388,13 +1391,16 @@ ptr += mach_write_compressed(ptr, flen); - if (flen != UNIV_SQL_NULL) { + switch (flen) { + case 0: case UNIV_SQL_NULL: + break; + default: if (trx_undo_left(undo_block, ptr) < flen) { return(0); } - ut_memcpy(ptr, field, flen); + memcpy(ptr, field, flen); ptr += flen; } } @@ -1905,7 +1911,7 @@ ut_ad(err == DB_SUCCESS); ut_ad(undo); for (ut_d(int loop_count = 0);;) { - ut_ad(++loop_count < 2); + ut_ad(loop_count++ < 2); ut_ad(undo->last_page_no == block->page.id.page_no()); if (ulint offset = trx_undo_page_report_rename( diff -Nru mariadb-10.3-10.3.17/storage/innobase/trx/trx0roll.cc mariadb-10.3-10.3.20/storage/innobase/trx/trx0roll.cc --- mariadb-10.3-10.3.17/storage/innobase/trx/trx0roll.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/trx/trx0roll.cc 2019-11-06 16:01:58.000000000 +0000 @@ -765,7 +765,7 @@ if (trx_t *trx= element->trx) { mutex_enter(&trx->mutex); - if (trx->is_recovered && trx_state_eq(trx, TRX_STATE_ACTIVE)) + if (trx_state_eq(trx, TRX_STATE_ACTIVE) && trx->is_recovered) trx_list->push_back(trx); mutex_exit(&trx->mutex); } @@ -811,7 +811,8 @@ ut_ad(trx); ut_d(trx_mutex_enter(trx)); - ut_ad(trx->is_recovered && trx_state_eq(trx, TRX_STATE_ACTIVE)); + ut_ad(trx->is_recovered); + ut_ad(trx_state_eq(trx, TRX_STATE_ACTIVE)); ut_d(trx_mutex_exit(trx)); if (!srv_is_being_started && !srv_undo_sources && srv_fast_shutdown) @@ -827,6 +828,22 @@ ut_ad(!srv_undo_sources); ut_ad(srv_fast_shutdown); discard: + /* Note: before kill_server() invoked innobase_end() via + unireg_end(), it invoked close_connections(), which should initiate + the rollback of any user transactions via THD::cleanup() in the + connection threads, and wait for all THD::cleanup() to complete. + So, no active user transactions should exist at this point. + + srv_undo_sources=false was cleared early in innobase_end(). + + Generally, the server guarantees that all connections using + InnoDB must be disconnected by the time we are reaching this code, + be it during shutdown or UNINSTALL PLUGIN. + + Because there is no possible race condition with any + concurrent user transaction, we do not have to invoke + trx->commit_state() or wait for !trx->is_referenced() + before trx_sys.deregister_rw(trx). */ trx_sys.deregister_rw(trx); trx_free_at_shutdown(trx); } diff -Nru mariadb-10.3-10.3.17/storage/innobase/trx/trx0trx.cc mariadb-10.3-10.3.20/storage/innobase/trx/trx0trx.cc --- mariadb-10.3-10.3.17/storage/innobase/trx/trx0trx.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/trx/trx0trx.cc 2019-11-06 16:01:58.000000000 +0000 @@ -79,7 +79,8 @@ trx_t* trx, /*!< in: transaction struct */ const char* msg) /*!< in: detailed error message */ { - ut_strlcpy(trx->detailed_error, msg, MAX_DETAILED_ERROR_LEN); + strncpy(trx->detailed_error, msg, MAX_DETAILED_ERROR_LEN - 1); + trx->detailed_error[MAX_DETAILED_ERROR_LEN - 1] = '\0'; } /*************************************************************//** @@ -460,6 +461,48 @@ trx = NULL; } +/** Transition to committed state, to release implicit locks. */ +inline void trx_t::commit_state() +{ + ut_ad(state == TRX_STATE_PREPARED + || state == TRX_STATE_PREPARED_RECOVERED + || state == TRX_STATE_ACTIVE); + /* This makes the transaction committed in memory and makes its + changes to data visible to other transactions. NOTE that there is a + small discrepancy from the strict formal visibility rules here: a + user of the database can see modifications made by another + transaction T even before the necessary redo log segment has been + flushed to the disk. If the database happens to crash before the + flush, the user has seen modifications from T which will never be a + committed transaction. However, any transaction T2 which sees the + modifications of the committing transaction T, and which also itself + makes modifications to the database, will get an lsn larger than the + committing transaction T. In the case where the log flush fails, and + T never gets committed, also T2 will never get committed. */ + trx_mutex_enter(this); + state= TRX_STATE_COMMITTED_IN_MEMORY; + trx_mutex_exit(this); + ut_ad(id || !is_referenced()); +} + +/** Release any explicit locks of a committing transaction. */ +inline void trx_t::release_locks() +{ + DBUG_ASSERT(state == TRX_STATE_COMMITTED_IN_MEMORY); + DBUG_ASSERT(!is_referenced()); + + if (UT_LIST_GET_LEN(lock.trx_locks)) + { + lock_release(this); + lock.n_rec_locks = 0; + ut_ad(UT_LIST_GET_LEN(lock.trx_locks) == 0); + ut_ad(ib_vector_is_empty(autoinc_locks)); + mem_heap_empty(lock.lock_heap); + } + + lock.table_locks.clear(); +} + /** At shutdown, frees a transaction object. */ void trx_free_at_shutdown(trx_t *trx) @@ -477,21 +520,16 @@ && !srv_undo_sources && srv_fast_shutdown)))); ut_a(trx->magic_n == TRX_MAGIC_N); - lock_trx_release_locks(trx); + trx->commit_state(); + trx->release_locks(); trx_undo_free_at_shutdown(trx); ut_a(!trx->read_only); DBUG_LOG("trx", "Free prepared: " << trx); trx->state = TRX_STATE_NOT_STARTED; - - /* Undo trx_resurrect_table_locks(). */ - lock_trx_lock_list_init(&trx->lock.trx_locks); - - /* Note: This vector is not guaranteed to be empty because the - transaction was never committed and therefore lock_trx_release() - was not called. */ - trx->lock.table_locks.clear(); + ut_ad(!UT_LIST_GET_LEN(trx->lock.trx_locks)); + trx->id = 0; trx_free(trx); } @@ -1110,26 +1148,14 @@ fts_t* fts = ftt->table->fts; fts_doc_ids_t* doc_ids = ftt->added_doc_ids; - mutex_enter(&fts->bg_threads_mutex); - - if (fts->fts_status & BG_THREAD_STOP) { - /* The table is about to be dropped, no use - adding anything to its work queue. */ - - mutex_exit(&fts->bg_threads_mutex); - } else { - mem_heap_t* heap; - mutex_exit(&fts->bg_threads_mutex); - - ut_a(fts->add_wq); + ut_a(fts->add_wq); - heap = static_cast(doc_ids->self_heap->arg); + mem_heap_t* heap = static_cast(doc_ids->self_heap->arg); - ib_wqueue_add(fts->add_wq, doc_ids, heap); + ib_wqueue_add(fts->add_wq, doc_ids, heap); - /* fts_trx_table_t no longer owns the list. */ - ftt->added_doc_ids = NULL; - } + /* fts_trx_table_t no longer owns the list. */ + ftt->added_doc_ids = NULL; } /******************************************************************//** @@ -1230,6 +1256,22 @@ const time_t now = time(NULL); trx_mod_tables_t::const_iterator end = trx->mod_tables.end(); +#ifdef UNIV_DEBUG +# if MYSQL_VERSION_ID >= 100405 +# define dict_sys_mutex dict_sys.mutex +# else +# define dict_sys_mutex dict_sys->mutex +# endif + + const bool preserve_tables = !innodb_evict_tables_on_commit_debug + || trx->is_recovered /* avoid trouble with XA recovery */ +# if 1 /* if dict_stats_exec_sql() were not playing dirty tricks */ + || mutex_own(&dict_sys_mutex) +# else /* this would be more proper way to do it */ + || trx->dict_operation_lock_mode || trx->dict_operation +# endif + ; +#endif for (trx_mod_tables_t::const_iterator it = trx->mod_tables.begin(); it != end; @@ -1243,7 +1285,27 @@ "garbage" in table->update_time is justified because protecting it with a latch here would be too performance intrusive. */ - it->first->update_time = now; + dict_table_t* table = it->first; + table->update_time = now; +#ifdef UNIV_DEBUG + if (preserve_tables || table->get_ref_count()) { + /* do not evict when committing DDL operations + or if some other transaction is holding the + table handle */ + continue; + } + /* recheck while holding the mutex that blocks + table->acquire() */ + mutex_enter(&dict_sys_mutex); + if (!table->get_ref_count()) { +# if MYSQL_VERSION_ID >= 100405 + dict_sys.remove(table, true); +# else + dict_table_remove_from_cache_low(table, true); +# endif + } + mutex_exit(&dict_sys_mutex); +#endif } trx->mod_tables.clear(); @@ -1271,8 +1333,8 @@ /* Note: We are asserting without holding the lock mutex. But that is OK because this transaction is not waiting and cannot - be rolled back and no new locks can (or should not) be added - becuase it is flagged as a non-locking read-only transaction. */ + be rolled back and no new locks can (or should) be added + because it is flagged as a non-locking read-only transaction. */ ut_a(UT_LIST_GET_LEN(trx->lock.trx_locks) == 0); @@ -1290,29 +1352,43 @@ DBUG_LOG("trx", "Autocommit in memory: " << trx); trx->state = TRX_STATE_NOT_STARTED; } else { - if (trx->id > 0) { - /* For consistent snapshot, we need to remove current - transaction from rw_trx_hash before doing commit and - releasing locks. */ - trx_sys.deregister_rw(trx); +#ifdef UNIV_DEBUG + if (!UT_LIST_GET_LEN(trx->lock.trx_locks)) { + for (lock_list::iterator it + = trx->lock.table_locks.begin(); + it != trx->lock.table_locks.end(); + it++) { + ut_ad(!*it); + } } +#endif /* UNIV_DEBUG */ + trx->commit_state(); - /* trx->id will be cleared in lock_trx_release_locks(trx). */ - ut_ad(trx->read_only || !trx->rsegs.m_redo.rseg || trx->id); - lock_trx_release_locks(trx); - ut_ad(trx->id == 0); + if (trx->id) { + trx_sys.deregister_rw(trx); + + /* Wait for any implicit-to-explicit lock + conversions to cease, so that there will be no + race condition in lock_release(). */ + while (UNIV_UNLIKELY(trx->is_referenced())) { + ut_delay(srv_spin_wait_delay); + } - /* Remove the transaction from the list of active - transactions now that it no longer holds any user locks. */ + trx->release_locks(); + trx->id = 0; + } else { + ut_ad(trx->read_only || !trx->rsegs.m_redo.rseg); + trx->release_locks(); + } - ut_ad(trx_state_eq(trx, TRX_STATE_COMMITTED_IN_MEMORY)); DEBUG_SYNC_C("after_trx_committed_in_memory"); - if (trx->read_only || trx->rsegs.m_redo.rseg == NULL) { + if (trx->read_only || !trx->rsegs.m_redo.rseg) { MONITOR_INC(MONITOR_TRX_RO_COMMIT); } else { trx_update_mod_tables_timestamp(trx); MONITOR_INC(MONITOR_TRX_RW_COMMIT); + trx->is_recovered = false; } } @@ -2129,7 +2205,7 @@ struct trx_get_trx_by_xid_callback_arg { - XID *xid; + const XID *xid; trx_t *trx; }; @@ -2141,6 +2217,7 @@ mutex_enter(&element->mutex); if (trx_t *trx= element->trx) { + trx_mutex_enter(trx); if (trx->is_recovered && (trx_state_eq(trx, TRX_STATE_PREPARED) || trx_state_eq(trx, TRX_STATE_PREPARED_RECOVERED)) && @@ -2157,23 +2234,19 @@ arg->trx= trx; found= 1; } + trx_mutex_exit(trx); } mutex_exit(&element->mutex); return found; } - -/** - Finds PREPARED XA transaction by xid. - - trx may have been committed, unless the caller is holding lock_sys.mutex. - - @param[in] xid X/Open XA transaction identifier - - @return trx or NULL; on match, the trx->xid will be invalidated; -*/ - -trx_t *trx_get_trx_by_xid(XID *xid) +/** Look up an X/Open distributed transaction in XA PREPARE state. +@param[in] xid X/Open XA transaction identifier +@return transaction on match (the trx_t::xid will be invalidated); +note that the trx may have been committed before the caller acquires +trx_t::mutex +@retval NULL if no match */ +trx_t* trx_get_trx_by_xid(const XID* xid) { trx_get_trx_by_xid_callback_arg arg= { xid, 0 }; diff -Nru mariadb-10.3-10.3.17/storage/innobase/trx/trx0undo.cc mariadb-10.3-10.3.20/storage/innobase/trx/trx0undo.cc --- mariadb-10.3-10.3.17/storage/innobase/trx/trx0undo.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/trx/trx0undo.cc 2019-11-06 16:01:58.000000000 +0000 @@ -1634,7 +1634,7 @@ TRX_STATE_COMMITTED_IN_MEMORY)); /* fall through */ case TRX_UNDO_ACTIVE: - /* lock_trx_release_locks() assigns + /* trx_t::commit_state() assigns trx->state = TRX_STATE_COMMITTED_IN_MEMORY. */ ut_a(!srv_was_started || srv_read_only_mode @@ -1661,7 +1661,7 @@ TRX_STATE_COMMITTED_IN_MEMORY)); /* fall through */ case TRX_UNDO_ACTIVE: - /* lock_trx_release_locks() assigns + /* trx_t::commit_state() assigns trx->state = TRX_STATE_COMMITTED_IN_MEMORY. */ ut_a(!srv_was_started || srv_read_only_mode diff -Nru mariadb-10.3-10.3.17/storage/innobase/ut/ut0mem.cc mariadb-10.3-10.3.20/storage/innobase/ut/ut0mem.cc --- mariadb-10.3-10.3.17/storage/innobase/ut/ut0mem.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/ut/ut0mem.cc 2019-11-06 16:01:58.000000000 +0000 @@ -1,6 +1,7 @@ /***************************************************************************** Copyright (c) 1994, 2016, Oracle and/or its affiliates. All Rights Reserved. +Copyright (c) 2019, MariaDB Corporation. 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 @@ -24,55 +25,6 @@ *************************************************************************/ #include "ut0mem.h" -#include "os0thread.h" -#include "srv0srv.h" -#include - -/**********************************************************************//** -Copies up to size - 1 characters from the NUL-terminated string src to -dst, NUL-terminating the result. Returns strlen(src), so truncation -occurred if the return value >= size. -@return strlen(src) */ -ulint -ut_strlcpy( -/*=======*/ - char* dst, /*!< in: destination buffer */ - const char* src, /*!< in: source buffer */ - ulint size) /*!< in: size of destination buffer */ -{ - ulint src_size = strlen(src); - - if (size != 0) { - ulint n = ut_min(src_size, size - 1); - - memcpy(dst, src, n); - dst[n] = '\0'; - } - - return(src_size); -} - -/**********************************************************************//** -Like ut_strlcpy, but if src doesn't fit in dst completely, copies the last -(size - 1) bytes of src, not the first. -@return strlen(src) */ -ulint -ut_strlcpy_rev( -/*===========*/ - char* dst, /*!< in: destination buffer */ - const char* src, /*!< in: source buffer */ - ulint size) /*!< in: size of destination buffer */ -{ - ulint src_size = strlen(src); - - if (size != 0) { - ulint n = ut_min(src_size, size - 1); - - memcpy(dst, src + src_size - n, n + 1); - } - - return(src_size); -} /******************************************************************** Concatenate 3 strings.*/ diff -Nru mariadb-10.3-10.3.17/storage/innobase/ut/ut0wqueue.cc mariadb-10.3-10.3.20/storage/innobase/ut/ut0wqueue.cc --- mariadb-10.3-10.3.17/storage/innobase/ut/ut0wqueue.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/innobase/ut/ut0wqueue.cc 2019-11-06 16:01:58.000000000 +0000 @@ -28,15 +28,6 @@ Created 4/26/2006 Osku Salerma ************************************************************************/ -/* Work queue. */ -struct ib_wqueue_t { - ib_mutex_t mutex; /*!< mutex protecting everything */ - ib_list_t* items; /*!< work item list */ - os_event_t event; /*!< event we use to signal additions to list; - os_event_set() and os_event_reset() are - protected by ib_wqueue_t::mutex */ -}; - /****************************************************************//** Create a new work queue. @return work queue */ @@ -72,22 +63,24 @@ ut_free(wq); } -/****************************************************************//** -Add a work item to the queue. */ +/** Add a work item to the queue. +@param[in,out] wq work queue +@param[in] item work item +@param[in,out] heap memory heap to use for allocating list node +@param[in] wq_locked work queue mutex locked */ void -ib_wqueue_add( -/*==========*/ - ib_wqueue_t* wq, /*!< in: work queue */ - void* item, /*!< in: work item */ - mem_heap_t* heap) /*!< in: memory heap to use for allocating the - list node */ +ib_wqueue_add(ib_wqueue_t* wq, void* item, mem_heap_t* heap, bool wq_locked) { - mutex_enter(&wq->mutex); + if (!wq_locked) { + mutex_enter(&wq->mutex); + } ib_list_add_last(wq->items, item, heap); os_event_set(wq->event); - mutex_exit(&wq->mutex); + if (!wq_locked) { + mutex_exit(&wq->mutex); + } } /****************************************************************//** diff -Nru mariadb-10.3-10.3.17/storage/maria/ha_maria.cc mariadb-10.3-10.3.20/storage/maria/ha_maria.cc --- mariadb-10.3-10.3.17/storage/maria/ha_maria.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/maria/ha_maria.cc 2019-11-06 16:01:58.000000000 +0000 @@ -2785,7 +2785,20 @@ THD_TRN= NULL; for (MARIA_HA *table= first_table; table ; table= table->trn_next) + { _ma_reset_trn_for_table(table); + + /* + If table has changed by this statement, invalidate it from the query + cache + */ + if (table->row_changes != table->start_row_changes) + { + table->start_row_changes= table->row_changes; + DBUG_ASSERT(table->s->chst_invalidator != NULL); + (*table->s->chst_invalidator)(table->s->data_file_name.str); + } + } DBUG_VOID_RETURN; } @@ -3252,7 +3265,10 @@ THD *thd, bool all) { TRN *trn= THD_TRN; + int res; + MARIA_HA *used_instances= (MARIA_HA*) trn->used_instances; DBUG_ENTER("maria_commit"); + trnman_reset_locked_tables(trn, 0); trnman_set_flags(trn, trnman_get_flags(trn) & ~TRN_STATE_INFO_LOGGED); @@ -3260,8 +3276,9 @@ if ((thd->variables.option_bits & (OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN)) && !all) DBUG_RETURN(0); // end of statement - reset_thd_trn(thd, (MARIA_HA*) trn->used_instances); - DBUG_RETURN(ma_commit(trn)); // end of transaction + res= ma_commit(trn); + reset_thd_trn(thd, used_instances); + DBUG_RETURN(res); } diff -Nru mariadb-10.3-10.3.17/storage/maria/ma_blockrec.c mariadb-10.3-10.3.20/storage/maria/ma_blockrec.c --- mariadb-10.3-10.3.17/storage/maria/ma_blockrec.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/maria/ma_blockrec.c 2019-11-06 16:01:58.000000000 +0000 @@ -6394,6 +6394,7 @@ } else if (lsn_korr(buff) >= lsn) /* Test if already applied */ { + check_skipped_lsn(info, lsn_korr(buff), 1, page); /* Fix bitmap, just in case */ empty_space= uint2korr(buff + EMPTY_SPACE_OFFSET); if (!enough_free_entries_on_page(share, buff)) @@ -6561,6 +6562,7 @@ Note that in case the page is not anymore a head or tail page a future redo will fix the bitmap. */ + check_skipped_lsn(info, lsn_korr(buff), 1, page); if ((uint) (buff[PAGE_TYPE_OFFSET] & PAGE_TYPE_MASK) == page_type) { empty_space= uint2korr(buff+EMPTY_SPACE_OFFSET); @@ -6731,6 +6733,7 @@ if (lsn_korr(buff) >= lsn) { /* Already applied */ + check_skipped_lsn(info, lsn_korr(buff), 1, page); pagecache_unlock_by_link(share->pagecache, page_link.link, PAGECACHE_LOCK_WRITE_UNLOCK, PAGECACHE_UNPIN, LSN_IMPOSSIBLE, @@ -6908,8 +6911,7 @@ if (lsn_korr(buff) >= lsn) { /* Already applied */ - DBUG_PRINT("info", ("already applied %llu >= %llu", - lsn_korr(buff), lsn)); + check_skipped_lsn(info, lsn_korr(buff), 1, page); pagecache_unlock_by_link(share->pagecache, page_link.link, PAGECACHE_LOCK_WRITE_UNLOCK, PAGECACHE_UNPIN, LSN_IMPOSSIBLE, diff -Nru mariadb-10.3-10.3.17/storage/maria/ma_check.c mariadb-10.3-10.3.20/storage/maria/ma_check.c --- mariadb-10.3-10.3.17/storage/maria/ma_check.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/maria/ma_check.c 2019-11-06 16:01:58.000000000 +0000 @@ -52,9 +52,6 @@ #ifdef HAVE_SYS_VADVISE_H #include #endif -#ifdef HAVE_SYS_MMAN_H -#include -#endif /* Functions defined in this file */ diff -Nru mariadb-10.3-10.3.17/storage/maria/ma_extra.c mariadb-10.3-10.3.20/storage/maria/ma_extra.c --- mariadb-10.3-10.3.17/storage/maria/ma_extra.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/maria/ma_extra.c 2019-11-06 16:01:58.000000000 +0000 @@ -14,9 +14,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ #include "maria_def.h" -#ifdef HAVE_SYS_MMAN_H -#include -#endif #include "ma_blockrec.h" static void maria_extra_keyflag(MARIA_HA *info, diff -Nru mariadb-10.3-10.3.17/storage/maria/ma_ft_nlq_search.c mariadb-10.3-10.3.20/storage/maria/ma_ft_nlq_search.c --- mariadb-10.3-10.3.17/storage/maria/ma_ft_nlq_search.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/maria/ma_ft_nlq_search.c 2019-11-06 16:01:58.000000000 +0000 @@ -79,13 +79,13 @@ MARIA_KEY key; float tmp_weight; DBUG_ENTER("walk_and_match"); - LINT_INIT_STRUCT(subkeys); word->weight=LWS_FOR_QUERY; _ma_ft_make_key(info, &key, aio->keynr, keybuff, word, 0); key.data_length-= HA_FT_WLEN; doc_cnt=0; + subkeys.i= 0; if (share->lock_key_trees) mysql_rwlock_rdlock(&share->keyinfo[aio->keynr].root_lock); diff -Nru mariadb-10.3-10.3.17/storage/maria/ma_key_recover.c mariadb-10.3-10.3.20/storage/maria/ma_key_recover.c --- mariadb-10.3-10.3.17/storage/maria/ma_key_recover.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/maria/ma_key_recover.c 2019-11-06 16:01:58.000000000 +0000 @@ -777,7 +777,7 @@ else if (lsn_korr(buff) >= lsn) { /* Already applied */ - DBUG_PRINT("info", ("Page is up to date, skipping redo")); + check_skipped_lsn(info, lsn_korr(buff), 0, root_page); result= 0; goto err; } @@ -865,6 +865,7 @@ if (lsn_korr(buff) >= lsn) { /* Already applied */ + check_skipped_lsn(info, lsn_korr(buff), 0, page); result= 0; goto err; } @@ -966,7 +967,7 @@ if (lsn_korr(buff) >= lsn) { /* Already applied */ - DBUG_PRINT("info", ("Page is up to date, skipping redo")); + check_skipped_lsn(info, lsn_korr(buff), 0, page_pos); result= 0; goto err; } diff -Nru mariadb-10.3-10.3.17/storage/maria/ma_loghandler.c mariadb-10.3-10.3.20/storage/maria/ma_loghandler.c --- mariadb-10.3-10.3.17/storage/maria/ma_loghandler.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/maria/ma_loghandler.c 2019-11-06 16:01:58.000000000 +0000 @@ -19,6 +19,9 @@ #include "ma_key_recover.h" /* For some in-write hooks */ #include "ma_checkpoint.h" #include "ma_servicethread.h" +#include "ma_recovery.h" +#include "ma_loghandler_lsn.h" +#include "ma_recovery_util.h" /* On Windows, neither my_open() nor mysql_file_sync() work for directories. @@ -7903,6 +7906,34 @@ } +/** + check_skipped_lsn + + Check if lsn skipped in redo is ok +*/ + +void check_skipped_lsn(MARIA_HA *info, LSN lsn, my_bool index_file, + pgcache_page_no_t page) +{ + if (lsn <= log_descriptor.horizon) + { + DBUG_PRINT("info", ("Page is up to date, skipping redo")); + } + else + { + /* Give error, but don't flood the log */ + if (skipped_lsn_err_count++ < 10 && ! info->s->redo_error_given++) + { + eprint(tracef, "Table %s has wrong LSN: " LSN_FMT " on page: %llu", + (index_file ? info->s->data_file_name.str : + info->s->index_file_name.str), + LSN_IN_PARTS(lsn), (ulonglong) page); + recovery_found_crashed_tables++; + } + } +} + + /* @brief Flushes buffers with LSNs in them less or equal address diff -Nru mariadb-10.3-10.3.17/storage/maria/ma_loghandler.h mariadb-10.3-10.3.20/storage/maria/ma_loghandler.h --- mariadb-10.3-10.3.17/storage/maria/ma_loghandler.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/maria/ma_loghandler.h 2019-11-06 16:01:58.000000000 +0000 @@ -384,6 +384,8 @@ void translog_soft_sync_end(void); void translog_sync(); void translog_set_group_commit_interval(uint32 interval); +extern void check_skipped_lsn(MARIA_HA *info, LSN lsn, my_bool index_file, + pgcache_page_no_t page); /* all the rest added because of recovery; should we make diff -Nru mariadb-10.3-10.3.17/storage/maria/ma_packrec.c mariadb-10.3-10.3.20/storage/maria/ma_packrec.c --- mariadb-10.3-10.3.17/storage/maria/ma_packrec.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/maria/ma_packrec.c 2019-11-06 16:01:58.000000000 +0000 @@ -1528,9 +1528,6 @@ /***************************************************************************** Some redefined functions to handle files when we are using memmap *****************************************************************************/ -#ifdef HAVE_SYS_MMAN_H -#include -#endif #ifdef HAVE_MMAP diff -Nru mariadb-10.3-10.3.17/storage/maria/ma_recovery.c mariadb-10.3-10.3.20/storage/maria/ma_recovery.c --- mariadb-10.3-10.3.17/storage/maria/ma_recovery.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/maria/ma_recovery.c 2019-11-06 16:01:58.000000000 +0000 @@ -57,8 +57,7 @@ static ulong skipped_undo_phase; static ulonglong now; /**< for tracking execution time of phases */ static void (*save_error_handler_hook)(uint, const char *,myf); -static uint recovery_warnings; /**< count of warnings */ -static uint recovery_found_crashed_tables; +static ulong recovery_warnings; /**< count of warnings */ HASH tables_to_redo; /* For maria_read_log */ ulong maria_recovery_force_crash_counter; TrID max_long_trid= 0; /**< max long trid seen by REDO phase */ @@ -291,6 +290,7 @@ DBUG_ASSERT(apply == MARIA_LOG_APPLY || !should_run_undo_phase); DBUG_ASSERT(!maria_multi_threaded); recovery_warnings= recovery_found_crashed_tables= 0; + skipped_lsn_err_count= 0; maria_recovery_changed_data= 0; /* checkpoints can happen only if TRNs have been built */ DBUG_ASSERT(should_run_undo_phase || !take_checkpoints); diff -Nru mariadb-10.3-10.3.17/storage/maria/ma_recovery.h mariadb-10.3-10.3.20/storage/maria/ma_recovery.h --- mariadb-10.3-10.3.17/storage/maria/ma_recovery.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/maria/ma_recovery.h 2019-11-06 16:01:58.000000000 +0000 @@ -33,4 +33,6 @@ /* Table of tables to recover */ extern HASH tables_to_redo; extern ulong maria_recovery_force_crash_counter; +extern ulong recovery_found_crashed_tables; +extern uint skipped_lsn_err_count; C_MODE_END diff -Nru mariadb-10.3-10.3.17/storage/maria/ma_recovery_util.c mariadb-10.3-10.3.20/storage/maria/ma_recovery_util.c --- mariadb-10.3-10.3.17/storage/maria/ma_recovery_util.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/maria/ma_recovery_util.c 2019-11-06 16:01:58.000000000 +0000 @@ -51,6 +51,8 @@ my_bool procent_printed; FILE *tracef; /**< trace file for debugging */ +ulong recovery_found_crashed_tables; +uint skipped_lsn_err_count; /** @brief Prints to a trace file if it is not NULL */ void tprint(FILE *trace_file __attribute__ ((unused)), @@ -59,11 +61,12 @@ va_list args; #ifndef DBUG_OFF { - char buff[1024], *end; + char buff[1024]; + size_t length; va_start(args, format); - vsnprintf(buff, sizeof(buff)-1, format, args); - if (*(end= strend(buff)) == '\n') - *end= 0; /* Don't print end \n */ + length= my_vsnprintf(buff, sizeof(buff)-1, format, args); + if (length && buff[length-1] == '\n') + buff[length-1]= 0; /* Don't print end \n */ DBUG_PRINT("info", ("%s", buff)); va_end(args); } diff -Nru mariadb-10.3-10.3.17/storage/maria/maria_chk.c mariadb-10.3-10.3.20/storage/maria/maria_chk.c --- mariadb-10.3-10.3.17/storage/maria/maria_chk.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/maria/maria_chk.c 2019-11-06 16:01:58.000000000 +0000 @@ -23,9 +23,6 @@ #include #include #include -#ifdef HAVE_SYS_MMAN_H -#include -#endif static uint decode_bits; static char **default_argv; @@ -1006,6 +1003,7 @@ int error,lock_type,recreate; uint warning_printed_by_chk_status; my_bool rep_quick= MY_TEST(param->testflag & (T_QUICK | T_FORCE_UNIQUENESS)); + my_bool born_transactional; MARIA_HA *info; File datafile; char llbuff[22],llbuff2[22]; @@ -1448,6 +1446,7 @@ maria_lock_database(info, F_UNLCK); end2: + born_transactional= share->base.born_transactional; if (maria_close(info)) { _ma_check_print_error(param, default_close_errmsg, my_errno, filename); @@ -1463,7 +1462,7 @@ MYF(MY_REDEL_MAKE_BACKUP) : MYF(0))); } if (opt_transaction_logging && - share->base.born_transactional && !error && + born_transactional && !error && (param->testflag & (T_REP_ANY | T_SORT_RECORDS | T_SORT_INDEX | T_ZEROFILL))) error= write_log_record(param); diff -Nru mariadb-10.3-10.3.17/storage/maria/maria_def.h mariadb-10.3-10.3.20/storage/maria/maria_def.h --- mariadb-10.3-10.3.17/storage/maria/maria_def.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/maria/maria_def.h 2019-11-06 16:01:58.000000000 +0000 @@ -500,6 +500,7 @@ my_bool have_versioning; my_bool key_del_used; /* != 0 if key_del is locked */ my_bool deleting; /* we are going to delete this table */ + my_bool redo_error_given; /* Used during recovery */ THR_LOCK lock; void (*lock_restore_status)(void *); /** @@ -641,6 +642,7 @@ invalidator_by_filename invalidator; /* query cache invalidator */ ulonglong last_auto_increment; /* auto value at start of statement */ ulonglong row_changes; /* Incremented for each change */ + ulonglong start_row_changes; /* Row changes since start trans */ ulong this_unique; /* uniq filenumber or thread */ ulong last_unique; /* last unique number */ ulong this_loop; /* counter for this open */ diff -Nru mariadb-10.3-10.3.17/storage/maria/ma_state.c mariadb-10.3-10.3.20/storage/maria/ma_state.c --- mariadb-10.3-10.3.17/storage/maria/ma_state.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/maria/ma_state.c 2019-11-06 16:01:58.000000000 +0000 @@ -455,7 +455,7 @@ MARIA_USED_TABLES *tables, *next; DBUG_ENTER("_ma_trnman_end_trans_hook"); DBUG_PRINT("enter", ("trn: %p used_tables: %p", trn, trn->used_tables)); - + for (tables= (MARIA_USED_TABLES*) trn->used_tables; tables; tables= next) @@ -572,6 +572,7 @@ TRN *trn= info->trn; MARIA_USED_TABLES *tables, **prev; MARIA_HA *handler, **prev_file; + uint unlinked= 0; DBUG_ENTER("_ma_remove_table_from_trnman"); DBUG_PRINT("enter", ("trn: %p used_tables: %p share: %p in_trans: %d", trn, trn->used_tables, share, share->in_trans)); @@ -580,7 +581,7 @@ if (trn == &dummy_transaction_object) DBUG_VOID_RETURN; - + /* First remove share from used_tables */ for (prev= (MARIA_USED_TABLES**) (char*) &trn->used_tables; (tables= *prev); @@ -594,7 +595,7 @@ break; } } - if (tables != 0) + if (!tables) { /* This can only happens in case of rename of intermediate table as @@ -603,18 +604,21 @@ DBUG_PRINT("warning", ("share: %p where not in used_tables_list", share)); } - /* unlink table from used_instances */ - for (prev_file= (MARIA_HA**) &trn->used_instances; - (handler= *prev_file); - prev_file= &handler->trn_next) + /* unlink all instances of the table from used_instances */ + prev_file= (MARIA_HA**) &trn->used_instances; + while ((handler= *prev_file)) { - if (handler == info) + if (handler->s == share) { - *prev_file= info->trn_next; - break; + unlinked++; + *prev_file= handler->trn_next; /* Remove instance */ } + else + prev_file= &handler->trn_next; /* Continue with next instance */ } - if (handler != 0) + + DBUG_PRINT("note", ("unlinked tables: %u", unlinked)); + if (!unlinked) { /* This can only happens in case of rename of intermediate table as diff -Nru mariadb-10.3-10.3.17/storage/mroonga/ha_mroonga.cpp mariadb-10.3-10.3.20/storage/mroonga/ha_mroonga.cpp --- mariadb-10.3-10.3.17/storage/mroonga/ha_mroonga.cpp 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/mroonga/ha_mroonga.cpp 2019-11-06 16:01:58.000000000 +0000 @@ -9005,10 +9005,12 @@ grn_obj *range = grn_ctx_at(ctx, grn_obj_get_range(ctx, column)); if (!range) { + grn_obj_unlink(ctx, column); DBUG_RETURN(false); } if (!mrn::grn::is_table(range)) { + grn_obj_unlink(ctx, column); DBUG_RETURN(false); } @@ -9022,6 +9024,7 @@ DBUG_RETURN(true); } + grn_obj_unlink(ctx, column); DBUG_RETURN(false); } diff -Nru mariadb-10.3-10.3.17/storage/mroonga/ha_mroonga.hpp mariadb-10.3-10.3.20/storage/mroonga/ha_mroonga.hpp --- mariadb-10.3-10.3.17/storage/mroonga/ha_mroonga.hpp 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/mroonga/ha_mroonga.hpp 2019-11-06 16:01:58.000000000 +0000 @@ -571,7 +571,12 @@ void set_next_insert_id(ulonglong id); void get_auto_increment(ulonglong offset, ulonglong increment, ulonglong nb_desired_values, ulonglong *first_value, ulonglong *nb_reserved_values) mrn_override; - void restore_auto_increment(ulonglong prev_insert_id); + /** Fix spurious -Werror=overloaded-virtual in GCC 9 */ + void restore_auto_increment() mrn_override + { + handler::restore_auto_increment(); + } + void restore_auto_increment(ulonglong prev_insert_id) mrn_override; void release_auto_increment() mrn_override; int check_for_upgrade(HA_CHECK_OPT *check_opt) mrn_override; #ifdef MRN_HANDLER_HAVE_RESET_AUTO_INCREMENT diff -Nru mariadb-10.3-10.3.17/storage/mroonga/mysql-test/mroonga/include/mroonga/have_mroonga_deinit.inc mariadb-10.3-10.3.20/storage/mroonga/mysql-test/mroonga/include/mroonga/have_mroonga_deinit.inc --- mariadb-10.3-10.3.17/storage/mroonga/mysql-test/mroonga/include/mroonga/have_mroonga_deinit.inc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/mroonga/mysql-test/mroonga/include/mroonga/have_mroonga_deinit.inc 2019-11-06 16:01:58.000000000 +0000 @@ -33,4 +33,10 @@ UNINSTALL PLUGIN mroonga; } +# Some test re-creates the test database. Put it back in the +# original character set +--source include/default_charset.inc +disable_query_log; +drop database test; +create database test; enable_query_log; diff -Nru mariadb-10.3-10.3.17/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_select_varchar.result mariadb-10.3-10.3.20/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_select_varchar.result --- mariadb-10.3-10.3.17/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_select_varchar.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/mroonga/mysql-test/mroonga/storage/r/index_multiple_column_select_varchar.result 2019-11-06 16:01:58.000000000 +0000 @@ -6,6 +6,8 @@ score int not null, primary key property (given_name, family_name, score) ) default charset utf8; +Warnings: +Warning 1280 Name 'property' ignored for PRIMARY key. show create table scores; Table Create Table scores CREATE TABLE `scores` ( diff -Nru mariadb-10.3-10.3.17/storage/mroonga/vendor/groonga/lib/ts/ts_expr_node.c mariadb-10.3-10.3.20/storage/mroonga/vendor/groonga/lib/ts/ts_expr_node.c --- mariadb-10.3-10.3.17/storage/mroonga/vendor/groonga/lib/ts/ts_expr_node.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/mroonga/vendor/groonga/lib/ts/ts_expr_node.c 2019-11-06 16:01:58.000000000 +0000 @@ -5173,7 +5173,7 @@ { grn_ts_expr_node *node = *node_ptr, **in_ptr = NULL; while ((node->data_kind & ~GRN_TS_VECTOR_FLAG) == GRN_TS_REF) { - grn_ts_expr_node *new_node; + grn_ts_expr_node *new_node= 0; grn_rc rc = grn_ts_expr_node_deref_once(ctx, node, &new_node); if (rc != GRN_SUCCESS) { if (in_ptr) { diff -Nru mariadb-10.3-10.3.17/storage/mroonga/vendor/groonga/lib/ts.c mariadb-10.3-10.3.20/storage/mroonga/vendor/groonga/lib/ts.c --- mariadb-10.3-10.3.17/storage/mroonga/vendor/groonga/lib/ts.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/mroonga/vendor/groonga/lib/ts.c 2019-11-06 16:01:58.000000000 +0000 @@ -683,7 +683,7 @@ grn_ts_select_output(grn_ctx *ctx, grn_obj *table, grn_ts_str str, const grn_ts_record *in, size_t n_in, size_t n_hits) { - grn_ts_writer *writer; + grn_ts_writer *writer= 0; grn_rc rc = grn_ts_writer_open(ctx, table, str, &writer); if (rc != GRN_SUCCESS) { return rc; diff -Nru mariadb-10.3-10.3.17/storage/myisam/ft_boolean_search.c mariadb-10.3-10.3.20/storage/myisam/ft_boolean_search.c --- mariadb-10.3-10.3.17/storage/myisam/ft_boolean_search.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/ft_boolean_search.c 2019-11-06 16:01:58.000000000 +0000 @@ -335,7 +335,7 @@ When performing prefix search (a word with truncation operator), we must preserve original prefix to ensure that characters which may be expanded/contracted do not break the prefix. This is done by storing - newly found key immediatly after the original word in ftbw->word + newly found key immediately after the original word in ftbw->word buffer. ftbw->word= LENGTH WORD [ LENGTH1 WORD1 ] WEIGHT REFERENCE diff -Nru mariadb-10.3-10.3.17/storage/myisam/ft_nlq_search.c mariadb-10.3-10.3.20/storage/myisam/ft_nlq_search.c --- mariadb-10.3-10.3.17/storage/myisam/ft_nlq_search.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/ft_nlq_search.c 2019-11-06 16:01:58.000000000 +0000 @@ -77,13 +77,13 @@ uint extra= HA_FT_WLEN + info->s->rec_reflength; float tmp_weight; DBUG_ENTER("walk_and_match"); - LINT_INIT_STRUCT(subkeys); word->weight=LWS_FOR_QUERY; keylen=_ft_make_key(info,aio->keynr,keybuff,word,0); keylen-=HA_FT_WLEN; doc_cnt=0; + subkeys.i= 0; if (share->concurrent_insert) mysql_rwlock_rdlock(&share->key_root_lock[aio->keynr]); diff -Nru mariadb-10.3-10.3.17/storage/myisam/ha_myisam.cc mariadb-10.3-10.3.20/storage/myisam/ha_myisam.cc --- mariadb-10.3-10.3.17/storage/myisam/ha_myisam.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/ha_myisam.cc 2019-11-06 16:01:58.000000000 +0000 @@ -769,8 +769,8 @@ growing files. Using an open_flag instead of calling mi_extra(... HA_EXTRA_MMAP ...) after mi_open() has the advantage that the mapping is not repeated for every open, but just done on the initial - open, when the MyISAM share is created. Everytime the server - requires to open a new instance of a table it calls this method. We + open, when the MyISAM share is created. Every time the server + requires opening a new instance of a table it calls this method. We will always supply HA_OPEN_MMAP for a permanent table. However, the MyISAM storage engine will ignore this flag if this is a secondary open of a table that is in use by other threads already (if the diff -Nru mariadb-10.3-10.3.17/storage/myisam/mi_check.c mariadb-10.3-10.3.20/storage/myisam/mi_check.c --- mariadb-10.3-10.3.17/storage/myisam/mi_check.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/mi_check.c 2019-11-06 16:01:58.000000000 +0000 @@ -46,9 +46,6 @@ #ifdef HAVE_SYS_VADVISE_H #include #endif -#ifdef HAVE_SYS_MMAN_H -#include -#endif #include "rt_index.h" #include @@ -282,7 +279,7 @@ /* Read the key block with MI_MIN_KEY_BLOCK_LENGTH to find next link. If the key cache block size is smaller than block_size, we can so - avoid unecessary eviction of cache block. + avoid unnecessary eviction of cache block. */ if (!(buff=key_cache_read(info->s->key_cache, info->s->kfile, next_link, DFLT_INIT_HITS, @@ -1896,7 +1893,7 @@ } /* flush_blocks */ - /* Sort index for more efficent reads */ + /* Sort index for more efficient reads */ int mi_sort_index(HA_CHECK *param, register MI_INFO *info, char * name) { @@ -3051,13 +3048,13 @@ /* Destroy the write cache. The master thread did already detach from the share by remove_io_thread() or it was not yet started (if the - error happend before creating the thread). + error happened before creating the thread). */ (void) end_io_cache(&info->rec_cache); /* Destroy the new data cache in case of non-quick repair. All slave threads did either detach from the share by remove_io_thread() - already or they were not yet started (if the error happend before + already or they were not yet started (if the error happened before creating the threads). */ if (!rep_quick && my_b_inited(&new_data_cache)) @@ -4598,7 +4595,7 @@ keypart_k=c_k for arbitrary constants c_1 ... c_k) = {assuming that values have uniform distribution and index contains all - tuples from the domain (or that {c_1, ..., c_k} tuple is choosen from + tuples from the domain (or that {c_1, ..., c_k} tuple is chosen from index tuples} = #tuples-in-the-index / #distinct-tuples-in-the-index. diff -Nru mariadb-10.3-10.3.17/storage/myisam/mi_create.c mariadb-10.3-10.3.20/storage/myisam/mi_create.c --- mariadb-10.3-10.3.17/storage/myisam/mi_create.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/mi_create.c 2019-11-06 16:01:58.000000000 +0000 @@ -611,7 +611,7 @@ klinkname_ptr= klinkname; /* Don't create the table if the link or file exists to ensure that one - doesn't accidently destroy another table. + doesn't accidentally destroy another table. */ create_flag=0; } diff -Nru mariadb-10.3-10.3.17/storage/myisam/mi_delete.c mariadb-10.3-10.3.20/storage/myisam/mi_delete.c --- mariadb-10.3-10.3.17/storage/myisam/mi_delete.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/mi_delete.c 2019-11-06 16:01:58.000000000 +0000 @@ -326,7 +326,7 @@ { DBUG_PRINT("error",("Didn't find key")); mi_print_error(info->s, HA_ERR_CRASHED); - my_errno=HA_ERR_CRASHED; /* This should never happend */ + my_errno=HA_ERR_CRASHED; /* This should never happen */ goto err; } save_flag=0; diff -Nru mariadb-10.3-10.3.17/storage/myisam/mi_dynrec.c mariadb-10.3-10.3.20/storage/myisam/mi_dynrec.c --- mariadb-10.3-10.3.17/storage/myisam/mi_dynrec.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/mi_dynrec.c 2019-11-06 16:01:58.000000000 +0000 @@ -885,8 +885,8 @@ /* Check if next block is a deleted block Above we have MI_MIN_BLOCK_LENGTH to avoid the problem where - the next block is so small it can't be splited which could - casue problems + the next block is so small it can't be split which could + cause problems */ MI_BLOCK_INFO del_block; diff -Nru mariadb-10.3-10.3.17/storage/myisam/mi_extra.c mariadb-10.3-10.3.20/storage/myisam/mi_extra.c --- mariadb-10.3-10.3.17/storage/myisam/mi_extra.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/mi_extra.c 2019-11-06 16:01:58.000000000 +0000 @@ -15,9 +15,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ #include "myisamdef.h" -#ifdef HAVE_SYS_MMAN_H -#include -#endif static void mi_extra_keyflag(MI_INFO *info, enum ha_extra_function function); @@ -211,7 +208,7 @@ info->read_record= share->read_record; info->opt_flag&= ~(KEY_READ_USED | REMEMBER_OLD_POS); break; - case HA_EXTRA_NO_USER_CHANGE: /* Database is somehow locked agains changes */ + case HA_EXTRA_NO_USER_CHANGE: /* Database is somehow locked against changes */ info->lock_type= F_EXTRA_LCK; /* Simulate as locked */ break; case HA_EXTRA_WAIT_LOCK: @@ -352,7 +349,7 @@ if (share->base.blobs) mi_alloc_rec_buff(info, -1, &info->rec_buff); break; - case HA_EXTRA_NORMAL: /* Theese isn't in use */ + case HA_EXTRA_NORMAL: /* These aren't in use */ info->quick_mode=0; break; case HA_EXTRA_QUICK: diff -Nru mariadb-10.3-10.3.17/storage/myisam/mi_key.c mariadb-10.3-10.3.20/storage/myisam/mi_key.c --- mariadb-10.3-10.3.17/storage/myisam/mi_key.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/mi_key.c 2019-11-06 16:01:58.000000000 +0000 @@ -603,7 +603,7 @@ } /* - The following code works becasue if s_value < 0 then value is 0 + The following code works because if s_value < 0 then value is 0 and if s_value == 0 then value will contain either s_value or the correct value. */ diff -Nru mariadb-10.3-10.3.17/storage/myisam/mi_locking.c mariadb-10.3-10.3.20/storage/myisam/mi_locking.c --- mariadb-10.3-10.3.17/storage/myisam/mi_locking.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/mi_locking.c 2019-11-06 16:01:58.000000000 +0000 @@ -446,7 +446,7 @@ @param org_table @param new_table that should point on org_lock. new_table is 0 - in case this is the first occurence of the table in the lock + in case this is the first occurrence of the table in the lock structure. */ diff -Nru mariadb-10.3-10.3.17/storage/myisam/mi_packrec.c mariadb-10.3-10.3.20/storage/myisam/mi_packrec.c --- mariadb-10.3-10.3.17/storage/myisam/mi_packrec.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/mi_packrec.c 2019-11-06 16:01:58.000000000 +0000 @@ -810,7 +810,7 @@ return &uf_varchar2; case FIELD_LAST: default: - return 0; /* This should never happend */ + return 0; /* This should never happen */ } } @@ -1479,9 +1479,6 @@ /***************************************************************************** Some redefined functions to handle files when we are using memmap *****************************************************************************/ -#ifdef HAVE_SYS_MMAN_H -#include -#endif #ifdef HAVE_MMAP diff -Nru mariadb-10.3-10.3.17/storage/myisam/mi_rfirst.c mariadb-10.3-10.3.20/storage/myisam/mi_rfirst.c --- mariadb-10.3-10.3.17/storage/myisam/mi_rfirst.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/mi_rfirst.c 2019-11-06 16:01:58.000000000 +0000 @@ -16,7 +16,7 @@ #include "myisamdef.h" - /* Read first row through a specfic key */ + /* Read first row through a specific key */ int mi_rfirst(MI_INFO *info, uchar *buf, int inx) { diff -Nru mariadb-10.3-10.3.17/storage/myisam/mi_search.c mariadb-10.3-10.3.20/storage/myisam/mi_search.c --- mariadb-10.3-10.3.17/storage/myisam/mi_search.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/mi_search.c 2019-11-06 16:01:58.000000000 +0000 @@ -432,7 +432,7 @@ /* If prefix_len > cmplen then we are in the end-space comparison - phase. Do not try to acces the key any more ==> left= 0. + phase. Do not try to access the key any more ==> left= 0. */ left= ((len <= cmplen) ? suffix_len : ((prefix_len < cmplen) ? cmplen - prefix_len : 0)); diff -Nru mariadb-10.3-10.3.17/storage/myisam/mi_test_all.sh mariadb-10.3-10.3.20/storage/myisam/mi_test_all.sh --- mariadb-10.3-10.3.17/storage/myisam/mi_test_all.sh 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/mi_test_all.sh 2019-11-06 16:01:58.000000000 +0000 @@ -19,8 +19,8 @@ # MA 02110-1335 USA # -# Execute some simple basic test on MyISAM libary to check if things -# works at all. +# Execute some simple basic tests on the MyISAM library to check if +# things work at all. valgrind="valgrind --alignment=8 --leak-check=yes" silent="-s" diff -Nru mariadb-10.3-10.3.17/storage/myisam/myisamchk.c mariadb-10.3-10.3.20/storage/myisam/myisamchk.c --- mariadb-10.3-10.3.17/storage/myisam/myisamchk.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/myisamchk.c 2019-11-06 16:01:58.000000000 +0000 @@ -21,9 +21,6 @@ #include #include #include -#ifdef HAVE_SYS_MMAN_H -#include -#endif static uint decode_bits; static char **default_argv; @@ -378,7 +375,7 @@ puts("Check options (check is the default action for myisamchk):\n\ -c, --check Check table for errors.\n\ - -e, --extend-check Check the table VERY throughly. Only use this in\n\ + -e, --extend-check Check the table VERY thoroughly. Only use this in\n\ extreme cases as myisamchk should normally be able to\n\ find out if the table is ok even without this switch.\n\ -F, --fast Check only tables that haven't been closed properly.\n\ diff -Nru mariadb-10.3-10.3.17/storage/myisam/myisamdef.h mariadb-10.3-10.3.20/storage/myisam/myisamdef.h --- mariadb-10.3-10.3.17/storage/myisam/myisamdef.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/myisamdef.h 2019-11-06 16:01:58.000000000 +0000 @@ -197,7 +197,7 @@ ulong last_process; /* For table-change-check */ ulong last_version; /* Version on start */ ulong options; /* Options used */ - ulong min_pack_length; /* Theese are used by packed data */ + ulong min_pack_length; /* These are used by packed data */ ulong max_pack_length; ulong state_diff_length; uint rec_reflength; /* rec_reflength in use now */ diff -Nru mariadb-10.3-10.3.17/storage/myisam/myisamlog.c mariadb-10.3-10.3.20/storage/myisam/myisamlog.c --- mariadb-10.3-10.3.17/storage/myisam/myisamlog.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/myisamlog.c 2019-11-06 16:01:58.000000000 +0000 @@ -415,7 +415,7 @@ left_root_right); file_info.id=open_param.max_id+1; /* - * In the line below +10 is added to accomodate '<' and '>' chars + * In the line below +10 is added to accommodate '<' and '>' chars * plus '\0' at the end, so that there is place for 7 digits. * It is improbable that same table can have that many entries in * the table cache. diff -Nru mariadb-10.3-10.3.17/storage/myisam/myisampack.c mariadb-10.3-10.3.20/storage/myisam/myisampack.c --- mariadb-10.3-10.3.17/storage/myisam/myisampack.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/myisampack.c 2019-11-06 16:01:58.000000000 +0000 @@ -110,7 +110,7 @@ MI_INFO **file,**current,**end; uint free_file; uint count; - uint min_pack_length; /* Theese is used by packed data */ + uint min_pack_length; /* These are used by packed data */ uint max_pack_length; uint ref_length; uint max_blob_length; @@ -1237,7 +1237,7 @@ huff_counts->counts[0]=0; goto found_pack; } - /* Remeber the number of significant spaces. */ + /* Remember the number of significant spaces. */ old_space_count=huff_counts->counts[' ']; /* Add all leading and trailing spaces. */ huff_counts->counts[' ']+= (huff_counts->tot_end_space + diff -Nru mariadb-10.3-10.3.17/storage/myisam/NEWS mariadb-10.3-10.3.20/storage/myisam/NEWS --- mariadb-10.3-10.3.17/storage/myisam/NEWS 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/NEWS 2019-11-06 16:01:58.000000000 +0000 @@ -26,7 +26,7 @@ - Index on BLOB and VARCHAR. - One can now have NULL in an index. This takes 0-1 bytes / key. - MYISAM will allow one to specify one AUTO_INCREMENT column; MYISAM will - automaticly update this on INSERT/UPDATE. The AUTO_INCREMENT value can be + automatically update this on INSERT/UPDATE. The AUTO_INCREMENT value can be reset with myisamchk. - Max key length will be 500 by default; In cases of longer keys than 250, a bigger key block size than the default of 1024 byes is used for this key. @@ -39,7 +39,7 @@ - 'myisamchk -a' stores statistic for key parts (and not only for whole keys as in NISAM). - Dynamic size rows will now be much less fragmented when mixing deletes with - update and insert. This is done by automaticly combine adjacent deleted + update and insert. This is done by automatically combining adjacent deleted blocks and by extending blocks if the next block is deleted. - For dynamic size rows, the delete link contains a pointer to itself (to make repairs easier). diff -Nru mariadb-10.3-10.3.17/storage/myisam/sort.c mariadb-10.3-10.3.20/storage/myisam/sort.c --- mariadb-10.3-10.3.17/storage/myisam/sort.c 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/myisam/sort.c 2019-11-06 16:01:58.000000000 +0000 @@ -859,7 +859,7 @@ buffpek Where to read from sort_length max length to read RESULT - > 0 Ammount of bytes read + > 0 Number of bytes read -1 Error */ diff -Nru mariadb-10.3-10.3.17/storage/perfschema/pfs_instr.cc mariadb-10.3-10.3.20/storage/perfschema/pfs_instr.cc --- mariadb-10.3-10.3.17/storage/perfschema/pfs_instr.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/perfschema/pfs_instr.cc 2019-11-06 16:01:58.000000000 +0000 @@ -1265,7 +1265,6 @@ char dirbuffer[FN_REFLEN]; size_t dirlen; const char *normalized_filename; - int normalized_length; dirlen= dirname_length(safe_filename); if (dirlen == 0) @@ -1296,7 +1295,7 @@ *buf_end= '\0'; normalized_filename= buffer; - normalized_length= (int)strlen(normalized_filename); + uint normalized_length= static_cast(strlen(normalized_filename)); PFS_file **entry; uint retry_count= 0; @@ -1345,7 +1344,7 @@ pfs->m_class= klass; pfs->m_enabled= klass->m_enabled && flag_global_instrumentation; pfs->m_timed= klass->m_timed; - strncpy(pfs->m_filename, normalized_filename, normalized_length); + strncpy(pfs->m_filename, normalized_filename, normalized_length + 1); pfs->m_filename[normalized_length]= '\0'; pfs->m_filename_length= normalized_length; pfs->m_file_stat.m_open_count= 1; diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/ha_rocksdb.cc mariadb-10.3-10.3.20/storage/rocksdb/ha_rocksdb.cc --- mariadb-10.3-10.3.17/storage/rocksdb/ha_rocksdb.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/ha_rocksdb.cc 2019-11-06 16:01:58.000000000 +0000 @@ -2306,6 +2306,8 @@ bool m_is_delayed_snapshot = false; bool m_is_two_phase = false; + std::unordered_set modified_tables; + private: /* Number of write operations this transaction had when we took the last @@ -3001,6 +3003,26 @@ virtual void start_tx() = 0; virtual void start_stmt() = 0; + protected: + // Non-virtual functions with actions to be done on transaction start and + // commit. + void on_commit() { + time_t tm; + tm = time(nullptr); + for (auto &it : modified_tables) { + it->m_update_time = tm; + } + modified_tables.clear(); + } + void on_rollback() { + modified_tables.clear(); + } + public: + // Inform the transaction that this table was modified + void log_table_write_op(Rdb_tbl_def *tbl) { + modified_tables.insert(tbl); + } + void set_initial_savepoint() { /* Set the initial savepoint. If the first statement in the transaction @@ -3185,7 +3207,9 @@ goto error; } + on_commit(); error: + on_rollback(); /* Save the transaction object to be reused */ release_tx(); @@ -3201,6 +3225,7 @@ public: void rollback() override { + on_rollback(); m_write_count = 0; m_insert_count = 0; m_update_count = 0; @@ -3522,7 +3547,9 @@ res = true; goto error; } + on_commit(); error: + on_rollback(); reset(); m_write_count = 0; @@ -3555,6 +3582,7 @@ } void rollback() override { + on_rollback(); m_write_count = 0; m_insert_count = 0; m_update_count = 0; @@ -5836,11 +5864,11 @@ // Disown the cache data since we're shutting down. // This results in memory leaks but it improved the shutdown time. // Don't disown when running under valgrind -#ifndef HAVE_purify +#ifndef HAVE_valgrind if (rocksdb_tbl_options->block_cache) { rocksdb_tbl_options->block_cache->DisownData(); } -#endif /* HAVE_purify */ +#endif /* HAVE_valgrind */ /* MariaDB: don't clear rocksdb_db_options and rocksdb_tbl_options. @@ -10335,6 +10363,8 @@ row_info.tx->incr_insert_count(); } + row_info.tx->log_table_write_op(m_tbl_def); + if (do_bulk_commit(row_info.tx)) { DBUG_RETURN(HA_ERR_ROCKSDB_BULK_LOAD); } @@ -10814,6 +10844,7 @@ } tx->incr_delete_count(); + tx->log_table_write_op(m_tbl_def); if (do_bulk_commit(tx)) { DBUG_RETURN(HA_ERR_ROCKSDB_BULK_LOAD); @@ -11008,6 +11039,12 @@ k->rec_per_key[j] = x; } } + + stats.create_time = m_tbl_def->get_create_time(); + } + + if (flag & HA_STATUS_TIME) { + stats.update_time = m_tbl_def->m_update_time; } if (flag & HA_STATUS_ERRKEY) { @@ -14316,6 +14353,8 @@ // then there's no point to proceed. if (!Rdb_cf_options::parse_cf_options(str, &option_map)) { my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), "rocksdb_update_cf_options", str); + // Free what we've copied with my_strdup above. + my_free((void*)(*(const char **)save)); return HA_EXIT_FAILURE; } // Loop through option_map and create missing column families diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/include/bulk_load.inc mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/include/bulk_load.inc --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/include/bulk_load.inc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/include/bulk_load.inc 2019-11-06 16:01:58.000000000 +0000 @@ -121,12 +121,12 @@ --remove_file $file # Make sure row count index stats are correct ---replace_column 6 # 7 # 8 # 9 # +--replace_column 6 # 7 # 8 # 9 # 12 # 13 # SHOW TABLE STATUS WHERE name LIKE 't%'; ANALYZE TABLE t1, t2, t3; ---replace_column 6 # 7 # 8 # 9 # +--replace_column 6 # 7 # 8 # 9 # 12 # 13 # SHOW TABLE STATUS WHERE name LIKE 't%'; # Make sure all the data is there. diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/include/bulk_load_unsorted.inc mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/include/bulk_load_unsorted.inc --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/include/bulk_load_unsorted.inc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/include/bulk_load_unsorted.inc 2019-11-06 16:01:58.000000000 +0000 @@ -121,12 +121,12 @@ --remove_file $file # Make sure row count index stats are correct ---replace_column 6 # 7 # 8 # 9 # +--replace_column 6 # 7 # 8 # 9 # 12 # 13 # SHOW TABLE STATUS WHERE name LIKE 't%'; ANALYZE TABLE t1, t2, t3; ---replace_column 6 # 7 # 8 # 9 # +--replace_column 6 # 7 # 8 # 9 # 12 # 13 # SHOW TABLE STATUS WHERE name LIKE 't%'; # Make sure all the data is there. diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/include/group_min_max.inc mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/include/group_min_max.inc --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/include/group_min_max.inc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/include/group_min_max.inc 2019-11-06 16:01:58.000000000 +0000 @@ -10,6 +10,8 @@ # - C IS NOT NULL # - HAVING clause +--source include/default_optimizer_switch.inc + --disable_warnings drop table if exists t1; --enable_warnings @@ -266,6 +268,17 @@ # B) Equalities only over the non-group 'B' attributes # plans +--echo # +--echo # MariaDB: we dont have the following patch: +--echo # +--echo # commit 60a92a79a3b7fde3c6efe91799e344b977c8e5c3 +--echo # Author: Manuel Ung +--echo # Date: Thu Apr 19 23:06:27 2018 -0700 +--echo # +--echo # Enhance group-by loose index scan +--echo # +--echo # So the following results are not very meaningful, but are still kept here + explain select a1,a2,b,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1; explain select a1,a2,b,max(c),min(c) from t1 where (a2 = 'a' or a2 = 'b') and (b = 'b') group by a1; explain select a1,a2,b,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b' or b = 'a') group by a1; @@ -730,9 +743,9 @@ explain extended select sum(ord(a1)) from t1 where (a1 > 'a') group by a1,a2,b; # test multi_range_groupby flag -set optimizer_switch = 'multi_range_groupby=off'; +#MariaDB: no support: set optimizer_switch = 'multi_range_groupby=off'; explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'a' or b = 'b') group by a1; -set optimizer_switch = 'default'; +#set optimizer_switch = 'default'; explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'a' or b = 'b') group by a1; @@ -1361,41 +1374,41 @@ eval CREATE TABLE t (a INT, b INT, KEY(a,b)) engine=$engine; INSERT INTO t VALUES (1,1), (2,2), (3,3), (4,4), (1,0), (3,2), (4,5); ANALYZE TABLE t; -let $DEFAULT_TRACE_MEM_SIZE=1048576; # 1MB -eval set optimizer_trace_max_mem_size=$DEFAULT_TRACE_MEM_SIZE; -set @@session.optimizer_trace='enabled=on'; -set end_markers_in_json=on; +# MariaDB: 10.2 doesn't have trace, yet: let $DEFAULT_TRACE_MEM_SIZE=1048576; # 1MB +# eval set optimizer_trace_max_mem_size=$DEFAULT_TRACE_MEM_SIZE; +# set @@session.optimizer_trace='enabled=on'; +# set end_markers_in_json=on; ANALYZE TABLE t; SELECT a, SUM(DISTINCT a), MIN(b) FROM t GROUP BY a; EXPLAIN SELECT a, SUM(DISTINCT a), MIN(b) FROM t GROUP BY a; -SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK - FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; +#SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK +# FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; SELECT a, SUM(DISTINCT a), MAX(b) FROM t GROUP BY a; EXPLAIN SELECT a, SUM(DISTINCT a), MAX(b) FROM t GROUP BY a; -SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK - FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; +#SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK +# FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; SELECT a, MAX(b) FROM t GROUP BY a HAVING SUM(DISTINCT a); EXPLAIN SELECT a, MAX(b) FROM t GROUP BY a HAVING SUM(DISTINCT a); -SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK - FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; +#SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK +# FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; SELECT SUM(DISTINCT a), MIN(b), MAX(b) FROM t; EXPLAIN SELECT SUM(DISTINCT a), MIN(b), MAX(b) FROM t; -SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK - FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; +#SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK +# FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; SELECT a, SUM(DISTINCT a), MIN(b), MAX(b) FROM t GROUP BY a; EXPLAIN SELECT a, SUM(DISTINCT a), MIN(b), MAX(b) FROM t GROUP BY a; -SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK - FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; +#SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK +# FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; -SET optimizer_trace_max_mem_size=DEFAULT; -SET optimizer_trace=DEFAULT; -SET end_markers_in_json=DEFAULT; +#SET optimizer_trace_max_mem_size=DEFAULT; +#SET optimizer_trace=DEFAULT; +#SET end_markers_in_json=DEFAULT; DROP TABLE t; diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/include/index_merge1.inc mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/include/index_merge1.inc --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/include/index_merge1.inc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/include/index_merge1.inc 2019-11-06 16:01:58.000000000 +0000 @@ -58,6 +58,10 @@ eval set @d=@d*2; dec $1; } +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} --enable_query_log analyze table t0; @@ -329,6 +333,10 @@ -- disable_query_log -- disable_result_log analyze table t2; +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} -- enable_result_log -- enable_query_log @@ -371,6 +379,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t4; -- enable_result_log -- enable_query_log @@ -397,6 +409,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t1; -- enable_result_log -- enable_query_log @@ -463,6 +479,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t3; -- enable_result_log -- enable_query_log @@ -486,6 +506,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t0; -- enable_result_log -- enable_query_log @@ -496,6 +520,10 @@ delete from t0 where key1 < 3 or key2 < 4; -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t0; -- enable_result_log -- enable_query_log @@ -509,6 +537,10 @@ insert into t4 values (1),(4),(3); -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t4; -- enable_result_log -- enable_query_log @@ -533,6 +565,10 @@ update t0 set key1=1; -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t0; -- enable_result_log -- enable_query_log @@ -556,6 +592,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t0; -- enable_result_log -- enable_query_log @@ -612,6 +652,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t1; -- enable_result_log -- enable_query_log @@ -652,6 +696,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t0; analyze table t1; analyze table t2; @@ -733,6 +781,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t1; analyze table t2; -- enable_result_log @@ -787,6 +839,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t0; analyze table t1; analyze table t2; @@ -822,6 +878,10 @@ INSERT INTO t1 SELECT * FROM t1; -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t1; -- enable_result_log -- enable_query_log diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/include/index_merge2.inc mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/include/index_merge2.inc --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/include/index_merge2.inc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/include/index_merge2.inc 2019-11-06 16:01:58.000000000 +0000 @@ -43,6 +43,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t1; -- enable_result_log -- enable_query_log @@ -68,6 +72,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t1; -- enable_result_log -- enable_query_log @@ -101,6 +109,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t1; -- enable_result_log -- enable_query_log @@ -143,6 +155,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t2; -- enable_result_log -- enable_query_log @@ -379,6 +395,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t1; -- enable_result_log -- enable_query_log @@ -417,6 +437,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t1; -- enable_result_log -- enable_query_log @@ -472,6 +496,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t1; -- enable_result_log -- enable_query_log diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/include/index_merge_ror_cpk.inc mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/include/index_merge_ror_cpk.inc --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/include/index_merge_ror_cpk.inc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/include/index_merge_ror_cpk.inc 2019-11-06 16:01:58.000000000 +0000 @@ -68,6 +68,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t1; -- enable_result_log -- enable_query_log @@ -159,6 +163,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t1; analyze table t2; -- enable_result_log diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/include/index_merge_ror.inc mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/include/index_merge_ror.inc --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/include/index_merge_ror.inc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/include/index_merge_ror.inc 2019-11-06 16:01:58.000000000 +0000 @@ -119,6 +119,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t0; analyze table t1; -- enable_result_log @@ -141,6 +145,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t1; -- enable_result_log -- enable_query_log @@ -193,6 +201,10 @@ delete from t1 where key1=200 and key2=200; -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t1; -- enable_result_log -- enable_query_log @@ -210,6 +222,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t1; -- enable_result_log -- enable_query_log @@ -236,6 +252,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t1; -- enable_result_log -- enable_query_log @@ -250,6 +270,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t1; -- enable_result_log -- enable_query_log @@ -264,6 +288,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t1; -- enable_result_log -- enable_query_log @@ -392,6 +420,10 @@ -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t2; -- enable_result_log -- enable_query_log @@ -405,6 +437,10 @@ insert into t2 values ('ab', 'ab', 'uh', 'oh'); -- disable_query_log -- disable_result_log +if ($engine_type == RocksDB) +{ + set global rocksdb_force_flush_memtable_now=1; +} analyze table t2; -- enable_result_log -- enable_query_log diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/my.cnf mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/my.cnf --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/my.cnf 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/my.cnf 2019-11-06 16:01:58.000000000 +0000 @@ -4,7 +4,6 @@ skip-innodb default-storage-engine=rocksdb - sql-mode=NO_ENGINE_SUBSTITUTION explicit-defaults-for-timestamp=1 loose-rocksdb_lock_wait_timeout=1 diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/add_index_inplace.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/add_index_inplace.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/add_index_inplace.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/add_index_inplace.result 2019-11-06 16:01:58.000000000 +0000 @@ -469,6 +469,8 @@ SET @prior_rocksdb_table_stats_sampling_pct = @@rocksdb_table_stats_sampling_pct; set global rocksdb_table_stats_sampling_pct = 100; CREATE TABLE t1 (a INT, b INT, PRIMARY KEY ka(a)) ENGINE=RocksDB; +Warnings: +Warning 1280 Name 'ka' ignored for PRIMARY key. INSERT INTO t1 (a, b) VALUES (1, 10); INSERT INTO t1 (a, b) VALUES (2, 10); INSERT INTO t1 (a, b) VALUES (3, 20); diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/add_unique_index_inplace.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/add_unique_index_inplace.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/add_unique_index_inplace.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/add_unique_index_inplace.result 2019-11-06 16:01:58.000000000 +0000 @@ -1,5 +1,7 @@ drop table if exists t1; CREATE TABLE t1 (a INT, b INT, PRIMARY KEY ka(a)) ENGINE=RocksDB; +Warnings: +Warning 1280 Name 'ka' ignored for PRIMARY key. INSERT INTO t1 (a, b) VALUES (1, 5); INSERT INTO t1 (a, b) VALUES (2, 6); INSERT INTO t1 (a, b) VALUES (3, 7); @@ -15,6 +17,8 @@ ) ENGINE=ROCKSDB DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 (a INT, b INT, PRIMARY KEY ka(a)) ENGINE=RocksDB; +Warnings: +Warning 1280 Name 'ka' ignored for PRIMARY key. INSERT INTO t1 (a, b) VALUES (1, 5); INSERT INTO t1 (a, b) VALUES (2, 6); INSERT INTO t1 (a, b) VALUES (3, 7); @@ -38,6 +42,8 @@ 5 8 DROP TABLE t1; CREATE TABLE t1 (a INT, b INT, PRIMARY KEY ka(a)) ENGINE=RocksDB; +Warnings: +Warning 1280 Name 'ka' ignored for PRIMARY key. INSERT INTO t1 (a, b) VALUES (1, 5); INSERT INTO t1 (a, b) VALUES (2, NULL); INSERT INTO t1 (a, b) VALUES (3, NULL); @@ -56,6 +62,8 @@ 4 DROP TABLE t1; CREATE TABLE t1 (a INT, b INT, c INT, PRIMARY KEY ka(a)) ENGINE=RocksDB; +Warnings: +Warning 1280 Name 'ka' ignored for PRIMARY key. INSERT INTO t1 (a,b,c) VALUES (1,1,NULL); INSERT INTO t1 (a,b,c) VALUES (2,1,NULL); INSERT INTO t1 (a,b,c) VALUES (3,1,NULL); diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/bulk_load.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/bulk_load.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/bulk_load.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/bulk_load.result 2019-11-06 16:01:58.000000000 +0000 @@ -26,6 +26,7 @@ select VALUE > 0 as 'Has opened snapshots' from information_schema.rocksdb_dbstats where stat_type='DB_NUM_SNAPSHOTS'; Has opened snapshots 1 +connection default; SET @@GLOBAL.ROCKSDB_UPDATE_CF_OPTIONS= 'cf1={write_buffer_size=8m;target_file_size_base=1m};'; set rocksdb_bulk_load=1; @@ -39,9 +40,9 @@ set rocksdb_bulk_load=0; SHOW TABLE STATUS WHERE name LIKE 't%'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL 0 N -t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL 0 N -t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL partitioned 0 N +t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL 0 N +t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL 0 N +t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL partitioned 0 N ANALYZE TABLE t1, t2, t3; Table Op Msg_type Msg_text test.t1 analyze status OK @@ -49,9 +50,9 @@ test.t3 analyze status OK SHOW TABLE STATUS WHERE name LIKE 't%'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL 0 N -t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL 0 N -t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL partitioned 0 N +t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL 0 N +t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL 0 N +t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL partitioned 0 N select count(pk),count(a) from t1; count(pk) count(a) 2500000 2500000 diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_rev_cf_and_data.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_rev_cf_and_data.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_rev_cf_and_data.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_rev_cf_and_data.result 2019-11-06 16:01:58.000000000 +0000 @@ -26,6 +26,7 @@ select VALUE > 0 as 'Has opened snapshots' from information_schema.rocksdb_dbstats where stat_type='DB_NUM_SNAPSHOTS'; Has opened snapshots 1 +connection default; SET @@GLOBAL.ROCKSDB_UPDATE_CF_OPTIONS= 'cf1={write_buffer_size=8m;target_file_size_base=1m};'; set rocksdb_bulk_load=1; @@ -39,9 +40,9 @@ set rocksdb_bulk_load=0; SHOW TABLE STATUS WHERE name LIKE 't%'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL 0 N -t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL 0 N -t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL partitioned 0 N +t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL 0 N +t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL 0 N +t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL partitioned 0 N ANALYZE TABLE t1, t2, t3; Table Op Msg_type Msg_text test.t1 analyze status OK @@ -49,9 +50,9 @@ test.t3 analyze status OK SHOW TABLE STATUS WHERE name LIKE 't%'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL 0 N -t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL 0 N -t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL partitioned 0 N +t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL 0 N +t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL 0 N +t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL partitioned 0 N select count(pk),count(a) from t1; count(pk) count(a) 2500000 2500000 diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_rev_cf.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_rev_cf.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_rev_cf.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_rev_cf.result 2019-11-06 16:01:58.000000000 +0000 @@ -26,6 +26,7 @@ select VALUE > 0 as 'Has opened snapshots' from information_schema.rocksdb_dbstats where stat_type='DB_NUM_SNAPSHOTS'; Has opened snapshots 1 +connection default; SET @@GLOBAL.ROCKSDB_UPDATE_CF_OPTIONS= 'cf1={write_buffer_size=8m;target_file_size_base=1m};'; set rocksdb_bulk_load=1; @@ -39,9 +40,9 @@ set rocksdb_bulk_load=0; SHOW TABLE STATUS WHERE name LIKE 't%'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL 0 N -t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL 0 N -t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL partitioned 0 N +t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL 0 N +t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL 0 N +t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL partitioned 0 N ANALYZE TABLE t1, t2, t3; Table Op Msg_type Msg_text test.t1 analyze status OK @@ -49,9 +50,9 @@ test.t3 analyze status OK SHOW TABLE STATUS WHERE name LIKE 't%'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL 0 N -t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL 0 N -t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL partitioned 0 N +t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL 0 N +t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL 0 N +t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL partitioned 0 N select count(pk),count(a) from t1; count(pk) count(a) 2500000 2500000 diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_rev_data.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_rev_data.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_rev_data.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_rev_data.result 2019-11-06 16:01:58.000000000 +0000 @@ -26,6 +26,7 @@ select VALUE > 0 as 'Has opened snapshots' from information_schema.rocksdb_dbstats where stat_type='DB_NUM_SNAPSHOTS'; Has opened snapshots 1 +connection default; SET @@GLOBAL.ROCKSDB_UPDATE_CF_OPTIONS= 'cf1={write_buffer_size=8m;target_file_size_base=1m};'; set rocksdb_bulk_load=1; @@ -39,9 +40,9 @@ set rocksdb_bulk_load=0; SHOW TABLE STATUS WHERE name LIKE 't%'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL 0 N -t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL 0 N -t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL partitioned 0 N +t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL 0 N +t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL 0 N +t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL partitioned 0 N ANALYZE TABLE t1, t2, t3; Table Op Msg_type Msg_text test.t1 analyze status OK @@ -49,9 +50,9 @@ test.t3 analyze status OK SHOW TABLE STATUS WHERE name LIKE 't%'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL 0 N -t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL 0 N -t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_bin NULL partitioned 0 N +t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL 0 N +t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL 0 N +t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_bin NULL partitioned 0 N select count(pk),count(a) from t1; count(pk) count(a) 2500000 2500000 diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_unsorted.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_unsorted.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_unsorted.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_unsorted.result 2019-11-06 16:01:58.000000000 +0000 @@ -72,9 +72,9 @@ set rocksdb_bulk_load=0; SHOW TABLE STATUS WHERE name LIKE 't%'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL 0 N -t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL 0 N -t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL partitioned 0 N +t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_swedish_ci NULL 0 N +t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_swedish_ci NULL 0 N +t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_swedish_ci NULL partitioned 0 N ANALYZE TABLE t1, t2, t3; Table Op Msg_type Msg_text test.t1 analyze status OK @@ -82,9 +82,9 @@ test.t3 analyze status OK SHOW TABLE STATUS WHERE name LIKE 't%'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL 0 N -t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL 0 N -t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL partitioned 0 N +t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_swedish_ci NULL 0 N +t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_swedish_ci NULL 0 N +t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_swedish_ci NULL partitioned 0 N select count(a),count(b) from t1; count(a) count(b) 2500000 2500000 diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_unsorted_rev.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_unsorted_rev.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_unsorted_rev.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/bulk_load_unsorted_rev.result 2019-11-06 16:01:58.000000000 +0000 @@ -72,9 +72,9 @@ set rocksdb_bulk_load=0; SHOW TABLE STATUS WHERE name LIKE 't%'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL 0 N -t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL 0 N -t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL partitioned 0 N +t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_swedish_ci NULL 0 N +t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_swedish_ci NULL 0 N +t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_swedish_ci NULL partitioned 0 N ANALYZE TABLE t1, t2, t3; Table Op Msg_type Msg_text test.t1 analyze status OK @@ -82,9 +82,9 @@ test.t3 analyze status OK SHOW TABLE STATUS WHERE name LIKE 't%'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL 0 N -t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL 0 N -t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL NULL NULL NULL latin1_swedish_ci NULL partitioned 0 N +t1 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_swedish_ci NULL 0 N +t2 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_swedish_ci NULL 0 N +t3 ROCKSDB 10 Fixed 2500000 # # # # 0 NULL # # NULL latin1_swedish_ci NULL partitioned 0 N select count(a),count(b) from t1; count(a) count(b) 2500000 2500000 diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/concurrent_alter.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/concurrent_alter.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/concurrent_alter.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/concurrent_alter.result 2019-11-06 16:01:58.000000000 +0000 @@ -8,5 +8,5 @@ a1 CREATE TABLE `a1` ( `a` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL -) ENGINE=ROCKSDB DEFAULT CHARSET=latin1 +) ENGINE=ROCKSDB DEFAULT CHARSET=DEFAULT_CHARSET DROP DATABASE mysqlslap; diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/group_min_max.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/group_min_max.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/group_min_max.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/group_min_max.result 2019-11-06 16:01:58.000000000 +0000 @@ -1,4 +1,5 @@ -set global debug="+d,force_group_by"; +set @debug_tmp= @@debug_dbug; +set global debug_dbug="+d,force_group_by"; drop table if exists t1; create table t1 ( a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(248) default ' ' @@ -134,34 +135,34 @@ test.t3 analyze status OK explain select a1, min(a2) from t1 group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 126 Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 130 NULL 63 Using index for group-by explain select a1, max(a2) from t1 group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 65 NULL 126 Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 65 NULL 63 Using index for group-by explain select a1, min(a2), max(a2) from t1 group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 126 Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 130 NULL 63 Using index for group-by explain select a1, a2, b, min(c), max(c) from t1 group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 251 Using index for group-by explain select a1,a2,b,max(c),min(c) from t1 group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 251 Using index for group-by explain select a1,a2,b,max(c),min(c) from t2 group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 # NULL # Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 # NULL # Using index for group-by explain select min(a2), a1, max(a2), min(a2), a1 from t1 group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 126 Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 130 NULL 63 Using index for group-by explain select a1, b, min(c), a1, max(c), b, a2, max(c), max(c) from t1 group by a1, a2, b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 251 Using index for group-by explain select min(a2) from t1 group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 126 Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 130 NULL 63 Using index for group-by explain select a2, min(c), max(c) from t1 group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 251 Using index for group-by select a1, min(a2) from t1 group by a1; a1 min(a2) a a @@ -288,37 +289,37 @@ b m422 p422 explain select a1,a2,b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t1 where a1 >= 'b' group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1,a2,b, max(c) from t1 where a1 >= 'c' or a1 < 'b' group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 1002 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1, max(c) from t1 where a1 >= 'c' or a1 < 'b' group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 1002 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t1 where a1 >= 'c' or a2 < 'b' group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1,a2,b, max(c) from t1 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 1503 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t1 where a1 = 'z' or a1 = 'b' or a1 = 'd' group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 1503 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1,a2,b, max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 2004 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 2004 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1,min(c),max(c) from t1 where a1 >= 'b' group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1, max(c) from t1 where a1 in ('a','b','d') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 1503 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1,a2,b, max(c) from t2 where a1 < 'd' group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by @@ -668,99 +669,109 @@ d h412 d l421 d p422 +# +# MariaDB: we dont have the following patch: +# +# commit 60a92a79a3b7fde3c6efe91799e344b977c8e5c3 +# Author: Manuel Ung +# Date: Thu Apr 19 23:06:27 2018 -0700 +# +# Enhance group-by loose index scan +# +# So the following results are not very meaningful, but are still kept here explain select a1,a2,b,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 126 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 63 Using where; Using index for group-by explain select a1,a2,b,max(c),min(c) from t1 where (a2 = 'a' or a2 = 'b') and (b = 'b') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 126 Using where; Using index for group-by +1 SIMPLE t1 index NULL idx_t1_1 163 NULL 1000 Using where; Using index explain select a1,a2,b,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b' or b = 'a') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 126 Using where; Using index for group-by +1 SIMPLE t1 index NULL idx_t1_1 163 NULL 1000 Using where; Using index explain select a1,a2,b,max(c),min(c) from t1 where (a2 = 'a' or a2 = 'b') and (b = 'b' or b = 'a') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 126 Using where; Using index for group-by +1 SIMPLE t1 index NULL idx_t1_1 163 NULL 1000 Using where; Using index explain select a1,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 126 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 63 Using where; Using index for group-by explain select a1,max(c),min(c) from t1 where (a2 = 'a' or a2 = 'b') and (b = 'b') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 126 Using where; Using index for group-by +1 SIMPLE t1 index NULL idx_t1_1 163 NULL 1000 Using where; Using index explain select a1,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b' or b = 'a') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 126 Using where; Using index for group-by +1 SIMPLE t1 index NULL idx_t1_1 163 NULL 1000 Using where; Using index explain select a1,a2,b, max(c) from t1 where (b = 'b') group by a1,a2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 126 Using where; Using index for group-by explain select a1,a2,b, max(c) from t1 where (b = 'b' or b = 'a') group by a1,a2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by +1 SIMPLE t1 index NULL idx_t1_1 163 NULL 1000 Using where; Using index explain select a1,a2,b,min(c),max(c) from t1 where (b = 'b') group by a1,a2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 126 Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t1 where (b = 'b' or b = 'a') group by a1,a2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by +1 SIMPLE t1 index NULL idx_t1_1 163 NULL 1000 Using where; Using index explain select a1,a2, max(c) from t1 where (b = 'b') group by a1,a2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 126 Using where; Using index for group-by explain select a1,a2, max(c) from t1 where (b = 'b' or b = 'a') group by a1,a2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by +1 SIMPLE t1 index NULL idx_t1_1 163 NULL 1000 Using where; Using index explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 126 Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL 63 Using where; Using index for group-by explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a' or a2 = 'b') and (b = 'b') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 126 Using where; Using index for group-by +1 SIMPLE t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b' or b = 'a') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 126 Using where; Using index for group-by +1 SIMPLE t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index explain select a1,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 126 Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL 63 Using where; Using index for group-by explain select a1,max(c),min(c) from t2 where (a2 = 'a' or a2 = 'b') and (b = 'b') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 126 Using where; Using index for group-by +1 SIMPLE t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index explain select a1,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b' or b = 'a') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 126 Using where; Using index for group-by +1 SIMPLE t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index explain select a1,a2,b, max(c) from t2 where (b = 'b') group by a1,a2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 251 Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 146 NULL 126 Using where; Using index for group-by explain select a1,a2,b, max(c) from t2 where (b = 'b' or b = 'a') group by a1,a2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 251 Using where; Using index for group-by +1 SIMPLE t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index explain select a1,a2,b,min(c),max(c) from t2 where (b = 'b') group by a1,a2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 251 Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL 126 Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t2 where (b = 'b' or b = 'a') group by a1,a2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 251 Using where; Using index for group-by +1 SIMPLE t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index explain select a1,a2, max(c) from t2 where (b = 'b') group by a1,a2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 251 Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 146 NULL 126 Using where; Using index for group-by explain select a1,a2, max(c) from t2 where (b = 'b' or b = 'a') group by a1,a2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 251 Using where; Using index for group-by +1 SIMPLE t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index explain select a1,a2,b,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t3 range idx_t3_0,idx_t3_1,idx_t3_2 idx_t3_1 6 NULL 126 Using where; Using index for group-by +1 SIMPLE t3 range NULL idx_t3_1 6 NULL 63 Using where; Using index for group-by explain select a1,a2,b,max(c),min(c) from t3 where (a2 = 'a' or a2 = 'b') and (b = 'b') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t3 range idx_t3_0,idx_t3_1,idx_t3_2 idx_t3_1 6 NULL 126 Using where; Using index for group-by +1 SIMPLE t3 index NULL idx_t3_1 10 NULL 1000 Using where; Using index explain select a1,a2,b,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b' or b = 'a') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t3 range idx_t3_0,idx_t3_1,idx_t3_2 idx_t3_1 6 NULL 126 Using where; Using index for group-by +1 SIMPLE t3 index NULL idx_t3_1 10 NULL 1000 Using where; Using index explain select a1,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t3 range idx_t3_0,idx_t3_1,idx_t3_2 idx_t3_1 6 NULL 126 Using where; Using index for group-by +1 SIMPLE t3 range NULL idx_t3_1 6 NULL 63 Using where; Using index for group-by explain select a1,max(c),min(c) from t3 where (a2 = 'a' or a2 = 'b') and (b = 'b') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t3 range idx_t3_0,idx_t3_1,idx_t3_2 idx_t3_1 6 NULL 126 Using where; Using index for group-by +1 SIMPLE t3 index NULL idx_t3_1 10 NULL 1000 Using where; Using index explain select a1,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b' or b = 'a') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t3 range idx_t3_0,idx_t3_1,idx_t3_2 idx_t3_1 6 NULL 126 Using where; Using index for group-by +1 SIMPLE t3 index NULL idx_t3_1 10 NULL 1000 Using where; Using index select a1,a2,b,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1; a1 a2 b max(c) min(c) a a b h112 e112 @@ -769,22 +780,22 @@ d a b h412 e412 select a1,a2,b,max(c),min(c) from t1 where (a2 = 'a' or a2 = 'b') and (b = 'b') group by a1; a1 a2 b max(c) min(c) -a b b p122 e112 -b b b p222 e212 -c b b p322 e312 -d b b p422 e412 +a a b p122 e112 +b a b p222 e212 +c a b p322 e312 +d a b p422 e412 select a1,a2,b,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b' or b = 'a') group by a1; a1 a2 b max(c) min(c) -a a b h112 a111 -b a b h212 a211 -c a b h312 a311 -d a b h412 a411 +a a a h112 a111 +b a a h212 a211 +c a a h312 a311 +d a a h412 a411 select a1,a2,b,max(c),min(c) from t1 where (a2 = 'a' or a2 = 'b') and (b = 'b' or b = 'a') group by a1; a1 a2 b max(c) min(c) -a b b p122 a111 -b b b p222 a211 -c b b p322 a311 -d b b p422 a411 +a a a p122 a111 +b a a p222 a211 +c a a p322 a311 +d a a p422 a411 select a1,max(c),min(c) from t1 where (a2 = 'a') and (b = 'b') group by a1; a1 max(c) min(c) a h112 e112 @@ -815,14 +826,14 @@ d b b p422 select a1,a2,b, max(c) from t1 where (b = 'b' or b = 'a') group by a1,a2; a1 a2 b max(c) -a a b h112 -a b b p122 -b a b h212 -b b b p222 -c a b h312 -c b b p322 -d a b h412 -d b b p422 +a a a h112 +a b a p122 +b a a h212 +b b a p222 +c a a h312 +c b a p322 +d a a h412 +d b a p422 select a1,a2,b,min(c),max(c) from t1 where (b = 'b') group by a1,a2; a1 a2 b min(c) max(c) a a b e112 h112 @@ -835,14 +846,14 @@ d b b m422 p422 select a1,a2,b,min(c),max(c) from t1 where (b = 'b' or b = 'a') group by a1,a2; a1 a2 b min(c) max(c) -a a b a111 h112 -a b b i121 p122 -b a b a211 h212 -b b b i221 p222 -c a b a311 h312 -c b b i321 p322 -d a b a411 h412 -d b b i421 p422 +a a a a111 h112 +a b a i121 p122 +b a a a211 h212 +b b a i221 p222 +c a a a311 h312 +c b a i321 p322 +d a a a411 h412 +d b a i421 p422 select a1,a2, max(c) from t1 where (b = 'b') group by a1,a2; a1 a2 max(c) a a h112 @@ -872,17 +883,18 @@ e a b NULL NULL select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a' or a2 = 'b') and (b = 'b') group by a1; a1 a2 b max(c) min(c) -a b b p122 e112 -b b b p222 e212 -c b b p322 e312 -d b b p422 e412 +a a b p122 e112 +b a b p222 e212 +c a b p322 e312 +d a b p422 e412 +e a b NULL NULL select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b' or b = 'a') group by a1; a1 a2 b max(c) min(c) -a a b h112 a111 -b a b h212 a211 -c a b h312 a311 -d a b h412 a411 -e a b NULL NULL +a a a h112 a111 +b a a h212 a211 +c a a h312 a311 +d a a h412 a411 +e a a NULL NULL select a1,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') group by a1; a1 max(c) min(c) a h112 e112 @@ -896,6 +908,7 @@ b p222 e212 c p322 e312 d p422 e412 +e NULL NULL select a1,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b' or b = 'a') group by a1; a1 max(c) min(c) a h112 a111 @@ -916,15 +929,15 @@ e a b NULL select a1,a2,b, max(c) from t2 where (b = 'b' or b = 'a') group by a1,a2; a1 a2 b max(c) -a a b h112 -a b b p122 -b a b h212 -b b b p222 -c a b h312 -c b b p322 -d a b h412 -d b b p422 -e a b NULL +a a a h112 +a b a p122 +b a a h212 +b b a p222 +c a a h312 +c b a p322 +d a a h412 +d b a p422 +e a a NULL select a1,a2,b,min(c),max(c) from t2 where (b = 'b') group by a1,a2; a1 a2 b min(c) max(c) a a b e112 h112 @@ -938,15 +951,15 @@ e a b NULL NULL select a1,a2,b,min(c),max(c) from t2 where (b = 'b' or b = 'a') group by a1,a2; a1 a2 b min(c) max(c) -a a b a111 h112 -a b b i121 p122 -b a b a211 h212 -b b b i221 p222 -c a b a311 h312 -c b b i321 p322 -d a b a411 h412 -d b b i421 p422 -e a b NULL NULL +a a a a111 h112 +a b a i121 p122 +b a a a211 h212 +b b a i221 p222 +c a a a311 h312 +c b a i321 p322 +d a a a411 h412 +d b a i421 p422 +e a a NULL NULL select a1,a2, max(c) from t2 where (b = 'b') group by a1,a2; a1 a2 max(c) a a h112 @@ -976,14 +989,14 @@ c a b h312 e312 select a1,a2,b,max(c),min(c) from t3 where (a2 = 'a' or a2 = 'b') and (b = 'b') group by a1; a1 a2 b max(c) min(c) -a b b p122 e112 -b b b p222 e212 -c b b p322 e312 +a a b p122 e112 +b a b p222 e212 +c a b p322 e312 select a1,a2,b,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b' or b = 'a') group by a1; a1 a2 b max(c) min(c) -a a b h112 a111 -b a b h212 a211 -c a b h312 a311 +a a a h112 a111 +b a a h212 a211 +c a a h312 a311 select a1,max(c),min(c) from t3 where (a2 = 'a') and (b = 'b') group by a1; a1 max(c) min(c) a h112 e112 @@ -1001,37 +1014,41 @@ c h312 a311 explain select a1,a2,b,min(c) from t2 where (a2 = 'a') and b is NULL group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 126 Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL 63 Using where; Using index for group-by explain select a1,a2,b,min(c) from t2 where (a2 = 'a' or a2 = 'b') and b is NULL group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 126 Using where; Using index for group-by +1 SIMPLE t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index explain select a1,a2,b,max(c) from t2 where (a2 = 'a') and b is NULL group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 126 Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 146 NULL 63 Using where; Using index for group-by explain select a1,a2,b,max(c) from t2 where (a2 = 'a' or a2 = 'b') and b is NULL group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 126 Using where; Using index for group-by +1 SIMPLE t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index explain select a1,a2,b,min(c) from t2 where b is NULL group by a1,a2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 251 Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL 126 Using where; Using index for group-by explain select a1,a2,b,max(c) from t2 where b is NULL group by a1,a2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 251 Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 146 NULL 126 Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t2 where b is NULL group by a1,a2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 251 Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL 126 Using where; Using index for group-by select a1,a2,b,min(c) from t2 where (a2 = 'a') and b is NULL group by a1; a1 a2 b min(c) a a NULL a777 c a NULL c777 select a1,a2,b,min(c) from t2 where (a2 = 'a' or a2 = 'b') and b is NULL group by a1; a1 a2 b min(c) +a a NULL a777 +c a NULL c777 select a1,a2,b,max(c) from t2 where (a2 = 'a') and b is NULL group by a1; a1 a2 b max(c) a a NULL a999 c a NULL c999 select a1,a2,b,max(c) from t2 where (a2 = 'a' or a2 = 'b') and b is NULL group by a1; a1 a2 b max(c) +a a NULL a999 +c a NULL c999 select a1,a2,b,min(c) from t2 where b is NULL group by a1,a2; a1 a2 b min(c) a a NULL a777 @@ -1050,97 +1067,97 @@ c a NULL c777 c999 explain select a1,a2,b, max(c) from t1 where (c > 'b1') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL # Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL # Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t1 where (c > 'b1') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 163 NULL 251 Using where; Using index for group-by explain select a1,a2,b, max(c) from t1 where (c > 'f123') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t1 where (c > 'f123') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 163 NULL 251 Using where; Using index for group-by explain select a1,a2,b, max(c) from t1 where (c < 'a0') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 163 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t1 where (c < 'a0') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 163 NULL 251 Using where; Using index for group-by explain select a1,a2,b, max(c) from t1 where (c < 'k321') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 163 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t1 where (c < 'k321') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 163 NULL 251 Using where; Using index for group-by explain select a1,a2,b, max(c) from t1 where (c < 'a0') or (c > 'b1') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 163 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t1 where (c < 'a0') or (c > 'b1') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 163 NULL 251 Using where; Using index for group-by explain select a1,a2,b, max(c) from t1 where (c > 'b1') or (c <= 'g1') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t1 where (c > 'b1') or (c <= 'g1') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t1 where (c > 'b111') and (c <= 'g112') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 163 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t1 where (c < 'c5') or (c = 'g412') or (c = 'k421') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 163 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t1 where ((c > 'b111') and (c <= 'g112')) or ((c > 'd000') and (c <= 'i110')) group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 163 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t1 where (c between 'b111' and 'g112') or (c between 'd000' and 'i110') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 163 NULL 251 Using where; Using index for group-by explain select a1,a2,b, max(c) from t2 where (c > 'b1') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t2 where (c > 'b1') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by explain select a1,a2,b, max(c) from t2 where (c > 'f123') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t2 where (c > 'f123') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by explain select a1,a2,b, max(c) from t2 where (c < 'a0') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t2 where (c < 'a0') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by explain select a1,a2,b, max(c) from t2 where (c < 'k321') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t2 where (c < 'k321') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by explain select a1,a2,b, max(c) from t2 where (c < 'a0') or (c > 'b1') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t2 where (c < 'a0') or (c > 'b1') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by explain select a1,a2,b, max(c) from t2 where (c > 'b1') or (c <= 'g1') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t2 where (c > 'b1') or (c <= 'g1') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t2 where (c > 'b111') and (c <= 'g112') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t2 where (c < 'c5') or (c = 'g412') or (c = 'k421') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t2 where ((c > 'b111') and (c <= 'g112')) or ((c > 'd000') and (c <= 'i110')) group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by select a1,a2,b, max(c) from t1 where (c > 'b1') group by a1,a2,b; a1 a2 b max(c) a a a d111 @@ -1562,35 +1579,36 @@ where exists ( select * from t2 where t2.c = t1.c ) group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 index idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 1000 Using where; Using index -2 DEPENDENT SUBQUERY t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index +1 PRIMARY t1 index NULL idx_t1_1 163 NULL 1000 Using index +1 PRIMARY eq_ref distinct_key distinct_key 16 func 1 +2 MATERIALIZED t2 index NULL idx_t2_1 163 NULL 1000 Using index explain select a1,a2,b,min(c),max(c) from t1 where exists ( select * from t2 where t2.c > 'b1' ) group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using index for group-by +1 PRIMARY t1 index NULL idx_t1_1 163 NULL 1000 Using index 2 SUBQUERY t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index explain select a1,a2,b,min(c),max(c) from t1 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t1 where (a1 >= 'c' or a2 < 'b') and (c > 'b111') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t1 where (a2 >= 'b') and (b = 'a') and (c > 'b111') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 163 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c) from t1 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c < 'h112') or (c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122')) group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 1002 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c) from t1 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122') or (c < 'h112') or (c = 'c111')) group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 1002 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c) from t1 where (ord(a1) > 97) and (ord(a2) + ord(a1) > 194) and (b = 'c') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t2 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by @@ -1599,7 +1617,7 @@ 1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by explain select a1,a2,b,min(c),max(c) from t2 where (a2 >= 'b') and (b = 'a') and (c > 'b111') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by explain select a1,a2,b,min(c) from t2 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c < 'h112') or (c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122')) group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by @@ -1695,31 +1713,31 @@ a1 a2 b min(c) explain select a1,a2,b from t1 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1,a2,b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 163 NULL 251 Using where; Using index for group-by explain select a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121' or c = 'i121') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 163 NULL 251 Using where; Using index for group-by explain select a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select a1,a2,b from t2 where (a1 >= 'c' or a2 < 'b') and (b > 'a') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by explain select a1,a2,b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by explain select a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by explain select a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121' or c = 'i121') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by explain select a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by @@ -1770,50 +1788,50 @@ a1 a2 b explain select distinct a1,a2,b from t1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 251 Using index for group-by explain select distinct a1,a2,b from t1 where (a2 >= 'b') and (b = 'a'); id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 251 Using where; Using index for group-by explain extended select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121'); id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE t1 range idx_t1_1 idx_t1_1 163 NULL 1001 99.90 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 163 NULL 501 100.00 Using where; Using index for group-by Warnings: -Note 1003 /* select#1 */ select distinct `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` where ((`test`.`t1`.`c` = 'i121') and (`test`.`t1`.`b` = 'a') and (`test`.`t1`.`a2` >= 'b')) +Note 1003 select distinct `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` where `test`.`t1`.`b` = 'a' and `test`.`t1`.`c` = 'i121' and `test`.`t1`.`a2` >= 'b' explain select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c'); id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select distinct b from t1 where (a2 >= 'b') and (b = 'a'); id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 1000 Using where; Using index +1 SIMPLE t1 index NULL idx_t1_2 147 NULL 1000 Using where; Using index explain select distinct a1 from t1 where a1 in ('a', 'd') and a2 = 'b'; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 252 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 63 Using where; Using index for group-by explain select distinct a1 from t1 where a1 in ('a', 'd') and a2 = 'e'; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 252 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 63 Using where; Using index for group-by explain select distinct a1,a2,b from t2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using index for group-by explain select distinct a1,a2,b from t2 where (a2 >= 'b') and (b = 'a'); id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by explain extended select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121'); id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE t2 range idx_t2_1 idx_t2_1 163 NULL 1001 99.90 Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL 501 100.00 Using where; Using index for group-by Warnings: -Note 1003 /* select#1 */ select distinct `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t2` where ((`test`.`t2`.`c` = 'i121') and (`test`.`t2`.`b` = 'a') and (`test`.`t2`.`a2` >= 'b')) +Note 1003 select distinct `test`.`t2`.`a1` AS `a1`,`test`.`t2`.`a2` AS `a2`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`c` AS `c` from `test`.`t2` where `test`.`t2`.`b` = 'a' and `test`.`t2`.`c` = 'i121' and `test`.`t2`.`a2` >= 'b' explain select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c'); id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by explain select distinct b from t2 where (a2 >= 'b') and (b = 'a'); id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 index idx_t2_1,idx_t2_2 idx_t2_2 146 NULL 1000 Using where; Using index +1 SIMPLE t2 index NULL idx_t2_2 146 NULL 1000 Using where; Using index explain select distinct a1 from t2 where a1 in ('a', 'd') and a2 = 'b'; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 129 NULL 252 Using where; Using index for group-by +1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 129 NULL 63 Using where; Using index for group-by explain select distinct a1 from t2 where a1 in ('a', 'd') and a2 = 'e'; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 129 NULL 252 Using where; Using index for group-by +1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 129 NULL 63 Using where; Using index for group-by select distinct a1,a2,b from t1; a1 a2 b a a a @@ -1942,40 +1960,40 @@ d e explain select distinct a1,a2,b from t1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 251 Using index for group-by explain select distinct a1,a2,b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select distinct a1,a2,b,c from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 163 NULL 251 Using where; Using index for group-by explain select distinct a1,a2,b from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select distinct b from t1 where (a2 >= 'b') and (b = 'a') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by; Using temporary; Using filesort +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 251 Using where; Using index for group-by; Using temporary; Using filesort explain select distinct a1 from t1 where a1 in ('a', 'd') and a2 = 'b' group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 252 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 63 Using where; Using index for group-by explain select distinct a1 from t1 where a1 in ('a', 'd') and a2 = 'e' group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 252 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 63 Using where; Using index for group-by explain select distinct a1,a2,b from t2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using index for group-by explain select distinct a1,a2,b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by explain select distinct a1,a2,b,c from t2 where (a2 >= 'b') and (b = 'a') and (c = 'i121') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 163 NULL # Using where; Using index for group-by +1 SIMPLE t2 range NULL idx_t2_1 163 NULL # Using where; Using index for group-by explain select distinct a1,a2,b from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by explain select distinct b from t2 where (a2 >= 'b') and (b = 'a') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_1,idx_t2_2 idx_t2_1 146 NULL # Using where; Using index for group-by; Using temporary; Using filesort +1 SIMPLE t2 range NULL idx_t2_1 146 NULL # Using where; Using index for group-by; Using temporary; Using filesort explain select distinct a1 from t2 where a1 in ('a', 'd') and a2 = 'b' group by a1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 129 NULL # Using where; Using index for group-by @@ -2064,23 +2082,23 @@ a1 explain select count(distinct a1,a2,b) from t1 where (a2 >= 'b') and (b = 'a'); id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by (scanning) +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select count(distinct a1,a2,b,c) from t1 where (a2 >= 'b') and (b = 'a') and (c = 'i121'); id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1 idx_t1_1 163 NULL 1001 Using where; Using index for group-by (scanning) +1 SIMPLE t1 range NULL idx_t1_1 163 NULL 501 Using where; Using index for group-by (scanning) explain extended select count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a') and (b = 'c'); id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 100.00 Using where; Using index for group-by (scanning) +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 100.00 Using where; Using index for group-by Warnings: -Note 1003 /* select#1 */ select count(distinct `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b`) AS `count(distinct a1,a2,b)` from `test`.`t1` where ((`test`.`t1`.`b` = 'c') and (`test`.`t1`.`a1` > 'a') and (`test`.`t1`.`a2` > 'a')) +Note 1003 select count(distinct `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b`) AS `count(distinct a1,a2,b)` from `test`.`t1` where `test`.`t1`.`b` = 'c' and `test`.`t1`.`a1` > 'a' and `test`.`t1`.`a2` > 'a' explain select count(distinct b) from t1 where (a2 >= 'b') and (b = 'a'); id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 1000 Using where; Using index +1 SIMPLE t1 index NULL idx_t1_2 147 NULL 1000 Using where; Using index explain extended select 98 + count(distinct a1,a2,b) from t1 where (a1 > 'a') and (a2 > 'a'); id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 100.00 Using where; Using index for group-by (scanning) +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 100.00 Using where; Using index for group-by Warnings: -Note 1003 /* select#1 */ select (98 + count(distinct `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b`)) AS `98 + count(distinct a1,a2,b)` from `test`.`t1` where ((`test`.`t1`.`a1` > 'a') and (`test`.`t1`.`a2` > 'a')) +Note 1003 select 98 + count(distinct `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b`) AS `98 + count(distinct a1,a2,b)` from `test`.`t1` where `test`.`t1`.`a1` > 'a' and `test`.`t1`.`a2` > 'a' select count(distinct a1,a2,b) from t1 where (a2 >= 'b') and (b = 'a'); count(distinct a1,a2,b) 4 @@ -2098,19 +2116,19 @@ 104 explain select a1,a2,b, concat(min(c), max(c)) from t1 where a1 < 'd' group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select concat(a1,min(c)),b from t1 where a1 < 'd' group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select concat(a1,min(c)),b,max(c) from t1 where a1 < 'd' group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select concat(a1,a2),b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 501 Using where; Using index for group-by +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using where; Using index for group-by explain select concat(ord(min(b)),ord(max(b))),min(b),max(b) from t1 group by a1,a2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 251 Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 147 NULL 126 Using index for group-by select a1,a2,b, concat(min(c), max(c)) from t1 where a1 < 'd' group by a1,a2,b; a1 a2 b concat(min(c), max(c)) a a a a111d111 @@ -2179,85 +2197,83 @@ 9798 a b explain select a1,a2,b,d,min(c),max(c) from t1 group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 1000 NULL +1 SIMPLE t1 index NULL idx_t1_2 147 NULL 1000 explain select a1,a2,b,d from t1 group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 1000 NULL +1 SIMPLE t1 index NULL idx_t1_2 147 NULL 1000 explain extended select a1,a2,min(b),max(b) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (c > 'a111') group by a1,a2; id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE t1 index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 1000 100.00 Using where; Using index +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 1000 100.00 Using where; Using index Warnings: -Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,min(`test`.`t1`.`b`) AS `min(b)`,max(`test`.`t1`.`b`) AS `max(b)` from `test`.`t1` where (((`test`.`t1`.`a1` = 'b') or (`test`.`t1`.`a1` = 'd') or (`test`.`t1`.`a1` = 'a') or (`test`.`t1`.`a1` = 'c')) and (`test`.`t1`.`a2` > 'a') and (`test`.`t1`.`c` > 'a111')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2` +Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,min(`test`.`t1`.`b`) AS `min(b)`,max(`test`.`t1`.`b`) AS `max(b)` from `test`.`t1` where (`test`.`t1`.`a1` = 'b' or `test`.`t1`.`a1` = 'd' or `test`.`t1`.`a1` = 'a' or `test`.`t1`.`a1` = 'c') and `test`.`t1`.`a2` > 'a' and `test`.`t1`.`c` > 'a111' group by `test`.`t1`.`a1`,`test`.`t1`.`a2` explain extended select a1,a2,b,min(c),max(c) from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (d > 'xy2') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE t1 index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 1000 100.00 Using where +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_2 130 NULL 1000 100.00 Using where Warnings: -Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (((`test`.`t1`.`a1` = 'b') or (`test`.`t1`.`a1` = 'd') or (`test`.`t1`.`a1` = 'a') or (`test`.`t1`.`a1` = 'c')) and (`test`.`t1`.`a2` > 'a') and (`test`.`t1`.`d` > 'xy2')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` +Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,min(`test`.`t1`.`c`) AS `min(c)`,max(`test`.`t1`.`c`) AS `max(c)` from `test`.`t1` where (`test`.`t1`.`a1` = 'b' or `test`.`t1`.`a1` = 'd' or `test`.`t1`.`a1` = 'a' or `test`.`t1`.`a1` = 'c') and `test`.`t1`.`a2` > 'a' and `test`.`t1`.`d` > 'xy2' group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain extended select a1,a2,b,c from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (d > 'xy2') group by a1,a2,b,c; id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE t1 index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 1000 100.00 Using where +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 1000 100.00 Using where Warnings: -Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` where (((`test`.`t1`.`a1` = 'b') or (`test`.`t1`.`a1` = 'd') or (`test`.`t1`.`a1` = 'a') or (`test`.`t1`.`a1` = 'c')) and (`test`.`t1`.`a2` > 'a') and (`test`.`t1`.`d` > 'xy2')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b`,`test`.`t1`.`c` +Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` where (`test`.`t1`.`a1` = 'b' or `test`.`t1`.`a1` = 'd' or `test`.`t1`.`a1` = 'a' or `test`.`t1`.`a1` = 'c') and `test`.`t1`.`a2` > 'a' and `test`.`t1`.`d` > 'xy2' group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b`,`test`.`t1`.`c` explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') or (b < 'b') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 index idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_0 65 NULL 1000 Using where +1 SIMPLE t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b < 'b') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 index idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_0 65 NULL 1000 Using where +1 SIMPLE t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b <= 'b') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 index idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_0 65 NULL 1000 Using where +1 SIMPLE t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b <= 'b' and b >= 'a') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 index idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_0 65 NULL 1000 Using where +1 SIMPLE t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index explain extended select a1,a2,b from t1 where (a1 = 'b' or a1 = 'd' or a1 = 'a' or a1 = 'c') and (a2 > 'a') and (c > 'a111') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE t1 index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 163 NULL 1000 100.00 Using where; Using index +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 1000 100.00 Using where; Using index Warnings: -Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b` from `test`.`t1` where (((`test`.`t1`.`a1` = 'b') or (`test`.`t1`.`a1` = 'd') or (`test`.`t1`.`a1` = 'a') or (`test`.`t1`.`a1` = 'c')) and (`test`.`t1`.`a2` > 'a') and (`test`.`t1`.`c` > 'a111')) group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` +Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,`test`.`t1`.`b` AS `b` from `test`.`t1` where (`test`.`t1`.`a1` = 'b' or `test`.`t1`.`a1` = 'd' or `test`.`t1`.`a1` = 'a' or `test`.`t1`.`a1` = 'c') and `test`.`t1`.`a2` > 'a' and `test`.`t1`.`c` > 'a111' group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,min(b),c from t2 where (a2 = 'a') and (c = 'a111') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 index idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_0 65 NULL 1000 Using where +1 SIMPLE t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index select a1,a2,min(b),c from t2 where (a2 = 'a') and (c = 'a111') group by a1; a1 a2 min(b) c a a a a111 explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'b') or (b = 'a') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 index idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_0 65 NULL 1000 Using where +1 SIMPLE t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index explain select a1,a2,b,min(c),max(c) from t2 where (c > 'a000') and (c <= 'd999') and (c like '_8__') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 index idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 1000 Using where; Using index +1 SIMPLE t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index explain select a1, a2, b, c, min(d), max(d) from t1 group by a1,a2,b,c; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index idx_t1_1 idx_t1_1 163 NULL 1000 NULL +1 SIMPLE t1 index NULL idx_t1_1 163 NULL 1000 explain select a1,a2,count(a2) from t1 group by a1,a2,b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 1000 Using index +1 SIMPLE t1 index NULL idx_t1_2 147 NULL 1000 Using index explain extended select a1,a2,count(a2) from t1 where (a1 > 'a') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE t1 index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 1000 100.00 Using where; Using index +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_2 65 NULL 1000 100.00 Using where; Using index Warnings: -Note 1003 /* select#1 */ select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,count(`test`.`t1`.`a2`) AS `count(a2)` from `test`.`t1` where (`test`.`t1`.`a1` > 'a') group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` +Note 1003 select `test`.`t1`.`a1` AS `a1`,`test`.`t1`.`a2` AS `a2`,count(`test`.`t1`.`a2`) AS `count(a2)` from `test`.`t1` where `test`.`t1`.`a1` > 'a' group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain extended select sum(ord(a1)) from t1 where (a1 > 'a') group by a1,a2,b; id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE t1 index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_2 147 NULL 1000 100.00 Using where; Using index +1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_2 65 NULL 1000 100.00 Using where; Using index Warnings: -Note 1003 /* select#1 */ select sum(ord(`test`.`t1`.`a1`)) AS `sum(ord(a1))` from `test`.`t1` where (`test`.`t1`.`a1` > 'a') group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` -set optimizer_switch = 'multi_range_groupby=off'; +Note 1003 select sum(ord(`test`.`t1`.`a1`)) AS `sum(ord(a1))` from `test`.`t1` where `test`.`t1`.`a1` > 'a' group by `test`.`t1`.`a1`,`test`.`t1`.`a2`,`test`.`t1`.`b` explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'a' or b = 'b') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 index idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_0 65 NULL 1000 Using where -set optimizer_switch = 'default'; +1 SIMPLE t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index explain select a1,a2,b,max(c),min(c) from t2 where (a2 = 'a') and (b = 'a' or b = 'b') group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 126 Using where; Using index for group-by +1 SIMPLE t2 index NULL idx_t2_1 163 NULL 1000 Using where; Using index explain select distinct(a1) from t1 where ord(a2) = 98; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_0 65 NULL 1000 Using where +1 SIMPLE t1 index NULL idx_t1_2 147 NULL 1000 Using where; Using index select distinct(a1) from t1 where ord(a2) = 98; a1 a @@ -2266,7 +2282,7 @@ d explain select a1 from t1 where a2 = 'b' group by a1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 126 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 130 NULL 63 Using where; Using index for group-by select a1 from t1 where a2 = 'b' group by a1; a1 a @@ -2275,7 +2291,7 @@ d explain select distinct a1 from t1 where a2 = 'b'; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 130 NULL 126 Using where; Using index for group-by +1 SIMPLE t1 range NULL idx_t1_1 130 NULL 63 Using where; Using index for group-by select distinct a1 from t1 where a2 = 'b'; a1 a @@ -2385,7 +2401,7 @@ ('SOUTH EAST'), ('SOUTH WEST'), ('WESTERN'); EXPLAIN SELECT DISTINCT a,a FROM t1 ORDER BY a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range PRIMARY PRIMARY 66 NULL 1001 Using index for group-by +1 SIMPLE t1 index NULL PRIMARY 66 NULL 1000 Using index SELECT DISTINCT a,a FROM t1 ORDER BY a; a a @@ -2477,7 +2493,7 @@ test.t1 analyze status OK EXPLAIN SELECT max(b), a FROM t1 GROUP BY a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range a a 5 NULL 501 Using index for group-by +1 SIMPLE t1 range NULL a 5 NULL 251 Using index for group-by FLUSH STATUS; SELECT max(b), a FROM t1 GROUP BY a; max(b) a @@ -2489,15 +2505,17 @@ Variable_name Value Handler_read_key 8 Handler_read_next 0 +Handler_read_retry 0 EXPLAIN SELECT max(b), a FROM t1 GROUP BY a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range a a 5 NULL 501 Using index for group-by +1 SIMPLE t1 range NULL a 5 NULL 251 Using index for group-by FLUSH STATUS; CREATE TABLE t2 engine=RocksDB SELECT max(b), a FROM t1 GROUP BY a; SHOW STATUS LIKE 'handler_read__e%'; Variable_name Value Handler_read_key 8 Handler_read_next 0 +Handler_read_retry 0 FLUSH STATUS; SELECT * FROM (SELECT max(b), a FROM t1 GROUP BY a) b; max(b) a @@ -2509,6 +2527,7 @@ Variable_name Value Handler_read_key 8 Handler_read_next 0 +Handler_read_retry 0 FLUSH STATUS; (SELECT max(b), a FROM t1 GROUP BY a) UNION (SELECT max(b), a FROM t1 GROUP BY a); @@ -2521,50 +2540,52 @@ Variable_name Value Handler_read_key 16 Handler_read_next 0 +Handler_read_retry 0 EXPLAIN (SELECT max(b), a FROM t1 GROUP BY a) UNION (SELECT max(b), a FROM t1 GROUP BY a); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 range a a 5 NULL 501 Using index for group-by -2 UNION t1 range a a 5 NULL 501 Using index for group-by -NULL UNION RESULT ALL NULL NULL NULL NULL NULL Using temporary +1 PRIMARY t1 range NULL a 5 NULL 251 Using index for group-by +2 UNION t1 range NULL a 5 NULL 251 Using index for group-by +NULL UNION RESULT ALL NULL NULL NULL NULL NULL EXPLAIN SELECT (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) x FROM t1 AS t1_outer; id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t1_outer index NULL a 10 NULL 1000 Using index -2 SUBQUERY t1 range a a 5 NULL 501 Using index for group-by +2 SUBQUERY t1 range NULL a 5 NULL 251 Using index for group-by EXPLAIN SELECT 1 FROM t1 AS t1_outer WHERE EXISTS (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t1_outer index NULL a 10 NULL 1000 Using index -2 SUBQUERY t1 range a a 5 NULL 501 Using index for group-by +2 SUBQUERY t1 index NULL a 10 NULL 1000 Using index EXPLAIN SELECT 1 FROM t1 AS t1_outer WHERE (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) > 12; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE -2 SUBQUERY t1 range a a 5 NULL 501 Using index for group-by +1 PRIMARY t1_outer index NULL a 10 NULL 1000 Using index +2 SUBQUERY t1 range NULL a 5 NULL 251 Using index for group-by EXPLAIN SELECT 1 FROM t1 AS t1_outer WHERE a IN (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1_outer index NULL a 10 NULL 1000 Using where; Using index -2 SUBQUERY t1 range a a 5 NULL 501 Using index for group-by +1 PRIMARY ALL distinct_key NULL NULL NULL 251 +1 PRIMARY t1_outer ref a a 5 .max(b) 4 Using index +2 MATERIALIZED t1 range NULL a 5 NULL 251 Using index for group-by EXPLAIN SELECT 1 FROM t1 AS t1_outer GROUP BY a HAVING a > (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2); id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1_outer range a a 5 NULL 501 Using index for group-by -2 SUBQUERY t1 range a a 5 NULL 501 Using index for group-by +1 PRIMARY t1_outer range NULL a 5 NULL 251 Using index for group-by +2 SUBQUERY t1 range NULL a 5 NULL 251 Using index for group-by EXPLAIN SELECT 1 FROM t1 AS t1_outer1 JOIN t1 AS t1_outer2 ON t1_outer1.a = (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) AND t1_outer1.b = t1_outer2.b; id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1_outer2 index NULL a 10 NULL 1000 Using where; Using index -1 PRIMARY t1_outer1 ref a a 10 const,test.t1_outer2.b 1 Using where; Using index -2 SUBQUERY t1 range a a 5 NULL 501 Using index for group-by +1 PRIMARY t1_outer1 ref a a 5 const 4 Using where; Using index +1 PRIMARY t1_outer2 index NULL a 10 NULL 1000 Using where; Using index; Using join buffer (flat, BNL join) +2 SUBQUERY t1 range NULL a 5 NULL 251 Using index for group-by EXPLAIN SELECT (SELECT (SELECT max(b) FROM t1 GROUP BY a HAVING a < 2) x FROM t1 AS t1_outer) x2 FROM t1 AS t1_outer2; id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t1_outer2 index NULL a 10 NULL 1000 Using index 2 SUBQUERY t1_outer index NULL a 10 NULL 1000 Using index -3 SUBQUERY t1 range a a 5 NULL 501 Using index for group-by +3 SUBQUERY t1 range NULL a 5 NULL 251 Using index for group-by CREATE TABLE t3 LIKE t1; FLUSH STATUS; INSERT INTO t3 SELECT a,MAX(b) FROM t1 GROUP BY a; @@ -2572,6 +2593,7 @@ Variable_name Value Handler_read_key 8 Handler_read_next 0 +Handler_read_retry 0 DELETE FROM t3; FLUSH STATUS; INSERT INTO t3 SELECT 1, (SELECT MAX(b) FROM t1 GROUP BY a HAVING a < 2) @@ -2580,12 +2602,14 @@ Variable_name Value Handler_read_key 8 Handler_read_next 0 +Handler_read_retry 0 FLUSH STATUS; DELETE FROM t3 WHERE (SELECT MAX(b) FROM t1 GROUP BY a HAVING a < 2) > 10000; SHOW STATUS LIKE 'handler_read__e%'; Variable_name Value Handler_read_key 8 Handler_read_next 0 +Handler_read_retry 0 FLUSH STATUS; DELETE FROM t3 WHERE (SELECT (SELECT MAX(b) FROM t1 GROUP BY a HAVING a < 2) x FROM t1) > 10000; @@ -2594,6 +2618,7 @@ Variable_name Value Handler_read_key 8 Handler_read_next 1 +Handler_read_retry 0 DROP TABLE t1,t2,t3; CREATE TABLE t1 (a int, INDEX idx(a)) engine=RocksDB; INSERT INTO t1 VALUES @@ -2604,7 +2629,7 @@ test.t1 analyze status OK EXPLAIN SELECT DISTINCT(a) FROM t1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx idx 5 NULL 1001 Using index for group-by +1 SIMPLE t1 range NULL idx 5 NULL 501 Using index for group-by SELECT DISTINCT(a) FROM t1; a 1 @@ -2612,7 +2637,7 @@ 4 EXPLAIN SELECT SQL_BIG_RESULT DISTINCT(a) FROM t1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx idx 5 NULL 1001 Using index for group-by +1 SIMPLE t1 range NULL idx 5 NULL 501 Using index for group-by SELECT SQL_BIG_RESULT DISTINCT(a) FROM t1; a 1 @@ -2640,7 +2665,7 @@ EXPLAIN SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a ORDER BY a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range break_it break_it 10 NULL 501 Using index for group-by +1 SIMPLE t1 range NULL break_it 10 NULL 251 Using index for group-by SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a ORDER BY a; a MIN(b) MAX(b) 1 1 3 @@ -2650,7 +2675,7 @@ EXPLAIN SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a ORDER BY a DESC; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range break_it break_it 10 NULL 501 Using index for group-by; Using temporary; Using filesort +1 SIMPLE t1 range NULL break_it 10 NULL 251 Using index for group-by; Using temporary; Using filesort SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a ORDER BY a DESC; a MIN(b) MAX(b) 4 1 3 @@ -2660,7 +2685,7 @@ EXPLAIN SELECT a, MIN(b), MAX(b), AVG(b) FROM t1 GROUP BY a ORDER BY a DESC; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index break_it break_it 10 NULL 1000 Using index +1 SIMPLE t1 index NULL break_it 10 NULL 1000 Using index SELECT a, MIN(b), MAX(b), AVG(b) FROM t1 GROUP BY a ORDER BY a DESC; a MIN(b) MAX(b) AVG(b) 4 1 3 2.0000 @@ -2743,9 +2768,9 @@ 3 13 explain extended select sql_buffer_result a, max(b)+1 from t1 where a = 0 group by a; id select_type table type possible_keys key key_len ref rows filtered Extra -1 SIMPLE t1 range PRIMARY,index PRIMARY 4 NULL 1 100.00 Using where; Using index for group-by; Using temporary +1 SIMPLE t1 ref PRIMARY,index PRIMARY 4 const 15 100.00 Using index; Using temporary Warnings: -Note 1003 /* select#1 */ select sql_buffer_result `test`.`t1`.`a` AS `a`,(max(`test`.`t1`.`b`) + 1) AS `max(b)+1` from `test`.`t1` where (`test`.`t1`.`a` = 0) group by `test`.`t1`.`a` +Note 1003 select sql_buffer_result `test`.`t1`.`a` AS `a`,max(`test`.`t1`.`b`) + 1 AS `max(b)+1` from `test`.`t1` where `test`.`t1`.`a` = 0 group by `test`.`t1`.`a` drop table t1; CREATE TABLE t1 (a int, b int, c int, d int, KEY foo (c,d,a,b), KEY bar (c,a,b,d)) engine=RocksDB; @@ -2758,7 +2783,7 @@ test.t1 analyze status OK EXPLAIN SELECT DISTINCT c FROM t1 WHERE d=4; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range foo,bar foo 10 NULL 126 Using where; Using index for group-by +1 SIMPLE t1 range NULL foo 10 NULL 63 Using where; Using index for group-by SELECT DISTINCT c FROM t1 WHERE d=4; c 1 @@ -2780,7 +2805,7 @@ EXPLAIN SELECT a, MIN(b) FROM t WHERE b <> 0 GROUP BY a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t range a a 10 NULL 501 Using where; Using index for group-by +1 SIMPLE t range NULL a 10 NULL 251 Using where; Using index for group-by #should return 1 row SELECT a, MIN(b) FROM t WHERE b <> 0 GROUP BY a; a MIN(b) @@ -2790,7 +2815,7 @@ EXPLAIN SELECT a, MAX(b) FROM t WHERE b <> 1 GROUP BY a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t range a a 10 NULL 501 Using where; Using index for group-by +1 SIMPLE t range NULL a 10 NULL 251 Using where; Using index for group-by #should return 1 row SELECT a, MAX(b) FROM t WHERE b <> 1 GROUP BY a; a MAX(b) @@ -2801,7 +2826,7 @@ EXPLAIN SELECT a, MAX(b) FROM t WHERE b > 0 AND b < 2 GROUP BY a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t range a a 10 NULL 501 Using where; Using index for group-by +1 SIMPLE t range NULL a 10 NULL 251 Using where; Using index for group-by #should return 1 row SELECT a, MAX(b) FROM t WHERE b > 0 AND b < 2 GROUP BY a; a MAX(b) @@ -2915,7 +2940,7 @@ EXPLAIN SELECT MIN( a ) FROM t1 WHERE a = (SELECT a FROM t1 WHERE a < 0); id select_type table type possible_keys key key_len ref rows Extra -x x x x x x x x x Impossible WHERE noticed after reading const tables +x x x x x x x x x Using where; Using index x x x x x x x x x Using where; Using index SELECT MIN( a ) FROM t1 WHERE a = (SELECT a FROM t1 WHERE a < 0); MIN( a ) @@ -2990,7 +3015,7 @@ EXPLAIN SELECT MIN( a ) FROM t1 WHERE a = (SELECT a FROM t1 WHERE a < 0); id select_type table type possible_keys key key_len ref rows Extra -x x x x x x x x x Impossible WHERE noticed after reading const tables +x x x x x x x x x Using where; Using index x x x x x x x x x Using where; Using index SELECT MIN( a ) FROM t1 WHERE a = (SELECT a FROM t1 WHERE a < 0); MIN( a ) @@ -3072,7 +3097,7 @@ EXPLAIN SELECT MIN( a ) FROM t1 WHERE a = (SELECT a FROM t1 WHERE a < 0); id select_type table type possible_keys key key_len ref rows Extra -x x x x x x x x x Impossible WHERE noticed after reading const tables +x x x x x x x x x Using where; Using index x x x x x x x x x Using where; Using index SELECT MIN( a ) FROM t1 WHERE a = (SELECT a FROM t1 WHERE a < 0); MIN( a ) @@ -3119,45 +3144,45 @@ test.t2 analyze status OK EXPLAIN SELECT COUNT(DISTINCT a) FROM t1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range a a 5 NULL 501 Using index for group-by +1 SIMPLE t1 range NULL a 5 NULL 251 Using index for group-by SELECT COUNT(DISTINCT a) FROM t1; COUNT(DISTINCT a) 2 EXPLAIN SELECT COUNT(DISTINCT a,b) FROM t1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range a a 10 NULL 1001 Using index for group-by (scanning) +1 SIMPLE t1 range NULL a 10 NULL 501 Using index for group-by SELECT COUNT(DISTINCT a,b) FROM t1; COUNT(DISTINCT a,b) 16 EXPLAIN SELECT COUNT(DISTINCT b,a) FROM t1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range a a 10 NULL 1001 Using index for group-by (scanning) +1 SIMPLE t1 range NULL a 10 NULL 501 Using index for group-by SELECT COUNT(DISTINCT b,a) FROM t1; COUNT(DISTINCT b,a) 16 EXPLAIN SELECT COUNT(DISTINCT b) FROM t1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index a a 10 NULL 1000 Using index +1 SIMPLE t1 index NULL a 10 NULL 1000 Using index SELECT COUNT(DISTINCT b) FROM t1; COUNT(DISTINCT b) 8 EXPLAIN SELECT COUNT(DISTINCT a) FROM t1 GROUP BY a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range a a 5 NULL 501 Using index for group-by +1 SIMPLE t1 range NULL a 5 NULL 251 Using index for group-by SELECT COUNT(DISTINCT a) FROM t1 GROUP BY a; COUNT(DISTINCT a) 1 1 EXPLAIN SELECT COUNT(DISTINCT b) FROM t1 GROUP BY a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range a a 10 NULL 1001 Using index for group-by (scanning) +1 SIMPLE t1 range NULL a 10 NULL 501 Using index for group-by SELECT COUNT(DISTINCT b) FROM t1 GROUP BY a; COUNT(DISTINCT b) 8 8 EXPLAIN SELECT COUNT(DISTINCT a) FROM t1 GROUP BY b; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index a a 10 NULL 1000 Using index; Using filesort +1 SIMPLE t1 index NULL a 10 NULL 1000 Using index; Using filesort SELECT COUNT(DISTINCT a) FROM t1 GROUP BY b; COUNT(DISTINCT a) 2 @@ -3170,7 +3195,7 @@ 2 EXPLAIN SELECT DISTINCT COUNT(DISTINCT a) FROM t1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index a a 10 NULL 1000 Using index +1 SIMPLE t1 index NULL a 10 NULL 1000 Using index SELECT DISTINCT COUNT(DISTINCT a) FROM t1; COUNT(DISTINCT a) 2 @@ -3188,76 +3213,76 @@ 2 EXPLAIN SELECT COUNT(DISTINCT a) FROM t1 HAVING COUNT(DISTINCT c) < 10; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 NULL +1 SIMPLE t1 ALL NULL NULL NULL NULL 1000 SELECT COUNT(DISTINCT a) FROM t1 HAVING COUNT(DISTINCT c) < 10; COUNT(DISTINCT a) 2 EXPLAIN SELECT 1 FROM t1 HAVING COUNT(DISTINCT a) < 10; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range a a 5 NULL 501 Using index for group-by +1 SIMPLE t1 range NULL a 5 NULL 251 Using index for group-by SELECT 1 FROM t1 HAVING COUNT(DISTINCT a) < 10; 1 1 EXPLAIN SELECT 1 FROM t1 GROUP BY a HAVING COUNT(DISTINCT b) > 1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range a a 10 NULL 1001 Using index for group-by (scanning) +1 SIMPLE t1 range NULL a 10 NULL 501 Using index for group-by SELECT 1 FROM t1 GROUP BY a HAVING COUNT(DISTINCT b) > 1; 1 1 1 EXPLAIN SELECT COUNT(DISTINCT t1_1.a) FROM t1 t1_1, t1 t1_2 GROUP BY t1_1.a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1_1 index a a 10 NULL 1000 Using index; Using temporary; Using filesort -1 SIMPLE t1_2 index NULL a 10 NULL 1000 Using index; Using join buffer (Block Nested Loop) +1 SIMPLE t1_1 index NULL a 10 NULL 1000 Using index; Using temporary; Using filesort +1 SIMPLE t1_2 index NULL a 10 NULL 1000 Using index; Using join buffer (flat, BNL join) SELECT COUNT(DISTINCT t1_1.a) FROM t1 t1_1, t1 t1_2 GROUP BY t1_1.a; COUNT(DISTINCT t1_1.a) 1 1 EXPLAIN SELECT COUNT(DISTINCT a), 12 FROM t1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range a a 5 NULL 501 Using index for group-by +1 SIMPLE t1 range NULL a 5 NULL 251 Using index for group-by SELECT COUNT(DISTINCT a), 12 FROM t1; COUNT(DISTINCT a) 12 2 12 EXPLAIN SELECT COUNT(DISTINCT a, b, c) FROM t2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range a a 15 NULL 1001 Using index for group-by (scanning) +1 SIMPLE t2 range NULL a 15 NULL 501 Using index for group-by SELECT COUNT(DISTINCT a, b, c) FROM t2; COUNT(DISTINCT a, b, c) 16 EXPLAIN SELECT COUNT(DISTINCT a), SUM(DISTINCT a), AVG(DISTINCT a) FROM t2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range a a 5 NULL 251 Using index for group-by +1 SIMPLE t2 range NULL a 5 NULL 126 Using index for group-by SELECT COUNT(DISTINCT a), SUM(DISTINCT a), AVG(DISTINCT a) FROM t2; COUNT(DISTINCT a) SUM(DISTINCT a) AVG(DISTINCT a) 2 3 1.5000 EXPLAIN SELECT COUNT(DISTINCT a), SUM(DISTINCT a), AVG(DISTINCT f) FROM t2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 ALL NULL NULL NULL NULL 1000 NULL +1 SIMPLE t2 ALL NULL NULL NULL NULL 1000 SELECT COUNT(DISTINCT a), SUM(DISTINCT a), AVG(DISTINCT f) FROM t2; COUNT(DISTINCT a) SUM(DISTINCT a) AVG(DISTINCT f) 2 3 1.0000 EXPLAIN SELECT COUNT(DISTINCT a, b), COUNT(DISTINCT b, a) FROM t2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range a a 10 NULL 501 Using index for group-by (scanning) +1 SIMPLE t2 range NULL a 10 NULL 251 Using index for group-by SELECT COUNT(DISTINCT a, b), COUNT(DISTINCT b, a) FROM t2; COUNT(DISTINCT a, b) COUNT(DISTINCT b, a) 16 16 EXPLAIN SELECT COUNT(DISTINCT a, b), COUNT(DISTINCT b, f) FROM t2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 ALL NULL NULL NULL NULL 1000 NULL +1 SIMPLE t2 ALL NULL NULL NULL NULL 1000 SELECT COUNT(DISTINCT a, b), COUNT(DISTINCT b, f) FROM t2; COUNT(DISTINCT a, b) COUNT(DISTINCT b, f) 16 8 EXPLAIN SELECT COUNT(DISTINCT a, b), COUNT(DISTINCT b, d) FROM t2; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 ALL NULL NULL NULL NULL 1000 NULL +1 SIMPLE t2 ALL NULL NULL NULL NULL 1000 SELECT COUNT(DISTINCT a, b), COUNT(DISTINCT b, d) FROM t2; COUNT(DISTINCT a, b) COUNT(DISTINCT b, d) 16 8 EXPLAIN SELECT a, c, COUNT(DISTINCT c, a, b) FROM t2 GROUP BY a, b, c; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range a a 15 NULL 1001 Using index for group-by (scanning) +1 SIMPLE t2 range NULL a 15 NULL 501 Using index for group-by SELECT a, c, COUNT(DISTINCT c, a, b) FROM t2 GROUP BY a, b, c; a c COUNT(DISTINCT c, a, b) 1 1 1 @@ -3279,7 +3304,7 @@ EXPLAIN SELECT COUNT(DISTINCT c, a, b) FROM t2 WHERE a > 5 AND b BETWEEN 10 AND 20 GROUP BY a, b, c; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range a a 15 NULL 1001 Using where; Using index for group-by (scanning) +1 SIMPLE t2 range a a 15 NULL 501 Using where; Using index for group-by SELECT COUNT(DISTINCT c, a, b) FROM t2 WHERE a > 5 AND b BETWEEN 10 AND 20 GROUP BY a, b, c; COUNT(DISTINCT c, a, b) @@ -3292,28 +3317,28 @@ COUNT(DISTINCT b) SUM(DISTINCT b) EXPLAIN SELECT a, COUNT(DISTINCT b), SUM(DISTINCT b) FROM t2 GROUP BY a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range a a 10 NULL 501 Using index for group-by (scanning) +1 SIMPLE t2 range NULL a 10 NULL 251 Using index for group-by SELECT a, COUNT(DISTINCT b), SUM(DISTINCT b) FROM t2 GROUP BY a; a COUNT(DISTINCT b) SUM(DISTINCT b) 1 8 36 2 8 36 EXPLAIN SELECT COUNT(DISTINCT b), SUM(DISTINCT b) FROM t2 GROUP BY a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range a a 10 NULL 501 Using index for group-by (scanning) +1 SIMPLE t2 range NULL a 10 NULL 251 Using index for group-by SELECT COUNT(DISTINCT b), SUM(DISTINCT b) FROM t2 GROUP BY a; COUNT(DISTINCT b) SUM(DISTINCT b) 8 36 8 36 EXPLAIN SELECT COUNT(DISTINCT a, b) FROM t2 WHERE c = 13 AND d = 42; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 ALL a NULL NULL NULL 1000 Using where +1 SIMPLE t2 ALL NULL NULL NULL NULL 1000 Using where SELECT COUNT(DISTINCT a, b) FROM t2 WHERE c = 13 AND d = 42; COUNT(DISTINCT a, b) 0 EXPLAIN SELECT a, COUNT(DISTINCT a), SUM(DISTINCT a) FROM t2 WHERE b = 13 AND c = 42 GROUP BY a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range a a 15 NULL 251 Using where; Using index for group-by +1 SIMPLE t2 range NULL a 15 NULL 126 Using where; Using index for group-by SELECT a, COUNT(DISTINCT a), SUM(DISTINCT a) FROM t2 WHERE b = 13 AND c = 42 GROUP BY a; a COUNT(DISTINCT a) SUM(DISTINCT a) @@ -3327,14 +3352,14 @@ 0 NULL EXPLAIN SELECT SUM(DISTINCT a), MAX(b) FROM t2 GROUP BY a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 index a a 15 NULL 1000 Using index +1 SIMPLE t2 index NULL a 15 NULL 1000 Using index SELECT SUM(DISTINCT a), MAX(b) FROM t2 GROUP BY a; SUM(DISTINCT a) MAX(b) 1 8 2 8 EXPLAIN SELECT 42 * (a + c + COUNT(DISTINCT c, a, b)) FROM t2 GROUP BY a, b, c; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 range a a 15 NULL 1001 Using index for group-by (scanning) +1 SIMPLE t2 range NULL a 15 NULL 501 Using index for group-by SELECT 42 * (a + c + COUNT(DISTINCT c, a, b)) FROM t2 GROUP BY a, b, c; 42 * (a + c + COUNT(DISTINCT c, a, b)) 126 @@ -3355,7 +3380,7 @@ 168 EXPLAIN SELECT (SUM(DISTINCT a) + MAX(b)) FROM t2 GROUP BY a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2 index a a 15 NULL 1000 Using index +1 SIMPLE t2 index NULL a 15 NULL 1000 Using index SELECT (SUM(DISTINCT a) + MAX(b)) FROM t2 GROUP BY a; (SUM(DISTINCT a) + MAX(b)) 9 @@ -3383,7 +3408,7 @@ 3 4 explain SELECT f1, COUNT(DISTINCT f2) FROM t1 GROUP BY f1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index PRIMARY PRIMARY 5 NULL 1000 Using index +1 SIMPLE t1 index NULL PRIMARY 5 NULL 1000 Using index drop table t1; # End of test#50539. # @@ -3395,9 +3420,6 @@ ANALYZE TABLE t; Table Op Msg_type Msg_text test.t analyze status OK -set optimizer_trace_max_mem_size=1048576; -set @@session.optimizer_trace='enabled=on'; -set end_markers_in_json=on; ANALYZE TABLE t; Table Op Msg_type Msg_text test.t analyze status OK @@ -3409,11 +3431,7 @@ 4 4 4 EXPLAIN SELECT a, SUM(DISTINCT a), MIN(b) FROM t GROUP BY a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t index a a 10 NULL 1000 Using index -SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK -FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; -OK -1 +1 SIMPLE t index NULL a 10 NULL 1000 Using index SELECT a, SUM(DISTINCT a), MAX(b) FROM t GROUP BY a; a SUM(DISTINCT a) MAX(b) 1 1 1 @@ -3422,11 +3440,7 @@ 4 4 5 EXPLAIN SELECT a, SUM(DISTINCT a), MAX(b) FROM t GROUP BY a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t index a a 10 NULL 1000 Using index -SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK -FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; -OK -1 +1 SIMPLE t index NULL a 10 NULL 1000 Using index SELECT a, MAX(b) FROM t GROUP BY a HAVING SUM(DISTINCT a); a MAX(b) 1 1 @@ -3435,21 +3449,13 @@ 4 5 EXPLAIN SELECT a, MAX(b) FROM t GROUP BY a HAVING SUM(DISTINCT a); id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t index a a 10 NULL 1000 Using index -SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK -FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; -OK -1 +1 SIMPLE t index NULL a 10 NULL 1000 Using index SELECT SUM(DISTINCT a), MIN(b), MAX(b) FROM t; SUM(DISTINCT a) MIN(b) MAX(b) 10 0 5 EXPLAIN SELECT SUM(DISTINCT a), MIN(b), MAX(b) FROM t; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t index a a 10 NULL 1000 Using index -SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK -FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; -OK -1 +1 SIMPLE t index NULL a 10 NULL 1000 Using index SELECT a, SUM(DISTINCT a), MIN(b), MAX(b) FROM t GROUP BY a; a SUM(DISTINCT a) MIN(b) MAX(b) 1 1 0 1 @@ -3458,14 +3464,7 @@ 4 4 4 5 EXPLAIN SELECT a, SUM(DISTINCT a), MIN(b), MAX(b) FROM t GROUP BY a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t index a a 10 NULL 1000 Using index -SELECT TRACE RLIKE 'have_both_agg_distinct_and_min_max' AS OK -FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE; -OK -1 -SET optimizer_trace_max_mem_size=DEFAULT; -SET optimizer_trace=DEFAULT; -SET end_markers_in_json=DEFAULT; +1 SIMPLE t index NULL a 10 NULL 1000 Using index DROP TABLE t; # # Bug#18109609: LOOSE INDEX SCAN IS NOT USED WHEN IT SHOULD @@ -3484,7 +3483,7 @@ test.t1 analyze status OK EXPLAIN SELECT MAX(c2), c1 FROM t1 WHERE c1 = 4 GROUP BY c1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range c1 c1 5 NULL 251 Using where; Using index for group-by +1 SIMPLE t1 ref c1 c1 5 const 1000 Using index FLUSH STATUS; SELECT MAX(c2), c1 FROM t1 WHERE c1 = 4 GROUP BY c1; MAX(c2) c1 @@ -3492,12 +3491,14 @@ SHOW SESSION STATUS LIKE 'Handler_read%'; Variable_name Value Handler_read_first 0 -Handler_read_key 3 -Handler_read_last 1 -Handler_read_next 0 +Handler_read_key 1 +Handler_read_last 0 +Handler_read_next 20 Handler_read_prev 0 +Handler_read_retry 0 Handler_read_rnd 0 +Handler_read_rnd_deleted 0 Handler_read_rnd_next 0 DROP TABLE t1; # End of test for Bug#18109609 -set global debug="-d,force_group_by"; +set global debug_dbug=@debug_tmp; diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/index_key_block_size.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/index_key_block_size.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/index_key_block_size.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/index_key_block_size.result 2019-11-06 16:01:58.000000000 +0000 @@ -23,6 +23,8 @@ b CHAR(8), PRIMARY KEY ind2(b(1) DESC) KEY_BLOCK_SIZE=32768 COMMENT 'big key_block_size value' ) ENGINE=rocksdb; +Warnings: +Warning 1280 Name 'ind2' ignored for PRIMARY key. SHOW INDEX IN t1; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment t1 0 PRIMARY 1 b A # 1 NULL LSMTREE big key_block_size value diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/index_merge_rocksdb2.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/index_merge_rocksdb2.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/index_merge_rocksdb2.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/index_merge_rocksdb2.result 2019-11-06 16:01:58.000000000 +0000 @@ -26,7 +26,7 @@ test.t0 analyze status OK explain select * from t0 where key1 < 3 or key1 > 1020; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t0 range i1 i1 4 NULL 2 Using index condition; Using where +1 SIMPLE t0 range i1 i1 4 NULL 4 Using index condition; Using where explain select * from t0 where key1 < 3 or key2 > 1020; id select_type table type possible_keys key key_len ref rows Extra @@ -267,12 +267,12 @@ (t0.key1=3 or t0.key2<4) and t1.key1=2; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t0 ref i1,i2 i1 4 const 2 Using where -1 SIMPLE t1 ref i1 i1 4 const 1 +1 SIMPLE t1 ref i1 i1 4 const 2 explain select * from t0,t1 where t0.key1 = 5 and (t1.key1 = t0.key1 or t1.key8 = t0.key1); id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t0 ref i1 i1 4 const 1 -1 SIMPLE t1 index_merge i1,i8 i1,i8 4,4 NULL 2 Using union(i1,i8); Using where; Using join buffer (flat, BNL join) +1 SIMPLE t0 ref i1 i1 4 const 2 +1 SIMPLE t1 index_merge i1,i8 i1,i8 4,4 NULL 4 Using union(i1,i8); Using where; Using join buffer (flat, BNL join) explain select * from t0,t1 where t0.key1 < 3 and (t1.key1 = t0.key1 or t1.key8 = t0.key1); id select_type table type possible_keys key key_len ref rows Extra @@ -286,7 +286,7 @@ NULL UNION RESULT ALL NULL NULL NULL NULL NULL explain select * from (select * from t1 where key1 = 3 or key2 =3) as Z where key8 >5; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index_merge i1,i2,i8 i1,i2 4,4 NULL 2 Using union(i1,i2); Using where +1 SIMPLE t1 range i1,i2,i8 i8 4 NULL 2 Using index condition; Using where create table t3 like t0; insert into t3 select * from t0; alter table t3 add key9 int not null, add index i9(key9); @@ -392,10 +392,10 @@ 8704 explain select * from t1 WHERE cola = 'foo' AND colb = 'bar'; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index_merge cola,colb cola,colb 3,3 NULL # Using intersect(cola,colb); Using where +1 SIMPLE t1 ref cola,colb cola 3 const # Using index condition; Using where explain select * from t1 force index(cola,colb) WHERE cola = 'foo' AND colb = 'bar'; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index_merge cola,colb cola,colb 3,3 NULL # Using intersect(cola,colb); Using where +1 SIMPLE t1 ref cola,colb cola 3 const # Using index condition; Using where drop table t1; CREATE TABLE t1(a INT); INSERT INTO t1 VALUES(1); @@ -603,7 +603,7 @@ 64801 explain select key1,key2 from t1 where key1=100 and key2=100; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index_merge key1,key2 key2,key1 5,5 NULL # Using intersect(key2,key1); Using where; Using index +1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL # Using intersect(key1,key2); Using where; Using index select key1,key2 from t1 where key1=100 and key2=100; key1 key2 100 100 @@ -789,7 +789,7 @@ Level Code Message explain select pk from t1 where key1 = 1 and key2 = 1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ref key1,key2 key1 5 const 2 Using where +1 SIMPLE t1 index_merge key1,key2 key2,key1 4,5 NULL 1 Using intersect(key2,key1); Using where; Using index select pk from t1 where key2 = 1 and key1 = 1; pk 26 @@ -1057,7 +1057,7 @@ FROM t1 WHERE c = 1 AND b = 1 AND d = 1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ref c,bd c 5 const 2 Using where +1 SIMPLE t1 index_merge c,bd c,bd 5,10 NULL 1 Using intersect(c,bd); Using where; Using index CREATE TABLE t2 ( a INT ) SELECT a FROM t1 @@ -1288,7 +1288,7 @@ ); explain select * from t1 where pk1 = 1 and pk2 < 80 and key1=0; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range PRIMARY,key1 key1 12 NULL ROWS Using index condition +1 SIMPLE t1 range PRIMARY,key1 PRIMARY 8 NULL ROWS Using where select * from t1 where pk1 = 1 and pk2 < 80 and key1=0; pk1 pk2 key1 key2 pktail1ok pktail2ok pktail3bad pktail4bad pktail5bad pk2copy badkey filler1 filler2 1 10 0 0 0 0 0 0 0 10 0 filler-data-10 filler2 @@ -1321,13 +1321,13 @@ 1 SIMPLE t1 ref key1 key1 4 const ROWS Using where explain select * from t1 where pk1 < 7500 and key1 = 10; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range PRIMARY,key1 key1 8 NULL ROWS Using index condition +1 SIMPLE t1 range PRIMARY,key1 PRIMARY 4 NULL ROWS Using where explain select * from t1 where pktail1ok=1 and key1=10; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index_merge key1,pktail1ok key1,pktail1ok 4,4 NULL 1 Using intersect(key1,pktail1ok); Using where +1 SIMPLE t1 ref key1,pktail1ok key1 4 const 2 Using where explain select * from t1 where pktail2ok=1 and key1=10; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 index_merge key1,pktail2ok key1,pktail2ok 4,4 NULL 1 Using intersect(key1,pktail2ok); Using where +1 SIMPLE t1 ref key1,pktail2ok key1 4 const 2 Using where explain select * from t1 where (pktail2ok=1 and pk1< 50000) or key1=10; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 index_merge PRIMARY,key1,pktail2ok PRIMARY,key1 4,4 NULL ROWS Using union(PRIMARY,key1); Using where @@ -1393,7 +1393,7 @@ WHERE (SELECT COUNT(*) FROM t2 WHERE t2.f3 = 'h' AND t2.f2 = t1.f1) = 0 AND t1.f1 = 2; id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t1 const PRIMARY PRIMARY 4 const 1 Using index -2 SUBQUERY t2 ref f2,f3 f2 5 const 1 Using where +2 SUBQUERY t2 index_merge f2,f3 f3,f2 2,5 NULL 1 Using intersect(f3,f2); Using where; Using index DROP TABLE t1,t2; set global rocksdb_force_flush_memtable_now=1; # @@ -1412,5 +1412,5 @@ INSERT INTO t1 SELECT id + 16, 7, 0 FROM t1; EXPLAIN SELECT SQL_NO_CACHE count(*) FROM t1 WHERE id2=7 AND id3=0; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 ref id2,id3,covering_index covering_index 8 const,const 1 Using index +1 SIMPLE t1 ref id2,id3,covering_index covering_index 8 const,const 2 Using index DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/issue255.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/issue255.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/issue255.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/issue255.result 2019-11-06 16:01:58.000000000 +0000 @@ -2,7 +2,7 @@ INSERT INTO t1 VALUES (5); SHOW TABLE STATUS LIKE 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB # Fixed # # # # # # 6 NULL NULL NULL latin1_swedish_ci NULL 0 N +t1 ROCKSDB # Fixed # # # # # # 6 # # NULL latin1_swedish_ci NULL 0 N INSERT INTO t1 VALUES ('538647864786478647864'); Warnings: Warning 1264 Out of range value for column 'pk' at row 1 @@ -12,7 +12,7 @@ 9223372036854775807 SHOW TABLE STATUS LIKE 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed 2 22 44 0 0 0 9223372036854775807 NULL NULL NULL latin1_swedish_ci NULL 0 N +t1 ROCKSDB 10 Fixed 2 22 44 0 0 0 9223372036854775807 # # NULL latin1_swedish_ci NULL 0 N INSERT INTO t1 VALUES (); ERROR 23000: Duplicate entry '9223372036854775807' for key 'PRIMARY' SELECT * FROM t1; @@ -21,7 +21,7 @@ 9223372036854775807 SHOW TABLE STATUS LIKE 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB # Fixed # # # # # # 9223372036854775807 NULL NULL NULL latin1_swedish_ci NULL 0 N +t1 ROCKSDB # Fixed # # # # # # 9223372036854775807 # # NULL latin1_swedish_ci NULL 0 N INSERT INTO t1 VALUES (); ERROR 23000: Duplicate entry '9223372036854775807' for key 'PRIMARY' SELECT * FROM t1; @@ -30,13 +30,13 @@ 9223372036854775807 SHOW TABLE STATUS LIKE 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB # Fixed # # # # # # 9223372036854775807 NULL NULL NULL latin1_swedish_ci NULL 0 N +t1 ROCKSDB # Fixed # # # # # # 9223372036854775807 # # NULL latin1_swedish_ci NULL 0 N DROP TABLE t1; CREATE TABLE t1 (pk TINYINT NOT NULL PRIMARY KEY AUTO_INCREMENT); INSERT INTO t1 VALUES (5); SHOW TABLE STATUS LIKE 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB # Fixed # # # # # # 6 NULL NULL NULL latin1_swedish_ci NULL 0 N +t1 ROCKSDB # Fixed # # # # # # 6 # # NULL latin1_swedish_ci NULL 0 N INSERT INTO t1 VALUES (1000); Warnings: Warning 1264 Out of range value for column 'pk' at row 1 @@ -46,7 +46,7 @@ 127 SHOW TABLE STATUS LIKE 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB # Fixed # # # # # # 127 NULL NULL NULL latin1_swedish_ci NULL 0 N +t1 ROCKSDB # Fixed # # # # # # 127 # # NULL latin1_swedish_ci NULL 0 N INSERT INTO t1 VALUES (); ERROR 23000: Duplicate entry '127' for key 'PRIMARY' SELECT * FROM t1; @@ -55,7 +55,7 @@ 127 SHOW TABLE STATUS LIKE 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB # Fixed # # # # # # 127 NULL NULL NULL latin1_swedish_ci NULL 0 N +t1 ROCKSDB # Fixed # # # # # # 127 # # NULL latin1_swedish_ci NULL 0 N INSERT INTO t1 VALUES (); ERROR 23000: Duplicate entry '127' for key 'PRIMARY' SELECT * FROM t1; @@ -64,5 +64,5 @@ 127 SHOW TABLE STATUS LIKE 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB # Fixed # # # # # # 127 NULL NULL NULL latin1_swedish_ci NULL 0 N +t1 ROCKSDB # Fixed # # # # # # 127 # # NULL latin1_swedish_ci NULL 0 N DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/kill.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/kill.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/kill.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/kill.result 2019-11-06 16:01:58.000000000 +0000 @@ -0,0 +1,6 @@ +CREATE TABLE t1 (pk INT PRIMARY KEY) ENGINE=RocksDB; +LOCK TABLE t1 WRITE; +SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; +FLUSH TABLES; +ERROR HY000: MyRocks supports only READ COMMITTED and REPEATABLE READ isolation levels. Please change from current isolation level SERIALIZABLE +DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/rocksdb_qcache.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/rocksdb_qcache.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/rocksdb_qcache.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/rocksdb_qcache.result 2019-11-06 16:01:58.000000000 +0000 @@ -1,3 +1,7 @@ +set @save_query_cache_type=@@global.query_cache_type; +set @save_query_cache_size=@@global.query_cache_size; +set @@global.query_cache_type=1; +set @@global.query_cache_size=1024*1024; create table t1 (pk int primary key, c char(8)) engine=RocksDB; insert into t1 values (1,'new'),(2,'new'); select * from t1; @@ -37,3 +41,5 @@ Variable_name Value Qcache_hits 0 drop table t1; +set @@global.query_cache_type=@save_query_cache_type; +set @@global.query_cache_size=@save_query_cache_size; diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/rocksdb.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/rocksdb.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/rocksdb.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/rocksdb.result 2019-11-06 16:01:58.000000000 +0000 @@ -1421,7 +1421,7 @@ insert into t1 values (null),(null); show table status like 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed 1000 0 # 0 0 0 3 NULL NULL NULL latin1_swedish_ci NULL 0 N +t1 ROCKSDB 10 Fixed 1000 0 # 0 0 0 3 # # NULL latin1_swedish_ci NULL 0 N drop table t1; # # Fix Issue #4: Crash when using pseudo-unique keys @@ -2594,7 +2594,7 @@ INSERT INTO t1 VALUES(0),(-1),(0); SHOW TABLE STATUS LIKE 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed 1000 0 0 0 0 0 3 NULL NULL NULL latin1_swedish_ci NULL 0 N +t1 ROCKSDB 10 Fixed 1000 0 0 0 0 0 3 # # NULL latin1_swedish_ci NULL 0 N SELECT * FROM t1; a -1 @@ -2605,7 +2605,7 @@ INSERT INTO t1 VALUES(0),(10),(0); SHOW TABLE STATUS LIKE 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed 1000 0 0 0 0 0 12 NULL NULL NULL latin1_swedish_ci NULL 0 N +t1 ROCKSDB 10 Fixed 1000 0 0 0 0 0 12 # # NULL latin1_swedish_ci NULL 0 N SELECT * FROM t1; a 1 diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/select.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/select.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/select.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/select.result 2019-11-06 16:01:58.000000000 +0000 @@ -68,6 +68,7 @@ SELECT FOUND_ROWS(); FOUND_ROWS() 3 +SET @save_query_cache=@@global.query_cache_size; SET GLOBAL query_cache_size = 1024*1024; SELECT SQL_CACHE * FROM t1, t2; a b pk a b pk @@ -89,7 +90,7 @@ 200 bar 6 1 z 2 200 bar 6 100 foobar 1 200 bar 6 200 bar 3 -SET GLOBAL query_cache_size = 1048576; +SET @@global.query_cache_size=@save_query_cache; SELECT a+10 AS field1, CONCAT(b,':',b) AS field2 FROM t1 WHERE b > 'b' AND a IS NOT NULL GROUP BY 2 DESC, field1 ASC diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/show_table_status.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/show_table_status.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/show_table_status.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/show_table_status.result 2019-11-06 16:01:58.000000000 +0000 @@ -7,12 +7,12 @@ CREATE TABLE t3 (a INT, b CHAR(8), pk INT PRIMARY KEY) ENGINE=rocksdb CHARACTER SET utf8; SHOW TABLE STATUS WHERE name IN ( 't1', 't2', 't3' ); Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed 1000 # # 0 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL 0 N -t2 ROCKSDB 10 Fixed 1000 # # 0 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL 0 N -t3 ROCKSDB 10 Fixed 1000 # # 0 0 0 NULL NULL NULL NULL utf8_general_ci NULL 0 N +t1 ROCKSDB 10 Fixed 1000 # # 0 0 0 NULL # # NULL latin1_swedish_ci NULL 0 N +t2 ROCKSDB 10 Fixed 1000 # # 0 0 0 NULL # # NULL latin1_swedish_ci NULL 0 N +t3 ROCKSDB 10 Fixed 1000 # # 0 0 0 NULL # # NULL utf8_general_ci NULL 0 N SHOW TABLE STATUS WHERE name LIKE 't2'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t2 ROCKSDB 10 Fixed 1000 # # 0 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL 0 N +t2 ROCKSDB 10 Fixed 1000 # # 0 0 0 NULL # # NULL latin1_swedish_ci NULL 0 N DROP TABLE t1, t2, t3; CREATE DATABASE `db_new..............................................end`; USE `db_new..............................................end`; @@ -22,3 +22,114 @@ TABLE_SCHEMA db_new..............................................end TABLE_NAME t1_new..............................................end DROP DATABASE `db_new..............................................end`; +# +# MDEV-17171: Bug: RocksDB Tables do not have "Creation Date" +# +use test; +create table t1 (a int) engine=rocksdb; +select create_time is not null, update_time, check_time +from information_schema.tables where table_schema=database() and table_name='t1'; +create_time is not null update_time check_time +1 NULL NULL +insert into t1 values (1); +select create_time is not null, update_time is not null, check_time +from information_schema.tables where table_schema=database() and table_name='t1'; +create_time is not null update_time is not null check_time +1 1 NULL +flush tables; +select create_time is not null, update_time is not null, check_time +from information_schema.tables where table_schema=database() and table_name='t1'; +create_time is not null update_time is not null check_time +1 1 NULL +select create_time, update_time into @create_tm, @update_tm +from information_schema.tables +where table_schema=database() and table_name='t1'; +select sleep(3); +sleep(3) +0 +insert into t1 values (2); +select +create_time=@create_tm /* should not change */ , +timestampdiff(second, @update_tm, update_time) > 2, +check_time +from information_schema.tables +where table_schema=database() and table_name='t1'; +create_time=@create_tm 1 +timestampdiff(second, @update_tm, update_time) > 2 1 +check_time NULL +# +# Check how create_time survives ALTER TABLE. +# First, an ALTER TABLE that re-creates the table: +alter table t1 add b int; +select +create_time<>@create_tm /* should change */, +create_time IS NOT NULL, +update_time IS NULL +from information_schema.tables +where table_schema=database() and table_name='t1'; +create_time<>@create_tm 1 +create_time IS NOT NULL 1 +update_time IS NULL 1 +insert into t1 values (5,5); +select create_time, update_time into @create_tm, @update_tm +from information_schema.tables +where table_schema=database() and table_name='t1'; +# Then, an in-place ALTER TABLE: +select sleep(2); +sleep(2) 0 +alter table t1 add key (a); +# create_time will change as .frm file is rewritten: +select +create_time=@create_tm, +update_time +from information_schema.tables +where table_schema=database() and table_name='t1'; +create_time=@create_tm 0 +update_time NULL +# Check TRUNCATE TABLE +insert into t1 values (10,10); +select create_time, update_time into @create_tm, @update_tm +from information_schema.tables +where table_schema=database() and table_name='t1'; +select sleep(2); +sleep(2) 0 +truncate table t1; +select +create_time=@create_tm /* should not change */, +update_time +from information_schema.tables +where table_schema=database() and table_name='t1'; +create_time=@create_tm 1 +update_time NULL +# +# Check what is left after server restart +# +drop table t1; +create table t1 (a int); +insert into t1 values (1); +# Save t1's creation time +create table t2 as +select create_time +from information_schema.tables +where table_schema=database() and table_name='t1'; +select sleep(2); +sleep(2) 0 +select +create_time=(select create_time from t2) /* should not change */, +update_time +from information_schema.tables +where table_schema=database() and table_name='t1'; +create_time=(select create_time from t2) 1 +update_time NULL +drop table t1, t2; +# +# Check how it works for partitioned tables +# +create table t1 (pk int primary key) partition by hash(pk) partitions 2; +insert into t1 values (1); +select create_time IS NOT NULL , update_time IS NOT NULL +from information_schema.tables +where table_schema=database() and table_name='t1'; +create_time IS NOT NULL 1 +update_time IS NOT NULL 1 +drop table t1; diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/truncate_table.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/truncate_table.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/truncate_table.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/truncate_table.result 2019-11-06 16:01:58.000000000 +0000 @@ -9,19 +9,19 @@ CREATE TABLE t1 (a INT KEY AUTO_INCREMENT, c CHAR(8)) ENGINE=rocksdb; SHOW TABLE STATUS LIKE 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed # # # 0 0 0 1 NULL NULL NULL latin1_swedish_ci NULL 0 N +t1 ROCKSDB 10 Fixed # # # 0 0 0 1 # # NULL latin1_swedish_ci NULL 0 N INSERT INTO t1 (c) VALUES ('a'),('b'),('c'); SHOW TABLE STATUS LIKE 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed # # # 0 0 0 4 NULL NULL NULL latin1_swedish_ci NULL 0 N +t1 ROCKSDB 10 Fixed # # # 0 0 0 4 # # NULL latin1_swedish_ci NULL 0 N TRUNCATE TABLE t1; SHOW TABLE STATUS LIKE 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed # # # 0 0 0 1 NULL NULL NULL latin1_swedish_ci NULL 0 N +t1 ROCKSDB 10 Fixed # # # 0 0 0 1 # # NULL latin1_swedish_ci NULL 0 N INSERT INTO t1 (c) VALUES ('d'); SHOW TABLE STATUS LIKE 't1'; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment Max_index_length Temporary -t1 ROCKSDB 10 Fixed # # # 0 0 0 2 NULL NULL NULL latin1_swedish_ci NULL 0 N +t1 ROCKSDB 10 Fixed # # # 0 0 0 2 # # NULL latin1_swedish_ci NULL 0 N SELECT a,c FROM t1; a c 1 d diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/ttl_primary_read_filtering.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/ttl_primary_read_filtering.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/ttl_primary_read_filtering.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/ttl_primary_read_filtering.result 2019-11-06 16:01:58.000000000 +0000 @@ -76,6 +76,7 @@ variable_value-@a 4 DROP TABLE t1; +set global ROCKSDB_COMPACT_CF= 'default'; CREATE TABLE t1 ( a int, b int, diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/ttl_secondary_read_filtering.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/ttl_secondary_read_filtering.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/ttl_secondary_read_filtering.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/ttl_secondary_read_filtering.result 2019-11-06 16:01:58.000000000 +0000 @@ -101,6 +101,7 @@ SELECT * FROM t1 FORCE INDEX (kb); a b DROP TABLE t1; +set global rocksdb_compact_cf= 'default'; # Read filtering index scan tests (None of these queries should return any results) CREATE TABLE t1 ( a int, diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/type_blob_indexes.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/type_blob_indexes.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/type_blob_indexes.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/type_blob_indexes.result 2019-11-06 16:01:58.000000000 +0000 @@ -8,6 +8,8 @@ l LONGBLOB, PRIMARY KEY b (b(32)) ) ENGINE=rocksdb; +Warnings: +Warning 1280 Name 'b' ignored for PRIMARY key. SHOW INDEX IN t1; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment t1 0 PRIMARY 1 b A 1000 32 NULL LSMTREE @@ -133,6 +135,8 @@ b BLOB, PRIMARY KEY b (b(32)) ) ENGINE=rocksdb; +Warnings: +Warning 1280 Name 'b' ignored for PRIMARY key. INSERT INTO t1 (b) VALUES ('00000000000000000000000000000000'), ('00000000000000000000000000000001'), @@ -147,6 +151,8 @@ b TINYBLOB, PRIMARY KEY b (b(32)) ) ENGINE=rocksdb; +Warnings: +Warning 1280 Name 'b' ignored for PRIMARY key. INSERT INTO t1 (b) VALUES ('00000000000000000000000000000000'), ('00000000000000000000000000000001'), @@ -161,6 +167,8 @@ b MEDIUMBLOB, PRIMARY KEY b (b(32)) ) ENGINE=rocksdb; +Warnings: +Warning 1280 Name 'b' ignored for PRIMARY key. INSERT INTO t1 (b) VALUES ('00000000000000000000000000000000'), ('00000000000000000000000000000001'), @@ -175,6 +183,8 @@ b LONGBLOB, PRIMARY KEY b (b(32)) ) ENGINE=rocksdb; +Warnings: +Warning 1280 Name 'b' ignored for PRIMARY key. INSERT INTO t1 (b) VALUES ('00000000000000000000000000000000'), ('00000000000000000000000000000001'), diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/type_text_indexes.result mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/type_text_indexes.result --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/r/type_text_indexes.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/r/type_text_indexes.result 2019-11-06 16:01:58.000000000 +0000 @@ -8,6 +8,8 @@ l LONGTEXT, PRIMARY KEY t (t(32)) ) ENGINE=rocksdb; +Warnings: +Warning 1280 Name 't' ignored for PRIMARY key. SHOW INDEX IN t1; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment t1 0 PRIMARY 1 t A 1000 32 NULL LSMTREE @@ -55,6 +57,8 @@ PRIMARY KEY mt (pk(1)), INDEX (m(128)) ) ENGINE=rocksdb; +Warnings: +Warning 1280 Name 'mt' ignored for PRIMARY key. SHOW INDEX IN t1; Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment t1 0 PRIMARY 1 pk A 1000 1 NULL LSMTREE @@ -80,6 +84,8 @@ b TEXT, PRIMARY KEY b (b(32)) ) ENGINE=rocksdb; +Warnings: +Warning 1280 Name 'b' ignored for PRIMARY key. INSERT INTO t1 (b) VALUES ('00000000000000000000000000000000'), ('00000000000000000000000000000001'), @@ -94,6 +100,8 @@ b TINYTEXT, PRIMARY KEY b (b(32)) ) ENGINE=rocksdb; +Warnings: +Warning 1280 Name 'b' ignored for PRIMARY key. INSERT INTO t1 (b) VALUES ('00000000000000000000000000000000'), ('00000000000000000000000000000001'), @@ -108,6 +116,8 @@ b MEDIUMTEXT, PRIMARY KEY b (b(32)) ) ENGINE=rocksdb; +Warnings: +Warning 1280 Name 'b' ignored for PRIMARY key. INSERT INTO t1 (b) VALUES ('00000000000000000000000000000000'), ('00000000000000000000000000000001'), @@ -122,6 +132,8 @@ b LONGTEXT, PRIMARY KEY b (b(32)) ) ENGINE=rocksdb; +Warnings: +Warning 1280 Name 'b' ignored for PRIMARY key. INSERT INTO t1 (b) VALUES ('00000000000000000000000000000000'), ('00000000000000000000000000000001'), @@ -136,6 +148,8 @@ b LONGTEXT CHARACTER SET "binary" COLLATE "binary", PRIMARY KEY b (b(32)) ) ENGINE=rocksdb; +Warnings: +Warning 1280 Name 'b' ignored for PRIMARY key. INSERT INTO t1 (b) VALUES ('00000000000000000000000000000000'), ('00000000000000000000000000000001'), @@ -154,6 +168,8 @@ b LONGTEXT CHARACTER SET "latin1" COLLATE "latin1_bin", PRIMARY KEY b (b(32)) ) ENGINE=rocksdb; +Warnings: +Warning 1280 Name 'b' ignored for PRIMARY key. INSERT INTO t1 (b) VALUES (''), (_binary 0x0), (' '); ERROR 23000: Duplicate entry ' ' for key 'PRIMARY' INSERT INTO t1 (b) VALUES (''), (_binary 0x0); diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/suite.pm mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/suite.pm --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/suite.pm 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/suite.pm 2019-11-06 16:01:58.000000000 +0000 @@ -11,7 +11,7 @@ use File::Basename; use strict; -sub is_default { not $::opt_embedded_server } +#sub is_default { not $::opt_embedded_server } my $sst_dump= ::mtr_exe_maybe_exists( @@ -20,8 +20,8 @@ return "RocksDB is not compiled, no sst_dump" unless $sst_dump; $ENV{MARIAROCKS_SST_DUMP}="$sst_dump"; -# Temporarily disable testing under valgrind, due to MDEV-12439 -return "RocksDB tests disabled under valgrind" if ($::opt_valgrind); +## Temporarily disable testing under valgrind, due to MDEV-12439 +#return "RocksDB tests disabled under valgrind" if ($::opt_valgrind); bless { }; diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/concurrent_alter.test mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/concurrent_alter.test --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/concurrent_alter.test 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/concurrent_alter.test 2019-11-06 16:01:58.000000000 +0000 @@ -32,6 +32,8 @@ --exec bash $MYSQL_TMP_DIR/concurrent_alter.sh +let $server_charset=`select @@character_set_server`; +--replace_result $server_charset DEFAULT_CHARSET SHOW CREATE TABLE a1; DROP DATABASE mysqlslap; diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/disabled.def mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/disabled.def --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/disabled.def 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/disabled.def 2019-11-06 16:01:58.000000000 +0000 @@ -85,8 +85,6 @@ compact_deletes: MDEV-12663 : rocksdb.compact_deletes times out and causes other tests to fail blind_delete_without_tx_api: MDEV-12286: rocksdb.blind_delete_without_tx_api test fails -unique_check: wrong error number -autoinc_vars_thread: debug sync point wait timed out information_schema: MDEV-14372: unstable testcase ## @@ -94,7 +92,5 @@ ## mysqlbinlog_gtid_skip_empty_trans_rocksdb : MariaRocks: requires GTIDs -autoinc_debug: Fails with wrong results drop_table: Hangs on shutdown -allow_to_start_after_corruption : result difference and assertion failure -index_merge_rocksdb2 : result difference +add_index_inplace: not stable result diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/group_min_max.test mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/group_min_max.test --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/group_min_max.test 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/group_min_max.test 2019-11-06 16:01:58.000000000 +0000 @@ -1,8 +1,9 @@ --source include/have_debug.inc -set global debug="+d,force_group_by"; +set @debug_tmp= @@debug_dbug; +set global debug_dbug="+d,force_group_by"; let $engine=RocksDB; --source include/group_min_max.inc -set global debug="-d,force_group_by"; +set global debug_dbug=@debug_tmp; diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/issue255.test mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/issue255.test --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/issue255.test 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/issue255.test 2019-11-06 16:01:58.000000000 +0000 @@ -3,24 +3,25 @@ CREATE TABLE t1 (pk BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT); INSERT INTO t1 VALUES (5); ---replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # SHOW TABLE STATUS LIKE 't1'; INSERT INTO t1 VALUES ('538647864786478647864'); ---replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # SELECT * FROM t1; +--replace_column 12 # 13 # SHOW TABLE STATUS LIKE 't1'; --error ER_DUP_ENTRY INSERT INTO t1 VALUES (); SELECT * FROM t1; ---replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # SHOW TABLE STATUS LIKE 't1'; --error ER_DUP_ENTRY INSERT INTO t1 VALUES (); SELECT * FROM t1; ---replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # SHOW TABLE STATUS LIKE 't1'; DROP TABLE t1; @@ -28,24 +29,24 @@ CREATE TABLE t1 (pk TINYINT NOT NULL PRIMARY KEY AUTO_INCREMENT); INSERT INTO t1 VALUES (5); ---replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # SHOW TABLE STATUS LIKE 't1'; INSERT INTO t1 VALUES (1000); SELECT * FROM t1; ---replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # SHOW TABLE STATUS LIKE 't1'; --error ER_DUP_ENTRY INSERT INTO t1 VALUES (); SELECT * FROM t1; ---replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # SHOW TABLE STATUS LIKE 't1'; --error ER_DUP_ENTRY INSERT INTO t1 VALUES (); SELECT * FROM t1; ---replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # +--replace_column 3 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # SHOW TABLE STATUS LIKE 't1'; DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/kill.test mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/kill.test --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/kill.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/kill.test 2019-11-06 16:01:58.000000000 +0000 @@ -0,0 +1,9 @@ +--source include/have_binlog_format_row.inc +--source include/have_rocksdb.inc + +CREATE TABLE t1 (pk INT PRIMARY KEY) ENGINE=RocksDB; +LOCK TABLE t1 WRITE; +SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; +--error ER_ISOLATION_MODE_NOT_SUPPORTED +FLUSH TABLES; +DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/records_in_range.test mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/records_in_range.test --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/records_in_range.test 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/records_in_range.test 2019-11-06 16:01:58.000000000 +0000 @@ -1,6 +1,6 @@ --source include/have_rocksdb.inc - --source include/restart_mysqld.inc +--source include/default_optimizer_switch.inc --disable_warnings DROP TABLE IF EXISTS t1; diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/rocksdb_concurrent_delete.inc mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/rocksdb_concurrent_delete.inc --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/rocksdb_concurrent_delete.inc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/rocksdb_concurrent_delete.inc 2019-11-06 16:01:58.000000000 +0000 @@ -1,4 +1,7 @@ ---source include/have_rocksdb.inc +# MariaDB: including the below too many times causes really long argv list +# in win_main()'s argument which blows up some limit on Windows. +# Comment it out: +#--source include/have_rocksdb.inc --source include/have_debug_sync.inc --source include/count_sessions.inc diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/rocksdb_qcache.test mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/rocksdb_qcache.test --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/rocksdb_qcache.test 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/rocksdb_qcache.test 2019-11-06 16:01:58.000000000 +0000 @@ -3,7 +3,12 @@ # Important: # The test needs to be run with --mysqld=--query-cache-type=1 --- source include/have_query_cache.inc +--source include/have_query_cache.inc +set @save_query_cache_type=@@global.query_cache_type; +set @save_query_cache_size=@@global.query_cache_size; +set @@global.query_cache_type=1; +set @@global.query_cache_size=1024*1024; + --enable_connect_log create table t1 (pk int primary key, c char(8)) engine=RocksDB; @@ -30,3 +35,9 @@ show global status like 'Qcache_hits'; drop table t1; + +# +# Cleanup +# +set @@global.query_cache_type=@save_query_cache_type; +set @@global.query_cache_size=@save_query_cache_size; diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/rocksdb.test mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/rocksdb.test --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/rocksdb.test 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/rocksdb.test 2019-11-06 16:01:58.000000000 +0000 @@ -1207,7 +1207,7 @@ create table t1 (i int primary key auto_increment) engine=RocksDB; insert into t1 values (null),(null); ---replace_column 7 # +--replace_column 7 # 12 # 13 # show table status like 't1'; drop table t1; @@ -1914,11 +1914,13 @@ # value is 4 while MyRocks will show it as 3. CREATE TABLE t1(a INT AUTO_INCREMENT KEY); INSERT INTO t1 VALUES(0),(-1),(0); +--replace_column 12 # 13 # SHOW TABLE STATUS LIKE 't1'; SELECT * FROM t1; DROP TABLE t1; CREATE TABLE t1(a INT AUTO_INCREMENT KEY); INSERT INTO t1 VALUES(0),(10),(0); +--replace_column 12 # 13 # SHOW TABLE STATUS LIKE 't1'; SELECT * FROM t1; DROP TABLE t1; diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/select.test mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/select.test --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/select.test 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/select.test 2019-11-06 16:01:58.000000000 +0000 @@ -40,11 +40,11 @@ FROM t1 t1_1, t2, t1 t1_2; SELECT FOUND_ROWS(); -let $query_cache = `SELECT @@query_cache_size`; +SET @save_query_cache=@@global.query_cache_size; SET GLOBAL query_cache_size = 1024*1024; --sorted_result SELECT SQL_CACHE * FROM t1, t2; -eval SET GLOBAL query_cache_size = $query_cache; +SET @@global.query_cache_size=@save_query_cache; # Combination of main clauses diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/show_table_status.test mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/show_table_status.test --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/show_table_status.test 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/show_table_status.test 2019-11-06 16:01:58.000000000 +0000 @@ -1,4 +1,5 @@ --source include/have_rocksdb.inc +--source include/have_partition.inc --source include/not_windows.inc # decorated database names is too long, exceeded OS limits # @@ -25,7 +26,7 @@ CREATE TABLE t3 (a INT, b CHAR(8), pk INT PRIMARY KEY) ENGINE=rocksdb CHARACTER SET utf8; ---replace_column 6 # 7 # +--replace_column 6 # 7 # 12 # 13 # SHOW TABLE STATUS WHERE name IN ( 't1', 't2', 't3' ); # Some statistics don't get updated as quickly. The Data_length and @@ -49,7 +50,7 @@ # We expect the number of rows to be 10000. Data_len and Avg_row_len # may vary, depending on built-in compression library. ---replace_column 6 # 7 # +--replace_column 6 # 7 # 12 # 13 # SHOW TABLE STATUS WHERE name LIKE 't2'; DROP TABLE t1, t2, t3; @@ -63,3 +64,112 @@ INSERT INTO `t1_new..............................................end` VALUES (1); --query_vertical SELECT TABLE_SCHEMA, TABLE_NAME FROM information_schema.table_statistics WHERE TABLE_NAME = 't1_new..............................................end' DROP DATABASE `db_new..............................................end`; +--echo # +--echo # MDEV-17171: Bug: RocksDB Tables do not have "Creation Date" +--echo # +use test; +create table t1 (a int) engine=rocksdb; + +select create_time is not null, update_time, check_time +from information_schema.tables where table_schema=database() and table_name='t1'; + +insert into t1 values (1); +select create_time is not null, update_time is not null, check_time +from information_schema.tables where table_schema=database() and table_name='t1'; + +flush tables; +select create_time is not null, update_time is not null, check_time +from information_schema.tables where table_schema=database() and table_name='t1'; + +select create_time, update_time into @create_tm, @update_tm +from information_schema.tables +where table_schema=database() and table_name='t1'; + +select sleep(3); +insert into t1 values (2); + +--vertical_results +select + create_time=@create_tm /* should not change */ , + timestampdiff(second, @update_tm, update_time) > 2, + check_time +from information_schema.tables +where table_schema=database() and table_name='t1'; + +--echo # +--echo # Check how create_time survives ALTER TABLE. +--echo # First, an ALTER TABLE that re-creates the table: +alter table t1 add b int; +select + create_time<>@create_tm /* should change */, + create_time IS NOT NULL, + update_time IS NULL +from information_schema.tables +where table_schema=database() and table_name='t1'; + +insert into t1 values (5,5); + +select create_time, update_time into @create_tm, @update_tm +from information_schema.tables +where table_schema=database() and table_name='t1'; + +--echo # Then, an in-place ALTER TABLE: +select sleep(2); +alter table t1 add key (a); + +--echo # create_time will change as .frm file is rewritten: +select + create_time=@create_tm, + update_time +from information_schema.tables +where table_schema=database() and table_name='t1'; + +--echo # Check TRUNCATE TABLE +insert into t1 values (10,10); +select create_time, update_time into @create_tm, @update_tm +from information_schema.tables +where table_schema=database() and table_name='t1'; + +select sleep(2); +truncate table t1; + +select + create_time=@create_tm /* should not change */, + update_time +from information_schema.tables +where table_schema=database() and table_name='t1'; + + +--echo # +--echo # Check what is left after server restart +--echo # +drop table t1; +create table t1 (a int); +insert into t1 values (1); +--echo # Save t1's creation time +create table t2 as +select create_time +from information_schema.tables +where table_schema=database() and table_name='t1'; + +select sleep(2); +--source include/restart_mysqld.inc + +select + create_time=(select create_time from t2) /* should not change */, + update_time +from information_schema.tables +where table_schema=database() and table_name='t1'; + +drop table t1, t2; + +--echo # +--echo # Check how it works for partitioned tables +--echo # +create table t1 (pk int primary key) partition by hash(pk) partitions 2; +insert into t1 values (1); + +select create_time IS NOT NULL , update_time IS NOT NULL +from information_schema.tables +where table_schema=database() and table_name='t1'; +drop table t1; diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/truncate_table.test mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/truncate_table.test --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/truncate_table.test 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/truncate_table.test 2019-11-06 16:01:58.000000000 +0000 @@ -29,22 +29,22 @@ CREATE TABLE t1 (a INT KEY AUTO_INCREMENT, c CHAR(8)) ENGINE=rocksdb; #--replace_column 2 # 3 # 4 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # 14 # 15 # 16 # 17 # 18 # ---replace_column 5 # 6 # 7 # +--replace_column 5 # 6 # 7 # 12 # 13 # SHOW TABLE STATUS LIKE 't1'; INSERT INTO t1 (c) VALUES ('a'),('b'),('c'); #--replace_column 2 # 3 # 4 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # 14 # 15 # 16 # 17 # 18 # ---replace_column 5 # 6 # 7 # +--replace_column 5 # 6 # 7 # 12 # 13 # SHOW TABLE STATUS LIKE 't1'; TRUNCATE TABLE t1; #--replace_column 2 # 3 # 4 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # 14 # 15 # 16 # 17 # 18 # ---replace_column 5 # 6 # 7 # +--replace_column 5 # 6 # 7 # 12 # 13 # SHOW TABLE STATUS LIKE 't1'; INSERT INTO t1 (c) VALUES ('d'); #--replace_column 2 # 3 # 4 # 5 # 6 # 7 # 8 # 9 # 10 # 12 # 13 # 14 # 15 # 16 # 17 # 18 # ---replace_column 5 # 6 # 7 # +--replace_column 5 # 6 # 7 # 12 # 13 # SHOW TABLE STATUS LIKE 't1'; --sorted_result diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/ttl_primary_read_filtering.test mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/ttl_primary_read_filtering.test --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/ttl_primary_read_filtering.test 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/ttl_primary_read_filtering.test 2019-11-06 16:01:58.000000000 +0000 @@ -102,6 +102,8 @@ select variable_value-@a from information_schema.global_status where variable_name='rocksdb_rows_filtered'; DROP TABLE t1; +# Compact away the dropped data +set global ROCKSDB_COMPACT_CF= 'default'; # Read filtering index scan tests (None of these queries should return any results) CREATE TABLE t1 ( diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/ttl_rows_examined.test mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/ttl_rows_examined.test --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/ttl_rows_examined.test 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/ttl_rows_examined.test 2019-11-06 16:01:58.000000000 +0000 @@ -38,6 +38,7 @@ set debug_sync='now WAIT_FOR parked'; # display "Rows Examined" before returning from call +--replace_result Execute Query --replace_column 1 ### 2 ### 3 ### 4 ### 6 ### 10 ### 11 ### 12 ### --sorted_result SHOW PROCESSLIST; diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/ttl_secondary_read_filtering.test mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/ttl_secondary_read_filtering.test --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb/t/ttl_secondary_read_filtering.test 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb/t/ttl_secondary_read_filtering.test 2019-11-06 16:01:58.000000000 +0000 @@ -121,6 +121,9 @@ DROP TABLE t1; +# Compact away the dropped data +set global rocksdb_compact_cf= 'default'; + --echo # Read filtering index scan tests (None of these queries should return any results) CREATE TABLE t1 ( a int, diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb_rpl/my.cnf mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb_rpl/my.cnf --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb_rpl/my.cnf 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb_rpl/my.cnf 2019-11-06 16:01:58.000000000 +0000 @@ -5,7 +5,6 @@ skip-innodb default-storage-engine=rocksdb - sql-mode=NO_ENGINE_SUBSTITUTION explicit-defaults-for-timestamp=1 loose-rocksdb_lock_wait_timeout=1 diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb_rpl/suite.pm mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb_rpl/suite.pm --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb_rpl/suite.pm 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb_rpl/suite.pm 2019-11-06 16:01:58.000000000 +0000 @@ -9,7 +9,7 @@ use File::Basename; use strict; -sub is_default { not $::opt_embedded_server } +#sub is_default { not $::opt_embedded_server } my $sst_dump= ::mtr_exe_maybe_exists( diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb_stress/my.cnf mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb_stress/my.cnf --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb_stress/my.cnf 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb_stress/my.cnf 2019-11-06 16:01:58.000000000 +0000 @@ -4,5 +4,6 @@ [mysqld.1] binlog_format=row + [mysqld.2] binlog_format=row diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb_stress/suite.pm mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb_stress/suite.pm --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb_stress/suite.pm 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb_stress/suite.pm 2019-11-06 16:01:58.000000000 +0000 @@ -11,7 +11,7 @@ use File::Basename; use strict; -sub is_default { not $::opt_embedded_server } +#sub is_default { not $::opt_embedded_server } my $sst_dump= ::mtr_exe_maybe_exists( diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb_sys_vars/my.cnf mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb_sys_vars/my.cnf --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb_sys_vars/my.cnf 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb_sys_vars/my.cnf 2019-11-06 16:01:58.000000000 +0000 @@ -4,7 +4,6 @@ skip-innodb default-storage-engine=rocksdb - sql-mode=NO_ENGINE_SUBSTITUTION explicit-defaults-for-timestamp=1 loose-rocksdb_lock_wait_timeout=1 diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb_sys_vars/suite.pm mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb_sys_vars/suite.pm --- mariadb-10.3-10.3.17/storage/rocksdb/mysql-test/rocksdb_sys_vars/suite.pm 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/mysql-test/rocksdb_sys_vars/suite.pm 2019-11-06 16:01:58.000000000 +0000 @@ -8,7 +8,7 @@ use File::Basename; use strict; -sub is_default { not $::opt_embedded_server } +#sub is_default { not $::opt_embedded_server } my $sst_dump= ::mtr_exe_maybe_exists( diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/rdb_datadic.cc mariadb-10.3-10.3.20/storage/rocksdb/rdb_datadic.cc --- mariadb-10.3-10.3.17/storage/rocksdb/rdb_datadic.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/rdb_datadic.cc 2019-11-06 16:01:58.000000000 +0000 @@ -3592,6 +3592,26 @@ return false; } +time_t Rdb_tbl_def::get_create_time() { + time_t create_time = m_create_time; + + if (create_time == CREATE_TIME_UNKNOWN) { + // Read it from the .frm file. It's not a problem if several threads do this + // concurrently + char path[FN_REFLEN]; + snprintf(path, sizeof(path), "%s/%s/%s%s", mysql_data_home, + m_dbname.c_str(), m_tablename.c_str(), reg_ext); + unpack_filename(path,path); + MY_STAT f_stat; + if (my_stat(path, &f_stat, MYF(0))) + create_time = f_stat.st_ctime; + else + create_time = 0; // will be shown as SQL NULL + m_create_time = create_time; + } + return create_time; +} + // Length that each index flag takes inside the record. // Each index in the array maps to the enum INDEX_FLAG static const std::array index_flag_lengths = { diff -Nru mariadb-10.3-10.3.17/storage/rocksdb/rdb_datadic.h mariadb-10.3-10.3.20/storage/rocksdb/rdb_datadic.h --- mariadb-10.3-10.3.17/storage/rocksdb/rdb_datadic.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/rocksdb/rdb_datadic.h 2019-11-06 16:01:58.000000000 +0000 @@ -1092,17 +1092,20 @@ Rdb_tbl_def &operator=(const Rdb_tbl_def &) = delete; explicit Rdb_tbl_def(const std::string &name) - : m_key_descr_arr(nullptr), m_hidden_pk_val(0), m_auto_incr_val(0) { + : m_key_descr_arr(nullptr), m_hidden_pk_val(0), m_auto_incr_val(0), + m_update_time(0), m_create_time(CREATE_TIME_UNKNOWN) { set_name(name); } Rdb_tbl_def(const char *const name, const size_t len) - : m_key_descr_arr(nullptr), m_hidden_pk_val(0), m_auto_incr_val(0) { + : m_key_descr_arr(nullptr), m_hidden_pk_val(0), m_auto_incr_val(0), + m_update_time(0), m_create_time(CREATE_TIME_UNKNOWN) { set_name(std::string(name, len)); } explicit Rdb_tbl_def(const rocksdb::Slice &slice, const size_t pos = 0) - : m_key_descr_arr(nullptr), m_hidden_pk_val(0), m_auto_incr_val(0) { + : m_key_descr_arr(nullptr), m_hidden_pk_val(0), m_auto_incr_val(0), + m_update_time(0), m_create_time(CREATE_TIME_UNKNOWN) { set_name(std::string(slice.data() + pos, slice.size() - pos)); } @@ -1133,6 +1136,15 @@ const std::string &base_tablename() const { return m_tablename; } const std::string &base_partition() const { return m_partition; } GL_INDEX_ID get_autoincr_gl_index_id(); + + time_t get_create_time(); + std::atomic m_update_time; // in-memory only value + + private: + const time_t CREATE_TIME_UNKNOWN= 1; + // CREATE_TIME_UNKNOWN means "didn't try to read, yet" + // 0 means "no data available" + std::atomic m_create_time; }; /* diff -Nru mariadb-10.3-10.3.17/storage/sequence/mysql-test/sequence/group_by.result mariadb-10.3-10.3.20/storage/sequence/mysql-test/sequence/group_by.result --- mariadb-10.3-10.3.17/storage/sequence/mysql-test/sequence/group_by.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/sequence/mysql-test/sequence/group_by.result 2019-11-06 16:01:58.000000000 +0000 @@ -97,3 +97,9 @@ select count(NULL) from seq_1_to_3; count(NULL) 0 +# +# MDEV-20753: Sequence with limit 0 crashes server +# +select count(NULL) from seq_1_to_3 limit 0; +count(NULL) +# End of 10.3 tests diff -Nru mariadb-10.3-10.3.17/storage/sequence/mysql-test/sequence/group_by.test mariadb-10.3-10.3.20/storage/sequence/mysql-test/sequence/group_by.test --- mariadb-10.3-10.3.17/storage/sequence/mysql-test/sequence/group_by.test 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/sequence/mysql-test/sequence/group_by.test 2019-11-06 16:01:58.000000000 +0000 @@ -49,3 +49,10 @@ create temporary table t1 select * from seq_1_to_3; select count(NULL) from t1; select count(NULL) from seq_1_to_3; + +--echo # +--echo # MDEV-20753: Sequence with limit 0 crashes server +--echo # +select count(NULL) from seq_1_to_3 limit 0; + +--echo # End of 10.3 tests diff -Nru mariadb-10.3-10.3.17/storage/sphinx/ha_sphinx.cc mariadb-10.3-10.3.20/storage/sphinx/ha_sphinx.cc --- mariadb-10.3-10.3.17/storage/sphinx/ha_sphinx.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/sphinx/ha_sphinx.cc 2019-11-06 16:01:58.000000000 +0000 @@ -2163,7 +2163,7 @@ #if MYSQL_VERSION_ID>=50515 struct addrinfo *hp = NULL; tmp_errno = getaddrinfo ( sHost, NULL, NULL, &hp ); - if ( !tmp_errno || !hp || !hp->ai_addr ) + if ( tmp_errno || !hp || !hp->ai_addr ) { bError = true; if ( hp ) @@ -2190,8 +2190,9 @@ } #if MYSQL_VERSION_ID>=50515 - memcpy ( &sin.sin_addr, hp->ai_addr, Min ( sizeof(sin.sin_addr), (size_t)hp->ai_addrlen ) ); - freeaddrinfo ( hp ); + struct sockaddr_in *in = (sockaddr_in *)hp->ai_addr; + memcpy ( &sin.sin_addr, &in->sin_addr, Min ( sizeof(sin.sin_addr), sizeof(in->sin_addr) ) ); + freeaddrinfo ( hp ); #else memcpy ( &sin.sin_addr, hp->h_addr, Min ( sizeof(sin.sin_addr), (size_t)hp->h_length ) ); my_gethostbyname_r_free(); @@ -2292,7 +2293,8 @@ CSphSEThreadTable * pTable = GetTls (); if ( pTable ) { - strncpy ( pTable->m_tStats.m_sLastMessage, mysql_error ( pConn ), sizeof ( pTable->m_tStats.m_sLastMessage ) ); + strncpy ( pTable->m_tStats.m_sLastMessage, mysql_error ( pConn ), sizeof pTable->m_tStats.m_sLastMessage - 1 ); + pTable->m_tStats.m_sLastMessage[sizeof pTable->m_tStats.m_sLastMessage - 1] = '\0'; pTable->m_tStats.m_bLastError = true; } @@ -2559,7 +2561,8 @@ CSphSEThreadTable * pTable = GetTls (); if ( pTable ) { - strncpy ( pTable->m_tStats.m_sLastMessage, sMessage, sizeof(pTable->m_tStats.m_sLastMessage) ); + strncpy ( pTable->m_tStats.m_sLastMessage, sMessage, sizeof pTable->m_tStats.m_sLastMessage - 1 ); + pTable->m_tStats.m_sLastMessage[sizeof pTable->m_tStats.m_sLastMessage - 1] = '\0'; pTable->m_tStats.m_bLastError = ( uStatus==SEARCHD_ERROR ); } @@ -2983,7 +2986,8 @@ SPH_RET ( HA_ERR_END_OF_FILE ); } - strncpy ( pTable->m_tStats.m_sLastMessage, sMessage, sizeof(pTable->m_tStats.m_sLastMessage) ); + strncpy ( pTable->m_tStats.m_sLastMessage, sMessage, sizeof pTable->m_tStats.m_sLastMessage - 1 ); + pTable->m_tStats.m_sLastMessage[sizeof pTable->m_tStats.m_sLastMessage - 1] = '\0'; SafeDeleteArray ( sMessage ); if ( uRespStatus!=SEARCHD_WARNING ) diff -Nru mariadb-10.3-10.3.17/storage/sphinx/mysql-test/sphinx/disabled.def mariadb-10.3-10.3.20/storage/sphinx/mysql-test/sphinx/disabled.def --- mariadb-10.3-10.3.17/storage/sphinx/mysql-test/sphinx/disabled.def 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/sphinx/mysql-test/sphinx/disabled.def 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -sphinx : MDEV-10986, MDEV-10985 -union-5539 : MDEV-10986, MDEV-10985 diff -Nru mariadb-10.3-10.3.17/storage/sphinx/mysql-test/sphinx/sphinx.result mariadb-10.3-10.3.20/storage/sphinx/mysql-test/sphinx/sphinx.result --- mariadb-10.3-10.3.17/storage/sphinx/mysql-test/sphinx/sphinx.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/sphinx/mysql-test/sphinx/sphinx.result 2019-11-06 16:01:58.000000000 +0000 @@ -75,3 +75,23 @@ 1 2 test;range=meta.foo_count,100,500 5 1 test;range=meta.foo_count,100,500 drop table ts; +# +# MDEV-19205: Sphinx unable to connect using a host name +# +create table ts ( id bigint unsigned not null, w int not null, q varchar(255) not null, index(q) ) engine=sphinx connection="sphinx://localhost:SPHINXSEARCH_PORT/*"; +select * from ts where q=';filter=meta.foo_count,100'; +id w q +1 1 ;filter=meta.foo_count,100 +select * from ts where q='test;filter=meta.sub.int,7'; +id w q +5 1 test;filter=meta.sub.int,7 +select * from ts where q=';filter=meta.sub.list[0],4'; +id w q +select * from ts where q=';filter=meta.sub.list[1],4'; +id w q +5 1 ;filter=meta.sub.list[1],4 +select * from ts where q='test;range=meta.foo_count,100,500'; +id w q +1 2 test;range=meta.foo_count,100,500 +5 1 test;range=meta.foo_count,100,500 +drop table ts; diff -Nru mariadb-10.3-10.3.17/storage/sphinx/mysql-test/sphinx/sphinx.test mariadb-10.3-10.3.20/storage/sphinx/mysql-test/sphinx/sphinx.test --- mariadb-10.3-10.3.17/storage/sphinx/mysql-test/sphinx/sphinx.test 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/sphinx/mysql-test/sphinx/sphinx.test 2019-11-06 16:01:58.000000000 +0000 @@ -41,3 +41,16 @@ select * from ts where q=';filter=meta.sub.list[1],4'; select * from ts where q='test;range=meta.foo_count,100,500'; drop table ts; + +--echo # +--echo # MDEV-19205: Sphinx unable to connect using a host name +--echo # + +--replace_result $SPHINXSEARCH_PORT SPHINXSEARCH_PORT +eval create table ts ( id bigint unsigned not null, w int not null, q varchar(255) not null, index(q) ) engine=sphinx connection="sphinx://localhost:$SPHINXSEARCH_PORT/*"; +select * from ts where q=';filter=meta.foo_count,100'; +select * from ts where q='test;filter=meta.sub.int,7'; +select * from ts where q=';filter=meta.sub.list[0],4'; +select * from ts where q=';filter=meta.sub.list[1],4'; +select * from ts where q='test;range=meta.foo_count,100,500'; +drop table ts; diff -Nru mariadb-10.3-10.3.17/storage/sphinx/mysql-test/sphinx/suite.pm mariadb-10.3-10.3.20/storage/sphinx/mysql-test/sphinx/suite.pm --- mariadb-10.3-10.3.17/storage/sphinx/mysql-test/sphinx/suite.pm 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/sphinx/mysql-test/sphinx/suite.pm 2019-11-06 16:01:58.000000000 +0000 @@ -23,6 +23,8 @@ my $exe_sphinx_searchd = &locate_sphinx_binary('searchd'); return "'searchd' binary not found" unless $exe_sphinx_searchd; +my $sphinx_config= "$::opt_vardir/my_sphinx.conf"; + # Check for Sphinx engine return "SphinxSE not found" unless $ENV{HA_SPHINX_SO} or $::mysqld_variables{'sphinx'} eq "ON"; @@ -95,11 +97,38 @@ &::mtr_verbose("Started $sphinx->{proc}"); } +sub wait_exp_backoff { + my $timeout= shift; # Seconds + my $start_wait= shift; # Seconds + my $scale_factor= shift; + + $searchd_status= "$exe_sphinx_searchd --status" . + " --config $sphinx_config > /dev/null 2>&1"; + + my $scale= $start_wait; + my $total_sleep= 0; + while (1) { + my $status = system($searchd_status); + if (not $status) { + return 0; + } + if ($total_sleep >= $timeout) { + last; + } + + &::mtr_milli_sleep($scale * 1000); + $total_sleep+= $scale; + $scale*= $scale_factor; + } + + &::mtr_warning("Getting a response from searchd timed out"); + return 1 +} + sub searchd_wait { my ($sphinx) = @_; # My::Config::Group - return not &::sleep_until_file_created($sphinx->value('pid_file'), 20, - $sphinx->{'proc'}) + return wait_exp_backoff(30, 0.1, 2) } ############# declaration methods ###################### diff -Nru mariadb-10.3-10.3.17/storage/sphinx/mysql-test/sphinx/union-5539.result mariadb-10.3-10.3.20/storage/sphinx/mysql-test/sphinx/union-5539.result --- mariadb-10.3-10.3.17/storage/sphinx/mysql-test/sphinx/union-5539.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/sphinx/mysql-test/sphinx/union-5539.result 2019-11-06 16:01:58.000000000 +0000 @@ -5,10 +5,12 @@ 2 1 ;mode=extended2;limit=1000000;maxmatches=500 3 1 ;mode=extended2;limit=1000000;maxmatches=500 4 1 ;mode=extended2;limit=1000000;maxmatches=500 +5 1 ;mode=extended2;limit=1000000;maxmatches=500 SELECT a.* FROM (SELECT * FROM ts si WHERE si.query='@* 123nothingtofind123;mode=extended2;limit=1000000;maxmatches=500') AS a UNION SELECT b.* FROM (SELECT * FROM ts si WHERE si.query=';mode=extended2;limit=1000000;maxmatches=500') AS b; id w query 1 1 ;mode=extended2;limit=1000000;maxmatches=500 2 1 ;mode=extended2;limit=1000000;maxmatches=500 3 1 ;mode=extended2;limit=1000000;maxmatches=500 4 1 ;mode=extended2;limit=1000000;maxmatches=500 +5 1 ;mode=extended2;limit=1000000;maxmatches=500 drop table ts; diff -Nru mariadb-10.3-10.3.17/storage/spider/CMakeLists.txt mariadb-10.3-10.3.20/storage/spider/CMakeLists.txt --- mariadb-10.3-10.3.17/storage/spider/CMakeLists.txt 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/spider/CMakeLists.txt 2019-11-06 16:01:58.000000000 +0000 @@ -55,6 +55,9 @@ DESTINATION ${INSTALL_MYSQLSHAREDIR} COMPONENT Server ) MYSQL_ADD_PLUGIN(spider ${SPIDER_SOURCES} STORAGE_ENGINE MODULE_ONLY MODULE_OUTPUT_NAME "ha_spider") + IF(NOT TARGET spider) + RETURN() + ENDIF() ENDIF() IF(ORACLE_INCLUDE_DIR AND ORACLE_OCI_LIBRARY) diff -Nru mariadb-10.3-10.3.17/storage/spider/mysql-test/spider/bugfix/include/select_by_null_deinit.inc mariadb-10.3-10.3.20/storage/spider/mysql-test/spider/bugfix/include/select_by_null_deinit.inc --- mariadb-10.3-10.3.17/storage/spider/mysql-test/spider/bugfix/include/select_by_null_deinit.inc 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/spider/mysql-test/spider/bugfix/include/select_by_null_deinit.inc 2019-11-06 16:01:58.000000000 +0000 @@ -0,0 +1,11 @@ +--let $MASTER_1_COMMENT_2_1= $MASTER_1_COMMENT_2_1_BACKUP +--let $CHILD2_1_DROP_TABLES= $CHILD2_1_DROP_TABLES_BACKUP +--let $CHILD2_1_CREATE_TABLES= $CHILD2_1_CREATE_TABLES_BACKUP +--let $CHILD2_1_SELECT_TABLES= $CHILD2_1_SELECT_TABLES_BACKUP +--disable_warnings +--disable_query_log +--disable_result_log +--source ../t/test_deinit.inc +--enable_result_log +--enable_query_log +--enable_warnings diff -Nru mariadb-10.3-10.3.17/storage/spider/mysql-test/spider/bugfix/include/select_by_null_init.inc mariadb-10.3-10.3.20/storage/spider/mysql-test/spider/bugfix/include/select_by_null_init.inc --- mariadb-10.3-10.3.17/storage/spider/mysql-test/spider/bugfix/include/select_by_null_init.inc 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/spider/mysql-test/spider/bugfix/include/select_by_null_init.inc 2019-11-06 16:01:58.000000000 +0000 @@ -0,0 +1,24 @@ +--disable_warnings +--disable_query_log +--disable_result_log +--source ../t/test_init.inc +--enable_result_log +--enable_query_log +--enable_warnings +--let $MASTER_1_COMMENT_2_1_BACKUP= $MASTER_1_COMMENT_2_1 +let $MASTER_1_COMMENT_2_1= + COMMENT='table "tbl_a", srv "s_2_1"'; +--let $CHILD2_1_DROP_TABLES_BACKUP= $CHILD2_1_DROP_TABLES +let $CHILD2_1_DROP_TABLES= + DROP TABLE IF EXISTS tbl_a; +--let $CHILD2_1_CREATE_TABLES_BACKUP= $CHILD2_1_CREATE_TABLES +let $CHILD2_1_CREATE_TABLES= + CREATE TABLE tbl_a ( + pkey int NOT NULL, + PRIMARY KEY (pkey) + ) $CHILD2_1_ENGINE $CHILD2_1_CHARSET; +--let $CHILD2_1_SELECT_TABLES_BACKUP= $CHILD2_1_SELECT_TABLES +let $CHILD2_1_SELECT_TABLES= + SELECT pkey FROM tbl_a ORDER BY pkey; +let $CHILD2_1_SELECT_ARGUMENT1= + SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %'; diff -Nru mariadb-10.3-10.3.17/storage/spider/mysql-test/spider/bugfix/r/select_by_null.result mariadb-10.3-10.3.20/storage/spider/mysql-test/spider/bugfix/r/select_by_null.result --- mariadb-10.3-10.3.17/storage/spider/mysql-test/spider/bugfix/r/select_by_null.result 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/spider/mysql-test/spider/bugfix/r/select_by_null.result 2019-11-06 16:01:58.000000000 +0000 @@ -0,0 +1,90 @@ +for master_1 +for child2 +child2_1 +child2_2 +child2_3 +for child3 + +this test is for MDEV-16279 + +drop and create databases +connection master_1; +CREATE DATABASE auto_test_local; +USE auto_test_local; +connection child2_1; +SET @old_log_output = @@global.log_output; +SET GLOBAL log_output = 'TABLE,FILE'; +CREATE DATABASE auto_test_remote; +USE auto_test_remote; + +create table and insert +connection child2_1; +CHILD2_1_CREATE_TABLES +TRUNCATE TABLE mysql.general_log; +connection master_1; +CREATE TABLE tbl_a ( +pkey int NOT NULL, +PRIMARY KEY (pkey) +) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1 +INSERT INTO tbl_a (pkey) VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +INSERT INTO tbl_a (pkey) VALUES (10),(11),(12),(13),(14),(15),(16),(17),(18),(19); +INSERT INTO tbl_a (pkey) VALUES (20),(21),(22),(23),(24),(25),(26),(27),(28),(29); +FLUSH TABLES; + +select test 1 +connection child2_1; +TRUNCATE TABLE mysql.general_log; +connection master_1; +SELECT pkey FROM tbl_a WHERE NULL; +pkey +connection child2_1; +SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %'; +argument +SELECT argument FROM mysql.general_log WHERE argument LIKE '%select %' +SELECT pkey FROM tbl_a ORDER BY pkey; +pkey +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 + +deinit +connection master_1; +DROP DATABASE IF EXISTS auto_test_local; +connection child2_1; +DROP DATABASE IF EXISTS auto_test_remote; +SET GLOBAL log_output = @old_log_output; +for master_1 +for child2 +child2_1 +child2_2 +child2_3 +for child3 + +end of test diff -Nru mariadb-10.3-10.3.17/storage/spider/mysql-test/spider/bugfix/t/select_by_null.cnf mariadb-10.3-10.3.20/storage/spider/mysql-test/spider/bugfix/t/select_by_null.cnf --- mariadb-10.3-10.3.17/storage/spider/mysql-test/spider/bugfix/t/select_by_null.cnf 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/spider/mysql-test/spider/bugfix/t/select_by_null.cnf 2019-11-06 16:01:58.000000000 +0000 @@ -0,0 +1,3 @@ +!include include/default_mysqld.cnf +!include ../my_1_1.cnf +!include ../my_2_1.cnf diff -Nru mariadb-10.3-10.3.17/storage/spider/mysql-test/spider/bugfix/t/select_by_null.test mariadb-10.3-10.3.20/storage/spider/mysql-test/spider/bugfix/t/select_by_null.test --- mariadb-10.3-10.3.17/storage/spider/mysql-test/spider/bugfix/t/select_by_null.test 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/spider/mysql-test/spider/bugfix/t/select_by_null.test 2019-11-06 16:01:58.000000000 +0000 @@ -0,0 +1,72 @@ +--source ../include/select_by_null_init.inc +--echo +--echo this test is for MDEV-16279 +--echo +--echo drop and create databases + +--connection master_1 +--disable_warnings +CREATE DATABASE auto_test_local; +USE auto_test_local; + +--connection child2_1 +SET @old_log_output = @@global.log_output; +SET GLOBAL log_output = 'TABLE,FILE'; +CREATE DATABASE auto_test_remote; +USE auto_test_remote; +--enable_warnings + +--echo +--echo create table and insert + +--connection child2_1 +--disable_query_log +echo CHILD2_1_CREATE_TABLES; +eval $CHILD2_1_CREATE_TABLES; +--enable_query_log +TRUNCATE TABLE mysql.general_log; + +--connection master_1 +--disable_query_log +echo CREATE TABLE tbl_a ( + pkey int NOT NULL, + PRIMARY KEY (pkey) +) MASTER_1_ENGINE MASTER_1_CHARSET MASTER_1_COMMENT_2_1; +eval CREATE TABLE tbl_a ( + pkey int NOT NULL, + PRIMARY KEY (pkey) +) $MASTER_1_ENGINE $MASTER_1_CHARSET $MASTER_1_COMMENT_2_1; +--enable_query_log +INSERT INTO tbl_a (pkey) VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +INSERT INTO tbl_a (pkey) VALUES (10),(11),(12),(13),(14),(15),(16),(17),(18),(19); +INSERT INTO tbl_a (pkey) VALUES (20),(21),(22),(23),(24),(25),(26),(27),(28),(29); +FLUSH TABLES; + +--echo +--echo select test 1 + +--connection child2_1 +TRUNCATE TABLE mysql.general_log; + +--connection master_1 +SELECT pkey FROM tbl_a WHERE NULL; + +--connection child2_1 +eval $CHILD2_1_SELECT_ARGUMENT1; +eval $CHILD2_1_SELECT_TABLES; + +--echo +--echo deinit +--disable_warnings + +--connection master_1 +DROP DATABASE IF EXISTS auto_test_local; + +--connection child2_1 +DROP DATABASE IF EXISTS auto_test_remote; +SET GLOBAL log_output = @old_log_output; + +--enable_warnings +--source ../include/select_by_null_deinit.inc +--echo +--echo end of test diff -Nru mariadb-10.3-10.3.17/storage/spider/spd_db_conn.cc mariadb-10.3-10.3.20/storage/spider/spd_db_conn.cc --- mariadb-10.3-10.3.17/storage/spider/spd_db_conn.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/spider/spd_db_conn.cc 2019-11-06 16:01:58.000000000 +0000 @@ -2705,7 +2705,7 @@ thd->free_list = free_list; } - Item_sum_hybrid *item_hybrid = (Item_sum_hybrid *) item_sum; + Item_sum_min_max *item_sum_min_max = (Item_sum_min_max *) item_sum; Item_string *item = (Item_string *) spider->direct_aggregate_item_current->item; if (row->is_null()) @@ -2732,7 +2732,7 @@ #endif item->null_value = FALSE; } - item_hybrid->direct_add(item); + item_sum_min_max->direct_add(item); row->next(); } break; diff -Nru mariadb-10.3-10.3.17/storage/spider/spd_db_mysql.cc mariadb-10.3-10.3.20/storage/spider/spd_db_mysql.cc --- mariadb-10.3-10.3.17/storage/spider/spd_db_mysql.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/spider/spd_db_mysql.cc 2019-11-06 16:01:58.000000000 +0000 @@ -5282,7 +5282,7 @@ int error_num; uint outer_join_backup; TABLE_LIST *cur_table_list, *prev_table_list = NULL, *cond_table_list = NULL; - bool first; + bool first = TRUE; DBUG_ENTER("spider_db_mbase_util::append_tables_top_down"); DBUG_PRINT("info",("spider this=%p", this)); if ( diff -Nru mariadb-10.3-10.3.17/storage/tokudb/CMakeLists.txt mariadb-10.3-10.3.20/storage/tokudb/CMakeLists.txt --- mariadb-10.3-10.3.17/storage/tokudb/CMakeLists.txt 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/CMakeLists.txt 2019-11-06 16:01:58.000000000 +0000 @@ -90,6 +90,7 @@ MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-shadow") MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-vla" DEBUG) MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-implicit-fallthrough") +MY_CHECK_AND_SET_COMPILER_FLAG("-Wno-cpp" DEBUG) ############################################ MARK_AS_ADVANCED(BUILDNAME) diff -Nru mariadb-10.3-10.3.17/storage/tokudb/hatoku_cmp.cc mariadb-10.3-10.3.20/storage/tokudb/hatoku_cmp.cc --- mariadb-10.3-10.3.17/storage/tokudb/hatoku_cmp.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/hatoku_cmp.cc 2019-11-06 16:01:58.000000000 +0000 @@ -957,9 +957,8 @@ const void* saved_key_data, const uint32_t saved_key_size ) { - assert_always( - (new_key_size >= TOKUDB_HIDDEN_PRIMARY_KEY_LENGTH) && - (saved_key_size >= TOKUDB_HIDDEN_PRIMARY_KEY_LENGTH)); + assert_always(new_key_size >= TOKUDB_HIDDEN_PRIMARY_KEY_LENGTH); + assert_always(saved_key_size >= TOKUDB_HIDDEN_PRIMARY_KEY_LENGTH); ulonglong a = hpk_char_to_num((uchar *) new_key_data); ulonglong b = hpk_char_to_num((uchar *) saved_key_data); return a < b ? -1 : (a > b ? 1 : 0); @@ -2537,7 +2536,8 @@ bool is_col_in_pk = false; if (bitmap_is_set(&kc_info->key_filters[pk_index],field_index)) { - assert_always(!has_hpk && prim_key != NULL); + assert_always(!has_hpk); + assert_always(prim_key != nullptr); is_col_in_pk = true; } else { diff -Nru mariadb-10.3-10.3.17/storage/tokudb/ha_tokudb.cc mariadb-10.3-10.3.20/storage/tokudb/ha_tokudb.cc --- mariadb-10.3-10.3.17/storage/tokudb/ha_tokudb.cc 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/ha_tokudb.cc 2019-11-06 16:01:58.000000000 +0000 @@ -1077,7 +1077,8 @@ } buff = (uchar *)dest_key->data; - assert_always(buff != NULL && max_key_len > 0); + assert_always(buff != nullptr); + assert_always(max_key_len > 0); } else { assert_unreachable(); } diff -Nru mariadb-10.3-10.3.17/storage/tokudb/ha_tokudb.h mariadb-10.3-10.3.20/storage/tokudb/ha_tokudb.h --- mariadb-10.3-10.3.17/storage/tokudb/ha_tokudb.h 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/ha_tokudb.h 2019-11-06 16:01:58.000000000 +0000 @@ -387,7 +387,8 @@ assert_debug(_mutex.is_owned_by_me()); // can not change number of keys live - assert_always(_rec_per_key == NULL && _rec_per_keys == 0); + assert_always(_rec_per_key == nullptr); + assert_always(_rec_per_keys == 0); _rec_per_keys = rec_per_keys; _rec_per_key = rec_per_key; } diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/rpl/r/rpl_extra_col_master_tokudb.result mariadb-10.3-10.3.20/storage/tokudb/mysql-test/rpl/r/rpl_extra_col_master_tokudb.result --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/rpl/r/rpl_extra_col_master_tokudb.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/rpl/r/rpl_extra_col_master_tokudb.result 2019-11-06 16:01:58.000000000 +0000 @@ -468,7 +468,7 @@ connection slave; include/wait_for_slave_sql_error_and_skip.inc [errno=1677] -Last_SQL_Error = 'Column 2 of table 'test.t10' cannot be converted from type 'double' to type 'char(5)'' +Last_SQL_Error = 'Column 2 of table 'test.t10' cannot be converted from type 'double' to type 'char(5 octets) character set latin1'' *** Drop t10 *** connection master; @@ -510,7 +510,7 @@ connection slave; include/wait_for_slave_sql_error_and_skip.inc [errno=1677] -Last_SQL_Error = 'Column 2 of table 'test.t11' cannot be converted from type 'tinyblob' to type 'varchar(254)'' +Last_SQL_Error = 'Column 2 of table 'test.t11' cannot be converted from type 'blob' to type 'varchar(254 octets) character set latin1'' *** Drop t11 *** connection master; diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/rpl/r/rpl_extra_col_slave_tokudb.result mariadb-10.3-10.3.20/storage/tokudb/mysql-test/rpl/r/rpl_extra_col_slave_tokudb.result --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/rpl/r/rpl_extra_col_slave_tokudb.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/rpl/r/rpl_extra_col_slave_tokudb.result 2019-11-06 16:01:58.000000000 +0000 @@ -64,7 +64,7 @@ connection slave; START SLAVE; include/wait_for_slave_sql_error.inc [errno=1677] -Last_SQL_Error = 'Column 2 of table 'test.t2' cannot be converted from type 'char(10)' to type 'char(5)'' +Last_SQL_Error = 'Column 2 of table 'test.t2' cannot be converted from type 'char(10 octets)' to type 'char(5 octets) character set latin1'' STOP SLAVE; RESET SLAVE; SELECT * FROM t2 ORDER BY a; @@ -102,7 +102,7 @@ ******************************************** connection slave; include/wait_for_slave_sql_error_and_skip.inc [errno=1677] -Last_SQL_Error = 'Column 0 of table 'test.t3' cannot be converted from type 'tinyblob' to type 'int(11)'' +Last_SQL_Error = 'Column 0 of table 'test.t3' cannot be converted from type 'blob' to type 'int(11)'' *** Drop t3 *** connection master; DROP TABLE t3; @@ -160,7 +160,7 @@ ******************************************** connection slave; include/wait_for_slave_sql_error_and_skip.inc [errno=1677] -Last_SQL_Error = 'Column 1 of table 'test.t5' cannot be converted from type 'varchar(6)' to type 'char(5)'' +Last_SQL_Error = 'Column 1 of table 'test.t5' cannot be converted from type 'varchar(6 octets)' to type 'char(5 octets) character set latin1'' *** Drop t5 *** connection master; DROP TABLE t5; @@ -188,7 +188,7 @@ ******************************************** connection slave; include/wait_for_slave_sql_error.inc [errno=1677] -Last_SQL_Error = 'Column 1 of table 'test.t6' cannot be converted from type 'varchar(6)' to type 'char(5)'' +Last_SQL_Error = 'Column 1 of table 'test.t6' cannot be converted from type 'varchar(6 octets)' to type 'char(5 octets) character set latin1'' *** Drop t6 *** include/rpl_reset.inc connection master; @@ -310,7 +310,7 @@ ******************************************** connection slave; include/wait_for_slave_sql_error_and_skip.inc [errno=1677] -Last_SQL_Error = 'Column 2 of table 'test.t10' cannot be converted from type 'char(5)' to type 'double'' +Last_SQL_Error = 'Column 2 of table 'test.t10' cannot be converted from type 'char(5 octets)' to type 'double'' *** Drop t10 *** connection master; DROP TABLE t10; @@ -338,7 +338,7 @@ ******************************************** connection slave; include/wait_for_slave_sql_error_and_skip.inc [errno=1677] -Last_SQL_Error = 'Column 2 of table 'test.t11' cannot be converted from type 'varchar(254)' to type 'int(11)'' +Last_SQL_Error = 'Column 2 of table 'test.t11' cannot be converted from type 'varchar(254 octets)' to type 'int(11)'' *** Drop t11 *** connection master; DROP TABLE t11; diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/rpl/r/rpl_row_basic_3tokudb.result mariadb-10.3-10.3.20/storage/tokudb/mysql-test/rpl/r/rpl_row_basic_3tokudb.result --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/rpl/r/rpl_row_basic_3tokudb.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/rpl/r/rpl_row_basic_3tokudb.result 2019-11-06 16:01:58.000000000 +0000 @@ -565,7 +565,7 @@ INSERT INTO t5 VALUES (2, repeat(_utf8'a', 255), 2); connection slave; include/wait_for_slave_sql_error.inc [errno=1677] -Last_SQL_Error = 'Column 1 of table 'test.t5' cannot be converted from type 'char(255)' to type 'char(16)'' +Last_SQL_Error = 'Column 1 of table 'test.t5' cannot be converted from type 'char(765 octets)' to type 'char(48 octets) character set utf8'' include/rpl_reset.inc [expecting slave to stop] connection master; @@ -573,7 +573,7 @@ INSERT INTO t6 VALUES (2, repeat(_utf8'a', 255), 2); connection slave; include/wait_for_slave_sql_error.inc [errno=1677] -Last_SQL_Error = 'Column 1 of table 'test.t6' cannot be converted from type 'char(255)' to type 'char(128)'' +Last_SQL_Error = 'Column 1 of table 'test.t6' cannot be converted from type 'char(765 octets)' to type 'char(384 octets) character set utf8'' include/rpl_reset.inc [expecting slave to replicate correctly] connection master; diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_row_crash_safe-master.opt mariadb-10.3-10.3.20/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_row_crash_safe-master.opt --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_row_crash_safe-master.opt 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_row_crash_safe-master.opt 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ ---transaction_isolation=READ-COMMITTED diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_row_crash_safe-slave.opt mariadb-10.3-10.3.20/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_row_crash_safe-slave.opt --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_row_crash_safe-slave.opt 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_row_crash_safe-slave.opt 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ ---skip-slave-start --relay-log-info-repository=TABLE --relay-log-recovery=1 --transaction_isolation=READ-COMMITTED diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_stm_mixed_crash_safe-master.opt mariadb-10.3-10.3.20/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_stm_mixed_crash_safe-master.opt --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_stm_mixed_crash_safe-master.opt 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_stm_mixed_crash_safe-master.opt 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ ---transaction_isolation=READ-COMMITTED diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_stm_mixed_crash_safe-slave.opt mariadb-10.3-10.3.20/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_stm_mixed_crash_safe-slave.opt --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_stm_mixed_crash_safe-slave.opt 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_stm_mixed_crash_safe-slave.opt 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ ---skip-slave-start --relay-log-info-repository=TABLE --relay-log-recovery=1 --transaction_isolation=READ-COMMITTED diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/r/ext_key_1_innodb.result mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/r/ext_key_1_innodb.result --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/r/ext_key_1_innodb.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/r/ext_key_1_innodb.result 2019-11-06 16:01:58.000000000 +0000 @@ -1,7 +1,4 @@ drop table if exists t; -select @@optimizer_switch; -@@optimizer_switch -index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on create table t (id int not null, x int not null, y int not null, primary key(id), key(x)) engine=innodb; insert into t values (0,0,0),(1,1,1),(2,2,2),(3,2,3),(4,2,4); explain select x,id from t force index (x) where x=0 and id=0; diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/r/ext_key_1_tokudb.result mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/r/ext_key_1_tokudb.result --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/r/ext_key_1_tokudb.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/r/ext_key_1_tokudb.result 2019-11-06 16:01:58.000000000 +0000 @@ -1,7 +1,4 @@ drop table if exists t; -select @@optimizer_switch; -@@optimizer_switch -index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on create table t (id int not null, x int not null, y int not null, primary key(id), key(x)) engine=tokudb; insert into t values (0,0,0),(1,1,1),(2,2,2),(3,2,3),(4,2,4); explain select x,id from t force index (x) where x=0 and id=0; diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/r/ext_key_2_innodb.result mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/r/ext_key_2_innodb.result --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/r/ext_key_2_innodb.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/r/ext_key_2_innodb.result 2019-11-06 16:01:58.000000000 +0000 @@ -1,7 +1,4 @@ drop table if exists t; -select @@optimizer_switch; -@@optimizer_switch -index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on create table t (a int not null, b int not null, c int not null, d int not null, primary key(a,b), key(c,a)) engine=innodb; insert into t values (0,0,0,0),(0,1,0,1); explain select c,a,b from t where c=0 and a=0 and b=1; diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/r/ext_key_2_tokudb.result mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/r/ext_key_2_tokudb.result --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/r/ext_key_2_tokudb.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/r/ext_key_2_tokudb.result 2019-11-06 16:01:58.000000000 +0000 @@ -1,7 +1,4 @@ drop table if exists t; -select @@optimizer_switch; -@@optimizer_switch -index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on create table t (a int not null, b int not null, c int not null, d int not null, primary key(a,b), key(c,a)) engine=tokudb; insert into t values (0,0,0,0),(0,1,0,1); explain select c,a,b from t where c=0 and a=0 and b=1; diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/r/mvcc-29.result mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/r/mvcc-29.result --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/r/mvcc-29.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/r/mvcc-29.result 2019-11-06 16:01:59.000000000 +0000 @@ -31,7 +31,7 @@ # number of rows should be 9 explain select * from foo where a > 1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE foo range PRIMARY PRIMARY 4 NULL 9 Using where +1 SIMPLE foo range PRIMARY PRIMARY 4 NULL 5 Using where # should have just 4 values select * from foo where a > 1; a b @@ -43,7 +43,7 @@ # number of rows should be 9 explain select * from foo where a > 1; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE foo range PRIMARY PRIMARY 4 NULL 9 Using where +1 SIMPLE foo range PRIMARY PRIMARY 4 NULL 5 Using where # 9 values select * From foo where a > 1; a b diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/r/mvcc-30.result mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/r/mvcc-30.result --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/r/mvcc-30.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/r/mvcc-30.result 2019-11-06 16:01:59.000000000 +0000 @@ -31,7 +31,7 @@ # number of rows should be 9 explain select * from foo where a < 50; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE foo range PRIMARY PRIMARY 4 NULL 9 Using where +1 SIMPLE foo range PRIMARY PRIMARY 4 NULL 5 Using where # should have just 4 values select * from foo where a < 50; a b @@ -43,7 +43,7 @@ # number of rows should be 9 explain select * from foo where a < 50; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE foo range PRIMARY PRIMARY 4 NULL 9 Using where +1 SIMPLE foo range PRIMARY PRIMARY 4 NULL 5 Using where # 9 values select * From foo where a < 50; a b diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/r/mvcc-31.result mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/r/mvcc-31.result --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/r/mvcc-31.result 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/r/mvcc-31.result 2019-11-06 16:01:59.000000000 +0000 @@ -31,7 +31,7 @@ # number of rows should be 8 explain select * from foo where a > 1 and a < 50; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE foo range PRIMARY PRIMARY 4 NULL 8 Using where +1 SIMPLE foo range PRIMARY PRIMARY 4 NULL 5 Using where # should have just 4 values select * from foo where a > 1 and a < 50; a b @@ -43,7 +43,7 @@ # number of rows should be 8 explain select * from foo where a > 1 and a < 50; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE foo range PRIMARY PRIMARY 4 NULL 8 Using where +1 SIMPLE foo range PRIMARY PRIMARY 4 NULL 5 Using where # 8 values select * from foo where a > 1 and a < 50; a b diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/cluster_2968-0.test mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/cluster_2968-0.test --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/cluster_2968-0.test 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/cluster_2968-0.test 2019-11-06 16:01:59.000000000 +0000 @@ -1,4 +1,5 @@ source include/have_tokudb.inc; +source include/default_optimizer_switch.inc; # test that the query planner picks clustering keys for joins # create table s diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/cluster_2968-1.test mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/cluster_2968-1.test --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/cluster_2968-1.test 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/cluster_2968-1.test 2019-11-06 16:01:59.000000000 +0000 @@ -1,4 +1,5 @@ source include/have_tokudb.inc; +source include/default_optimizer_switch.inc; # test that the query planner picks clustering keys for joins # create table s diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/cluster_2968-2.test mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/cluster_2968-2.test --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/cluster_2968-2.test 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/cluster_2968-2.test 2019-11-06 16:01:59.000000000 +0000 @@ -1,4 +1,5 @@ source include/have_tokudb.inc; +source include/default_optimizer_switch.inc; # test that the query planner picks clustering keys for joins # create table s diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/cluster_2968-3.test mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/cluster_2968-3.test --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/cluster_2968-3.test 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/cluster_2968-3.test 2019-11-06 16:01:59.000000000 +0000 @@ -1,4 +1,6 @@ source include/have_tokudb.inc; +source include/default_optimizer_switch.inc; + # test that the query planner picks clustering keys for 3 table joins # create table s diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/ext_key_1_innodb.test mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/ext_key_1_innodb.test --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/ext_key_1_innodb.test 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/ext_key_1_innodb.test 2019-11-06 16:01:59.000000000 +0000 @@ -5,8 +5,6 @@ drop table if exists t; enable_warnings; -select @@optimizer_switch; - create table t (id int not null, x int not null, y int not null, primary key(id), key(x)) engine=innodb; insert into t values (0,0,0),(1,1,1),(2,2,2),(3,2,3),(4,2,4); diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/ext_key_1_tokudb.test mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/ext_key_1_tokudb.test --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/ext_key_1_tokudb.test 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/ext_key_1_tokudb.test 2019-11-06 16:01:59.000000000 +0000 @@ -4,8 +4,6 @@ drop table if exists t; enable_warnings; -select @@optimizer_switch; - create table t (id int not null, x int not null, y int not null, primary key(id), key(x)) engine=tokudb; insert into t values (0,0,0),(1,1,1),(2,2,2),(3,2,3),(4,2,4); diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/ext_key_2_innodb.test mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/ext_key_2_innodb.test --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/ext_key_2_innodb.test 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/ext_key_2_innodb.test 2019-11-06 16:01:59.000000000 +0000 @@ -5,8 +5,6 @@ drop table if exists t; enable_warnings; -select @@optimizer_switch; - create table t (a int not null, b int not null, c int not null, d int not null, primary key(a,b), key(c,a)) engine=innodb; insert into t values (0,0,0,0),(0,1,0,1); diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/ext_key_2_tokudb.test mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/ext_key_2_tokudb.test --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/ext_key_2_tokudb.test 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/ext_key_2_tokudb.test 2019-11-06 16:01:59.000000000 +0000 @@ -4,8 +4,6 @@ drop table if exists t; enable_warnings; -select @@optimizer_switch; - create table t (a int not null, b int not null, c int not null, d int not null, primary key(a,b), key(c,a)) engine=tokudb; insert into t values (0,0,0,0),(0,1,0,1); diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/type_varchar.opt mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/type_varchar.opt --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/type_varchar.opt 1970-01-01 00:00:00.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/type_varchar.opt 2019-11-06 16:01:59.000000000 +0000 @@ -0,0 +1 @@ +--character-set-server=latin1 --collation_server=latin1_swedish_ci diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/type_varchar.test mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/type_varchar.test --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb/t/type_varchar.test 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb/t/type_varchar.test 2019-11-06 16:01:59.000000000 +0000 @@ -1,4 +1,5 @@ source include/have_tokudb.inc; +source include/default_charset.inc; set default_storage_engine='tokudb'; --disable_warnings drop table if exists t1, t2; diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb_bugs/r/2970.result mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb_bugs/r/2970.result --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb_bugs/r/2970.result 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb_bugs/r/2970.result 2019-11-06 16:01:59.000000000 +0000 @@ -6,5 +6,5 @@ insert into t2970 values (1,1,1,1),(1,2,3,4); explain select a,count(b),max(b) from t2970 where a > 0 group by a order by a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t2970 index a,a_2 a_2 10 NULL 2 Using where; Using index +1 SIMPLE t2970 range a,a_2 a_2 5 NULL 2 Using where; Using index drop table t2970; diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb_parts/disabled.def mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb_parts/disabled.def --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb_parts/disabled.def 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb_parts/disabled.def 2019-11-06 16:01:59.000000000 +0000 @@ -8,3 +8,4 @@ partition_max_sub_parts_list_tokudb: 5.6 test not merged yet partition_max_sub_parts_range_tokudb: 5.6 test not merged yet nonflushing_analyze_debug: Freezes in MariaDB 10.0 +partition_alter4_tokudb : Takes frequently longer than 900 seconds diff -Nru mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb_parts/r/partition_debug_tokudb.result mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb_parts/r/partition_debug_tokudb.result --- mariadb-10.3-10.3.17/storage/tokudb/mysql-test/tokudb_parts/r/partition_debug_tokudb.result 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/mysql-test/tokudb_parts/r/partition_debug_tokudb.result 2019-11-06 16:01:59.000000000 +0000 @@ -12,6 +12,7 @@ call mtr.add_suppression("Attempting backtrace. You can use the following information to find out"); flush tables; # Crash testing ADD PARTITION +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,crash_add_partition_1"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -20,6 +21,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -45,9 +47,11 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -70,7 +74,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_2"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -79,6 +83,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -106,9 +111,11 @@ # State after crash (before recovery) #sql-t1.frm #sql-t1.par +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -131,7 +138,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_3"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -140,6 +147,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -167,9 +175,11 @@ # State after crash (before recovery) #sql-t1.frm #sql-t1.par +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -192,7 +202,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_4"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -201,6 +211,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -228,9 +239,11 @@ # State after crash (before recovery) #sql-t1.frm #sql-t1.par +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -253,7 +266,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_5"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -262,6 +275,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -289,9 +303,11 @@ # State after crash (before recovery) #sql-t1.frm #sql-t1.par +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -314,7 +330,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_6"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -323,6 +339,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -350,9 +367,11 @@ # State after crash (before recovery) #sql-t1.frm #sql-t1.par +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -375,7 +394,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_7"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -384,6 +403,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -411,9 +431,11 @@ # State after crash (before recovery) #sql-t1.frm #sql-t1.par +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -436,7 +458,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_8"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -445,6 +467,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -472,9 +495,11 @@ # State after crash (before recovery) #sql-t1.frm #sql-t1.par +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -498,7 +523,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_9"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -507,6 +532,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -532,9 +558,11 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -558,7 +586,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_9"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_add_partition_10"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -567,6 +595,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -592,9 +621,11 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -618,8 +649,9 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_add_partition_10"; +SET SESSION debug_dbug=@save_dbug; # Error recovery testing ADD PARTITION +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,fail_add_partition_1"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -628,6 +660,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -653,6 +686,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -683,6 +717,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -709,6 +744,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -732,7 +768,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_2"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -741,6 +777,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -766,6 +803,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -796,6 +834,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -822,6 +861,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -845,7 +885,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_3"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -854,6 +894,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -879,6 +920,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -909,6 +951,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -935,6 +978,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -958,7 +1002,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_4"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -967,6 +1011,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -992,6 +1037,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1022,6 +1068,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1048,6 +1095,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1071,7 +1119,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_5"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -1080,6 +1128,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1105,6 +1154,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1135,6 +1185,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1161,6 +1212,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1184,7 +1236,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_6"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -1193,6 +1245,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1218,6 +1271,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1248,6 +1302,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1274,6 +1329,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1297,7 +1353,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_7"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -1306,6 +1362,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1331,6 +1388,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1361,6 +1419,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1387,6 +1446,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1410,7 +1470,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_8"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -1419,6 +1479,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1444,6 +1505,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1475,6 +1537,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1501,6 +1564,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1525,7 +1589,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_9"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -1534,6 +1598,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1559,6 +1624,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1590,6 +1656,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1616,6 +1683,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1640,7 +1708,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_9"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_add_partition_10"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -1649,6 +1717,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1674,6 +1743,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1705,6 +1775,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1731,6 +1802,7 @@ (PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1755,8 +1827,9 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_add_partition_10"; +SET SESSION debug_dbug=@save_dbug; # Test DROP PARTITION +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_1"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -1765,6 +1838,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1789,9 +1863,11 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1814,7 +1890,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_2"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -1823,6 +1899,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1849,9 +1926,11 @@ # State after crash (before recovery) #sql-t1.frm #sql-t1.par +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1874,7 +1953,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_3"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -1883,6 +1962,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1909,9 +1989,11 @@ # State after crash (before recovery) #sql-t1.frm #sql-t1.par +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1934,7 +2016,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_4"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -1943,6 +2025,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1969,9 +2052,11 @@ # State after crash (before recovery) #sql-t1.frm #sql-t1.par +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -1989,7 +2074,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_5"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -1998,6 +2083,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2024,9 +2110,11 @@ # State after crash (before recovery) #sql-t1.frm #sql-t1.par +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2044,7 +2132,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_6"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -2053,6 +2141,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2079,9 +2168,11 @@ # State after crash (before recovery) #sql-t1.frm #sql-t1.par +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2099,7 +2190,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_7"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -2108,6 +2199,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2132,9 +2224,11 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2152,7 +2246,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_8"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -2161,6 +2255,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2185,9 +2280,11 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2205,7 +2302,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_drop_partition_9"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -2214,6 +2311,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2238,9 +2336,11 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2258,8 +2358,9 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_drop_partition_9"; +SET SESSION debug_dbug=@save_dbug; # Error recovery DROP PARTITION +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_1"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -2268,6 +2369,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2292,6 +2394,7 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2322,6 +2425,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2347,6 +2451,7 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2370,7 +2475,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_2"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -2379,6 +2484,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2403,6 +2509,7 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2433,6 +2540,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2458,6 +2566,7 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2481,7 +2590,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_3"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -2490,6 +2599,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2514,6 +2624,7 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2544,6 +2655,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2569,6 +2681,7 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2592,7 +2705,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_4"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -2601,6 +2714,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2625,6 +2739,7 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2650,6 +2765,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2675,6 +2791,7 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2693,7 +2810,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_5"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -2702,6 +2819,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2726,6 +2844,7 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2751,6 +2870,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2776,6 +2896,7 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2794,7 +2915,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_6"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -2803,6 +2924,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2827,6 +2949,7 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2852,6 +2975,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2877,6 +3001,7 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2895,7 +3020,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_7"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -2904,6 +3029,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2928,6 +3054,7 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2953,6 +3080,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2978,6 +3106,7 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -2996,7 +3125,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_8"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -3005,6 +3134,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3029,6 +3159,7 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3054,6 +3185,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3079,6 +3211,7 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3097,7 +3230,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_drop_partition_9"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -3106,6 +3239,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3130,6 +3264,7 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3155,6 +3290,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3180,6 +3316,7 @@ ALTER TABLE t1 DROP PARTITION p10; ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3198,9 +3335,10 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_drop_partition_9"; +SET SESSION debug_dbug=@save_dbug; # Test change partition (REORGANIZE/REBUILD/COALESCE # or ADD HASH PARTITION). +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,crash_change_partition_1"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -3209,6 +3347,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3235,9 +3374,11 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3260,7 +3401,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_2"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -3269,6 +3410,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3297,9 +3439,11 @@ # State after crash (before recovery) #sql-t1.frm #sql-t1.par +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3322,7 +3466,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_3"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -3331,6 +3475,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3359,9 +3504,11 @@ # State after crash (before recovery) #sql-t1.frm #sql-t1.par +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3384,7 +3531,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_4"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -3393,6 +3540,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3421,9 +3569,11 @@ # State after crash (before recovery) #sql-t1.frm #sql-t1.par +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3446,7 +3596,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_5"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -3455,6 +3605,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3483,9 +3634,11 @@ # State after crash (before recovery) #sql-t1.frm #sql-t1.par +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3508,7 +3661,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_6"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -3517,6 +3670,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3545,9 +3699,11 @@ # State after crash (before recovery) #sql-t1.frm #sql-t1.par +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3570,7 +3726,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_7"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -3579,6 +3735,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3607,9 +3764,11 @@ # State after crash (before recovery) #sql-t1.frm #sql-t1.par +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3633,7 +3792,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_8"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -3642,6 +3801,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3670,9 +3830,11 @@ # State after crash (before recovery) #sql-t1.frm #sql-t1.par +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3696,7 +3858,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_9"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -3705,6 +3867,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3731,9 +3894,11 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3757,7 +3922,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_9"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_10"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -3766,6 +3931,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3792,9 +3958,11 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3818,7 +3986,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_10"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_11"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -3827,6 +3995,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3853,9 +4022,11 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3879,7 +4050,7 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_11"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,crash_change_partition_12"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -3888,6 +4059,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3914,9 +4086,11 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par # State after crash recovery +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3940,9 +4114,10 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t1; -SET SESSION debug_dbug="-d,crash_change_partition_12"; +SET SESSION debug_dbug=@save_dbug; # Error recovery change partition (REORGANIZE/REBUILD/COALESCE # or ADD HASH PARTITION). +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,fail_change_partition_1"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -3951,6 +4126,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -3977,6 +4153,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4007,6 +4184,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4034,6 +4212,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4057,7 +4236,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_2"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -4066,6 +4245,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4092,6 +4272,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4122,6 +4303,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4149,6 +4331,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4172,7 +4355,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_3"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -4181,6 +4364,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4207,6 +4391,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4237,6 +4422,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4264,6 +4450,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4287,7 +4474,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_4"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -4296,6 +4483,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4322,6 +4510,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4352,6 +4541,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4379,6 +4569,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4402,7 +4593,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_5"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -4411,6 +4602,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4437,6 +4629,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4467,6 +4660,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4494,6 +4688,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4517,7 +4712,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_6"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -4526,6 +4721,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4552,6 +4748,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4582,6 +4779,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4609,6 +4807,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4632,7 +4831,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_7"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -4641,6 +4840,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4667,6 +4867,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4698,6 +4899,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4725,6 +4927,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4749,7 +4952,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_8"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -4758,6 +4961,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4784,6 +4988,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4815,6 +5020,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4842,6 +5048,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4866,7 +5073,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_9"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -4875,6 +5082,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4901,6 +5109,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4932,6 +5141,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4959,6 +5169,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -4983,7 +5194,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_9"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_10"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -4992,6 +5203,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -5018,6 +5230,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -5049,6 +5262,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -5076,6 +5290,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -5100,7 +5315,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_10"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_11"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -5109,6 +5324,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -5135,6 +5351,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -5166,6 +5383,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -5193,6 +5411,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -5217,7 +5436,7 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_11"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,fail_change_partition_12"; CREATE TABLE t1 (a INT, b VARCHAR(64)) ENGINE = 'TokuDB' @@ -5226,6 +5445,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -5252,6 +5472,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -5283,6 +5504,7 @@ PARTITION p10 VALUES IN (11,12,13,14,15,16,17,18,19)); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -5310,6 +5532,7 @@ PARTITION p20 VALUES IN (20,21,22,23,24,25,26,27,28,29)); ERROR HY000: Unknown error # State after failure +db.opt t1.frm t1.par SHOW CREATE TABLE t1; @@ -5334,13 +5557,14 @@ 4 Original from partition p0 UNLOCK TABLES; DROP TABLE t1; -SET SESSION debug_dbug="-d,fail_change_partition_12"; +SET SESSION debug_dbug=@save_dbug; # # WL#4445: EXCHANGE PARTITION WITH TABLE # Verify ddl_log and TokuDB in case of crashing. call mtr.add_suppression("TokuDB: Warning: allocated tablespace .*, old maximum was "); call mtr.add_suppression("Attempting backtrace. You can use the following information to find out"); call mtr.add_suppression("table .* does not exist in the TokuDB internal"); +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_1"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = TokuDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -5363,6 +5587,7 @@ PARTITION p1 VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"), (21, "Original from partition p1"), (22, "Original from partition p1"), (23, "Original from partition p1"), (24, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par t2.frm @@ -5392,10 +5617,12 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par t2.frm # State after crash recovery +db.opt t1.frm t1.par t2.frm @@ -5436,7 +5663,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_2"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = TokuDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -5459,6 +5686,7 @@ PARTITION p1 VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"), (21, "Original from partition p1"), (22, "Original from partition p1"), (23, "Original from partition p1"), (24, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par t2.frm @@ -5488,10 +5716,12 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par t2.frm # State after crash recovery +db.opt t1.frm t1.par t2.frm @@ -5532,7 +5762,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_3"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = TokuDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -5555,6 +5785,7 @@ PARTITION p1 VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"), (21, "Original from partition p1"), (22, "Original from partition p1"), (23, "Original from partition p1"), (24, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par t2.frm @@ -5584,10 +5815,12 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par t2.frm # State after crash recovery +db.opt t1.frm t1.par t2.frm @@ -5628,7 +5861,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_4"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = TokuDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -5651,6 +5884,7 @@ PARTITION p1 VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"), (21, "Original from partition p1"), (22, "Original from partition p1"), (23, "Original from partition p1"), (24, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par t2.frm @@ -5680,10 +5914,12 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par t2.frm # State after crash recovery +db.opt t1.frm t1.par t2.frm @@ -5724,7 +5960,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_5"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = TokuDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -5747,6 +5983,7 @@ PARTITION p1 VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"), (21, "Original from partition p1"), (22, "Original from partition p1"), (23, "Original from partition p1"), (24, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par t2.frm @@ -5776,10 +6013,12 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par t2.frm # State after crash recovery +db.opt t1.frm t1.par t2.frm @@ -5820,7 +6059,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_6"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = TokuDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -5843,6 +6082,7 @@ PARTITION p1 VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"), (21, "Original from partition p1"), (22, "Original from partition p1"), (23, "Original from partition p1"), (24, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par t2.frm @@ -5872,10 +6112,12 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par t2.frm # State after crash recovery +db.opt t1.frm t1.par t2.frm @@ -5916,7 +6158,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_7"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = TokuDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -5939,6 +6181,7 @@ PARTITION p1 VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"), (21, "Original from partition p1"), (22, "Original from partition p1"), (23, "Original from partition p1"), (24, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par t2.frm @@ -5968,10 +6211,12 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par t2.frm # State after crash recovery +db.opt t1.frm t1.par t2.frm @@ -6012,7 +6257,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_8"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = TokuDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6035,6 +6280,7 @@ PARTITION p1 VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"), (21, "Original from partition p1"), (22, "Original from partition p1"), (23, "Original from partition p1"), (24, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par t2.frm @@ -6064,10 +6310,12 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par t2.frm # State after crash recovery +db.opt t1.frm t1.par t2.frm @@ -6108,7 +6356,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_abort_9"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = TokuDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6131,6 +6379,7 @@ PARTITION p1 VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"), (21, "Original from partition p1"), (22, "Original from partition p1"), (23, "Original from partition p1"), (24, "Original from partition p1"); # State before crash +db.opt t1.frm t1.par t2.frm @@ -6160,10 +6409,12 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ERROR HY000: Lost connection to MySQL server during query # State after crash (before recovery) +db.opt t1.frm t1.par t2.frm # State after crash recovery +db.opt t1.frm t1.par t2.frm @@ -6204,7 +6455,8 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_abort_9"; +SET SESSION debug_dbug=@save_dbug; +SET @save_dbug=@@debug_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_1"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = TokuDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6227,6 +6479,7 @@ PARTITION p1 VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"), (21, "Original from partition p1"), (22, "Original from partition p1"), (23, "Original from partition p1"), (24, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par t2.frm @@ -6256,6 +6509,7 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ERROR HY000: Error in DDL log # State after failure +db.opt t1.frm t1.par t2.frm @@ -6296,7 +6550,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_1"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_2"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = TokuDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6319,6 +6573,7 @@ PARTITION p1 VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"), (21, "Original from partition p1"), (22, "Original from partition p1"), (23, "Original from partition p1"), (24, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par t2.frm @@ -6348,6 +6603,7 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ERROR HY000: Error in DDL log # State after failure +db.opt t1.frm t1.par t2.frm @@ -6388,7 +6644,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_2"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_3"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = TokuDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6411,6 +6667,7 @@ PARTITION p1 VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"), (21, "Original from partition p1"), (22, "Original from partition p1"), (23, "Original from partition p1"), (24, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par t2.frm @@ -6440,6 +6697,7 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ERROR HY000: Error on rename of './test/t2' to './test/#sqlx-nnnn_nnnn' (errno: 0 "Internal error/check (Not system error)") # State after failure +db.opt t1.frm t1.par t2.frm @@ -6480,7 +6738,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_3"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_4"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = TokuDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6503,6 +6761,7 @@ PARTITION p1 VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"), (21, "Original from partition p1"), (22, "Original from partition p1"), (23, "Original from partition p1"), (24, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par t2.frm @@ -6532,6 +6791,7 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ERROR HY000: Error in DDL log # State after failure +db.opt t1.frm t1.par t2.frm @@ -6572,7 +6832,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_4"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_5"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = TokuDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6595,6 +6855,7 @@ PARTITION p1 VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"), (21, "Original from partition p1"), (22, "Original from partition p1"), (23, "Original from partition p1"), (24, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par t2.frm @@ -6624,6 +6885,7 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ERROR HY000: Error on rename of './test/t1#P#p0' to './test/t2' (errno: 0 "Internal error/check (Not system error)") # State after failure +db.opt t1.frm t1.par t2.frm @@ -6664,7 +6926,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_5"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_6"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = TokuDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6687,6 +6949,7 @@ PARTITION p1 VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"), (21, "Original from partition p1"), (22, "Original from partition p1"), (23, "Original from partition p1"), (24, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par t2.frm @@ -6716,6 +6979,7 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ERROR HY000: Error in DDL log # State after failure +db.opt t1.frm t1.par t2.frm @@ -6756,7 +7020,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_6"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_7"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = TokuDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6779,6 +7043,7 @@ PARTITION p1 VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"), (21, "Original from partition p1"), (22, "Original from partition p1"), (23, "Original from partition p1"), (24, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par t2.frm @@ -6808,6 +7073,7 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ERROR HY000: Error on rename of './test/#sqlx-nnnn_nnnn' to './test/t1#P#p0' (errno: 0 "Internal error/check (Not system error)") # State after failure +db.opt t1.frm t1.par t2.frm @@ -6848,7 +7114,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_7"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_8"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = TokuDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6871,6 +7137,7 @@ PARTITION p1 VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"), (21, "Original from partition p1"), (22, "Original from partition p1"), (23, "Original from partition p1"), (24, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par t2.frm @@ -6900,6 +7167,7 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ERROR HY000: Error in DDL log # State after failure +db.opt t1.frm t1.par t2.frm @@ -6940,7 +7208,7 @@ 7 Original from table t2 8 Original from table t2 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_8"; +SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug="+d,exchange_partition_fail_9"; CREATE TABLE t2 (a INT, b VARCHAR(64)) ENGINE = TokuDB; INSERT INTO t2 VALUES (5, "Original from table t2"), (6, "Original from table t2"), (7, "Original from table t2"), (8, "Original from table t2"); @@ -6963,6 +7231,7 @@ PARTITION p1 VALUES LESS THAN MAXVALUE); INSERT INTO t1 VALUES (1, "Original from partition p0"), (2, "Original from partition p0"), (3, "Original from partition p0"), (4, "Original from partition p0"), (11, "Original from partition p1"), (12, "Original from partition p1"), (13, "Original from partition p1"), (14, "Original from partition p1"), (21, "Original from partition p1"), (22, "Original from partition p1"), (23, "Original from partition p1"), (24, "Original from partition p1"); # State before failure +db.opt t1.frm t1.par t2.frm @@ -6992,6 +7261,7 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ERROR HY000: Error in DDL log # State after failure +db.opt t1.frm t1.par t2.frm @@ -7032,4 +7302,4 @@ 3 Original from partition p0 4 Original from partition p0 DROP TABLE t2; -SET SESSION debug_dbug="-d,exchange_partition_fail_9"; +SET SESSION debug_dbug=@save_dbug; diff -Nru mariadb-10.3-10.3.17/storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake mariadb-10.3-10.3.20/storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake --- mariadb-10.3-10.3.17/storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/PerconaFT/cmake_modules/TokuThirdParty.cmake 2019-11-06 16:01:58.000000000 +0000 @@ -1,39 +1,5 @@ include(ExternalProject) -if (CMAKE_PROJECT_NAME STREQUAL TokuDB) - ## add jemalloc with an external project - set(JEMALLOC_SOURCE_DIR "${TokuDB_SOURCE_DIR}/third_party/jemalloc" CACHE FILEPATH "Where to find jemalloc sources.") - if (EXISTS "${JEMALLOC_SOURCE_DIR}/configure") - set(jemalloc_configure_opts "CC=${CMAKE_C_COMPILER}" "--with-jemalloc-prefix=" "--with-private-namespace=tokudb_jemalloc_internal_" "--enable-cc-silence") - option(JEMALLOC_DEBUG "Build jemalloc with --enable-debug." OFF) - if (JEMALLOC_DEBUG) - list(APPEND jemalloc_configure_opts --enable-debug) - endif () - ExternalProject_Add(build_jemalloc - PREFIX jemalloc - SOURCE_DIR "${JEMALLOC_SOURCE_DIR}" - CONFIGURE_COMMAND - "${JEMALLOC_SOURCE_DIR}/configure" ${jemalloc_configure_opts} - "--prefix=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/jemalloc" - ) - - add_library(jemalloc STATIC IMPORTED GLOBAL) - set_target_properties(jemalloc PROPERTIES IMPORTED_LOCATION - "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/jemalloc/lib/libjemalloc_pic.a") - add_dependencies(jemalloc build_jemalloc) - add_library(jemalloc_nopic STATIC IMPORTED GLOBAL) - set_target_properties(jemalloc_nopic PROPERTIES IMPORTED_LOCATION - "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/jemalloc/lib/libjemalloc.a") - add_dependencies(jemalloc_nopic build_jemalloc) - - # detect when we are being built as a subproject - if (NOT DEFINED MYSQL_PROJECT_NAME_DOCSTRING) - install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/jemalloc/lib" DESTINATION . - COMPONENT tokukv_libs_extra) - endif () - endif () -endif () - ## add lzma with an external project set(xz_configure_opts --with-pic --enable-static) if (APPLE) diff -Nru mariadb-10.3-10.3.17/storage/tokudb/PerconaFT/scripts/run-nightly-coverage-tests.bash mariadb-10.3-10.3.20/storage/tokudb/PerconaFT/scripts/run-nightly-coverage-tests.bash --- mariadb-10.3-10.3.17/storage/tokudb/PerconaFT/scripts/run-nightly-coverage-tests.bash 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/PerconaFT/scripts/run-nightly-coverage-tests.bash 2019-11-06 16:01:58.000000000 +0000 @@ -26,7 +26,7 @@ -D RUN_LONG_TESTS=ON \ -D TOKUDB_DATA=$tokudbdir/../tokudb.data \ .. - ninja build_jemalloc build_lzma build_snappy + ninja build_lzma build_snappy popd fi diff -Nru mariadb-10.3-10.3.17/storage/tokudb/PerconaFT/scripts/run-nightly-drd-tests.bash mariadb-10.3-10.3.20/storage/tokudb/PerconaFT/scripts/run-nightly-drd-tests.bash --- mariadb-10.3-10.3.17/storage/tokudb/PerconaFT/scripts/run-nightly-drd-tests.bash 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/PerconaFT/scripts/run-nightly-drd-tests.bash 2019-11-06 16:01:58.000000000 +0000 @@ -25,7 +25,7 @@ -D RUN_LONG_TESTS=ON \ -D TOKUDB_DATA=$tokudbdir/../tokudb.data \ .. - ninja build_jemalloc build_lzma build_snappy + ninja build_lzma build_snappy popd fi diff -Nru mariadb-10.3-10.3.17/storage/tokudb/PerconaFT/scripts/run-nightly-release-tests.bash mariadb-10.3-10.3.20/storage/tokudb/PerconaFT/scripts/run-nightly-release-tests.bash --- mariadb-10.3-10.3.17/storage/tokudb/PerconaFT/scripts/run-nightly-release-tests.bash 2019-07-28 00:18:32.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/PerconaFT/scripts/run-nightly-release-tests.bash 2019-11-06 16:01:58.000000000 +0000 @@ -25,7 +25,7 @@ -D RUN_LONG_TESTS=ON \ -D TOKUDB_DATA=$tokudbdir/../tokudb.data \ .. - ninja build_jemalloc build_lzma build_snappy + ninja build_lzma build_snappy popd fi diff -Nru mariadb-10.3-10.3.17/storage/tokudb/tests/math_test_int.cc mariadb-10.3-10.3.20/storage/tokudb/tests/math_test_int.cc --- mariadb-10.3-10.3.17/storage/tokudb/tests/math_test_int.cc 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/tests/math_test_int.cc 2019-11-06 16:01:59.000000000 +0000 @@ -54,16 +54,20 @@ assert(over); else if (m < -max) assert(over); - else - assert(!over && n == m); + else { + assert(!over); + assert(n == m); + } n = int_sub(x, y, 8, &over); m = x - y; if (m > max-1) assert(over); else if (m < -max) assert(over); - else - assert(!over && n == m); + else { + assert(!over); + asset(n == m); + } } } } @@ -82,16 +86,20 @@ assert(over); else if (m < -max) assert(over); - else - assert(!over && n == m); + else { + assert(!over); + assert(n == m); + } n = int_sub(x, y, 16, &over); m = x - y; if (m > max-1) assert(over); else if (m < -max) assert(over); - else - assert(!over && n == m); + else { + assert(!over); + assert(n == m); + } } } } @@ -104,20 +112,42 @@ s = int_add(1, (1ULL<<23)-1, 24, &over); assert(over); s = int_add((1ULL<<23)-1, 1, 24, &over); assert(over); - s = int_sub(-1, (1ULL<<23), 24, &over); assert(!over && s == (1ULL<<23)-1); + s = int_sub(-1, (1ULL<<23), 24, &over); + assert(!over); + assert(s == (1ULL<<23)-1); s = int_sub((1ULL<<23), 1, 24, &over); assert(over); - s = int_add(0, 0, 24, &over); assert(!over && s == 0); - s = int_sub(0, 0, 24, &over); assert(!over && s == 0); - s = int_add(0, -1, 24, &over); assert(!over && s == -1); - s = int_sub(0, 1, 24, &over); assert(!over && s == -1); - s = int_add(0, (1ULL<<23), 24, &over); assert(!over && (s & ((1ULL<<24)-1)) == (1ULL<<23)); - s = int_sub(0, (1ULL<<23)-1, 24, &over); assert(!over && (s & ((1ULL<<24)-1)) == (1ULL<<23)+1); - - s = int_add(-1, 0, 24, &over); assert(!over && s == -1); - s = int_add(-1, 1, 24, &over); assert(!over && s == 0); - s = int_sub(-1, -1, 24, &over); assert(!over && s == 0); - s = int_sub(-1, (1ULL<<23)-1, 24, &over); assert(!over && (s & ((1ULL<<24)-1)) == (1ULL<<23)); + s = int_add(0, 0, 24, &over); + assert(!over); + assert(s == 0); + s = int_sub(0, 0, 24, &over); + assert(!over); + assert(s == 0); + s = int_add(0, -1, 24, &over); + assert(!over); + assert(s == -1); + s = int_sub(0, 1, 24, &over); + assert(!over); + assert(s == -1); + s = int_add(0, (1ULL<<23), 24, &over); + assert(!over); + assert((s & ((1ULL<<24)-1)) == (1ULL<<23)); + s = int_sub(0, (1ULL<<23)-1, 24, &over); + assert(!over); + assert((s & ((1ULL<<24)-1)) == (1ULL<<23)+1); + + s = int_add(-1, 0, 24, &over); + assert(!over); + assert(s == -1); + s = int_add(-1, 1, 24, &over); + assert(!over); + assert(s == 0); + s = int_sub(-1, -1, 24, &over); + assert(!over); + assert(s == 0); + s = int_sub(-1, (1ULL<<23)-1, 24, &over); + assert(!over); + assert((s & ((1ULL<<24)-1)) == (1ULL<<23)); } static void test_int32() { @@ -128,20 +158,42 @@ s = int_add(1, (1ULL<<31)-1, 32, &over); assert(over); s = int_add((1ULL<<31)-1, 1, 32, &over); assert(over); - s = int_sub(-1, (1ULL<<31), 32, &over); assert(s == (1ULL<<31)-1 && !over); + s = int_sub(-1, (1ULL<<31), 32, &over); + assert(s == (1ULL<<31)-1); + assert(!over); s = int_sub((1ULL<<31), 1, 32, &over); assert(over); - s = int_add(0, 0, 32, &over); assert(s == 0 && !over); - s = int_sub(0, 0, 32, &over); assert(s == 0 && !over); - s = int_add(0, -1, 32, &over); assert(s == -1 && !over); - s = int_sub(0, 1, 32, &over); assert(s == -1 && !over); - s = int_add(0, (1ULL<<31), 32, &over); assert((s & ((1ULL<<32)-1)) == (1ULL<<31) && !over); - s = int_sub(0, (1ULL<<31)-1, 32, &over); assert((s & ((1ULL<<32)-1)) == (1ULL<<31)+1 && !over); - - s = int_add(-1, 0, 32, &over); assert(s == -1 && !over); - s = int_add(-1, 1, 32, &over); assert(s == 0 && !over); - s = int_sub(-1, -1, 32, &over); assert(s == 0 && !over); - s = int_sub(-1, (1ULL<<31)-1, 32, &over); assert((s & ((1ULL<<32)-1)) == (1ULL<<31) && !over); + s = int_add(0, 0, 32, &over); + assert(s == 0); + assert(!over); + s = int_sub(0, 0, 32, &over); + assert(s == 0); + assert(!over); + s = int_add(0, -1, 32, &over); + assert(s == -1); + assert(!over); + s = int_sub(0, 1, 32, &over); + assert(s == -1); + assert(!over); + s = int_add(0, (1ULL<<31), 32, &over); + assert((s & ((1ULL<<32)-1)) == (1ULL<<31)); + assert(!over); + s = int_sub(0, (1ULL<<31)-1, 32, &over); + assert((s & ((1ULL<<32)-1)) == (1ULL<<31)+1); + assert(!over); + + s = int_add(-1, 0, 32, &over); + assert(s == -1); + assert(!over); + s = int_add(-1, 1, 32, &over); + assert(s == 0); + assert(!over); + s = int_sub(-1, -1, 32, &over); + assert(s == 0); + assert(!over); + s = int_sub(-1, (1ULL<<31)-1, 32, &over); + assert((s & ((1ULL<<32)-1)) == (1ULL<<31)); + assert(!over); } static void test_int64() { @@ -152,20 +204,42 @@ s = int_add(1, (1ULL<<63)-1, 64, &over); assert(over); s = int_add((1ULL<<63)-1, 1, 64, &over); assert(over); - s = int_sub(-1, (1ULL<<63), 64, &over); assert(s == (1ULL<<63)-1 && !over); + s = int_sub(-1, (1ULL<<63), 64, &over); + assert(s == (1ULL<<63)-1); + assert(!over); s = int_sub((1ULL<<63), 1, 64, &over); assert(over); - s = int_add(0, 0, 64, &over); assert(s == 0 && !over); - s = int_sub(0, 0, 64, &over); assert(s == 0 && !over); - s = int_add(0, -1, 64, &over); assert(s == -1 && !over); - s = int_sub(0, 1, 64, &over); assert(s == -1 && !over); - s = int_add(0, (1ULL<<63), 64, &over); assert(s == (int64_t)(1ULL<<63) && !over); - s = int_sub(0, (1ULL<<63)-1, 64, &over); assert(s == (int64_t)((1ULL<<63)+1) && !over); - - s = int_add(-1, 0, 64, &over); assert(s == -1 && !over); - s = int_add(-1, 1, 64, &over); assert(s == 0 && !over); - s = int_sub(-1, -1, 64, &over); assert(s == 0 && !over); - s = int_sub(-1, (1ULL<<63)-1, 64, &over); assert(s == (int64_t)(1ULL<<63) && !over); + s = int_add(0, 0, 64, &over); + assert(s == 0); + assert(!over); + s = int_sub(0, 0, 64, &over); + assert(s == 0); + assert(!over); + s = int_add(0, -1, 64, &over); + assert(s == -1); + assert(!over); + s = int_sub(0, 1, 64, &over); + assert(s == -1); + assert(!over); + s = int_add(0, (1ULL<<63), 64, &over); + assert(s == (int64_t)(1ULL<<63)); + assert(!over); + s = int_sub(0, (1ULL<<63)-1, 64, &over); + assert(s == (int64_t)((1ULL<<63)+1)); + assert(!over); + + s = int_add(-1, 0, 64, &over); + assert(s == -1); + assert(!over); + s = int_add(-1, 1, 64, &over); + assert(s == 0); + assert(!over); + s = int_sub(-1, -1, 64, &over); + assert(s == 0); + assert(!over); + s = int_sub(-1, (1ULL<<63)-1, 64, &over); + assert(s == (int64_t)(1ULL<<63)); + assert(!over); } static void test_int_sign(uint length_bits) { diff -Nru mariadb-10.3-10.3.17/storage/tokudb/tests/math_test_uint.cc mariadb-10.3-10.3.20/storage/tokudb/tests/math_test_uint.cc --- mariadb-10.3-10.3.17/storage/tokudb/tests/math_test_uint.cc 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/tests/math_test_uint.cc 2019-11-06 16:01:59.000000000 +0000 @@ -51,14 +51,18 @@ m = x + y; if (m > (1ULL<<8)-1) assert(over); - else - assert(!over && n == (m % 256)); + else { + assert(!over); + assert(n == (m % 256)); + } n = uint_sub(x, y, 8, &over); m = x - y; if (m > x) assert(over); - else - assert(!over && n == (m % 256)); + else { + assert(!over); + assert(n == (m % 256)); + } } } } @@ -75,14 +79,18 @@ m = x + y; if (m > (1ULL<<16)-1) assert(over); - else - assert(!over && n == (m % (1ULL<<16))); + else { + assert(!over); + assert(n == (m % (1ULL<<16))); + } n = uint_sub(x, y, 16, &over); m = x - y; if (m > x) assert(over); - else - assert(!over && n == (m % (1ULL<<16))); + else { + assert(!over); + assert(n == (m % (1ULL<<16))); + } } } } @@ -95,13 +103,23 @@ s = uint_add((1ULL<<24)-1, (1ULL<<24)-1, 24, &over); assert(over); s = uint_add((1ULL<<24)-1, 1, 24, &over); assert(over); - s = uint_add((1ULL<<24)-1, 0, 24, &over); assert(!over && s == (1ULL<<24)-1); - s = uint_add(0, 1, 24, &over); assert(!over && s == 1); - s = uint_add(0, 0, 24, &over); assert(!over && s == 0); - s = uint_sub(0, 0, 24, &over); assert(!over && s == 0); + s = uint_add((1ULL<<24)-1, 0, 24, &over); + assert(!over); + assert(s == (1ULL<<24)-1); + s = uint_add(0, 1, 24, &over); + assert(!over); + assert(s == 1); + s = uint_add(0, 0, 24, &over); + assert(!over); + assert(s == 0); + s = uint_sub(0, 0, 24, &over); + assert(!over); + assert(s == 0); s = uint_sub(0, 1, 24, &over); assert(over); s = uint_sub(0, (1ULL<<24)-1, 24, &over); assert(over); - s = uint_sub((1ULL<<24)-1, (1ULL<<24)-1, 24, &over); assert(!over && s == 0); + s = uint_sub((1ULL<<24)-1, (1ULL<<24)-1, 24, &over); + assert(!over); + assert(s == 0); } static void test_uint32() { @@ -112,13 +130,23 @@ s = uint_add((1ULL<<32)-1, (1ULL<<32)-1, 32, &over); assert(over); s = uint_add((1ULL<<32)-1, 1, 32, &over); assert(over); - s = uint_add((1ULL<<32)-1, 0, 32, &over); assert(!over && s == (1ULL<<32)-1); - s = uint_add(0, 1, 32, &over); assert(!over && s == 1); - s = uint_add(0, 0, 32, &over); assert(!over && s == 0); - s = uint_sub(0, 0, 32, &over); assert(!over && s == 0); + s = uint_add((1ULL<<32)-1, 0, 32, &over); + assert(!over); + assert(s == (1ULL<<32)-1); + s = uint_add(0, 1, 32, &over); + assert(!over); + assert(s == 1); + s = uint_add(0, 0, 32, &over); + assert(!over); + assert(s == 0); + s = uint_sub(0, 0, 32, &over); + assert(!over); + assert(s == 0); s = uint_sub(0, 1, 32, &over); assert(over); s = uint_sub(0, (1ULL<<32)-1, 32, &over); assert(over); - s = uint_sub((1ULL<<32)-1, (1ULL<<32)-1, 32, &over); assert(!over && s == 0); + s = uint_sub((1ULL<<32)-1, (1ULL<<32)-1, 32, &over); + assert(!over); + assert(s == 0); } static void test_uint64() { @@ -129,13 +157,23 @@ s = uint_add(~0ULL, ~0ULL, 64, &over); assert(over); s = uint_add(~0ULL, 1, 64, &over); assert(over); - s = uint_add(~0ULL, 0, 64, &over); assert(!over && s == ~0ULL); - s = uint_add(0, 1, 64, &over); assert(!over && s == 1); - s = uint_add(0, 0, 64, &over); assert(!over && s == 0); - s = uint_sub(0, 0, 64, &over); assert(!over && s == 0); + s = uint_add(~0ULL, 0, 64, &over); + assert(!over); + assert(s == ~0ULL); + s = uint_add(0, 1, 64, &over); + assert(!over); + assert(s == 1); + s = uint_add(0, 0, 64, &over); + assert(!over); + assert(s == 0); + s = uint_sub(0, 0, 64, &over); + assert(!over); + assert(s == 0); s = uint_sub(0, 1, 64, &over); assert(over); s = uint_sub(0, ~0ULL, 64, &over); assert(over); - s = uint_sub(~0ULL, ~0ULL, 64, &over); assert(!over && s == 0); + s = uint_sub(~0ULL, ~0ULL, 64, &over); + assert(!over); + assert(s == 0); } int main() { diff -Nru mariadb-10.3-10.3.17/storage/tokudb/tests/sint_test.cc mariadb-10.3-10.3.20/storage/tokudb/tests/sint_test.cc --- mariadb-10.3-10.3.17/storage/tokudb/tests/sint_test.cc 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/tests/sint_test.cc 2019-11-06 16:01:59.000000000 +0000 @@ -27,7 +27,6 @@ #include #include #include -#include #include #include diff -Nru mariadb-10.3-10.3.17/storage/tokudb/tests/tokudb_buffer_test.cc mariadb-10.3-10.3.20/storage/tokudb/tests/tokudb_buffer_test.cc --- mariadb-10.3-10.3.17/storage/tokudb/tests/tokudb_buffer_test.cc 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/tests/tokudb_buffer_test.cc 2019-11-06 16:01:59.000000000 +0000 @@ -32,9 +32,13 @@ static void test_null() { tokudb::buffer b; - assert(b.data() == NULL && b.size() == 0 && b.limit() == 0); + assert(b.data() == nullptr); + assert(b.size() == 0); + assert(b.limit() == 0); b.append(NULL, 0); - assert(b.data() == NULL && b.size() == 0 && b.limit() == 0); + assert(b.data() == nullptr); + assert(b.size() == 0); + assert(b.limit() == 0); } static void append_az(tokudb::buffer &b) { @@ -132,7 +136,8 @@ } for (size_t i = 0; i < a.size()/2; i++) { unsigned char *cp = (unsigned char *) a.data() + 2*i; - assert(cp[0] == 'a'+i && cp[1] == 'a'+i); + assert(cp[0] == 'a'+i); + assert(cp[1] == 'a'+i); } } diff -Nru mariadb-10.3-10.3.17/storage/tokudb/tests/uint_test.cc mariadb-10.3-10.3.20/storage/tokudb/tests/uint_test.cc --- mariadb-10.3-10.3.17/storage/tokudb/tests/uint_test.cc 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/tests/uint_test.cc 2019-11-06 16:01:59.000000000 +0000 @@ -27,7 +27,6 @@ #include #include #include -#include #include #include diff -Nru mariadb-10.3-10.3.17/storage/tokudb/tests/vlq_test.cc mariadb-10.3-10.3.20/storage/tokudb/tests/vlq_test.cc --- mariadb-10.3-10.3.17/storage/tokudb/tests/vlq_test.cc 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/tests/vlq_test.cc 2019-11-06 16:01:59.000000000 +0000 @@ -52,7 +52,8 @@ in_s = tokudb::vlq_decode_ui(&n, b, 1); assert(in_s == 0); in_s = tokudb::vlq_decode_ui(&n, b, 2); - assert(in_s == 2 && n == 128); + assert(in_s == 2); + assert(n == 128); } static void test_80000000(void) { @@ -63,7 +64,8 @@ out_s = tokudb::vlq_encode_ui(v, b, sizeof b); assert(out_s == 5); in_s = tokudb::vlq_decode_ui(&n, b, out_s); - assert(in_s == 5 && n == v); + assert(in_s == 5); + assert(n == v); } static void test_100000000(void) { @@ -74,7 +76,8 @@ out_s = tokudb::vlq_encode_ui(v, b, sizeof b); assert(out_s == 5); in_s = tokudb::vlq_decode_ui(&n, b, out_s); - assert(in_s == 5 && n == v); + assert(in_s == 5); + assert(n == v); } int main(void) { diff -Nru mariadb-10.3-10.3.17/storage/tokudb/tests/vlq_test_uint32.cc mariadb-10.3-10.3.20/storage/tokudb/tests/vlq_test_uint32.cc --- mariadb-10.3-10.3.17/storage/tokudb/tests/vlq_test_uint32.cc 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/tests/vlq_test_uint32.cc 2019-11-06 16:01:59.000000000 +0000 @@ -44,7 +44,8 @@ assert(out_s == 1); uint32_t n; size_t in_s = tokudb::vlq_decode_ui(&n, b, out_s); - assert(in_s == 1 && n == v); + assert(in_s == 1); + assert(n == v); } printf("%u\n", 1<<7); @@ -54,7 +55,8 @@ assert(out_s == 2); uint32_t n; size_t in_s = tokudb::vlq_decode_ui(&n, b, out_s); - assert(in_s == 2 && n == v); + assert(in_s == 2); + assert(n == v); } printf("%u\n", 1<<14); @@ -64,7 +66,8 @@ assert(out_s == 3); uint32_t n; size_t in_s = tokudb::vlq_decode_ui(&n, b, out_s); - assert(in_s == 3 && n == v); + assert(in_s == 3); + assert(n == v); } printf("%u\n", 1<<21); @@ -74,7 +77,8 @@ assert(out_s == 4); uint32_t n; size_t in_s = tokudb::vlq_decode_ui(&n, b, out_s); - assert(in_s == 4 && n == v); + assert(in_s == 4); + assert(n == v); } printf("%u\n", 1<<28); @@ -84,7 +88,8 @@ assert(out_s == 5); uint32_t n; size_t in_s = tokudb::vlq_decode_ui(&n, b, out_s); - assert(in_s == 5 && n == v); + assert(in_s == 5); + assert(n == v); } } diff -Nru mariadb-10.3-10.3.17/storage/tokudb/tests/vlq_test_uint64.cc mariadb-10.3-10.3.20/storage/tokudb/tests/vlq_test_uint64.cc --- mariadb-10.3-10.3.17/storage/tokudb/tests/vlq_test_uint64.cc 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/tests/vlq_test_uint64.cc 2019-11-06 16:01:59.000000000 +0000 @@ -46,7 +46,8 @@ assert(out_s == 1); uint64_t n; size_t in_s = tokudb::vlq_decode_ui(&n, b, out_s); - assert(in_s == 1 && n == v); + assert(in_s == 1); + assert(n == v); } printf("%u\n", 1<<7); @@ -56,7 +57,8 @@ assert(out_s == 2); uint64_t n; size_t in_s = tokudb::vlq_decode_ui(&n, b, out_s); - assert(in_s == 2 && n == v); + assert(in_s == 2); + assert(n == v); } printf("%u\n", 1<<14); @@ -66,7 +68,8 @@ assert(out_s == 3); uint64_t n; size_t in_s = tokudb::vlq_decode_ui(&n, b, out_s); - assert(in_s == 3 && n == v); + assert(in_s == 3); + assert(n == v); } printf("%u\n", 1<<21); @@ -76,7 +79,8 @@ assert(out_s == 4); uint64_t n; size_t in_s = tokudb::vlq_decode_ui(&n, b, out_s); - assert(in_s == 4 && n == v); + assert(in_s == 4); + assert(n == v); } printf("%u\n", 1<<28); @@ -90,7 +94,8 @@ assert(out_s == 5); uint64_t n; size_t in_s = tokudb::vlq_decode_ui(&n, b, out_s); - assert(in_s == 5 && n == v); + assert(in_s == 5); + assert(n == v); } } diff -Nru mariadb-10.3-10.3.17/storage/tokudb/tokudb_buffer.h mariadb-10.3-10.3.20/storage/tokudb/tokudb_buffer.h --- mariadb-10.3-10.3.17/storage/tokudb/tokudb_buffer.h 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/tokudb_buffer.h 2019-11-06 16:01:59.000000000 +0000 @@ -134,8 +134,8 @@ char* data_offset = (char*)m_data + offset; if (new_s != old_s) { size_t n = m_size - (offset + old_s); - assert_always( - offset + new_s + n <= m_limit && offset + old_s + n <= m_limit); + assert_always(offset + new_s + n <= m_limit); + assert_always(offset + old_s + n <= m_limit); memmove(data_offset + new_s, data_offset + old_s, n); if (new_s > old_s) m_size += new_s - old_s; diff -Nru mariadb-10.3-10.3.17/storage/tokudb/tokudb_math.h mariadb-10.3-10.3.20/storage/tokudb/tokudb_math.h --- mariadb-10.3-10.3.17/storage/tokudb/tokudb_math.h 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/storage/tokudb/tokudb_math.h 2019-11-06 16:01:59.000000000 +0000 @@ -59,7 +59,8 @@ bool* over)); static uint64_t uint_add(uint64_t x, uint64_t y, uint length_bits, bool *over) { uint64_t mask = uint_mask(length_bits); - assert_always((x & ~mask) == 0 && (y & ~mask) == 0); + assert_always((x & ~mask) == 0); + assert_always((y & ~mask) == 0); uint64_t s = (x + y) & mask; *over = s < x; // check for overflow return s; @@ -75,7 +76,8 @@ bool* over)); static uint64_t uint_sub(uint64_t x, uint64_t y, uint length_bits, bool *over) { uint64_t mask = uint_mask(length_bits); - assert_always((x & ~mask) == 0 && (y & ~mask) == 0); + assert_always((x & ~mask) == 0); + assert_always((y & ~mask) == 0); uint64_t s = (x - y) & mask; *over = s > x; // check for overflow return s; diff -Nru mariadb-10.3-10.3.17/strings/ctype-simple.c mariadb-10.3-10.3.20/strings/ctype-simple.c --- mariadb-10.3-10.3.17/strings/ctype-simple.c 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/strings/ctype-simple.c 2019-11-06 16:01:59.000000000 +0000 @@ -1,5 +1,5 @@ /* Copyright (c) 2002, 2013, Oracle and/or its affiliates. - Copyright (c) 2009, 2014, SkySQL Ab. + Copyright (c) 2009, 2019, MariaDB Corporation. 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 @@ -1726,10 +1726,20 @@ goto ret_sign; } } - for (exponent= 0 ; - str < end && (ch= (uchar) (*str - '0')) < 10; - str++) + if (shift > 0 && !negative_exp) + goto ret_too_big; + for (exponent= 0 ; str < end && (ch= (uchar) (*str - '0')) < 10; str++) { + if (negative_exp) + { + if (exponent - shift > DIGITS_IN_ULONGLONG) + goto ret_zero; + } + else + { + if (exponent + shift > DIGITS_IN_ULONGLONG) + goto ret_too_big; + } exponent= exponent * 10 + ch; } shift+= negative_exp ? -exponent : exponent; diff -Nru mariadb-10.3-10.3.17/strings/json_lib.c mariadb-10.3-10.3.20/strings/json_lib.c --- mariadb-10.3-10.3.17/strings/json_lib.c 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/strings/json_lib.c 2019-11-06 16:01:59.000000000 +0000 @@ -320,15 +320,17 @@ if (s->c_next != '\\') return s->error= JE_SYN; + s->c_str+= c_len; if ((c_len= json_next_char(s)) <= 0) return s->error= json_eos(s) ? JE_EOS : JE_BAD_CHR; if (s->c_next != 'u') return s->error= JE_SYN; + s->c_str+= c_len; if (read_4_hexdigits(s, code+2)) return 1; - if ((c_len= my_utf16_uni(0, &s->c_next, code, code+4)) == 2) + if ((c_len= my_utf16_uni(0, &s->c_next, code, code+4)) == 4) return 0; } return s->error= JE_BAD_CHR; @@ -823,6 +825,11 @@ static int skip_key(json_engine_t *j) { int t_next, c_len; + + if (json_instr_chr_map[j->s.c_next] == S_BKSL && + json_handle_esc(&j->s)) + return 1; + while (json_read_keyname_chr(j) == 0) {} if (j->s.error) diff -Nru mariadb-10.3-10.3.17/support-files/CMakeLists.txt mariadb-10.3-10.3.20/support-files/CMakeLists.txt --- mariadb-10.3-10.3.17/support-files/CMakeLists.txt 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/support-files/CMakeLists.txt 2019-11-06 16:01:59.000000000 +0000 @@ -68,11 +68,12 @@ IF(CHECKMODULE AND SEMODULE_PACKAGE) FOREACH(pol mariadb) SET(src ${CMAKE_CURRENT_SOURCE_DIR}/policy/selinux/${pol}.te) - SET(tmp ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${pol}-pp.dir/${pol}.mod) + SET(tmp ${CMAKE_CURRENT_BINARY_DIR}/${pol}.mod) SET(out ${CMAKE_CURRENT_BINARY_DIR}/${pol}.pp) ADD_CUSTOM_COMMAND(OUTPUT ${out} COMMAND ${CHECKMODULE} -M -m ${src} -o ${tmp} COMMAND ${SEMODULE_PACKAGE} -m ${tmp} -o ${out} + COMMAND ${CMAKE_COMMAND} -E remove ${tmp} DEPENDS ${src}) ADD_CUSTOM_TARGET(${pol}-pp ALL DEPENDS ${out}) INSTALL(FILES ${out} DESTINATION ${inst_location}/policy/selinux COMPONENT SupportFiles) diff -Nru mariadb-10.3-10.3.17/support-files/mariadb.service.in mariadb-10.3-10.3.20/support-files/mariadb.service.in --- mariadb-10.3-10.3.17/support-files/mariadb.service.in 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/support-files/mariadb.service.in 2019-11-06 16:01:59.000000000 +0000 @@ -1,16 +1,22 @@ +# It's not recommended to modify this file in-place, because it will be +# overwritten during package upgrades. If you want to customize, the +# best way is to create a file "/etc/systemd/system/mariadb.service", +# containing +# .include /usr/lib/systemd/system/mariadb.service +# ...make your changes here... +# or create a file "/etc/systemd/system/mariadb.service.d/foo.conf", +# which doesn't need to include ".include" call and which will be parsed +# after the file mariadb.service itself is parsed. # -# /etc/systemd/system/mariadb.service +# For more info about custom unit files, see systemd.unit(5) or +# https://mariadb.com/kb/en/mariadb/systemd/ +# +# Copyright notice: # # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. -# -# Thanks to: -# Daniel Black -# Erkan Yanar -# David Strauss -# and probably others [Unit] Description=MariaDB @VERSION@ database server @@ -81,11 +87,12 @@ # This isn't a replacement for my.cnf. # _WSREP_NEW_CLUSTER is for the exclusive use of the script galera_new_cluster ExecStart=@sbindir@/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION -@SYSTEMD_EXECSTARTPOST@ # Unset _WSREP_START_POSITION environment variable. ExecStartPost=/bin/sh -c "systemctl unset-environment _WSREP_START_POSITION" +@SYSTEMD_EXECSTARTPOST@ + KillSignal=SIGTERM # Don't want to see an automated SIGKILL ever diff -Nru mariadb-10.3-10.3.17/support-files/mariadb@.service.in mariadb-10.3-10.3.20/support-files/mariadb@.service.in --- mariadb-10.3-10.3.17/support-files/mariadb@.service.in 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/support-files/mariadb@.service.in 2019-11-06 16:01:59.000000000 +0000 @@ -1,28 +1,35 @@ # Multi instance version of mariadb. For if you run multiple versions at once. -# Also used for mariadb@bootstrap to bootstrap Galera. # -# create config file @sysconf2dir@/my{instancename}.cnf +# create config file @sysconf2dir@/my{instancename}.cnf to be used as the +# configuration file for this service. # # start as systemctl start mariadb@{instancename}.server - +# +# It's not recommended to modify this file in-place, because it will be +# overwritten during package upgrades. If you want to customize, the +# best way is to create a file "/etc/systemd/system/mariadb@.service", +# containing +# .include /usr/lib/systemd/system/mariadb@.service +# ...make your changes here... +# or create a file "/etc/systemd/system/mariadb@.service.d/foo.conf", +# which doesn't need to include ".include" call and which will be parsed +# after the file mariadb@.service itself is parsed. +# +# For more info about custom unit files, see systemd.unit(5) or +# https://mariadb.com/kb/en/mariadb/systemd/ +# +# Copyright notice: +# # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. -# -# Thanks to: -# Daniel Black -# Erkan Yanar -# David Strauss -# and probably others -# Inspired from https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-db/mysql-init-scripts/files/mysqld_at.service [Unit] -Description=MariaDB @VERSION@ database server (multi-instance) +Description=MariaDB @VERSION@ database server (multi-instance %I) Documentation=man:mysqld(8) Documentation=https://mariadb.com/kb/en/library/systemd/ After=network.target - ConditionPathExists=@sysconf2dir@/my%I.cnf [Install] @@ -67,6 +74,8 @@ # Execute pre and post scripts as root, otherwise it does it as User= PermissionsStartOnly=true +@SYSTEMD_EXECSTARTPRE@ + # Perform automatic wsrep recovery. When server is started without wsrep, # galera_recovery simply returns an empty string. In any case, however, # the script is not expected to return with a non-zero status. @@ -107,6 +116,8 @@ # Unset _WSREP_START_POSITION environment variable. ExecStartPost=/bin/sh -c "systemctl unset-environment _WSREP_START_POSITION%I" +@SYSTEMD_EXECSTARTPOST@ + KillSignal=SIGTERM # Don't want to see an automated SIGKILL ever diff -Nru mariadb-10.3-10.3.17/support-files/mysql-log-rotate.sh mariadb-10.3-10.3.20/support-files/mysql-log-rotate.sh --- mariadb-10.3-10.3.17/support-files/mysql-log-rotate.sh 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/support-files/mysql-log-rotate.sh 2019-11-06 16:01:59.000000000 +0000 @@ -1,9 +1,9 @@ # This logname can be set in /etc/my.cnf -# by setting the variable "err-log" -# in the [safe_mysqld] section as follows: +# by setting the variable "log-error" +# in the [mysqld] section as follows: # -# [safe_mysqld] -# err-log=@localstatedir@/mysqld.log +# [mysqld] +# log-error=@localstatedir@/mysqld.log # # If the root user has a password you have to create a # /root/.my.cnf configuration file with the following @@ -21,7 +21,7 @@ @localstatedir@/mysqld.log { # create 600 mysql mysql notifempty - daily + daily rotate 3 missingok compress diff -Nru mariadb-10.3-10.3.17/support-files/rpm/server-postin.sh mariadb-10.3-10.3.20/support-files/rpm/server-postin.sh --- mariadb-10.3-10.3.17/support-files/rpm/server-postin.sh 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/support-files/rpm/server-postin.sh 2019-11-06 16:01:59.000000000 +0000 @@ -16,7 +16,8 @@ # Make MySQL start/shutdown automatically when the machine does it. if [ $1 = 1 ] ; then if [ -x /usr/bin/systemctl ] ; then - /usr/bin/systemctl daemon-reload >/dev/null 2>&1 + /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : + /usr/bin/systemctl preset mariadb.service >/dev/null 2>&1 || : elif [ -x /sbin/chkconfig ] ; then /sbin/chkconfig --add mysql fi diff -Nru mariadb-10.3-10.3.17/support-files/rpm/server-preun.sh mariadb-10.3-10.3.20/support-files/rpm/server-preun.sh --- mariadb-10.3-10.3.17/support-files/rpm/server-preun.sh 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/support-files/rpm/server-preun.sh 2019-11-06 16:01:59.000000000 +0000 @@ -9,7 +9,7 @@ %{_sysconfdir}/init.d/mysql stop > /dev/null fi if [ -x /sbin/chkconfig ] ; then - /sbin/chkconfig --del mysql > /dev/null 2>&1 + /sbin/chkconfig --del mysql > /dev/null 2>&1 || : fi fi diff -Nru mariadb-10.3-10.3.17/support-files/use_galera_new_cluster.conf mariadb-10.3-10.3.20/support-files/use_galera_new_cluster.conf --- mariadb-10.3-10.3.17/support-files/use_galera_new_cluster.conf 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/support-files/use_galera_new_cluster.conf 2019-11-06 16:01:59.000000000 +0000 @@ -15,8 +15,11 @@ Type=oneshot Restart=no +ExecStartPre= + # Override the multi instance service for a bootstrap start instance ExecStart= ExecStart=/usr/bin/echo "Please use galera_new_cluster to start the mariadb service with --wsrep-new-cluster" ExecStart=/usr/bin/false +ExecStartPost= diff -Nru mariadb-10.3-10.3.17/unittest/mysys/my_atomic-t.c mariadb-10.3-10.3.20/unittest/mysys/my_atomic-t.c --- mariadb-10.3-10.3.17/unittest/mysys/my_atomic-t.c 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/unittest/mysys/my_atomic-t.c 2019-11-06 16:01:59.000000000 +0000 @@ -90,10 +90,10 @@ y= my_atomic_load32(&bad); x= (x*m+0x87654321) & INT_MAX32; do { - ok= my_atomic_cas32(&bad, &y, (uint32)y+x); + ok= my_atomic_cas32((int32*) &bad, &y, y+x); } while (!ok) ; do { - ok= my_atomic_cas32(&bad, &y, y-x); + ok= my_atomic_cas32((int32*) &bad, &y, y-x); } while (!ok) ; } return 0; diff -Nru mariadb-10.3-10.3.17/VERSION mariadb-10.3-10.3.20/VERSION --- mariadb-10.3-10.3.17/VERSION 2019-07-28 00:18:30.000000000 +0000 +++ mariadb-10.3-10.3.20/VERSION 2019-11-06 16:01:56.000000000 +0000 @@ -1,4 +1,4 @@ MYSQL_VERSION_MAJOR=10 MYSQL_VERSION_MINOR=3 -MYSQL_VERSION_PATCH=17 +MYSQL_VERSION_PATCH=20 SERVER_MATURITY=stable diff -Nru mariadb-10.3-10.3.17/wsrep/wsrep_gtid.c mariadb-10.3-10.3.20/wsrep/wsrep_gtid.c --- mariadb-10.3-10.3.17/wsrep/wsrep_gtid.c 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/wsrep/wsrep_gtid.c 2019-11-06 16:01:59.000000000 +0000 @@ -42,7 +42,7 @@ gtid->seqno = strtoll(str + offset, &endptr, 0); if (errno == 0) { - offset = endptr - str; + offset = (unsigned int)(endptr - str); return offset; } } diff -Nru mariadb-10.3-10.3.17/zlib/CMakeLists.txt mariadb-10.3-10.3.20/zlib/CMakeLists.txt --- mariadb-10.3-10.3.17/zlib/CMakeLists.txt 2019-07-28 00:18:33.000000000 +0000 +++ mariadb-10.3-10.3.20/zlib/CMakeLists.txt 2019-11-06 16:01:59.000000000 +0000 @@ -1,4 +1,3 @@ - # Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify @@ -145,3 +144,6 @@ # On unix-like platforms the library is almost always called libz set_target_properties(zlib PROPERTIES OUTPUT_NAME z) endif() + + +RESTRICT_SYMBOL_EXPORTS(zlib)